{"version":3,"file":"js/main.js","mappings":"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AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAiC;AACtF;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,4DAA4D,iBAAiB;AAC7E;AACA,MAAM;AACN,IAAI,gBAAgB;AACpB;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACtDY;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACVa;AACb,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,WAAW,mBAAO,CAAC,qGAAoC;AACvD,+BAA+B,wJAA4D;AAC3F,gBAAgB,8FAAgC;AAChD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,aAAa,mBAAO,CAAC,qFAA4B;AACjD,oBAAoB,mBAAO,CAAC,mGAAmC;AAC/D,sBAAsB,mBAAO,CAAC,uGAAqC;AACnE,cAAc,mBAAO,CAAC,uFAA6B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChFa;AACb,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;;;;;;;;;;;ACpBa;AACb,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,YAAY,mBAAO,CAAC,qEAAoB;AACxC,iBA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AC;;AAED;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpHa;AACb,eAAe,mBAAO,CAAC,6EAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjBa;AACb,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,aAAa,mBAAO,CAAC,2FAA+B;AACpD,oBAAoB,mBAAO,CAAC,uGAAqC;AACjE,kBAAkB,mBAAO,CAAC,mFAA2B;;AAErD;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACZa;AACb,YAAY,mBAAO,CAAC,qEAAoB;AACxC,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ba;AACb,YAAY,mBAAO,CAAC,qEAAoB;AACxC,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACVY;AACb,YAAY,mBAAO,CAAC,qEAAoB;AACxC,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACXY;AACb,wBAAwB,mBAAO,CAAC,mGAAmC;;AAEnE;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACVa;AACb,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA;;;;;;;;;;;;ACjBa;AACb,qBAAqB,gIAAgD;AACrE,aAAa,mBAAO,CAAC,2FAA+B;AACpD,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;;AAEA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;;;;;;;;;;;;ACZa;AACb,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,UAAU,mBAAO,CAAC,iEAAkB;;AAEpC;;AAEA;AACA;AACA;;;;;;;;;;;;ACRa;AACb,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,2BAA2B,mBAAO,CAAC,uGAAqC;;AAExE;AACA,6DAA6D;;AAE7D;;;;;;;;;;;;ACPa;AACb,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,YAAY,mBAAO,CAAC,mFAA2B;;AAE/C;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACZY;AACb,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,mBAAmB,mBAAO,CAAC,qFAA4B;AACvD,wBAAwB,mBAAO,CAAC,mGAAmC;AACnE,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;AACb,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACVa;AACb,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,0BAA0B,mBAAO,CAAC,uGAAqC;AACvE,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;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;AACA;AACA;AACA;;;;;;;;;;;;ACpCa;AACb;AACA,kBAAkB,mBAAO,CAAC,qGAAoC;;AAE9D,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,qBAAqB;AACrB,oCAAoC;AACpC,gDAAgD;AAChD;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;AACA,yCAAyC;AACzC;AACA,QAAQ;AACR,wCAAwC;AACxC;AACA;AACA;AACA;AACA,MAAM;AACN;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC,oCAAoC;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,kBAAkB;AAClC;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;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpLa;AACb,2BAA2B,mHAA4C;AACvE,YAAY,mBAAO,CAAC,qEAAoB;AACxC,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACfa;AACb,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;AACA;AACA;;AAEA,uBAAuB,+CAA+C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,qBAAqB;AAC9C;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ba;AACb;AACA,iBAAiB,mBAAO,CAAC,6FAAgC;AACzD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,aAAa,mBAAO,CAAC,uEAAqB;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AClBY;AACb,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,oBAAoB,mBAAO,CAAC,yFAA8B;;AAE1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,UAAU;AACnB;AACA;;;;;;;;;;;;ACpBa;AACb,oBAAoB,mBAAO,CAAC,mHAA2C;;AAEvE;AACA;;;;;;;;;;;;ACJa;AACb,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,YAAY,mBAAO,CAAC,uFAA6B;AACjD,WAAW,mBAAO,CAAC,qGAAoC;AACvD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,aAAa,mBAAO,CAAC,2FAA+B;AACpD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,WAAW,mBAAO,CAAC,mEAAmB;AACtC,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,oBAAoB,mBAAO,CAAC,yGAAsC;AAClE,8BAA8B,mBAAO,CAAC,6GAAwC;AAC9E,aAAa,mBAAO,CAAC,qFAA4B;AACjD,cAAc,mBAAO,CAAC,uFAA6B;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACpHa;AACb,kBAAkB,mBAAO,CAAC,qGAAoC;;AAE9D;AACA;AACA;;;;;;;;;;;;ACLa;AACb,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;;;;;;;;;;;ACZa;AACb;AACA,oBAAoB,mBAAO,CAAC,uFAA6B;AACzD,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;AACA;AACA;;;;;;;;;;;;ACPa;AACb,YAAY,mBAAO,CAAC,+EAAyB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTa;AACb,0BAA0B,mBAAO,CAAC,uGAAqC;;AAEvE;;AAEA;AACA;AACA;AACA,kFAAkF;AAClF;;;;;;;;;;;;ACTa;AACb,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTa;AACb,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,0BAA0B,mBAAO,CAAC,qGAAoC;AACtE,sBAAsB,mBAAO,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A;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR,MAAM;AACN,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ,qBAAqB,aAAa;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO,IAAI,cAAc;AACzB;;AAEA;AACA;AACA;AACA,MAAM,gBAAgB;;AAEtB;AACA;AACA;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CA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,gBAAgB;;AAEtB;AACA;;AAEA,gEAAgE,oBAAoB;AACpF;AACA;;AAEA;AACA;AACA,mDAAmD,mBAAmB;AACtE;;AAEA;AACA;;;;;;;;;;;;AC9La;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,WAAW,mBAAO,CAAC,iFAA0B;;AAE7C;AACA;AACA,IAAI,0DAA0D;AAC9D;AACA,CAAC;;;;;;;;;;;;ACRY;AACb,2BAA2B,mHAA4C;AACvE,oBAAoB,mBAAO,CAAC,yFAA8B;AAC1D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,qBAAqB,mBAAO,CAAC,2FAA+B;;AAE5D;AACA;AACA;;AAEA,sCAAsC,6BAA6B,yBAAyB,eAAe;AAC3G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI,cAAc;AACrB;;;;;;;;;;;;ACzBa;AACb,aAAa,yHAA+C;AAC5D,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/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,CAAC,+EAAyB;AACjD,iBAAiB,mBAAO,CAAC,+FAAiC;AAC1D,qBAAqB,mBAAO,CAAC,mGAAmC;AAChE,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,oBAAoB,mBAAO,CAAC,qGAAoC;AAChE,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,CAAC;;AAED;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,gFAAgF;AAChF;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC5JY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,YAAY,6GAAwC;AACpD,6BAA6B,mBAAO,CAAC,+FAAiC;;AAEtE;AACA;AACA,IAAI,uEAAuE;AAC3E;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACXY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,oBAAoB,mBAAO,CAAC,mHAA2C;AACvE,YAAY,mBAAO,CAAC,qEAAoB;AACxC,aAAa,mBAAO,CAAC,2FAA+B;AACpD,oBAAoB,mBAAO,CAAC,uGAAqC;AACjE,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,oBAAoB,mBAAO,CAAC,yFAA8B;AAC1D,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,+BAA+B,mBAAO,CAAC,+GAAyC;AAChF,yBAAyB,mBAAO,CAAC,qFAA4B;AAC7D,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,gCAAgC,mBAAO,CAAC,qHAA4C;AACpF,kCAAkC,mBAAO,CAAC,uIAAqD;AAC/F,kCAAkC,mBAAO,CAAC,yHAA8C;AACxF,qCAAqC,mBAAO,CAAC,+HAAiD;AAC9F,2BAA2B,mBAAO,CAAC,uGAAqC;AACxE,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,iCAAiC,mBAAO,CAAC,qHAA4C;AACrF,oBAAoB,mBAAO,CAAC,yFAA8B;AAC1D,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,UAAU,mBAAO,CAAC,iEAAkB;AACpC,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,mCAAmC,mBAAO,CAAC,6GAAwC;AACnF,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,8BAA8B,mBAAO,CAAC,+GAAyC;AAC/E,qBAAqB,mBAAO,CAAC,6FAAgC;AAC7D,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,eAAe,wHAA+C;;AAE9D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD,uBAAuB,yCAAyC,UAAU;AAC1E,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F;AAC5F;AACA,MAAM;AACN;AACA,oDAAoD,gDAAgD;AACpG,MAAM;AACN,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;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,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,+EAA+E,iCAAiC;AAChH;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sFAAsF,cAAc;AACpG;AACA;AACA;;AAEA,IAAI,2FAA2F;AAC/F;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED,IAAI,oDAAoD;AACxD,2BAA2B,oBAAoB;AAC/C,2BAA2B;AAC3B,CAAC;;AAED,IAAI,0EAA0E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,IAAI,sDAAsD;AAC1D;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrQA;AACA;AACa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,aAAa,mBAAO,CAAC,2FAA+B;AACpD,iBA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B;AACjD,+BAA+B,mBAAO,CAAC,+GAAyC;AAChF,kBAAkB,mBAAO,CAAC,mFAA2B;AACrD,wBAAwB,mBAAO,CAAC,iGAAkC;AAClE,8BAA8B,mBAAO,CAAC,6GAAwC;AAC9E,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,gBAAgB,mBAAO,CAAC,+EAAyB;;AAEjD;AACA;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;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+EAA+E,EAAE,EAAE,cAAc;AACjG;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAA6D;AAC1F;AACA,MAAM;AACN,2BAA2B,yCAAyC;AACpE;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+CAA+C;AACzE;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC,IAAI,kBAAkB;;AAEvB;AACA,sFAAsF,iBAAiB;;AAEvG;AACA;AACA;AACA;AACA,CAAC,IAAI,kBAAkB;;AAEvB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;;AAED;;AAEA,IAAI,0DAA0D;AAC9D;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;;AAEA;AACA,QAAQ,oEAAoE;AAC5E;AACA,8FAA8F;AAC9F;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,kGAAkG;AAClG;;AAEA;AACA;;AAEA,QAAQ,qEAAqE;AAC7E;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC9Za;AACb;AACA,mBAAO,CAAC,yHAA8C;;;;;;;;;;;;ACFzC;AACb;AACA,mBAAO,CAAC,2FAA+B;AACvC,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,qBAAqB,mBAAO,CAAC,6GAAwC;AACrE,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,WAAW,mBAAO,CAAC,qGAAoC;AACvD,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,oBAAoB,mBAAO,CAAC,yFAA8B;AAC1D,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,aAAa,mBAAO,CAAC,2FAA+B;AACpD,aAAa,mBAAO,CAAC,qFAA4B;AACjD,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,iBAAiB,mBAAO,CAAC,+FAAiC;AAC1D,aAAa,yHAA+C;AAC5D,cAAc,mBAAO,CAAC,2GAAuC;AAC7D,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,qBAAqB,mBAAO,CAAC,6FAAgC;AAC7D,8BAA8B,mBAAO,CAAC,6GAAwC;AAC9E,4BAA4B,mBAAO,CAAC,yHAA8C;AAClF,0BAA0B,mBAAO,CAAC,uFAA6B;;AAE/D;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAW;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA,MAAM;AACN;AACA,IAAI;AACJ;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,wCAAwC;AACxC;AACA,CAAC;AACD,oCAAoC;AACpC,oBAAoB,QAAQ;AAC5B,CAAC;AACD,wCAAwC;AACxC,oBAAoB;AACpB,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;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,YAAY;AACZ;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;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;;AAEA;AACA;AACA;AACA;AACA,CAAC,IAAI,kBAAkB;;AAEvB;AACA;AACA;AACA;AACA,CAAC,IAAI,kBAAkB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,IAAI,8EAA8E;AAClF;AACA,CAAC;;;;;;;;;;;;ACvhCY;AACb;AACA,mBAAO,CAAC,6FAAgC;;;;;;;;;;;ACFxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAuD,wBAAwB,KAAK,aAGvF;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,+CAA+C;AAC/C,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,kDAAkD;AAClD;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,6CAA6C;AAC7C;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gGAAgG,OAAO;AACvG;AACA;AACA;AACA,6BAA6B,GAAG;AAChC;AACA;AACA;AACA,6BAA6B,GAAG;AAChC,gDAAgD,OAAO;AACvD;AACA;AACA;AACA,6BAA6B,GAAG;AAChC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB;AACA;AACA;AACA,2GAA2G;AAC3G,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA,kJAAkJ,cAAc;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G,kCAAkC;AAClC;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW,kEAAkE;AAC/G,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB,gEAAgE;AAChE,2EAA2E;AAC3E,0EAA0E;AAC1E,0BAA0B,OAAO;AACjC,mIAAmI;AACnI;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kHAAkH;AAClH;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iGAAiG,KAAK;AACtG,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2KAA2K;AAC3K;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gIAAgI;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qTAAqT,cAAc;AACnU,sCAAsC,cAAc;AACpD,sCAAsC,cAAc;AACpD,sCAAsC,cAAc;AACpD;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,mDAAmD,cAAc;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW,kEAAkE;AAC/G,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA,oCAAoC,cAAc;AAClD;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,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qDAAqD,4BAA4B;AACjF;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,sBAAsB;AACtB;AACA;AACA,iCAAiC,EAAE;AACnC;AACA,sBAAsB;AACtB,mCAAmC,EAAE;AACrC;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA,sCAAsC,cAAc;AACpD,qBAAqB;AACrB;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA,sCAAsC,cAAc;AACpD,qBAAqB;AACrB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB,gCAAgC,EAAE;AAClC;AACA,qBAAqB;AACrB,gCAAgC,EAAE;AAClC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,sBAAsB;AACtB;AACA;AACA,iBAAiB;AACjB;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,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D,+EAA+E;AAC/E;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,iEAAiE,8CAA8C;AACzI;AACA;AACA;AACA;AACA,oDAAoD,cAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,6CAA6C,8BAA8B;AAC3E;AACA;AACA;AACA;AACA;AACA;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,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,yHAAyH,cAAc;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,wEAAwE,8BAA8B;AACtG;AACA;AACA,iJAAiJ,cAAc;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC1D;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,0EAA0E,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,KAAK;AAChJ,mDAAmD,OAAO;AAC1D;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wHAAwH,EAAE;AAC1H,6BAA6B;AAC7B;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC,GAAG,EAAE,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,8EAA8E,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;AAC7G;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,OAAO;AACvG;AACA;AACA;AACA,yEAAyE,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG;AACxG;AACA;AACA;AACA,mKAAmK;AACnK;AACA;AACA,uDAAuD,EAAE;AACzD;AACA,0FAA0F,iBAAiB,0GAA0G,mBAAmB;AACxO,oEAAoE,iBAAiB;AACrF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB;AACA,kEAAkE,IAAI;AACtE,yBAAyB;AACzB;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,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oGAAoG;AACpG;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,mEAAmE,EAAE;AACrE;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,0CAA0C;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,+JAA+J,OAAO;AACnM;AACA;AACA;AACA;AACA;AACA,wGAAwG;AACxG;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,kCAAkC;AAClC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,mNAAmN;AACnN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iEAAiE,IAAI,8BAA8B,IAAI;AACvG,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gFAAgF,OAAO;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,4BAA4B;AACrH;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oKAAoK,2BAA2B;AAC/L;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA,sMAAsM,4BAA4B;AAClO;AACA,0RAA0R;AAC1R;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F,mHAAmH;AACnH,gFAAgF;AAChF,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,kCAAkC;AAClC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,UAAU;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,+HAA+H,kCAAkC;AACjK;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G;AAC3G;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW,kEAAkE;AAC/G,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;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;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB,0DAA0D,uCAAuC,WAAW,yEAAyE,IAAI,wCAAwC,EAAE,cAAc,EAAE,+CAA+C,oBAAoB,cAAc;AACpU;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,sBAAsB;AAC9I;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAA+B;AACzD;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;;AAEA;AACA;AACA,sCAAsC,UAAU;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,WAAW,kEAAkE;AAC/H,8CAA8C;AAC9C;AACA,8CAA8C;AAC9C;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,wCAAwC;AACxC;AACA;AACA;AACA,yBAAyB,iFAAiF,oEAAoE;AAC9K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,yCAAyC;AACzC;AACA,yCAAyC;AACzC;AACA;AACA;AACA,yCAAyC;AACzC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,qCAAqC;AACrC,iCAAiC;AACjC;AACA,yBAAyB;AACzB,qBAAqB;AACrB;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,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,OAAO;AAClG;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,kBAAkB;AAClB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gMAAgM;AACzN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,iBAAiB;AACjB,qKAAqK;AACrK,oCAAoC,cAAc;AAClD,0CAA0C;AAC1C;AACA,oCAAoC,+ZAA+Z;AACnc;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,OAAO;AACjF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,mGAAmG;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,iJAAiJ;AAC3K;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gLAAgL;AACxN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA,sHAAsH;AACtH;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G,cAAc;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,OAAO,4DAA4D,SAAS,kCAAkC;AACvL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,OAAO;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,sBAAsB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,oFAAoF,iBAAiB,sBAAsB;AAC3H;AACA,qGAAqG,OAAO;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA,uFAAuF;AACvF;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA,gEAAgE,cAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,iCAAiC;AACjC;AACA,8FAA8F,oEAAoE;AAClK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,iCAAiC;AACjC;AACA,8BAA8B;AAC9B;AACA,mEAAmE,sBAAsB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,mDAAmD,8DAA8D;AACjH;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB,+HAA+H,cAAc;AAC7I,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,oLAAoL;AACpL;AACA,iGAAiG,WAAW,QAAQ;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oDAAoD;AACxF;AACA;AACA,wFAAwF,uDAAuD;AAC/I,6CAA6C,6CAA6C;AAC1F,uEAAuE;AACvE;AACA,6BAA6B;AAC7B;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,oDAAoD;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,2LAA2L;AAC3L;AACA,iCAAiC;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mDAAmD;AACnD,iHAAiH,iCAAiC;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2MAA2M,QAAQ;AACnN;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,cAAc;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG;AACxG;AACA;AACA;AACA,qBAAqB,aAAa;AAClC,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,+BAA+B;AACrF,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA,2LAA2L;AAC3L;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,6CAA6C,QAAQ;AACrD;AACA,wEAAwE,oCAAoC,QAAQ;AACpH;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,uCAAuC;AAC7E;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gGAAgG;AACtH;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL,CAAC;;;;;;;;;;ACnrGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,MAAM,KAA0B;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,EAAE;AACF;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;;AAEA;;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,IAAI;AACJ,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA,IAAI;AACJ,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,SAAS,YAAY;;AAErB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM;AACN;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,8CAA8C;AAC9C;AACA;AACA,mBAAmB,iCAAiC;AACpD,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,SAAS;AACnB;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;;AAEA;AACA;;;AAGA;;;AAGA;;;AAGA;;;AAGA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;;AAEA;AACA,kCAAkC,IAAI;AACtC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B;AAC3B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;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,QAAQ;AACR;AACA;;AAEA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS,6BAA6B;AACjD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA,WAAW,iBAAiB;AAC5B,aAAa,wBAAwB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;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;;AAEA;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;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,SAAS,gCAAgC;AACzC,SAAS,mBAAmB;AAC5B,SAAS,qCAAqC;AAC9C,SAAS;AACT,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;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG;;AAEH;AACA;AACA;;AAEA;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;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;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;AACA,kEAAkE;AAClE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ;;AAER;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;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,OAAO;AACP;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,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,kEAAkE,UAAU;AAC5E,uCAAuC,2BAA2B;AAClE;AACA,iCAAiC,MAAM;AACvC;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;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA,IAAI;;AAEJ;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA,WAAW,UAAU;AACrB;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA,aAAa,uEAAuE;AACpF;AACA;AACA,aAAa,4BAA4B;AACzC;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,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,QAAQ;;AAER;AACA;;AAEA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;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;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,SAAS,SAAS;AAClB;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,iDAAiD;AACnE;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,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA,kDAAkD;AAClD;AACA,WAAW,4CAA4C;AACvD;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;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,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;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;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,EAAE;;;AAGF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA,SAAS,GAAG;AACZ;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM;AACN;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;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,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,2BAA2B,wBAAwB;;AAEnD;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,EAAE;;AAEF;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,2CAA2C;AAC3C,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,EAAE;AACF;;;;AAIA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,WAAW,cAAc;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,QAAQ;AACR,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;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,IAAI;AACJ;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;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,yCAAyC,qCAAqC;AAC9E,qCAAqC,sCAAsC;AAC3E,qCAAqC,qCAAqC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA,OAAO;AACP,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,YAAY;;AAEZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,4DAA4D;AAC5D;AACA,UAAU;AACV;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,OAAO;AACP,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,qCAAqC;AACrC,sCAAsC;AACtC,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;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,EAAE;;;AAGF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,GAAG;AACH;;;;;AAKA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC;AAChC;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,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,aAAa;AACrC,IAAI;;AAEJ;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,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,KAAK;;AAEL;AACA;AACA,IAAI;AACJ;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,EAAE;;AAEF;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,KAAK;AACL;;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,KAAK;AACL,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;;AAGF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;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,KAAK;AACL,IAAI;AACJ;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,EAAE;AACF;AACA;AACA;AACA,IAAI;AACJ,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,EAAE;AACF;;AAEA;;;AAGA;;AAEA;;;;AAIA;AACA;AACA,GAAG;AACH,eAAe;;AAEf;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,KAAK;AACL;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,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF;;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,EAAE;;;AAGF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;;AAEA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;;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;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;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,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4CAA4C;AAC5C;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,eAAe,sBAAsB;AACrC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gEAAgE;AAChE;;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,WAAW,cAAc;;AAEzB;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uCAAuC;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,uDAAuD;AAC/E;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,IAAI;AACJ,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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;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,eAAe,oCAAoC;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;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,MAAM;AACN;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;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,EAAE;;AAEF;;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,IAAI;AACJ;AACA,EAAE;;;AAGF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,+BAA+B;AACxC;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;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,OAAO;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,UAAU,qCAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;;AAEA,UAAU,8BAA8B;AACxC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,aAAa,OAAO;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,WAAW;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;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;;;;AAIA;;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,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,cAAc;AAC3D,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;;AAGF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD;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,mBAAmB;AACnB;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,aAAa,8DAA8D;AAC3E;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,OAAO;;AAEhB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;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;AACA;;AAEA;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,MAAM;AACN;AACA;AACA;;AAEA,IAAI;;AAEJ;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,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;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,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,EAAE;;;AAGF;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,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;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,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;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,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;;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,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;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,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kDAAkD,0BAA0B;AAC5E;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;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,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,gBAAgB;AAC3B;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,YAAY,gBAAgB;AAC5B;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;;AAEF;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,KAAK;AACL;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,qBAAqB,aAAa;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,SAAS;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,YAAY,iBAAiB;AAC7B,eAAe;AACf,CAAC;AACD;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAS,mBAAmB;AAC5B;;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,GAAG;AACH;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;AAEF;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,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;;;AAKF;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;AAEF;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,EAAE;;AAEF;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,EAAE;;;;;AAKF;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,uBAAuB;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,uBAAuB;AACxC;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;;;;AAKF;;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,KAAK;AACL;AACA;;AAEA,kCAAkC;AAClC;AACA;;AAEA,KAAK;AACL;;AAEA,KAAK;AACL;AACA;AACA,MAAM;AACN;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;;AAEF;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,MAAM;AACN;AACA;;AAEA;AACA,YAAY,SAAS;AACrB;;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,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;;;AAKF;AACA;;AAEA,cAAc;;AAEd;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;AACA;;AAEA;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB;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,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;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,IAAI;;AAEJ,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,MAAM;AACN;;AAEA,YAAY;AACZ,IAAI;AACJ;AACA,EAAE;;;AAGF;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,qDAAqD;AACrD;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yDAAyD;AACzD;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,GAAG;;AAEH;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,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;;AAEnD;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,QAAQ;;AAER;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,KAAK;;AAEL;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,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;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,MAAM;AACN;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;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,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK;AACL;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,IAAI;AACJ,EAAE;;AAEF;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA,GAAG;AACH;;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,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC,YAAY,wBAAwB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;;;AAKF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,cAAc,uCAAuC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;;;AAKF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA,EAAE;;;;;AAKF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA,GAAG;AACH;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;;AAEpB;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;;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,IAAI;AACJ;AACA,EAAE;;AAEF;AACA,eAAe,qDAAqD;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;AACA,eAAe,kCAAkC;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,GAAG;AACH,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;;;AAKF;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;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,GAAG;AACH;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,KAAK,IAA0C;AAC/C,CAAC,iCAAkB,EAAE,mCAAE;AACvB;AACA,EAAE;AAAA,kGAAE;AACJ;;;;;AAKA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA,EAAE;;;;;;;;;;;AC39UF;AACA;;AAEA,QAAQ,IAA6B;AACrC;AACA,MAAM,KAAK,EAIN;AACL,CAAC,qCAAqC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB,mBAAmB;AACnB,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;;AAEA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd,0CAA0C;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB;AAClB,uFAAuF;AACvF;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED,6BAA6B;;AAE7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,yBAAyB,+BAA+B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA,oCAAoC,+BAA+B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,yBAAyB,WAAW;AACpC,2BAA2B;;AAE3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,yBAAyB,WAAW;AACpC,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA,iDAAiD,aAAa;AAC9D;AACA,oBAAoB,UAAU,iCAAiC,UAAU;AACzE,oBAAoB,UAAU;AAC9B,iBAAiB,cAAc,KAAK,cAAc;AAClD,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,UAAU;AAC/B,sBAAsB,QAAQ;AAC9B,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,KAAK;AACzB,iBAAiB,UAAU,SAAS,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;;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;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,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;;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;;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;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;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;;AAEA;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;AACA;AACA,aAAa;AACb;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,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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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;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;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,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,GAAG,uBAAuB;AAC1B;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;;AAEA;AACA;AACA,GAAG,uBAAuB;AAC1B;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;AACA;AACA,GAAG,uBAAuB;AAC1B;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;AACA;AACA,GAAG,uBAAuB;AAC1B;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,aAAa;AACb;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;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;;AAEA;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;;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;AACA;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;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;;AAEA;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;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;;AAGA;AACA,aAAa;AACb;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;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;;AAEA,wBAAwB,YAAY;AACpC;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4BAA4B,UAAU;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,aAAa;AAClC,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,qBAAqB;AAC/C,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;;AAEA,8BAA8B,yBAAyB;AACvD,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,qBAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,2BAA2B;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,qBAAqB,gBAAgB;AACrC,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,gBAAgB;AACrC,yBAAyB,eAAe;AACxC;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA,UAAU;AACV,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,qBAAqB,cAAc;AACnC,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;;AAEA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,IAAI;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB,oBAAoB,OAAO;AAC3B,yBAAyB,MAAM;AAC/B,0BAA0B,SAAS;AACnC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,MAAM;AAC5B;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,yBAAyB,OAAO;AAChC,6BAA6B,OAAO;AACpC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC,6BAA6B,OAAO;AACpC;AACA;AACA,sBAAsB;AACtB,wDAAwD;AACxD;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,UAAU,yBAAyB,KAAK;AAC1D,oBAAoB,UAAU,iCAAiC,UAAU;AACzE,oBAAoB,UAAU;AAC9B,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB,4BAA4B,cAAc,YAAY,cAAc;AACpE,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,qBAAqB,QAAQ;AAC7B,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB,iBAAiB;AACtC,yBAAyB,iBAAiB;AAC1C;AACA,mCAAmC,aAAa;AAChD,uCAAuC,aAAa;AACpD;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;;AAEA;AACA;AACA;;AAEA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,YAAY;AACjC;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,cAAc;AACnC,sBAAsB,QAAQ;AAC9B,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,UAAU;AAC/B,sBAAsB,QAAQ;AAC9B,qBAAqB,QAAQ;AAC7B;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,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,SAAS;AAC1C;AACA;;AAEA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,4BAA4B;AACrD;AACA,6BAA6B,4BAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,4BAA4B;AACrD;AACA,6BAA6B,4BAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT,uBAAuB,WAAW;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA,oGAAoG,aAAa;AACjH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB,oBAAoB;AACzC;AACA,yBAAyB,OAAO;AAChC;AACA;;AAEA;AACA,gDAAgD,WAAW,gCAAgC,+BAA+B;AAC1H;AACA;;AAEA;AACA,qBAAqB,oBAAoB;AACzC;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,sCAAsC,WAAW,gCAAgC,+BAA+B;AAChH;;AAEA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;;AAEA;AACA,sCAAsC,WAAW,gCAAgC,+BAA+B;AAChH;AACA;AACA,qBAAqB,OAAO;AAC5B;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,qBAAqB,mBAAmB;AACxC,yBAAyB,mBAAmB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mHAAmH,aAAa;AAChI;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD;AACA,oGAAoG,+BAA+B;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA;AACA,4GAA4G,kDAAkD;AAC9J;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,iCAAiC;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,+BAA+B,sCAAsC;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D;AACA;AACA;AACA;AACA,wGAAwG,kDAAkD;AAC1J;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE,2CAA2C,oBAAoB;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ,oBAAoB;AAC3C,eAAe,QAAQ,kBAAkB;AACzC,iBAAiB;AACjB;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,yBAAyB;AAC/D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ,QAAQ;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,kCAAkC,oBAAoB;AACtD;AACA;;AAEA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA,cAAc;AACd;AACA;;AAEA,sCAAsC,wBAAwB;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA,cAAc;AACd;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA,kCAAkC,sBAAsB;AACxD;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,kCAAkC,sBAAsB;AACxD;AACA;AACA,sBAAsB;AACtB;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU;AACpC,sBAAsB,UAAU;AAChC,sBAAsB,WAAW;AACjC,sBAAsB,WAAW;AACjC,4BAA4B,WAAW;AACvC,4BAA4B,WAAW;AACvC,4BAA4B,WAAW;AACvC,yBAAyB,WAAW;AACpC,sBAAsB,UAAU;AAChC,4BAA4B;AAC5B;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,gCAAgC,SAAS;AACzC,6BAA6B,WAAW;AACxC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,8BAA8B,sBAAsB;AACpD;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,2CAA2C,iCAAiC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA,2DAA2D,2BAA2B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;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,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;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,4BAA4B,SAAS;AACrC,sBAAsB,SAAS;AAC/B,4BAA4B,UAAU;AACtC,6BAA6B,yCAAyC;AACtE,4BAA4B,yCAAyC;AACrE,8BAA8B,+DAA+D;AAC7F,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,8BAA8B,+CAA+C;AAC7E,gCAAgC,YAAY;AAC5C,6BAA6B,YAAY;AACzC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,sBAAsB;AACpD;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB,oBAAoB;AAC7C;AACA;;AAEA,8BAA8B,sBAAsB;AACpD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sBAAsB;AACtB;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB,gCAAgC;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,sDAAsD;AACrF,uBAAuB,wLAAwL;AAC/M,kCAAkC,4TAA4T;AAC9V,uBAAuB,aAAa;AACpC,qBAAqB;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,6BAA6B,SAAS;AACtC;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,sBAAsB;AACpD;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,GAAG;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,8BAA8B;AAC7D,uBAAuB,wFAAwF;AAC/G,kCAAkC,oJAAoJ;AACtL,wBAAwB,oCAAoC;AAC5D,gCAAgC,SAAS;AACzC,6BAA6B,WAAW;AACxC,sBAAsB,WAAW;AACjC,qBAAqB;AACrB;;AAEA;AACA;;AAEA;AACA;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;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,gBAAgB;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,kDAAkD;AACpF,+BAA+B;AAC/B,qBAAqB;AACrB;AACA,kCAAkC,kDAAkD;AACpF,gCAAgC;AAChC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,mBAAmB;AAC3C;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA,yDAAyD;AACzD,4BAA4B,0EAA0E;AACtG,qBAAqB;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,uCAAuC;AACtE,6BAA6B,0CAA0C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,6BAA6B,oCAAoC;AACjE,4BAA4B,uBAAuB;AACnD,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,gCAAgC,4BAA4B;AAC5D,6BAA6B,4BAA4B;AACzD,oCAAoC,SAAS;AAC7C,qBAAqB;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB,oBAAoB;AAC7C;AACA;;AAEA,8BAA8B,sBAAsB;AACpD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sBAAsB;AACtB;AACA;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;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;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,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2CAA2C,uBAAuB,6CAA6C,GAAG;AAClH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;;AAEzB,gCAAgC,gBAAgB;AAChD;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,eAAe,wBAAwB,2BAA2B;AACjH;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,+CAA+C;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,uBAAuB,OAAO;AAC9B,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,+BAA+B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,yBAAyB,QAAQ,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C,WAAW,QAAQ,4BAA4B;AAC7F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C,eAAe,QAAQ,2BAA2B;AACjG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;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;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA,yBAAyB,0DAA0D;AACnF,0BAA0B,4DAA4D;AACtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;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,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;;AAEb,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kBAAkB;AAClB,4BAA4B;AAC5B;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB;AAClB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA,oBAAoB,0BAA0B;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,wDAAwD;AAC3E;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yDAAyD;AAC3F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,8BAA8B,mEAAmE;AACjG;;AAEA;AACA,8BAA8B,qDAAqD;AACnF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,sFAAsF;AACtF,aAAa,yBAAyB;;AAEtC;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,iDAAiD,oCAAoC;AACrF,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,CAAC;;;;;;;;;;ACjjSD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAO,CAAC,yEAAQ,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACnC,MAAM,KAAK,EAIN;;AAEL,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mCAAmC;;AAEnC;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;;AAEA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA,0BAA0B;AAC1B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd;AACA;AACA,iBAAiB;AACjB;;AAEA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB,cAAc;;AAEd;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc;;AAEd;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,wBAAwB,sBAAsB;AAC9C;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,iBAAiB;AACxC;AACA,2BAA2B,oBAAoB;AAC/C;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA,aAAa;;AAEb,UAAU;;AAEV;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;;AAEA;AACA,iBAAiB;AACjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb,UAAU;;AAEV;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa;;AAEb,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB,aAAa;AACb;AACA;AACA,aAAa;AACb;;AAEA,iEAAiE,SAAS;AAC1E;AACA,kCAAkC,gBAAgB;AAClD,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mCAAmC,YAAY;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA,iCAAiC;AACjC;AACA,yBAAyB;;AAEzB;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,aAAa;;AAEb;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,UAAU;;AAEV;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,kCAAkC,4BAA4B;;AAE9D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,aAAa;;AAEb;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,aAAa;AACb;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,qCAAqC,sBAAsB;AAC3D;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,UAAU;;AAEV;AACA;AACA;;AAEA;;AAEA;;AAEA,cAAc;;AAEd;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA,UAAU;;AAEV;;AAEA;;AAEA,aAAa;;;AAGb,UAAU;;AAEV;;AAEA;;AAEA;;AAEA,kBAAkB;;AAElB;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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;;;AAGA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,UAAU;;AAEV;;AAEA;AACA;AACA;AACA;;AAEA,cAAc;;AAEd;AACA;AACA;;AAEA,cAAc;;AAEd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA,uCAAuC;AACvC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB;AAClB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;;AAEjB,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;;AAGA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA,UAAU;;AAEV;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;A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","sources":["webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/cart/removeProduct.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/checkout/formErrors.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/PartialOverlay.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/a11y/FocusHighlighter.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/a11y/Grid.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/a11y/Notifier.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/a11y/a11y-helpers.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/accountModalMobile.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/barcode.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/breadcrumbs.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/clientSideValidation.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/consentTracking.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/cookieModal.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/countrySelector.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/dataLayerGlobal.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/dialogs/Dialog.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/dialogs/DialogManager.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/dialogs/FocusUtils.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/dialogs/Modal.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/dialogs/dialogs.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/domainswitch.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/footerNav.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/formValidation.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/forms/Combobox.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/forms/InputClear.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/forms/SearchCombo.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/googleaddress.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/headerSearch.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/hoursPopup.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/inputFormaters.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/jqueryZoom.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/mailSignupForm.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/menu.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/menus/HamburgerMenu.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/menus/Menu.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/menus/MenuItem.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/menus/Menubar.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/menus/MenubarItem.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/menus/Popup.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/menusV2/HamburgerMenuV2.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/miniCart.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/newsletterModal.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/pageHeaderAd.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/polyfills.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/popupButton.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/postalCodeMenu.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/scrollAnimate.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/scrollToTop.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/spinner.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/stickyHeaderHeight.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/toggleHamburger.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/togglers/Accordion.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/togglers/Expand.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/utils/CompositedComponent.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/utils/media.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/components/waiNotify.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/dataLayer/dataLayer.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/giftcard/giftcard.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/googleCaptcha.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/myaccount/sessionTimeout.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/product/wishlistHeart.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/slickCarousel.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/storeLocator/storeLocatorModal.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/storeLocator/storeSelector.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/storeLocatorModal.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/subscription/subscribeRoomsAndSpaces.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/util.js","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/utils/urlUtil.js","webpack://toysRus/./node_modules/core-js/internals/a-callable.js","webpack://toysRus/./node_modules/core-js/internals/a-constructor.js","webpack://toysRus/./node_modules/core-js/internals/a-possible-prototype.js","webpack://toysRus/./node_modules/core-js/internals/add-to-unscopables.js","webpack://toysRus/./node_modules/core-js/internals/advance-string-index.js","webpack://toysRus/./node_modules/core-js/internals/an-instance.js","webpack://toysRus/./node_modules/core-js/internals/an-object.js","webpack://toysRus/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://toysRus/./node_modules/core-js/internals/array-for-each.js","webpack://toysRus/./node_modules/core-js/internals/array-from.js","webpack://toysRus/./node_modules/core-js/internals/array-includes.js","webpack://toysRus/./node_modules/core-js/internals/array-iteration.js","webpack://toysRus/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://toysRus/./node_modules/core-js/internals/array-method-is-strict.js","webpack://toysRus/./node_modules/core-js/internals/array-set-length.js","webpack://toysRus/./node_modules/core-js/internals/array-slice-simple.js","webpack://toysRus/./node_modules/core-js/internals/array-slice.js","webpack://toysRus/./node_modules/core-js/internals/array-sort.js","webpack://toysRus/./node_modules/core-js/internals/array-species-constructor.js","webpack://toysRus/./node_modules/core-js/internals/array-species-create.js","webpack://toysRus/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://toysRus/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://toysRus/./node_modules/core-js/internals/classof-raw.js","webpack://toysRus/./node_modules/core-js/internals/classof.js","webpack://toysRus/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://toysRus/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://toysRus/./node_modules/core-js/internals/create-html.js","webpack://toysRus/./node_modules/core-js/internals/create-iter-result-object.js","webpack://toysRus/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://toysRus/./node_modules/core-js/internals/create-property-descriptor.js","webpack://toysRus/./node_modules/core-js/internals/create-property.js","webpack://toysRus/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://toysRus/./node_modules/core-js/internals/define-built-in.js","webpack://toysRus/./node_modules/core-js/internals/define-built-ins.js","webpack://toysRus/./node_modules/core-js/internals/define-global-property.js","webpack://toysRus/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://toysRus/./node_modules/core-js/internals/descriptors.js","webpack://toysRus/./node_modules/core-js/internals/document-all.js","webpack://toysRus/./node_modules/core-js/internals/document-create-element.js","webpack://toysRus/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://toysRus/./node_modules/core-js/internals/dom-iterables.js","webpack://toysRus/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://toysRus/./node_modules/core-js/internals/engine-is-browser.js","webpack://toysRus/./node_modules/core-js/internals/engine-is-deno.js","webpack://toysRus/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://toysRus/./node_modules/core-js/internals/engine-is-ios.js","webpack://toysRus/./node_modules/core-js/internals/engine-is-node.js","webpack://toysRus/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://toysRus/./node_modules/core-js/internals/engine-user-agent.js","webpack://toysRus/./node_modules/core-js/internals/engine-v8-version.js","webpack://toysRus/./node_modules/core-js/internals/enum-bug-keys.js","webpack://toysRus/./node_modules/core-js/internals/export.js","webpack://toysRus/./node_modules/core-js/internals/fails.js","webpack://toysRus/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://toysRus/./node_modules/core-js/internals/freezing.js","webpack://toysRus/./node_modules/core-js/internals/function-apply.js","webpack://toysRus/./node_modules/core-js/internals/function-bind-context.js","webpack://toysRus/./node_modules/core-js/internals/function-bind-native.js","webpack://toysRus/./node_modules/core-js/internals/function-bind.js","webpack://toysRus/./node_modules/core-js/internals/function-call.js","webpack://toysRus/./node_modules/core-js/internals/function-name.js","webpack://toysRus/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://toysRus/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://toysRus/./node_modules/core-js/internals/function-uncurry-this.js","webpack://toysRus/./node_modules/core-js/internals/get-built-in.js","webpack://toysRus/./node_modules/core-js/internals/get-iterator-method.js","webpack://toysRus/./node_modules/core-js/internals/get-iterator.js","webpack://toysRus/./node_modules/core-js/internals/get-json-replacer-function.js","webpack://toysRus/./node_modules/core-js/internals/get-method.js","webpack://toysRus/./node_modules/core-js/internals/get-substitution.js","webpack://toysRus/./node_modules/core-js/internals/global.js","webpack://toysRus/./node_modules/core-js/internals/has-own-property.js","webpack://toysRus/./node_modules/core-js/internals/hidden-keys.js","webpack://toysRus/./node_modules/core-js/internals/host-report-errors.js","webpack://toysRus/./node_modules/core-js/internals/html.js","webpack://toysRus/./node_modules/core-js/internals/ie8-dom-define.js","webpack://toysRus/./node_modules/core-js/internals/indexed-object.js","webpack://toysRus/./node_modules/core-js/internals/inherit-if-required.js","webpack://toysRus/./node_modules/core-js/internals/inspect-source.js","webpack://toysRus/./node_modules/core-js/internals/internal-metadata.js","webpack://toysRus/./node_modules/core-js/internals/internal-state.js","webpack://toysRus/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://toysRus/./node_modules/core-js/internals/is-array.js","webpack://toysRus/./node_modules/core-js/internals/is-callable.js","webpack://toysRus/./node_modules/core-js/internals/is-constructor.js","webpack://toysRus/./node_modules/core-js/internals/is-forced.js","webpack://toysRus/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://toysRus/./node_modules/core-js/internals/is-object.js","webpack://toysRus/./node_modules/core-js/internals/is-pure.js","webpack://toysRus/./node_modules/core-js/internals/is-regexp.js","webpack://toysRus/./node_modules/core-js/internals/is-symbol.js","webpack://toysRus/./node_modules/core-js/internals/iterate.js","webpack://toysRus/./node_modules/core-js/internals/iterator-close.js","webpack://toysRus/./node_modules/core-js/internals/iterator-create-constructor.js","webpack://toysRus/./node_modules/core-js/internals/iterator-define.js","webpack://toysRus/./node_modules/core-js/internals/iterators-core.js","webpack://toysRus/./node_modules/core-js/internals/iterators.js","webpack://toysRus/./node_modules/core-js/internals/length-of-array-like.js","webpack://toysRus/./node_modules/core-js/internals/make-built-in.js","webpack://toysRus/./node_modules/core-js/internals/math-trunc.js","webpack://toysRus/./node_modules/core-js/internals/microtask.js","webpack://toysRus/./node_modules/core-js/internals/new-promise-capability.js","webpack://toysRus/./node_modules/core-js/internals/object-assign.js","webpack://toysRus/./node_modules/core-js/internals/object-create.js","webpack://toysRus/./node_modules/core-js/internals/object-define-properties.js","webpack://toysRus/./node_modules/core-js/internals/object-define-property.js","webpack://toysRus/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://toysRus/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://toysRus/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://toysRus/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://toysRus/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://toysRus/./node_modules/core-js/internals/object-is-extensible.js","webpack://toysRus/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://toysRus/./node_modules/core-js/internals/object-keys-internal.js","webpack://toysRus/./node_modules/core-js/internals/object-keys.js","webpack://toysRus/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://toysRus/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://toysRus/./node_modules/core-js/internals/object-to-string.js","webpack://toysRus/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://toysRus/./node_modules/core-js/internals/own-keys.js","webpack://toysRus/./node_modules/core-js/internals/path.js","webpack://toysRus/./node_modules/core-js/internals/perform.js","webpack://toysRus/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://toysRus/./node_modules/core-js/internals/promise-native-constructor.js","webpack://toysRus/./node_modules/core-js/internals/promise-resolve.js","webpack://toysRus/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://toysRus/./node_modules/core-js/internals/proxy-accessor.js","webpack://toysRus/./node_modules/core-js/internals/queue.js","webpack://toysRus/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://toysRus/./node_modules/core-js/internals/regexp-exec.js","webpack://toysRus/./node_modules/core-js/internals/regexp-flags.js","webpack://toysRus/./node_modules/core-js/internals/regexp-get-flags.js","webpack://toysRus/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://toysRus/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://toysRus/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://toysRus/./node_modules/core-js/internals/require-object-coercible.js","webpack://toysRus/./node_modules/core-js/internals/set-species.js","webpack://toysRus/./node_modules/core-js/internals/set-to-string-tag.js","webpack://toysRus/./node_modules/core-js/internals/shared-key.js","webpack://toysRus/./node_modules/core-js/internals/shared-store.js","webpack://toysRus/./node_modules/core-js/internals/shared.js","webpack://toysRus/./node_modules/core-js/internals/species-constructor.js","webpack://toysRus/./node_modules/core-js/internals/string-html-forced.js","webpack://toysRus/./node_modules/core-js/internals/string-multibyte.js","webpack://toysRus/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://toysRus/./node_modules/core-js/internals/string-trim-forced.js","webpack://toysRus/./node_modules/core-js/internals/string-trim.js","webpack://toysRus/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://toysRus/./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://toysRus/./node_modules/core-js/internals/symbol-registry-detection.js","webpack://toysRus/./node_modules/core-js/internals/task.js","webpack://toysRus/./node_modules/core-js/internals/this-number-value.js","webpack://toysRus/./node_modules/core-js/internals/to-absolute-index.js","webpack://toysRus/./node_modules/core-js/internals/to-indexed-object.js","webpack://toysRus/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://toysRus/./node_modules/core-js/internals/to-length.js","webpack://toysRus/./node_modules/core-js/internals/to-object.js","webpack://toysRus/./node_modules/core-js/internals/to-primitive.js","webpack://toysRus/./node_modules/core-js/internals/to-property-key.js","webpack://toysRus/./node_modules/core-js/internals/to-string-tag-support.js","webpack://toysRus/./node_modules/core-js/internals/to-string.js","webpack://toysRus/./node_modules/core-js/internals/try-to-string.js","webpack://toysRus/./node_modules/core-js/internals/uid.js","webpack://toysRus/./node_modules/core-js/internals/url-constructor-detection.js","webpack://toysRus/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://toysRus/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://toysRus/./node_modules/core-js/internals/validate-arguments-length.js","webpack://toysRus/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://toysRus/./node_modules/core-js/internals/well-known-symbol-define.js","webpack://toysRus/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://toysRus/./node_modules/core-js/internals/well-known-symbol.js","webpack://toysRus/./node_modules/core-js/internals/whitespaces.js","webpack://toysRus/./node_modules/core-js/modules/es.array.concat.js","webpack://toysRus/./node_modules/core-js/modules/es.array.filter.js","webpack://toysRus/./node_modules/core-js/modules/es.array.find.js","webpack://toysRus/./node_modules/core-js/modules/es.array.from.js","webpack://toysRus/./node_modules/core-js/modules/es.array.iterator.js","webpack://toysRus/./node_modules/core-js/modules/es.array.join.js","webpack://toysRus/./node_modules/core-js/modules/es.array.map.js","webpack://toysRus/./node_modules/core-js/modules/es.array.slice.js","webpack://toysRus/./node_modules/core-js/modules/es.array.splice.js","webpack://toysRus/./node_modules/core-js/modules/es.function.name.js","webpack://toysRus/./node_modules/core-js/modules/es.json.stringify.js","webpack://toysRus/./node_modules/core-js/modules/es.number.constructor.js","webpack://toysRus/./node_modules/core-js/modules/es.number.is-nan.js","webpack://toysRus/./node_modules/core-js/modules/es.object.freeze.js","webpack://toysRus/./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://toysRus/./node_modules/core-js/modules/es.object.keys.js","webpack://toysRus/./node_modules/core-js/modules/es.object.to-string.js","webpack://toysRus/./node_modules/core-js/modules/es.promise.all.js","webpack://toysRus/./node_modules/core-js/modules/es.promise.catch.js","webpack://toysRus/./node_modules/core-js/modules/es.promise.constructor.js","webpack://toysRus/./node_modules/core-js/modules/es.promise.js","webpack://toysRus/./node_modules/core-js/modules/es.promise.race.js","webpack://toysRus/./node_modules/core-js/modules/es.promise.reject.js","webpack://toysRus/./node_modules/core-js/modules/es.promise.resolve.js","webpack://toysRus/./node_modules/core-js/modules/es.reflect.construct.js","webpack://toysRus/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://toysRus/./node_modules/core-js/modules/es.regexp.exec.js","webpack://toysRus/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://toysRus/./node_modules/core-js/modules/es.string.iterator.js","webpack://toysRus/./node_modules/core-js/modules/es.string.match.js","webpack://toysRus/./node_modules/core-js/modules/es.string.replace.js","webpack://toysRus/./node_modules/core-js/modules/es.string.small.js","webpack://toysRus/./node_modules/core-js/modules/es.string.split.js","webpack://toysRus/./node_modules/core-js/modules/es.string.trim.js","webpack://toysRus/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://toysRus/./node_modules/core-js/modules/es.symbol.description.js","webpack://toysRus/./node_modules/core-js/modules/es.symbol.for.js","webpack://toysRus/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://toysRus/./node_modules/core-js/modules/es.symbol.js","webpack://toysRus/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://toysRus/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://toysRus/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://toysRus/./node_modules/core-js/modules/web.url-search-params.constructor.js","webpack://toysRus/./node_modules/core-js/modules/web.url-search-params.js","webpack://toysRus/./node_modules/core-js/modules/web.url.constructor.js","webpack://toysRus/./node_modules/core-js/modules/web.url.js","webpack://toysRus/./node_modules/inputmask/dist/inputmask.js","webpack://toysRus/./node_modules/jquery/dist/jquery.js","webpack://toysRus/./node_modules/quagga/dist/quagga.js","webpack://toysRus/./node_modules/slick-carousel/slick/slick.js","webpack://toysRus/external var \"window.Resources\"","webpack://toysRus/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/createClass.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/inherits.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://toysRus/./node_modules/@babel/runtime/helpers/typeof.js","webpack://toysRus/webpack/bootstrap","webpack://toysRus/webpack/runtime/global","webpack://toysRus/./cartridges/app_toysrus/cartridge/client/default/js/main.js"],"sourcesContent":["const dataLayer = require('../dataLayer/dataLayer');\nconst { appendToUrl } = require('../utils/urlUtil');\nconst waiNotify = require('../components/waiNotify');\n\nconst removeButtonClass = '.js-remove-product';\nconst removeConfirmationButtonClass = '.js-product-delete-confirmation-btn';\n\n/**\n * replace content of modal\n * @param {string} actionUrl - url to be used to remove product\n * @param {string} productID - pid\n * @param {string} productName - product name\n * @param {string} uuid - uuid\n */\nfunction prepareConfirmationModalContent(actionUrl, productID, productName, uuid) {\n const $deleteConfirmBtn = $(removeConfirmationButtonClass);\n const $productToRemoveSpan = $('.js-product-to-remove');\n\n $deleteConfirmBtn.data('pid', productID);\n $deleteConfirmBtn.data('action', actionUrl);\n $deleteConfirmBtn.data('uuid', uuid);\n\n $productToRemoveSpan.empty().append(productName);\n}\n\n/**\n * get current target data\n * @param {event} e - event of button click\n * @returns {object} - current data\n */\nfunction getRemoveConfirmationData(e) {\n const button = $(e.target);\n return {\n productID: button.data('pid'),\n uuid: button.data('uuid'),\n url: button.data('action')\n };\n}\n\nmodule.exports = function () {\n const $body = $('body');\n\n $body.on('click', removeButtonClass, (e) => {\n e.preventDefault();\n\n const button = $(e.target);\n const actionUrl = button.data('action');\n const productID = button.data('pid');\n const productName = button.data('name');\n const uuid = button.data('uuid');\n\n prepareConfirmationModalContent(actionUrl, productID, productName, uuid);\n });\n\n $body.on('click', removeConfirmationButtonClass, (e) => {\n e.preventDefault();\n\n const $quantityError = $('.js-stock-error');\n $quantityError\n .addClass('h-hidden')\n .empty();\n\n const button = $(e.target);\n\n const currentData = getRemoveConfirmationData(e);\n const productID = currentData.productID;\n const uuid = currentData.uuid;\n let url = currentData.url;\n\n const urlParams = {\n pid: productID,\n uuid\n };\n url = appendToUrl(url, urlParams);\n\n $.spinner().start();\n\n $.ajax({\n url,\n type: 'get',\n dataType: 'json',\n success(data) {\n dataLayer.removeFromCartDataLayerEventInit(productID);\n if (data.basket.items.length === 0) {\n $body.trigger('basket:empty');\n } else {\n if (data.toBeDeletedUUIDs && data.toBeDeletedUUIDs.length > 0) {\n for (let i = 0; i < data.toBeDeletedUUIDs.length; i++) {\n $(`.uuid-${data.toBeDeletedUUIDs[i]}`).remove();\n }\n }\n\n $(`.uuid-${uuid}`).remove();\n\n if (!data.basket.hasBonusProduct) {\n $('.bonus-product').remove();\n }\n\n if (data.isFromCheckout) {\n $('.js-remove-product[data-uuid=\"' + uuid + '\"]').closest('.b-shipping_product').remove();\n $('.b-product_line_item.product-line-item[data-product-line-item=\"' + uuid + '\"]').closest('.b-checkout_aside-line_item').remove();\n $('.js-number-of-items').empty().append(data.order.resources.numberOfItems);\n\n $body\n // .trigger('basket:update:bonus:products', data)\n // .trigger('basket:update:totals', data)\n // .trigger('basket:update:promos', data.totals.discountsHtml)\n .trigger('checkout:updateCheckoutView', data)\n .trigger('cart:update');\n\n if (data.wasMixedShipping) {\n window.location.reload();//refresh page after removing item\n }\n\n } else {\n $body\n .trigger('minicart:update:qty', { qty: data.basket.numItems, resources: data.basket.resources })\n .trigger('minicart:update:content', data.basket)\n .trigger('basket:update:totals', data.basket)\n .trigger('basket:update:discounts', { discounts: data.basket.approachingDiscounts })\n .trigger('basket:update:promos', data.basket.totals.discountsHtml)\n .trigger('basket:validate', data.basket)\n .trigger('setShippingMethodSelection', data.basket);\n\n }\n }\n $.spinner().stop();\n waiNotify(button.data('action-message'));\n if (data.basket.items.length === 1 && !data.isMixShipmentEnabled) {\n $('.js-shipping-form-group .js-pickup-option').prop('disabled', false);\n }\n },\n error(err) {\n if (err.responseJSON.redirectUrl) {\n window.window.location.href = err.responseJSON.redirectUrl;\n } else {\n // Applies to Checkout - Shipping - Remove product when only one product left\n if ($('.shipping-section .b-shipping_product').length === 2 || $('.shipping-section .in-storepickup-card').length === 1) {\n window.location.reload();\n }\n $body.trigger('basket:notify', err.responseJSON.errorMessage);\n $.spinner().stop();\n waiNotify(button.data('action-message-canceled'));\n }\n }\n });\n });\n};\n","\n\nconst scrollAnimate = require('../components/scrollAnimate');\n\n/**\n * Display error messages and highlight form fields with errors.\n * @param {string} parentSelector - the form which contains the fields\n * @param {object} fieldErrors - the fields with errors\n * @param {boolean} animate - enable animation to field error\n */\nfunction loadFormErrors(parentSelector, fieldErrors, animate) { // eslint-disable-line\n const canAnimate = animate === undefined ? true : animate;\n // Display error messages and highlight form fields with errors.\n $.each(fieldErrors, (attr) => {\n $(`*[name=${attr}]`, parentSelector)\n .addClass('is-invalid')\n .siblings('.invalid-feedback')\n .html(fieldErrors[attr])\n .show();\n });\n\n if (canAnimate) {\n // Animate to top of form that has errors\n scrollAnimate($(parentSelector));\n }\n}\n\n/**\n * Clear the form errors.\n * @param {string} parentSelector - the parent form selector.\n */\nfunction clearPreviousErrors(parentSelector) {\n $(parentSelector).find('.form-control.is-invalid').removeClass('is-invalid');\n $('.error-message').hide();\n}\n\nmodule.exports = {\n loadFormErrors,\n clearPreviousErrors\n};\n","const PartialOverlay = class PartialOverlay {\n /**\n * This component serve as single tone of overlay for Search Combo and Global Menu.\n * The specific of this component is that it not cover header part of the site so\n * it looks like popups brings this overlay.\n * @param {Node} domNode\n */\n constructor(domNode) {\n this.overlay = domNode;\n this.handlers = [];\n\n this.visibleClassName = 'b-overlay-visible';\n this.hidingClassName = 'm-hiding';\n this.timeOut = 300;\n this.bodyClasses = document.body.classList;\n }\n\n _addEventListeners(handler) {\n this.overlay.addEventListener('click', handler);\n this.handlers.push(handler);\n }\n\n _removeEventListeners() {\n this.handlers.forEach(handler => this.overlay.removeEventListener('click', handler));\n this.handlers = [];\n }\n\n _addClasses() {\n this.bodyClasses.remove(this.hidingClassName);\n this.bodyClasses.add(this.visibleClassName);\n }\n\n _removeClasses() {\n this.bodyClasses.remove(this.visibleClassName);\n }\n\n _setHandler(clickHandler) {\n if (\n typeof clickHandler === 'function' &&\n this.handlers.indexOf(clickHandler) === -1\n ) {\n this._addEventListeners(clickHandler);\n }\n }\n\n open(clickHandler) {\n this._setHandler(clickHandler);\n this._addClasses();\n clearTimeout(this.timer);\n }\n\n close() {\n this.bodyClasses.add(this.hidingClassName);\n clearTimeout(this.timer); // clear previous timer and assign new\n this.timer = setTimeout(() => this._removeClasses(), this.timeOut);\n this._removeEventListeners();\n }\n\n destroy() {\n this._removeEventListeners();\n this._removeClasses();\n delete window.partialOverlay;\n }\n};\n\nmodule.exports = function () {\n const overlayNode = document.querySelector('[data-js-overlay]');\n window.partialOverlay = new PartialOverlay(overlayNode);\n};\n","module.exports = class FocusHighlighter {\n constructor(highlighterDomNode) {\n this.highlighter = highlighterDomNode;\n\n this.keyCode = Object.freeze({\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n });\n\n this.keyboardModality = false;\n this.isHighlighterVisible = false;\n this.lastFocusedElement = null;\n\n this.handleClick = this.handleClick.bind(this);\n this.handleKeyup = this.handleKeyup.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleFocusin = this.focus.bind(this);\n this.handleMutation = this.handleMutation.bind(this);\n\n this.updateHighlighter = this.updateHighlighter.bind(this);\n }\n\n\n /**\n * Iniialises the highlighter events and observer\n * @function init\n * @returns {void}\n */\n init() {\n this.initEventListeners();\n this.observeDOMChanges();\n document.body.classList.add('js-highlighter-inited');\n }\n\n /**\n * Observes DOM changes and triggers a callback function\n * @function observeDOMChanges\n * @returns {void}\n */\n observeDOMChanges() {\n const observer = new MutationObserver(this.handleMutation);\n observer.observe(document, { subtree: true, childList: true });\n }\n\n /**\n * Handles mutations in the DOM and updates the highlighter if needed\n * @param {MutationRecord[]} mutationsList - List of mutations in the DOM\n * @returns {void}\n */\n handleMutation(mutationsList) {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\n // New nodes added to the DOM, update the highlighter if needed\n this.updateHighlighter();\n } else if (mutation.type === 'attributes') {\n // Attribute of a node changed, update the highlighter if needed\n this.updateHighlighter();\n }\n }\n }\n\n /**\n * Updates the highlighter position if it is visible and there is a last focused element\n */\n updateHighlighter() {\n if (this.isHighlighterVisible && this.lastFocusedElement) {\n this.moveHighlighterTo(this.lastFocusedElement);\n }\n }\n\n initEventListeners() {\n document.addEventListener('keyup', this.handleKeyup);\n document.addEventListener('click', this.handleClick);\n window.addEventListener('resize', this.handleResize);\n }\n\n handleKeyup(e) {\n switch (e.keyCode) {\n case this.keyCode.TAB:\n this.keyboardModality = true;\n this.focus();\n document.addEventListener('focusin', this.handleFocusin);\n // all other events are handled by focusin event\n break;\n case this.keyCode.ESC:\n this.blur();\n document.removeEventListener('focusin', this.handleFocusin);\n break;\n default:\n }\n }\n\n handleClick(event) {\n // Space keyup on button DomNode generates synthetic click\n // so we need to ensure that it is not the one\n if (this.isHighlighterVisible && !(event.x === 0 && event.y === 0)) {\n this.blur();\n document.removeEventListener('focusin', this.handleFocusin);\n }\n }\n\n handleResize() {\n if (this.isHighlighterVisible) {\n this.blur();\n }\n }\n\n focus() {\n const focusedElement = document.activeElement;\n\n if (!this.isValidTarget(focusedElement) ||\n (FocusHighlighter.isTextInput(focusedElement) && !this.keyboardModality)) {\n return;\n }\n\n this.detectHurryNavigation();\n this.moveHighlighterTo(focusedElement);\n this.lastFocusedElement = focusedElement;\n }\n\n blur() {\n this.hideHighlighter();\n this.keyboardModality = false;\n this.lastFocusedElement = null;\n }\n\n moveHighlighterTo(focusedElement) {\n window.clearTimeout(this.hideTimeOut);\n\n const highlighterStyle = this.highlighter.style;\n highlighterStyle.top = `${focusedElement.getBoundingClientRect().top + window.scrollY - 1}px`;\n highlighterStyle.left = `${focusedElement.getBoundingClientRect().left + window.scrollX - 1}px`;\n highlighterStyle.width = `${focusedElement.offsetWidth + 2}px`;\n highlighterStyle.height = `${focusedElement.offsetHeight + 2}px`;\n\n this.highlighter.classList.add('m-visible');\n this.isHighlighterVisible = true;\n }\n\n hideHighlighter() {\n this.hideTimeOut = window.setTimeout(() => {\n const highlighterStyle = this.highlighter.style;\n highlighterStyle.width = '0';\n highlighterStyle.height = '0';\n }, 600);\n\n this.highlighter.classList.remove('m-visible');\n this.isHighlighterVisible = false;\n }\n\n detectHurryNavigation() {\n const currentTime = Date.now();\n\n if (currentTime - this.lastKeyTime < 190) {\n this.highlighter.classList.add('m-hurry');\n this.isHurryNavigation = true;\n } else if (this.isHurryNavigation) {\n this.highlighter.classList.remove('m-hurry');\n this.isHurryNavigation = false;\n }\n\n this.lastKeyTime = currentTime;\n }\n\n isValidTarget(domNode) {\n return !!(domNode &&\n domNode !== this.lastFocusedElement &&\n domNode !== document &&\n domNode.nodeName !== 'HTML' &&\n domNode.nodeName !== 'BODY'\n );\n }\n\n static isTextInput(domNode) {\n return !!((domNode.tagName === 'TEXTAREA' && !domNode.readOnly) ||\n (domNode.tagName === 'INPUT' && !domNode.readOnly) ||\n domNode.getAttribute('contenteditable'));\n }\n};\n","module.exports = class Grid {\n constructor(domNode) {\n this.domNode = domNode;\n this.grid = [];\n this.currentRow = 0;\n this.currentColumn = 0;\n this.navigationDisabled = false;\n\n this.keyCode = Object.freeze({\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n CTRL: 17\n });\n }\n\n init() {\n this.setupRoles();\n this.grid = this.setUpGridModel();\n this.setUpBoundariesBehavior();\n this.addEventListeners();\n if (this.grid.length && this.grid[0][0]) {\n this.grid[0][0].setAttribute('tabindex', '0');\n }\n }\n\n reinit() {\n this.grid = this.setUpGridModel();\n if (this.grid[0] && this.grid[0][0]) {\n this.grid[0][0].setAttribute('tabindex', '0');\n }\n }\n\n addEventListeners() {\n this.handleKeydown = this.handleKeydown.bind(this);\n this.handleClick = this.handleClick.bind(this);\n\n this.domNode.addEventListener('keydown', this.handleKeydown);\n this.domNode.addEventListener('click', this.handleClick);\n }\n\n handleKeydown(event) {\n if (!event || this.navigationDisabled) {\n return;\n }\n let preventEventActions = false;\n\n switch (event.keyCode) {\n case this.keyCode.UP:\n this.moveFocusTo(this.currentRow - 1, this.currentColumn);\n preventEventActions = true;\n break;\n\n case this.keyCode.DOWN:\n this.moveFocusTo(this.currentRow + 1, this.currentColumn);\n preventEventActions = true;\n break;\n\n case this.keyCode.LEFT:\n this.moveFocusTo(this.currentRow, this.currentColumn - 1);\n preventEventActions = true;\n break;\n\n case this.keyCode.RIGHT:\n this.moveFocusTo(this.currentRow, this.currentColumn + 1);\n preventEventActions = true;\n break;\n\n case this.keyCode.HOME:\n this.moveFocusTo(event.ctrlKey ? 0 : this.currentRow, 0);\n preventEventActions = true;\n break;\n\n case this.keyCode.END:\n this.moveFocusTo(\n event.ctrlKey ? (this.grid.length - 1) : this.currentRow,\n this.grid[this.currentRow].length - 1\n );\n preventEventActions = true;\n break;\n\n default:\n break;\n }\n\n if (preventEventActions) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n handleClick() {\n let cell;\n cell = this.findNodeInGrid(document.activeElement); // Chrome focus gridcell even if it has tabindex=-1\n if (cell) {\n this.moveFocusTo(cell.row, cell.col);\n }\n }\n\n moveFocusTo(row, column) {\n // This is bounds logic if all ok we just move focus to requested X:Y\n let moveToRow = row;\n let moveToColumn = column;\n\n // Lets handle default behaviour until altering is required\n if (this.rowsBounds === 'loop') {\n moveToRow = this.rowLoop(row);\n } else {\n moveToRow = this.rowStop(row);\n }\n\n if (this.colsBounds === 'loop') {\n moveToColumn = this.columnLoop(column);\n } else {\n moveToColumn = this.columnStop(column);\n }\n\n // Altering requested position if Wrap options is enabled and we in bounds case\n if (this.rowsBounds === 'wrap') {\n // if this last column in row move to the next row\n const alteredControl = this.rowWrap(column, row);\n if (alteredControl) {\n moveToColumn = alteredControl.alteredCol;\n moveToRow = alteredControl.alteredRow;\n }\n }\n\n if (this.colsBounds === 'wrap') {\n // if this row is last move to the first row and next column\n const alteredControl = this.columnWrap(column, row);\n if (alteredControl) {\n moveToColumn = alteredControl.alteredCol;\n moveToRow = alteredControl.alteredRow;\n }\n }\n\n if (!this.grid[moveToRow][moveToColumn]) {\n return;\n }\n\n Grid.blurCell(this.grid[this.currentRow][this.currentColumn]);\n Grid.focusCell(this.grid[moveToRow][moveToColumn]);\n this.currentRow = moveToRow;\n this.currentColumn = moveToColumn;\n }\n\n rowStop(row) {\n const rowLength = this.grid.length - 1;\n\n if (row < 0) {\n return 0;\n } else if (row > rowLength) {\n return rowLength;\n }\n\n return row;\n }\n\n rowLoop(row) {\n const rowLength = this.grid.length - 1;\n\n if (row < 0) {\n return rowLength;\n } else if (row > rowLength) {\n return 0;\n }\n\n return row;\n }\n\n rowWrap(column, row) {\n const colsTotal = this.grid[this.currentRow].length - 1;\n\n if (column < 0) {\n return {\n alteredRow: this.rowLoop(row - 1),\n alteredCol: this.columnLoop(column)\n };\n } else if (column > colsTotal) {\n return {\n alteredRow: this.rowLoop(row + 1),\n alteredCol: this.columnLoop(column)\n };\n }\n\n return null;\n }\n\n columnStop(column) {\n const colsLength = this.grid[this.currentRow].length - 1;\n\n if (column < 0) {\n return 0;\n } else if (column > colsLength) {\n return colsLength;\n }\n\n return column;\n }\n\n columnLoop(column) {\n const colsLength = this.grid[this.currentRow].length - 1;\n\n if (column < 0) {\n return colsLength;\n } else if (column > colsLength) {\n return 0;\n }\n\n return column;\n }\n\n columnWrap(column, row) {\n const rowLength = this.grid.length - 1;\n\n if (row < 0) {\n return {\n alteredRow: this.rowLoop(row),\n alteredCol: this.columnLoop(column - 1)\n };\n } else if (row > rowLength) {\n return {\n alteredRow: this.rowLoop(row),\n alteredCol: this.columnLoop(column + 1)\n };\n }\n\n return null;\n }\n\n static focusCell(domNode) {\n domNode.setAttribute('tabindex', '0');\n domNode.focus();\n }\n\n static blurCell(domNode) {\n if (domNode) {\n domNode.setAttribute('tabindex', '-1');\n }\n }\n\n findNodeInGrid(domNode) {\n for (let row = 0; row < this.grid.length; row++) {\n for (let col = 0; col < this.grid[row].length; col++) {\n if (this.grid[row][col] === domNode) {\n return { row, col };\n }\n }\n }\n }\n\n setUpGridModel() {\n const grid = [];\n\n this.domNode.querySelectorAll('[role=row]').forEach(row => {\n const cells = [];\n\n row.querySelectorAll('[role=gridcell]').forEach(cell => {\n // check if cell is not hidden\n if (cell.hasAttribute('data-roving-tab-target') || cell.hasAttribute('tabindex')) {\n cell.tabIndex = -1;\n cells.push(cell);\n } else {\n const focusableCell = cell.querySelector('[tabindex], [data-roving-tab-target]');\n if (focusableCell) {\n focusableCell.tabIndex = -1;\n cells.push(focusableCell);\n }\n }\n });\n\n if (cells.length) {\n grid.push(cells);\n }\n });\n\n return grid;\n }\n\n setUpBoundariesBehavior() {\n this.wrapRows = this.getSettingAttributeValue('data-wrap-rows');\n this.wrapCols = this.getSettingAttributeValue('data-wrap-cols');\n this.loopRows = this.getSettingAttributeValue('data-loop-rows');\n this.loopCols = this.getSettingAttributeValue('data-loop-cols');\n\n switch (true) {\n case this.wrapRows:\n this.rowsBounds = 'wrap';\n break;\n case this.loopRows:\n this.rowsBounds = 'loop';\n break;\n default:\n this.rowsBounds = 'stop';\n }\n\n switch (true) {\n case this.wrapCols:\n this.colsBounds = 'wrap';\n break;\n case this.loopCols:\n this.colsBounds = 'loop';\n break;\n default:\n this.colsBounds = 'stop';\n }\n }\n\n getSettingAttributeValue(attrName) {\n const attr = this.domNode.getAttribute(attrName);\n return attr === '' || attr === 'true';\n }\n\n setupRoles() {\n if (!this.domNode.hasAttribute('data-role')) {\n return;\n }\n\n this.domNode.parentElement.querySelectorAll('[data-role]').forEach(node =>\n node.setAttribute('role', node.getAttribute('data-role')));\n }\n\n destroyRoles() {\n if (!this.domNode.hasAttribute('data-role')) {\n return;\n }\n\n this.domNode.parentElement.querySelectorAll('[data-role]').forEach(node =>\n node.removeAttribute('role'));\n }\n\n destroy() {\n this.destroyRoles();\n this.domNode.removeEventListener('keydown', this.handleKeydown);\n this.domNode.removeEventListener('click', this.handleClick);\n this.domNode.querySelectorAll('[data-roving-tab-target]').forEach(item => {\n item.tabIndex = 0;\n });\n }\n};\n","class Notifier {\n constructor(domNode) {\n this.notifier = domNode;\n this.hideTimer = null;\n }\n\n init() {\n this.initRoles();\n this.initComponentReference();\n }\n\n destroy() {\n this.destroyComponentReference();\n }\n\n notify(message) {\n if (this.hideTimer) {\n window.clearTimeout(this.hideTimer);\n }\n\n if (this.notifier.innerText === '') {\n this.notifier.innerText = message;\n } else {\n this.notifier.innerText += '\\n' + message;\n }\n\n this.show();\n }\n\n show() {\n this.notifier.setAttribute('aria-hidden', 'false');\n this.hideTimer = window.setTimeout(this.hide.bind(this), 2000);\n }\n\n hide() {\n this.notifier.setAttribute('aria-hidden', 'true');\n this.notifier.innerText = '';\n }\n\n initRoles() {\n this.notifier.setAttribute('role', 'alert');\n this.notifier.setAttribute('aria-hidden', 'true');\n }\n\n initComponentReference() {\n this.notifier.widget = this;\n }\n\n destroyComponentReference() {\n delete this.notifier.widget;\n }\n}\n\nmodule.exports = function() {\n const notifierNode = document.querySelector('.js-notifier');\n if (notifierNode) {\n new Notifier(notifierNode).init();\n }\n};\n","const Grid = require('./Grid');\nconst FocusHighlighter = require('./FocusHighlighter');\n\nmodule.exports = () => {\n document.body.classList.remove('m-no_js');\n\n const highlighterNode = document.querySelector('[data-js-highlighter]');\n if (highlighterNode) {\n new FocusHighlighter(highlighterNode).init();\n }\n\n const grids = document.querySelectorAll('[role=\"grid\"]');\n grids.forEach(grid => new Grid(grid).init());\n};\n","module.exports = function () {\n $('body').on('click', '.js-login-mobile', (event) => {\n let $modalContainer = $($('.js-mobile-modal').html());\n $('body').append($modalContainer);\n window.dialogManager.openDialog('panel', '#accountModal', event.target);\n });\n};\n","// @ts-ignore\nconst Quagga = require('quagga');\nconst resources = require('resources');\n\nmodule.exports = function () {\n\n // Create the QuaggaJS config object for the live stream\n var liveStreamConfig = {\n inputStream: {\n type: 'LiveStream',\n constraints: {\n width: {min: 800},\n height: {min: 400},\n aspectRatio: {min: 1, max: 100},\n facingMode: 'environment' // or \"user\" for the front camera\n }\n },\n locator: {\n patchSize: 'medium',\n halfSample: true\n },\n numOfWorkers: (navigator.hardwareConcurrency ? navigator.hardwareConcurrency : 4),\n decoder: {\n readers: [\n {format: 'upc_reader', config: {}},\n {format: 'ean_reader', config: {}}\n ]\n },\n frequency: 5,\n locate: true\n };\n // The fallback to the file API requires a different inputStream option.\n // The rest is the same\n var fileConfig = $.extend(\n {},\n liveStreamConfig,\n {\n inputStream: {\n size: 800\n }\n }\n );\n // Start the live stream scanner when the modal opens\n var $liveStreamScannerSelector = $('#livestream_scanner')[0];\n if ($liveStreamScannerSelector) {\n $liveStreamScannerSelector.addEventListener('dialog:open', () => {\n Quagga.init(\n liveStreamConfig,\n (err) => {\n if (err) {\n var SystemError = 'getUserMedia is not defined';\n var ErrorMessage = err.message;\n var errorHtml = '<div class=\"alert alert-danger\"><strong><i class=\"fa fa-exclamation-triangle\"></i>';\n\n if (ErrorMessage === SystemError) {\n ErrorMessage = resources.errorMessageBarcode;\n errorHtml += '</strong> ' + ErrorMessage + '</div>';\n } else {\n errorHtml += err.name + '</strong>: ' + ErrorMessage + '</div>';\n }\n\n $('#livestream_scanner .modal-body .error').html(errorHtml);\n\n Quagga.stop();\n return;\n }\n Quagga.start();\n }\n );\n });\n }\n\n // Make sure, QuaggaJS draws frames an lines around possible\n // barcodes on the live stream\n Quagga.onProcessed((result) => {\n var drawingCtx = Quagga.canvas.ctx.overlay,\n drawingCanvas = Quagga.canvas.dom.overlay;\n\n if (result) {\n if (result.boxes) {\n drawingCtx.clearRect(0, 0, parseInt(drawingCanvas.getAttribute('width')), parseInt(drawingCanvas.getAttribute('height')));\n result.boxes.filter((box) => {\n return box !== result.box;\n }).forEach((box) => {\n Quagga.ImageDebug.drawPath(box, {x: 0, y: 1}, drawingCtx, {color: 'green', lineWidth: 2});\n });\n }\n\n if (result.box) {\n Quagga.ImageDebug.drawPath(result.box, {x: 0, y: 1}, drawingCtx, {color: '#00F', lineWidth: 2});\n }\n\n if (result.codeResult && result.codeResult.code) {\n Quagga.ImageDebug.drawPath(result.line, {x: 'x', y: 'y'}, drawingCtx, {color: 'red', lineWidth: 3});\n }\n }\n });\n\n function processResult(code) {\n var url = $('#scanner_button').data('url');\n $.ajax({\n url: url,\n type: 'get',\n data: {code: code},\n dataType: 'json',\n success: function (data) {\n location.href = data.url;\n },\n error: function () {\n }\n });\n }\n\n // Once a barcode had been read successfully, stop quagga and\n // close the modal after a second to let the user notice where\n // the barcode had actually been found.\n Quagga.onDetected((result) => {\n if (result.codeResult.code) {\n Quagga.stop();\n // @ts-ignore\n $('#livestream_scanner').hide();\n processResult(result.codeResult.code);\n }\n });\n\n // Stop quagga in any case, when the modal is closed\n if ($liveStreamScannerSelector) {\n $('#livestream_scanner')[0].addEventListener('dialog:closed', () => {\n if (Quagga) {\n Quagga.stop();\n }\n });\n }\n\n // Call Quagga.decodeSingle() for every file selected in the\n // file input\n $('#livestream_scanner input:file').on('change', (e) => {\n if (e.target.files && e.target.files.length) {\n Quagga.decodeSingle($.extend({}, fileConfig, {src: URL.createObjectURL(e.target.files[0])}), (result) => {\n Quagga.stop();\n processResult(result.codeResult.code);\n });\n }\n });\n};\n","const Expand = require('./togglers/Expand');\nconst CompositedComponent = require('./utils/CompositedComponent');\n\n\n/**\n* Initializes the breadcrumbs disclosure component\n*/\nfunction init() {\n const button = document.querySelector('.js-breadcrumbs-disclosure');\n\n if (button) {\n const Noop = class Noop {\n constructor() {\n }\n\n init() {\n }\n\n destroy() {\n }\n };\n\n new CompositedComponent(new Expand(button), window.styleConstants.breakpoint.small, new Noop());\n }\n}\n\nmodule.exports = {\n init: init\n};\n","/**\n * Remove validation.\n * @param {element} field - field to be cleared\n */\nfunction clearField(field) {\n $(field)\n .removeClass('is-invalid')\n .siblings('.invalid-feedback')\n .hide()\n .html('');\n}\n\nfunction focusOnFirstError(form) {\n for (let i = 0; i < form.length; i++) {\n if (!form[i].validity.valid) {\n form[i].focus();\n break;\n }\n }\n}\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearForm(form) {\n $(form)\n .find('.form-control.is-invalid')\n .removeClass('is-invalid')\n .siblings('.invalid-feedback')\n .hide()\n .html('');\n}\n\n/**\n * Validate whole form. Requires `this` to be set to form object\n * @param {jQuery.event} event - Event to be canceled if form is invalid.\n * @returns {boolean} - Flag to indicate if form is valid\n */\nfunction validateForm(event) {\n let valid = true;\n if (this.checkValidity && !this.checkValidity()) {\n // safari\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n $(this).find('input, select').each(function () {\n if (!this.validity.valid) {\n valid = false;\n $(this).trigger('invalid', this.validity);\n }\n });\n }\n return valid;\n}\n/**\n * Toggles the subscription button based on the conditions and privacy checkbox and subscription options\n */\nfunction toggleSubscriptionButton() {\n var $subscriptionBtn = $('.js-confirm-subscription-button');\n\n var subscriptionOptionsExist = $('.js-subscription-list-checkbox').length > 0;\n var conditionsAndPrivacyChecked = $('.js-conditions-and-privacy:checked').length !== 0;\n\n if (conditionsAndPrivacyChecked) {\n if (subscriptionOptionsExist) {\n var subscriptionOptionsSelected = $('.js-subscription-list-checkbox:checked').length !== 0;\n $subscriptionBtn.prop('disabled', !subscriptionOptionsSelected);\n } else {\n $subscriptionBtn.prop('disabled', false);\n }\n } else {\n $subscriptionBtn.prop('disabled', true);\n }\n}\nfunction validateEmailField(targetElement) {\n const $targetElement = $(targetElement);\n const $newEmailField = $('.js-new-email');\n\n if ($targetElement.hasClass('js-emailId')) {\n if ($targetElement.val().match(/\"|<|>/)) {\n $targetElement[0].setCustomValidity($targetElement.data('pattern-mismatch-custom'));\n $targetElement.addClass('is-invalid');\n } else if ($targetElement.hasClass('js-confirm-email')) {\n if ($newEmailField.val() !== $targetElement.val() && $targetElement.data('confirmemail-mismatch')) {\n $targetElement[0].setCustomValidity($targetElement.data('confirmemail-mismatch'));\n $newEmailField.addClass('is-invalid');\n $targetElement.addClass('is-invalid');\n } else {\n $newEmailField.removeClass('is-invalid');\n $targetElement.removeClass('is-invalid');\n }\n } else {\n $targetElement[0].setCustomValidity('');\n $newEmailField.removeClass('is-invalid');\n $targetElement.removeClass('is-invalid');\n }\n }\n}\n/**\n * Validate field immediate after blur\n */\nfunction realTimeValidationForm() { // eslint-disable-line complexity\n const $targetElement = $(this);\n\n validateEmailField(this);\n\n if ($targetElement.hasClass('js-agreement')) {\n $('.js-dataLayer-account-sign-in').attr('disabled', !$targetElement.prop('checked'));\n }\n\n if ($targetElement.hasClass('js-input-trim')) {\n $targetElement.val($targetElement.val().trim());\n }\n\n if ($targetElement.attr('type') === 'password' && $targetElement.hasClass('js-confirm-password')) {\n const $newPasswordField = $('.js-new-password:visible');\n const newPasswordElementValue = $newPasswordField.val();\n if (newPasswordElementValue !== $targetElement.val() && $targetElement.data('confirmpassword-mismatch')) {\n $targetElement[0].setCustomValidity($targetElement.data('confirmpassword-mismatch'));\n $newPasswordField.addClass('is-invalid');\n $targetElement.addClass('is-invalid');\n } else {\n $targetElement[0].setCustomValidity('');\n $newPasswordField.removeClass('is-invalid');\n $targetElement.removeClass('is-invalid');\n }\n }\n\n if ($targetElement.hasClass('js-subscription-list-checkbox')) {\n const $otherSubscriptionListsCheckboxes = $('.js-subscription-list-checkbox').not($targetElement);\n const $otherSubscriptionListsCheckboxesChecked = $('.js-subscription-list-checkbox:checked').not($targetElement);\n\n $otherSubscriptionListsCheckboxes.prop(\n 'required',\n !$targetElement.prop('checked') && ($otherSubscriptionListsCheckboxesChecked.length <= 1)\n );\n }\n\n if ($targetElement.hasClass('js-subscription-list-checkbox') || $targetElement.hasClass('js-conditions-and-privacy')) {\n toggleSubscriptionButton();\n }\n if ($targetElement.hasClass('js-textarea-with-range-error')) {\n if ((Number($targetElement.attr('maxlength')) === Number($targetElement[0].textLength))) {\n $targetElement.addClass('is-invalid');\n $targetElement.parents('.form-group').find('.invalid-feedback')\n .text($targetElement.data('range-error')).show();\n } else {\n $targetElement.parents('.form-group').find('.invalid-feedback')\n .text('').show();\n $targetElement.removeClass('is-invalid');\n }\n return;\n }\n\n if ($targetElement.hasClass('l-checkout-gift_message-area')) {\n const regex = /(\\p{Emoji_Presentation}|[\\u{1F600}-\\u{1F64F}\\u{1F300}-\\u{1F5FF}\\u{1F680}-\\u{1F6FF}\\u{2600}-\\u{26FF}\\u{2700}-\\u{27BF}])/gu;\n\n if (regex.test(this.value)) {\n $targetElement.addClass('is-invalid');\n $targetElement.parents('.form-group').find('.invalid-feedback').text($targetElement.data('pattern-mismatch')).show();\n } else {\n $targetElement.parents('.form-group').find('.invalid-feedback').text('').show();\n $targetElement.removeClass('is-invalid');\n }\n\n return;\n }\n\n if (!this.validity.valid) {\n $(this).trigger('invalid', this.validity);\n } else {\n if ($(this).is(':not(#js-shippingAddressTwo)')) {\n clearField(this);\n }\n if ($(this).hasClass('js-subscription-list-checkbox')) {\n clearField($('.js-subscription-list-checkbox'));\n }\n }\n}\n\nmodule.exports = {\n init() {\n this.invalid();\n this.submit();\n this.realTimeValidation();\n this.buttonClick();\n this.clearModalForms();\n },\n\n invalid() {\n const invalidateFunction = function (e) { // eslint-disable-line complexity\n e.preventDefault();\n if ($(e.currentTarget).hasClass('js-conditions-and-privacy')) {\n toggleSubscriptionButton();\n }\n if ($(this).hasClass('js-confirm-password')) {\n const validationMessage = $(this).data('confirmpassword-mismatch');\n $(this).parents('.form-group').find('.invalid-feedback')\n .text(validationMessage).show();\n }\n\n if ($(this).hasClass('js-emailId')) {\n const validationMessage = $(this).data('pattern-mismatch-custom');\n $(this).parents('.form-group').find('.invalid-feedback')\n .text(validationMessage).show();\n }\n\n this.setCustomValidity('');\n\n if (!this.validity.valid) {\n let { validationMessage } = this;\n $(this).addClass('is-invalid');\n if (this.validity.patternMismatch && $(this).data('pattern-mismatch')) {\n validationMessage = $(this).data('pattern-mismatch');\n }\n\n // Seems like ranges validation works only on type number\n if (\n (this.validity.rangeOverflow || this.validity.rangeUnderflow) &&\n $(this).data('range-error')\n ) {\n validationMessage = $(this).data('range-error');\n }\n if (\n (this.validity.tooLong || this.validity.tooShort) &&\n $(this).data('range-error')\n ) {\n validationMessage = $(this).data('range-error');\n }\n if (this.validity.valueMissing && $(this).data('missing-error')) {\n validationMessage = $(this).data('missing-error');\n }\n if (this.validity.typeMismatch && $(this).data('type-mismatch')) {\n validationMessage = $(this).data('type-mismatch');\n }\n $(this).parents('.form-group').find('.invalid-feedback')\n .text(validationMessage).show();\n }\n };\n\n $(':input').on('invalid', invalidateFunction);\n },\n\n submit() {\n $('form').on('submit', function (e) {\n const valid = validateForm.call(this, e);\n\n if (!valid && $(this).data('focusOnError')) {\n focusOnFirstError(this);\n }\n return valid;\n });\n },\n\n realTimeValidation() {\n $('input[type!=\"checkbox\"], select').off('invalid', realTimeValidationForm);\n $('input[type=\"checkbox\"]').off('change', realTimeValidationForm);\n $('textarea').off('focusout', realTimeValidationForm);\n\n $('input[type!=\"checkbox\"], select').on('focusout', realTimeValidationForm);\n $('input[type=\"checkbox\"]').on('change', realTimeValidationForm);\n $('textarea').on('focusout', realTimeValidationForm);\n },\n\n buttonClick() {\n $('form button[type=\"submit\"], form input[type=\"submit\"]').on('click', function () {\n // clear all errors when trying to submit the form\n clearForm($(this).parents('form'));\n });\n },\n\n clearModalForms() {\n document.addEventListener('dialog:closed', event =>\n clearForm(event.target.querySelector('form')));\n },\n\n functions: {\n validateForm(form, event) {\n return validateForm.call($(form)[0], event || null);\n },\n clearForm\n }\n};\n","/**\n * Renders a modal window that will track the users consenting to accepting site tracking policy\n */\nfunction showConsentModal() {\n const prepopulatedData = $('.js-concent-tracking');\n if (!prepopulatedData.data('caonline') || prepopulatedData.data('isconsenttrackingaccepted')) {\n return;\n }\n\n const urlContent = prepopulatedData.data('url');\n\n function onSuccess(responce) {\n const urlAccept = prepopulatedData.data('accept');\n const urlReject = prepopulatedData.data('reject');\n const textYes = prepopulatedData.data('accepttext');\n const textNo = prepopulatedData.data('rejecttext');\n const textHeader = prepopulatedData.data('heading');\n\n const htmlString = `\n <div\n class=\"modal consent-tracking\"\n id=\"consent-tracking\"\n role=\"dialog\"\n data-isForcedToChoice=\"true\"\n aria-labelledby=\"consent-tracking-title\"\n aria-describedby=\"consent-tracking-body\"\n >\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header\" id=\"consent-tracking-title\">${textHeader}</div>\n <div class=\"modal-body\" id=\"consent-tracking-body\">${responce}</div>\n <div class=\"modal-footer\">\n <div class=\"button-wrapper\">\n <button\n class=\"b-button m-condenced js-concent-button affirm\"\n data-url=\"${urlAccept}\"\n title=\"${textYes}\"\n >\n ${textYes}\n </button>\n <button\n class=\"b-button m-condenced m-red js-concent-button decline\"\n data-url=\"${urlReject}\"\n title=\"${textNo}\"\n >\n ${textNo}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n `;\n\n $('.js-concent-tracking').append(htmlString);\n window.dialogManager.openDialog('modal', '#consent-tracking', document.body);\n }\n\n // get content\n $.ajax({\n url: urlContent,\n type: 'get',\n dataType: 'html',\n success(response) {\n onSuccess(response);\n },\n error() {\n\n }\n });\n\n prepopulatedData.on('click', '.js-concent-button', function (e) {\n e.preventDefault();\n const url = $(this).data('url');\n\n $.ajax({\n url,\n type: 'get',\n dataType: 'json',\n success(data) {\n window.dialogManager.closeDialog();\n window.setTimeout(() => $('#consent-tracking').remove(), 1000);\n if (data.redirectUrl) {\n window.location.href = data.redirectUrl;\n }\n },\n error() {\n window.dialogManager.closeDialog();\n window.setTimeout(() => $('#consent-tracking').remove(), 1000);\n }\n });\n });\n}\n\nmodule.exports = function () {\n if ($('.consented').length === 0 && $('.js-concent-tracking').hasClass('api-true')) {\n showConsentModal();\n }\n};\n","const COOKIE_MODAL = 'cookieModal';\nconst COOKIE_MODAL_VALUE = 'closed';\nconst COOKIE_MODAL_TIMEOUT = 'cookieModalTimeout';\n\nconst cookieModal = {\n init() {\n this.cookieModal = document.body.querySelector('.cookie-modal');\n\n const timeout = Number(this.cookieModal ? this.cookieModal.dataset.timeout : 0);\n\n this.timeout = isNaN(timeout) ? 0 : timeout;\n\n if (!this.cookieModal || this.getCookie(COOKIE_MODAL) || (this.timeout && this.autoClose())) {\n return;\n }\n\n this.cookieModalCloseBtn = this.cookieModal.querySelector('.cookie-modal-close');\n\n this.showCookieModal();\n this.events();\n },\n\n autoClose() {\n const timeoutCookie = Number(this.getCookie(COOKIE_MODAL_TIMEOUT));\n const currentTime = (new Date()).getTime();\n\n if (timeoutCookie) {\n if (!isNaN(timeoutCookie) && (timeoutCookie < currentTime)) {\n this.setCookie(COOKIE_MODAL, COOKIE_MODAL_VALUE);\n this.removeCookie(COOKIE_MODAL_TIMEOUT);\n\n return true;\n }\n } else {\n this.setCookie(COOKIE_MODAL_TIMEOUT, currentTime + (this.timeout * 60 * 1000));\n }\n\n return false;\n },\n\n events() {\n if (this.cookieModalCloseBtn) {\n this.cookieModalCloseBtn.addEventListener('click', this.closeCookieModal.bind(this));\n }\n },\n\n showCookieModal() {\n this.cookieModal.classList.add('js-show');\n $('.js-sticky-footer').addClass('cookie-active');\n\n this.waitForEl('.helpButton', () => {\n $('.helpButton').addClass('fixed-cookie');\n });\n },\n\n waitForEl(selector, callback) {\n if ($(selector).length) {\n callback();\n } else {\n setTimeout(() => {\n this.waitForEl(selector, callback);\n }, 100);\n }\n },\n\n closeCookieModal() {\n this.cookieModal.style.bottom = `-${this.cookieModal.offsetHeight}px`;\n this.cookieModal.addEventListener('transitionend', () => this.cookieModal.classList.remove('js-show'));\n\n this.setCookie(COOKIE_MODAL, COOKIE_MODAL_VALUE);\n\n $('.helpButton').removeClass('fixed-cookie');\n $('.js-sticky-footer').removeClass('cookie-active');\n },\n\n getCookie(name) {\n let matches = document.cookie.match(new RegExp(`(?:^|; )${name}=([^;]*)`));\n\n return matches ? decodeURIComponent(matches[1]) : null;\n },\n\n setCookie(name, value) {\n document.cookie = `${name}=${value}; max-age=2592000; path=/;`;\n },\n\n removeCookie(name) {\n document.cookie = `${name}=; max-age=0; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;`;\n }\n};\n\nmodule.exports = function() {\n cookieModal.init();\n};\n","module.exports = function () {\n $(document).on('click', '.js-switch-locale-button', (e) => {\n e.preventDefault();\n\n const $link = $(e.target);\n const $page = $('.js-page');\n const action = $page.data('action');\n var queryString = $page.data('querystring');\n var hashPresent = queryString.split('#')[1];\n if (!hashPresent && window.location.href.split('#')[1]) {\n queryString += '#' + window.location.href.split('#')[1];\n }\n\n const localeCode = $link.data('locale');\n const localeCurrencyCode = $link.data('currencycode');\n const url = $('.js-country_selector').data('url');\n\n $.ajax({\n url,\n type: 'get',\n dataType: 'json',\n data: {\n code: localeCode,\n queryString,\n CurrencyCode: localeCurrencyCode,\n action\n },\n success(response) {\n if (response && response.redirectUrl) {\n window.window.location.href = response.redirectUrl;\n }\n },\n error() {}\n });\n });\n};\n","function setPromotionsTracking() {\n var promotionsArray = [];\n\n $('.js-datalayer-promo').each(function() {\n var data = $(this).attr('data-context');\n\n if (data) {\n data = JSON.parse(data);\n promotionsArray.push(data);\n }\n });\n\n if (promotionsArray.length > 0) {\n window.dataLayer.push({\n ecommerce: {\n promoView: {\n promotions: promotionsArray\n }\n }\n });\n }\n}\n\nfunction setCustomerContext() {\n var $dataLayerContext = $('.js-datalayer-context'),\n dataObject = {};\n\n $dataLayerContext.each(function() {\n var data = $(this).attr('data-context');\n\n if (data) {\n data = JSON.parse(data);\n $.extend(true, dataObject, data);\n }\n });\n\n window.dataLayer.push({\n event: 'virtualPageview',\n loginStatus: dataObject.loginStatus,\n userId: dataObject.customerID,\n pageType: dataObject.pageType || ''\n });\n}\n\nfunction setGlobalVariable() {\n var $context = $('.js-global-variables'),\n data = $context.attr('data-context');\n\n if (data) {\n data = JSON.parse(data);\n window.user_email = 'customerEmail' in data ? data.customerEmail : '';\n window.user_FirstName = 'firstName' in data ? data.firstName : '';\n }\n}\n\nmodule.exports = function () {\n setCustomerContext();\n setPromotionsTracking();\n setGlobalVariable();\n\n $(document).on('click', '.js-datalayer-promo', function() {\n var data = $(this).attr('data-context');\n\n if (data) {\n data = JSON.parse(data);\n window.dataLayer.push({\n event: 'promotionClick',\n ecommerce: {\n promoClick: {\n promotions: [data]\n }\n }\n });\n }\n });\n};\n","const FocusUtils = require('./FocusUtils');\n\nmodule.exports = class Dialog {\n /*\n * Dialog / Alert dialog\n * This content is licensed according to the W3C Software License at\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * Please see full specifications at:\n * https://www.w3.org/TR/wai-aria-practices/examples/dialog-modal/dialog.html\n * https://www.w3.org/TR/wai-aria-practices/#alertdialog\n */\n constructor(dialogManager, dialogNode, focusAfterClose, focusAfterOpen) {\n this.dialogManager = dialogManager;\n this.dialogNode = dialogNode;\n this.focusAfterClose = Dialog.setFocusAfterCloseElement(focusAfterClose);\n this.focusAfterOpen = Dialog.setFocusAfterOpenElement(focusAfterOpen);\n this.isForcedToChoice = this.dialogNode.getAttribute('data-isForcedToChoice') || false; // allow close only by choice\n this.forcedChoiceAlertMessage = this.dialogNode.getAttribute('data-forcedChoiceAlertMessage') || 'Please make a choice in modal window';\n this.backdropNode = null;\n\n // Additional methods\n this.focusFirstDescendant = FocusUtils.focusFirstDescendant;\n this.focusLastDescendant = FocusUtils.focusLastDescendant;\n this.searchingFocusedElement = FocusUtils.searchingFocusedElement;\n\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBackdropClick = this.handleBackdropClick.bind(this);\n }\n\n create() {\n this.initBackdrop();\n this.createFocusTrap();\n this.initEventListeners();\n\n this.dialogNode.classList.add('is-open');\n this.dialogNode.setAttribute('aria-hidden', 'false');\n\n // handle animation/transition delay that could temporary modify a11y tree\n // focus could not trap into modal if user tab before this timeout\n // please see tab handler\n const handleTransitionEnd = (event) => {\n if (event && event.target !== this.dialogNode) {\n return;\n }\n clearTimeout(this.transitionEndFallbackTimeout);\n this.dialogNode.removeEventListener('transitionend', handleTransitionEnd);\n this.focusElementAfterOpen();\n };\n this.dialogNode.addEventListener('transitionend', handleTransitionEnd);\n this.transitionEndFallbackTimeout = setTimeout(handleTransitionEnd, 500);\n\n this.afterOpen();\n\n return true;\n }\n\n destroy() {\n this.beforeClose();\n\n this.removeEventListeners();\n this.removeFocusTrap();\n this.removeBackdrop();\n\n this.dialogNode.classList.remove('is-open');\n this.dialogNode.setAttribute('aria-hidden', 'true');\n\n this.focusElementAfterClose();\n\n return true;\n }\n\n bringDown() {\n this.removeEventListeners();\n this.backdropNode.classList.remove('is-top-dialog');\n }\n\n bringOnTop() {\n this.initEventListeners();\n this.backdropNode.classList.add('is-top-dialog');\n }\n\n focusElementAfterOpen() {\n return this.focusAfterOpen ? this.focusAfterOpen.focus() : this.focusFirstDescendant(this.dialogNode);\n }\n\n focusElementAfterClose() {\n this.focusAfterClose.focus();\n }\n\n initEventListeners() {\n document.addEventListener('focus', this.handleFocus, true);\n }\n\n removeEventListeners() {\n document.removeEventListener('focus', this.handleFocus, true);\n }\n\n handleFocus(event) {\n if (this.searchingFocusedElement) {\n return;\n }\n\n switch (true) {\n case (event.target === this.boundFocusNodeStart):\n this.focusLastDescendant(this.dialogNode);\n break;\n case (event.target === this.boundFocusNodeEnd):\n this.focusFirstDescendant(this.dialogNode);\n break;\n case (!this.dialogNode.contains(event.target)):\n this.focusFirstDescendant(this.dialogNode); // in case when window is animated and user tab\n break;\n default:\n }\n }\n\n createFocusTrap() {\n // Enclose the dialog node with two invisible, focusable nodes.\n // While this dialog is open, we use these to make sure that focus never\n // leaves the document even if dialogNode is the first or last node.\n // This start to work only when some element inside dialog is focused so\n // please see focusElementAfterOpen\n\n const firstFocusable = document.createElement('div');\n firstFocusable.tabIndex = 0;\n this.backdropNode.insertBefore(firstFocusable, this.dialogNode);\n this.boundFocusNodeStart = firstFocusable;\n\n const lastFocusable = document.createElement('div');\n lastFocusable.tabIndex = 0;\n this.backdropNode.insertBefore(lastFocusable, this.dialogNode.nextSibling);\n this.boundFocusNodeEnd = lastFocusable;\n }\n\n removeFocusTrap() {\n this.backdropNode.removeChild(this.boundFocusNodeStart);\n this.backdropNode.removeChild(this.boundFocusNodeEnd);\n }\n\n initBackdrop() {\n const backdropClass = 'js-dialog-backdrop';\n\n let parent = this.dialogNode.parentNode;\n if (parent.classList.contains(backdropClass)) {\n this.backdropNode = parent;\n } else {\n this.encloseModalWithBackdrop(backdropClass);\n }\n\n this.backdropNode.addEventListener('mousedown', this.handleBackdropClick);\n this.backdropNode.classList.add('is-active');\n this.backdropNode.classList.add('is-top-dialog');\n }\n\n removeBackdrop() {\n this.backdropNode.removeEventListener('mousedown', this.handleBackdropClick);\n this.backdropNode.classList.remove('is-active');\n this.backdropNode.classList.remove('is-top-dialog');\n }\n\n encloseModalWithBackdrop(backdropClass) {\n this.backdropNode = document.createElement('div');\n this.backdropNode.className = backdropClass;\n this.dialogNode.parentNode.insertBefore(this.backdropNode, this.dialogNode);\n this.backdropNode.appendChild(this.dialogNode);\n }\n\n handleBackdropClick(event) {\n if (event.target !== this.backdropNode) {\n return;\n }\n\n this.dialogManager.closeDialogFromOutside();\n }\n\n afterOpen() {}\n\n beforeClose() {}\n\n static setFocusAfterOpenElement(focusFirst) {\n let focusElement;\n if (typeof focusFirst === 'string') {\n focusElement = document.getElementById(focusFirst);\n } else if (typeof focusFirst === 'object') {\n focusElement = focusFirst;\n } else {\n focusElement = null;\n }\n\n return focusElement;\n }\n\n static setFocusAfterCloseElement(focusAfterClosed = document.activeElement) {\n let focusElement;\n if (typeof focusAfterClosed === 'string') {\n focusElement = document.getElementById(focusAfterClosed);\n } else if (typeof focusAfterClosed === 'object') {\n focusElement = focusAfterClosed;\n } else {\n throw new Error('the focusAfterClosed parameter is required for the aria.Dialog constructor.');\n }\n\n return focusElement;\n }\n};\n","const Dialog = require('./Dialog');\nconst Modal = require('./Modal');\n\nmodule.exports = class DialogManager {\n /**\n * DialogManager\n *\n * Instantiated as single tone (window.dialogManager).\n * This dialog manger is responsible to open, manage dialog stack (bring down,\n * bring up, replace) and close dialogs. It also broadcast events about status\n * of the dialogs (close and open states).\n * @class\n */\n constructor() {\n this.keyCode = Object.freeze({\n ESC: 27\n });\n\n this.dialogsStack = [];\n }\n\n /**\n * openDialog\n *\n * If one dialog is opened it opens new one on top of previous.\n * After the top dialog is closed focus moves to previous dialog. So it creates\n * focus subset of main document. It is required to domNode that is focused after\n * dialog is closed. Broadcast native 'dialog:open' after open to handle callbacks.\n *\n * @public\n * @param {String} dialogType - type of dialog. Could be panel or modal. Currently used to much Bootstrap modals.\n * @param {String} dialogId - ID of dialog node in format of CSS selector. Eg: `#myDialog`. Currently used to much Bootstrap modals.\n * @param {HTMLElement} [focusAfterClose] - domNode of element that focused when dialog is closed and focus brings back to the page\n * @param {HTMLElement} [focusAfterOpen] - domNode of element that should be focused when dialog is opened. If no first focusable element will used.\n * @returns {Boolean} - is dialog replaced\n */\n openDialog(dialogType, dialogId, focusAfterClose, focusAfterOpen) {\n const dialogNode = document.querySelector(dialogId);\n if (this.isDialogInStack(dialogNode) || !dialogNode) {\n return;\n }\n\n if (this.dialogsStack.length > 0) { // If we open dialog over the last one\n this._bringCurrentDialogDown();\n } else { // If this is first opened dialog add close listeners\n this._addEventListeners();\n }\n\n const createDialog = this._createDialog(dialogType, dialogNode, focusAfterClose, focusAfterOpen);\n if (createDialog) {\n document.body.classList.add('has-dialog');\n\n const event = new CustomEvent('dialog:open', { bubbles: true, cancelable: true });\n dialogNode.dispatchEvent(event);\n }\n }\n\n /**\n * Close the last one dialog in the stack\n * It throws native 'dialog:closed' event on dialog node after close.\n *\n * @param {HTMLElement} dialogID - Id of dialog\n * @public\n * @returns {Boolean}\n */\n closeDialog(dialogID) {\n if (dialogID) {\n this._setDialogById(dialogID);\n }\n const currentDialog = this._getCurrentDialog();\n if (!currentDialog) {\n return false;\n }\n const lastDialog = currentDialog;\n this._destroyCurrentDialog();\n\n const event = new CustomEvent('dialog:closed', { bubbles: true, cancelable: true });\n if (lastDialog.enclosedNode) {\n // bootstrap compatibility workaround. Should be removed after dialog structure normalization.\n lastDialog.enclosedNode.dispatchEvent(event);\n } else {\n lastDialog.dialogNode.dispatchEvent(event);\n }\n\n if (this.dialogsStack.length > 0) {\n this._bringCurrentDialogToTop(); // after destroy previous one is currentDialog\n } else { // if this the last opened dialog\n document.body.classList.remove('has-dialog');\n this._removeEventListeners();\n }\n\n return true;\n }\n\n /**\n * Close all dialogs in the stack\n * It calls closeDialog function for each dialog in stack.\n *\n * @public\n * @returns {Boolean}\n */\n closeAll() {\n const stackLength = this.dialogsStack.length;\n\n for (let i = 0; i < stackLength; i++) {\n this.closeDialog();\n }\n\n return true;\n }\n\n /**\n * This method is designed to close last dialog for not specific button,\n * like close modal button, backdrop click or ESC. For element that do not know\n * if particular dialog is try to *force user to make a choice* inside the dialog.\n *\n * @public\n * @returns {Boolean}\n */\n closeDialogFromOutside() {\n const currentDialog = this._getCurrentDialog();\n if (!currentDialog) {\n return false;\n }\n\n if (currentDialog.isForcedToChoice) {\n this._createAlert(currentDialog, currentDialog.forcedChoiceAlertMessage);\n return false;\n }\n\n return this.closeDialog();\n }\n\n /**\n * replaceDialog\n *\n * Same as open dialog, but replace current dialog with new one.\n *\n * @public\n * @param {String} dialogType - type of dialog. Could be panel or modal. Currently used to much Bootstrap modals.\n * @param {String} newDialogId - ID of dialog node in format of CSS selector. Eg: `#myDialog`. Currently used to much Bootstrap modals.\n * @param {HTMLElement} newFocusAfterClosed - domNode of element that focused when dialog is closed and focus brings back to the page\n * @param {HTMLElement} [newFocusFirst] - domNode of element that should be focused when dialog is opened. If no first focusable element will used.\n * @returns {Boolean} - is dialog replaced\n */\n replaceDialog(dialogType, newDialogId, newFocusAfterClosed, newFocusFirst) {\n if (this.isDialogInStack(document.querySelector(newDialogId))) {\n return;\n }\n\n const topDialog = this._getCurrentDialog();\n const focusAfterClosed = newFocusAfterClosed || topDialog.focusAfterClose;\n\n this._destroyCurrentDialog();\n return this.openDialog(dialogType, newDialogId, focusAfterClosed, newFocusFirst);\n }\n\n /**\n * isDialogOpen\n *\n * Check if dialogNode showed on page as Dialog\n * @public\n * @param {HTMLElement} domNode - domNode of dialog\n * @returns {Boolean}\n */\n isDialogInStack(domNode) {\n return this.dialogsStack.some(dialog =>\n dialog.dialogNode === domNode || dialog.enclosedNode === domNode\n // enclosedNode used for bootstrap modals compatibility. Should be removed in future.\n );\n }\n\n _addEventListeners() {\n this.handleEscape = this._handleEscape.bind(this);\n this.handleClose = this._handleCloseButton.bind(this);\n\n document.addEventListener('keyup', this.handleEscape);\n document.addEventListener('click', this.handleClose);\n }\n\n _removeEventListeners() {\n document.removeEventListener('keyup', this.handleEscape);\n document.removeEventListener('click', this.handleClose);\n }\n\n _handleEscape(event) {\n if (event.keyCode === this.keyCode.ESC && this.closeDialogFromOutside()) {\n event.stopPropagation();\n }\n }\n\n _handleCloseButton(event) {\n const isCloseButton = event.target.getAttribute('data-dismiss') !== null ||\n (event.target.parentNode && event.target.parentNode.getAttribute('data-dismiss') !== null);\n if (isCloseButton && this.closeDialogFromOutside()) {\n event.stopPropagation();\n }\n }\n\n _createDialog(dialogType, dialogNode, focusAfterClose, focusAfterOpen) {\n let dialog;\n let isDialogOpen;\n const focusAfterCloseElement = focusAfterClose || document.activeElement;\n\n if (dialogType === 'modal') {\n dialog = new Modal(this, dialogNode, focusAfterCloseElement, focusAfterOpen);\n isDialogOpen = dialog.create();\n } else {\n dialog = new Dialog(this, dialogNode, focusAfterCloseElement, focusAfterOpen);\n isDialogOpen = dialog.create();\n }\n\n this.dialogsStack.push(dialog);\n\n return isDialogOpen;\n }\n\n _getCurrentDialog() {\n if (this.dialogsStack.length) {\n return this.dialogsStack[this.dialogsStack.length - 1];\n }\n }\n\n _setDialogById(dialogID) {\n const dialog = document.querySelector(dialogID);\n let dialogInStack;\n this.dialogsStack.forEach(item => {\n if (item.dialogNode === dialog || item.enclosedNode === dialog) {\n dialogInStack = item;\n }\n });\n if (dialogInStack && this.dialogsStack.indexOf(dialogInStack) !== this.dialogsStack.length - 1) {\n let selectedDialog = this.dialogsStack.splice(this.dialogsStack.indexOf(dialogInStack), 1);\n this.dialogsStack.push(selectedDialog[0]);\n }\n }\n\n _destroyCurrentDialog() {\n if (this._getCurrentDialog().destroy()) {\n this.dialogsStack.pop();\n return true;\n }\n return false;\n }\n\n _bringCurrentDialogToTop() {\n this._getCurrentDialog().bringOnTop();\n }\n\n _bringCurrentDialogDown() {\n this._getCurrentDialog().bringDown();\n }\n\n _createAlert(dialog, message) {\n if (!message || message === 'false') {\n return;\n }\n\n if (!this.alert) {\n this.alert = document.createElement('div');\n this.alert.className = 'b-dialog_alert';\n this.alert.setAttribute('role', 'alert');\n }\n\n this.alert.textContent = message;\n dialog.dialogNode.appendChild(this.alert);\n\n clearTimeout(this.alertTimout);\n this.alertTimout = setTimeout(() => {\n if (this.alert) {\n dialog.dialogNode.removeChild(this.alert);\n }\n this.alert = null;\n }, 2000);\n }\n\n static validateDialogStructure(dialogNode) {\n const validRoles = ['dialog', 'alertdialog'];\n const isDialog = (dialogNode.getAttribute('role') || '')\n .trim()\n .split(/\\s+/g)\n .some(token => validRoles.some(role => token === role));\n if (!isDialog) {\n throw new Error('Dialog() requires a DOM element with ARIA role of \"dialog\" or \"alertdialog\".');\n }\n }\n};\n","module.exports = class FocusUtils {\n constructor() {\n this.searchingFocusedElement = false;\n }\n\n static focusFirstDescendant(element) {\n if (element) {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i];\n if (FocusUtils.attemptFocus(child) || FocusUtils.focusFirstDescendant(child)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n static focusLastDescendant(element) {\n if (element) {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i];\n if (FocusUtils.attemptFocus(child) || FocusUtils.focusLastDescendant(child)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n static attemptFocus(element) {\n if (!FocusUtils.isFocusable(element)) {\n return false;\n }\n\n this.searchingFocusedElement = true;\n\n try {\n element.focus();\n } catch (e) {\n // catch error\n }\n\n this.searchingFocusedElement = false;\n\n return (document.activeElement === element);\n }\n\n static isFocusable(element) {\n if (element.tabIndex > 0 || (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)) {\n return true;\n }\n\n if (element.disabled) {\n return false;\n }\n\n switch (element.nodeName) {\n case 'A':\n return !!element.href && element.rel !== 'ignore';\n case 'INPUT':\n return element.type !== 'hidden' && element.type !== 'file';\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n default:\n return false;\n }\n }\n};\n","const Dialog = require('./Dialog');\n\nmodule.exports = class Modal extends Dialog {\n // This extend only for mimic Bootstrap Modals.\n // The only difference from Dialog is structure. The dialog required backdrop\n // without any roles same as browser vendors and W3C use,\n // Bootstrap use backdrop as modal declaration.\n // So we move `dialogNode` to inner div.\n constructor(dialogManager, dialogNode, focusAfterClose, focusAfterOpen) {\n super(dialogManager, dialogNode, focusAfterClose, focusAfterOpen);\n\n this.enclosedNode = dialogNode;\n this.dialogNode = this.enclosedNode.querySelector('.modal-dialog');\n }\n\n afterOpen() {\n this.enclosedNode.setAttribute('aria-hidden', 'false');\n }\n\n beforeClose() {\n this.enclosedNode.setAttribute('aria-hidden', 'true');\n }\n\n initBackdrop() {\n const backdropClass = 'modal';\n\n let parent = this.dialogNode.parentNode;\n if (parent.classList.contains(backdropClass)) {\n this.backdropNode = parent;\n } else {\n this.encloseModalWithBackdrop(backdropClass);\n }\n\n this.backdropNode.addEventListener('mousedown', this.handleBackdropClick);\n this.backdropNode.classList.add('is-active');\n this.backdropNode.classList.add('is-top-dialog');\n }\n};\n","const DialogManager = require('./DialogManager');\n\nmodule.exports = function() {\n window.dialogManager = new DialogManager();\n\n document.addEventListener('click', event => {\n const button = event.target;\n const toggle = button.getAttribute('data-toggle');\n if (!toggle || toggle !== 'modal') {\n return;\n }\n event.preventDefault();\n\n const controlledModalId = button.getAttribute('data-target');\n const focusAfterOpen = button.getAttribute('data-focus-in-modal');\n if (controlledModalId === null) {\n return;\n }\n\n window.dialogManager.openDialog('modal', controlledModalId, button, focusAfterOpen);\n });\n};\n","module.exports = () => {\n var $brandSwithcDelayEl = $('[data-brand-switch-delay]');\n\n if ($brandSwithcDelayEl.length > 0) {\n var $brandSwitch = $brandSwithcDelayEl.find('.b-utility_domain_switcher-link');\n\n $brandSwitch.on('click', function (e) {\n e.preventDefault();\n\n var brandSwitchDelay = Number($brandSwithcDelayEl.data('brandSwitchDelay'));\n var url = $(this).attr('href');\n\n setTimeout(() => {\n window.location.href = url;\n }, brandSwitchDelay); // set delay in order for SFCC to have enough time switch session.custom.currentBrand in customer groups\n });\n }\n};\n\n","const CompositedComponent = require('./utils/CompositedComponent');\nconst Grid = require('./a11y/Grid');\n\nclass FooterGrid {\n constructor(domNode) {\n this.container = domNode;\n this.grids = [];\n }\n\n init() {\n if (this.grids.length) {\n this.grids.forEach(grid => grid.init());\n return;\n }\n\n this.container.querySelectorAll('[data-role=grid]').forEach(grid => {\n const column = new Grid(grid);\n this.grids.push(column);\n column.init();\n });\n }\n\n destroy() {\n this.grids.forEach(grid => grid.destroy());\n }\n}\n\nmodule.exports = function () {\n const footerNav = document.querySelector('[data-js-footer-nav]');\n\n if (!footerNav) {\n return;\n }\n\n const Accordion = require('./togglers/Accordion');\n\n new CompositedComponent(new Accordion(footerNav), window.styleConstants.breakpoint.small, new FooterGrid(footerNav));\n};\n","\n\n/**\n * Remove all validation. Should be called every time before revalidating form\n * @param {element} form - Form to be cleared\n * @returns {void}\n */\nfunction clearFormErrors(form) {\n $(form).find('.form-control.is-invalid').removeClass('is-invalid');\n}\n\nmodule.exports = function (formElement, payload) {\n // clear form validation first\n clearFormErrors(formElement);\n $('.alert', formElement).remove();\n\n if (typeof payload === 'object' && payload.fields) {\n Object.keys(payload.fields).forEach((key) => {\n if (payload.fields[key]) {\n const feedbackElement = $(formElement).find(`[name=\"${key}\"]`)\n .parent()\n .children('.invalid-feedback');\n\n if (feedbackElement.length > 0) {\n if (Array.isArray(payload[key])) {\n feedbackElement.html(payload.fields[key].join('<br/>')).show();\n } else {\n feedbackElement.html(payload.fields[key]).show();\n }\n feedbackElement.siblings('.form-control').addClass('is-invalid');\n }\n }\n });\n }\n if (payload && payload.error && typeof payload.error !== 'boolean') {\n const form = $(formElement).prop('tagName') === 'FORM'\n ? $(formElement)\n : $(formElement).parents('form');\n\n form.prepend(`<div class=\"alert alert-danger\" role=\"alert\">${\n payload.error.join('<br/>')}</div>`);\n }\n};\n","module.exports = class Combobox {\n /*\n * This content is based on w3.org design pattern examples and licensed according to the\n * W3C Software License at\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * Please see specification:\n * https://www.w3.org/TR/wai-aria-practices/#combobox\n */\n constructor(comboboxNode) {\n this.combobox = comboboxNode;\n this.input = this.combobox.querySelector('input[aria-autocomplete]');\n this.listbox = document.getElementById(this.input.getAttribute('aria-controls'));\n\n this.minChars = 3;\n this.focusedItemClassName = 'm-focused';\n this.suggetionsUpdateDelay = 400;\n\n this.lastSearchedTerm = '';\n this.activeIndex = -1;\n this.resultsCount = 0;\n this.isListboxOpen = false;\n\n this.keyCode = Object.freeze({\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n BACKSPACE: 8\n });\n\n this.handleOuterClick = this.handleOuterClick.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleInput = this.handleInput.bind(this);\n this.handleMouseenter = this.handleMouseenter.bind(this);\n this.handleMouseleave = this.handleMouseleave.bind(this);\n }\n\n init() {\n this.initEventListeners();\n }\n\n initEventListeners() {\n document.body.addEventListener('click', this.handleOuterClick);\n this.input.addEventListener('keydown', this.handleKeydown);\n this.input.addEventListener('focus', this.handleFocus);\n this.input.addEventListener('blur', this.handleBlur);\n this.input.addEventListener('input', this.handleInput);\n this.listbox.addEventListener('click', this.handleClick);\n this.listbox.addEventListener('mouseenter', this.handleMouseenter);\n this.listbox.addEventListener('mouseleave', this.handleMouseleave);\n }\n\n handleInput() {\n if (this.input.value.trim().length >= this.minChars) {\n this.updateListbox();\n } else {\n clearTimeout(this.timeout);\n this.closeListbox();\n }\n }\n\n handleClick(evt) {\n if (evt.target && evt.target.nodeName === 'DIV') {\n this.selectItem(evt.target);\n }\n }\n\n handleMouseenter() {\n this.hasHoverWithin = true;\n }\n\n handleMouseleave() {\n this.hasHoverWithin = false;\n }\n\n handleFocus() {\n this.updateListbox();\n }\n\n handleBlur() {\n if (this.hasHoverWithin || this.activeIndex < 0) {\n return;\n }\n this.selectItem(this.getItemByIndex(this.activeIndex));\n }\n\n handleOuterClick(event) {\n if (!this.isListboxOpen || this.combobox.contains(event.target) || this.listbox.contains(event.target)) {\n return;\n }\n this.closeListbox();\n }\n\n handleKeydown(event) {\n let preventEventActions = false;\n\n switch (event.keyCode) {\n case this.keyCode.ESC:\n this.closeListbox();\n this.input.value = '';\n preventEventActions = true;\n break;\n case this.keyCode.UP:\n this.setActiveToNextItem();\n this.activateItem();\n preventEventActions = true;\n break;\n case this.keyCode.DOWN:\n this.setActiveToPreviousItem();\n this.activateItem();\n preventEventActions = true;\n break;\n case this.keyCode.RETURN:\n this.selectItem(this.getItemByIndex(this.activeIndex));\n return;\n case this.keyCode.TAB:\n this.closeListbox();\n return;\n default:\n return;\n }\n\n if (preventEventActions) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n setActiveToPreviousItem() {\n if (this.activeIndex === -1 || this.activeIndex >= this.resultsCount - 1) {\n this.activeIndex = 0;\n } else {\n this.activeIndex++;\n }\n }\n\n setActiveToNextItem() {\n if (this.activeIndex <= 0) {\n this.activeIndex = this.resultsCount - 1;\n } else {\n this.activeIndex--;\n }\n }\n\n activateItem() {\n this.activeItem = this.getItemByIndex(this.activeIndex);\n\n if (this.prevActive) {\n this.prevActive.classList.remove(this.focusedItemClassName);\n this.prevActive.setAttribute('aria-selected', 'false');\n }\n\n if (this.activeItem) {\n this.input.setAttribute('aria-activedescendant', `result-item-${this.activeIndex}`);\n this.activeItem.classList.add(this.focusedItemClassName);\n this.activeItem.setAttribute('aria-selected', 'true');\n this.afterItemActivated(this.activeItem);\n } else {\n this.input.setAttribute('aria-activedescendant', '');\n }\n\n this.prevActive = this.activeItem;\n }\n\n afterItemActivated(item) {\n this.input.value = item.innerText;\n }\n\n getItemByIndex(index) {\n return document.getElementById(`result-item-${index}`);\n }\n\n selectItem(item) {\n if (item) {\n this.input.value = item.innerText;\n this.closeListbox();\n }\n }\n\n updateListbox() {\n if ((this.lastSearchedTerm === this.input.value.trim()) ||\n (this.input.value.trim().length < this.minChars)) {\n return;\n }\n\n clearTimeout(this.timeout);\n const query = this.input.value.trim(); // we should cache query to prevent query different value after timeout\n this.timeout = setTimeout(this.getSuggestions.bind(this, query), this.suggetionsUpdateDelay);\n }\n\n getSuggestions(query) {\n // This is example of getSuggestion method to implement\n const results = ['Result example'];\n this.closeListbox();\n\n if (results.length) {\n this.listbox.innerHTML = `<li role=\"option\" id=\"result-item-${0}\">${results[0]}</li>\n <li role=\"status\" aria-live=\"polite\">1 suggestion found</li>`;\n\n this.afterSuggestionsUpdate(query, results.length);\n }\n }\n\n afterSuggestionsUpdate(query, resultsCount) {\n this.resultsCount = resultsCount;\n this.activeIndex = -1;\n this.lastSearchedTerm = query;\n this.openListbox();\n }\n\n openListbox() {\n this.isListboxOpen = true;\n\n this.listbox.classList.add('m-active');\n this.combobox.setAttribute('aria-expanded', 'true');\n this.toggleOverlay(true);\n }\n\n closeListbox() {\n this.isListboxOpen = false;\n this.resultsCount = 0;\n this.activeIndex = -1;\n this.lastSearchedTerm = '';\n\n this.listbox.classList.remove('m-active');\n this.listbox.innerHTML = '';\n this.input.setAttribute('aria-activedescendant', '');\n this.combobox.setAttribute('aria-expanded', 'false');\n this.toggleOverlay(false);\n }\n\n toggleOverlay(isShown) {\n this.isOverlayVisible = isShown;\n }\n\n destroy() {\n document.body.removeEventListener('click', this.handleOuterClick);\n this.input.removeEventListener('keydown', this.handleKeydown);\n this.input.removeEventListener('focus', this.handleFocus);\n this.input.removeEventListener('blur', this.handleBlur);\n this.input.removeEventListener('input', this.handleInput);\n this.listbox.removeEventListener('click', this.handleClick);\n this.listbox.removeEventListener('mouseenter', this.handleMouseenter);\n this.listbox.removeEventListener('mouseleave', this.handleMouseleave);\n }\n};\n","module.exports = class InputClear {\n constructor(button) {\n this.button = button;\n this.input = document.getElementById(button.getAttribute('data-clear-input'));\n }\n\n init() {\n if (!this.input) {\n return;\n }\n\n this.addEventListeners();\n }\n\n addEventListeners() {\n this.clearInput = this.clearInput.bind(this);\n this.toggleClearButton = this.toggleClearButton.bind(this);\n\n this.input.addEventListener('input', this.toggleClearButton);\n this.button.addEventListener('click', this.clearInput);\n }\n\n toggleClearButton() {\n if (this.input.value.length > 0) {\n this.showButton();\n } else {\n this.hideButton();\n }\n }\n\n showButton() {\n this.button.classList.add('m-visible');\n $('#header-search-area').addClass('m-opened');\n }\n\n hideButton() {\n this.button.classList.remove('m-visible');\n $('#header-search-area').removeClass('m-opened');\n }\n\n showBarcodeBtn() {\n const wrapper = this.input.closest('#header-search-area');\n const barcodeBtn = wrapper && wrapper.querySelector('#scanner_button');\n\n if (barcodeBtn) {\n barcodeBtn.classList.remove('js-hide-btn');\n }\n }\n\n clearInput() {\n this.input.value = '';\n this.button.classList.remove('m-visible');\n $('#header-search-area').removeClass('m-opened');\n\n this.showBarcodeBtn();\n }\n\n destroy() {\n this.input.removeEventListener('input', this.showClearButton);\n this.button.removeEventListener('click', this.clearInput);\n }\n};\n","const Combobox = require('./Combobox');\nconst { appendToUrl } = require('../../utils/urlUtil');\n\nmodule.exports = class SearchCombo extends Combobox {\n /**\n * SearchCombo\n * @param {domNode} form - form with combobox\n * @description This is simple search implementation. It also could be used as inplace search.\n * To do that, just initialize it without header specific overlay:\n * ```\n * const searchComboInplace = new SearchCombo(document.querySelector('[data-js-search-combobox-inplace]'));\n * searchComboInplace.toggleOverlay = function () {};\n * searchComboInplace.toggleGlobalOverlay = function () {};\n * searchComboInplace.init();\n * ```\n */\n constructor(form) {\n super(form.querySelector('[data-js-search-combobox]'));\n this.form = form;\n this.suggestionsOvelay = document.querySelector('[data-js-suggestions-overlay]');\n this.clearButton = this.combobox.querySelector('button[type=reset]');\n this.endpoint = this.listbox.getAttribute('data-url');\n this.setupXHR();\n this.formListeners();\n this.initClearButton();\n }\n\n formListeners() {\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleFormMouseenter = this.handleFormMouseenter.bind(this);\n this.handleFormMouseleave = this.handleFormMouseleave.bind(this);\n this.handleClose = this.handleClose.bind(this);\n\n this.form.addEventListener('submit', this.handleSubmit);\n this.clearButton.addEventListener('click', this.handleClose);\n this.form.addEventListener('mouseenter', this.handleFormMouseenter);\n this.form.addEventListener('mouseleave', this.handleFormMouseleave);\n }\n\n setupXHR() {\n const onError = () => this.toggleSpinner(false);\n\n this.request = new XMLHttpRequest();\n this.request.addEventListener('error', onError);\n this.request.addEventListener('abort', onError);\n this.request.addEventListener('timeout', onError);\n }\n\n processResponse(query, response) {\n try {\n // If all falls SF respond with JSON instead of HTML string\n JSON.parse(response);\n this.toggleSpinner(false);\n this.closeListbox();\n } catch (error) {\n if (this.input.value.trim() !== query) {\n // if value changed during request not show outdated suggestions\n return;\n }\n\n if (document.activeElement !== this.input) {\n this.toggleSpinner(false);\n this.closeListbox();\n return;\n }\n\n response = response.replace(/<head.*?>(.|\\n)*?<\\/head>/, '');\n this.listbox.innerHTML = response;\n\n this.activeIndex = -1;\n this.input.setAttribute('aria-activedescendant', '');\n\n const totalSuggests = this.listbox\n .querySelector('#search-result-count')\n .getAttribute('data-total');\n\n this.toggleSpinner(false);\n this.afterSuggestionsUpdate(query, parseInt(totalSuggests, 10));\n }\n }\n\n getSuggestions(query) {\n let url = appendToUrl(this.endpoint, {q: query.trim()});\n\n this.request.abort();\n this.request.open('GET', url);\n this.request.onreadystatechange = (response) => {\n if (response.target.readyState === 4) {\n if (response.target.status === 200) {\n this.processResponse(query.trim(), response.target.responseText);\n } else {\n this.toggleSpinner(false);\n this.closeListbox();\n }\n }\n };\n this.request.send();\n\n this.toggleSpinner(true);\n }\n\n handleSubmit(event) {\n if (this.goingByLink || !this.input.value.trim()) {\n event.preventDefault();\n }\n\n if (!this.input.value.trim()) {\n $('body').css('overflow', 'hidden');\n this.input.focus();\n } else {\n this.request.abort();\n this.closeListbox();\n $('body').css('overflow', '');\n }\n }\n\n selectItem(item) {\n // We do not need default combobox behaviour.\n // Instead of pasting suggestion value we go by the link\n if (item) {\n this.input.value = item.getAttribute('data-suggestion-value');\n this.goingByLink = true;\n\n let clickEvent;\n if (typeof MouseEvent === 'function') {\n clickEvent = new MouseEvent('click', { view: window, bubbles: true, cancelable: true });\n } else {\n clickEvent = document.createEvent('MouseEvents');\n clickEvent.initEvent('click', true, true);\n }\n item.dispatchEvent(clickEvent);\n }\n }\n\n handleClick() {\n // We do not need handle click since we have links inside\n }\n\n handleFocus() {\n this.updateListbox();\n }\n\n handleBlur() {\n if (this.hasHoverWithin || this.activeIndex > 0 || this.formHasHover) {\n return;\n }\n this.closeListbox();\n this.input.value = '';\n this.inputClear.hideButton();\n // Point 7 in\n // eslint-disable-next-line\n // https://confluence.ontrq.com/pages/viewpage.action?spaceKey=TOYSR&title=TOYSR+-+FSD+-+Package+1+-+Global+Header#TOYSR-FSD-Package1-GlobalHeader-Behaviorsandflows.7\n }\n\n handleFormMouseenter() {\n this.formHasHover = true;\n }\n\n handleFormMouseleave() {\n this.formHasHover = false;\n }\n\n handleClose() {\n this.closeListbox();\n }\n\n toggleSpinner(isShown) {\n const content = this.listbox.firstElementChild;\n\n if (isShown) {\n if (content) {\n content.classList.add('m-loading');\n content.setAttribute('aria-busy', 'true');\n }\n this.toggleOverlay(true);\n } else {\n if (content) {\n content.classList.remove('m-loading');\n content.setAttribute('aria-busy', 'false');\n }\n this.toggleOverlay(false);\n }\n }\n\n toggleOverlay(isShown) {\n const overlayStyles = this.suggestionsOvelay.style;\n this.flyoutMinHeight = this.suggestionsOvelay.offsetParent\n ? this.suggestionsOvelay.offsetParent.clientHeight : this.flyoutMinHeight;\n const closeSearch = () => this.closeListbox();\n const isAsPopup = window.innerWidth < window.styleConstants.breakpoint.small; // on mobile popup provide overlay\n var body = $('body');\n var html = $('html');\n var page = $('.b-page_inner');\n this.toggleBarcodeBtn();\n\n if (!isShown) {\n overlayStyles.opacity = 0;\n overlayStyles.visibility = 'hidden';\n overlayStyles.height = `${this.flyoutMinHeight}px`;\n body.removeClass('no-scroll');\n html.removeClass('no-scroll');\n page.removeClass('no-scroll');\n\n if (!isAsPopup) {\n window.partialOverlay.close();\n }\n } else {\n const flyoutBorderHeight = 4;\n const suggestionsHeight = this.listbox.firstElementChild\n ? this.listbox.firstElementChild.clientHeight : 30;\n\n overlayStyles.opacity = 1;\n overlayStyles.visibility = 'visible';\n overlayStyles.height = `${suggestionsHeight + flyoutBorderHeight + this.flyoutMinHeight}px`;\n\n if (!isAsPopup) {\n window.partialOverlay.open(closeSearch);\n } else {\n body.addClass('no-scroll');\n html.addClass('no-scroll');\n page.addClass('no-scroll');\n }\n }\n }\n\n toggleBarcodeBtn() {\n if (this.input) {\n const wrapper = this.input.closest('#header-search-area');\n const barcodeBtn = wrapper && wrapper.querySelector('#scanner_button');\n const valueLength = this.input.value.length;\n\n if (barcodeBtn && valueLength >= 3) {\n barcodeBtn.classList.add('js-hide-btn');\n } else if (barcodeBtn) {\n barcodeBtn.classList.remove('js-hide-btn');\n }\n }\n }\n\n afterItemActivated(item) {\n const suggestions = this.listbox.querySelector('[data-js-combo-listbox-content]');\n if (typeof suggestions.scrollTo === 'function') {\n suggestions.scrollTo({\n top: item.offsetTop,\n left: 0,\n behavior: 'smooth'\n });\n }\n }\n\n initClearButton() {\n const InputClear = require('./InputClear');\n\n this.inputClear = new InputClear(this.clearButton);\n this.inputClear.init();\n }\n};\n","/* eslint-disable jsdoc/require-returns */\n/* globals google */\n\n/** Google Address Lookup\n* Integration with Google Places API\n */\nlet autocomplete;\n\nconst dwAddressForms = [\n {\n id: 'storelocatorForm',\n forms: [{\n postal_code: 'js-zip-input',\n country: 'js-country-select',\n state: 'js-state-select',\n city: 'js-city-input',\n address: 'js-storelocator-input',\n type: 'geocode'\n }]\n },\n {\n id: 'checkout-main',\n forms: [\n {\n postal_code: 'billingZipCode',\n country: 'billingCountry',\n state: 'billingState',\n city: 'billingAddressCity',\n address: 'billingAddressOne',\n type: 'address'\n }\n ]\n },\n {\n id: 'gift-registry-form',\n forms: [{\n postal_code: 'postalCode',\n country: '',\n state: 'stateCode',\n city: 'city_address',\n address: 'address1',\n type: 'address'\n }]\n }\n];\n\n/**\n * Gets the correct fields for the current page\n */\nfunction getForms() {\n const pageInfo = dwAddressForms.find(element => $('#' + element.id).length);\n\n return pageInfo && pageInfo.forms;\n}\n\n/**\n * Parses Google Place component and returns the value by type\n *\n * @param {*} place\n * @param {*} type\n * @returns {*} value\n */\nfunction getPlaceComponent(place, type) {\n let value = '';\n for (let i = 0; i < place.address_components.length; i++) {\n const addressType = place.address_components[i].types[0];\n\n if (addressType === type) {\n value = type !== 'administrative_area_level_1' && type !== 'country'\n ? place.address_components[i].long_name\n : place.address_components[i].short_name;\n }\n }\n return value;\n}\n\n/**\n * Sets element value\n *\n * @param {*} elementID\n * @param {*} value\n */\nfunction setElementValue(elementID, value) {\n let val = value;\n if (val === null) {\n val = '';\n }\n const element = document.getElementById(elementID);\n switch (element.type) {\n case 'select-one':\n for (let i = 0; i < element.options.length; i++) {\n if (element.options[i].value === value) {\n element.options[i].selected = true;\n return;\n }\n }\n break;\n default:\n element.value = val;\n break;\n }\n}\n\n\n/**\n * Fills in all required fields using the name of Address field\n */\nfunction fillInAddress() {\n const place = this.getPlace();\n const formInfo = this.formInfo;\n if (typeof formInfo !== 'undefined') {\n // Get the place details from the autocomplete object.\n // eslint-disable-next-line prefer-const\n if (place) {\n Object.keys(formInfo).forEach(component => {\n const elementID = formInfo[component];\n if (elementID) {\n document.getElementById(elementID).value = '';\n }\n });\n // Get each component of the address from the place details,\n // and then fill-in the corresponding field on the form.\n // Fill in Address control\n const streetNumber = getPlaceComponent(place, 'street_number');\n const address = getPlaceComponent(place, 'route');\n if (streetNumber) {\n setElementValue(formInfo.address, `${streetNumber}, ${address}`);\n } else {\n setElementValue(formInfo.address, address);\n }\n $(`#${formInfo.address}`).trigger('focusout');// re-trigger validation\n // Fill-in ZIP Code control\n setElementValue(formInfo.postal_code, getPlaceComponent(place, 'postal_code'));\n // Fill-in City control\n setElementValue(formInfo.city, getPlaceComponent(place, 'locality'));\n // Fill-in Country control\n if (formInfo.country !== '') {\n setElementValue(formInfo.country, getPlaceComponent(place, 'country'));\n }\n // Fill-in State control\n setElementValue(formInfo.state, getPlaceComponent(place, 'administrative_area_level_1'));\n $(formInfo.state).trigger('change'); // trigger shipping method update logic\n\n $('#' + formInfo.address).closest('form').trigger('change');\n }\n }\n}\n\n/*\n * Prevent form submit when user select autocomplition through Return key\n */\nfunction preventFormSubmit(event) {\n if (event.keyCode === 13) {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n\n/**\n * Create the autocomplete object, restricting the search predictions to\n * geographical location types.\n */\nfunction init() {\n const forms = getForms();\n if (forms) {\n // Binding autocomplete to Address element\n forms.forEach(form => {\n Array.from(document.getElementsByClassName(form.address)).forEach(inputElement => {\n autocomplete = new google.maps.places.Autocomplete(\n inputElement, {\n types: [form.type || 'geocode'],\n componentRestrictions: {\n country: 'ca'\n }\n }\n );\n // Avoid paying for data that you don't need by restricting the set of\n // place fields that are returned to just the address components.\n autocomplete.setFields(['address_component']);\n // When the user selects an address from the drop-down, populate the\n // address fields in the form.\n const shippingForm = inputElement.closest('.js-shipping-fieldset');\n\n if (shippingForm) {\n const state = shippingForm.querySelector('.' + form.state);\n const postal_code = shippingForm.querySelector('.' + form.postal_code);\n const city = shippingForm.querySelector('.' + form.city);\n const country = form.country !== '' ? shippingForm.querySelector('.' + form.country) : '';\n autocomplete.inputId = inputElement.id;\n autocomplete.formInfo = {\n postal_code: postal_code.id,\n country: country !== '' ? country.id : '',\n state: state.id,\n city: city.id,\n address: inputElement.id\n };\n autocomplete.addListener('place_changed', fillInAddress);\n // Prevent form submit when user select autocomplition through Return key\n inputElement.addEventListener('keydown', preventFormSubmit);\n }\n });\n });\n }\n}\n\nmodule.exports.init = () => {\n if (document.readyState === 'complete') {\n init();\n } else {\n document.onreadystatechange = function () {\n if (document.readyState === 'complete') {\n init();\n }\n };\n }\n};\n","module.exports = () => {\n const searchForm = document.getElementById('simple-search-form');\n\n if (!searchForm) {\n return;\n }\n\n const $MobileSearchInput = $('#header-search-area');\n const $headerWrapper = $('.l-header_wrapper');\n const $headerBanner = $('.header-banner.js-show');\n const $headerSearch = $('.l-header-search');\n const $plpHeaderFilters = $('.js-plp_header-filters');\n const $productGrid = $('.l-plp_grid');\n\n const headerWrapperHeight = $headerWrapper.innerHeight();\n const headerSearchHeight = $headerSearch.innerHeight();\n const headerBannerHeight = $headerBanner.innerHeight();\n\n /**\n * Positions the sticky filter based on various conditions\n */\n function stickyFilterPositioning() {\n const isMobileSearchActive = $MobileSearchInput.hasClass('m-active');\n const isHeaderSticky = $headerWrapper.data('headerSticky');\n const productGridTop = $productGrid.length ? $productGrid.offset().top : null;\n const stickyHeaderHeight = $headerWrapper.hasClass('l-header-sticky') ? headerWrapperHeight : 0;\n\n let topPosition = stickyHeaderHeight;\n\n if (isMobileSearchActive) {\n topPosition += headerSearchHeight;\n }\n\n if (headerBannerHeight !== undefined && !isHeaderSticky) {\n topPosition -= headerBannerHeight;\n }\n\n if (productGridTop !== null && $(window).scrollTop() >= productGridTop - stickyHeaderHeight) {\n $plpHeaderFilters.addClass('filter-sticky').css('top', topPosition);\n } else {\n $plpHeaderFilters.removeClass('filter-sticky');\n }\n }\n\n $(document).scroll(() => {\n const scroll = $(document).scrollTop();\n\n $headerWrapper.toggleClass('l-header-sticky', scroll >= 1);\n\n if (!$headerWrapper.data('headerSticky')) {\n $headerWrapper.toggleClass('js-header-sticky', scroll >= 1);\n }\n\n if (!$MobileSearchInput.hasClass('js-clicked-search')) {\n $MobileSearchInput.toggleClass('m-active', scroll < 1);\n }\n\n stickyFilterPositioning();\n });\n\n const SearchCombo = require('./forms/SearchCombo');\n const searchComboHeader = new SearchCombo(searchForm);\n searchComboHeader.init();\n\n const $MobileSearchIcon = $('.js-search-icon-mobile');\n\n $MobileSearchIcon.on('click', (e) => {\n e.preventDefault();\n $MobileSearchInput.toggleClass('m-active js-clicked-search');\n stickyFilterPositioning();\n });\n};\n","module.exports = {\n initHoursPopup() {\n $(document.body).on('click', '.js-store-hours', ((e) => {\n e.preventDefault();\n const $target = $(e.target);\n const $hoursPopup = $target.next('.js-store-hours-popup');\n const $allPopups = $('.js-store-hours-popup');\n\n $allPopups.addClass('h-hidden');\n\n $hoursPopup.removeClass('h-hidden');\n $target.attr('aria-expanded', 'true');\n\n $hoursPopup.one('click', '.js-locator_popup_close', () => {\n $target.attr('aria-expanded', 'false');\n $allPopups.addClass('h-hidden');\n return false;\n });\n }));\n }\n};\n","import Inputmask from 'inputmask';\n\nmodule.exports = {\n digitsOnly: function() {\n Inputmask('999-999-9999').mask('.js-input-phone');\n $('.js-input-digits-only').on('input', (event) => {\n event.target.value = event.target.value.replace(/\\D/g, '');\n });\n }\n};\n","/*!\n Zoom 1.7.21\n license: MIT\n http://www.jacklmoore.com/zoom\n*/\n(function ($) {\n var defaults = {\n url: false,\n callback: false,\n target: false,\n duration: 120,\n on: 'mouseover', // other options: grab, click, toggle\n touch: false, // enables a touch fallback\n onZoomIn: false,\n onZoomOut: false,\n magnify: 1\n };\n\n // Core Zoom Logic, independent of event listeners.\n $.zoom = function(target, source, img, magnify) {\n var targetHeight,\n targetWidth,\n sourceHeight,\n sourceWidth,\n xRatio,\n yRatio,\n offset,\n $target = $(target),\n position = $target.css('position'),\n $source = $(source);\n\n // The parent element needs positioning so that the zoomed element can be correctly positioned within.\n target.style.position = /(absolute|fixed)/.test(position) ? position : 'relative';\n target.style.overflow = 'hidden';\n img.style.width = '';\n img.style.height = '';\n\n $(img)\n .addClass('zoomImg')\n .css({\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n width: img.width * magnify,\n height: img.height * magnify,\n border: 'none',\n maxWidth: 'none',\n maxHeight: 'none'\n })\n .appendTo(target);\n\n return {\n init: function() {\n targetWidth = $target.outerWidth();\n targetHeight = $target.outerHeight();\n\n if (source === target) {\n sourceWidth = targetWidth;\n sourceHeight = targetHeight;\n } else {\n sourceWidth = $source.outerWidth();\n sourceHeight = $source.outerHeight();\n }\n\n xRatio = (img.width - targetWidth) / sourceWidth;\n yRatio = (img.height - targetHeight) / sourceHeight;\n\n offset = $source.offset();\n },\n move: function (e) {\n var left = (e.pageX - offset.left),\n top = (e.pageY - offset.top);\n\n top = Math.max(Math.min(top, sourceHeight), 0);\n left = Math.max(Math.min(left, sourceWidth), 0);\n\n img.style.left = (left * -xRatio) + 'px';\n img.style.top = (top * -yRatio) + 'px';\n }\n };\n };\n\n $.fn.zoom = function (options) {\n return this.each(function () {\n var\n settings = $.extend({}, defaults, options || {}),\n //target will display the zoomed image\n target = settings.target && $(settings.target)[0] || this,\n //source will provide zoom location info (thumbnail)\n source = this,\n $source = $(source),\n img = document.createElement('img'),\n $img = $(img),\n mousemove = 'mousemove.zoom',\n clicked = false,\n touched = false;\n\n // If a url wasn't specified, look for an image element.\n if (!settings.url) {\n var srcElement = source.querySelector('img');\n if (srcElement) {\n settings.url = srcElement.getAttribute('data-src') || srcElement.currentSrc || srcElement.src;\n }\n if (!settings.url) {\n return;\n }\n }\n\n $source.one('zoom.destroy', function (position, overflow) {\n $source.off('.zoom');\n target.style.position = position;\n target.style.overflow = overflow;\n img.onload = null;\n $img.remove();\n }.bind(this, target.style.position, target.style.overflow));\n\n img.onload = function () {\n var zoom = $.zoom(target, source, img, settings.magnify);\n\n function start(e) {\n zoom.init();\n zoom.move(e);\n\n // Skip the fade-in for IE8 and lower since it chokes on fading-in\n // and changing position based on mousemovement at the same time.\n $img.stop()\n .fadeTo($.support.opacity ? settings.duration : 0, 1, $.isFunction(settings.onZoomIn) ? settings.onZoomIn.call(img) : false);\n }\n\n function stop() {\n $img.stop()\n .fadeTo(settings.duration, 0, $.isFunction(settings.onZoomOut) ? settings.onZoomOut.call(img) : false);\n }\n\n // Mouse events\n if (settings.on === 'grab') {\n $source\n .on('mousedown.zoom',\n (e) => {\n if (e.which === 1) {\n $(document).one('mouseup.zoom',\n () => {\n stop();\n\n $(document).off(mousemove, zoom.move);\n }\n );\n\n start(e);\n\n $(document).on(mousemove, zoom.move);\n\n e.preventDefault();\n }\n }\n );\n } else if (settings.on === 'click') {\n $source.on('click.zoom',\n (e) => {\n if (clicked) {\n // bubble the event up to the document to trigger the unbind.\n return;\n } else {\n clicked = true;\n start(e);\n $(document).on(mousemove, zoom.move);\n $(document).one('click.zoom',\n () => {\n stop();\n clicked = false;\n $(document).off(mousemove, zoom.move);\n }\n );\n return false;\n }\n }\n );\n } else if (settings.on === 'toggle') {\n $source.on('click.zoom',\n (e) => {\n if (clicked) {\n stop();\n } else {\n start(e);\n }\n clicked = !clicked;\n }\n );\n } else if (settings.on === 'mouseover') {\n zoom.init(); // Preemptively call init because IE7 will fire the mousemove handler before the hover handler.\n\n $source\n .on('mouseenter.zoom', start)\n .on('mouseleave.zoom', stop)\n .on(mousemove, zoom.move);\n }\n\n // Touch fallback\n if (settings.touch) {\n if (settings.on !== 'click') {\n $source.on('touchstart', (e) => {\n e.preventDefault();\n if (touched) {\n touched = false;\n stop();\n } else {\n touched = true;\n console.log(e.originalEvent);\n start( e.originalEvent.touches[0] || e.originalEvent.changedTouches[0] );\n }\n });\n }\n $source.on('touchmove.zoom', (e) => {\n if (clicked) {\n e.preventDefault();\n }\n zoom.move( e.originalEvent.touches[0] || e.originalEvent.changedTouches[0] );\n });\n if (settings.on !== 'click') {\n $source.on('touchend.zoom', (e) => {\n e.preventDefault();\n if (touched) {\n touched = false;\n stop();\n }\n });\n }\n }\n if ($.isFunction(settings.callback)) {\n settings.callback.call(img);\n }\n };\n\n img.setAttribute('role', 'presentation');\n img.alt = '';\n img.src = settings.url;\n });\n };\n\n $.fn.zoom.defaults = defaults;\n}(window.jQuery));\n","const validation = require('./clientSideValidation').functions;\n/**\n * appends params to a url\n * @param {string} data - data returned from the server's ajax call\n * @param {object} button - button that was clicked for email sign-up\n * @param {boolean} isRedirect - enable to redirect on address, that was got from request\n * @param {object} form - cuurent form\n */\nfunction displayMessage(data, button, isRedirect, form) {\n const $form = form;\n $form.spinner().stop();\n const $messageContainer = $form.find('.js-email-signup-message');\n $messageContainer.removeClass('m-success m-error');\n $messageContainer.addClass(data.success ? 'm-success' : 'm-error');\n\n if (data.msg) {\n $messageContainer.append(data.msg);\n }\n\n if (data.success && isRedirect) {\n window.location.href = data.subscriptionFormUrl;\n }\n setTimeout(() => {\n $messageContainer.html('');\n button.removeAttr('disabled');\n }, 3000);\n}\n\nmodule.exports = () => {\n $('#footer-signup-form').on('submit', (e) => {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n\n const button = $('.js-subscribe-email');\n const url = button.data('href');\n const emailId = $('input[name=hpEmailSignUp]').val();\n const $form = $('#footer-signup-form');\n\n if (!validation.validateForm($form)) {\n return;\n }\n\n validation.clearForm($form);\n $form.spinner().start();\n $(button).attr('disabled', true);\n\n $.ajax({\n url,\n type: 'post',\n dataType: 'json',\n data: {\n emailId\n },\n success(data) {\n displayMessage(data, button, true, $form);\n },\n error(err) {\n displayMessage(err, button, false, $form);\n }\n });\n });\n};\n","const CompositedComponent = require('./utils/CompositedComponent');\n\nmodule.exports = function () {\n const menuList = document.querySelector('[data-js-nav]');\n const menuBar = document.querySelector('[data-js-menu-bar]');\n const newNav = document.querySelectorAll('.js-new-navigation-menu');\n\n if (menuList && menuBar) {\n const Menubar = require('./menus/Menubar');\n\n if (newNav.length > 0) {\n $('.b-header_button.m-first').addClass('no-border');\n const HamburgerNew = require('./menusV2/HamburgerMenuV2');\n new CompositedComponent(new HamburgerNew(menuList), new Menubar(menuBar));\n } else {\n const Hamburger = require('./menus/HamburgerMenu');\n new CompositedComponent(new Hamburger(menuList), window.styleConstants.breakpoint.medium, new Menubar(menuBar));\n }\n }\n};\n","module.exports = class MobileNav {\n constructor(domeNode) {\n this.domeNode = domeNode;\n this.backBtn = this.domeNode.querySelector('[data-js-nav-back]');\n\n this.trackCurrentLevel = 0;\n this.activePanels = [];\n\n this.forward = this.forward.bind(this);\n this.back = this.back.bind(this);\n }\n\n init() {\n this.initEventListeners();\n }\n\n initEventListeners() {\n this.resetHamburgerState = this.resetHamburgerState.bind(this);\n const hamburgerPanel = document.getElementById('hamburger-menu');\n\n this.domeNode.addEventListener('click', this.forward);\n this.backBtn.addEventListener('click', this.back);\n hamburgerPanel.addEventListener('dialog:closed', this.resetHamburgerState);\n }\n\n forward(e) {\n let clickedLink = e.target;\n if (clickedLink.parentElement.tagName === 'A') {\n clickedLink = clickedLink.parentElement;\n }\n if (!clickedLink.hasAttribute('data-js-nav-to') ||\n !clickedLink.nextElementSibling ||\n !clickedLink.nextElementSibling.hasAttribute('data-js-nav-flyout')) {\n return;\n }\n\n e.preventDefault();\n\n this.moveTrackTo(parseInt(clickedLink.getAttribute('data-js-nav-to'), 10));\n this.activatePanel(clickedLink);\n }\n\n back(e) {\n e.preventDefault();\n\n if (this.trackCurrentLevel > 0) {\n this.moveTrackTo((this.trackCurrentLevel !== 9) ? this.trackCurrentLevel - 1 : 0);\n }\n }\n\n moveTrackTo(level) {\n const mainNavClasses = this.domeNode.classList;\n mainNavClasses.remove(`m-active_level_${this.trackCurrentLevel}`);\n mainNavClasses.add(`m-active_level_${level}`);\n this.trackCurrentLevel = level;\n this.domeNode.scrollTop = 0;\n\n this.toggleBackButton();\n }\n\n activatePanel(activeLink) {\n const panelRelatedToLink = activeLink.nextElementSibling;\n\n if (this.activePanels[this.trackCurrentLevel]) {\n this.activePanels[this.trackCurrentLevel].classList.remove('m-active');\n }\n\n panelRelatedToLink.classList.add('m-active');\n this.activePanels[this.trackCurrentLevel] = panelRelatedToLink;\n }\n\n toggleBackButton() {\n const backButtonClasses = this.backBtn.classList;\n\n if (this.trackCurrentLevel === 0 || this.trackCurrentLevel === 9) {\n backButtonClasses.remove('m-activated');\n } else {\n backButtonClasses.add('m-activated');\n }\n }\n\n resetHamburgerState() {\n setTimeout(() => {\n this.resetClasses();\n this.currentLevel = 0;\n this.openedPanel = null;\n this.backBtn.classList.remove('m-activated');\n }, 400); // 400 panel animation delay\n }\n\n resetClasses() {\n this.domeNode.classList.remove(`m-active_level_${this.trackCurrentLevel}`);\n this.activePanels.forEach(panel => panel.classList.remove('m-active'));\n }\n\n destroy() {\n this.domeNode.removeEventListener('click', this.forward);\n this.backBtn.removeEventListener('click', this.back);\n document.body.removeEventListener('hamburger:close', this.resetHamburgerState);\n\n this.resetClasses();\n }\n};\n","const MenuItem = require('./MenuItem');\n\nmodule.exports = class Menu {\n /*\n * This content is based on w3.org design pattern examples and licensed according to the\n * W3C Software License at\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * Please see specification:\n * https://www.w3.org/TR/wai-aria-practices/#menubutton\n */\n constructor(domNode, controllerObj) {\n Menu.validateStructure(domNode);\n\n this.domNode = domNode;\n this.controller = controllerObj;\n\n this.menuitems = [];\n\n this.hasFocus = false;\n this.hasHover = false;\n\n this.firstItem = null;\n this.lastItem = null;\n\n this.mouseOutTimeout = 30;\n }\n\n init() {\n this.initEventListeners();\n this.initMenuItems();\n this.initFirstAndLastElements();\n }\n\n initEventListeners() {\n this.handleMouseover = this.handleMouseover.bind(this);\n this.handleMouseout = this.handleMouseout.bind(this);\n\n this.domNode.addEventListener('mouseenter', this.handleMouseover);\n this.domNode.addEventListener('mouseleave', this.handleMouseout);\n }\n\n initMenuItems() {\n // Change this to recursive init submenus if needed\n this.domNode.querySelectorAll('[role=\"menuitem\"]').forEach((item) => {\n const menuItem = new MenuItem(item, this);\n menuItem.init();\n this.menuitems.push(menuItem);\n });\n }\n\n initFirstAndLastElements() {\n const numItems = this.menuitems.length;\n if (numItems > 0) {\n // eslint-disable-next-line prefer-destructuring\n this.firstItem = this.menuitems[0];\n this.lastItem = this.menuitems[numItems - 1];\n }\n }\n\n handleMouseover() {\n this.hasHover = true;\n }\n\n handleMouseout() {\n this.hasHover = false;\n // Need timeout to improve UX. Note that controller should implement this\n // timeout also.\n setTimeout(this.close.bind(this), this.mouseOutTimeout);\n }\n\n setFocusToController(cmd) {\n const command = typeof cmd !== 'string' ? '' : cmd;\n\n if (command === '') {\n if (this.controller && this.controller.domNode) {\n // focus controller node and handle event on his side\n this.controller.domNode.focus();\n }\n return;\n }\n\n if (this.controller.isMenubarItem) {\n if (command === 'previous') {\n this.controller.menuBar.setFocusToPreviousItem(this.controller);\n }\n if (command === 'next') {\n this.controller.menuBar.setFocusToNextItem(this.controller);\n }\n }\n }\n\n setFocusToItem(newItem) {\n newItem.domNode.tabIndex = 0;\n newItem.domNode.focus();\n }\n\n setFocusToFirstItem() {\n this.setFocusToItem(this.firstItem);\n }\n\n setFocusToLastItem() {\n this.setFocusToItem(this.lastItem);\n }\n\n setFocusToPreviousItem(currentItem) {\n const newItem = (currentItem === this.firstItem) ? this.lastItem\n : this.menuitems[this.getItemIndex(currentItem) - 1];\n this.setFocusToItem(newItem);\n }\n\n setFocusToNextItem(currentItem) {\n const newItem = (currentItem === this.lastItem) ? this.firstItem\n : this.menuitems[this.getItemIndex(currentItem) + 1];\n this.setFocusToItem(newItem);\n }\n\n getItemIndex(domNode) {\n return this.menuitems.indexOf(domNode);\n }\n\n open() {\n this.togglePopup(true);\n return true;\n }\n\n close(force) {\n if (force) {\n this.togglePopup(false);\n return true;\n }\n\n const hasFocusWithin = this.hasFocus || this.menuitems.some(item => item.popupMenu && item.popupMenu.hasFocus);\n const hasHoverOnController = this.controller.isMenubarItem ? this.controller.hasHover : false;\n\n if (!hasFocusWithin && !this.hasHover && !hasHoverOnController) {\n this.togglePopup(false);\n return true;\n }\n\n return false;\n }\n\n togglePopup(isOpen) {\n this.domNode.classList[isOpen ? 'add' : 'remove']('m-active');\n this.domNode.setAttribute('aria-hidden', !isOpen);\n this.controller.setExpanded(isOpen);\n }\n\n destroy() {\n this.domNode.removeEventListener('mouseenter', this.handleMouseover);\n this.domNode.removeEventListener('mouseleave', this.handleMouseout);\n this.close(true);\n this.domNode.style.height = 'initial'; // remove programmatically applied height. See toggleFlyout\n this.menuitems.forEach(item => item.destroy());\n }\n\n static validateStructure(domNode) {\n const msgPrefix = 'PopupMenu constructor argument domNode ';\n\n // Check whether menubarNode is a DOM element\n if (!(domNode instanceof Element)) {\n throw new TypeError(`${msgPrefix} is not a DOM Element.`);\n }\n\n // Check whether menubarNode has descendant elements\n if (domNode.childElementCount === 0) {\n throw new Error(`${msgPrefix} has no element children.`);\n }\n\n // Check whether domNode descendant elements have A elements\n let childElement = domNode.firstElementChild;\n while (childElement) {\n const menuitem = childElement.firstElementChild;\n if (menuitem && menuitem === 'A') {\n throw new Error(`${msgPrefix} has descendant elements that are not A elements.`);\n }\n childElement = childElement.nextElementSibling;\n }\n }\n};\n","module.exports = class MenuItem {\n /*\n * This content is based on w3.org design pattern examples and licensed according to the\n * W3C Software License at\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n */\n constructor(domNode, menuObj) {\n this.domNode = domNode;\n this.menu = menuObj;\n\n this.blurHandledByController = false;\n\n this.timeout = 20;\n\n this.keyCode = Object.freeze({\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n });\n }\n\n init() {\n this.domNode.tabIndex = -1;\n this.initEventListeners();\n }\n\n initEventListeners() {\n this.handleKeydown = this.handleKeydown.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n\n this.domNode.addEventListener('keydown', this.handleKeydown);\n this.domNode.addEventListener('click', this.handleClick);\n this.domNode.addEventListener('focus', this.handleFocus);\n this.domNode.addEventListener('blur', this.handleBlur);\n }\n\n handleKeydown(event) {\n let preventEventActions = false;\n\n switch (event.keyCode) {\n case this.keyCode.SPACE:\n case this.keyCode.RETURN:\n this.handleKeyReturn(event);\n preventEventActions = true;\n break;\n\n case this.keyCode.UP:\n this.menu.setFocusToPreviousItem(this);\n preventEventActions = true;\n break;\n\n case this.keyCode.DOWN:\n this.menu.setFocusToNextItem(this);\n preventEventActions = true;\n break;\n\n case this.keyCode.LEFT:\n this.handleKeyLeft();\n preventEventActions = true;\n break;\n\n case this.keyCode.RIGHT:\n this.handleKeyRight();\n preventEventActions = true;\n break;\n\n case this.keyCode.HOME:\n case this.keyCode.PAGEUP:\n this.menu.setFocusToFirstItem();\n preventEventActions = true;\n break;\n\n case this.keyCode.END:\n case this.keyCode.PAGEDOWN:\n this.menu.setFocusToLastItem();\n preventEventActions = true;\n break;\n\n case this.keyCode.ESC:\n this.menu.setFocusToController();\n preventEventActions = true;\n break;\n\n case this.keyCode.TAB:\n this.menu.setFocusToController();\n preventEventActions = true;\n break;\n\n default:\n break;\n }\n\n if (preventEventActions) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n handleKeyReturn(event) {\n // Create simulated mouse event to mimic the behavior of ATs\n // and let the event handler handleClick do the housekeeping.\n let clickEvent;\n if (typeof MouseEvent === 'function') {\n clickEvent = new MouseEvent('click', { view: window, bubbles: true, cancelable: true });\n } else if (document.createEvent) { // IE11<\n clickEvent = document.createEvent('MouseEvents');\n clickEvent.initEvent('click', true, true);\n }\n event.currentTarget.dispatchEvent(clickEvent);\n }\n\n handleKeyRight() {\n this.blurHandledByController = true; // blur and close handled in parent\n this.menu.setFocusToController('next');\n }\n\n handleKeyLeft() {\n this.blurHandledByController = true;\n this.menu.setFocusToController('previous');\n }\n\n handleClick() {}\n\n handleFocus() {\n this.menu.hasFocus = true;\n }\n\n handleBlur() {\n this.menu.hasFocus = false;\n this.domNode.tabIndex = -1;\n\n if (!this.blurHandledByController) {\n setTimeout(() => this.menu.close(), this.timeout);\n // We need this timeout to handle keyboard interaction between components.\n // When it blur some other will set focus. This checked in Menu.close. If no one\n // gained focus we close menu\n }\n this.blurHandledByController = false;\n }\n\n destroy() {\n this.domNode.tabIndex = 0;\n\n this.domNode.removeEventListener('keydown', this.handleKeydown);\n this.domNode.removeEventListener('click', this.handleClick);\n this.domNode.removeEventListener('focus', this.handleFocus);\n this.domNode.removeEventListener('blur', this.handleBlur);\n }\n};\n","const MenubarItem = require('./MenubarItem');\n\nmodule.exports = class Menubar {\n /*\n * This content is based on w3.org design pattern examples and licensed according to the\n * W3C Software License at\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * Please see specification:\n * https://www.w3.org/TR/wai-aria-practices/#menu\n */\n\n constructor(domNode) {\n Menubar.validateStructure(domNode);\n this.domNode = domNode;\n\n this.menubarItems = [];\n\n this.firstItem = null;\n this.lastItem = null;\n\n this.hasFocus = false;\n this.hasHover = false;\n\n this.activationDelay = 500;\n\n this.body = document.body;\n this.flyout = this.domNode.querySelector('[data-js-menu-flyout-pane]');\n\n }\n\n init() {\n this.setUpMenuItems();\n if (this.menubarItems.length <= 0) {\n return;\n }\n this.initEventListeners();\n this.setFirstAndLastItems();\n this.firstItem.domNode.tabIndex = 0;\n }\n\n setUpMenuItems() {\n let elem = this.domNode.firstElementChild;\n\n while (elem) {\n const menuElement = elem.firstElementChild;\n\n if (elem && menuElement && menuElement.tagName === 'A') {\n const menubarItem = new MenubarItem(menuElement, this);\n menubarItem.init();\n this.menubarItems.push(menubarItem);\n }\n\n elem = elem.nextElementSibling;\n }\n }\n\n setFirstAndLastItems() {\n const numItems = this.menubarItems.length;\n this.firstItem = this.menubarItems[0];\n this.lastItem = this.menubarItems[numItems - 1];\n }\n\n initEventListeners() {\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n\n this.domNode.addEventListener('mouseenter', this.handleMouseEnter);\n this.domNode.addEventListener('mouseleave', this.handleMouseLeave);\n }\n\n handleMouseEnter() {\n const setIntentionalHover = () => {\n this.hasHover = true;\n this.menubarItems.forEach((barItem) => {\n if (barItem.hasHover) {\n barItem.domNode.classList.add('m-hover');\n }\n if (barItem.hasHover && barItem.popupMenu) {\n barItem.popupMenu.open();\n }\n });\n };\n this.timeout = setTimeout(setIntentionalHover, this.activationDelay);\n }\n\n handleMouseLeave() {\n clearTimeout(this.timeout);\n this.hasHover = false;\n }\n\n setFocusToItem(newItem) {\n let hasOpenedMenu = false; // open menu if bar has already opened menu\n\n this.menubarItems.forEach((barItem) => {\n if (barItem.isPopUpExpanded) {\n hasOpenedMenu = true;\n }\n barItem.domNode.tabIndex = -1;\n if (barItem.popupMenu) {\n barItem.popupMenu.close(true);\n }\n });\n\n newItem.domNode.focus();\n newItem.domNode.tabIndex = 0;\n\n if (hasOpenedMenu && newItem.popupMenu) {\n newItem.popupMenu.open();\n }\n }\n\n setFocusToFirstItem() {\n this.setFocusToItem(this.firstItem);\n }\n\n setFocusToLastItem() {\n this.setFocusToItem(this.lastItem);\n }\n\n setFocusToPreviousItem(currentItem) {\n const newItem = (currentItem === this.firstItem) ? this.lastItem\n : this.menubarItems[this.getElementIndex(currentItem) - 1];\n this.setFocusToItem(newItem);\n }\n\n setFocusToNextItem(currentItem) {\n const newItem = (currentItem === this.lastItem) ? this.firstItem\n : this.menubarItems[this.getElementIndex(currentItem) + 1];\n this.setFocusToItem(newItem);\n }\n\n getElementIndex(domNode) {\n return this.menubarItems.indexOf(domNode);\n }\n\n toggleFlyout(isOpen, menuNode) {\n const flyoutPaneStyles = this.flyout.style;\n const menuNodeHeight = menuNode.querySelector('.js-nav-flyout-inner').clientHeight;\n\n if (isOpen) {\n const topPosition = window.scrollY ? window.scrollY : window.pageYOffset;\n flyoutPaneStyles.top = `${parseInt(this.domNode.getBoundingClientRect().bottom + topPosition, 10)}px`;\n\n flyoutPaneStyles.opacity = 1;\n flyoutPaneStyles.height = `${menuNodeHeight + 4}px`;\n flyoutPaneStyles.visibility = 'visible';\n\n menuNode.style.height = menuNodeHeight + 'px';\n\n window.partialOverlay.open();\n } else {\n flyoutPaneStyles.opacity = 0;\n flyoutPaneStyles.height = '80px';\n flyoutPaneStyles.visibility = 'hidden';\n menuNode.style.height = '80px';\n\n window.partialOverlay.close();\n }\n }\n\n destroy() {\n this.domNode.removeEventListener('mouseenter', this.handleMouseEnter);\n this.domNode.removeEventListener('mouseleave', this.handleMouseLeave);\n this.menubarItems.forEach((item) => {\n item.domNode.tabIndex = 0;\n item.destroy();\n });\n }\n\n initRoles() {\n this.domNode.setAttribute('role', 'menubar');\n this.domNode.childs.forEach((child) => {\n if (child.tagName === 'LI') {\n child.setAttribute('role', 'none');\n }\n if (child.tagName === 'A') {\n child.setAttribute('role', 'menuitem');\n child.setAttribute('tabindex', 0);\n }\n });\n }\n\n static validateStructure(domNode) {\n const msgPrefix = 'Menubar constructor argument menubarNode ';\n\n // Check whether menubarNode is a DOM element\n if (!(domNode instanceof Element)) {\n throw new TypeError(`${msgPrefix} is not a DOM Element.`);\n }\n\n // Check whether menubarNode has descendant elements\n if (domNode.childElementCount === 0) {\n throw new Error(`${msgPrefix} has no element children.`);\n }\n\n // Check whether menubarNode has A or BUTTON elements\n let menuElement = domNode.firstElementChild;\n\n while (menuElement) {\n const menubarItem = menuElement.firstElementChild;\n\n if (menuElement && menubarItem && menubarItem.tagName !== 'A' && menubarItem.tagName !== 'BUTTON') {\n throw new Error(`${msgPrefix} has child elements that are not A or BUTTON elements.`);\n }\n\n menuElement = menuElement.nextElementSibling;\n }\n }\n};\n","const PopupMenu = require('./Menu');\n\nmodule.exports = class MenubarItem {\n /*\n * This content is based on w3.org design pattern examples\n * and licensed according to the W3C Software License at\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n */\n constructor(domNode, menuObj) {\n this.isMenubarItem = true;\n this.menuBar = menuObj;\n this.domNode = domNode;\n this.wrapper = this.domNode.parentNode; // we need this to not deal with\n // timeouts for hovering from separate button to menu. This is not robust.\n this.popupMenu = null;\n\n this.hasFocus = false;\n this.hasHover = false;\n this.isPopUpExpanded = false;\n\n this.mouseOutTimeout = 30;\n\n this.keyCode = Object.freeze({\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n });\n }\n\n init() {\n this.domNode.tabIndex = -1;\n this.initEventListeners();\n\n // Initialize pop up menus\n const nextElement = this.domNode.nextElementSibling;\n if (nextElement && nextElement.hasAttribute('role', 'menu')) {\n this.popupMenu = new PopupMenu(nextElement, this);\n this.popupMenu.init();\n }\n }\n\n initEventListeners() {\n this.handleKeydown = this.handleKeydown.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleMouseover = this.handleMouseover.bind(this);\n this.handleMouseout = this.handleMouseout.bind(this);\n\n this.domNode.addEventListener('keydown', this.handleKeydown);\n this.domNode.addEventListener('focus', this.handleFocus);\n this.domNode.addEventListener('blur', this.handleBlur);\n this.wrapper.addEventListener('mouseenter', this.handleMouseover);\n this.wrapper.addEventListener('mouseleave', this.handleMouseout);\n }\n\n handleKeydown(event) { // eslint-disable-line complexity\n let preventEventActions = false;\n\n switch (event.keyCode) {\n case this.keyCode.SPACE:\n case this.keyCode.RETURN:\n case this.keyCode.DOWN:\n if (this.popupMenu) {\n this.popupMenu.open();\n this.popupMenu.setFocusToFirstItem(); // NB. This will not work on transformed elements\n preventEventActions = true;\n }\n break;\n\n case this.keyCode.LEFT:\n this.menuBar.setFocusToPreviousItem(this);\n preventEventActions = true;\n break;\n\n case this.keyCode.RIGHT:\n this.menuBar.setFocusToNextItem(this);\n preventEventActions = true;\n break;\n\n case this.keyCode.UP:\n if (this.popupMenu) {\n this.popupMenu.open();\n this.popupMenu.setFocusToLastItem(); // NB. This will not work on transformed elements\n preventEventActions = true;\n }\n break;\n\n case this.keyCode.HOME:\n case this.keyCode.PAGEUP:\n this.menuBar.setFocusToFirstItem();\n preventEventActions = true;\n break;\n\n case this.keyCode.END:\n case this.keyCode.PAGEDOWN:\n this.menuBar.setFocusToLastItem();\n preventEventActions = true;\n break;\n\n case this.keyCode.TAB:\n if (this.popupMenu) {\n this.popupMenu.close(true);\n }\n break;\n\n case this.keyCode.ESC:\n if (this.popupMenu) {\n this.popupMenu.close(true);\n }\n break;\n\n default:\n break;\n }\n\n if (preventEventActions) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n setExpanded(isExpanded) {\n this.domNode.setAttribute('aria-expanded', isExpanded);\n this.isPopUpExpanded = isExpanded;\n\n if (isExpanded) {\n this.menuBar.toggleFlyout(true, this.popupMenu.domNode);\n } else {\n this.menuBar.toggleFlyout(false, this.popupMenu.domNode);\n }\n }\n\n handleFocus() {\n this.menuBar.hasFocus = true;\n }\n\n handleBlur() {\n this.menuBar.hasFocus = false;\n }\n\n handleMouseover() {\n if (this.hasHover) {\n return;\n }\n\n this.hasHover = true;\n if (this.menuBar.hasHover && this.popupMenu) {\n // Need timeout to improve UX\n setTimeout(() => this.popupMenu.open(), this.mouseOutTimeout);\n }\n if (this.menuBar.hasHover) {\n this.domNode.classList.add('m-hover');\n }\n }\n\n handleMouseout() {\n this.hasHover = false;\n if (this.popupMenu) {\n // fired twice since menu also handle mouseout and close menu\n setTimeout(() => this.popupMenu.close(), this.mouseOutTimeout);\n this.popupMenu.domNode.classList.remove('m-active');\n }\n this.domNode.classList.remove('m-hover');\n }\n\n destroy() {\n this.domNode.removeEventListener('keydown', this.handleKeydown);\n this.domNode.removeEventListener('focus', this.handleFocus);\n this.domNode.removeEventListener('blur', this.handleBlur);\n this.wrapper.removeEventListener('mouseenter', this.handleMouseover);\n this.wrapper.removeEventListener('mouseleave', this.handleMouseout);\n\n if (this.popupMenu) {\n this.popupMenu.destroy();\n }\n }\n};\n","const PopupMenu = require('./Menu');\n\nmodule.exports = class Popup {\n /*\n * This content is based on w3.org design pattern examples and licensed according to the\n * W3C Software License at\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n */\n constructor(domNode) {\n this.domNode = domNode;\n this.popupMenu = false;\n\n this.isMenubarItem = false;\n\n this.hasFocus = false;\n this.hasHover = false;\n\n this.timeout = 90;\n\n this.keyCode = Object.freeze({\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n });\n }\n\n init() {\n this.initEventListeners();\n\n const menu = document.getElementById(this.domNode.getAttribute('aria-controls'));\n this.popupMenu = new PopupMenu(menu, this);\n this.popupMenu.init();\n\n this.setPopupPosition();\n }\n\n initEventListeners() {\n this.handleKeydown = this.handleKeydown.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleMouseenter = this.handleMouseenter.bind(this);\n this.handleMouseleave = this.handleMouseleave.bind(this);\n\n this.domNode.addEventListener('keydown', this.handleKeydown);\n this.domNode.addEventListener('focus', this.handleFocus);\n this.domNode.addEventListener('blur', this.handleBlur);\n this.domNode.addEventListener('mouseenter', this.handleMouseenter);\n this.domNode.addEventListener('mouseleave', this.handleMouseleave);\n }\n\n setExpanded(isExpanded) {\n this.domNode.setAttribute('aria-expanded', isExpanded.toString());\n }\n\n setPopupPosition() {\n const buttonBottom = this.domNode.offsetTop + this.domNode.clientHeight;\n const buttonCenter = this.domNode.offsetLeft + (this.domNode.clientWidth / 2);\n\n this.popupMenu.domNode.style.top = `${buttonBottom + 14}px`;\n this.popupMenu.domNode.querySelector('.b-popup_menu-tail').style.left = `${buttonCenter}px`;\n }\n\n handleKeydown(event) {\n let preventEventActions = false;\n\n switch (event.keyCode) {\n case this.keyCode.SPACE:\n case this.keyCode.RETURN:\n case this.keyCode.DOWN:\n this.popupMenu.open();\n this.popupMenu.setFocusToFirstItem();\n preventEventActions = true;\n break;\n\n case this.keyCode.UP:\n this.popupMenu.open();\n this.popupMenu.setFocusToLastItem();\n preventEventActions = true;\n break;\n\n case this.keyCode.TAB:\n case this.keyCode.ESC:\n this.popupMenu.close(true);\n break;\n\n default:\n break;\n }\n\n if (preventEventActions) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n handleMouseenter() {\n this.hasHover = true;\n this.popupMenu.open();\n this.setPopupPosition();\n }\n\n handleMouseleave() {\n this.hasHover = false;\n const closePopup = () => {\n if (!this.popupMenu.hasHover) {\n this.popupMenu.close();\n }\n };\n setTimeout(closePopup, this.timeout);\n }\n\n handleFocus() {\n this.hasFocus = true;\n }\n\n handleBlur() {\n this.hasFocus = false;\n const closePopup = () => {\n if (!this.popupMenu.hasFocus) {\n this.popupMenu.close();\n }\n };\n setTimeout(closePopup, this.timeout);\n }\n\n destroy() {\n this.domNode.removeEventListener('mouseenter', this.handleMouseenter);\n this.domNode.removeEventListener('mouseleave', this.handleMouseleave);\n this.domNode.removeEventListener('keydown', this.handleKeydown);\n this.domNode.removeEventListener('focus', this.handleFocus);\n this.domNode.removeEventListener('blur', this.handleBlur);\n this.popupMenu.destroy();\n }\n};\n","module.exports = class NewNav {\n\n constructor(domeNode) {\n this.domeNode = domeNode;\n this.backBtn = this.domeNode.querySelector('[data-js-nav-back]');\n this.body = document.body;\n this.windowWidth = document.documentElement.clientWidth;\n this.isFirstClick = true;\n\n this.trackCurrentLevel = 0;\n this.activePanels = [];\n\n this.forward = this.forward.bind(this);\n this.back = this.back.bind(this);\n }\n\n init() {\n this.initEventListeners();\n }\n\n initEventListeners() {\n this.resetHamburgerState = this.resetHamburgerState.bind(this);\n const hamburgerPanel = document.getElementById('hamburger-menu');\n const header = document.querySelector('.l-header');\n const content = document.querySelector('.l-content');\n const utilityMenu = document.querySelector('.b-utility_domain_switcher');\n const desktopBar = document.querySelector('.b-desktop_bar');\n const desktopBtn = document.querySelector('#toggleDesktop');\n\n this.domeNode.addEventListener('click', this.forward.bind(this));\n this.backBtn.addEventListener('click', this.back.bind(this));\n hamburgerPanel.addEventListener('dialog:closed', this.resetHamburgerState);\n header.addEventListener('click', this.resetHamburgerState);\n content.addEventListener('click', this.resetHamburgerState);\n utilityMenu.addEventListener('click', this.resetHamburgerState);\n\n const isToggled = desktopBtn.classList.contains('m-toggled');\n\n if (this.windowWidth > 1199) {\n desktopBar.addEventListener('click', (e) => {\n if (!e.target.closest('.n-desktop-btn')) {\n this.resetHamburgerState();\n }\n });\n\n desktopBtn.addEventListener('click', () => {\n if (this.isFirstClick && !isToggled) {\n this.isFirstClick = false;\n } else {\n this.resetHamburgerState();\n }\n });\n }\n }\n\n forward(e) {\n let clickedLink = e.target;\n if (clickedLink.parentElement.tagName === 'A') {\n clickedLink = clickedLink.parentElement;\n }\n if (!clickedLink.hasAttribute('data-js-nav-to') ||\n !clickedLink.nextElementSibling ||\n !clickedLink.nextElementSibling.hasAttribute('data-js-nav-flyout')) {\n return;\n }\n\n e.preventDefault();\n\n this.moveTrackTo(parseInt(clickedLink.getAttribute('data-js-nav-to'), 10));\n this.activatePanel(clickedLink);\n\n }\n\n back(e) {\n e.preventDefault();\n\n if (this.trackCurrentLevel > 0) {\n this.moveTrackTo((this.trackCurrentLevel !== 9) ? this.trackCurrentLevel - 1 : 0);\n }\n }\n\n\n moveTrackTo(level) {\n const mainNavClasses = this.domeNode.classList;\n mainNavClasses.remove(`m-active_level_${this.trackCurrentLevel}`);\n mainNavClasses.add(`m-active_level_${level}`);\n this.trackCurrentLevel = level;\n this.domeNode.scrollTop = 0;\n this.toggleBackButton();\n }\n\n activatePanel(activeLink) {\n const panelRelatedToLink = activeLink.nextElementSibling;\n\n if (this.activePanels[this.trackCurrentLevel]) {\n this.activePanels[this.trackCurrentLevel].classList.remove('m-active');\n }\n\n panelRelatedToLink.classList.add('m-active');\n this.activePanels[this.trackCurrentLevel] = panelRelatedToLink;\n }\n\n toggleBackButton() {\n const backButtonClasses = this.backBtn.classList;\n\n if (this.trackCurrentLevel === 0 || this.trackCurrentLevel === 9) {\n backButtonClasses.remove('m-activated');\n } else {\n backButtonClasses.add('m-activated');\n }\n }\n\n /**\n * Resets the state of the hamburger menu\n */\n resetHamburgerState() {\n this.isFirstClick = true;\n\n setTimeout(() => {\n this.resetClasses();\n this.currentLevel = 0;\n this.openedPanel = null;\n this.backBtn.classList.remove('m-activated');\n\n if (this.windowWidth > 1199) {\n this.body.classList.remove('has-dialog');\n }\n }, 400); // 400 panel animation delay\n }\n\n resetDesktopBar() {\n const hamburgerMenu = document.querySelector('.n-hamburger');\n const hamburgerMobileContainer = document.querySelector('.mobile-container');\n const desktopHamburgerButton = document.querySelector('[data-js-toggle-hamburger-desktop]');\n desktopHamburgerButton.classList.remove('m-toggled');\n if (hamburgerMenu.closest('.hamburger-container')) {\n hamburgerMobileContainer.append(hamburgerMenu);\n }\n }\n\n resetClasses() {\n const nMainMenu = document.querySelector('.n-main_menu');\n const nPanel = document.querySelector('#hamburger-menu');\n this.domeNode.classList.remove(`m-active_level_${this.trackCurrentLevel}`);\n this.activePanels.forEach(panel => panel.classList.remove('m-active'));\n\n if (window.innerWidth < 1200) {\n nMainMenu.style.removeProperty('height');\n nPanel.style.removeProperty('height');\n }\n\n this.resetDesktopBar();\n }\n\n destroy() {\n this.domeNode.removeEventListener('click', this.forward);\n this.backBtn.removeEventListener('click', this.back);\n document.body.removeEventListener('hamburger:close', this.resetHamburgerState);\n this.resetClasses();\n }\n};\n","let updateMiniCart = true;\nlet closeMiniCartTimeout;\n\nfunction updateMiniCartQuantity(data) {\n const hiddenClass = 'b-minicart_icon-quantity_hidden';\n const minicartQuantity = $('.js-minicart-quantity');\n const minicartButton = $('.js-minicart-button');\n\n if (data.qty > 0) {\n minicartQuantity\n .removeClass(hiddenClass)\n .text(data.qty);\n if (minicartButton.length) {\n minicartButton.attr('title', minicartButton.attr('title').replace(/\\d+/, data.qty));\n }\n } else {\n minicartQuantity\n .addClass(hiddenClass)\n .text('0');\n if (minicartButton.length) {\n minicartButton.attr('title', minicartButton.attr('title').replace(/\\d+/, '0'));\n }\n }\n\n if (data.resources) {\n minicartButton.attr('aria-label', data.resources.minicartCountOfItems);\n }\n}\n\nfunction closeMiniCart(dialogID) {\n if ($(dialogID).hasClass('is-open')) {\n window.dialogManager.closeDialog(dialogID);\n }\n window.clearTimeout(closeMiniCartTimeout);\n}\n\nfunction showRestrictionDialog (data) {\n if (typeof(data.message) === 'object' && data.message.shipToHomeRestricted) {\n let $modalContainer = $($('.js-restriction-message').html());\n $('body').append($modalContainer);\n window.dialogManager.openDialog('modal', '#restriction-message');\n }\n}\nfunction openMiniCart($trigger, cb) {\n if (parseInt($('.js-minicart-quantity').text(), 10) < 0) {\n return;\n }\n\n window.dialogManager.openDialog('panel', '#minicart-panel', $trigger[0], $('.js-minicart-panel-close')[0]);\n\n if (!updateMiniCart) {\n return;\n }\n\n const $panelYields = $('.js-minicart-panel-yield');\n $panelYields.spinner().start(true);\n $panelYields.attr('aria-busy', 'true');\n\n const url = $('.js-minicart').data('action-url');\n $.get(url, (data) => {\n $panelYields.html(data);\n updateMiniCart = false;\n $panelYields.spinner().stop();\n $panelYields.attr('aria-busy', 'false');\n return cb();\n });\n}\n\nfunction emptyMiniCart() {\n const emptyMinicartTemplate = $('#minicart-empty-content').html();\n $('.js-minicart-panel-yield').empty().append(emptyMinicartTemplate);\n updateMiniCartQuantity({ qty: 0 });\n}\n\nfunction updateAppoachingDiscounts(discounts) {\n let html = '';\n if (discounts.length > 0) {\n discounts.forEach((item) => {\n html += `<div class=\"alert m-cart-message\" role=\"alert\">${item.discountMsg}</div>`;\n });\n }\n return html;\n}\n\nfunction updateMiniCartProductGrandTotal({items}) {\n if (items) {\n items.forEach((qwe) => {\n const {UUID, priceTotal} = qwe;\n if (UUID) {\n const $grandTotalPrice = $(`.js-grand-total-price-${UUID}`);\n $grandTotalPrice.text(priceTotal.price);\n }\n });\n }\n}\n\nfunction updateOrderDiscount(data) {\n const $orderDiscountWrapper = $('.js-minicart-order-discount');\n const $orderDiscount = $('.js-minicart-order-discount-value');\n const $shippingDiscountWrapper = $('.js-minicart-shipping-discount');\n const $shippingDiscount = $('.js-minicart-shipping-discount-value');\n\n $orderDiscount.text(data.totals.orderLevelDiscountTotal.formatted);\n $orderDiscountWrapper.toggleClass(window.styleConstants.hideClass, !data.totals.orderLevelDiscountTotal.value);\n $shippingDiscount.text(data.totals.shippingLevelDiscountTotal.formatted);\n $shippingDiscountWrapper.toggleClass(window.styleConstants.hideClass, !data.totals.shippingLevelDiscountTotal.value);\n}\n\nfunction updateMiniCartTotals(data) {\n const $itemsCount = $('.js-minicart-items-count');\n const $total = $('.js-minicart-total');\n const $taxtotal = $('.js-minicart-taxtotal');\n const $shipping = $('.js-minicart-shipping');\n const $subtotal = $('.js-minicart-subtotal');\n const $approachingDiscounts = $('.js-approaching-discounts');\n const $miniCartErrorMessage = $('.js-minicart-error');\n if (!data.valid.error) {\n $miniCartErrorMessage.addClass('h-hidden');\n }\n $itemsCount.text(data.resources.numberOfItems);\n $total.text(data.totals.grandTotal);\n $taxtotal.text(data.totals.totalTax);\n $shipping.text(data.totals.totalShippingCost);\n $subtotal.text(data.totals.subTotal);\n $approachingDiscounts.html(updateAppoachingDiscounts(data.approachingDiscounts));\n updateMiniCartProductGrandTotal(data);\n updateOrderDiscount(data);\n}\n\nfunction openModalDialog(quantity) {\n const $body = $('body');\n\n if (!$body.find('.js-item-added-to-cart-modal').length) {\n const modalDialogContent = $('#item-added-to-cart').html();\n $body.append(modalDialogContent);\n }\n\n $body.find('.js-item-added-quantity').text(quantity);\n window.dialogManager.openDialog('modal', '#itemAddedToCartModal', $('.js-add-to-cart')[0]);\n}\n\nmodule.exports = function () {\n const $body = $('body');\n\n $('.js-minicart-button').on('click', (e) => {\n if (parseInt($('.js-minicart-quantity').text(), 10) !== 0) {\n e.preventDefault();\n openMiniCart($(e.target), () => {});\n }\n });\n\n $('.js-age-modal-close').click(() => {\n closeMiniCart();\n });\n\n $body.on('minicart:update:content', (event, data) => updateMiniCartTotals(data));\n\n $body.on('minicart:update:qty', (event, data) => updateMiniCartQuantity(data));\n\n $body.on('product:afterAddToCart', (event, data) => {\n var $minicartQuantityEl = $('.js-minicart-quantity');\n var initialQuantity = parseInt($minicartQuantityEl.text()) || 0;\n var resultingQuantity;\n\n updateMiniCartQuantity({ qty: data.cart.numItems, resources: data.cart.resources });\n updateMiniCart = true;\n resultingQuantity = parseInt($minicartQuantityEl.text()) - initialQuantity;\n\n if (window.innerWidth >= window.styleConstants.breakpoint.medium) {\n openMiniCart($('.js-add-to-cart'), () => closeMiniCartTimeout = window.setTimeout(() => {\n closeMiniCart('#minicart-panel');\n }, 5000));\n showRestrictionDialog(data);\n } else {\n openModalDialog(resultingQuantity);\n showRestrictionDialog(data);\n }\n });\n\n $body.on('basket:empty', emptyMiniCart);\n\n $body.on('change', '.js-minicart .quantity', function () {\n if ($(this).parents('.bonus-product-line-item').length && $('.cart-page').length) {\n window.location.reload();\n }\n });\n};\n","const validation = require('./clientSideValidation').functions;\n\nconst SELECTORS = {\n modal: '#newsletterModal',\n form: 'form',\n email: '#newsletterEmail',\n closeBtn: '.js-modal-dialog-close',\n signupBtn: '.js-newsletter-signup',\n thanks: '.js-newsletter-modal-thanks'\n};\n\nconst $modal = $(SELECTORS.modal);\nconst $form = $modal.find(SELECTORS.form);\nconst $closeBtn = $modal.find(SELECTORS.closeBtn);\nconst $signupBtn = $modal.find(SELECTORS.signupBtn);\nconst $thanks = $modal.find(SELECTORS.thanks);\n\nfunction showNewsletterModal(selector) {\n window.dialogManager.openDialog('modal', selector);\n}\n\nfunction closeNewsletterModal(selector) {\n window.dialogManager.closeDialog(selector);\n}\n\nfunction displayMessage(data) {\n if (data.success) {\n $thanks.removeClass('h-hidden');\n $form.addClass('h-hidden');\n }\n}\n\nmodule.exports = () => {\n $form.on('submit', (e) => {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n\n if (validation.validateForm($form)) {\n validation.clearForm($form);\n\n $form.spinner().start();\n $signupBtn.attr('disabled', true);\n\n const url = $form.attr('action');\n\n $.ajax({\n url,\n type: 'post',\n dataType: 'json',\n data: $form.serialize()\n })\n .done((data) => {\n displayMessage(data);\n })\n .fail(() => {\n // do nothing\n })\n .always(() => {\n $signupBtn.attr('disabled', false);\n $form.spinner().stop();\n });\n }\n });\n\n $thanks.on('click', () => {\n closeNewsletterModal(SELECTORS.modal);\n });\n\n $closeBtn.on('click', () => {\n closeNewsletterModal(SELECTORS.modal);\n });\n\n $(document).ready(() => {\n if ($modal.length) {\n showNewsletterModal(SELECTORS.modal);\n }\n });\n};\n","const pageHeaderBanner = {\n init() {\n this.headerBanner = document.body.querySelector('.header-banner');\n\n if (!this.headerBanner || sessionStorage.getItem('headerBanner')) {\n return;\n }\n\n this.closeButton = this.headerBanner.querySelector('.close-button');\n this.content = this.headerBanner.querySelector('.html-slot-container');\n\n if (this.content && this.content.children.length) {\n this.events();\n this.setStyles();\n }\n },\n\n events() {\n if (this.closeButton) {\n this.closeButton.addEventListener('click', this.closeBanner.bind(this));\n }\n },\n\n setStyles() {\n this.headerBanner.classList.add('js-show');\n this.headerBanner.style.height = `${this.headerBanner.offsetHeight}px`;\n },\n\n removeShowClass() {\n this.headerBanner.classList.remove('js-show');\n this.removeEventListener.removeEventListener('transitionend', this.removeShowClass);\n },\n\n closeBanner() {\n this.headerBanner.style = 'display: none';\n this.headerBanner.addEventListener('transitionend', this.removeShowClass);\n\n sessionStorage.setItem('headerBanner', '1');\n }\n};\n\nmodule.exports = function() {\n pageHeaderBanner.init();\n};\n","function nodeListForEach() {\n if (window.NodeList && !NodeList.prototype.forEach) {\n return NodeList.prototype.forEach = Array.prototype.forEach;\n }\n}\n\nfunction isNaN() {\n return Number.isNaN = Number.isNaN || (value => value !== value); // eslint-disable-line\n}\n\nfunction matches() {\n if (Element.prototype.matches) {\n return;\n }\n return Element.prototype.matches = Element.prototype.msMatchesSelector;\n}\n\nfunction closest() {\n if (Element.prototype.closest) {\n return;\n }\n\n return Element.prototype.closest = function (cssSelector) {\n let node = this;\n\n while (node) {\n if (node.matches(cssSelector)) {\n return node;\n }\n\n node = node.parentElement;\n }\n\n return null;\n };\n}\n\nfunction customEvents() {\n // DOM Level 3 compatibility for Events\n if (typeof window.CustomEvent === 'function') {\n return;\n }\n\n function CustomEvent(name, params) {\n let eventParams = params || { bubbles: false, cancelable: false, detail: undefined };\n\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent(\n name, eventParams.bubbles,\n eventParams.cancelable,\n eventParams.detail\n );\n\n return event;\n }\n\n window.CustomEvent = CustomEvent;\n}\n\nmodule.exports = function () {\n nodeListForEach();\n customEvents();\n isNaN();\n matches();\n closest();\n};\n","const PopupButton = require('./menus/Popup');\n\nmodule.exports = function () {\n document.querySelectorAll('[data-js-popup-button]')\n .forEach(popupButton => new PopupButton(popupButton).init());\n};\n","'use strict';\n\nconst formHelpers = require('../checkout/formErrors');\n\nfunction showModal() {\n $('.modal-dialog').find('.alert-danger').remove();\n window.dialogManager.openDialog('modal', '#js-modal-postal');\n}\n\nfunction showModalError() {\n $('.modal-dialog').find('.alert-danger').remove();\n window.dialogManager.openDialog('modal', '#js-modal-postal-error');\n}\n\nmodule.exports = {\n postalCodeMenu: function() {\n $('body').on('click', '.js-postal-code-trigger', () => {\n if (!$('.js-postal-code-trigger').parents().hasClass('summary-postalcode')) {\n showModal();\n }\n });\n },\n\n postalCodeErrorMenu: function() {\n $('body').on('dialog:closed', '#js-modal-postal-error', () => {\n window.location.reload();\n });\n },\n\n postForm: function() {\n $('body').on('click', '.js-locationForm-trigger', (e) => {\n e.preventDefault();\n var $form = $(e.currentTarget).closest('form');\n var data = $form.serialize();\n\n var targetCart = $('.l-content').children().hasClass('js-cart-content') || $('.l-content').children().hasClass('data-checkout-stage');\n\n var pid = $('.js-home-delivery').data('pid');\n\n var url = $form.attr('action') + '?pid=' + pid;\n\n $.ajax({\n url: url,\n type: 'POST',\n dataType: 'json',\n data: data,\n success(data) {\n if (data.success) {\n //open modal if cart is invalid\n if (data.isInvalidBasket && !targetCart) {\n showModalError();\n } else if (data.redirectUrl) {\n location.href = data.redirectUrl;\n } else {\n //reload the page so the postal code can be update\n window.location.reload();\n }\n }\n // look for field validation errors\n if (data.error) {\n if (data.fieldErrors.length) {\n $('.example-message').removeClass('hidden');\n\n data.fieldErrors.forEach((error) => {\n if (Object.keys(error).length) {\n $.each(error, (attr) => {\n $form.find('*[name=' + attr + ']')\n .addClass('is-invalid');\n $form.find('.invalid-feedback')\n .html(error[attr]);\n });\n }\n });\n }\n }\n }\n });\n });\n },\n\n postFormModal: function() {\n $('body').on('click', '.js-locationForm-trigger-modal', (e) => {\n e.preventDefault();\n var $form = $(e.currentTarget).closest('form');\n var data = $form.serialize();\n\n var targetCart = $('.l-content').children().hasClass('js-cart-content') || $('.l-content').children().hasClass('data-checkout-stage');\n\n $.ajax({\n url: $form.attr('action'),\n type: 'POST',\n dataType: 'json',\n data: data,\n success(data) {\n if (data.success) {\n //open modal if cart is invalid\n if (data.isInvalidBasket && !targetCart) {\n showModalError();\n } else {\n //reload the page so the postal code can be update\n window.location.reload();\n }\n }\n // look for field validation errors\n if (data.error) {\n if (data.fieldErrors.length) {\n $('.example-message').removeClass('hidden');\n\n data.fieldErrors.forEach((error) => {\n formHelpers.loadFormErrors('.location-postal-code', error, false);\n });\n }\n }\n }\n });\n });\n }\n};\n","module.exports = function(object) {\n const domNode = object instanceof jQuery ? object[0] : object;\n const position = domNode ? domNode.getBoundingClientRect().top + window.scrollY : 0;\n const container = window;\n\n if (typeof container.scrollTo !== 'function') {\n domNode.scrollIntoView();\n }\n\n container.scrollTo({\n top: position,\n left: 0,\n behavior: 'smooth'\n });\n};\n","module.exports = function () {\n const $scrollToTopButton = $('#scrollToTop');\n var timeout = false;\n\n $(window).scroll(() => {\n\n if (timeout !== false) {\n clearTimeout(timeout);\n\n if ($(window).scrollTop() > 200) {\n $scrollToTopButton.addClass('show');\n } else {\n $scrollToTopButton.removeClass('show');\n }\n }\n\n timeout = setTimeout(() => {\n $scrollToTopButton.removeClass('show');\n }, 800);\n });\n\n $scrollToTopButton.on('click', (e) => {\n e.preventDefault();\n $('html, body').animate({scrollTop: 0}, '500');\n });\n};\n","let loaderTimer;\n\n/**\n * Show a spinner inside a given element\n * @param {JQuery} $target - Element contains spinner.\n * Pass body to block the whole page.\n * @param {number|boolean} delay - Delay for spinner animation\n */\nfunction addSpinner($target, delay = 1400) {\n if ($target.hasClass('h-busy')) {\n return;\n }\n\n const $spinner = $(`\n<svg class=\"b-spinner m-animated\" width=\"38px\" height=\"38px\" viewBox=\"0 0 66 66\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" stroke-width=\"6\" stroke-linecap=\"round\">\n <circle stroke-opacity=\".2\" cx=\"33\" cy=\"33\" r=\"30\"></circle>\n <circle class=\"b-spinner-spinner_line\" cx=\"33\" cy=\"33\" r=\"30\"></circle>\n </g>\n</svg>\n `);\n\n $target.addClass('h-busy');\n\n loaderTimer = setTimeout(() => {\n $target.append($spinner);\n }, delay);\n}\n\n/**\n * Remove existing spinner\n * @param {JQuery} $element - jQuery element that contain spinner\n */\nfunction removeSpinner($element) {\n const $spinner = $element.find('.b-spinner');\n\n clearTimeout(loaderTimer);\n $element.removeClass('h-busy');\n $spinner.remove();\n}\n\n// element level spinner:\n$.fn.spinner = function () {\n const $element = $(this);\n const Fn = function () {\n this.start = function (delay) {\n if ($element.length) {\n addSpinner($element, delay);\n }\n };\n this.stop = function () {\n if ($element.length) {\n removeSpinner($element);\n }\n };\n };\n return new Fn();\n};\n\n// page-level spinner:\n$.spinner = function () {\n const Fn = function () {\n this.start = function () {\n $('body').append($('<div class=\"b-busy_overlay\"></div>'));\n addSpinner($('.b-busy_overlay'));\n };\n this.stop = function () {\n removeSpinner($('body'));\n $('.b-busy_overlay').remove();\n };\n };\n return new Fn();\n};\n","const stickyHeaderHeight = {\n init($headerWrapper) {\n const $window = $(window);\n const domainSwitcherHeight = $('.js-utility_domain_switcher').height();\n const $headerBannerBtn = $('.header-banner .close-button');\n const headerBannerHeight = $('.header-banner.js-show').height();\n const $content = $('.l-content');\n const headerTop = $headerWrapper.height();\n\n //check other types of pages\n const searchContainer = $('.js-search-container');\n\n let headerHeight;\n\n /**\n * Adjusts the header height based on the window width and presence of search container\n */\n\n if ($window.width() < window.styleConstants.breakpoint.small) {\n if (searchContainer.length > 0) {\n headerHeight = (headerTop - 30);\n } else {\n headerHeight = (headerTop - 66);\n }\n } else {\n headerHeight = (headerTop);\n }\n\n $content.css('margin-top', headerHeight);\n\n\n $headerBannerBtn.on('click', () => {\n $content.css('margin-top', headerHeight - headerBannerHeight - domainSwitcherHeight);\n });\n }\n};\n\n/**\n * Initializes the sticky header height and handles resize event\n * @module stickyHeaderHeight\n * @exports initStickyHeaderHeight\n */\nmodule.exports = function () {\n const $headerWrapper = $('.l-header_wrapper');\n\n window.addEventListener('resize', () => {\n stickyHeaderHeight.init($headerWrapper);\n });\n\n if ($headerWrapper.is(':visible')) {\n stickyHeaderHeight.init($headerWrapper);\n } else {\n const intervalHandler = setInterval(() => {\n if ($headerWrapper.is(':visible')) {\n clearInterval(intervalHandler);\n stickyHeaderHeight.init($headerWrapper);\n }\n }, 100);\n }\n};\n","module.exports = function () {\n const hamburgerButton = document.querySelector('[data-js-toggle-hamburger]');\n const desktopHamburgerButton = document.querySelector('[data-js-toggle-hamburger-desktop]');\n\n if (hamburgerButton) {\n hamburgerButton.addEventListener('click', (event) =>\n window.dialogManager.openDialog('panel', '#hamburger-menu', event.target));\n }\n\n if (desktopHamburgerButton) {\n desktopHamburgerButton.addEventListener('click', (event) => {\n const hamburgerMenu = document.querySelector('.n-hamburger');\n const hamburgerContainer = document.querySelector('.hamburger-container');\n const nMainMenu = document.querySelector('.n-main_menu');\n const nPanel = document.querySelector('#hamburger-menu');\n const windowHeight = window.innerHeight;\n const desktopDomainSwitcher = document.querySelector('.js-utility_domain_switcher');\n const domainHeight = desktopDomainSwitcher.offsetHeight;\n const body = document.body;\n\n nMainMenu.style.height = `${windowHeight - 300}px`;\n nPanel.style.height = `${windowHeight - 300}px`;\n body.classList.add('has-dialog');\n hamburgerContainer.appendChild(hamburgerMenu); // Move the #hamburger-menu element to the .hamburger-container\n\n if (window.scrollY === 0) {\n if (domainHeight > 0) {\n hamburgerMenu.classList.add('scrolled-to-top');\n }\n } else {\n hamburgerMenu.classList.remove('scrolled-to-top');\n }\n\n hamburgerContainer.style.display = 'block'; // Display the .hamburger-container\n\n window.addEventListener('resize', () => {\n const newWindowHeight = window.innerHeight;\n nMainMenu.style.height = `${newWindowHeight - 300}px`;\n nPanel.style.height = `${newWindowHeight - 300}px`;\n });\n\n desktopHamburgerButton.classList.add('m-toggled');\n\n window.dialogManager.openDialog('panel', '#hamburger-menu', event.target);\n }, 400);\n\n desktopHamburgerButton.addEventListener('transitionend', () => {\n const hamburgerContainer = document.querySelector('.hamburger-container');\n hamburgerContainer.style.display = '';\n });\n }\n};\n","const keyCode = Object.freeze({\n RETURN: 13,\n SPACE: 32,\n END: 35,\n HOME: 36,\n UP: 38,\n DOWN: 40\n});\n\nmodule.exports = class Accordion {\n /*\n * Accordion\n * Please see W3C specs https://www.w3.org/TR/wai-aria-practices/#accordion\n *\n * Configuration:\n * `data-allow-toggle` - Allow for each toggle to both open and close its section.\n * Makes it possible for all sections to be closed.\n * `data-allow-multiple` - Allow for multiple accordion sections to be expanded\n * at the same time.\n */\n constructor(group) {\n this.group = group;\n this.buttons = Array.from(this.group.querySelectorAll('[data-aria-controls]:not([data-role=tab])'));\n this.allowToggle = this.isAttributeSet(this.group.getAttribute('data-allow-toggle'));\n this.allowMultiple = this.isAttributeSet(this.group.getAttribute('data-allow-multiple'));\n this.keyCode = keyCode;\n }\n\n init() {\n this.initRoles();\n this.addEventListeners();\n this.addComponentReference();\n }\n\n destroy() {\n this.destroyRoles();\n this.removeEventListeners();\n this.removeComponentReference();\n }\n\n addEventListeners() {\n this.handleClick = this.handleClick.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.handleKeyup = this.handleKeyup.bind(this);\n\n this.buttons.forEach(button => {\n button.addEventListener('click', this.handleClick);\n button.addEventListener('keydown', this.handleKeydown);\n button.addEventListener('keyup', this.handleKeyup);\n });\n }\n\n removeEventListeners() {\n this.buttons.forEach(button => {\n button.removeEventListener('click', this.handleClick);\n button.removeEventListener('keydown', this.handleKeydown);\n button.removeEventListener('keyup', this.handleKeyup);\n });\n }\n\n addComponentReference() {\n this.group.widget = this;\n }\n\n removeComponentReference() {\n delete this.group.widget;\n }\n\n handleClick(event) {\n if ($(event.target).attr('href')) {\n window.location.href = $(event.target).attr('href');\n }\n event.preventDefault();\n this.toggleSection(event.target);\n }\n\n toggleSection(button) {\n const isExpanded = button.getAttribute('aria-expanded') === 'true';\n\n if (!this.allowMultiple) {\n this.buttons.forEach(button => Accordion.closeSection(button));\n }\n\n if ((this.allowToggle || this.allowMultiple) && isExpanded) {\n Accordion.closeSection(button);\n } else {\n Accordion.openSection(button);\n }\n }\n\n static closeSection(button) {\n button.setAttribute('aria-expanded', 'false');\n button.classList.remove('m-expanded');\n\n const controlledSection = document.getElementById(button.getAttribute('data-aria-controls'));\n if (!controlledSection) {\n return;\n }\n controlledSection.setAttribute('aria-hidden', 'true');\n controlledSection.classList.remove('m-expanded');\n }\n\n static openSection(button) {\n button.setAttribute('aria-expanded', 'true');\n button.classList.add('m-expanded');\n\n const controlledSection = document.getElementById(button.getAttribute('data-aria-controls'));\n if (!controlledSection) {\n return;\n }\n controlledSection.setAttribute('aria-hidden', 'false');\n controlledSection.classList.add('m-expanded');\n }\n\n handleKeydown(event) {\n const key = event.which || event.keyCode;\n let preventEventActions = false;\n\n switch (key) {\n case this.keyCode.SPACE:\n this.handleClick(event);\n preventEventActions = true;\n break;\n case this.keyCode.RETURN:\n this.handleClick(event);\n preventEventActions = true;\n break;\n case this.keyCode.DOWN:\n this.focusButtonByIndex(this.getButtonIndex(event.target) + 1);\n preventEventActions = true;\n break;\n case this.keyCode.UP:\n this.focusButtonByIndex(this.getButtonIndex(event.target) - 1);\n preventEventActions = true;\n break;\n case this.keyCode.HOME:\n this.focusButtonByIndex(0);\n preventEventActions = true;\n break;\n case this.keyCode.END:\n this.focusButtonByIndex(-1);\n preventEventActions = true;\n break;\n }\n\n if (preventEventActions) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n handleKeyup(event) {\n const key = event.which || event.keyCode;\n // FF fires click event on button node after keyup\n if (key === this.keyCode.SPACE || key === this.keyCode.RETURN) {\n event.preventDefault();\n }\n }\n\n getButtonIndex(domNode) {\n const index = this.buttons.indexOf(domNode);\n return index === -1 ? 0 : index;\n }\n\n focusButtonByIndex(requestedIndex) {\n const buttonsLength = this.buttons.length;\n let nextIndex;\n\n if (requestedIndex < 0) {\n nextIndex = (buttonsLength - 1);\n } else {\n nextIndex = requestedIndex % buttonsLength;\n }\n\n this.buttons[nextIndex].focus();\n }\n\n initRoles() {\n this.buttons.forEach(button => {\n button.setAttribute('role', 'button');\n button.tabIndex = 0;\n button.setAttribute('aria-controls', button.getAttribute('data-aria-controls'));\n button.setAttribute('aria-expanded', 'false');\n document.getElementById(button.getAttribute('data-aria-controls')).setAttribute('role', 'region');\n });\n }\n\n destroyRoles() {\n this.buttons.forEach(button => {\n button.removeAttribute('role');\n button.tabIndex = -1;\n button.removeAttribute('aria-controls');\n button.removeAttribute('aria-expanded');\n const controlledSection = document.getElementById(button.getAttribute('data-aria-controls'));\n controlledSection.removeAttribute('role');\n controlledSection.removeAttribute('aria-hidden');\n controlledSection.classList.remove('m-expanded');\n });\n }\n\n isAttributeSet(attr) {\n return attr === '' || attr === 'true';\n }\n};\n","const keyCode = Object.freeze({\n RETURN: 13,\n SPACE: 32\n});\n\nmodule.exports = class Expand {\n /**\n * Expand (Disclosure / Summary)\n * This is expand button implementation that could be used for several different\n * cases like disclosure / summary component (show-hide), panel control button etc.\n * Please see W3C specs https://www.w3.org/TR/wai-aria-practices/#disclosure\n *\n * @param {HTMLElement} button - toggle button with `aria-controls`\n * @example\n * <button aria-expanded=\"false\" aria-controls=\"more-details\">Read more...</button>\n * <div id=\"more-details\">Lorem ipsum...</div>\n */\n constructor(button) {\n this.button = button;\n this.isOpen = false;\n this.keyCode = keyCode;\n }\n\n init() {\n this.controledElement = document.getElementById(this.button.getAttribute('aria-controls'));\n if (!this.controledElement) {\n return;\n }\n this.addComponentReference();\n this.addEventListeners();\n this.initState();\n }\n\n destroy() {\n this.removeEventListeners();\n this.removeComponentReference();\n this.destroyState();\n }\n\n addEventListeners() {\n this.handleClick = this.handleClick.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.handleKeyup = this.handleKeyup.bind(this);\n\n this.button.addEventListener('click', this.handleClick);\n this.button.addEventListener('keydown', this.handleKeydown);\n this.button.addEventListener('keyup', this.handleKeyup);\n }\n\n removeEventListeners() {\n this.button.removeEventListener('click', this.handleClick);\n this.button.removeEventListener('keydown', this.handleKeydown);\n this.button.removeEventListener('keyup', this.handleKeyup);\n }\n\n addComponentReference() {\n this.button.widget = this;\n }\n\n removeComponentReference() {\n delete this.button.widget;\n }\n\n initState() {\n this.isOpen = !(this.button.getAttribute('aria-expanded') === 'true');\n this.toggle();\n }\n\n destroyState() {\n this.button.removeAttribute('aria-expanded');\n this.controledElement.removeAttribute('aria-hidden');\n }\n\n handleClick(event) {\n event.preventDefault();\n this.toggle();\n }\n\n toggle() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n close() {\n this.button.setAttribute('aria-expanded', 'false');\n this.controledElement.setAttribute('aria-hidden', 'true');\n this.isOpen = false;\n this.button.dispatchEvent(new CustomEvent('toggle:close', { bubbles: true, cancelable: true }));\n }\n\n open() {\n this.button.setAttribute('aria-expanded', 'true');\n this.controledElement.setAttribute('aria-hidden', 'false');\n this.isOpen = true;\n this.button.dispatchEvent(new CustomEvent('toggle:open', { bubbles: true, cancelable: true }));\n }\n\n handleKeydown(event) {\n const key = event.which || event.keyCode;\n let preventEventActions = false;\n\n switch (key) {\n case this.keyCode.SPACE:\n this.handleClick(event);\n preventEventActions = true;\n break;\n case this.keyCode.RETURN:\n this.handleClick(event);\n preventEventActions = true;\n break;\n }\n\n if (preventEventActions) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n handleKeyup(event) {\n const key = event.which || event.keyCode;\n // FF fires click event on button node after keyup\n if (key === this.keyCode.SPACE || key === this.keyCode.RETURN) {\n event.preventDefault();\n }\n }\n};\n","module.exports = class CompositedComponent {\n constructor(before, breakpoint, after) {\n this.desktopComponent = after;\n this.mobileComponent = before;\n this.breakpoint = breakpoint;\n this.desktopComponentInited = false;\n this.mobileComponentInited = false;\n this.mediaHelpers = require('./media');\n\n this.init();\n }\n\n init() {\n if (window.innerWidth >= this.breakpoint) {\n this.initDesktopComponent();\n } else {\n this.initMobileComponent();\n }\n\n this.addEventListeners();\n }\n\n initDesktopComponent() {\n this.desktopComponent.init();\n this.desktopComponentInited = true;\n }\n\n initMobileComponent() {\n this.mobileComponent.init();\n this.mobileComponentInited = true;\n }\n\n toggleComponents() {\n if (window.innerWidth >= this.breakpoint) {\n if (this.mobileComponentInited) {\n this.mobileComponent.destroy();\n this.mobileComponentInited = false;\n }\n if (!this.desktopComponentInited) {\n this.initDesktopComponent();\n }\n } else {\n if (this.desktopComponentInited) {\n this.desktopComponent.destroy();\n this.desktopComponentInited = false;\n }\n if (!this.mobileComponentInited) {\n this.initMobileComponent();\n }\n }\n }\n\n addEventListeners() {\n this.mediaHelpers.listenBreakpointChange(this.toggleComponents.bind(this));\n }\n};\n","let lastBreakpoint;\nlet calls = [];\n\nconst getBreakpoint = () => {\n let breakpoint;\n\n switch (true) {\n case window.innerWidth < window.styleConstants.breakpoint.small:\n breakpoint = 'small';\n break;\n case (window.innerWidth >= window.styleConstants.breakpoint.small && window.innerWidth < window.styleConstants.breakpoint.medium):\n breakpoint = 'medium';\n break;\n case window.innerWidth >= window.styleConstants.breakpoint.medium:\n breakpoint = 'large';\n break;\n }\n\n return breakpoint;\n};\n\nmodule.exports = {\n getBreakpoint,\n listenBreakpointChange: function (callback) {\n calls.push(callback);\n window.addEventListener('resize', () => {\n const currentBreakpoint = getBreakpoint();\n if (currentBreakpoint === lastBreakpoint) {\n return;\n }\n lastBreakpoint = currentBreakpoint;\n calls.forEach(call => call());\n });\n }\n};\n","/**\n * Create notification for applied changes\n *\n * @param {string} message - message text\n */\nmodule.exports = function waiNotify(message) {\n const $notification = $('.js-notifier');\n if ($notification && $notification[0].widget) {\n $notification[0].widget.notify(message);\n }\n};\n","/**\n * @param {string} userId - userId that was signed in\n */\nfunction loginDataLayerEventInit(userId) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'login',\n userId\n });\n}\n\n/**\n * push Product In DataLayer object, that was added to cart\n * @param {int} productQuantity - quantity of product\n * @param {object} productData - product data info\n * @param {string} currencyCode - currency code for current session\n */\nfunction addToCartDataLayerEventInit(productQuantity, productData, currencyCode) {\n const jsProductDetailSelector = document.querySelector('.js-product-detail-data');\n\n if (!productData) {\n const productDataJson = jsProductDetailSelector.getAttribute('data-product');\n productData = JSON.parse(productDataJson);\n }\n if (!currencyCode) {\n currencyCode = jsProductDetailSelector.getAttribute('data-currency');\n }\n\n let isExsistEvent = false;\n let eventIndex = null;\n\n productData.quantity = productQuantity;\n\n window.dataLayer.forEach((element, index) => {\n if (element.event === 'addToCart') {\n isExsistEvent = true;\n eventIndex = index;\n }\n });\n\n if (isExsistEvent) {\n window.dataLayer[eventIndex].ecommerce.add.products.push(productData);\n } else {\n window.dataLayer.push({\n event: 'addToCart',\n ecommerce: {\n currencyCode,\n add: {\n products: [productData]\n }\n }\n });\n }\n}\n\n/**\n * push Product In DataLayer object, that is during checkout process\n */\nfunction onCheckout() {\n const productInCheckoutSelector = document.querySelector('.js-product-in-checkout');\n const productsInBasketJson = productInCheckoutSelector.getAttribute('data-products');\n const productsInBasket = JSON.parse(productsInBasketJson);\n const userStatus = productInCheckoutSelector.getAttribute('data-user');\n const orderInformation = productInCheckoutSelector.getAttribute('data-order-information');\n const orderInformationObject = JSON.parse(orderInformation);\n\n if (userStatus === 'unregistered') {\n window.dataLayer.push({\n event: 'CheckoutAsGuestUser',\n userId: 'Guest_User'\n });\n }\n window.dataLayer.push({\n ecommerce: {\n purchase: {\n actionField: {\n id: orderInformationObject.id,\n affiliation: orderInformationObject.affiliation,\n revenue: orderInformationObject.revenue,\n tax: orderInformationObject.tax,\n shipping: orderInformationObject.shipping,\n coupon: orderInformationObject.coupon || ''\n }\n },\n products: productsInBasket\n }\n });\n}\n\n/**\n * push Product In DataLayer object\n *\n * @param {Object} product\n */\nfunction pushProductInDataLayer(product) {\n window.dataLayer.push({\n event: 'productClick',\n ecommerce: {\n click: {\n products: [{\n name: product.name,\n id: product.id,\n price: product.price,\n category: product.category\n }]\n }\n },\n eventCallback: () => { }\n });\n}\n\n/**\n * push event to dataLayer for click on add to baby registry button\n */\nfunction babyRegistryEvent() {\n $(document).on('baby-registry.clicked', () => {\n const productDataSelector = document.querySelector('.js-product-detail-data');\n const productDataJson = productDataSelector.getAttribute('data-product');\n const product = JSON.parse(productDataJson);\n\n window.dataLayer.push({\n event: 'addToRegistry',\n Products: {\n name: product.name,\n id: product.id,\n price: product.price\n }\n });\n });\n}\n\n/**\n * push Product In DataLayer object\n */\nfunction pushProductDetail() {\n const productDataSelector = document.querySelector('.js-product-detail-data');\n const productDataJson = productDataSelector.getAttribute('data-product');\n const product = JSON.parse(productDataJson);\n\n window.dataLayer.push({\n ecommerce: {\n detail: {\n products: [{\n name: product.name,\n id: product.id,\n price: product.price,\n category: product.category,\n brand: product.brand\n }]\n }\n }\n });\n}\n\n/**\n * push Products In DataLayer object\n */\nfunction pushProductsInDataLayer() {\n const productsJsonSelector = document.querySelectorAll('.js-plp');\n\n if (!productsJsonSelector.length) {\n return;\n }\n const productsJson = productsJsonSelector[productsJsonSelector.length - 1].getAttribute('data-products');\n const productsArray = JSON.parse(productsJson);\n const currencyCode = productsJsonSelector[productsJsonSelector.length - 1].getAttribute('data-currency-code');\n\n let isExistImpressions = false;\n let ecommerceIndex = null;\n\n window.dataLayer.forEach((dataLayerObject, index) => {\n if (dataLayerObject.ecommerce && dataLayerObject.ecommerce.impressions) {\n isExistImpressions = true;\n ecommerceIndex = index;\n }\n });\n\n if (isExistImpressions) {\n const previousProducts = window.dataLayer[ecommerceIndex].ecommerce.impressions;\n const allProduct = previousProducts.concat(productsArray);\n const lastPosition = previousProducts.length;\n\n productsArray.forEach((product, index) => {\n product.position = lastPosition + index + 1;\n });\n\n window.dataLayer[ecommerceIndex].ecommerce.impressions = allProduct;\n } else {\n productsArray.forEach((product, index) => {\n product.position = index + 1;\n });\n window.dataLayer.push({\n ecommerce: {\n currencyCode,\n impressions: productsArray\n }\n });\n }\n}\n\n/**\n * remove Product In DataLayer object, that was added to cart\n * @param {int} productId product id for deleting\n * @returns {undefined}\n */\nfunction removeFromCartDataLayerEventInit(productId) {\n const productsDataJson = document.querySelector('.js-product-in-basket').getAttribute('data-product');\n const productsData = JSON.parse(productsDataJson);\n let removeFromCartEventPosition = null;\n let isFirstDeleting = false;\n\n const productForDeleting = productsData.find(productData => productData.id === String(productId) || productData.variationId === String(productId));\n\n delete productForDeleting.variationId;\n\n window.dataLayer.forEach((element, index) => {\n if (element.event === 'removeFromCart') {\n isFirstDeleting = true;\n removeFromCartEventPosition = index;\n }\n });\n\n if (isFirstDeleting) {\n window.dataLayer[removeFromCartEventPosition].ecommerce.remove.products.push(productForDeleting);\n } else {\n window.dataLayer.push({\n event: 'removeFromCart',\n ecommerce: {\n remove: {\n products: [productForDeleting]\n }\n }\n });\n }\n}\n\nfunction storeLocatorEvent(locateType) {\n window.dataLayer.push({\n event: 'locateStore',\n locateType: locateType,\n radius: $('.js-radius').val(),\n locationEntered: $('.js-storelocator-input').val()\n });\n}\n\nmodule.exports = {\n removeFromCartDataLayerEventInit,\n pushProductsInDataLayer,\n pushProductInDataLayer,\n onCheckout,\n addToCartDataLayerEventInit,\n loginDataLayerEventInit,\n storeLocatorEvent,\n babyRegistryEvent,\n pushProductDetail,\n cart() {\n $('.js-cart-content').each((idx, el) => {\n const $el = $(el);\n\n const orderDataLayer = $el.data('orderDataLayer');\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'checkout',\n ecommerce: {\n checkout: {\n actionField: { step: 1 },\n products: orderDataLayer.products\n }\n }\n });\n });\n },\n checkoutEvents() {\n $('.js-chechout-login-container').each((idx, el) => {\n const $el = $(el);\n\n const orderDataLayer = $el.data('orderDataLayer');\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'checkout',\n ecommerce: {\n checkout: {\n actionField: { step: 2 },\n products: orderDataLayer.products\n }\n }\n });\n });\n },\n reportStep(stepNo, products) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'checkout',\n ecommerce: {\n checkout: {\n actionField: { step: 3 + stepNo }, // 3 is shipping step\n products\n }\n }\n });\n }\n};\n","const giftcardForm = $('.js-giftcards-form');\nconst sendButton = $('.js-giftcard-button_send button');\nconst clearButton = $('.js-giftcard-button_clear button');\nconst pinInfoBlock = $('.js-giftcard-pin-info');\nconst resultBlock = $('.js-giftcard-result');\nconst balanceField = $('.js-giftcard-balance');\nconst recaptcha = $('#js-g-recaptcha-giftcard');\nconst cbError = $('.cb-error-message');\nconst recaptchaFeedback = $('.js-g-recaptcha-feedback');\n\nmodule.exports = {\n init() {\n var recaptchaRef;\n\n this.reCaptchaSuccess = false;\n const verifyCallback = () => {\n this.reCaptchaSuccess = true;\n recaptchaFeedback.hide();\n };\n const expiredCallback = () => {\n setTimeout(() => {\n window.grecaptcha.reset(recaptchaRef);\n this.reCaptchaSuccess = false;\n }, 0); // adds recaptcha reset to the end of queue\n };\n window.addEventListener('load', function () {\n if (recaptcha.html() === '') {\n recaptchaRef = window.grecaptcha.render(recaptcha[0], {\n sitekey: recaptcha.data('sitekey'),\n callback: verifyCallback,\n 'expired-callback': expiredCallback\n });\n\n recaptcha.data('recaptcha-ref', recaptchaRef);\n }\n });\n\n cbError.hide();\n resultBlock.hide();\n recaptchaFeedback.hide();\n clearButton.hide();\n const locale = $('html').attr('lang');\n const scriptTag = document.createElement('script');\n scriptTag.setAttribute('src', '//www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=' + locale);\n document.getElementsByTagName('body')[0].appendChild(scriptTag);\n giftcardForm.submit((e) => {\n const $form = $(e.target);\n e.preventDefault();\n recaptchaFeedback.hide();\n const url = $form.attr('action');\n if (!this.reCaptchaSuccess) {\n return recaptchaFeedback.show();\n }\n $('.js-gift-cards').trigger('giftcard:submit', e);\n $form.spinner().start();\n $('.cb-error-message-text').text('');\n $('.cb-error-message').hide().addClass('h-hidden');\n $.ajax({\n url,\n type: 'post',\n dataType: 'json',\n data: $form.serialize(),\n success(data) {\n const {\n success,\n serverErrors,\n fieldErrors,\n result\n } = data;\n $form.spinner().stop();\n if (success) {\n sendButton.hide();\n clearButton.show();\n pinInfoBlock.hide();\n balanceField.text(result.balance);\n resultBlock.show();\n } else {\n if (fieldErrors && Object.keys(fieldErrors).length) {\n Object.keys(fieldErrors).forEach((inputName) => {\n $(`[name=\"${inputName}\"]`)\n .next('.invalid-feedback')\n .text(fieldErrors[inputName])\n .show();\n });\n }\n\n if (serverErrors && serverErrors.length) {\n let errorMessage = '';\n serverErrors.forEach((error) => {\n errorMessage += error;\n });\n $('.cb-error-message-text').text(errorMessage);\n $('.cb-error-message').show().removeClass('h-hidden');\n }\n }\n },\n error(err) {\n $form.spinner().stop();\n if (err.responseJSON.redirectUrl) {\n window.location.href = err.responseJSON.redirectUrl;\n }\n\n if (err.responseJSON && err.responseJSON.message) {\n $('.cb-error-message-text').text(err.responseJSON.message);\n $('.cb-error-message').show().removeClass('h-hidden');\n }\n }\n });\n return false;\n });\n\n $('#checkBalanceModal').on('dialog:closed', () => {\n this.resetForm();\n });\n },\n\n clearBtn() {\n clearButton.on('click', (e) => {\n e.preventDefault();\n this.resetForm();\n });\n },\n resetForm() {\n giftcardForm.find('input[type=text]').val('');\n sendButton.show();\n clearButton.hide();\n pinInfoBlock.show();\n resultBlock.hide();\n cbError.hide();\n if (window.grecaptcha && window.grecaptcha.reset) {\n window.grecaptcha.reset(recaptcha.data('recaptcha-ref'));\n } else if (window.grecaptcha && window.grecaptcha.ready) {\n window.grecaptcha.ready(() => {\n window.grecaptcha.reset(recaptcha.data('recaptcha-ref'));\n });\n }\n this.reCaptchaSuccess = false;\n }\n};\n","const recaptcha = $('#js-g-recaptcha');\nconst cbError = $('.cb-error-message');\nconst recaptchaFeedback = $('.js-g-recaptcha-feedback');\n\nfunction init() {\n var recaptchaRef;\n\n this.reCaptchaSuccess = false;\n const verifyCallback = () => {\n this.reCaptchaSuccess = true;\n recaptchaFeedback.hide();\n };\n const expiredCallback = () => {\n setTimeout(() => {\n window.grecaptcha.reset();\n this.reCaptchaSuccess = false;\n }, 0); // adds recaptcha reset to the end of queue\n };\n window.onloadCallback = function () {\n if (recaptcha.length > 0 && recaptcha.html() === '') {\n recaptchaRef = window.grecaptcha.render(recaptcha[0], {\n sitekey: recaptcha.data('sitekey'),\n callback: verifyCallback,\n 'expired-callback': expiredCallback\n });\n\n recaptcha.data('recaptcha-ref', recaptchaRef);\n }\n };\n\n cbError.hide();\n recaptchaFeedback.hide();\n const locale = $('.js-locale').data('locale').replace('_', '-');\n const scriptTag = document.createElement('script');\n scriptTag.setAttribute('src', '//www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=' + locale);\n document.getElementsByTagName('body')[0].appendChild(scriptTag);\n}\n\nfunction modalInit() {\n let modalRecaptcha = $('#js-login-modal').find('#js-g-recaptcha');\n\n this.reCaptchaSuccess = false;\n const verifyCallback = () => {\n this.reCaptchaSuccess = true;\n $('.js-g-recaptcha-feedback').hide();\n };\n const expiredCallback = () => {\n setTimeout(() => {\n window.grecaptcha.reset();\n this.reCaptchaSuccess = false;\n }, 0);\n };\n\n if (modalRecaptcha.html() === '') {\n let recaptchaRef = window.grecaptcha.render(modalRecaptcha[0], {\n sitekey: modalRecaptcha.data('sitekey'),\n callback: verifyCallback,\n 'expired-callback': expiredCallback\n });\n\n modalRecaptcha.data('recaptcha-ref', recaptchaRef);\n }\n\n cbError.hide();\n $('.js-g-recaptcha-feedback').hide();\n const locale = $('.js-locale').data('locale').replace('_', '-');\n const scriptTag = document.createElement('script');\n scriptTag.setAttribute('src', '//www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=' + locale);\n document.getElementsByTagName('body')[0].appendChild(scriptTag);\n}\n\nfunction checkReCaptchaStatus() {\n $('.js-g-recaptcha-feedback').hide();\n if (!this.reCaptchaSuccess) {\n $('.js-g-recaptcha-feedback').show();\n return false;\n }\n return true;\n}\n\nfunction cleanErrorMessage() {\n $('.cb-error-message-text').text('');\n $('.cb-error-message').hide();\n}\n\nfunction isCaptchaEnable() {\n return $('#js-g-recaptcha').first().data('enable') === true;\n}\n\nfunction resetCaptcha() {\n if (window.grecaptcha) {\n if (recaptcha.length > 0) {\n window.grecaptcha.reset(recaptcha.data('recaptcha-ref'));\n }\n }\n}\n\nmodule.exports = {\n init: init,\n modalInit: modalInit,\n checkReCaptchaStatus: checkReCaptchaStatus,\n cleanErrorMessage: cleanErrorMessage,\n isCaptchaEnable: isCaptchaEnable,\n resetCaptcha: resetCaptcha\n};\n","const timeoutTime = 1485000; // 25min\n\nlet timer;\nconst $sessionLogout = $('.js-logged-in-user');\nfunction showSessionPopup() {\n let $modalContainer = $('js-time-out-modal');\n if (!$modalContainer.length) {\n $modalContainer = $($sessionLogout.html());\n $('body').append($modalContainer);\n }\n\n window.dialogManager.openDialog('modal', '#sessionTimeOutModal', document.activeElement || document.body);\n\n let secondsLeft = 15;\n const $timeouCountdown = $modalContainer.find('.js-session-timeout_countdown');\n const leftTimer = setInterval(() => {\n secondsLeft--;\n $timeouCountdown.text(secondsLeft);\n\n if (secondsLeft <= 0) {\n window.location.assign(\n $sessionLogout.data('logoutUrl') ||\n $modalContainer.find('.js-session-logout').attr('href')\n );\n clearInterval(leftTimer);\n }\n }, 1000);\n\n $modalContainer.one('click', '.js-session-keep', function () {\n window.dialogManager.closeDialog();\n timer = setTimeout(showSessionPopup, timeoutTime);\n clearInterval(leftTimer);\n $modalContainer.remove();\n\n $.get($(this).data('keepUrl')); // we don't care about response\n });\n}\nmodule.exports = () => {\n if ($sessionLogout.length) {\n timer = setTimeout(showSessionPopup, timeoutTime);\n\n $(document).ajaxStop(() => { // update timeout if user is active\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(showSessionPopup, timeoutTime);\n });\n }\n};\n","'use strict';\n\nconst formValidation = require('../components/formValidation');\nconst waiNotify = require('../components/waiNotify');\nconst googleCaptcha = require('../googleCaptcha');\nconst isCaptchaEnable = googleCaptcha.isCaptchaEnable();\n\nlet items = $('.js-wishlist-items').data('items');\nif (items) {\n let arr = items.split(',');\n let icons = $('body').find('.js-wishlistTile').toArray();\n\n arr.forEach((item) => {\n icons.forEach((icon) => {\n if (item === $(icon).data('pid')) {\n $(icon).addClass('b-product_wishlist-registered');\n }\n });\n });\n}\n\nfunction showModal(pid) {\n let $modalContainer = $($('.js-login-modal').html());\n\n $('body').append($modalContainer);\n if (pid) {\n $('.modal-dialog').find('.js-login-modal-submit').attr('data-pid', pid);\n }\n window.dialogManager.openDialog('modal', '#js-login-modal');\n\n $('.modal-dialog').find('.alert-danger').remove();\n\n if (isCaptchaEnable) {\n googleCaptcha.modalInit.call(module.exports);\n }\n}\n\nfunction addToWishlistAfterLogIn(pid) {\n var url = $('.js-login-modal-submit').data('wishlist');\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: {\n pid: pid\n }\n });\n}\nmodule.exports = {\n addToWishlist: function () {\n $('body').on('click', '.js-wishlistTile', function (e) {\n e.preventDefault();\n var $this = $(this);\n var url = $this.attr('href');\n var pid = $this.attr('data-pid');\n var addToWishlistMessage = $this.data('add-message');\n var removeFromWishlistMessage = $this.data('remove-message');\n let isPdpIcon = $('.js-pdp-container').length > 0 && $this.parents('.js-product_tile-inner').length === 0;\n let wishlistIcon = isPdpIcon ? $('.js-wishList-pdp') : $this;\n if (!url || !pid) {\n return;\n }\n $.spinner().start();\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: {\n pid: pid\n },\n success: function (data) {\n if (data.success) {\n const $wishListItemsContainer = $('.js-wishlist-items');\n let wishListItems = $wishListItemsContainer.attr('data-items');\n if (data.isGuestUser) {\n showModal(pid);\n $.spinner().stop();\n return;\n } else if (data.itemAdded) {\n wishlistIcon.addClass('b-product_wishlist-registered');\n let updatedList = wishListItems + ',' + pid;\n $wishListItemsContainer.attr('data-items', updatedList);\n waiNotify(addToWishlistMessage);\n } else {\n wishlistIcon.removeClass('b-product_wishlist-registered');\n wishListItems.replace(',' + pid, '').replace(pid, '');\n $wishListItemsContainer.attr('data-items', wishListItems);\n waiNotify(removeFromWishlistMessage);\n }\n $.spinner().stop();\n }\n },\n error: function () {\n }\n });\n });\n },\n LogIn: function () {\n const that = this;\n\n $('body').on('submit', '.login-form', function (e) {\n var button = $('.js-login-modal-submit');\n var pid = $(button[button.length - 1]).data('pid');\n e.preventDefault();\n e.stopPropagation();\n\n var $form = $(this);\n var url = $form.data('url');\n var data = $form.serialize();\n var modalRecaptcha = $form.find('#js-g-recaptcha');\n var recaptchaRef = modalRecaptcha.data('recaptcha-ref');\n const redirectURl = window.location.href;\n\n const isSuccessCaptcha = googleCaptcha.checkReCaptchaStatus.call(that);\n if (!isSuccessCaptcha && isCaptchaEnable) {\n return false;\n }\n\n if (isCaptchaEnable) {\n googleCaptcha.cleanErrorMessage();\n }\n\n $.ajax({\n url: url,\n type: 'post',\n dataType: 'json',\n data: data,\n success(data) {\n if (!data.success) {\n if (isCaptchaEnable) {\n window.grecaptcha.reset(recaptchaRef);\n }\n\n formValidation($form, data);\n $form.trigger('login:error', data);\n $('.js-login-form-password').val('');\n } else {\n $form.trigger('login:success', data);\n if (pid) {\n addToWishlistAfterLogIn(pid);\n }\n window.location.href = redirectURl;\n }\n },\n error() {\n if (isCaptchaEnable) {\n window.grecaptcha.reset(recaptchaRef);\n }\n }\n });\n });\n\n $('body').on('click', '.js-login-modal-submit', function (e) {\n e.preventDefault();\n e.stopPropagation();\n var $form = $(this);\n $form.submit();\n });\n\n $('body').on('keydown', '.login-form input', function (e) {\n if (e.keyCode === 13) {\n e.preventDefault();\n e.stopPropagation();\n $(this).closest('form').submit();\n }\n });\n },\n createAccount: function () {\n $('body').on('click', '.js-modal-create-account', () => {\n var button = $('.js-login-modal-submit');\n var pid = $(button[button.length - 1]).data('pid') ? '&pid=' + $(button[button.length - 1]).data('pid') : '';\n var urlParsed = '&urlParsed=true';\n window.location.href = $('.js-modal-create-account').data('url') + '?rurl=' + encodeURIComponent(location.pathname) + pid + urlParsed;\n });\n },\n resetPassword: function () {\n $('body').on('submit', '.reset-password-form', function (e) {\n e.preventDefault();\n\n if ($(e.target).find('.js-reset-password').hasClass('m-green')) {\n return window.dialogManager.closeDialog('requestPasswordResetModal');\n }\n\n const $form = $(this);\n const url = $form.data('url');\n $form.spinner().start();\n\n $.ajax({\n url,\n type: 'post',\n dataType: 'json',\n data: $form.serialize(),\n success(data) {\n $form.spinner().stop();\n if (!data.success) {\n formValidation($form, data);\n } else {\n const $title = $('#requestPasswordResetModal').find('.request-password-title'),\n $body = $('.request-password-body'),\n $btn = $('#submitEmailButton'),\n titleText = $title.text(),\n bodyHtml = $body.html(),\n btnText = $btn.text();\n\n $title.text(data.receivedMsgHeading);\n $body\n .empty()\n .append(\n `<p class=\"b-form_reset_password-message\">${data.receivedMsgBody}</p>`\n );\n $btn.addClass('m-green');\n if (!data.mobile) {\n $btn.text(data.buttonText).attr(\n 'data-dismiss',\n 'modal'\n );\n } else {\n $('.send-email-btn')\n .empty()\n .html(\n `<a href=\"${data.returnUrl}\" class=\"btn btn-primary btn-block\">${data.buttonText}</a>`\n );\n }\n\n $('#requestPasswordResetModal')[0].addEventListener(\n 'dialog:closed',\n () => {\n $title.text(titleText);\n $body.html(bodyHtml);\n\n if (!data.mobile) {\n $btn.text(btnText).removeAttr(\n 'data-dismiss'\n );\n }\n }\n );\n }\n },\n error(err) {\n if (err.responseJSON.redirectUrl) {\n window.window.location.href = err.responseJSON.redirectUrl;\n }\n $form.spinner().stop();\n }\n });\n return false;\n });\n },\n openWishList: function () {\n $('body').on('click', '.js-wishlist-link', () => {\n let url = $('.b-header_button-wishlist.js-wishlist-link').data('url');\n $.ajax({\n url,\n type: 'get',\n data: {\n login: true\n },\n success(data) {\n if (data.isGuestUser) {\n showModal();\n $.spinner().stop();\n } else {\n location.href = url;\n }\n },\n error() {\n }\n });\n });\n },\n clearFieldAfterClosing: function () {\n $('body').on('dialog:closed', '#requestPasswordResetModal', () => {\n $('#reset-password-email').val('');\n });\n }\n};\n","module.exports = function () {\n const $imagesSection = $('.js-images-section');\n const $productImages = $('.js-product-images-slick');\n const $productImagesSet = $('.js-product-images-slick-set');\n const $headerCarousel = $('.js-header-banner-carousel');\n const $CategoryCarousel = $('.js-category-carousel').data('slick-configuration');\n let mediumBreakPoints = window.styleConstants.breakpoint.medium;\n let smallBreakPoints = window.styleConstants.breakpoint.small;\n\n function setAvailabilityMessage($parentElement) {\n const $carousel = $parentElement ? $parentElement : $('.js-product-recommendations, .js-category-carousel');\n const $tileContainer = $carousel.find('.b-product_tile-inner');\n $tileContainer.each(function() {\n var $availabilityMsgBlock = $(this).find('.js-product_tile-availability_msg');\n var $shippingInfoBlock = $(this).find('.js-shipping-info');\n $availabilityMsgBlock.removeClass().addClass('b-product_tile-availability_msg b-availability_msg js-product_tile-availability_msg');\n var isShipToHome = $shippingInfoBlock.find('.js-homeDelivery').hasClass('m-available');\n var isFreeISPU = $shippingInfoBlock.find('.js-freeInStorePickup').hasClass('m-available');\n var availabilityText = $shippingInfoBlock.data('availabilitytext');\n var availabilityType = $shippingInfoBlock.data('availabilitytype');\n var comingSoon = $shippingInfoBlock.data('comingsoon');\n var soldout = $shippingInfoBlock.data('soldout');\n\n if (isShipToHome && availabilityType !== 'preorder') {\n $availabilityMsgBlock.addClass('m-instock');\n } else if (isFreeISPU && !isShipToHome) {\n $availabilityMsgBlock.addClass('m-pickuponly');\n $availabilityMsgBlock.text(availabilityText);\n } else if (!isFreeISPU && !isShipToHome && !comingSoon) {\n $availabilityMsgBlock.addClass('m-outofstock');\n $availabilityMsgBlock.text(availabilityText);\n if (availabilityType === 'instoreonly') {\n $availabilityMsgBlock.removeClass('m-outofstock').addClass('m-instoreonly');\n }\n } else if (availabilityType === 'comingsoon' && comingSoon) {\n $availabilityMsgBlock.addClass('m-comming_soon');\n $availabilityMsgBlock.text(availabilityText);\n } else if (availabilityType === 'soldout' && soldout) {\n $availabilityMsgBlock.addClass('m-sold_out');\n $availabilityMsgBlock.text(availabilityText);\n } else if (availabilityType === 'outofstock') {\n $availabilityMsgBlock.text(availabilityText);\n } else {\n $availabilityMsgBlock.addClass('m-' + availabilityType);\n $availabilityMsgBlock.text(availabilityText);\n }\n $(this).removeClass('js-availability-msg-update');\n });\n }\n\n function setHeartIconForRecommendation($parentElement) {\n let wishListItems = $('.js-wishlist-items').data('items');\n if (wishListItems) {\n let itemsArr = wishListItems.split(',');\n let $productRecommendations = $parentElement ? $parentElement : $('.js-product-recommendations');\n let icons = $productRecommendations\n .find('.js-wishlistTile')\n .toArray();\n\n itemsArr.forEach((item) => {\n icons.forEach((icon) => {\n if (item === $(icon).data('pid')) {\n $(icon).addClass('b-product_wishlist-registered');\n }\n });\n });\n }\n }\n\n $productImages.slick({\n slidesToShow: 1,\n dots: false,\n asNavFor: '.js-product-thumbnails',\n swipe: false,\n responsive: [\n {\n breakpoint: mediumBreakPoints,\n settings: {\n slidesToShow: 1,\n dots: true,\n swipe: true\n }\n }\n ]\n });\n\n $productImagesSet.slick({\n slidesToShow: 1,\n dots: false,\n asNavFor: '.js-product-thumbnails-set',\n swipe: false,\n responsive: [\n {\n breakpoint: smallBreakPoints,\n settings: {\n slidesToShow: 1,\n dots: true\n }\n }\n ]\n });\n\n $('.js-product-thumbnails').slick({\n slidesToShow: 7,\n slidesToScroll: 1,\n asNavFor: '.js-product-images-slick',\n focusOnSelect: true,\n vertical: true,\n verticalSwiping: true,\n arrows: false,\n responsive: [\n {\n breakpoint: mediumBreakPoints,\n settings: {\n slidesToShow: 4\n }\n }\n ]\n });\n\n $('.js-product-thumbnails-set').slick({\n slidesToShow: 7,\n slidesToScroll: 1,\n asNavFor: '.js-product-images-slick-set',\n focusOnSelect: true,\n arrows: false,\n responsive: [\n {\n breakpoint: smallBreakPoints,\n settings: {\n slidesToShow: 4\n }\n }\n ]\n });\n const productRecommendationConfig = {\n slidesToShow: 4,\n slidesToScroll: 4,\n\n responsive: [\n {\n breakpoint: mediumBreakPoints,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3\n }\n },\n {\n breakpoint: 767,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2\n }\n }\n ]\n };\n\n function init() {\n $('.js-product-recommendations').filter(':not(.js-experience)').slick(productRecommendationConfig);\n $('.js-category-carousel').slick($CategoryCarousel);\n $('.js-carousel').slick();\n $('.js-hero-page-carousel').slick();\n $('.js-product-asset-carousel').slick();\n $headerCarousel.slick();\n }\n\n $(document).on('recommendation.init', (e, data) => {\n const $productRecommendations = (data && data.parentElement) ? data.parentElement : $('.js-product-recommendations');\n const $categoryCarousel = (data && data.parentElement) ? data.parentElement : $('.js-category-carousel');\n\n $productRecommendations.find('.js-add-to-cart-btn').remove();\n $productRecommendations.filter(':not(.slick-initialized)').slick(productRecommendationConfig);\n\n $categoryCarousel.filter(':not(.slick-initialized)').slick($CategoryCarousel);\n\n setHeartIconForRecommendation((data && data.parentElement) ? data.parentElement : null);\n setAvailabilityMessage((data && data.parentElement) ? data.parentElement : null);\n });\n\n $headerCarousel.on('afterChange', () => {\n var scrollCount = parseInt($headerCarousel.data('scrollCount'));\n if (scrollCount === 0) {\n $headerCarousel.slick('slickPause');\n } else if (scrollCount === -1) {\n $headerCarousel.off('afterChange');\n } else {\n $headerCarousel.data('scrollCount', scrollCount - 1);\n }\n });\n\n $($imagesSection).on('slideUpdated', () => {\n if ($imagesSection.data('slide-index') !== $productImages.slick('slickCurrentSlide')) {\n $('.js-product-images').slick('slickGoTo', $imagesSection.data('slide-index'));\n }\n });\n\n $productImages.on('afterChange', (event, slick, currentSlide) => {\n $imagesSection\n .data('slide-index', currentSlide)\n .trigger('slideUpdated');\n });\n\n if ($(window).width() > mediumBreakPoints) {\n $('.js-zoom').css('display', 'block').parent().zoom({ magnify: 1.5 });\n }\n\n if ((document.readyState === 'complete') || (document.readyState === 'interactive')) {\n init();\n } else {\n document.onreadystatechange = function () {\n if ((document.readyState === 'complete') || (document.readyState === 'interactive')) {\n init();\n }\n };\n }\n};\n","/* globals google */\nconst hoursTooltip = require('../components/hoursPopup');\nconst googleAddress = require('../components/googleaddress');\nconst dataLayer = require('../dataLayer/dataLayer');\nconst media = require('../components/utils/media');\nconst storeLocator = require('../storeLocator/storeSelector');\nconst waiNotify = require('../components/waiNotify');\nconst $emptySearch = $('.js-store-locator-emptysearch');\nconst $noResults = $('.js-store-locator-no-results');\n\n/**\n * appends params to a url\n * @param {string} url - Original url\n * @param {Object} params - Parameters to append\n * @returns {string} result url with appended parameters\n */\nfunction appendToUrl(url, params) {\n let newUrl = url;\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') +\n Object.keys(params).map(key => `${key}=${encodeURIComponent(params[key])}`).join('&');\n\n return newUrl;\n}\n\n/**\n * Update DOM elements with Ajax results\n *\n * @param {object} $results - jQuery DOM element\n * @param {string} selector - DOM element to look up in the $results\n */\nfunction updateDom($results, selector) {\n const $updates = $results.find(selector);\n $(selector).empty().html($updates.html());\n}\n\n/**\n * Parse Ajax results and updated select DOM elements\n *\n * @param {string} response - Ajax response HTML code\n */\nfunction parseResults(response) {\n const $results = $(response);\n let selectors = [\n '.js-header-bar',\n '.js-filter-bar',\n '.js-product-sort',\n '.js-page-title',\n '.js-product-grid',\n '.js-plp-banner',\n '.js-breadcrumbs'\n ];\n\n // Update DOM elements that do not require special handling\n selectors.forEach((selector) => {\n updateDom($results, selector);\n });\n\n let numberOfClicksOnLoadMore = Number(location.hash.split('#')[1]);\n if (numberOfClicksOnLoadMore > 0) {\n $('.js-show-more-btn').trigger('click', ['back', numberOfClicksOnLoadMore]);\n }\n}\n\nfunction updateIcons() {\n let items = $('.js-wishlist-items').data('items');\n if (items) {\n let arr = items.split(',');\n let icons = $('body').find('.js-wishlistTile').toArray();\n arr.forEach((item) => {\n icons.forEach((icon) => {\n if (item === $(icon).data('pid')) {\n $(icon).addClass('b-product_wishlist-registered');\n }\n });\n });\n }\n}\n\n/**\n * Toggle overlay\n * @param {boolean} isLoading - toggle flag\n */\n\nfunction toggleBusy(isLoading) {\n if (isLoading) {\n $('.js-product-grid')\n .attr('aria-busy', 'true')\n .spinner().start();\n } else {\n $('.js-product-grid')\n .attr('aria-busy', 'false')\n .spinner().stop();\n }\n}\n\nfunction updateAvailabilityMsg() {\n $('body').trigger('tile:updateAvailabilityMsg');\n}\n\nfunction productsUpdate(storeID) {\n toggleBusy(true);\n var locationURL = location.toString();\n locationURL = locationURL.replace(/mystore=\\d*/gi, 'mystore=' + storeID);\n $.ajax({\n url: locationURL,\n data: {\n page: $('.js-grid-footer').data('page-number'),\n selectedUrl: locationURL,\n searchPage: false\n },\n method: 'GET',\n success(response) {\n parseResults(response);\n updateIcons();\n updateAvailabilityMsg();\n toggleBusy(false);\n },\n error() {\n toggleBusy(false);\n }\n });\n}\n\n/**\n * Gets address location using Google Maps Geocoder\n *\n * @param {*} address\n * @returns {*} result\n */\nfunction geocodeAddress(address) {\n // Init geocoder\n const geocoder = new google.maps.Geocoder();\n\n return new Promise((resolve, reject) => {\n geocoder.geocode({ address }, (results, status) => {\n if (status === 'OK') {\n resolve(results[0].geometry.location);\n } else {\n reject(new Error(address));\n }\n });\n });\n}\n\n/**\n * Renders the results of the search and updates the map\n * @param {object} data - Response from the server\n */\nfunction updateStoresResults(data) {\n const $resultsDiv = $('.js-modal-results');\n const hasResults = data.stores.length > 0;\n\n $noResults.toggleClass('h-hidden', hasResults);\n\n if (data.isEmptyQuery) {\n $noResults.addClass('h-hidden');\n $emptySearch.removeClass('h-hidden');\n }\n\n $resultsDiv.empty()\n .data('has-results', hasResults)\n .data('radius', data.radius)\n .data('search-key', data.searchKey);\n\n if (data.storesResultsHtml) {\n $resultsDiv.append(data.storesResultsHtml);\n\n storeLocator.expandStoresEvent('#storeSelectorModal');\n }\n}\n\n/**\n * Appends the results of the search and updates the map\n * @param {object} data - Response from the server\n */\nfunction appendStoresResults(data) {\n const $resultsDiv = $('.js-modal-results');\n\n if (data.storesResultsHtml) {\n let $storesResults = $(data.storesResultsHtml);\n\n $storesResults.find('.js-select-store').prop('disabled', false);\n\n storeLocator.expandStoresEvent('', $storesResults);\n\n $resultsDiv.append($storesResults);\n }\n}\n\n/**\n * Search for stores with new zip code\n *\n * @param {*} element\n * @returns {boolean} false to prevent default event\n */\nfunction getNextPage(element) {\n const $pagingOptions = $(element);\n\n let url = $pagingOptions.data('actionUrl');\n\n if (url) {\n const payload = {};\n $.ajax({\n url,\n type: 'GET',\n data: payload,\n dataType: 'json',\n success(data) {\n appendStoresResults(data);\n }\n });\n }\n return false;\n}\n\n/**\n * Search for stores with new zip code\n * @param {JQuery} element - the target html element\n * @returns {boolean} false to prevent default event\n */\nfunction search(element) {\n const dialog = element.closest('.js-store-inventory-body');\n const spinner = dialog.length ? dialog.spinner() : $('.js-storelocator-map').spinner();\n spinner.start();\n const $form = element.closest('.store-locator');\n\n const radius = $('.js-radius').find('option:selected').val();\n let url = $form.attr('action');\n\n const urlParams = { radius, isMobile: media.getBreakpoint() !== 'large' };\n const query = $form.find('[name=\"postalCode\"]').val();\n if (query) {\n $emptySearch.addClass('h-hidden');\n geocodeAddress(query).then((position) => {\n urlParams.lat = position.lat();\n urlParams.lng = position.lng();\n\n const payload = {};\n url = appendToUrl(url, urlParams);\n $.ajax({\n url,\n type: $form.attr('method'),\n data: payload,\n dataType: 'json',\n success(data) {\n spinner.stop();\n updateStoresResults(data);\n $('.js-select-store').prop('disabled', false);\n }\n });\n }).catch(() => {\n spinner.stop();\n updateStoresResults({\n stores: [],\n locations: ''\n });\n });\n } else {\n spinner.stop();\n updateStoresResults({\n stores: [],\n locations: '',\n isEmptyQuery: true\n });\n }\n return false;\n}\n\nfunction detectLocationAndRenderMap() {\n if (!navigator.geolocation) {\n return;\n }\n\n const $storeLocatorMap = $('.js-storelocator-map');\n\n $storeLocatorMap.spinner().start();\n navigator.geolocation.getCurrentPosition(() => {\n // Hide empty query error\n $emptySearch.addClass('h-hidden');\n const $detectLocationButton = $('.js-detect-location');\n const url = $detectLocationButton.data('action');\n const radius = $('.js-radius').val();\n const urlParams = {\n radius\n };\n urlParams.showStoreMobile = media.getBreakpoint() !== 'large';\n $.ajax({\n url,\n type: 'get',\n dataType: 'json',\n data: urlParams,\n timeout: 6000,\n success(data) {\n $storeLocatorMap.spinner().stop();\n updateStoresResults(data);\n $('.js-select-store').prop('disabled', false);\n }\n }).always(() => {\n $storeLocatorMap.spinner().stop();\n });\n }, () => {\n $storeLocatorMap.spinner().stop();\n });\n}\n\nfunction initConfirmationClosePopup() {\n $(document).on('click.closeConfimation', (e) => {\n const $target = $(e.target);\n const $modal = $target.closest('.js-store-inventory-modal');\n const $modalContent = $target.closest('.js-store-inventory-modal-content');\n if ($modal.length && ($target.closest('.js-modal-close-btn').length || !$modalContent.length)) {\n window.dialogManager.closeAll();\n }\n if ($target.closest('.js-close-confirm-select').length) {\n window.dialogManager.closeAll();\n const $selectBtn = $('.js-store-inventory-modal').find('.js-select-store');\n if ($selectBtn.length && $selectBtn.hasClass('js-store-has-been-selected') && !$('.js-selected-store-with-inventory').length) {\n $selectBtn.trigger('click');\n }\n $(document).off('click.closeConfimation');\n }\n if ($target.closest('.js-cancel-close').length) {\n window.dialogManager.closeDialog();\n }\n });\n}\n\nfunction setMyStoreToProfile(storeID) {\n let url = $('.js-selected-my-home-store').data('action-url');\n if (url) {\n $.ajax({\n url,\n type: 'POST',\n data: {\n ID: storeID\n },\n success(result) {\n waiNotify(result.message);\n var locationURL = location.toString();\n locationURL = locationURL.replace(/mystore=\\d*/gi, 'mystore=' + result.newStoreId);\n location.assign(locationURL);\n return true;\n }\n });\n }\n return false;\n}\n\nfunction init() {\n googleAddress.init();\n detectLocationAndRenderMap();\n}\n\nmodule.exports = {\n init() {\n if (document.readyState === 'complete') {\n init();\n } else {\n document.onreadystatechange = function () {\n if (document.readyState === 'complete') {\n init();\n }\n };\n }\n },\n detectLocation() {\n // clicking on detect location.\n $('.js-detect-location').on('click', (() => {\n dataLayer.storeLocatorEvent('Use my location');\n detectLocationAndRenderMap();\n }));\n },\n\n search() {\n $('.js-store-locator-container-modal form.store-locator').submit(function (e) {\n e.preventDefault();\n search($(this));\n });\n $('.js-store-locator-container-modal .btn-storelocator-search-header[type=\"button\"]').click(function (e) {\n e.preventDefault();\n dataLayer.storeLocatorEvent('FInd Store');\n search($(this));\n });\n },\n\n changeRadius() {\n $('.js-store-locator-container-modal .js-radius').change(function () {\n const radius = $(this).children('option:selected').val();\n $('.js-modal-results').data('radius', radius);\n if ($('#store-postal-code').val()) {\n search($('.store-locator-container .btn-storelocator-search-header[type=\"button\"]'));\n }\n });\n },\n selectStore() {\n $('.js-card-body').on('click', '.js-select-store', ((e) => {\n let storeList = $(e.target)\n .parents('.js-modal-results')\n .find('.js-card-body')\n .toArray();\n let selectedStore = $(e.target).closest('.js-card-body');\n storeList.forEach((store) => {\n let myStoreMessage = $(store).children('.b-locator_store-subtitle');\n if (myStoreMessage.length && $(store).attr('id') !== selectedStore.attr('id')) {\n selectedStore.prepend(myStoreMessage);\n $(store).children('.b-locator_store-subtitle').remove();\n }\n });\n e.preventDefault();\n const storeID = $(e.target).val();\n var dataStore = $('.js-card-body #' + storeID).data('store-info');\n $('.js-card-body').removeClass('m-selected');\n $('.js-card-body #' + storeID).addClass('m-selected');\n $('.js-selected-my-home-store').attr('data-store-info', JSON.stringify(dataStore)).text(dataStore.name);\n\n $('.js-select-store').prop('disabled', false);\n $(e.target).prop('disabled', true);\n $('.js-selected-icon').addClass('b-header_store-selected-icon');\n setMyStoreToProfile(storeID);\n var pidReadyToAdd = $('.js-selected-my-home-store').attr('data-pid-add');\n if (pidReadyToAdd) {\n $('.js-selected-my-home-store').removeAttr('data-pid-add');\n $('button.js-ISPU[data-pid=\"' + pidReadyToAdd + '\"]').trigger('click', dataStore);\n }\n window.dialogManager.closeDialog();\n productsUpdate(storeID);\n }));\n },\n displayHours() {\n hoursTooltip.initHoursPopup();\n },\n updateSelectStoreButton() {\n $('body').on('change', '.js-select-store-input', (() => {\n $('.js-select-store').prop('disabled', false);\n }));\n },\n loadMoreStores() {\n $('.js-card-body').on('click', '.js-storelocator-loadmore', ((e) => {\n e.preventDefault();\n getNextPage(e.currentTarget);\n e.currentTarget.remove();\n }));\n },\n openMyStores() {\n $('.js-btn-get-store').on('click', (e, form) => {\n if ($('.js-store-inventory-modal').length !== 0) {\n $('.js-store-inventory-modal, .js-confirm-close-popup').remove();\n }\n const htmlTemplate = $('#store-modal-template').html();\n $('.b-page_inner').append(htmlTemplate);\n window.dialogManager.openDialog('panel', '#storeSelectorModal', $('.js-btn-get-store')[0]);\n if (form) {\n $('.js-selected-my-home-store').attr('data-pid-add', form);\n } else {\n $('.js-selected-my-home-store').removeAttr('data-pid-add');\n }\n initConfirmationClosePopup();\n });\n }\n};\n","const hoursTooltip = require('../components/hoursPopup');\n/* globals google */\n\n/**\n * appends params to a url\n * @param {string} url - Original url\n * @param {Object} params - Parameters to append\n * @returns {string} result url with appended parameters\n */\nfunction appendToUrl(url, params) {\n let newUrl = url;\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') +\n Object.keys(params).map(key => `${key}=${encodeURIComponent(params[key])}`).join('&');\n\n return newUrl;\n}\n\n/**\n * Gets address location using Google Maps Geocoder\n *\n * @param {*} address\n * @returns {*} result\n */\nfunction geocodeAddress(address) {\n // Init geocoder\n const geocoder = new google.maps.Geocoder();\n\n return new Promise((resolve, reject) => {\n geocoder.geocode({ address }, (results, status) => {\n if (status === 'OK') {\n resolve(results[0].geometry.location);\n } else {\n reject(new Error(address));\n }\n });\n });\n}\n\nfunction initExpandStoresEvent(modalId, $scope = null) {\n let selector = (modalId + ' .js-locator-store-name-wrapper').trim();\n let $stores = $scope ? $scope.find(selector) : $(selector);\n\n $stores.click(function (e) {\n e.preventDefault();\n var $store = $(this).closest('.js-card-body');\n $store.find('.b-locator_store-address').toggleClass('expanded');\n $store.find('.b-locator_store-right_column').toggleClass('expanded');\n $store.find('.js-select-store').toggleClass('expanded');\n $store.find('.b-locator_store-arrow').toggleClass('expanded');\n });\n}\n\n/**\n * Renders the results of the search and updates the map\n * @param {object} data - Response from the server\n */\nfunction updateStoresResults(data) {\n const $resultsDiv = $('.results');\n const $mapDiv = $('.map-canvas');\n const hasResults = data.stores.length > 0;\n $('.js-store-locator-result-wrapper').toggleClass('h-hidden', !hasResults);\n $('.js-store-locator-no-results').toggleClass('h-hidden', hasResults);\n\n $resultsDiv.empty()\n .data('has-results', hasResults)\n .data('radius', data.radius)\n .data('search-key', data.searchKey);\n\n $mapDiv.attr('data-locations', data.locations);\n\n if (data.storesResultsHtml) {\n $resultsDiv.append(data.storesResultsHtml);\n\n const $storeInStock = $resultsDiv.find('.m-in_stock');\n\n if ($storeInStock.length) {\n $storeInStock\n .first()\n .closest('.js-card-body')\n .find('.js-select-store-input')\n .prop('checked', true)\n .trigger('change');\n\n $('.js-select-store').addClass('js-store-has-been-selected');\n }\n }\n initExpandStoresEvent('#inStoreInventoryModal');\n}\n\n/**\n * Search for stores with new zip code\n * @param {JQuery<HTMLElement>} $element - the target html element\n * @returns {boolean} false to prevent default event\n */\nfunction search($element) {\n const inventoryBody = $element.closest('.js-store-inventory-body');\n const $dialog = inventoryBody.length\n ? inventoryBody : $element.closest('.js-store-locator-container');\n const spinner = $dialog.length ? $dialog.spinner() : $.spinner();\n spinner.start();\n\n const $form = $element.closest('.store-locator');\n const radius = $('.js-radius').last().find('option:selected').val();\n let url = $form.attr('action');\n const urlParams = { radius };\n const query = $form.find('[name=\"postalCode\"]').val();\n if (query) {\n geocodeAddress(query).then((position) => {\n urlParams.lat = position.lat();\n urlParams.lng = position.lng();\n urlParams.postalCode = '';\n $.ajax({\n url,\n type: $form.attr('method'),\n data: urlParams,\n dataType: 'json',\n success(data) {\n spinner.stop();\n updateStoresResults(data);\n }\n });\n }).catch(() => {\n spinner.stop();\n updateStoresResults({\n stores: [],\n locations: ''\n });\n $('.js-store-locator-no-results').removeClass('h-hidden');\n });\n }\n\n return false;\n}\n\nfunction findStoreByLocation() {\n if (!navigator.geolocation) {\n return;\n }\n\n navigator.geolocation.getCurrentPosition(position => {\n // Hide empty query error\n $('.js-store-locator-no-results').addClass('h-hidden');\n const $detectLocationButton = $('.js-btn-find-by-location');\n const url = $detectLocationButton.data('action');\n const radius = $('.store-locator-container').find('.js-radius').val();\n const urlParams = {\n radius,\n lat: position.coords.latitude,\n lng: position.coords.longitude\n };\n $.ajax({\n url,\n type: 'get',\n dataType: 'json',\n data: urlParams,\n timeout: 6000,\n success(data) {\n updateStoresResults(data);\n }\n });\n });\n}\n\nmodule.exports = {\n init() {\n if (!$('.results').data('has-results')) {\n $('.store-locator-no-results').show();\n }\n },\n\n detectLocation() {\n // clicking on detect location.\n $('.detect-location').on('click', () => {\n $.spinner().start();\n if (!navigator.geolocation) {\n $.spinner().stop();\n return;\n }\n\n navigator.geolocation.getCurrentPosition((position) => {\n const $detectLocationButton = $('.detect-location');\n let url = $detectLocationButton.data('action');\n const radius = $('.results').data('radius');\n const urlParams = {\n radius,\n lat: position.coords.latitude,\n lng: position.coords.longitude\n };\n\n url = appendToUrl(url, urlParams);\n $.ajax({\n url,\n type: 'get',\n dataType: 'json',\n success(data) {\n $.spinner().stop();\n updateStoresResults(data);\n $('.select-store').prop('disabled', true);\n }\n });\n });\n });\n },\n\n search() {\n $('.store-locator-container form.store-locator').submit(function (e) {\n e.preventDefault();\n search($(this));\n });\n $('.store-locator-container .btn-storelocator-search[type=\"button\"]').click(function (e) {\n e.preventDefault();\n search($(this));\n });\n $('.store-locator-container .js-btn-find-by-location').click((e) => {\n e.preventDefault();\n findStoreByLocation();\n });\n },\n\n selectStore() {\n $('.store-locator-container').on('click', '.js-select-store', ((e) => {\n e.preventDefault();\n let isDoorDash = $(e.target).parents('#inStoreInventoryModal').hasClass('js-door-dash-store');\n var selectedStore = e.target.closest('.js-card-body');\n var storeData = $(selectedStore).data('store-info');\n var data = {\n storeID: storeData.ID,\n name: storeData.name,\n searchRadius: $('#radius').val(),\n searchPostalCode: $('#store-postal-code').val(),\n storeDetailsHtml: $(selectedStore).find('.store-details').html(),\n isDoorDash: isDoorDash,\n event: e\n };\n $('body').trigger('store:selected', data);\n }));\n },\n displayHours() {\n hoursTooltip.initHoursPopup();\n },\n updateSelectStoreButton() {\n $('body').on('change', '.select-store-input', (() => {\n $('.select-store').prop('disabled', false);\n }));\n },\n expandStoresEvent(modalId, $scope = null) {\n initExpandStoresEvent(modalId, $scope);\n }\n};\n\n","const processInclude = require('./util');\n\n$(document).ready(() => {\n processInclude(require('./storeLocator/storeLocatorModal'));\n});\n","var formValidation = require('../components/formValidation');\n\nfunction displayMessage() {\n var $initalState = $('#rooms-initial-signup-form');\n var $finalState = $('#post-signup-form');\n\n $initalState.hide();\n $finalState.show();\n}\n\nmodule.exports = {\n submitSubscription () {\n $('body').on('submit', '.js-subscription-form', (e) => {\n e.preventDefault();\n\n var $form = $(e.currentTarget);\n $form.spinner().start();\n const url = $form.attr('action');\n\n $.ajax({\n url,\n type: 'post',\n dataType: 'json',\n data: $form.serialize()\n }).done((data) => {\n if (!data.success) {\n formValidation($form, data);\n } else {\n displayMessage();\n }\n $form.spinner().stop();\n });\n });\n }\n};\n","module.exports = function (include) {\n if (typeof include === 'function') {\n include();\n } else if (typeof include === 'object') {\n Object.keys(include).forEach((key) => {\n if (typeof include[key] === 'function') {\n include[key]();\n }\n });\n }\n};\n","/**\n * appends params to a url\n * @param {string} url - Original url\n * @param {Object} params - Parameters to append\n * @returns {string} result url with appended parameters\n */\nfunction appendToUrl(url, params) {\n let newUrl = url;\n newUrl += (newUrl.indexOf('?') !== -1 ? '&' : '?') +\n Object.keys(params).map(key => `${key}=${encodeURIComponent(params[key])}`).join('&');\n\n return newUrl;\n}\n\nmodule.exports = {\n appendToUrl\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE === 1;\n var IS_FILTER = TYPE === 2;\n var IS_SOME = TYPE === 3;\n var IS_EVERY = TYPE === 4;\n var IS_FIND_INDEX = TYPE === 6;\n var IS_FILTER_REJECT = TYPE === 7;\n var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n var n = 0;\n for (; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","'use strict';\nvar arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n var list = [];\n var i = 0;\n for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (Target, Source, key) {\n key in Target || defineProperty(Target, key, {\n configurable: true,\n get: function () { return Source[key]; },\n set: function (it) { Source[key] = it; }\n });\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://теÑÑ‚').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n switch (kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineBuiltInAccessor(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw new TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n // fast equal of /^0b[01]+$/i\n case 66:\n case 98:\n radix = 2;\n maxCode = 49;\n break;\n // fast equal of /^0o[0-7]+$/i\n case 79:\n case 111:\n radix = 8;\n maxCode = 55;\n break;\n default:\n return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = global.SyntaxError;\nvar exec = uncurryThis(RegExpPrototype.exec);\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n// TODO: Use only proper RegExpIdentifierName\nvar IS_NCG = /^\\?<[^\\s\\d!#%&*+<=>@^][^\\s!#%&*+<=>@^]*>/;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar MISSED_STICKY = stickyHelpers.MISSED_STICKY;\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar BASE_FORCED = DESCRIPTORS &&\n (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';\n }));\n\nvar handleDotAll = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var brackets = false;\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n result += chr + charAt(string, ++index);\n continue;\n }\n if (!brackets && chr === '.') {\n result += '[\\\\s\\\\S]';\n } else {\n if (chr === '[') {\n brackets = true;\n } else if (chr === ']') {\n brackets = false;\n } result += chr;\n }\n } return result;\n};\n\nvar handleNCG = function (string) {\n var length = string.length;\n var index = 0;\n var result = '';\n var named = [];\n var names = {};\n var brackets = false;\n var ncg = false;\n var groupid = 0;\n var groupname = '';\n var chr;\n for (; index <= length; index++) {\n chr = charAt(string, index);\n if (chr === '\\\\') {\n chr += charAt(string, ++index);\n } else if (chr === ']') {\n brackets = false;\n } else if (!brackets) switch (true) {\n case chr === '[':\n brackets = true;\n break;\n case chr === '(':\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\n result += chr;\n groupid++;\n continue;\n case chr === '>' && ncg:\n if (groupname === '' || hasOwn(names, groupname)) {\n throw new SyntaxError('Invalid capture group name');\n }\n names[groupname] = true;\n named[named.length] = [groupname, groupid];\n ncg = false;\n groupname = '';\n continue;\n }\n if (ncg) groupname += chr;\n else result += chr;\n } return [result, named];\n};\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (isForced('RegExp', BASE_FORCED)) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = isPrototypeOf(RegExpPrototype, this);\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var groups = [];\n var rawPattern = pattern;\n var rawFlags, dotAll, sticky, handled, result, state;\n\n if (!thisIsRegExp && patternIsRegExp && flagsAreUndefined && pattern.constructor === RegExpWrapper) {\n return pattern;\n }\n\n if (patternIsRegExp || isPrototypeOf(RegExpPrototype, pattern)) {\n pattern = pattern.source;\n if (flagsAreUndefined) flags = getRegExpFlags(rawPattern);\n }\n\n pattern = pattern === undefined ? '' : toString(pattern);\n flags = flags === undefined ? '' : toString(flags);\n rawPattern = pattern;\n\n if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {\n dotAll = !!flags && stringIndexOf(flags, 's') > -1;\n if (dotAll) flags = replace(flags, /s/g, '');\n }\n\n rawFlags = flags;\n\n if (MISSED_STICKY && 'sticky' in re1) {\n sticky = !!flags && stringIndexOf(flags, 'y') > -1;\n if (sticky && UNSUPPORTED_Y) flags = replace(flags, /y/g, '');\n }\n\n if (UNSUPPORTED_NCG) {\n handled = handleNCG(pattern);\n pattern = handled[0];\n groups = handled[1];\n }\n\n result = inheritIfRequired(NativeRegExp(pattern, flags), thisIsRegExp ? this : RegExpPrototype, RegExpWrapper);\n\n if (dotAll || sticky || groups.length) {\n state = enforceInternalState(result);\n if (dotAll) {\n state.dotAll = true;\n state.raw = RegExpWrapper(handleDotAll(pattern), rawFlags);\n }\n if (sticky) state.sticky = true;\n if (groups.length) state.groups = groups;\n }\n\n if (pattern !== rawPattern) try {\n // fails in old engines, but we have no alternatives for unsupported regex syntax\n createNonEnumerableProperty(result, 'source', rawPattern === '' ? '(?:)' : rawPattern);\n } catch (error) { /* empty */ }\n\n return result;\n };\n\n for (var keys = getOwnPropertyNames(NativeRegExp), index = 0; keys.length > index;) {\n proxyAccessor(RegExpWrapper, NativeRegExp, keys[index++]);\n }\n\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n defineBuiltIn(global, 'RegExp', RegExpWrapper, { constructor: true });\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.es/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n small: function small() {\n return createHTML(this, 'small', '', '');\n }\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = global.RangeError;\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar fallbackDefineProperty = function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n};\n\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? fallbackDefineProperty : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw new TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n var descriptor = createPropertyDescriptor(1, value);\n try {\n setSymbolDescriptor(this, tag, descriptor);\n } catch (error) {\n if (!(error instanceof RangeError)) throw error;\n fallbackDefineProperty(this, tag, descriptor);\n }\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw new TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var state = setInternalState(this, new URLSearchParamsState(init));\n if (!DESCRIPTORS) this.size = state.entries.length;\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 2);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n if (!DESCRIPTORS) this.length++;\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name /* , value */) {\n var state = getInternalParamsState(this);\n var length = validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index];\n if (entry.key === key && (value === undefined || entry.value === value)) {\n splice(entries, index, 1);\n if (value !== undefined) break;\n } else index++;\n }\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n var entries = getInternalParamsState(this).entries;\n validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name /* , value */) {\n var entries = getInternalParamsState(this).entries;\n var length = validateArgumentsLength(arguments.length, 1);\n var key = $toString(name);\n var $value = length < 2 ? undefined : arguments[1];\n var value = $value === undefined ? $value : $toString($value);\n var index = 0;\n while (index < entries.length) {\n var entry = entries[index++];\n if (entry.key === key && (value === undefined || entry.value === value)) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n var state = getInternalParamsState(this);\n validateArgumentsLength(arguments.length, 1);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n if (!DESCRIPTORS) this.size = entries.length;\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS) defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n return getInternalParamsState(this).entries.length;\n },\n configurable: true,\n enumerable: true\n});\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","/*!\n * dist/inputmask\n * https://github.com/RobinHerbots/Inputmask\n * Copyright (c) 2010 - 2023 Robin Herbots\n * Licensed under the MIT license\n * Version: 5.0.8\n */\n!function(e, t) {\n if (\"object\" == typeof exports && \"object\" == typeof module) module.exports = t(); else if (\"function\" == typeof define && define.amd) define([], t); else {\n var i = t();\n for (var n in i) (\"object\" == typeof exports ? exports : e)[n] = i[n];\n }\n}(\"undefined\" != typeof self ? self : this, (function() {\n return function() {\n \"use strict\";\n var e = {\n 8741: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var i = !(\"undefined\" == typeof window || !window.document || !window.document.createElement);\n t.default = i;\n },\n 3976: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var n = i(2839), a = {\n _maxTestPos: 500,\n placeholder: \"_\",\n optionalmarker: [ \"[\", \"]\" ],\n quantifiermarker: [ \"{\", \"}\" ],\n groupmarker: [ \"(\", \")\" ],\n alternatormarker: \"|\",\n escapeChar: \"\\\\\",\n mask: null,\n regex: null,\n oncomplete: function() {},\n onincomplete: function() {},\n oncleared: function() {},\n repeat: 0,\n greedy: !1,\n autoUnmask: !1,\n removeMaskOnSubmit: !1,\n clearMaskOnLostFocus: !0,\n insertMode: !0,\n insertModeVisual: !0,\n clearIncomplete: !1,\n alias: null,\n onKeyDown: function() {},\n onBeforeMask: null,\n onBeforePaste: function(e, t) {\n return \"function\" == typeof t.onBeforeMask ? t.onBeforeMask.call(this, e, t) : e;\n },\n onBeforeWrite: null,\n onUnMask: null,\n showMaskOnFocus: !0,\n showMaskOnHover: !0,\n onKeyValidation: function() {},\n skipOptionalPartCharacter: \" \",\n numericInput: !1,\n rightAlign: !1,\n undoOnEscape: !0,\n radixPoint: \"\",\n _radixDance: !1,\n groupSeparator: \"\",\n keepStatic: null,\n positionCaretOnTab: !0,\n tabThrough: !1,\n supportsInputType: [ \"text\", \"tel\", \"url\", \"password\", \"search\" ],\n ignorables: [ n.keys.Backspace, n.keys.Tab, n.keys.Pause, n.keys.Escape, n.keys.PageUp, n.keys.PageDown, n.keys.End, n.keys.Home, n.keys.ArrowLeft, n.keys.ArrowUp, n.keys.ArrowRight, n.keys.ArrowDown, n.keys.Insert, n.keys.Delete, n.keys.ContextMenu, n.keys.F1, n.keys.F2, n.keys.F3, n.keys.F4, n.keys.F5, n.keys.F6, n.keys.F7, n.keys.F8, n.keys.F9, n.keys.F10, n.keys.F11, n.keys.F12, n.keys.Process, n.keys.Unidentified, n.keys.Shift, n.keys.Control, n.keys.Alt, n.keys.Tab, n.keys.AltGraph, n.keys.CapsLock ],\n isComplete: null,\n preValidation: null,\n postValidation: null,\n staticDefinitionSymbol: void 0,\n jitMasking: !1,\n nullable: !0,\n inputEventOnly: !1,\n noValuePatching: !1,\n positionCaretOnClick: \"lvp\",\n casing: null,\n inputmode: \"text\",\n importDataAttributes: !0,\n shiftPositions: !0,\n usePrototypeDefinitions: !0,\n validationEventTimeOut: 3e3,\n substitutes: {}\n };\n t.default = a;\n },\n 7392: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n t.default = {\n 9: {\n validator: \"[0-9\\uff10-\\uff19]\",\n definitionSymbol: \"*\"\n },\n a: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n definitionSymbol: \"*\"\n },\n \"*\": {\n validator: \"[0-9\\uff10-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\"\n }\n };\n },\n 253: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function(e, t, i) {\n if (void 0 === i) return e.__data ? e.__data[t] : null;\n e.__data = e.__data || {}, e.__data[t] = i;\n };\n },\n 3776: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.Event = void 0, t.off = function(e, t) {\n var i, n;\n f(this[0]) && e && (i = this[0].eventRegistry, n = this[0], e.split(\" \").forEach((function(e) {\n var a = l(e.split(\".\"), 2);\n (function(e, n) {\n var a, r, o = [];\n if (e.length > 0) if (void 0 === t) for (a = 0, r = i[e][n].length; a < r; a++) o.push({\n ev: e,\n namespace: n && n.length > 0 ? n : \"global\",\n handler: i[e][n][a]\n }); else o.push({\n ev: e,\n namespace: n && n.length > 0 ? n : \"global\",\n handler: t\n }); else if (n.length > 0) for (var s in i) for (var l in i[s]) if (l === n) if (void 0 === t) for (a = 0, \n r = i[s][l].length; a < r; a++) o.push({\n ev: s,\n namespace: l,\n handler: i[s][l][a]\n }); else o.push({\n ev: s,\n namespace: l,\n handler: t\n });\n return o;\n })(a[0], a[1]).forEach((function(e) {\n var t = e.ev, a = e.handler;\n !function(e, t, a) {\n if (e in i == 1) if (n.removeEventListener ? n.removeEventListener(e, a, !1) : n.detachEvent && n.detachEvent(\"on\".concat(e), a), \n \"global\" === t) for (var r in i[e]) i[e][r].splice(i[e][r].indexOf(a), 1); else i[e][t].splice(i[e][t].indexOf(a), 1);\n }(t, e.namespace, a);\n }));\n })));\n return this;\n }, t.on = function(e, t) {\n if (f(this[0])) {\n var i = this[0].eventRegistry, n = this[0];\n e.split(\" \").forEach((function(e) {\n var a = l(e.split(\".\"), 2), r = a[0], o = a[1];\n !function(e, a) {\n n.addEventListener ? n.addEventListener(e, t, !1) : n.attachEvent && n.attachEvent(\"on\".concat(e), t), \n i[e] = i[e] || {}, i[e][a] = i[e][a] || [], i[e][a].push(t);\n }(r, void 0 === o ? \"global\" : o);\n }));\n }\n return this;\n }, t.trigger = function(e) {\n var t = arguments;\n if (f(this[0])) for (var i = this[0].eventRegistry, n = this[0], r = \"string\" == typeof e ? e.split(\" \") : [ e.type ], s = 0; s < r.length; s++) {\n var l = r[s].split(\".\"), c = l[0], u = l[1] || \"global\";\n if (void 0 !== document && \"global\" === u) {\n var d, p = {\n bubbles: !0,\n cancelable: !0,\n composed: !0,\n detail: arguments[1]\n };\n if (document.createEvent) {\n try {\n if (\"input\" === c) p.inputType = \"insertText\", d = new InputEvent(c, p); else d = new CustomEvent(c, p);\n } catch (e) {\n (d = document.createEvent(\"CustomEvent\")).initCustomEvent(c, p.bubbles, p.cancelable, p.detail);\n }\n e.type && (0, a.default)(d, e), n.dispatchEvent(d);\n } else (d = document.createEventObject()).eventType = c, d.detail = arguments[1], \n e.type && (0, a.default)(d, e), n.fireEvent(\"on\" + d.eventType, d);\n } else if (void 0 !== i[c]) {\n arguments[0] = arguments[0].type ? arguments[0] : o.default.Event(arguments[0]), \n arguments[0].detail = arguments.slice(1);\n var h = i[c];\n (\"global\" === u ? Object.values(h).flat() : h[u]).forEach((function(e) {\n return e.apply(n, t);\n }));\n }\n }\n return this;\n };\n var n, a = u(i(600)), r = u(i(9380)), o = u(i(4963)), s = u(i(8741));\n function l(e, t) {\n return function(e) {\n if (Array.isArray(e)) return e;\n }(e) || function(e, t) {\n var i = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != i) {\n var n, a, r, o, s = [], l = !0, c = !1;\n try {\n if (r = (i = i.call(e)).next, 0 === t) {\n if (Object(i) !== i) return;\n l = !1;\n } else for (;!(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0) ;\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return s;\n }\n }(e, t) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return c(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return c(e, t);\n }(e, t) || function() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function c(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n function u(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n function f(e) {\n return e instanceof Element;\n }\n t.Event = n, \"function\" == typeof r.default.CustomEvent ? t.Event = n = r.default.CustomEvent : s.default && (t.Event = n = function(e, t) {\n t = t || {\n bubbles: !1,\n cancelable: !1,\n composed: !0,\n detail: void 0\n };\n var i = document.createEvent(\"CustomEvent\");\n return i.initCustomEvent(e, t.bubbles, t.cancelable, t.detail), i;\n }, n.prototype = r.default.Event.prototype);\n },\n 600: function(e, t) {\n function i(e) {\n return i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, i(e);\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function e() {\n var t, n, a, r, o, s, l = arguments[0] || {}, c = 1, u = arguments.length, f = !1;\n \"boolean\" == typeof l && (f = l, l = arguments[c] || {}, c++);\n \"object\" !== i(l) && \"function\" != typeof l && (l = {});\n for (;c < u; c++) if (null != (t = arguments[c])) for (n in t) a = l[n], l !== (r = t[n]) && (f && r && (\"[object Object]\" === Object.prototype.toString.call(r) || (o = Array.isArray(r))) ? (o ? (o = !1, \n s = a && Array.isArray(a) ? a : []) : s = a && \"[object Object]\" === Object.prototype.toString.call(a) ? a : {}, \n l[n] = e(f, s, r)) : void 0 !== r && (l[n] = r));\n return l;\n };\n },\n 4963: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var n = s(i(600)), a = s(i(9380)), r = s(i(253)), o = i(3776);\n function s(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var l = a.default.document;\n function c(e) {\n return e instanceof c ? e : this instanceof c ? void (null != e && e !== a.default && (this[0] = e.nodeName ? e : void 0 !== e[0] && e[0].nodeName ? e[0] : l.querySelector(e), \n void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new c(e);\n }\n c.prototype = {\n on: o.on,\n off: o.off,\n trigger: o.trigger\n }, c.extend = n.default, c.data = r.default, c.Event = o.Event;\n var u = c;\n t.default = u;\n },\n 9845: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.mobile = t.iphone = t.ie = void 0;\n var n, a = (n = i(9380)) && n.__esModule ? n : {\n default: n\n };\n var r = a.default.navigator && a.default.navigator.userAgent || \"\", o = r.indexOf(\"MSIE \") > 0 || r.indexOf(\"Trident/\") > 0, s = navigator.userAgentData && navigator.userAgentData.mobile || a.default.navigator && a.default.navigator.maxTouchPoints || \"ontouchstart\" in a.default, l = /iphone/i.test(r);\n t.iphone = l, t.mobile = s, t.ie = o;\n },\n 7184: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function(e) {\n return e.replace(i, \"\\\\$1\");\n };\n var i = new RegExp(\"(\\\\\" + [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ].join(\"|\\\\\") + \")\", \"gim\");\n },\n 6030: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.EventHandlers = void 0;\n var n = i(8711), a = i(2839), r = i(9845), o = i(7215), s = i(7760), l = i(4713);\n function c(e, t) {\n var i = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (!i) {\n if (Array.isArray(e) || (i = function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return u(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return u(e, t);\n }(e)) || t && e && \"number\" == typeof e.length) {\n i && (e = i);\n var n = 0, a = function() {};\n return {\n s: a,\n n: function() {\n return n >= e.length ? {\n done: !0\n } : {\n done: !1,\n value: e[n++]\n };\n },\n e: function(e) {\n throw e;\n },\n f: a\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var r, o = !0, s = !1;\n return {\n s: function() {\n i = i.call(e);\n },\n n: function() {\n var e = i.next();\n return o = e.done, e;\n },\n e: function(e) {\n s = !0, r = e;\n },\n f: function() {\n try {\n o || null == i.return || i.return();\n } finally {\n if (s) throw r;\n }\n }\n };\n }\n function u(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n var f = {\n keyEvent: function(e, t, i, c, u) {\n var d = this.inputmask, p = d.opts, h = d.dependencyLib, v = d.maskset, m = this, g = h(m), y = e.key, k = n.caret.call(d, m), b = p.onKeyDown.call(this, e, n.getBuffer.call(d), k, p);\n if (void 0 !== b) return b;\n if (y === a.keys.Backspace || y === a.keys.Delete || r.iphone && y === a.keys.BACKSPACE_SAFARI || e.ctrlKey && y === a.keys.x && !(\"oncut\" in m)) e.preventDefault(), \n o.handleRemove.call(d, m, y, k), (0, s.writeBuffer)(m, n.getBuffer.call(d, !0), v.p, e, m.inputmask._valueGet() !== n.getBuffer.call(d).join(\"\")); else if (y === a.keys.End || y === a.keys.PageDown) {\n e.preventDefault();\n var x = n.seekNext.call(d, n.getLastValidPosition.call(d));\n n.caret.call(d, m, e.shiftKey ? k.begin : x, x, !0);\n } else y === a.keys.Home && !e.shiftKey || y === a.keys.PageUp ? (e.preventDefault(), \n n.caret.call(d, m, 0, e.shiftKey ? k.begin : 0, !0)) : p.undoOnEscape && y === a.keys.Escape && !0 !== e.altKey ? ((0, \n s.checkVal)(m, !0, !1, d.undoValue.split(\"\")), g.trigger(\"click\")) : y !== a.keys.Insert || e.shiftKey || e.ctrlKey || void 0 !== d.userOptions.insertMode ? !0 === p.tabThrough && y === a.keys.Tab ? !0 === e.shiftKey ? (k.end = n.seekPrevious.call(d, k.end, !0), \n !0 === l.getTest.call(d, k.end - 1).match.static && k.end--, k.begin = n.seekPrevious.call(d, k.end, !0), \n k.begin >= 0 && k.end > 0 && (e.preventDefault(), n.caret.call(d, m, k.begin, k.end))) : (k.begin = n.seekNext.call(d, k.begin, !0), \n k.end = n.seekNext.call(d, k.begin, !0), k.end < v.maskLength && k.end--, k.begin <= v.maskLength && (e.preventDefault(), \n n.caret.call(d, m, k.begin, k.end))) : e.shiftKey || p.insertModeVisual && !1 === p.insertMode && (y === a.keys.ArrowRight ? setTimeout((function() {\n var e = n.caret.call(d, m);\n n.caret.call(d, m, e.begin);\n }), 0) : y === a.keys.ArrowLeft && setTimeout((function() {\n var e = n.translatePosition.call(d, m.inputmask.caretPos.begin);\n n.translatePosition.call(d, m.inputmask.caretPos.end);\n d.isRTL ? n.caret.call(d, m, e + (e === v.maskLength ? 0 : 1)) : n.caret.call(d, m, e - (0 === e ? 0 : 1));\n }), 0)) : o.isSelection.call(d, k) ? p.insertMode = !p.insertMode : (p.insertMode = !p.insertMode, \n n.caret.call(d, m, k.begin, k.begin));\n return d.isComposing = y == a.keys.Process || y == a.keys.Unidentified, d.ignorable = p.ignorables.includes(y), \n f.keypressEvent.call(this, e, t, i, c, u);\n },\n keypressEvent: function(e, t, i, r, l) {\n var c = this.inputmask || this, u = c.opts, f = c.dependencyLib, d = c.maskset, p = c.el, h = f(p), v = e.key;\n if (!0 === t || e.ctrlKey && e.altKey || !(e.ctrlKey || e.metaKey || c.ignorable)) {\n if (v) {\n var m, g = t ? {\n begin: l,\n end: l\n } : n.caret.call(c, p);\n v = u.substitutes[v] || v, d.writeOutBuffer = !0;\n var y = o.isValid.call(c, g, v, r, void 0, void 0, void 0, t);\n if (!1 !== y && (n.resetMaskSet.call(c, !0), m = void 0 !== y.caret ? y.caret : n.seekNext.call(c, y.pos.begin ? y.pos.begin : y.pos), \n d.p = m), m = u.numericInput && void 0 === y.caret ? n.seekPrevious.call(c, m) : m, \n !1 !== i && (setTimeout((function() {\n u.onKeyValidation.call(p, v, y);\n }), 0), d.writeOutBuffer && !1 !== y)) {\n var k = n.getBuffer.call(c);\n (0, s.writeBuffer)(p, k, m, e, !0 !== t);\n }\n if (e.preventDefault(), t) return !1 !== y && (y.forwardPosition = m), y;\n }\n } else v === a.keys.Enter && c.undoValue !== c._valueGet(!0) && (c.undoValue = c._valueGet(!0), \n setTimeout((function() {\n h.trigger(\"change\");\n }), 0));\n },\n pasteEvent: function(e) {\n var t, i = this.inputmask, a = i.opts, r = i._valueGet(!0), o = n.caret.call(i, this);\n i.isRTL && (t = o.end, o.end = n.translatePosition.call(i, o.begin), o.begin = n.translatePosition.call(i, t));\n var l = r.substr(0, o.begin), u = r.substr(o.end, r.length);\n if (l == (i.isRTL ? n.getBufferTemplate.call(i).slice().reverse() : n.getBufferTemplate.call(i)).slice(0, o.begin).join(\"\") && (l = \"\"), \n u == (i.isRTL ? n.getBufferTemplate.call(i).slice().reverse() : n.getBufferTemplate.call(i)).slice(o.end).join(\"\") && (u = \"\"), \n window.clipboardData && window.clipboardData.getData) r = l + window.clipboardData.getData(\"Text\") + u; else {\n if (!e.clipboardData || !e.clipboardData.getData) return !0;\n r = l + e.clipboardData.getData(\"text/plain\") + u;\n }\n var f = r;\n if (i.isRTL) {\n f = f.split(\"\");\n var d, p = c(n.getBufferTemplate.call(i));\n try {\n for (p.s(); !(d = p.n()).done; ) {\n var h = d.value;\n f[0] === h && f.shift();\n }\n } catch (e) {\n p.e(e);\n } finally {\n p.f();\n }\n f = f.join(\"\");\n }\n if (\"function\" == typeof a.onBeforePaste) {\n if (!1 === (f = a.onBeforePaste.call(i, f, a))) return !1;\n f || (f = r);\n }\n (0, s.checkVal)(this, !0, !1, f.toString().split(\"\"), e), e.preventDefault();\n },\n inputFallBackEvent: function(e) {\n var t = this.inputmask, i = t.opts, o = t.dependencyLib;\n var c, u = this, d = u.inputmask._valueGet(!0), p = (t.isRTL ? n.getBuffer.call(t).slice().reverse() : n.getBuffer.call(t)).join(\"\"), h = n.caret.call(t, u, void 0, void 0, !0);\n if (p !== d) {\n if (c = function(e, a, r) {\n for (var o, s, c, u = e.substr(0, r.begin).split(\"\"), f = e.substr(r.begin).split(\"\"), d = a.substr(0, r.begin).split(\"\"), p = a.substr(r.begin).split(\"\"), h = u.length >= d.length ? u.length : d.length, v = f.length >= p.length ? f.length : p.length, m = \"\", g = [], y = \"~\"; u.length < h; ) u.push(y);\n for (;d.length < h; ) d.push(y);\n for (;f.length < v; ) f.unshift(y);\n for (;p.length < v; ) p.unshift(y);\n var k = u.concat(f), b = d.concat(p);\n for (s = 0, o = k.length; s < o; s++) switch (c = l.getPlaceholder.call(t, n.translatePosition.call(t, s)), \n m) {\n case \"insertText\":\n b[s - 1] === k[s] && r.begin == k.length - 1 && g.push(k[s]), s = o;\n break;\n\n case \"insertReplacementText\":\n case \"deleteContentBackward\":\n k[s] === y ? r.end++ : s = o;\n break;\n\n default:\n k[s] !== b[s] && (k[s + 1] !== y && k[s + 1] !== c && void 0 !== k[s + 1] || (b[s] !== c || b[s + 1] !== y) && b[s] !== y ? b[s + 1] === y && b[s] === k[s + 1] ? (m = \"insertText\", \n g.push(k[s]), r.begin--, r.end--) : k[s] !== c && k[s] !== y && (k[s + 1] === y || b[s] !== k[s] && b[s + 1] === k[s + 1]) ? (m = \"insertReplacementText\", \n g.push(k[s]), r.begin--) : k[s] === y ? (m = \"deleteContentBackward\", (n.isMask.call(t, n.translatePosition.call(t, s), !0) || b[s] === i.radixPoint) && r.end++) : s = o : (m = \"insertText\", \n g.push(k[s]), r.begin--, r.end--));\n }\n return {\n action: m,\n data: g,\n caret: r\n };\n }(d, p, h), (u.inputmask.shadowRoot || u.ownerDocument).activeElement !== u && u.focus(), \n (0, s.writeBuffer)(u, n.getBuffer.call(t)), n.caret.call(t, u, h.begin, h.end, !0), \n !r.mobile && t.skipNextInsert && \"insertText\" === e.inputType && \"insertText\" === c.action && t.isComposing) return !1;\n switch (\"insertCompositionText\" === e.inputType && \"insertText\" === c.action && t.isComposing ? t.skipNextInsert = !0 : t.skipNextInsert = !1, \n c.action) {\n case \"insertText\":\n case \"insertReplacementText\":\n c.data.forEach((function(e, i) {\n var n = new o.Event(\"keypress\");\n n.key = e, t.ignorable = !1, f.keypressEvent.call(u, n);\n })), setTimeout((function() {\n t.$el.trigger(\"keyup\");\n }), 0);\n break;\n\n case \"deleteContentBackward\":\n var v = new o.Event(\"keydown\");\n v.key = a.keys.Backspace, f.keyEvent.call(u, v);\n break;\n\n default:\n (0, s.applyInputValue)(u, d), n.caret.call(t, u, h.begin, h.end, !0);\n }\n e.preventDefault();\n }\n },\n setValueEvent: function(e) {\n var t = this.inputmask, i = this, a = e && e.detail ? e.detail[0] : arguments[1];\n void 0 === a && (a = i.inputmask._valueGet(!0)), (0, s.applyInputValue)(i, a), (e.detail && void 0 !== e.detail[1] || void 0 !== arguments[2]) && n.caret.call(t, i, e.detail ? e.detail[1] : arguments[2]);\n },\n focusEvent: function(e) {\n var t = this.inputmask, i = t.opts, a = null == t ? void 0 : t._valueGet();\n i.showMaskOnFocus && a !== n.getBuffer.call(t).join(\"\") && (0, s.writeBuffer)(this, n.getBuffer.call(t), n.seekNext.call(t, n.getLastValidPosition.call(t))), \n !0 !== i.positionCaretOnTab || !1 !== t.mouseEnter || o.isComplete.call(t, n.getBuffer.call(t)) && -1 !== n.getLastValidPosition.call(t) || f.clickEvent.apply(this, [ e, !0 ]), \n t.undoValue = null == t ? void 0 : t._valueGet(!0);\n },\n invalidEvent: function(e) {\n this.inputmask.validationEvent = !0;\n },\n mouseleaveEvent: function() {\n var e = this.inputmask, t = e.opts, i = this;\n e.mouseEnter = !1, t.clearMaskOnLostFocus && (i.inputmask.shadowRoot || i.ownerDocument).activeElement !== i && (0, \n s.HandleNativePlaceholder)(i, e.originalPlaceholder);\n },\n clickEvent: function(e, t) {\n var i = this.inputmask;\n i.clicked++;\n var a = this;\n if ((a.inputmask.shadowRoot || a.ownerDocument).activeElement === a) {\n var r = n.determineNewCaretPosition.call(i, n.caret.call(i, a), t);\n void 0 !== r && n.caret.call(i, a, r);\n }\n },\n cutEvent: function(e) {\n var t = this.inputmask, i = t.maskset, r = this, l = n.caret.call(t, r), c = t.isRTL ? n.getBuffer.call(t).slice(l.end, l.begin) : n.getBuffer.call(t).slice(l.begin, l.end), u = t.isRTL ? c.reverse().join(\"\") : c.join(\"\");\n window.navigator.clipboard ? window.navigator.clipboard.writeText(u) : window.clipboardData && window.clipboardData.getData && window.clipboardData.setData(\"Text\", u), \n o.handleRemove.call(t, r, a.keys.Delete, l), (0, s.writeBuffer)(r, n.getBuffer.call(t), i.p, e, t.undoValue !== t._valueGet(!0));\n },\n blurEvent: function(e) {\n var t = this.inputmask, i = t.opts, a = t.dependencyLib;\n t.clicked = 0;\n var r = a(this), l = this;\n if (l.inputmask) {\n (0, s.HandleNativePlaceholder)(l, t.originalPlaceholder);\n var c = l.inputmask._valueGet(), u = n.getBuffer.call(t).slice();\n \"\" !== c && (i.clearMaskOnLostFocus && (-1 === n.getLastValidPosition.call(t) && c === n.getBufferTemplate.call(t).join(\"\") ? u = [] : s.clearOptionalTail.call(t, u)), \n !1 === o.isComplete.call(t, u) && (setTimeout((function() {\n r.trigger(\"incomplete\");\n }), 0), i.clearIncomplete && (n.resetMaskSet.call(t), u = i.clearMaskOnLostFocus ? [] : n.getBufferTemplate.call(t).slice())), \n (0, s.writeBuffer)(l, u, void 0, e)), t.undoValue !== t._valueGet(!0) && (t.undoValue = t._valueGet(!0), \n r.trigger(\"change\"));\n }\n },\n mouseenterEvent: function() {\n var e = this.inputmask, t = e.opts.showMaskOnHover, i = this;\n if (e.mouseEnter = !0, (i.inputmask.shadowRoot || i.ownerDocument).activeElement !== i) {\n var a = (e.isRTL ? n.getBufferTemplate.call(e).slice().reverse() : n.getBufferTemplate.call(e)).join(\"\");\n t && (0, s.HandleNativePlaceholder)(i, a);\n }\n },\n submitEvent: function() {\n var e = this.inputmask, t = e.opts;\n e.undoValue !== e._valueGet(!0) && e.$el.trigger(\"change\"), -1 === n.getLastValidPosition.call(e) && e._valueGet && e._valueGet() === n.getBufferTemplate.call(e).join(\"\") && e._valueSet(\"\"), \n t.clearIncomplete && !1 === o.isComplete.call(e, n.getBuffer.call(e)) && e._valueSet(\"\"), \n t.removeMaskOnSubmit && (e._valueSet(e.unmaskedvalue(), !0), setTimeout((function() {\n (0, s.writeBuffer)(e.el, n.getBuffer.call(e));\n }), 0));\n },\n resetEvent: function() {\n var e = this.inputmask;\n e.refreshValue = !0, setTimeout((function() {\n (0, s.applyInputValue)(e.el, e._valueGet(!0));\n }), 0);\n }\n };\n t.EventHandlers = f;\n },\n 9716: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.EventRuler = void 0;\n var n, a = (n = i(2394)) && n.__esModule ? n : {\n default: n\n }, r = i(2839), o = i(8711), s = i(7760);\n var l = {\n on: function(e, t, i) {\n var n = e.inputmask.dependencyLib, l = function(t) {\n t.originalEvent && (t = t.originalEvent || t, arguments[0] = t);\n var l, c = this, u = c.inputmask, f = u ? u.opts : void 0;\n if (void 0 === u && \"FORM\" !== this.nodeName) {\n var d = n.data(c, \"_inputmask_opts\");\n n(c).off(), d && new a.default(d).mask(c);\n } else {\n if ([ \"submit\", \"reset\", \"setvalue\" ].includes(t.type) || \"FORM\" === this.nodeName || !(c.disabled || c.readOnly && !(\"keydown\" === t.type && t.ctrlKey && t.key === r.keys.c || !1 === f.tabThrough && t.key === r.keys.Tab))) {\n switch (t.type) {\n case \"input\":\n if (!0 === u.skipInputEvent) return u.skipInputEvent = !1, t.preventDefault();\n break;\n\n case \"click\":\n case \"focus\":\n return u.validationEvent ? (u.validationEvent = !1, e.blur(), (0, s.HandleNativePlaceholder)(e, (u.isRTL ? o.getBufferTemplate.call(u).slice().reverse() : o.getBufferTemplate.call(u)).join(\"\")), \n setTimeout((function() {\n e.focus();\n }), f.validationEventTimeOut), !1) : (l = arguments, void setTimeout((function() {\n e.inputmask && i.apply(c, l);\n }), 0));\n }\n var p = i.apply(c, arguments);\n return !1 === p && (t.preventDefault(), t.stopPropagation()), p;\n }\n t.preventDefault();\n }\n };\n [ \"submit\", \"reset\" ].includes(t) ? (l = l.bind(e), null !== e.form && n(e.form).on(t, l)) : n(e).on(t, l), \n e.inputmask.events[t] = e.inputmask.events[t] || [], e.inputmask.events[t].push(l);\n },\n off: function(e, t) {\n if (e.inputmask && e.inputmask.events) {\n var i = e.inputmask.dependencyLib, n = e.inputmask.events;\n for (var a in t && ((n = [])[t] = e.inputmask.events[t]), n) {\n for (var r = n[a]; r.length > 0; ) {\n var o = r.pop();\n [ \"submit\", \"reset\" ].includes(a) ? null !== e.form && i(e.form).off(a, o) : i(e).off(a, o);\n }\n delete e.inputmask.events[a];\n }\n }\n }\n };\n t.EventRuler = l;\n },\n 219: function(e, t, i) {\n var n = d(i(2394)), a = i(2839), r = d(i(7184)), o = i(8711), s = i(4713);\n function l(e, t) {\n return function(e) {\n if (Array.isArray(e)) return e;\n }(e) || function(e, t) {\n var i = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != i) {\n var n, a, r, o, s = [], l = !0, c = !1;\n try {\n if (r = (i = i.call(e)).next, 0 === t) {\n if (Object(i) !== i) return;\n l = !1;\n } else for (;!(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0) ;\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return s;\n }\n }(e, t) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return c(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return c(e, t);\n }(e, t) || function() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function c(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n function u(e) {\n return u = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, u(e);\n }\n function f(e, t) {\n for (var i = 0; i < t.length; i++) {\n var n = t[i];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), \n Object.defineProperty(e, (a = n.key, r = void 0, r = function(e, t) {\n if (\"object\" !== u(e) || null === e) return e;\n var i = e[Symbol.toPrimitive];\n if (void 0 !== i) {\n var n = i.call(e, t || \"default\");\n if (\"object\" !== u(n)) return n;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t ? String : Number)(e);\n }(a, \"string\"), \"symbol\" === u(r) ? r : String(r)), n);\n }\n var a, r;\n }\n function d(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var p = n.default.dependencyLib, h = function() {\n function e(t, i, n) {\n !function(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), this.mask = t, this.format = i, this.opts = n, this._date = new Date(1, 0, 1), \n this.initDateObject(t, this.opts);\n }\n var t, i, n;\n return t = e, (i = [ {\n key: \"date\",\n get: function() {\n return void 0 === this._date && (this._date = new Date(1, 0, 1), this.initDateObject(void 0, this.opts)), \n this._date;\n }\n }, {\n key: \"initDateObject\",\n value: function(e, t) {\n var i;\n for (P(t).lastIndex = 0; i = P(t).exec(this.format); ) {\n var n = new RegExp(\"\\\\d+$\").exec(i[0]), a = n ? i[0][0] + \"x\" : i[0], r = void 0;\n if (void 0 !== e) {\n if (n) {\n var o = P(t).lastIndex, s = E(i.index, t);\n P(t).lastIndex = o, r = e.slice(0, e.indexOf(s.nextMatch[0]));\n } else r = e.slice(0, g[a] && g[a][4] || a.length);\n e = e.slice(r.length);\n }\n Object.prototype.hasOwnProperty.call(g, a) && this.setValue(this, r, a, g[a][2], g[a][1]);\n }\n }\n }, {\n key: \"setValue\",\n value: function(e, t, i, n, a) {\n if (void 0 !== t && (e[n] = \"ampm\" === n ? t : t.replace(/[^0-9]/g, \"0\"), e[\"raw\" + n] = t.replace(/\\s/g, \"_\")), \n void 0 !== a) {\n var r = e[n];\n (\"day\" === n && 29 === parseInt(r) || \"month\" === n && 2 === parseInt(r)) && (29 !== parseInt(e.day) || 2 !== parseInt(e.month) || \"\" !== e.year && void 0 !== e.year || e._date.setFullYear(2012, 1, 29)), \n \"day\" === n && (m = !0, 0 === parseInt(r) && (r = 1)), \"month\" === n && (m = !0), \n \"year\" === n && (m = !0, r.length < 4 && (r = M(r, 4, !0))), \"\" === r || isNaN(r) || a.call(e._date, r), \n \"ampm\" === n && a.call(e._date, r);\n }\n }\n }, {\n key: \"reset\",\n value: function() {\n this._date = new Date(1, 0, 1);\n }\n }, {\n key: \"reInit\",\n value: function() {\n this._date = void 0, this.date;\n }\n } ]) && f(t.prototype, i), n && f(t, n), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e;\n }(), v = (new Date).getFullYear(), m = !1, g = {\n d: [ \"[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", Date.prototype.getDate ],\n dd: [ \"0[1-9]|[12][0-9]|3[01]\", Date.prototype.setDate, \"day\", function() {\n return M(Date.prototype.getDate.call(this), 2);\n } ],\n ddd: [ \"\" ],\n dddd: [ \"\" ],\n m: [ \"[1-9]|1[012]\", function(e) {\n var t = e ? parseInt(e) : 0;\n return t > 0 && t--, Date.prototype.setMonth.call(this, t);\n }, \"month\", function() {\n return Date.prototype.getMonth.call(this) + 1;\n } ],\n mm: [ \"0[1-9]|1[012]\", function(e) {\n var t = e ? parseInt(e) : 0;\n return t > 0 && t--, Date.prototype.setMonth.call(this, t);\n }, \"month\", function() {\n return M(Date.prototype.getMonth.call(this) + 1, 2);\n } ],\n mmm: [ \"\" ],\n mmmm: [ \"\" ],\n yy: [ \"[0-9]{2}\", Date.prototype.setFullYear, \"year\", function() {\n return M(Date.prototype.getFullYear.call(this), 2);\n } ],\n yyyy: [ \"[0-9]{4}\", Date.prototype.setFullYear, \"year\", function() {\n return M(Date.prototype.getFullYear.call(this), 4);\n } ],\n h: [ \"[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n hh: [ \"0[1-9]|1[0-2]\", Date.prototype.setHours, \"hours\", function() {\n return M(Date.prototype.getHours.call(this), 2);\n } ],\n hx: [ function(e) {\n return \"[0-9]{\".concat(e, \"}\");\n }, Date.prototype.setHours, \"hours\", function(e) {\n return Date.prototype.getHours;\n } ],\n H: [ \"1?[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", Date.prototype.getHours ],\n HH: [ \"0[0-9]|1[0-9]|2[0-3]\", Date.prototype.setHours, \"hours\", function() {\n return M(Date.prototype.getHours.call(this), 2);\n } ],\n Hx: [ function(e) {\n return \"[0-9]{\".concat(e, \"}\");\n }, Date.prototype.setHours, \"hours\", function(e) {\n return function() {\n return M(Date.prototype.getHours.call(this), e);\n };\n } ],\n M: [ \"[1-5]?[0-9]\", Date.prototype.setMinutes, \"minutes\", Date.prototype.getMinutes ],\n MM: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setMinutes, \"minutes\", function() {\n return M(Date.prototype.getMinutes.call(this), 2);\n } ],\n s: [ \"[1-5]?[0-9]\", Date.prototype.setSeconds, \"seconds\", Date.prototype.getSeconds ],\n ss: [ \"0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]\", Date.prototype.setSeconds, \"seconds\", function() {\n return M(Date.prototype.getSeconds.call(this), 2);\n } ],\n l: [ \"[0-9]{3}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n return M(Date.prototype.getMilliseconds.call(this), 3);\n }, 3 ],\n L: [ \"[0-9]{2}\", Date.prototype.setMilliseconds, \"milliseconds\", function() {\n return M(Date.prototype.getMilliseconds.call(this), 2);\n }, 2 ],\n t: [ \"[ap]\", k, \"ampm\", b, 1 ],\n tt: [ \"[ap]m\", k, \"ampm\", b, 2 ],\n T: [ \"[AP]\", k, \"ampm\", b, 1 ],\n TT: [ \"[AP]M\", k, \"ampm\", b, 2 ],\n Z: [ \".*\", void 0, \"Z\", function() {\n var e = this.toString().match(/\\((.+)\\)/)[1];\n e.includes(\" \") && (e = (e = e.replace(\"-\", \" \").toUpperCase()).split(\" \").map((function(e) {\n return l(e, 1)[0];\n })).join(\"\"));\n return e;\n } ],\n o: [ \"\" ],\n S: [ \"\" ]\n }, y = {\n isoDate: \"yyyy-mm-dd\",\n isoTime: \"HH:MM:ss\",\n isoDateTime: \"yyyy-mm-dd'T'HH:MM:ss\",\n isoUtcDateTime: \"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\"\n };\n function k(e) {\n var t = this.getHours();\n e.toLowerCase().includes(\"p\") ? this.setHours(t + 12) : e.toLowerCase().includes(\"a\") && t >= 12 && this.setHours(t - 12);\n }\n function b() {\n var e = this.getHours();\n return (e = e || 12) >= 12 ? \"PM\" : \"AM\";\n }\n function x(e) {\n var t = new RegExp(\"\\\\d+$\").exec(e[0]);\n if (t && void 0 !== t[0]) {\n var i = g[e[0][0] + \"x\"].slice(\"\");\n return i[0] = i[0](t[0]), i[3] = i[3](t[0]), i;\n }\n if (g[e[0]]) return g[e[0]];\n }\n function P(e) {\n if (!e.tokenizer) {\n var t = [], i = [];\n for (var n in g) if (/\\.*x$/.test(n)) {\n var a = n[0] + \"\\\\d+\";\n -1 === i.indexOf(a) && i.push(a);\n } else -1 === t.indexOf(n[0]) && t.push(n[0]);\n e.tokenizer = \"(\" + (i.length > 0 ? i.join(\"|\") + \"|\" : \"\") + t.join(\"+|\") + \")+?|.\", \n e.tokenizer = new RegExp(e.tokenizer, \"g\");\n }\n return e.tokenizer;\n }\n function w(e, t, i) {\n if (!m) return !0;\n if (void 0 === e.rawday || !isFinite(e.rawday) && new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day || \"29\" == e.day && (!isFinite(e.rawyear) || void 0 === e.rawyear || \"\" === e.rawyear) || new Date(e.date.getFullYear(), isFinite(e.rawmonth) ? e.month : e.date.getMonth() + 1, 0).getDate() >= e.day) return t;\n if (\"29\" == e.day) {\n var n = E(t.pos, i);\n if (\"yyyy\" === n.targetMatch[0] && t.pos - n.targetMatchIndex == 2) return t.remove = t.pos + 1, \n t;\n } else if (\"02\" == e.month && \"30\" == e.day && void 0 !== t.c) return e.day = \"03\", \n e.date.setDate(3), e.date.setMonth(1), t.insert = [ {\n pos: t.pos,\n c: \"0\"\n }, {\n pos: t.pos + 1,\n c: t.c\n } ], t.caret = o.seekNext.call(this, t.pos + 1), t;\n return !1;\n }\n function S(e, t, i, n) {\n var a, o, s = \"\";\n for (P(i).lastIndex = 0; a = P(i).exec(e); ) {\n if (void 0 === t) if (o = x(a)) s += \"(\" + o[0] + \")\"; else switch (a[0]) {\n case \"[\":\n s += \"(\";\n break;\n\n case \"]\":\n s += \")?\";\n break;\n\n default:\n s += (0, r.default)(a[0]);\n } else if (o = x(a)) if (!0 !== n && o[3]) s += o[3].call(t.date); else o[2] ? s += t[\"raw\" + o[2]] : s += a[0]; else s += a[0];\n }\n return s;\n }\n function M(e, t, i) {\n for (e = String(e), t = t || 2; e.length < t; ) e = i ? e + \"0\" : \"0\" + e;\n return e;\n }\n function _(e, t, i) {\n return \"string\" == typeof e ? new h(e, t, i) : e && \"object\" === u(e) && Object.prototype.hasOwnProperty.call(e, \"date\") ? e : void 0;\n }\n function O(e, t) {\n return S(t.inputFormat, {\n date: e\n }, t);\n }\n function E(e, t) {\n var i, n, a = 0, r = 0;\n for (P(t).lastIndex = 0; n = P(t).exec(t.inputFormat); ) {\n var o = new RegExp(\"\\\\d+$\").exec(n[0]);\n if ((a += r = o ? parseInt(o[0]) : n[0].length) >= e + 1) {\n i = n, n = P(t).exec(t.inputFormat);\n break;\n }\n }\n return {\n targetMatchIndex: a - r,\n nextMatch: n,\n targetMatch: i\n };\n }\n n.default.extendAliases({\n datetime: {\n mask: function(e) {\n return e.numericInput = !1, g.S = e.i18n.ordinalSuffix.join(\"|\"), e.inputFormat = y[e.inputFormat] || e.inputFormat, \n e.displayFormat = y[e.displayFormat] || e.displayFormat || e.inputFormat, e.outputFormat = y[e.outputFormat] || e.outputFormat || e.inputFormat, \n e.placeholder = \"\" !== e.placeholder ? e.placeholder : e.inputFormat.replace(/[[\\]]/, \"\"), \n e.regex = S(e.inputFormat, void 0, e), e.min = _(e.min, e.inputFormat, e), e.max = _(e.max, e.inputFormat, e), \n null;\n },\n placeholder: \"\",\n inputFormat: \"isoDateTime\",\n displayFormat: null,\n outputFormat: null,\n min: null,\n max: null,\n skipOptionalPartCharacter: \"\",\n i18n: {\n dayNames: [ \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\" ],\n monthNames: [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\", \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\" ],\n ordinalSuffix: [ \"st\", \"nd\", \"rd\", \"th\" ]\n },\n preValidation: function(e, t, i, n, a, r, o, s) {\n if (s) return !0;\n if (isNaN(i) && e[t] !== i) {\n var l = E(t, a);\n if (l.nextMatch && l.nextMatch[0] === i && l.targetMatch[0].length > 1) {\n var c = g[l.targetMatch[0]][0];\n if (new RegExp(c).test(\"0\" + e[t - 1])) return e[t] = e[t - 1], e[t - 1] = \"0\", \n {\n fuzzy: !0,\n buffer: e,\n refreshFromBuffer: {\n start: t - 1,\n end: t + 1\n },\n pos: t + 1\n };\n }\n }\n return !0;\n },\n postValidation: function(e, t, i, n, a, r, o, l) {\n var c, u;\n if (o) return !0;\n if (!1 === n && (((c = E(t + 1, a)).targetMatch && c.targetMatchIndex === t && c.targetMatch[0].length > 1 && void 0 !== g[c.targetMatch[0]] || (c = E(t + 2, a)).targetMatch && c.targetMatchIndex === t + 1 && c.targetMatch[0].length > 1 && void 0 !== g[c.targetMatch[0]]) && (u = g[c.targetMatch[0]][0]), \n void 0 !== u && (void 0 !== r.validPositions[t + 1] && new RegExp(u).test(i + \"0\") ? (e[t] = i, \n e[t + 1] = \"0\", n = {\n pos: t + 2,\n caret: t\n }) : new RegExp(u).test(\"0\" + i) && (e[t] = \"0\", e[t + 1] = i, n = {\n pos: t + 2\n })), !1 === n)) return n;\n if (n.fuzzy && (e = n.buffer, t = n.pos), (c = E(t, a)).targetMatch && c.targetMatch[0] && void 0 !== g[c.targetMatch[0]]) {\n var f = g[c.targetMatch[0]];\n u = f[0];\n var d = e.slice(c.targetMatchIndex, c.targetMatchIndex + c.targetMatch[0].length);\n if (!1 === new RegExp(u).test(d.join(\"\")) && 2 === c.targetMatch[0].length && r.validPositions[c.targetMatchIndex] && r.validPositions[c.targetMatchIndex + 1] && (r.validPositions[c.targetMatchIndex + 1].input = \"0\"), \n \"year\" == f[2]) for (var p = s.getMaskTemplate.call(this, !1, 1, void 0, !0), h = t + 1; h < e.length; h++) e[h] = p[h], \n delete r.validPositions[h];\n }\n var m = n, y = _(e.join(\"\"), a.inputFormat, a);\n return m && !isNaN(y.date.getTime()) && (a.prefillYear && (m = function(e, t, i) {\n if (e.year !== e.rawyear) {\n var n = v.toString(), a = e.rawyear.replace(/[^0-9]/g, \"\"), r = n.slice(0, a.length), o = n.slice(a.length);\n if (2 === a.length && a === r) {\n var s = new Date(v, e.month - 1, e.day);\n e.day == s.getDate() && (!i.max || i.max.date.getTime() >= s.getTime()) && (e.date.setFullYear(v), \n e.year = n, t.insert = [ {\n pos: t.pos + 1,\n c: o[0]\n }, {\n pos: t.pos + 2,\n c: o[1]\n } ]);\n }\n }\n return t;\n }(y, m, a)), m = function(e, t, i, n, a) {\n if (!t) return t;\n if (t && i.min && !isNaN(i.min.date.getTime())) {\n var r;\n for (e.reset(), P(i).lastIndex = 0; r = P(i).exec(i.inputFormat); ) {\n var o;\n if ((o = x(r)) && o[3]) {\n for (var s = o[1], l = e[o[2]], c = i.min[o[2]], u = i.max ? i.max[o[2]] : c, f = [], d = !1, p = 0; p < c.length; p++) void 0 !== n.validPositions[p + r.index] || d ? (f[p] = l[p], \n d = d || l[p] > c[p]) : (f[p] = c[p], \"year\" === o[2] && l.length - 1 == p && c != u && (f = (parseInt(f.join(\"\")) + 1).toString().split(\"\")), \n \"ampm\" === o[2] && c != u && i.min.date.getTime() > e.date.getTime() && (f[p] = u[p]));\n s.call(e._date, f.join(\"\"));\n }\n }\n t = i.min.date.getTime() <= e.date.getTime(), e.reInit();\n }\n return t && i.max && (isNaN(i.max.date.getTime()) || (t = i.max.date.getTime() >= e.date.getTime())), \n t;\n }(y, m = w.call(this, y, m, a), a, r)), void 0 !== t && m && n.pos !== t ? {\n buffer: S(a.inputFormat, y, a).split(\"\"),\n refreshFromBuffer: {\n start: t,\n end: n.pos\n },\n pos: n.caret || n.pos\n } : m;\n },\n onKeyDown: function(e, t, i, n) {\n e.ctrlKey && e.key === a.keys.ArrowRight && (this.inputmask._valueSet(O(new Date, n)), \n p(this).trigger(\"setvalue\"));\n },\n onUnMask: function(e, t, i) {\n return t ? S(i.outputFormat, _(e, i.inputFormat, i), i, !0) : t;\n },\n casing: function(e, t, i, n) {\n return 0 == t.nativeDef.indexOf(\"[ap]\") ? e.toLowerCase() : 0 == t.nativeDef.indexOf(\"[AP]\") ? e.toUpperCase() : e;\n },\n onBeforeMask: function(e, t) {\n return \"[object Date]\" === Object.prototype.toString.call(e) && (e = O(e, t)), e;\n },\n insertMode: !1,\n insertModeVisual: !1,\n shiftPositions: !1,\n keepStatic: !1,\n inputmode: \"numeric\",\n prefillYear: !0\n }\n });\n },\n 3851: function(e, t, i) {\n var n, a = (n = i(2394)) && n.__esModule ? n : {\n default: n\n }, r = i(8711), o = i(4713);\n a.default.extendDefinitions({\n A: {\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"&\": {\n validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\n casing: \"upper\"\n },\n \"#\": {\n validator: \"[0-9A-Fa-f]\",\n casing: \"upper\"\n }\n });\n var s = new RegExp(\"25[0-5]|2[0-4][0-9]|[01][0-9][0-9]\");\n function l(e, t, i, n, a) {\n return i - 1 > -1 && \".\" !== t.buffer[i - 1] ? (e = t.buffer[i - 1] + e, e = i - 2 > -1 && \".\" !== t.buffer[i - 2] ? t.buffer[i - 2] + e : \"0\" + e) : e = \"00\" + e, \n s.test(e);\n }\n a.default.extendAliases({\n cssunit: {\n regex: \"[+-]?[0-9]+\\\\.?([0-9]+)?(px|em|rem|ex|%|in|cm|mm|pt|pc)\"\n },\n url: {\n regex: \"(https?|ftp)://.*\",\n autoUnmask: !1,\n keepStatic: !1,\n tabThrough: !0\n },\n ip: {\n mask: \"i{1,3}.j{1,3}.k{1,3}.l{1,3}\",\n definitions: {\n i: {\n validator: l\n },\n j: {\n validator: l\n },\n k: {\n validator: l\n },\n l: {\n validator: l\n }\n },\n onUnMask: function(e, t, i) {\n return e;\n },\n inputmode: \"decimal\",\n substitutes: {\n \",\": \".\"\n }\n },\n email: {\n mask: function(e) {\n var t = e.separator, i = e.quantifier, n = \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]\", a = n;\n if (t) for (var r = 0; r < i; r++) a += \"[\".concat(t).concat(n, \"]\");\n return a;\n },\n greedy: !1,\n casing: \"lower\",\n separator: null,\n quantifier: 5,\n skipOptionalPartCharacter: \"\",\n onBeforePaste: function(e, t) {\n return (e = e.toLowerCase()).replace(\"mailto:\", \"\");\n },\n definitions: {\n \"*\": {\n validator: \"[0-9\\uff11-\\uff19A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5!#$%&'*+/=?^_`{|}~-]\"\n },\n \"-\": {\n validator: \"[0-9A-Za-z-]\"\n }\n },\n onUnMask: function(e, t, i) {\n return e;\n },\n inputmode: \"email\"\n },\n mac: {\n mask: \"##:##:##:##:##:##\"\n },\n vin: {\n mask: \"V{13}9{4}\",\n definitions: {\n V: {\n validator: \"[A-HJ-NPR-Za-hj-npr-z\\\\d]\",\n casing: \"upper\"\n }\n },\n clearIncomplete: !0,\n autoUnmask: !0\n },\n ssn: {\n mask: \"999-99-9999\",\n postValidation: function(e, t, i, n, a, s, l) {\n var c = o.getMaskTemplate.call(this, !0, r.getLastValidPosition.call(this), !0, !0);\n return /^(?!219-09-9999|078-05-1120)(?!666|000|9.{2}).{3}-(?!00).{2}-(?!0{4}).{4}$/.test(c.join(\"\"));\n }\n }\n });\n },\n 207: function(e, t, i) {\n var n = s(i(2394)), a = s(i(7184)), r = i(8711), o = i(2839);\n function s(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var l = n.default.dependencyLib;\n function c(e, t) {\n for (var i = \"\", a = 0; a < e.length; a++) n.default.prototype.definitions[e.charAt(a)] || t.definitions[e.charAt(a)] || t.optionalmarker[0] === e.charAt(a) || t.optionalmarker[1] === e.charAt(a) || t.quantifiermarker[0] === e.charAt(a) || t.quantifiermarker[1] === e.charAt(a) || t.groupmarker[0] === e.charAt(a) || t.groupmarker[1] === e.charAt(a) || t.alternatormarker === e.charAt(a) ? i += \"\\\\\" + e.charAt(a) : i += e.charAt(a);\n return i;\n }\n function u(e, t, i, n) {\n if (e.length > 0 && t > 0 && (!i.digitsOptional || n)) {\n var a = e.indexOf(i.radixPoint), r = !1;\n i.negationSymbol.back === e[e.length - 1] && (r = !0, e.length--), -1 === a && (e.push(i.radixPoint), \n a = e.length - 1);\n for (var o = 1; o <= t; o++) isFinite(e[a + o]) || (e[a + o] = \"0\");\n }\n return r && e.push(i.negationSymbol.back), e;\n }\n function f(e, t) {\n var i = 0;\n for (var n in \"+\" === e && (i = r.seekNext.call(this, t.validPositions.length - 1)), \n t.tests) if ((n = parseInt(n)) >= i) for (var a = 0, o = t.tests[n].length; a < o; a++) if ((void 0 === t.validPositions[n] || \"-\" === e) && t.tests[n][a].match.def === e) return n + (void 0 !== t.validPositions[n] && \"-\" !== e ? 1 : 0);\n return i;\n }\n function d(e, t) {\n for (var i = -1, n = 0, a = t.validPositions.length; n < a; n++) {\n var r = t.validPositions[n];\n if (r && r.match.def === e) {\n i = n;\n break;\n }\n }\n return i;\n }\n function p(e, t, i, n, a) {\n var r = t.buffer ? t.buffer.indexOf(a.radixPoint) : -1, o = (-1 !== r || n && a.jitMasking) && new RegExp(a.definitions[9].validator).test(e);\n return a._radixDance && -1 !== r && o && null == t.validPositions[r] ? {\n insert: {\n pos: r === i ? r + 1 : r,\n c: a.radixPoint\n },\n pos: i\n } : o;\n }\n n.default.extendAliases({\n numeric: {\n mask: function(e) {\n e.repeat = 0, e.groupSeparator === e.radixPoint && e.digits && \"0\" !== e.digits && (\".\" === e.radixPoint ? e.groupSeparator = \",\" : \",\" === e.radixPoint ? e.groupSeparator = \".\" : e.groupSeparator = \"\"), \n \" \" === e.groupSeparator && (e.skipOptionalPartCharacter = void 0), e.placeholder.length > 1 && (e.placeholder = e.placeholder.charAt(0)), \n \"radixFocus\" === e.positionCaretOnClick && \"\" === e.placeholder && (e.positionCaretOnClick = \"lvp\");\n var t = \"0\", i = e.radixPoint;\n !0 === e.numericInput && void 0 === e.__financeInput ? (t = \"1\", e.positionCaretOnClick = \"radixFocus\" === e.positionCaretOnClick ? \"lvp\" : e.positionCaretOnClick, \n e.digitsOptional = !1, isNaN(e.digits) && (e.digits = 2), e._radixDance = !1, i = \",\" === e.radixPoint ? \"?\" : \"!\", \n \"\" !== e.radixPoint && void 0 === e.definitions[i] && (e.definitions[i] = {}, e.definitions[i].validator = \"[\" + e.radixPoint + \"]\", \n e.definitions[i].placeholder = e.radixPoint, e.definitions[i].static = !0, e.definitions[i].generated = !0)) : (e.__financeInput = !1, \n e.numericInput = !0);\n var n, r = \"[+]\";\n if (r += c(e.prefix, e), \"\" !== e.groupSeparator ? (void 0 === e.definitions[e.groupSeparator] && (e.definitions[e.groupSeparator] = {}, \n e.definitions[e.groupSeparator].validator = \"[\" + e.groupSeparator + \"]\", e.definitions[e.groupSeparator].placeholder = e.groupSeparator, \n e.definitions[e.groupSeparator].static = !0, e.definitions[e.groupSeparator].generated = !0), \n r += e._mask(e)) : r += \"9{+}\", void 0 !== e.digits && 0 !== e.digits) {\n var o = e.digits.toString().split(\",\");\n isFinite(o[0]) && o[1] && isFinite(o[1]) ? r += i + t + \"{\" + e.digits + \"}\" : (isNaN(e.digits) || parseInt(e.digits) > 0) && (e.digitsOptional || e.jitMasking ? (n = r + i + t + \"{0,\" + e.digits + \"}\", \n e.keepStatic = !0) : r += i + t + \"{\" + e.digits + \"}\");\n } else e.inputmode = \"numeric\";\n return r += c(e.suffix, e), r += \"[-]\", n && (r = [ n + c(e.suffix, e) + \"[-]\", r ]), \n e.greedy = !1, function(e) {\n void 0 === e.parseMinMaxOptions && (null !== e.min && (e.min = e.min.toString().replace(new RegExp((0, \n a.default)(e.groupSeparator), \"g\"), \"\"), \",\" === e.radixPoint && (e.min = e.min.replace(e.radixPoint, \".\")), \n e.min = isFinite(e.min) ? parseFloat(e.min) : NaN, isNaN(e.min) && (e.min = Number.MIN_VALUE)), \n null !== e.max && (e.max = e.max.toString().replace(new RegExp((0, a.default)(e.groupSeparator), \"g\"), \"\"), \n \",\" === e.radixPoint && (e.max = e.max.replace(e.radixPoint, \".\")), e.max = isFinite(e.max) ? parseFloat(e.max) : NaN, \n isNaN(e.max) && (e.max = Number.MAX_VALUE)), e.parseMinMaxOptions = \"done\");\n }(e), \"\" !== e.radixPoint && e.substituteRadixPoint && (e.substitutes[\".\" == e.radixPoint ? \",\" : \".\"] = e.radixPoint), \n r;\n },\n _mask: function(e) {\n return \"(\" + e.groupSeparator + \"999){+|1}\";\n },\n digits: \"*\",\n digitsOptional: !0,\n enforceDigitsOnBlur: !1,\n radixPoint: \".\",\n positionCaretOnClick: \"radixFocus\",\n _radixDance: !0,\n groupSeparator: \"\",\n allowMinus: !0,\n negationSymbol: {\n front: \"-\",\n back: \"\"\n },\n prefix: \"\",\n suffix: \"\",\n min: null,\n max: null,\n SetMaxOnOverflow: !1,\n step: 1,\n inputType: \"text\",\n unmaskAsNumber: !1,\n roundingFN: Math.round,\n inputmode: \"decimal\",\n shortcuts: {\n k: \"1000\",\n m: \"1000000\"\n },\n placeholder: \"0\",\n greedy: !1,\n rightAlign: !0,\n insertMode: !0,\n autoUnmask: !1,\n skipOptionalPartCharacter: \"\",\n usePrototypeDefinitions: !1,\n stripLeadingZeroes: !0,\n substituteRadixPoint: !0,\n definitions: {\n 0: {\n validator: p\n },\n 1: {\n validator: p,\n definitionSymbol: \"9\"\n },\n 9: {\n validator: \"[0-9\\uff10-\\uff19\\u0660-\\u0669\\u06f0-\\u06f9]\",\n definitionSymbol: \"*\"\n },\n \"+\": {\n validator: function(e, t, i, n, a) {\n return a.allowMinus && (\"-\" === e || e === a.negationSymbol.front);\n }\n },\n \"-\": {\n validator: function(e, t, i, n, a) {\n return a.allowMinus && e === a.negationSymbol.back;\n }\n }\n },\n preValidation: function(e, t, i, n, a, r, o, s) {\n if (!1 !== a.__financeInput && i === a.radixPoint) return !1;\n var l = e.indexOf(a.radixPoint), c = t;\n if (t = function(e, t, i, n, a) {\n return a._radixDance && a.numericInput && t !== a.negationSymbol.back && e <= i && (i > 0 || t == a.radixPoint) && (void 0 === n.validPositions[e - 1] || n.validPositions[e - 1].input !== a.negationSymbol.back) && (e -= 1), \n e;\n }(t, i, l, r, a), \"-\" === i || i === a.negationSymbol.front) {\n if (!0 !== a.allowMinus) return !1;\n var u = !1, p = d(\"+\", r), h = d(\"-\", r);\n return -1 !== p && (u = [ p, h ]), !1 !== u ? {\n remove: u,\n caret: c - a.negationSymbol.back.length\n } : {\n insert: [ {\n pos: f.call(this, \"+\", r),\n c: a.negationSymbol.front,\n fromIsValid: !0\n }, {\n pos: f.call(this, \"-\", r),\n c: a.negationSymbol.back,\n fromIsValid: void 0\n } ],\n caret: c + a.negationSymbol.back.length\n };\n }\n if (i === a.groupSeparator) return {\n caret: c\n };\n if (s) return !0;\n if (-1 !== l && !0 === a._radixDance && !1 === n && i === a.radixPoint && void 0 !== a.digits && (isNaN(a.digits) || parseInt(a.digits) > 0) && l !== t) return {\n caret: a._radixDance && t === l - 1 ? l + 1 : l\n };\n if (!1 === a.__financeInput) if (n) {\n if (a.digitsOptional) return {\n rewritePosition: o.end\n };\n if (!a.digitsOptional) {\n if (o.begin > l && o.end <= l) return i === a.radixPoint ? {\n insert: {\n pos: l + 1,\n c: \"0\",\n fromIsValid: !0\n },\n rewritePosition: l\n } : {\n rewritePosition: l + 1\n };\n if (o.begin < l) return {\n rewritePosition: o.begin - 1\n };\n }\n } else if (!a.showMaskOnHover && !a.showMaskOnFocus && !a.digitsOptional && a.digits > 0 && \"\" === this.__valueGet.call(this.el)) return {\n rewritePosition: l\n };\n return {\n rewritePosition: t\n };\n },\n postValidation: function(e, t, i, n, a, r, o) {\n if (!1 === n) return n;\n if (o) return !0;\n if (null !== a.min || null !== a.max) {\n var s = a.onUnMask(e.slice().reverse().join(\"\"), void 0, l.extend({}, a, {\n unmaskAsNumber: !0\n }));\n if (null !== a.min && s < a.min && (s.toString().length > a.min.toString().length || s < 0)) return !1;\n if (null !== a.max && s > a.max) return !!a.SetMaxOnOverflow && {\n refreshFromBuffer: !0,\n buffer: u(a.max.toString().replace(\".\", a.radixPoint).split(\"\"), a.digits, a).reverse()\n };\n }\n return n;\n },\n onUnMask: function(e, t, i) {\n if (\"\" === t && !0 === i.nullable) return t;\n var n = e.replace(i.prefix, \"\");\n return n = (n = n.replace(i.suffix, \"\")).replace(new RegExp((0, a.default)(i.groupSeparator), \"g\"), \"\"), \n \"\" !== i.placeholder.charAt(0) && (n = n.replace(new RegExp(i.placeholder.charAt(0), \"g\"), \"0\")), \n i.unmaskAsNumber ? (\"\" !== i.radixPoint && -1 !== n.indexOf(i.radixPoint) && (n = n.replace(a.default.call(this, i.radixPoint), \".\")), \n n = (n = n.replace(new RegExp(\"^\" + (0, a.default)(i.negationSymbol.front)), \"-\")).replace(new RegExp((0, \n a.default)(i.negationSymbol.back) + \"$\"), \"\"), Number(n)) : n;\n },\n isComplete: function(e, t) {\n var i = (t.numericInput ? e.slice().reverse() : e).join(\"\");\n return i = (i = (i = (i = (i = i.replace(new RegExp(\"^\" + (0, a.default)(t.negationSymbol.front)), \"-\")).replace(new RegExp((0, \n a.default)(t.negationSymbol.back) + \"$\"), \"\")).replace(t.prefix, \"\")).replace(t.suffix, \"\")).replace(new RegExp((0, \n a.default)(t.groupSeparator) + \"([0-9]{3})\", \"g\"), \"$1\"), \",\" === t.radixPoint && (i = i.replace((0, \n a.default)(t.radixPoint), \".\")), isFinite(i);\n },\n onBeforeMask: function(e, t) {\n var i = t.radixPoint || \",\";\n isFinite(t.digits) && (t.digits = parseInt(t.digits)), \"number\" != typeof e && \"number\" !== t.inputType || \"\" === i || (e = e.toString().replace(\".\", i));\n var n = \"-\" === e.charAt(0) || e.charAt(0) === t.negationSymbol.front, r = e.split(i), o = r[0].replace(/[^\\-0-9]/g, \"\"), s = r.length > 1 ? r[1].replace(/[^0-9]/g, \"\") : \"\", l = r.length > 1;\n e = o + (\"\" !== s ? i + s : s);\n var c = 0;\n if (\"\" !== i && (c = t.digitsOptional ? t.digits < s.length ? t.digits : s.length : t.digits, \n \"\" !== s || !t.digitsOptional)) {\n var f = Math.pow(10, c || 1);\n e = e.replace((0, a.default)(i), \".\"), isNaN(parseFloat(e)) || (e = (t.roundingFN(parseFloat(e) * f) / f).toFixed(c)), \n e = e.toString().replace(\".\", i);\n }\n if (0 === t.digits && -1 !== e.indexOf(i) && (e = e.substring(0, e.indexOf(i))), \n null !== t.min || null !== t.max) {\n var d = e.toString().replace(i, \".\");\n null !== t.min && d < t.min ? e = t.min.toString().replace(\".\", i) : null !== t.max && d > t.max && (e = t.max.toString().replace(\".\", i));\n }\n return n && \"-\" !== e.charAt(0) && (e = \"-\" + e), u(e.toString().split(\"\"), c, t, l).join(\"\");\n },\n onBeforeWrite: function(e, t, i, n) {\n function r(e, t) {\n if (!1 !== n.__financeInput || t) {\n var i = e.indexOf(n.radixPoint);\n -1 !== i && e.splice(i, 1);\n }\n if (\"\" !== n.groupSeparator) for (;-1 !== (i = e.indexOf(n.groupSeparator)); ) e.splice(i, 1);\n return e;\n }\n var o, s;\n if (n.stripLeadingZeroes && (s = function(e, t) {\n var i = new RegExp(\"(^\" + (\"\" !== t.negationSymbol.front ? (0, a.default)(t.negationSymbol.front) + \"?\" : \"\") + (0, \n a.default)(t.prefix) + \")(.*)(\" + (0, a.default)(t.suffix) + (\"\" != t.negationSymbol.back ? (0, \n a.default)(t.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(e.slice().reverse().join(\"\")), n = i ? i[2] : \"\", r = !1;\n return n && (n = n.split(t.radixPoint.charAt(0))[0], r = new RegExp(\"^[0\" + t.groupSeparator + \"]*\").exec(n)), \n !(!r || !(r[0].length > 1 || r[0].length > 0 && r[0].length < n.length)) && r;\n }(t, n))) for (var c = t.join(\"\").lastIndexOf(s[0].split(\"\").reverse().join(\"\")) - (s[0] == s.input ? 0 : 1), f = s[0] == s.input ? 1 : 0, d = s[0].length - f; d > 0; d--) delete this.maskset.validPositions[c + d], \n delete t[c + d];\n if (e) switch (e.type) {\n case \"blur\":\n case \"checkval\":\n if (null !== n.min) {\n var p = n.onUnMask(t.slice().reverse().join(\"\"), void 0, l.extend({}, n, {\n unmaskAsNumber: !0\n }));\n if (null !== n.min && p < n.min) return {\n refreshFromBuffer: !0,\n buffer: u(n.min.toString().replace(\".\", n.radixPoint).split(\"\"), n.digits, n).reverse()\n };\n }\n if (t[t.length - 1] === n.negationSymbol.front) {\n var h = new RegExp(\"(^\" + (\"\" != n.negationSymbol.front ? (0, a.default)(n.negationSymbol.front) + \"?\" : \"\") + (0, \n a.default)(n.prefix) + \")(.*)(\" + (0, a.default)(n.suffix) + (\"\" != n.negationSymbol.back ? (0, \n a.default)(n.negationSymbol.back) + \"?\" : \"\") + \"$)\").exec(r(t.slice(), !0).reverse().join(\"\"));\n 0 == (h ? h[2] : \"\") && (o = {\n refreshFromBuffer: !0,\n buffer: [ 0 ]\n });\n } else if (\"\" !== n.radixPoint) {\n t.indexOf(n.radixPoint) === n.suffix.length && (o && o.buffer ? o.buffer.splice(0, 1 + n.suffix.length) : (t.splice(0, 1 + n.suffix.length), \n o = {\n refreshFromBuffer: !0,\n buffer: r(t)\n }));\n }\n if (n.enforceDigitsOnBlur) {\n var v = (o = o || {}) && o.buffer || t.slice().reverse();\n o.refreshFromBuffer = !0, o.buffer = u(v, n.digits, n, !0).reverse();\n }\n }\n return o;\n },\n onKeyDown: function(e, t, i, n) {\n var a, r = l(this);\n if (3 != e.location) {\n var s, c = e.key;\n if ((s = n.shortcuts && n.shortcuts[c]) && s.length > 1) return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) * parseInt(s)), \n r.trigger(\"setvalue\"), !1;\n }\n if (e.ctrlKey) switch (e.key) {\n case o.keys.ArrowUp:\n return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) + parseInt(n.step)), \n r.trigger(\"setvalue\"), !1;\n\n case o.keys.ArrowDown:\n return this.inputmask.__valueSet.call(this, parseFloat(this.inputmask.unmaskedvalue()) - parseInt(n.step)), \n r.trigger(\"setvalue\"), !1;\n }\n if (!e.shiftKey && (e.key === o.keys.Delete || e.key === o.keys.Backspace || e.key === o.keys.BACKSPACE_SAFARI) && i.begin !== t.length) {\n if (t[e.key === o.keys.Delete ? i.begin - 1 : i.end] === n.negationSymbol.front) return a = t.slice().reverse(), \n \"\" !== n.negationSymbol.front && a.shift(), \"\" !== n.negationSymbol.back && a.pop(), \n r.trigger(\"setvalue\", [ a.join(\"\"), i.begin ]), !1;\n if (!0 === n._radixDance) {\n var f = t.indexOf(n.radixPoint);\n if (n.digitsOptional) {\n if (0 === f) return (a = t.slice().reverse()).pop(), r.trigger(\"setvalue\", [ a.join(\"\"), i.begin >= a.length ? a.length : i.begin ]), \n !1;\n } else if (-1 !== f && (i.begin < f || i.end < f || e.key === o.keys.Delete && (i.begin === f || i.begin - 1 === f))) {\n var d = void 0;\n return i.begin === i.end && (e.key === o.keys.Backspace || e.key === o.keys.BACKSPACE_SAFARI ? i.begin++ : e.key === o.keys.Delete && i.begin - 1 === f && (d = l.extend({}, i), \n i.begin--, i.end--)), (a = t.slice().reverse()).splice(a.length - i.begin, i.begin - i.end + 1), \n a = u(a, n.digits, n).join(\"\"), d && (i = d), r.trigger(\"setvalue\", [ a, i.begin >= a.length ? f + 1 : i.begin ]), \n !1;\n }\n }\n }\n }\n },\n currency: {\n prefix: \"\",\n groupSeparator: \",\",\n alias: \"numeric\",\n digits: 2,\n digitsOptional: !1\n },\n decimal: {\n alias: \"numeric\"\n },\n integer: {\n alias: \"numeric\",\n inputmode: \"numeric\",\n digits: 0\n },\n percentage: {\n alias: \"numeric\",\n min: 0,\n max: 100,\n suffix: \" %\",\n digits: 0,\n allowMinus: !1\n },\n indianns: {\n alias: \"numeric\",\n _mask: function(e) {\n return \"(\" + e.groupSeparator + \"99){*|1}(\" + e.groupSeparator + \"999){1|1}\";\n },\n groupSeparator: \",\",\n radixPoint: \".\",\n placeholder: \"0\",\n digits: 2,\n digitsOptional: !1\n }\n });\n },\n 9380: function(e, t, i) {\n var n;\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var a = ((n = i(8741)) && n.__esModule ? n : {\n default: n\n }).default ? window : {};\n t.default = a;\n },\n 7760: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.HandleNativePlaceholder = function(e, t) {\n var i = e ? e.inputmask : this;\n if (s.ie) {\n if (e.inputmask._valueGet() !== t && (e.placeholder !== t || \"\" === e.placeholder)) {\n var n = r.getBuffer.call(i).slice(), a = e.inputmask._valueGet();\n if (a !== t) {\n var o = r.getLastValidPosition.call(i);\n -1 === o && a === r.getBufferTemplate.call(i).join(\"\") ? n = [] : -1 !== o && u.call(i, n), \n d(e, n);\n }\n }\n } else e.placeholder !== t && (e.placeholder = t, \"\" === e.placeholder && e.removeAttribute(\"placeholder\"));\n }, t.applyInputValue = c, t.checkVal = f, t.clearOptionalTail = u, t.unmaskedvalue = function(e) {\n var t = e ? e.inputmask : this, i = t.opts, n = t.maskset;\n if (e) {\n if (void 0 === e.inputmask) return e.value;\n e.inputmask && e.inputmask.refreshValue && c(e, e.inputmask._valueGet(!0));\n }\n for (var a = [], o = n.validPositions, s = 0, l = o.length; s < l; s++) o[s] && o[s].match && (1 != o[s].match.static || Array.isArray(n.metadata) && !0 !== o[s].generatedInput) && a.push(o[s].input);\n var u = 0 === a.length ? \"\" : (t.isRTL ? a.reverse() : a).join(\"\");\n if (\"function\" == typeof i.onUnMask) {\n var f = (t.isRTL ? r.getBuffer.call(t).slice().reverse() : r.getBuffer.call(t)).join(\"\");\n u = i.onUnMask.call(t, f, u, i);\n }\n return u;\n }, t.writeBuffer = d;\n var n = i(2839), a = i(4713), r = i(8711), o = i(7215), s = i(9845), l = i(6030);\n function c(e, t) {\n var i = e ? e.inputmask : this, n = i.opts;\n e.inputmask.refreshValue = !1, \"function\" == typeof n.onBeforeMask && (t = n.onBeforeMask.call(i, t, n) || t), \n f(e, !0, !1, t = (t || \"\").toString().split(\"\")), i.undoValue = i._valueGet(!0), \n (n.clearMaskOnLostFocus || n.clearIncomplete) && e.inputmask._valueGet() === r.getBufferTemplate.call(i).join(\"\") && -1 === r.getLastValidPosition.call(i) && e.inputmask._valueSet(\"\");\n }\n function u(e) {\n e.length = 0;\n for (var t, i = a.getMaskTemplate.call(this, !0, 0, !0, void 0, !0); void 0 !== (t = i.shift()); ) e.push(t);\n return e;\n }\n function f(e, t, i, n, s) {\n var c = e ? e.inputmask : this, u = c.maskset, f = c.opts, p = c.dependencyLib, h = n.slice(), v = \"\", m = -1, g = void 0, y = f.skipOptionalPartCharacter;\n f.skipOptionalPartCharacter = \"\", r.resetMaskSet.call(c), u.tests = {}, m = f.radixPoint ? r.determineNewCaretPosition.call(c, {\n begin: 0,\n end: 0\n }, !1, !1 === f.__financeInput ? \"radixFocus\" : void 0).begin : 0, u.p = m, c.caretPos = {\n begin: m\n };\n var k = [], b = c.caretPos;\n if (h.forEach((function(e, t) {\n if (void 0 !== e) {\n var n = new p.Event(\"_checkval\");\n n.key = e, v += e;\n var o = r.getLastValidPosition.call(c, void 0, !0);\n !function(e, t) {\n for (var i = a.getMaskTemplate.call(c, !0, 0).slice(e, r.seekNext.call(c, e, !1, !1)).join(\"\").replace(/'/g, \"\"), n = i.indexOf(t); n > 0 && \" \" === i[n - 1]; ) n--;\n var o = 0 === n && !r.isMask.call(c, e) && (a.getTest.call(c, e).match.nativeDef === t.charAt(0) || !0 === a.getTest.call(c, e).match.static && a.getTest.call(c, e).match.nativeDef === \"'\" + t.charAt(0) || \" \" === a.getTest.call(c, e).match.nativeDef && (a.getTest.call(c, e + 1).match.nativeDef === t.charAt(0) || !0 === a.getTest.call(c, e + 1).match.static && a.getTest.call(c, e + 1).match.nativeDef === \"'\" + t.charAt(0)));\n if (!o && n > 0 && !r.isMask.call(c, e, !1, !0)) {\n var s = r.seekNext.call(c, e);\n c.caretPos.begin < s && (c.caretPos = {\n begin: s\n });\n }\n return o;\n }(m, v) ? (g = l.EventHandlers.keypressEvent.call(c, n, !0, !1, i, c.caretPos.begin)) && (m = c.caretPos.begin + 1, \n v = \"\") : g = l.EventHandlers.keypressEvent.call(c, n, !0, !1, i, o + 1), g ? (void 0 !== g.pos && u.validPositions[g.pos] && !0 === u.validPositions[g.pos].match.static && void 0 === u.validPositions[g.pos].alternation && (k.push(g.pos), \n c.isRTL || (g.forwardPosition = g.pos + 1)), d.call(c, void 0, r.getBuffer.call(c), g.forwardPosition, n, !1), \n c.caretPos = {\n begin: g.forwardPosition,\n end: g.forwardPosition\n }, b = c.caretPos) : void 0 === u.validPositions[t] && h[t] === a.getPlaceholder.call(c, t) && r.isMask.call(c, t, !0) ? c.caretPos.begin++ : c.caretPos = b;\n }\n })), k.length > 0) {\n var x, P, w = r.seekNext.call(c, -1, void 0, !1);\n if (!o.isComplete.call(c, r.getBuffer.call(c)) && k.length <= w || o.isComplete.call(c, r.getBuffer.call(c)) && k.length > 0 && k.length !== w && 0 === k[0]) for (var S = w; void 0 !== (x = k.shift()); ) {\n var M = new p.Event(\"_checkval\");\n if ((P = u.validPositions[x]).generatedInput = !0, M.key = P.input, (g = l.EventHandlers.keypressEvent.call(c, M, !0, !1, i, S)) && void 0 !== g.pos && g.pos !== x && u.validPositions[g.pos] && !0 === u.validPositions[g.pos].match.static) k.push(g.pos); else if (!g) break;\n S++;\n }\n }\n t && d.call(c, e, r.getBuffer.call(c), g ? g.forwardPosition : c.caretPos.begin, s || new p.Event(\"checkval\"), s && (\"input\" === s.type && c.undoValue !== r.getBuffer.call(c).join(\"\") || \"paste\" === s.type)), \n f.skipOptionalPartCharacter = y;\n }\n function d(e, t, i, a, s) {\n var l = e ? e.inputmask : this, c = l.opts, u = l.dependencyLib;\n if (a && \"function\" == typeof c.onBeforeWrite) {\n var f = c.onBeforeWrite.call(l, a, t, i, c);\n if (f) {\n if (f.refreshFromBuffer) {\n var d = f.refreshFromBuffer;\n o.refreshFromBuffer.call(l, !0 === d ? d : d.start, d.end, f.buffer || t), t = r.getBuffer.call(l, !0);\n }\n void 0 !== i && (i = void 0 !== f.caret ? f.caret : i);\n }\n }\n if (void 0 !== e && (e.inputmask._valueSet(t.join(\"\")), void 0 === i || void 0 !== a && \"blur\" === a.type || r.caret.call(l, e, i, void 0, void 0, void 0 !== a && \"keydown\" === a.type && (a.key === n.keys.Delete || a.key === n.keys.Backspace)), \n !0 === s)) {\n var p = u(e), h = e.inputmask._valueGet();\n e.inputmask.skipInputEvent = !0, p.trigger(\"input\"), setTimeout((function() {\n h === r.getBufferTemplate.call(l).join(\"\") ? p.trigger(\"cleared\") : !0 === o.isComplete.call(l, t) && p.trigger(\"complete\");\n }), 0);\n }\n }\n },\n 2394: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0;\n var n = i(157), a = m(i(4963)), r = m(i(9380)), o = i(2391), s = i(4713), l = i(8711), c = i(7215), u = i(7760), f = i(9716), d = m(i(7392)), p = m(i(3976)), h = m(i(8741));\n function v(e) {\n return v = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, v(e);\n }\n function m(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var g = r.default.document, y = \"_inputmask_opts\";\n function k(e, t, i) {\n if (h.default) {\n if (!(this instanceof k)) return new k(e, t, i);\n this.dependencyLib = a.default, this.el = void 0, this.events = {}, this.maskset = void 0, \n !0 !== i && (\"[object Object]\" === Object.prototype.toString.call(e) ? t = e : (t = t || {}, \n e && (t.alias = e)), this.opts = a.default.extend(!0, {}, this.defaults, t), this.noMasksCache = t && void 0 !== t.definitions, \n this.userOptions = t || {}, b(this.opts.alias, t, this.opts)), this.refreshValue = !1, \n this.undoValue = void 0, this.$el = void 0, this.skipInputEvent = !1, this.validationEvent = !1, \n this.ignorable = !1, this.maxLength, this.mouseEnter = !1, this.clicked = 0, this.originalPlaceholder = void 0, \n this.isComposing = !1, this.hasAlternator = !1;\n }\n }\n function b(e, t, i) {\n var n = k.prototype.aliases[e];\n return n ? (n.alias && b(n.alias, void 0, i), a.default.extend(!0, i, n), a.default.extend(!0, i, t), \n !0) : (null === i.mask && (i.mask = e), !1);\n }\n k.prototype = {\n dataAttribute: \"data-inputmask\",\n defaults: p.default,\n definitions: d.default,\n aliases: {},\n masksCache: {},\n get isRTL() {\n return this.opts.isRTL || this.opts.numericInput;\n },\n mask: function(e) {\n var t = this;\n return \"string\" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), \n (e = e.nodeName ? [ e ] : Array.isArray(e) ? e : [].slice.call(e)).forEach((function(e, i) {\n var s = a.default.extend(!0, {}, t.opts);\n if (function(e, t, i, n) {\n function o(t, a) {\n var o = \"\" === n ? t : n + \"-\" + t;\n null !== (a = void 0 !== a ? a : e.getAttribute(o)) && (\"string\" == typeof a && (0 === t.indexOf(\"on\") ? a = r.default[a] : \"false\" === a ? a = !1 : \"true\" === a && (a = !0)), \n i[t] = a);\n }\n if (!0 === t.importDataAttributes) {\n var s, l, c, u, f = e.getAttribute(n);\n if (f && \"\" !== f && (f = f.replace(/'/g, '\"'), l = JSON.parse(\"{\" + f + \"}\")), \n l) for (u in c = void 0, l) if (\"alias\" === u.toLowerCase()) {\n c = l[u];\n break;\n }\n for (s in o(\"alias\", c), i.alias && b(i.alias, i, t), t) {\n if (l) for (u in c = void 0, l) if (u.toLowerCase() === s.toLowerCase()) {\n c = l[u];\n break;\n }\n o(s, c);\n }\n }\n a.default.extend(!0, t, i), (\"rtl\" === e.dir || t.rightAlign) && (e.style.textAlign = \"right\");\n (\"rtl\" === e.dir || t.numericInput) && (e.dir = \"ltr\", e.removeAttribute(\"dir\"), \n t.isRTL = !0);\n return Object.keys(i).length;\n }(e, s, a.default.extend(!0, {}, t.userOptions), t.dataAttribute)) {\n var l = (0, o.generateMaskSet)(s, t.noMasksCache);\n void 0 !== l && (void 0 !== e.inputmask && (e.inputmask.opts.autoUnmask = !0, e.inputmask.remove()), \n e.inputmask = new k(void 0, void 0, !0), e.inputmask.opts = s, e.inputmask.noMasksCache = t.noMasksCache, \n e.inputmask.userOptions = a.default.extend(!0, {}, t.userOptions), e.inputmask.el = e, \n e.inputmask.$el = (0, a.default)(e), e.inputmask.maskset = l, a.default.data(e, y, t.userOptions), \n n.mask.call(e.inputmask));\n }\n })), e && e[0] && e[0].inputmask || this;\n },\n option: function(e, t) {\n return \"string\" == typeof e ? this.opts[e] : \"object\" === v(e) ? (a.default.extend(this.userOptions, e), \n this.el && !0 !== t && this.mask(this.el), this) : void 0;\n },\n unmaskedvalue: function(e) {\n if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), \n void 0 === this.el || void 0 !== e) {\n var t = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n u.checkVal.call(this, void 0, !1, !1, t), \"function\" == typeof this.opts.onBeforeWrite && this.opts.onBeforeWrite.call(this, void 0, l.getBuffer.call(this), 0, this.opts);\n }\n return u.unmaskedvalue.call(this, this.el);\n },\n remove: function() {\n if (this.el) {\n a.default.data(this.el, y, null);\n var e = this.opts.autoUnmask ? (0, u.unmaskedvalue)(this.el) : this._valueGet(this.opts.autoUnmask);\n e !== l.getBufferTemplate.call(this).join(\"\") ? this._valueSet(e, this.opts.autoUnmask) : this._valueSet(\"\"), \n f.EventRuler.off(this.el), Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this.el), \"value\") && this.__valueGet && Object.defineProperty(this.el, \"value\", {\n get: this.__valueGet,\n set: this.__valueSet,\n configurable: !0\n }) : g.__lookupGetter__ && this.el.__lookupGetter__(\"value\") && this.__valueGet && (this.el.__defineGetter__(\"value\", this.__valueGet), \n this.el.__defineSetter__(\"value\", this.__valueSet)), this.el.inputmask = void 0;\n }\n return this.el;\n },\n getemptymask: function() {\n return this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), \n (this.isRTL ? l.getBufferTemplate.call(this).reverse() : l.getBufferTemplate.call(this)).join(\"\");\n },\n hasMaskedValue: function() {\n return !this.opts.autoUnmask;\n },\n isComplete: function() {\n return this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), \n c.isComplete.call(this, l.getBuffer.call(this));\n },\n getmetadata: function() {\n if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), \n Array.isArray(this.maskset.metadata)) {\n var e = s.getMaskTemplate.call(this, !0, 0, !1).join(\"\");\n return this.maskset.metadata.forEach((function(t) {\n return t.mask !== e || (e = t, !1);\n })), e;\n }\n return this.maskset.metadata;\n },\n isValid: function(e) {\n if (this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache), \n e) {\n var t = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n u.checkVal.call(this, void 0, !0, !1, t);\n } else e = this.isRTL ? l.getBuffer.call(this).slice().reverse().join(\"\") : l.getBuffer.call(this).join(\"\");\n for (var i = l.getBuffer.call(this), n = l.determineLastRequiredPosition.call(this), a = i.length - 1; a > n && !l.isMask.call(this, a); a--) ;\n return i.splice(n, a + 1 - n), c.isComplete.call(this, i) && e === (this.isRTL ? l.getBuffer.call(this).slice().reverse().join(\"\") : l.getBuffer.call(this).join(\"\"));\n },\n format: function(e, t) {\n this.maskset = this.maskset || (0, o.generateMaskSet)(this.opts, this.noMasksCache);\n var i = (\"function\" == typeof this.opts.onBeforeMask && this.opts.onBeforeMask.call(this, e, this.opts) || e).split(\"\");\n u.checkVal.call(this, void 0, !0, !1, i);\n var n = this.isRTL ? l.getBuffer.call(this).slice().reverse().join(\"\") : l.getBuffer.call(this).join(\"\");\n return t ? {\n value: n,\n metadata: this.getmetadata()\n } : n;\n },\n setValue: function(e) {\n this.el && (0, a.default)(this.el).trigger(\"setvalue\", [ e ]);\n },\n analyseMask: o.analyseMask\n }, k.extendDefaults = function(e) {\n a.default.extend(!0, k.prototype.defaults, e);\n }, k.extendDefinitions = function(e) {\n a.default.extend(!0, k.prototype.definitions, e);\n }, k.extendAliases = function(e) {\n a.default.extend(!0, k.prototype.aliases, e);\n }, k.format = function(e, t, i) {\n return k(t).format(e, i);\n }, k.unmask = function(e, t) {\n return k(t).unmaskedvalue(e);\n }, k.isValid = function(e, t) {\n return k(t).isValid(e);\n }, k.remove = function(e) {\n \"string\" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), (e = e.nodeName ? [ e ] : e).forEach((function(e) {\n e.inputmask && e.inputmask.remove();\n }));\n }, k.setValue = function(e, t) {\n \"string\" == typeof e && (e = g.getElementById(e) || g.querySelectorAll(e)), (e = e.nodeName ? [ e ] : e).forEach((function(e) {\n e.inputmask ? e.inputmask.setValue(t) : (0, a.default)(e).trigger(\"setvalue\", [ t ]);\n }));\n }, k.dependencyLib = a.default, r.default.Inputmask = k;\n var x = k;\n t.default = x;\n },\n 5296: function(e, t, i) {\n function n(e) {\n return n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, n(e);\n }\n var a = h(i(9380)), r = h(i(2394)), o = h(i(8741));\n function s(e, t) {\n for (var i = 0; i < t.length; i++) {\n var a = t[i];\n a.enumerable = a.enumerable || !1, a.configurable = !0, \"value\" in a && (a.writable = !0), \n Object.defineProperty(e, (r = a.key, o = void 0, o = function(e, t) {\n if (\"object\" !== n(e) || null === e) return e;\n var i = e[Symbol.toPrimitive];\n if (void 0 !== i) {\n var a = i.call(e, t || \"default\");\n if (\"object\" !== n(a)) return a;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t ? String : Number)(e);\n }(r, \"string\"), \"symbol\" === n(o) ? o : String(o)), a);\n }\n var r, o;\n }\n function l(e) {\n var t = f();\n return function() {\n var i, a = p(e);\n if (t) {\n var r = p(this).constructor;\n i = Reflect.construct(a, arguments, r);\n } else i = a.apply(this, arguments);\n return function(e, t) {\n if (t && (\"object\" === n(t) || \"function\" == typeof t)) return t;\n if (void 0 !== t) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return function(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }(e);\n }(this, i);\n };\n }\n function c(e) {\n var t = \"function\" == typeof Map ? new Map : void 0;\n return c = function(e) {\n if (null === e || (i = e, -1 === Function.toString.call(i).indexOf(\"[native code]\"))) return e;\n var i;\n if (\"function\" != typeof e) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== t) {\n if (t.has(e)) return t.get(e);\n t.set(e, n);\n }\n function n() {\n return u(e, arguments, p(this).constructor);\n }\n return n.prototype = Object.create(e.prototype, {\n constructor: {\n value: n,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), d(n, e);\n }, c(e);\n }\n function u(e, t, i) {\n return u = f() ? Reflect.construct.bind() : function(e, t, i) {\n var n = [ null ];\n n.push.apply(n, t);\n var a = new (Function.bind.apply(e, n));\n return i && d(a, i.prototype), a;\n }, u.apply(null, arguments);\n }\n function f() {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function() {}))), \n !0;\n } catch (e) {\n return !1;\n }\n }\n function d(e, t) {\n return d = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(e, t) {\n return e.__proto__ = t, e;\n }, d(e, t);\n }\n function p(e) {\n return p = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n }, p(e);\n }\n function h(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var v = a.default.document;\n if (o.default && v && v.head && v.head.attachShadow && a.default.customElements && void 0 === a.default.customElements.get(\"input-mask\")) {\n var m = function(e) {\n !function(e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), t && d(e, t);\n }(o, e);\n var t, i, n, a = l(o);\n function o() {\n var e;\n !function(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, o);\n var t = (e = a.call(this)).getAttributeNames(), i = e.attachShadow({\n mode: \"closed\"\n }), n = v.createElement(\"input\");\n for (var s in n.type = \"text\", i.appendChild(n), t) Object.prototype.hasOwnProperty.call(t, s) && n.setAttribute(t[s], e.getAttribute(t[s]));\n var l = new r.default;\n return l.dataAttribute = \"\", l.mask(n), n.inputmask.shadowRoot = i, e;\n }\n return t = o, i && s(t.prototype, i), n && s(t, n), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), t;\n }(c(HTMLElement));\n a.default.customElements.define(\"input-mask\", m);\n }\n },\n 2839: function(e, t) {\n function i(e, t) {\n return function(e) {\n if (Array.isArray(e)) return e;\n }(e) || function(e, t) {\n var i = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != i) {\n var n, a, r, o, s = [], l = !0, c = !1;\n try {\n if (r = (i = i.call(e)).next, 0 === t) {\n if (Object(i) !== i) return;\n l = !1;\n } else for (;!(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0) ;\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return s;\n }\n }(e, t) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return n(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return n(e, t);\n }(e, t) || function() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }\n function n(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.keys = t.keyCode = void 0, t.toKey = function(e, t) {\n return r[e] || (t ? String.fromCharCode(e) : String.fromCharCode(e).toLowerCase());\n }, t.toKeyCode = function(e) {\n return a[e];\n };\n var a = {\n AltGraph: 18,\n ArrowDown: 40,\n ArrowLeft: 37,\n ArrowRight: 39,\n ArrowUp: 38,\n Backspace: 8,\n BACKSPACE_SAFARI: 127,\n CapsLock: 20,\n Delete: 46,\n End: 35,\n Enter: 13,\n Escape: 27,\n Home: 36,\n Insert: 45,\n PageDown: 34,\n PageUp: 33,\n Space: 32,\n Tab: 9,\n c: 67,\n x: 88,\n z: 90,\n Shift: 16,\n Control: 17,\n Alt: 18,\n Pause: 19,\n Meta_LEFT: 91,\n Meta_RIGHT: 92,\n ContextMenu: 93,\n Process: 229,\n Unidentified: 229,\n F1: 112,\n F2: 113,\n F3: 114,\n F4: 115,\n F5: 116,\n F6: 117,\n F7: 118,\n F8: 119,\n F9: 120,\n F10: 121,\n F11: 122,\n F12: 123\n };\n t.keyCode = a;\n var r = Object.entries(a).reduce((function(e, t) {\n var n = i(t, 2), a = n[0], r = n[1];\n return e[r] = void 0 === e[r] ? a : e[r], e;\n }), {}), o = Object.entries(a).reduce((function(e, t) {\n var n = i(t, 2), a = n[0];\n n[1];\n return e[a] = \"Space\" === a ? \" \" : a, e;\n }), {});\n t.keys = o;\n },\n 2391: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.analyseMask = function(e, t, i) {\n var n, o, s, l, c, u, f = /(?:[?*+]|\\{[0-9+*]+(?:,[0-9+*]*)?(?:\\|[0-9+*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, d = /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g, p = !1, h = new a.default, v = [], m = [], g = !1;\n function y(e, n, a) {\n a = void 0 !== a ? a : e.matches.length;\n var o = e.matches[a - 1];\n if (t) {\n if (0 === n.indexOf(\"[\") || p && /\\\\d|\\\\s|\\\\w|\\\\p/i.test(n) || \".\" === n) {\n var s = i.casing ? \"i\" : \"\";\n /^\\\\p\\{.*}$/i.test(n) && (s += \"u\"), e.matches.splice(a++, 0, {\n fn: new RegExp(n, s),\n static: !1,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== n,\n casing: null,\n def: n,\n placeholder: void 0,\n nativeDef: n\n });\n } else p && (n = n[n.length - 1]), n.split(\"\").forEach((function(t, n) {\n o = e.matches[a - 1], e.matches.splice(a++, 0, {\n fn: /[a-z]/i.test(i.staticDefinitionSymbol || t) ? new RegExp(\"[\" + (i.staticDefinitionSymbol || t) + \"]\", i.casing ? \"i\" : \"\") : null,\n static: !0,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== t && !0 !== o.static,\n casing: null,\n def: i.staticDefinitionSymbol || t,\n placeholder: void 0 !== i.staticDefinitionSymbol ? t : void 0,\n nativeDef: (p ? \"'\" : \"\") + t\n });\n }));\n p = !1;\n } else {\n var l = i.definitions && i.definitions[n] || i.usePrototypeDefinitions && r.default.prototype.definitions[n];\n l && !p ? e.matches.splice(a++, 0, {\n fn: l.validator ? \"string\" == typeof l.validator ? new RegExp(l.validator, i.casing ? \"i\" : \"\") : new function() {\n this.test = l.validator;\n } : new RegExp(\".\"),\n static: l.static || !1,\n optionality: l.optional || !1,\n defOptionality: l.optional || !1,\n newBlockMarker: void 0 === o || l.optional ? \"master\" : o.def !== (l.definitionSymbol || n),\n casing: l.casing,\n def: l.definitionSymbol || n,\n placeholder: l.placeholder,\n nativeDef: n,\n generated: l.generated\n }) : (e.matches.splice(a++, 0, {\n fn: /[a-z]/i.test(i.staticDefinitionSymbol || n) ? new RegExp(\"[\" + (i.staticDefinitionSymbol || n) + \"]\", i.casing ? \"i\" : \"\") : null,\n static: !0,\n optionality: !1,\n newBlockMarker: void 0 === o ? \"master\" : o.def !== n && !0 !== o.static,\n casing: null,\n def: i.staticDefinitionSymbol || n,\n placeholder: void 0 !== i.staticDefinitionSymbol ? n : void 0,\n nativeDef: (p ? \"'\" : \"\") + n\n }), p = !1);\n }\n }\n function k() {\n if (v.length > 0) {\n if (y(l = v[v.length - 1], o), l.isAlternator) {\n c = v.pop();\n for (var e = 0; e < c.matches.length; e++) c.matches[e].isGroup && (c.matches[e].isGroup = !1);\n v.length > 0 ? (l = v[v.length - 1]).matches.push(c) : h.matches.push(c);\n }\n } else y(h, o);\n }\n function b(e) {\n var t = new a.default(!0);\n return t.openGroup = !1, t.matches = e, t;\n }\n function x() {\n if ((s = v.pop()).openGroup = !1, void 0 !== s) if (v.length > 0) {\n if ((l = v[v.length - 1]).matches.push(s), l.isAlternator) {\n for (var e = (c = v.pop()).matches[0].matches ? c.matches[0].matches.length : 1, t = 0; t < c.matches.length; t++) c.matches[t].isGroup = !1, \n c.matches[t].alternatorGroup = !1, null === i.keepStatic && e < (c.matches[t].matches ? c.matches[t].matches.length : 1) && (i.keepStatic = !0), \n e = c.matches[t].matches ? c.matches[t].matches.length : 1;\n v.length > 0 ? (l = v[v.length - 1]).matches.push(c) : h.matches.push(c);\n }\n } else h.matches.push(s); else k();\n }\n function P(e) {\n var t = e.pop();\n return t.isQuantifier && (t = b([ e.pop(), t ])), t;\n }\n t && (i.optionalmarker[0] = void 0, i.optionalmarker[1] = void 0);\n for (;n = t ? d.exec(e) : f.exec(e); ) {\n if (o = n[0], t) {\n switch (o.charAt(0)) {\n case \"?\":\n o = \"{0,1}\";\n break;\n\n case \"+\":\n case \"*\":\n o = \"{\" + o + \"}\";\n break;\n\n case \"|\":\n if (0 === v.length) {\n var w = b(h.matches);\n w.openGroup = !0, v.push(w), h.matches = [], g = !0;\n }\n }\n switch (o) {\n case \"\\\\d\":\n o = \"[0-9]\";\n break;\n\n case \"\\\\p\":\n o += d.exec(e)[0], o += d.exec(e)[0];\n }\n }\n if (p) k(); else switch (o.charAt(0)) {\n case \"$\":\n case \"^\":\n t || k();\n break;\n\n case i.escapeChar:\n p = !0, t && k();\n break;\n\n case i.optionalmarker[1]:\n case i.groupmarker[1]:\n x();\n break;\n\n case i.optionalmarker[0]:\n v.push(new a.default(!1, !0));\n break;\n\n case i.groupmarker[0]:\n v.push(new a.default(!0));\n break;\n\n case i.quantifiermarker[0]:\n var S = new a.default(!1, !1, !0), M = (o = o.replace(/[{}?]/g, \"\")).split(\"|\"), _ = M[0].split(\",\"), O = isNaN(_[0]) ? _[0] : parseInt(_[0]), E = 1 === _.length ? O : isNaN(_[1]) ? _[1] : parseInt(_[1]), T = isNaN(M[1]) ? M[1] : parseInt(M[1]);\n \"*\" !== O && \"+\" !== O || (O = \"*\" === E ? 0 : 1), S.quantifier = {\n min: O,\n max: E,\n jit: T\n };\n var j = v.length > 0 ? v[v.length - 1].matches : h.matches;\n (n = j.pop()).isGroup || (n = b([ n ])), j.push(n), j.push(S);\n break;\n\n case i.alternatormarker:\n if (v.length > 0) {\n var A = (l = v[v.length - 1]).matches[l.matches.length - 1];\n u = l.openGroup && (void 0 === A.matches || !1 === A.isGroup && !1 === A.isAlternator) ? v.pop() : P(l.matches);\n } else u = P(h.matches);\n if (u.isAlternator) v.push(u); else if (u.alternatorGroup ? (c = v.pop(), u.alternatorGroup = !1) : c = new a.default(!1, !1, !1, !0), \n c.matches.push(u), v.push(c), u.openGroup) {\n u.openGroup = !1;\n var D = new a.default(!0);\n D.alternatorGroup = !0, v.push(D);\n }\n break;\n\n default:\n k();\n }\n }\n g && x();\n for (;v.length > 0; ) s = v.pop(), h.matches.push(s);\n h.matches.length > 0 && (!function e(n) {\n n && n.matches && n.matches.forEach((function(a, r) {\n var o = n.matches[r + 1];\n (void 0 === o || void 0 === o.matches || !1 === o.isQuantifier) && a && a.isGroup && (a.isGroup = !1, \n t || (y(a, i.groupmarker[0], 0), !0 !== a.openGroup && y(a, i.groupmarker[1]))), \n e(a);\n }));\n }(h), m.push(h));\n (i.numericInput || i.isRTL) && function e(t) {\n for (var n in t.matches = t.matches.reverse(), t.matches) if (Object.prototype.hasOwnProperty.call(t.matches, n)) {\n var a = parseInt(n);\n if (t.matches[n].isQuantifier && t.matches[a + 1] && t.matches[a + 1].isGroup) {\n var r = t.matches[n];\n t.matches.splice(n, 1), t.matches.splice(a + 1, 0, r);\n }\n void 0 !== t.matches[n].matches ? t.matches[n] = e(t.matches[n]) : t.matches[n] = ((o = t.matches[n]) === i.optionalmarker[0] ? o = i.optionalmarker[1] : o === i.optionalmarker[1] ? o = i.optionalmarker[0] : o === i.groupmarker[0] ? o = i.groupmarker[1] : o === i.groupmarker[1] && (o = i.groupmarker[0]), \n o);\n }\n var o;\n return t;\n }(m[0]);\n return m;\n }, t.generateMaskSet = function(e, t) {\n var i;\n function a(e, t) {\n var i = t.repeat, n = t.groupmarker, a = t.quantifiermarker, r = t.keepStatic;\n if (i > 0 || \"*\" === i || \"+\" === i) {\n var l = \"*\" === i ? 0 : \"+\" === i ? 1 : i;\n e = n[0] + e + n[1] + a[0] + l + \",\" + i + a[1];\n }\n if (!0 === r) {\n var c = e.match(new RegExp(\"(.)\\\\[([^\\\\]]*)\\\\]\", \"g\"));\n c && c.forEach((function(t, i) {\n var n = function(e, t) {\n return function(e) {\n if (Array.isArray(e)) return e;\n }(e) || function(e, t) {\n var i = null == e ? null : \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (null != i) {\n var n, a, r, o, s = [], l = !0, c = !1;\n try {\n if (r = (i = i.call(e)).next, 0 === t) {\n if (Object(i) !== i) return;\n l = !1;\n } else for (;!(l = (n = r.call(i)).done) && (s.push(n.value), s.length !== t); l = !0) ;\n } catch (e) {\n c = !0, a = e;\n } finally {\n try {\n if (!l && null != i.return && (o = i.return(), Object(o) !== o)) return;\n } finally {\n if (c) throw a;\n }\n }\n return s;\n }\n }(e, t) || function(e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return s(e, t);\n var i = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === i && e.constructor && (i = e.constructor.name);\n if (\"Map\" === i || \"Set\" === i) return Array.from(e);\n if (\"Arguments\" === i || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)) return s(e, t);\n }(e, t) || function() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }();\n }(t.split(\"[\"), 2), a = n[0], r = n[1];\n r = r.replace(\"]\", \"\"), e = e.replace(new RegExp(\"\".concat((0, o.default)(a), \"\\\\[\").concat((0, \n o.default)(r), \"\\\\]\")), a.charAt(0) === r.charAt(0) ? \"(\".concat(a, \"|\").concat(a).concat(r, \")\") : \"\".concat(a, \"[\").concat(r, \"]\"));\n }));\n }\n return e;\n }\n function l(e, i, o) {\n var s, l, c = !1;\n return null !== e && \"\" !== e || ((c = null !== o.regex) ? e = (e = o.regex).replace(/^(\\^)(.*)(\\$)$/, \"$2\") : (c = !0, \n e = \".*\")), 1 === e.length && !1 === o.greedy && 0 !== o.repeat && (o.placeholder = \"\"), \n e = a(e, o), l = c ? \"regex_\" + o.regex : o.numericInput ? e.split(\"\").reverse().join(\"\") : e, \n null !== o.keepStatic && (l = \"ks_\" + o.keepStatic + l), void 0 === r.default.prototype.masksCache[l] || !0 === t ? (s = {\n mask: e,\n maskToken: r.default.prototype.analyseMask(e, c, o),\n validPositions: [],\n _buffer: void 0,\n buffer: void 0,\n tests: {},\n excludes: {},\n metadata: i,\n maskLength: void 0,\n jitOffset: {}\n }, !0 !== t && (r.default.prototype.masksCache[l] = s, s = n.default.extend(!0, {}, r.default.prototype.masksCache[l]))) : s = n.default.extend(!0, {}, r.default.prototype.masksCache[l]), \n s;\n }\n \"function\" == typeof e.mask && (e.mask = e.mask(e));\n if (Array.isArray(e.mask)) {\n if (e.mask.length > 1) {\n null === e.keepStatic && (e.keepStatic = !0);\n var c = e.groupmarker[0];\n return (e.isRTL ? e.mask.reverse() : e.mask).forEach((function(t) {\n c.length > 1 && (c += e.alternatormarker), void 0 !== t.mask && \"function\" != typeof t.mask ? c += t.mask : c += t;\n })), l(c += e.groupmarker[1], e.mask, e);\n }\n e.mask = e.mask.pop();\n }\n i = e.mask && void 0 !== e.mask.mask && \"function\" != typeof e.mask.mask ? l(e.mask.mask, e.mask, e) : l(e.mask, e.mask, e);\n null === e.keepStatic && (e.keepStatic = !1);\n return i;\n };\n var n = l(i(4963)), a = l(i(9695)), r = l(i(2394)), o = l(i(7184));\n function s(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var i = 0, n = new Array(t); i < t; i++) n[i] = e[i];\n return n;\n }\n function l(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n },\n 157: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.mask = function() {\n var e = this, t = this.opts, i = this.el, u = this.dependencyLib;\n o.EventRuler.off(i);\n var f = function(t, i) {\n \"textarea\" !== t.tagName.toLowerCase() && i.ignorables.push(n.keys.Enter);\n var s = t.getAttribute(\"type\"), l = \"input\" === t.tagName.toLowerCase() && i.supportsInputType.includes(s) || t.isContentEditable || \"textarea\" === t.tagName.toLowerCase();\n if (!l) if (\"input\" === t.tagName.toLowerCase()) {\n var c = document.createElement(\"input\");\n c.setAttribute(\"type\", s), l = \"text\" === c.type, c = null;\n } else l = \"partial\";\n return !1 !== l ? function(t) {\n var n, s;\n function l() {\n return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== a.getLastValidPosition.call(e) || !0 !== i.nullable ? (this.inputmask.shadowRoot || this.ownerDocument).activeElement === this && i.clearMaskOnLostFocus ? (e.isRTL ? r.clearOptionalTail.call(e, a.getBuffer.call(e).slice()).reverse() : r.clearOptionalTail.call(e, a.getBuffer.call(e).slice())).join(\"\") : n.call(this) : \"\" : n.call(this);\n }\n function c(e) {\n s.call(this, e), this.inputmask && (0, r.applyInputValue)(this, e);\n }\n if (!t.inputmask.__valueGet) {\n if (!0 !== i.noValuePatching) {\n if (Object.getOwnPropertyDescriptor) {\n var f = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t), \"value\") : void 0;\n f && f.get && f.set ? (n = f.get, s = f.set, Object.defineProperty(t, \"value\", {\n get: l,\n set: c,\n configurable: !0\n })) : \"input\" !== t.tagName.toLowerCase() && (n = function() {\n return this.textContent;\n }, s = function(e) {\n this.textContent = e;\n }, Object.defineProperty(t, \"value\", {\n get: l,\n set: c,\n configurable: !0\n }));\n } else document.__lookupGetter__ && t.__lookupGetter__(\"value\") && (n = t.__lookupGetter__(\"value\"), \n s = t.__lookupSetter__(\"value\"), t.__defineGetter__(\"value\", l), t.__defineSetter__(\"value\", c));\n t.inputmask.__valueGet = n, t.inputmask.__valueSet = s;\n }\n t.inputmask._valueGet = function(t) {\n return e.isRTL && !0 !== t ? n.call(this.el).split(\"\").reverse().join(\"\") : n.call(this.el);\n }, t.inputmask._valueSet = function(t, i) {\n s.call(this.el, null == t ? \"\" : !0 !== i && e.isRTL ? t.split(\"\").reverse().join(\"\") : t);\n }, void 0 === n && (n = function() {\n return this.value;\n }, s = function(e) {\n this.value = e;\n }, function(t) {\n if (u.valHooks && (void 0 === u.valHooks[t] || !0 !== u.valHooks[t].inputmaskpatch)) {\n var n = u.valHooks[t] && u.valHooks[t].get ? u.valHooks[t].get : function(e) {\n return e.value;\n }, o = u.valHooks[t] && u.valHooks[t].set ? u.valHooks[t].set : function(e, t) {\n return e.value = t, e;\n };\n u.valHooks[t] = {\n get: function(t) {\n if (t.inputmask) {\n if (t.inputmask.opts.autoUnmask) return t.inputmask.unmaskedvalue();\n var r = n(t);\n return -1 !== a.getLastValidPosition.call(e, void 0, void 0, t.inputmask.maskset.validPositions) || !0 !== i.nullable ? r : \"\";\n }\n return n(t);\n },\n set: function(e, t) {\n var i = o(e, t);\n return e.inputmask && (0, r.applyInputValue)(e, t), i;\n },\n inputmaskpatch: !0\n };\n }\n }(t.type), function(e) {\n o.EventRuler.on(e, \"mouseenter\", (function() {\n var e = this, t = e.inputmask._valueGet(!0);\n t != (e.inputmask.isRTL ? a.getBuffer.call(e.inputmask).slice().reverse() : a.getBuffer.call(e.inputmask)).join(\"\") && (0, \n r.applyInputValue)(e, t);\n }));\n }(t));\n }\n }(t) : t.inputmask = void 0, l;\n }(i, t);\n if (!1 !== f) {\n e.originalPlaceholder = i.placeholder, e.maxLength = void 0 !== i ? i.maxLength : void 0, \n -1 === e.maxLength && (e.maxLength = void 0), \"inputMode\" in i && null === i.getAttribute(\"inputmode\") && (i.inputMode = t.inputmode, \n i.setAttribute(\"inputmode\", t.inputmode)), !0 === f && (t.showMaskOnFocus = t.showMaskOnFocus && -1 === [ \"cc-number\", \"cc-exp\" ].indexOf(i.autocomplete), \n s.iphone && (t.insertModeVisual = !1, i.setAttribute(\"autocorrect\", \"off\")), o.EventRuler.on(i, \"submit\", c.EventHandlers.submitEvent), \n o.EventRuler.on(i, \"reset\", c.EventHandlers.resetEvent), o.EventRuler.on(i, \"blur\", c.EventHandlers.blurEvent), \n o.EventRuler.on(i, \"focus\", c.EventHandlers.focusEvent), o.EventRuler.on(i, \"invalid\", c.EventHandlers.invalidEvent), \n o.EventRuler.on(i, \"click\", c.EventHandlers.clickEvent), o.EventRuler.on(i, \"mouseleave\", c.EventHandlers.mouseleaveEvent), \n o.EventRuler.on(i, \"mouseenter\", c.EventHandlers.mouseenterEvent), o.EventRuler.on(i, \"paste\", c.EventHandlers.pasteEvent), \n o.EventRuler.on(i, \"cut\", c.EventHandlers.cutEvent), o.EventRuler.on(i, \"complete\", t.oncomplete), \n o.EventRuler.on(i, \"incomplete\", t.onincomplete), o.EventRuler.on(i, \"cleared\", t.oncleared), \n !0 !== t.inputEventOnly && o.EventRuler.on(i, \"keydown\", c.EventHandlers.keyEvent), \n (s.mobile || t.inputEventOnly) && i.removeAttribute(\"maxLength\"), o.EventRuler.on(i, \"input\", c.EventHandlers.inputFallBackEvent)), \n o.EventRuler.on(i, \"setvalue\", c.EventHandlers.setValueEvent), a.getBufferTemplate.call(e).join(\"\"), \n e.undoValue = e._valueGet(!0);\n var d = (i.inputmask.shadowRoot || i.ownerDocument).activeElement;\n if (\"\" !== i.inputmask._valueGet(!0) || !1 === t.clearMaskOnLostFocus || d === i) {\n (0, r.applyInputValue)(i, i.inputmask._valueGet(!0), t);\n var p = a.getBuffer.call(e).slice();\n !1 === l.isComplete.call(e, p) && t.clearIncomplete && a.resetMaskSet.call(e), t.clearMaskOnLostFocus && d !== i && (-1 === a.getLastValidPosition.call(e) ? p = [] : r.clearOptionalTail.call(e, p)), \n (!1 === t.clearMaskOnLostFocus || t.showMaskOnFocus && d === i || \"\" !== i.inputmask._valueGet(!0)) && (0, \n r.writeBuffer)(i, p), d === i && a.caret.call(e, i, a.seekNext.call(e, a.getLastValidPosition.call(e)));\n }\n }\n };\n var n = i(2839), a = i(8711), r = i(7760), o = i(9716), s = i(9845), l = i(7215), c = i(6030);\n },\n 9695: function(e, t) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = function(e, t, i, n) {\n this.matches = [], this.openGroup = e || !1, this.alternatorGroup = !1, this.isGroup = e || !1, \n this.isOptional = t || !1, this.isQuantifier = i || !1, this.isAlternator = n || !1, \n this.quantifier = {\n min: 1,\n max: 1\n };\n };\n },\n 3194: function() {\n Array.prototype.includes || Object.defineProperty(Array.prototype, \"includes\", {\n value: function(e, t) {\n if (null == this) throw new TypeError('\"this\" is null or not defined');\n var i = Object(this), n = i.length >>> 0;\n if (0 === n) return !1;\n for (var a = 0 | t, r = Math.max(a >= 0 ? a : n - Math.abs(a), 0); r < n; ) {\n if (i[r] === e) return !0;\n r++;\n }\n return !1;\n }\n });\n },\n 9302: function() {\n var e = Function.bind.call(Function.call, Array.prototype.reduce), t = Function.bind.call(Function.call, Object.prototype.propertyIsEnumerable), i = Function.bind.call(Function.call, Array.prototype.concat), n = Object.keys;\n Object.entries || (Object.entries = function(a) {\n return e(n(a), (function(e, n) {\n return i(e, \"string\" == typeof n && t(a, n) ? [ [ n, a[n] ] ] : []);\n }), []);\n });\n },\n 7149: function() {\n function e(t) {\n return e = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(e) {\n return typeof e;\n } : function(e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, e(t);\n }\n \"function\" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = \"object\" === e(\"test\".__proto__) ? function(e) {\n return e.__proto__;\n } : function(e) {\n return e.constructor.prototype;\n });\n },\n 4013: function() {\n String.prototype.includes || (String.prototype.includes = function(e, t) {\n return \"number\" != typeof t && (t = 0), !(t + e.length > this.length) && -1 !== this.indexOf(e, t);\n });\n },\n 8711: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.caret = function(e, t, i, n, a) {\n var r, o = this, s = this.opts;\n if (void 0 === t) return \"selectionStart\" in e && \"selectionEnd\" in e ? (t = e.selectionStart, \n i = e.selectionEnd) : window.getSelection ? (r = window.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode !== e && r.commonAncestorContainer !== e || (t = r.startOffset, \n i = r.endOffset) : document.selection && document.selection.createRange && (i = (t = 0 - (r = document.selection.createRange()).duplicate().moveStart(\"character\", -e.inputmask._valueGet().length)) + r.text.length), \n {\n begin: n ? t : c.call(o, t),\n end: n ? i : c.call(o, i)\n };\n if (Array.isArray(t) && (i = o.isRTL ? t[0] : t[1], t = o.isRTL ? t[1] : t[0]), \n void 0 !== t.begin && (i = o.isRTL ? t.begin : t.end, t = o.isRTL ? t.end : t.begin), \n \"number\" == typeof t) {\n t = n ? t : c.call(o, t), i = \"number\" == typeof (i = n ? i : c.call(o, i)) ? i : t;\n var l = parseInt(((e.ownerDocument.defaultView || window).getComputedStyle ? (e.ownerDocument.defaultView || window).getComputedStyle(e, null) : e.currentStyle).fontSize) * i;\n if (e.scrollLeft = l > e.scrollWidth ? l : 0, e.inputmask.caretPos = {\n begin: t,\n end: i\n }, s.insertModeVisual && !1 === s.insertMode && t === i && (a || i++), e === (e.inputmask.shadowRoot || e.ownerDocument).activeElement) if (\"setSelectionRange\" in e) e.setSelectionRange(t, i); else if (window.getSelection) {\n if (r = document.createRange(), void 0 === e.firstChild || null === e.firstChild) {\n var u = document.createTextNode(\"\");\n e.appendChild(u);\n }\n r.setStart(e.firstChild, t < e.inputmask._valueGet().length ? t : e.inputmask._valueGet().length), \n r.setEnd(e.firstChild, i < e.inputmask._valueGet().length ? i : e.inputmask._valueGet().length), \n r.collapse(!0);\n var f = window.getSelection();\n f.removeAllRanges(), f.addRange(r);\n } else e.createTextRange && ((r = e.createTextRange()).collapse(!0), r.moveEnd(\"character\", i), \n r.moveStart(\"character\", t), r.select());\n }\n }, t.determineLastRequiredPosition = function(e) {\n var t, i, r = this, s = r.maskset, l = r.dependencyLib, c = n.getMaskTemplate.call(r, !0, o.call(r), !0, !0), u = c.length, f = o.call(r), d = {}, p = s.validPositions[f], h = void 0 !== p ? p.locator.slice() : void 0;\n for (t = f + 1; t < c.length; t++) h = (i = n.getTestTemplate.call(r, t, h, t - 1)).locator.slice(), \n d[t] = l.extend(!0, {}, i);\n var v = p && void 0 !== p.alternation ? p.locator[p.alternation] : void 0;\n for (t = u - 1; t > f && (((i = d[t]).match.optionality || i.match.optionalQuantifier && i.match.newBlockMarker || v && (v !== d[t].locator[p.alternation] && 1 != i.match.static || !0 === i.match.static && i.locator[p.alternation] && a.checkAlternationMatch.call(r, i.locator[p.alternation].toString().split(\",\"), v.toString().split(\",\")) && \"\" !== n.getTests.call(r, t)[0].def)) && c[t] === n.getPlaceholder.call(r, t, i.match)); t--) u--;\n return e ? {\n l: u,\n def: d[u] ? d[u].match : void 0\n } : u;\n }, t.determineNewCaretPosition = function(e, t, i) {\n var a = this, c = a.maskset, u = a.opts;\n t && (a.isRTL ? e.end = e.begin : e.begin = e.end);\n if (e.begin === e.end) {\n switch (i = i || u.positionCaretOnClick) {\n case \"none\":\n break;\n\n case \"select\":\n e = {\n begin: 0,\n end: r.call(a).length\n };\n break;\n\n case \"ignore\":\n e.end = e.begin = l.call(a, o.call(a));\n break;\n\n case \"radixFocus\":\n if (a.clicked > 1 && 0 == c.validPositions.length) break;\n if (function(e) {\n if (\"\" !== u.radixPoint && 0 !== u.digits) {\n var t = c.validPositions;\n if (void 0 === t[e] || t[e].input === n.getPlaceholder.call(a, e)) {\n if (e < l.call(a, -1)) return !0;\n var i = r.call(a).indexOf(u.radixPoint);\n if (-1 !== i) {\n for (var o = 0, s = t.length; o < s; o++) if (t[o] && i < o && t[o].input !== n.getPlaceholder.call(a, o)) return !1;\n return !0;\n }\n }\n }\n return !1;\n }(e.begin)) {\n var f = r.call(a).join(\"\").indexOf(u.radixPoint);\n e.end = e.begin = u.numericInput ? l.call(a, f) : f;\n break;\n }\n\n default:\n var d = e.begin, p = o.call(a, d, !0), h = l.call(a, -1 !== p || s.call(a, 0) ? p : -1);\n if (d <= h) e.end = e.begin = s.call(a, d, !1, !0) ? d : l.call(a, d); else {\n var v = c.validPositions[p], m = n.getTestTemplate.call(a, h, v ? v.match.locator : void 0, v), g = n.getPlaceholder.call(a, h, m.match);\n if (\"\" !== g && r.call(a)[h] !== g && !0 !== m.match.optionalQuantifier && !0 !== m.match.newBlockMarker || !s.call(a, h, u.keepStatic, !0) && m.match.def === g) {\n var y = l.call(a, h);\n (d >= y || d === h) && (h = y);\n }\n e.end = e.begin = h;\n }\n }\n return e;\n }\n }, t.getBuffer = r, t.getBufferTemplate = function() {\n var e = this.maskset;\n void 0 === e._buffer && (e._buffer = n.getMaskTemplate.call(this, !1, 1), void 0 === e.buffer && (e.buffer = e._buffer.slice()));\n return e._buffer;\n }, t.getLastValidPosition = o, t.isMask = s, t.resetMaskSet = function(e) {\n var t = this.maskset;\n t.buffer = void 0, !0 !== e && (t.validPositions = [], t.p = 0);\n }, t.seekNext = l, t.seekPrevious = function(e, t) {\n var i = this, a = e - 1;\n if (e <= 0) return 0;\n for (;a > 0 && (!0 === t && (!0 !== n.getTest.call(i, a).match.newBlockMarker || !s.call(i, a, void 0, !0)) || !0 !== t && !s.call(i, a, void 0, !0)); ) a--;\n return a;\n }, t.translatePosition = c;\n var n = i(4713), a = i(7215);\n function r(e) {\n var t = this, i = t.maskset;\n return void 0 !== i.buffer && !0 !== e || (i.buffer = n.getMaskTemplate.call(t, !0, o.call(t), !0), \n void 0 === i._buffer && (i._buffer = i.buffer.slice())), i.buffer;\n }\n function o(e, t, i) {\n var n = this.maskset, a = -1, r = -1, o = i || n.validPositions;\n void 0 === e && (e = -1);\n for (var s = 0, l = o.length; s < l; s++) o[s] && (t || !0 !== o[s].generatedInput) && (s <= e && (a = s), \n s >= e && (r = s));\n return -1 === a || a == e ? r : -1 == r || e - a < r - e ? a : r;\n }\n function s(e, t, i) {\n var a = this, r = this.maskset, o = n.getTestTemplate.call(a, e).match;\n if (\"\" === o.def && (o = n.getTest.call(a, e).match), !0 !== o.static) return o.fn;\n if (!0 === i && void 0 !== r.validPositions[e] && !0 !== r.validPositions[e].generatedInput) return !0;\n if (!0 !== t && e > -1) {\n if (i) {\n var s = n.getTests.call(a, e);\n return s.length > 1 + (\"\" === s[s.length - 1].match.def ? 1 : 0);\n }\n var l = n.determineTestTemplate.call(a, e, n.getTests.call(a, e)), c = n.getPlaceholder.call(a, e, l.match);\n return l.match.def !== c;\n }\n return !1;\n }\n function l(e, t, i) {\n var a = this;\n void 0 === i && (i = !0);\n for (var r = e + 1; \"\" !== n.getTest.call(a, r).match.def && (!0 === t && (!0 !== n.getTest.call(a, r).match.newBlockMarker || !s.call(a, r, void 0, !0)) || !0 !== t && !s.call(a, r, void 0, i)); ) r++;\n return r;\n }\n function c(e) {\n var t = this.opts, i = this.el;\n return !this.isRTL || \"number\" != typeof e || t.greedy && \"\" === t.placeholder || !i || (e = this._valueGet().length - e) < 0 && (e = 0), \n e;\n }\n },\n 4713: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.determineTestTemplate = c, t.getDecisionTaker = o, t.getMaskTemplate = function(e, t, i, n, a) {\n var r = this, o = this.opts, u = this.maskset, f = o.greedy;\n a && o.greedy && (o.greedy = !1, r.maskset.tests = {});\n t = t || 0;\n var p, h, v, m, g = [], y = 0;\n do {\n if (!0 === e && u.validPositions[y]) h = (v = a && u.validPositions[y].match.optionality && void 0 === u.validPositions[y + 1] && (!0 === u.validPositions[y].generatedInput || u.validPositions[y].input == o.skipOptionalPartCharacter && y > 0) ? c.call(r, y, d.call(r, y, p, y - 1)) : u.validPositions[y]).match, \n p = v.locator.slice(), g.push(!0 === i ? v.input : !1 === i ? h.nativeDef : s.call(r, y, h)); else {\n h = (v = l.call(r, y, p, y - 1)).match, p = v.locator.slice();\n var k = !0 !== n && (!1 !== o.jitMasking ? o.jitMasking : h.jit);\n (m = (m && h.static && h.def !== o.groupSeparator && null === h.fn || u.validPositions[y - 1] && h.static && h.def !== o.groupSeparator && null === h.fn) && u.tests[y]) || !1 === k || void 0 === k || \"number\" == typeof k && isFinite(k) && k > y ? g.push(!1 === i ? h.nativeDef : s.call(r, g.length, h)) : m = !1;\n }\n y++;\n } while (!0 !== h.static || \"\" !== h.def || t > y);\n \"\" === g[g.length - 1] && g.pop();\n !1 === i && void 0 !== u.maskLength || (u.maskLength = y - 1);\n return o.greedy = f, g;\n }, t.getPlaceholder = s, t.getTest = u, t.getTestTemplate = l, t.getTests = d, t.isSubsetOf = f;\n var n, a = (n = i(2394)) && n.__esModule ? n : {\n default: n\n };\n function r(e, t) {\n var i = (null != e.alternation ? e.mloc[o(e)] : e.locator).join(\"\");\n if (\"\" !== i) for (;i.length < t; ) i += \"0\";\n return i;\n }\n function o(e) {\n var t = e.locator[e.alternation];\n return \"string\" == typeof t && t.length > 0 && (t = t.split(\",\")[0]), void 0 !== t ? t.toString() : \"\";\n }\n function s(e, t, i) {\n var n = this.opts, a = this.maskset;\n if (void 0 !== (t = t || u.call(this, e).match).placeholder || !0 === i) return \"function\" == typeof t.placeholder ? t.placeholder(n) : t.placeholder;\n if (!0 === t.static) {\n if (e > -1 && void 0 === a.validPositions[e]) {\n var r, o = d.call(this, e), s = [];\n if (o.length > 1 + (\"\" === o[o.length - 1].match.def ? 1 : 0)) for (var l = 0; l < o.length; l++) if (\"\" !== o[l].match.def && !0 !== o[l].match.optionality && !0 !== o[l].match.optionalQuantifier && (!0 === o[l].match.static || void 0 === r || !1 !== o[l].match.fn.test(r.match.def, a, e, !0, n)) && (s.push(o[l]), \n !0 === o[l].match.static && (r = o[l]), s.length > 1 && /[0-9a-bA-Z]/.test(s[0].match.def))) return n.placeholder.charAt(e % n.placeholder.length);\n }\n return t.def;\n }\n return n.placeholder.charAt(e % n.placeholder.length);\n }\n function l(e, t, i) {\n return this.maskset.validPositions[e] || c.call(this, e, d.call(this, e, t ? t.slice() : t, i));\n }\n function c(e, t) {\n var i = this.opts, n = 0, a = function(e, t) {\n var i = 0, n = !1;\n t.forEach((function(e) {\n e.match.optionality && (0 !== i && i !== e.match.optionality && (n = !0), (0 === i || i > e.match.optionality) && (i = e.match.optionality));\n })), i && (0 == e || 1 == t.length ? i = 0 : n || (i = 0));\n return i;\n }(e, t);\n e = e > 0 ? e - 1 : 0;\n var o, s, l, c = r(u.call(this, e));\n i.greedy && t.length > 1 && \"\" === t[t.length - 1].match.def && (n = 1);\n for (var f = 0; f < t.length - n; f++) {\n var d = t[f];\n o = r(d, c.length);\n var p = Math.abs(o - c);\n (void 0 === s || \"\" !== o && p < s || l && !i.greedy && l.match.optionality && l.match.optionality - a > 0 && \"master\" === l.match.newBlockMarker && (!d.match.optionality || d.match.optionality - a < 1 || !d.match.newBlockMarker) || l && !i.greedy && l.match.optionalQuantifier && !d.match.optionalQuantifier) && (s = p, \n l = d);\n }\n return l;\n }\n function u(e, t) {\n var i = this.maskset;\n return i.validPositions[e] ? i.validPositions[e] : (t || d.call(this, e))[0];\n }\n function f(e, t, i) {\n function n(e) {\n for (var t, i = [], n = -1, a = 0, r = e.length; a < r; a++) if (\"-\" === e.charAt(a)) for (t = e.charCodeAt(a + 1); ++n < t; ) i.push(String.fromCharCode(n)); else n = e.charCodeAt(a), \n i.push(e.charAt(a));\n return i.join(\"\");\n }\n return e.match.def === t.match.nativeDef || !(!(i.regex || e.match.fn instanceof RegExp && t.match.fn instanceof RegExp) || !0 === e.match.static || !0 === t.match.static) && -1 !== n(t.match.fn.toString().replace(/[[\\]/]/g, \"\")).indexOf(n(e.match.fn.toString().replace(/[[\\]/]/g, \"\")));\n }\n function d(e, t, i) {\n var n, r, o = this, s = this.dependencyLib, l = this.maskset, u = this.opts, d = this.el, p = l.maskToken, h = t ? i : 0, v = t ? t.slice() : [ 0 ], m = [], g = !1, y = t ? t.join(\"\") : \"\";\n function k(t, i, r, s) {\n function c(r, s, p) {\n function v(e, t) {\n var i = 0 === t.matches.indexOf(e);\n return i || t.matches.every((function(n, a) {\n return !0 === n.isQuantifier ? i = v(e, t.matches[a - 1]) : Object.prototype.hasOwnProperty.call(n, \"matches\") && (i = v(e, n)), \n !i;\n })), i;\n }\n function x(e, t, i) {\n var n, a;\n if ((l.tests[e] || l.validPositions[e]) && (l.tests[e] || [ l.validPositions[e] ]).every((function(e, r) {\n if (e.mloc[t]) return n = e, !1;\n var o = void 0 !== i ? i : e.alternation, s = void 0 !== e.locator[o] ? e.locator[o].toString().indexOf(t) : -1;\n return (void 0 === a || s < a) && -1 !== s && (n = e, a = s), !0;\n })), n) {\n var r = n.locator[n.alternation];\n return (n.mloc[t] || n.mloc[r] || n.locator).slice((void 0 !== i ? i : n.alternation) + 1);\n }\n return void 0 !== i ? x(e, t) : void 0;\n }\n function P(e, t) {\n var i = e.alternation, n = void 0 === t || i === t.alternation && -1 === e.locator[i].toString().indexOf(t.locator[i]);\n if (!n && i > t.alternation) for (var a = t.alternation; a < i; a++) if (e.locator[a] !== t.locator[a]) {\n i = a, n = !0;\n break;\n }\n if (n) {\n e.mloc = e.mloc || {};\n var r = e.locator[i];\n if (void 0 !== r) {\n if (\"string\" == typeof r && (r = r.split(\",\")[0]), void 0 === e.mloc[r] && (e.mloc[r] = e.locator.slice()), \n void 0 !== t) {\n for (var o in t.mloc) \"string\" == typeof o && (o = o.split(\",\")[0]), void 0 === e.mloc[o] && (e.mloc[o] = t.mloc[o]);\n e.locator[i] = Object.keys(e.mloc).join(\",\");\n }\n return !0;\n }\n e.alternation = void 0;\n }\n return !1;\n }\n function w(e, t) {\n if (e.locator.length !== t.locator.length) return !1;\n for (var i = e.alternation + 1; i < e.locator.length; i++) if (e.locator[i] !== t.locator[i]) return !1;\n return !0;\n }\n if (h > e + u._maxTestPos) throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + l.mask;\n if (h === e && void 0 === r.matches) {\n if (m.push({\n match: r,\n locator: s.reverse(),\n cd: y,\n mloc: {}\n }), !r.optionality || void 0 !== p || !(u.definitions && u.definitions[r.nativeDef] && u.definitions[r.nativeDef].optional || a.default.prototype.definitions[r.nativeDef] && a.default.prototype.definitions[r.nativeDef].optional)) return !0;\n g = !0, h = e;\n } else if (void 0 !== r.matches) {\n if (r.isGroup && p !== r) return function() {\n if (r = c(t.matches[t.matches.indexOf(r) + 1], s, p)) return !0;\n }();\n if (r.isOptional) return function() {\n var t = r, a = m.length;\n if (r = k(r, i, s, p), m.length > 0) {\n if (m.forEach((function(e, t) {\n t >= a && (e.match.optionality = e.match.optionality ? e.match.optionality + 1 : 1);\n })), n = m[m.length - 1].match, void 0 !== p || !v(n, t)) return r;\n g = !0, h = e;\n }\n }();\n if (r.isAlternator) return function() {\n o.hasAlternator = !0;\n var n, a, v, y = r, k = [], b = m.slice(), S = s.length, M = !1, _ = i.length > 0 ? i.shift() : -1;\n if (-1 === _ || \"string\" == typeof _) {\n var O, E = h, T = i.slice(), j = [];\n if (\"string\" == typeof _) j = _.split(\",\"); else for (O = 0; O < y.matches.length; O++) j.push(O.toString());\n if (void 0 !== l.excludes[e]) {\n for (var A = j.slice(), D = 0, B = l.excludes[e].length; D < B; D++) {\n var C = l.excludes[e][D].toString().split(\":\");\n s.length == C[1] && j.splice(j.indexOf(C[0]), 1);\n }\n 0 === j.length && (delete l.excludes[e], j = A);\n }\n (!0 === u.keepStatic || isFinite(parseInt(u.keepStatic)) && E >= u.keepStatic) && (j = j.slice(0, 1));\n for (var R = 0; R < j.length; R++) {\n O = parseInt(j[R]), m = [], i = \"string\" == typeof _ && x(h, O, S) || T.slice();\n var L = y.matches[O];\n if (L && c(L, [ O ].concat(s), p)) r = !0; else if (0 === R && (M = !0), L && L.matches && L.matches.length > y.matches[0].matches.length) break;\n n = m.slice(), h = E, m = [];\n for (var F = 0; F < n.length; F++) {\n var I = n[F], N = !1;\n I.match.jit = I.match.jit || M, I.alternation = I.alternation || S, P(I);\n for (var V = 0; V < k.length; V++) {\n var G = k[V];\n if (\"string\" != typeof _ || void 0 !== I.alternation && j.includes(I.locator[I.alternation].toString())) {\n if (I.match.nativeDef === G.match.nativeDef) {\n N = !0, P(G, I);\n break;\n }\n if (f(I, G, u)) {\n P(I, G) && (N = !0, k.splice(k.indexOf(G), 0, I));\n break;\n }\n if (f(G, I, u)) {\n P(G, I);\n break;\n }\n if (v = G, !0 === (a = I).match.static && !0 !== v.match.static && v.match.fn.test(a.match.def, l, e, !1, u, !1)) {\n w(I, G) || void 0 !== d.inputmask.userOptions.keepStatic ? P(I, G) && (N = !0, k.splice(k.indexOf(G), 0, I)) : u.keepStatic = !0;\n break;\n }\n }\n }\n N || k.push(I);\n }\n }\n m = b.concat(k), h = e, g = m.length > 0, r = k.length > 0, i = T.slice();\n } else r = c(y.matches[_] || t.matches[_], [ _ ].concat(s), p);\n if (r) return !0;\n }();\n if (r.isQuantifier && p !== t.matches[t.matches.indexOf(r) - 1]) return function() {\n for (var a = r, o = !1, f = i.length > 0 ? i.shift() : 0; f < (isNaN(a.quantifier.max) ? f + 1 : a.quantifier.max) && h <= e; f++) {\n var d = t.matches[t.matches.indexOf(a) - 1];\n if (r = c(d, [ f ].concat(s), d)) {\n if (m.forEach((function(t, i) {\n (n = b(d, t.match) ? t.match : m[m.length - 1].match).optionalQuantifier = f >= a.quantifier.min, \n n.jit = (f + 1) * (d.matches.indexOf(n) + 1) > a.quantifier.jit, n.optionalQuantifier && v(n, d) && (g = !0, \n h = e, u.greedy && null == l.validPositions[e - 1] && f > a.quantifier.min && -1 != [ \"*\", \"+\" ].indexOf(a.quantifier.max) && (m.pop(), \n y = void 0), o = !0, r = !1), !o && n.jit && (l.jitOffset[e] = d.matches.length - d.matches.indexOf(n));\n })), o) break;\n return !0;\n }\n }\n }();\n if (r = k(r, i, s, p)) return !0;\n } else h++;\n }\n for (var p = i.length > 0 ? i.shift() : 0; p < t.matches.length; p++) if (!0 !== t.matches[p].isQuantifier) {\n var v = c(t.matches[p], [ p ].concat(r), s);\n if (v && h === e) return v;\n if (h > e) break;\n }\n }\n function b(e, t) {\n var i = -1 != e.matches.indexOf(t);\n return i || e.matches.forEach((function(e, n) {\n void 0 === e.matches || i || (i = b(e, t));\n })), i;\n }\n if (e > -1) {\n if (void 0 === t) {\n for (var x, P = e - 1; void 0 === (x = l.validPositions[P] || l.tests[P]) && P > -1; ) P--;\n void 0 !== x && P > -1 && (v = function(e, t) {\n var i, n = [];\n return Array.isArray(t) || (t = [ t ]), t.length > 0 && (void 0 === t[0].alternation || !0 === u.keepStatic ? 0 === (n = c.call(o, e, t.slice()).locator.slice()).length && (n = t[0].locator.slice()) : t.forEach((function(e) {\n \"\" !== e.def && (0 === n.length ? (i = e.alternation, n = e.locator.slice()) : e.locator[i] && -1 === n[i].toString().indexOf(e.locator[i]) && (n[i] += \",\" + e.locator[i]));\n }))), n;\n }(P, x), y = v.join(\"\"), h = P);\n }\n if (l.tests[e] && l.tests[e][0].cd === y) return l.tests[e];\n for (var w = v.shift(); w < p.length; w++) {\n if (k(p[w], v, [ w ]) && h === e || h > e) break;\n }\n }\n return (0 === m.length || g) && m.push({\n match: {\n fn: null,\n static: !0,\n optionality: !1,\n casing: null,\n def: \"\",\n placeholder: \"\"\n },\n locator: [],\n mloc: {},\n cd: y\n }), void 0 !== t && l.tests[e] ? r = s.extend(!0, [], m) : (l.tests[e] = s.extend(!0, [], m), \n r = l.tests[e]), m.forEach((function(e) {\n e.match.optionality = e.match.defOptionality || !1;\n })), r;\n }\n },\n 7215: function(e, t, i) {\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.alternate = s, t.checkAlternationMatch = function(e, t, i) {\n for (var n, a = this.opts.greedy ? t : t.slice(0, 1), r = !1, o = void 0 !== i ? i.split(\",\") : [], s = 0; s < o.length; s++) -1 !== (n = e.indexOf(o[s])) && e.splice(n, 1);\n for (var l = 0; l < e.length; l++) if (a.includes(e[l])) {\n r = !0;\n break;\n }\n return r;\n }, t.handleRemove = function(e, t, i, o, l) {\n var c = this, u = this.maskset, f = this.opts;\n if ((f.numericInput || c.isRTL) && (t === a.keys.Backspace ? t = a.keys.Delete : t === a.keys.Delete && (t = a.keys.Backspace), \n c.isRTL)) {\n var d = i.end;\n i.end = i.begin, i.begin = d;\n }\n var p, h = r.getLastValidPosition.call(c, void 0, !0);\n i.end >= r.getBuffer.call(c).length && h >= i.end && (i.end = h + 1);\n t === a.keys.Backspace ? i.end - i.begin < 1 && (i.begin = r.seekPrevious.call(c, i.begin)) : t === a.keys.Delete && i.begin === i.end && (i.end = r.isMask.call(c, i.end, !0, !0) ? i.end + 1 : r.seekNext.call(c, i.end) + 1);\n if (!1 !== (p = v.call(c, i))) {\n if (!0 !== o && !1 !== f.keepStatic || null !== f.regex && -1 !== n.getTest.call(c, i.begin).match.def.indexOf(\"|\")) {\n var m = s.call(c, !0);\n if (m) {\n var g = void 0 !== m.caret ? m.caret : m.pos ? r.seekNext.call(c, m.pos.begin ? m.pos.begin : m.pos) : r.getLastValidPosition.call(c, -1, !0);\n (t !== a.keys.Delete || i.begin > g) && i.begin;\n }\n }\n !0 !== o && (u.p = t === a.keys.Delete ? i.begin + p : i.begin, u.p = r.determineNewCaretPosition.call(c, {\n begin: u.p,\n end: u.p\n }, !1, !1 === f.insertMode && t === a.keys.Backspace ? \"none\" : void 0).begin);\n }\n }, t.isComplete = c, t.isSelection = u, t.isValid = f, t.refreshFromBuffer = p, \n t.revalidateMask = v;\n var n = i(4713), a = i(2839), r = i(8711), o = i(6030);\n function s(e, t, i, a, o, l) {\n var c, u, d, p, h, v, m, g, y, k, b, x = this, P = this.dependencyLib, w = this.opts, S = x.maskset, M = P.extend(!0, [], S.validPositions), _ = P.extend(!0, {}, S.tests), O = !1, E = !1, T = void 0 !== o ? o : r.getLastValidPosition.call(x);\n if (l && (k = l.begin, b = l.end, l.begin > l.end && (k = l.end, b = l.begin)), \n -1 === T && void 0 === o) c = 0, u = (p = n.getTest.call(x, c)).alternation; else for (;T >= 0; T--) if ((d = S.validPositions[T]) && void 0 !== d.alternation) {\n if (T <= (e || 0) && p && p.locator[d.alternation] !== d.locator[d.alternation]) break;\n c = T, u = S.validPositions[c].alternation, p = d;\n }\n if (void 0 !== u) {\n m = parseInt(c), S.excludes[m] = S.excludes[m] || [], !0 !== e && S.excludes[m].push((0, \n n.getDecisionTaker)(p) + \":\" + p.alternation);\n var j = [], A = -1;\n for (h = m; h < r.getLastValidPosition.call(x, void 0, !0) + 1; h++) -1 === A && e <= h && void 0 !== t && (j.push(t), \n A = j.length - 1), (v = S.validPositions[h]) && !0 !== v.generatedInput && (void 0 === l || h < k || h >= b) && j.push(v.input), \n delete S.validPositions[h];\n for (-1 === A && void 0 !== t && (j.push(t), A = j.length - 1); void 0 !== S.excludes[m] && S.excludes[m].length < 10; ) {\n for (S.tests = {}, r.resetMaskSet.call(x, !0), O = !0, h = 0; h < j.length && (g = O.caret || r.getLastValidPosition.call(x, void 0, !0) + 1, \n y = j[h], O = f.call(x, g, y, !1, a, !0)); h++) h === A && (E = O), 1 == e && O && (E = {\n caretPos: h\n });\n if (O) break;\n if (r.resetMaskSet.call(x), p = n.getTest.call(x, m), S.validPositions = P.extend(!0, [], M), \n S.tests = P.extend(!0, {}, _), !S.excludes[m]) {\n E = s.call(x, e, t, i, a, m - 1, l);\n break;\n }\n var D = (0, n.getDecisionTaker)(p);\n if (-1 !== S.excludes[m].indexOf(D + \":\" + p.alternation)) {\n E = s.call(x, e, t, i, a, m - 1, l);\n break;\n }\n for (S.excludes[m].push(D + \":\" + p.alternation), h = m; h < r.getLastValidPosition.call(x, void 0, !0) + 1; h++) delete S.validPositions[h];\n }\n }\n return E && !1 === w.keepStatic || delete S.excludes[m], E;\n }\n function l(e, t, i) {\n var n = this.opts, r = this.maskset;\n switch (n.casing || t.casing) {\n case \"upper\":\n e = e.toUpperCase();\n break;\n\n case \"lower\":\n e = e.toLowerCase();\n break;\n\n case \"title\":\n var o = r.validPositions[i - 1];\n e = 0 === i || o && o.input === String.fromCharCode(a.keyCode.Space) ? e.toUpperCase() : e.toLowerCase();\n break;\n\n default:\n if (\"function\" == typeof n.casing) {\n var s = Array.prototype.slice.call(arguments);\n s.push(r.validPositions), e = n.casing.apply(this, s);\n }\n }\n return e;\n }\n function c(e) {\n var t = this, i = this.opts, a = this.maskset;\n if (\"function\" == typeof i.isComplete) return i.isComplete(e, i);\n if (\"*\" !== i.repeat) {\n var o = !1, s = r.determineLastRequiredPosition.call(t, !0), l = r.seekPrevious.call(t, s.l);\n if (void 0 === s.def || s.def.newBlockMarker || s.def.optionality || s.def.optionalQuantifier) {\n o = !0;\n for (var c = 0; c <= l; c++) {\n var u = n.getTestTemplate.call(t, c).match;\n if (!0 !== u.static && void 0 === a.validPositions[c] && !0 !== u.optionality && !0 !== u.optionalQuantifier || !0 === u.static && e[c] !== n.getPlaceholder.call(t, c, u)) {\n o = !1;\n break;\n }\n }\n }\n return o;\n }\n }\n function u(e) {\n var t = this.opts.insertMode ? 0 : 1;\n return this.isRTL ? e.begin - e.end > t : e.end - e.begin > t;\n }\n function f(e, t, i, a, o, d, m) {\n var g = this, y = this.dependencyLib, k = this.opts, b = g.maskset;\n i = !0 === i;\n var x = e;\n function P(e) {\n if (void 0 !== e) {\n if (void 0 !== e.remove && (Array.isArray(e.remove) || (e.remove = [ e.remove ]), \n e.remove.sort((function(e, t) {\n return g.isRTL ? e.pos - t.pos : t.pos - e.pos;\n })).forEach((function(e) {\n v.call(g, {\n begin: e,\n end: e + 1\n });\n })), e.remove = void 0), void 0 !== e.insert && (Array.isArray(e.insert) || (e.insert = [ e.insert ]), \n e.insert.sort((function(e, t) {\n return g.isRTL ? t.pos - e.pos : e.pos - t.pos;\n })).forEach((function(e) {\n \"\" !== e.c && f.call(g, e.pos, e.c, void 0 === e.strict || e.strict, void 0 !== e.fromIsValid ? e.fromIsValid : a);\n })), e.insert = void 0), e.refreshFromBuffer && e.buffer) {\n var t = e.refreshFromBuffer;\n p.call(g, !0 === t ? t : t.start, t.end, e.buffer), e.refreshFromBuffer = void 0;\n }\n void 0 !== e.rewritePosition && (x = e.rewritePosition, e = !0);\n }\n return e;\n }\n function w(t, i, o) {\n var s = !1;\n return n.getTests.call(g, t).every((function(c, f) {\n var d = c.match;\n if (r.getBuffer.call(g, !0), !1 !== (s = (!d.jit || void 0 !== b.validPositions[r.seekPrevious.call(g, t)]) && (null != d.fn ? d.fn.test(i, b, t, o, k, u.call(g, e)) : (i === d.def || i === k.skipOptionalPartCharacter) && \"\" !== d.def && {\n c: n.getPlaceholder.call(g, t, d, !0) || d.def,\n pos: t\n }))) {\n var p = void 0 !== s.c ? s.c : i, h = t;\n return p = p === k.skipOptionalPartCharacter && !0 === d.static ? n.getPlaceholder.call(g, t, d, !0) || d.def : p, \n !0 !== (s = P(s)) && void 0 !== s.pos && s.pos !== t && (h = s.pos), !0 !== s && void 0 === s.pos && void 0 === s.c ? !1 : (!1 === v.call(g, e, y.extend({}, c, {\n input: l.call(g, p, d, h)\n }), a, h) && (s = !1), !1);\n }\n return !0;\n })), s;\n }\n void 0 !== e.begin && (x = g.isRTL ? e.end : e.begin);\n var S = !0, M = y.extend(!0, {}, b.validPositions);\n if (!1 === k.keepStatic && void 0 !== b.excludes[x] && !0 !== o && !0 !== a) for (var _ = x; _ < (g.isRTL ? e.begin : e.end); _++) void 0 !== b.excludes[_] && (b.excludes[_] = void 0, \n delete b.tests[_]);\n if (\"function\" == typeof k.preValidation && !0 !== a && !0 !== d && (S = P(S = k.preValidation.call(g, r.getBuffer.call(g), x, t, u.call(g, e), k, b, e, i || o))), \n !0 === S) {\n if (S = w(x, t, i), (!i || !0 === a) && !1 === S && !0 !== d) {\n var O = b.validPositions[x];\n if (!O || !0 !== O.match.static || O.match.def !== t && t !== k.skipOptionalPartCharacter) {\n if (k.insertMode || void 0 === b.validPositions[r.seekNext.call(g, x)] || e.end > x) {\n var E = !1;\n if (b.jitOffset[x] && void 0 === b.validPositions[r.seekNext.call(g, x)] && !1 !== (S = f.call(g, x + b.jitOffset[x], t, !0, !0)) && (!0 !== o && (S.caret = x), \n E = !0), e.end > x && (b.validPositions[x] = void 0), !E && !r.isMask.call(g, x, k.keepStatic && 0 === x)) for (var T = x + 1, j = r.seekNext.call(g, x, !1, 0 !== x); T <= j; T++) if (!1 !== (S = w(T, t, i))) {\n S = h.call(g, x, void 0 !== S.pos ? S.pos : T) || S, x = T;\n break;\n }\n }\n } else S = {\n caret: r.seekNext.call(g, x)\n };\n }\n g.hasAlternator && !0 !== o && !i && (!1 === S && k.keepStatic && (c.call(g, r.getBuffer.call(g)) || 0 === x) ? S = s.call(g, x, t, i, a, void 0, e) : (u.call(g, e) && b.tests[x] && b.tests[x].length > 1 && k.keepStatic || 1 == S && !0 !== k.numericInput && b.tests[x] && b.tests[x].length > 1 && r.getLastValidPosition.call(g, void 0, !0) > x) && (S = s.call(g, !0))), \n !0 === S && (S = {\n pos: x\n });\n }\n if (\"function\" == typeof k.postValidation && !0 !== a && !0 !== d) {\n var A = k.postValidation.call(g, r.getBuffer.call(g, !0), void 0 !== e.begin ? g.isRTL ? e.end : e.begin : e, t, S, k, b, i, m);\n void 0 !== A && (S = !0 === A ? S : A);\n }\n S && void 0 === S.pos && (S.pos = x), !1 === S || !0 === d ? (r.resetMaskSet.call(g, !0), \n b.validPositions = y.extend(!0, [], M)) : h.call(g, void 0, x, !0);\n var D = P(S);\n void 0 !== g.maxLength && (r.getBuffer.call(g).length > g.maxLength && !a && (r.resetMaskSet.call(g, !0), \n b.validPositions = y.extend(!0, [], M), D = !1));\n return D;\n }\n function d(e, t, i) {\n for (var a = this.maskset, r = !1, o = n.getTests.call(this, e), s = 0; s < o.length; s++) {\n if (o[s].match && (o[s].match.nativeDef === t.match[i.shiftPositions ? \"def\" : \"nativeDef\"] && (!i.shiftPositions || !t.match.static) || o[s].match.nativeDef === t.match.nativeDef || i.regex && !o[s].match.static && o[s].match.fn.test(t.input, a, e, !1, i))) {\n r = !0;\n break;\n }\n if (o[s].match && o[s].match.def === t.match.nativeDef) {\n r = void 0;\n break;\n }\n }\n return !1 === r && void 0 !== a.jitOffset[e] && (r = d.call(this, e + a.jitOffset[e], t, i)), \n r;\n }\n function p(e, t, i) {\n var n, a, s = this, l = this.maskset, c = this.opts, u = this.dependencyLib, f = c.skipOptionalPartCharacter, d = s.isRTL ? i.slice().reverse() : i;\n if (c.skipOptionalPartCharacter = \"\", !0 === e) r.resetMaskSet.call(s), l.tests = {}, \n e = 0, t = i.length, a = r.determineNewCaretPosition.call(s, {\n begin: 0,\n end: 0\n }, !1).begin; else {\n for (n = e; n < t; n++) delete l.validPositions[n];\n a = e;\n }\n var p = new u.Event(\"keypress\");\n for (n = e; n < t; n++) {\n p.key = d[n].toString(), s.ignorable = !1;\n var h = o.EventHandlers.keypressEvent.call(s, p, !0, !1, !1, a);\n !1 !== h && void 0 !== h && (a = h.forwardPosition);\n }\n c.skipOptionalPartCharacter = f;\n }\n function h(e, t, i) {\n var a = this, o = this.maskset, s = this.dependencyLib;\n if (void 0 === e) for (e = t - 1; e > 0 && !o.validPositions[e]; e--) ;\n for (var l = e; l < t; l++) {\n if (void 0 === o.validPositions[l] && !r.isMask.call(a, l, !1)) if (0 == l ? n.getTest.call(a, l) : o.validPositions[l - 1]) {\n var c = n.getTests.call(a, l).slice();\n \"\" === c[c.length - 1].match.def && c.pop();\n var u, d = n.determineTestTemplate.call(a, l, c);\n if (d && (!0 !== d.match.jit || \"master\" === d.match.newBlockMarker && (u = o.validPositions[l + 1]) && !0 === u.match.optionalQuantifier) && ((d = s.extend({}, d, {\n input: n.getPlaceholder.call(a, l, d.match, !0) || d.match.def\n })).generatedInput = !0, v.call(a, l, d, !0), !0 !== i)) {\n var p = o.validPositions[t].input;\n return o.validPositions[t] = void 0, f.call(a, t, p, !0, !0);\n }\n }\n }\n }\n function v(e, t, i, a) {\n var o = this, s = this.maskset, l = this.opts, c = this.dependencyLib;\n function u(e, t, i) {\n var n = t[e];\n if (void 0 !== n && !0 === n.match.static && !0 !== n.match.optionality && (void 0 === t[0] || void 0 === t[0].alternation)) {\n var a = i.begin <= e - 1 ? t[e - 1] && !0 === t[e - 1].match.static && t[e - 1] : t[e - 1], r = i.end > e + 1 ? t[e + 1] && !0 === t[e + 1].match.static && t[e + 1] : t[e + 1];\n return a && r;\n }\n return !1;\n }\n var p = 0, h = void 0 !== e.begin ? e.begin : e, v = void 0 !== e.end ? e.end : e, m = !0;\n if (e.begin > e.end && (h = e.end, v = e.begin), a = void 0 !== a ? a : h, void 0 === i && (h !== v || l.insertMode && void 0 !== s.validPositions[a] || void 0 === t || t.match.optionalQuantifier || t.match.optionality)) {\n var g, y = c.extend(!0, {}, s.validPositions), k = r.getLastValidPosition.call(o, void 0, !0);\n for (s.p = h, g = k; g >= h; g--) delete s.validPositions[g], void 0 === t && delete s.tests[g + 1];\n var b, x, P = a, w = P;\n for (t && (s.validPositions[a] = c.extend(!0, {}, t), w++, P++), g = t ? v : v - 1; g <= k; g++) {\n if (void 0 !== (b = y[g]) && !0 !== b.generatedInput && (g >= v || g >= h && u(g, y, {\n begin: h,\n end: v\n }))) {\n for (;\"\" !== n.getTest.call(o, w).match.def; ) {\n if (!1 !== (x = d.call(o, w, b, l)) || \"+\" === b.match.def) {\n \"+\" === b.match.def && r.getBuffer.call(o, !0);\n var S = f.call(o, w, b.input, \"+\" !== b.match.def, !0);\n if (m = !1 !== S, P = (S.pos || w) + 1, !m && x) break;\n } else m = !1;\n if (m) {\n void 0 === t && b.match.static && g === e.begin && p++;\n break;\n }\n if (!m && r.getBuffer.call(o), w > s.maskLength) break;\n w++;\n }\n \"\" == n.getTest.call(o, w).match.def && (m = !1), w = P;\n }\n if (!m) break;\n }\n if (!m) return s.validPositions = c.extend(!0, [], y), r.resetMaskSet.call(o, !0), \n !1;\n } else t && n.getTest.call(o, a).match.cd === t.match.cd && (s.validPositions[a] = c.extend(!0, {}, t));\n return r.resetMaskSet.call(o, !0), p;\n }\n }\n }, t = {};\n function i(n) {\n var a = t[n];\n if (void 0 !== a) return a.exports;\n var r = t[n] = {\n exports: {}\n };\n return e[n](r, r.exports, i), r.exports;\n }\n var n = {};\n return function() {\n var e, t = n;\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n }), t.default = void 0, i(7149), i(3194), i(9302), i(4013), i(3851), i(219), i(207), \n i(5296);\n var a = ((e = i(2394)) && e.__esModule ? e : {\n default: e\n }).default;\n t.default = a;\n }(), n;\n }();\n}));","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\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 version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\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\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\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\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\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}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\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// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\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\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\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: https://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] 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\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: 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\tneedsContext: 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\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\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// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\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\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 = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( 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 9 only\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\tpush.call( results, 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 9 only\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\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, 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 ] ) && context.getElementsByClassName ) {\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 ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\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\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\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 = jQuery.escapeSelector( nid );\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( rtrimCSS, \"$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\n\t\t// (see https://github.com/jquery/sizzle/issues/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 jQuery selector module\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 * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"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\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.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\telem.isDisabled !== !disabled &&\n\t\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 jQuery selector 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/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar 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\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\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\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\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\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure 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// 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 = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = 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\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"<a id='\" + expando + \"' href='' disabled='disabled'></a>\" +\n\t\t\t\"<select id='\" + expando + \"-\\r\\\\' disabled='disabled'>\" +\n\t\t\t\"<option selected=''></option></select>\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\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\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( 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\tfind.contains( 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\tfind.contains( 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.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ 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\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\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 find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.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 jQuery.contains( context, elem );\n};\n\n\nfind.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 (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.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 */\njQuery.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\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, 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\tsplice.call( results, 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\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\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\tATTR: 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 ] || match[ 5 ] || \"\" )\n\t\t\t\t.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\tCHILD: 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\tfind.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\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: 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\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = 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 nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.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\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: 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, 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\tnodeName( node, 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\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ 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\touterCache[ 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\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ 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\tnodeName( node, 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\t\t\t\t\t\t\t\t\t\t\touterCache[ 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\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://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\tfind.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 jQuery 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.call( 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\tnot: 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( rtrimCSS, \"$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\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/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\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( 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// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: 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\tfind.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\ttarget: 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\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\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\tempty: function( elem ) {\n\n\t\t\t// https://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\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.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\n\t\t\t\t// 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\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: 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\todd: 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\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\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\tgt: 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\nfunction tokenize( 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( rtrimCSS, \" \" )\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\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\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, 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\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ 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\touterCache[ 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\tfind( 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, matcherOut,\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 ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\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\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\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.call( 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.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\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\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\n\t\t\t// (see https://github.com/jquery/sizzle/issues/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\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$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: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching\n\t\t\t// elements by id. (see trac-14142)\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\tpush.call( results, 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\tjQuery.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\nfunction compile( 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( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\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 jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( 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\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 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 ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\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// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\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\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\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\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 jQuery#find\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.error );\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 error, 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.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = 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\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\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,\n\t\t\terror.stack, asyncError );\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\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\", true );\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, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\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 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\tif ( !saved ) {\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\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\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\treturn result;\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\n\t\t\t\t// the 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 ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\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\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\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\tvar attaches;\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, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\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},\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\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\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\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\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// Re-enable 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 jQuery#find here for performance reasons:\n\t\t\t// 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\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 = \"box-sizing:content-box;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\t\tmarginDelta = 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\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += 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 + marginDelta;\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\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: 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\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 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\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\n\t\t\t.on( \"mouseenter\", fnOver )\n\t\t\t.on( \"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","(function (root, factory) {\n var factorySource = factory.toString();\n\n if (typeof module !== 'undefined') {\n module.exports = factory(factorySource);\n } else {\n //Browser globals case. Just assign the\n //result to a property on the global.\n root.Quagga = factory(factorySource);\n }\n}(this, function (__factorySource__) {/**\n * @license almond 0.2.9 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that \"directory\" and not name of the baseName's\n //module. For instance, baseName of \"one/two/three\", maps to\n //\"one/two/three.js\", but we want the directory, \"one/two\" for\n //this normalization.\n baseParts = baseParts.slice(0, baseParts.length - 1);\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n name = baseParts.concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n return req.apply(undef, aps.call(arguments, 0).concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\ndefine(\"almond\", function(){});\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('image_loader',[],function() {\n \"use strict\";\n\n var ImageLoader = {};\n ImageLoader.load = function(directory, callback, offset, size, sequence) {\n var htmlImagesSrcArray = new Array(size),\n htmlImagesArray = new Array(htmlImagesSrcArray.length),\n i,\n img,\n num;\n \n if (sequence === false) {\n htmlImagesSrcArray[0] = directory;\n } else {\n for ( i = 0; i < htmlImagesSrcArray.length; i++) {\n num = (offset + i);\n htmlImagesSrcArray[i] = directory + \"image-\" + (\"00\" + num).slice(-3) + \".jpg\";\n }\n }\n htmlImagesArray.notLoaded = [];\n htmlImagesArray.addImage = function(img) {\n htmlImagesArray.notLoaded.push(img);\n };\n htmlImagesArray.loaded = function(loadedImg) {\n var notloadedImgs = htmlImagesArray.notLoaded;\n for (var x = 0; x < notloadedImgs.length; x++) {\n if (notloadedImgs[x] == loadedImg) {\n notloadedImgs.splice(x, 1);\n for (var y = 0; y < htmlImagesSrcArray.length; y++) {\n var imgName = htmlImagesSrcArray[y].substr(htmlImagesSrcArray[y].lastIndexOf(\"/\"));\n if (loadedImg.src.lastIndexOf(imgName) != -1) {\n htmlImagesArray[y] = loadedImg;\n break;\n }\n }\n break;\n }\n }\n if (notloadedImgs.length === 0) {\n console.log(\"Images loaded\");\n callback.apply(null, [htmlImagesArray]);\n }\n };\n \n for ( i = 0; i < htmlImagesSrcArray.length; i++) {\n img = new Image();\n htmlImagesArray.addImage(img);\n addOnloadHandler(img, htmlImagesArray);\n img.src = htmlImagesSrcArray[i];\n }\n };\n \n function addOnloadHandler(img, htmlImagesArray) {\n img.onload = function() {\n htmlImagesArray.loaded(this);\n };\n }\n\n return (ImageLoader);\n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('input_stream',[\"image_loader\"], function(ImageLoader) {\n \"use strict\";\n\n var InputStream = {};\n InputStream.createVideoStream = function(video) {\n var that = {},\n _config = null,\n _eventNames = ['canrecord', 'ended'],\n _eventHandlers = {},\n _calculatedWidth,\n _calculatedHeight,\n _topRight = {x: 0, y: 0},\n _canvasSize = {x: 0, y: 0};\n\n function initSize() {\n var width = video.videoWidth,\n height = video.videoHeight;\n\n _calculatedWidth = _config.size ? width/height > 1 ? _config.size : Math.floor((width/height) * _config.size) : width;\n _calculatedHeight = _config.size ? width/height > 1 ? Math.floor((height/width) * _config.size) : _config.size : height;\n\n _canvasSize.x = _calculatedWidth;\n _canvasSize.y = _calculatedHeight;\n }\n\n that.getRealWidth = function() {\n return video.videoWidth;\n };\n\n that.getRealHeight = function() {\n return video.videoHeight;\n };\n\n that.getWidth = function() {\n return _calculatedWidth;\n };\n\n that.getHeight = function() {\n return _calculatedHeight;\n };\n\n that.setWidth = function(width) {\n _calculatedWidth = width;\n };\n\n that.setHeight = function(height) {\n _calculatedHeight = height;\n };\n\n that.setInputStream = function(config) {\n _config = config;\n video.src = (typeof config.src !== 'undefined') ? config.src : '';\n };\n\n that.ended = function() {\n return video.ended;\n };\n\n that.getConfig = function() {\n return _config;\n };\n\n that.setAttribute = function(name, value) {\n video.setAttribute(name, value);\n };\n\n that.pause = function() {\n video.pause();\n };\n\n that.play = function() {\n video.play();\n };\n\n that.setCurrentTime = function(time) {\n if (_config.type !== \"LiveStream\")\n video.currentTime = time;\n };\n\n that.addEventListener = function(event, f, bool) {\n if (_eventNames.indexOf(event) !== -1) {\n if (!_eventHandlers[event]) {\n _eventHandlers[event] = [];\n }\n _eventHandlers[event].push(f);\n } else {\n video.addEventListener(event, f, bool);\n }\n };\n\n that.clearEventHandlers = function() {\n _eventNames.forEach(function(eventName) {\n var handlers = _eventHandlers[eventName];\n if (handlers && handlers.length > 0) {\n handlers.forEach(function(handler) {\n video.removeEventListener(eventName, handler);\n });\n }\n });\n };\n\n that.trigger = function(eventName, args) {\n var j,\n handlers = _eventHandlers[eventName];\n\n if (eventName === 'canrecord') {\n initSize();\n }\n if (handlers && handlers.length > 0) {\n for ( j = 0; j < handlers.length; j++) {\n handlers[j].apply(that, args);\n }\n }\n };\n\n that.setTopRight = function(topRight) {\n _topRight.x = topRight.x;\n _topRight.y = topRight.y;\n };\n\n that.getTopRight = function() {\n return _topRight;\n };\n\n that.setCanvasSize = function(size) {\n _canvasSize.x = size.x;\n _canvasSize.y = size.y;\n };\n\n that.getCanvasSize = function() {\n return _canvasSize;\n };\n\n that.getFrame = function() {\n return video;\n };\n\n return that;\n };\n\n InputStream.createLiveStream = function(video) {\n video.setAttribute(\"autoplay\", true);\n var that = InputStream.createVideoStream(video);\n\n that.ended = function() {\n return false;\n };\n\n return that;\n };\n\n InputStream.createImageStream = function() {\n var that = {};\n var _config = null;\n\n var width = 0,\n height = 0,\n frameIdx = 0,\n paused = true,\n loaded = false,\n imgArray = null,\n size = 0,\n offset = 1,\n baseUrl = null,\n ended = false,\n calculatedWidth,\n calculatedHeight,\n _eventNames = ['canrecord', 'ended'],\n _eventHandlers = {},\n _topRight = {x: 0, y: 0},\n _canvasSize = {x: 0, y: 0};\n\n function loadImages() {\n loaded = false;\n ImageLoader.load(baseUrl, function(imgs) {\n imgArray = imgs;\n width = imgs[0].width;\n height = imgs[0].height;\n calculatedWidth = _config.size ? width/height > 1 ? _config.size : Math.floor((width/height) * _config.size) : width;\n calculatedHeight = _config.size ? width/height > 1 ? Math.floor((height/width) * _config.size) : _config.size : height;\n _canvasSize.x = calculatedWidth;\n _canvasSize.y = calculatedHeight;\n loaded = true;\n frameIdx = 0;\n setTimeout(function() {\n publishEvent(\"canrecord\", []);\n }, 0);\n }, offset, size, _config.sequence);\n }\n\n function publishEvent(eventName, args) {\n var j,\n handlers = _eventHandlers[eventName];\n \n if (handlers && handlers.length > 0) {\n for ( j = 0; j < handlers.length; j++) {\n handlers[j].apply(that, args);\n }\n }\n }\n\n\n that.trigger = publishEvent;\n\n that.getWidth = function() {\n return calculatedWidth;\n };\n\n that.getHeight = function() {\n return calculatedHeight;\n };\n\n that.setWidth = function(width) {\n calculatedWidth = width;\n };\n\n that.setHeight = function(height) {\n calculatedHeight = height;\n };\n\n that.getRealWidth = function() {\n return width;\n };\n\n that.getRealHeight = function() {\n return height;\n };\n\n that.setInputStream = function(stream) {\n _config = stream;\n if (stream.sequence === false) {\n baseUrl = stream.src;\n size = 1;\n } else {\n baseUrl = stream.src;\n size = stream.length;\n }\n loadImages();\n };\n\n that.ended = function() {\n return ended;\n };\n\n that.setAttribute = function() {};\n\n that.getConfig = function() {\n return _config;\n };\n\n that.pause = function() {\n paused = true;\n };\n\n that.play = function() {\n paused = false;\n };\n\n that.setCurrentTime = function(time) {\n frameIdx = time;\n };\n\n that.addEventListener = function(event, f) {\n if (_eventNames.indexOf(event) !== -1) {\n if (!_eventHandlers[event]) {\n _eventHandlers[event] = [];\n }\n _eventHandlers[event].push(f);\n }\n };\n\n that.setTopRight = function(topRight) {\n _topRight.x = topRight.x;\n _topRight.y = topRight.y;\n };\n\n that.getTopRight = function() {\n return _topRight;\n };\n\n that.setCanvasSize = function(size) {\n _canvasSize.x = size.x;\n _canvasSize.y = size.y;\n };\n\n that.getCanvasSize = function() {\n return _canvasSize;\n };\n\n that.getFrame = function() {\n var frame;\n \n if (!loaded){\n return null;\n }\n if (!paused) {\n frame = imgArray[frameIdx];\n if (frameIdx < (size - 1)) {\n frameIdx++;\n } else {\n setTimeout(function() {\n ended = true;\n publishEvent(\"ended\", []);\n }, 0);\n }\n }\n return frame;\n };\n\n return that;\n };\n\n return (InputStream);\n});\n\n/*\n * typedefs.js\n * Normalizes browser-specific prefixes\n */\n\nglMatrixArrayType = Float32Array;\nif (typeof window !== 'undefined') {\n window.requestAnimFrame = (function () {\n return window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n function (/* function FrameRequestCallback */ callback, /* DOMElement Element */ element) {\n window.setTimeout(callback, 1000 / 60);\n };\n })();\n\n navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\n window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n}\nMath.imul = Math.imul || function(a, b) {\n var ah = (a >>> 16) & 0xffff,\n al = a & 0xffff,\n bh = (b >>> 16) & 0xffff,\n bl = b & 0xffff;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0);\n};\ndefine(\"typedefs\", (function (global) {\n return function () {\n var ret, fn;\n return ret || global.typedefs;\n };\n}(this)));\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('subImage',[\"typedefs\"], function() {\n \"use strict\";\n\n /**\n * Construct representing a part of another {ImageWrapper}. Shares data\n * between the parent and the child.\n * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner)\n * @param size {ImageRef} The size of the resulting image\n * @param I {ImageWrapper} The {ImageWrapper} to share from\n * @returns {SubImage} A shared part of the original image\n */\n function SubImage(from, size, I) {\n if (!I) {\n I = {\n data : null,\n size : size\n };\n }\n this.data = I.data;\n this.originalSize = I.size;\n this.I = I;\n\n this.from = from;\n this.size = size;\n }\n\n /**\n * Displays the {SubImage} in a given canvas\n * @param canvas {Canvas} The canvas element to write to\n * @param scale {Number} Scale which is applied to each pixel-value\n */\n SubImage.prototype.show = function(canvas, scale) {\n var ctx,\n frame,\n data,\n current,\n y,\n x,\n pixel;\n \n if (!scale) {\n scale = 1.0;\n }\n ctx = canvas.getContext('2d');\n canvas.width = this.size.x;\n canvas.height = this.size.y;\n frame = ctx.getImageData(0, 0, canvas.width, canvas.height);\n data = frame.data;\n current = 0;\n for (y = 0; y < this.size.y; y++) {\n for (x = 0; x < this.size.x; x++) {\n pixel = y * this.size.x + x;\n current = this.get(x, y) * scale;\n data[pixel * 4 + 0] = current;\n data[pixel * 4 + 1] = current;\n data[pixel * 4 + 2] = current;\n data[pixel * 4 + 3] = 255;\n }\n }\n frame.data = data;\n ctx.putImageData(frame, 0, 0);\n };\n\n /**\n * Retrieves a given pixel position from the {SubImage}\n * @param x {Number} The x-position\n * @param y {Number} The y-position\n * @returns {Number} The grayscale value at the pixel-position\n */\n SubImage.prototype.get = function(x, y) {\n return this.data[(this.from.y + y) * this.originalSize.x + this.from.x + x];\n };\n\n /**\n * Updates the underlying data from a given {ImageWrapper}\n * @param image {ImageWrapper} The updated image\n */\n SubImage.prototype.updateData = function(image) {\n this.originalSize = image.size;\n this.data = image.data;\n };\n\n /**\n * Updates the position of the shared area\n * @param from {x,y} The new location\n * @returns {SubImage} returns {this} for possible chaining\n */\n SubImage.prototype.updateFrom = function(from) {\n this.from = from;\n return this;\n };\n \n return (SubImage);\n}); \n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define, vec2 */\n\ndefine('cluster',[],function() {\n \"use strict\";\n \n /**\n * Creates a cluster for grouping similar orientations of datapoints \n */\n var Cluster = {\n create : function(point, threshold) {\n var points = [], center = {\n rad : 0,\n vec : vec2.create([0, 0])\n }, pointMap = {};\n\n function init() {\n add(point);\n updateCenter();\n }\n\n function add(point) {\n pointMap[point.id] = point;\n points.push(point);\n }\n\n function updateCenter() {\n var i, sum = 0;\n for ( i = 0; i < points.length; i++) {\n sum += points[i].rad;\n }\n center.rad = sum / points.length;\n center.vec = vec2.create([Math.cos(center.rad), Math.sin(center.rad)]);\n }\n\n init();\n\n return {\n add : function(point) {\n if (!pointMap[point.id]) {\n add(point);\n updateCenter();\n }\n },\n fits : function(point) {\n // check cosine similarity to center-angle\n var similarity = Math.abs(vec2.dot(point.point.vec, center.vec));\n if (similarity > threshold) {\n return true;\n }\n return false;\n },\n getPoints : function() {\n return points;\n },\n getCenter : function() {\n return center;\n }\n };\n },\n createPoint : function(point, id, property) {\n return {\n rad : point[property],\n point : point,\n id : id\n };\n }\n };\n\n return (Cluster);\n});\n\n/* \n * glMatrix.js - High performance matrix and vector operations for WebGL\n * version 0.9.6\n */\n \n/*\n * Copyright (c) 2011 Brandon Jones\n *\n * This software is provided 'as-is', without any express or implied\n * warranty. In no event will the authors be held liable for any damages\n * arising from the use of this software.\n *\n * Permission is granted to anyone to use this software for any purpose,\n * including commercial applications, and to alter it and redistribute it\n * freely, subject to the following restrictions:\n *\n * 1. The origin of this software must not be misrepresented; you must not\n * claim that you wrote the original software. If you use this software\n * in a product, an acknowledgment in the product documentation would be\n * appreciated but is not required.\n *\n * 2. Altered source versions must be plainly marked as such, and must not\n * be misrepresented as being the original software.\n *\n * 3. This notice may not be removed or altered from any source\n * distribution.\n */\n\n\n\n/*\n * vec3 - 3 Dimensional Vector\n */\nvar vec3 = {};\n\n/*\n * vec3.create\n * Creates a new instance of a vec3 using the default array type\n * Any javascript array containing at least 3 numeric elements can serve as a vec3\n *\n * Params:\n * vec - Optional, vec3 containing values to initialize with\n *\n * Returns:\n * New vec3\n */\nvec3.create = function(vec) {\t\n\tvar dest;\n\tif(vec) {\n\t\tdest = new glMatrixArrayType(3);\n\t\tdest[0] = vec[0];\n\t\tdest[1] = vec[1];\n\t\tdest[2] = vec[2];\n\t} else {\n\t\tif(glMatrixArrayType === Array)\n\t\t\tdest = new glMatrixArrayType([0,0,0]);\n\t\telse\n\t\t\tdest = new glMatrixArrayType(3);\n\t}\n\t\n\treturn dest;\n};\n\n/*\n * vec3.set\n * Copies the values of one vec3 to another\n *\n * Params:\n * vec - vec3 containing values to copy\n * dest - vec3 receiving copied values\n *\n * Returns:\n * dest\n */\nvec3.set = function(vec, dest) {\n\tdest[0] = vec[0];\n\tdest[1] = vec[1];\n\tdest[2] = vec[2];\n\t\n\treturn dest;\n};\n\n/*\n * vec3.add\n * Performs a vector addition\n *\n * Params:\n * vec - vec3, first operand\n * vec2 - vec3, second operand\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nvec3.add = function(vec, vec2, dest) {\n\tif(!dest || vec == dest) {\n\t\tvec[0] += vec2[0];\n\t\tvec[1] += vec2[1];\n\t\tvec[2] += vec2[2];\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0] + vec2[0];\n\tdest[1] = vec[1] + vec2[1];\n\tdest[2] = vec[2] + vec2[2];\n\treturn dest;\n};\n\n/*\n * vec3.subtract\n * Performs a vector subtraction\n *\n * Params:\n * vec - vec3, first operand\n * vec2 - vec3, second operand\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nvec3.subtract = function(vec, vec2, dest) {\n\tif(!dest || vec == dest) {\n\t\tvec[0] -= vec2[0];\n\t\tvec[1] -= vec2[1];\n\t\tvec[2] -= vec2[2];\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0] - vec2[0];\n\tdest[1] = vec[1] - vec2[1];\n\tdest[2] = vec[2] - vec2[2];\n\treturn dest;\n};\n\n/*\n * vec3.negate\n * Negates the components of a vec3\n *\n * Params:\n * vec - vec3 to negate\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nvec3.negate = function(vec, dest) {\n\tif(!dest) { dest = vec; }\n\t\n\tdest[0] = -vec[0];\n\tdest[1] = -vec[1];\n\tdest[2] = -vec[2];\n\treturn dest;\n};\n\n/*\n * vec3.scale\n * Multiplies the components of a vec3 by a scalar value\n *\n * Params:\n * vec - vec3 to scale\n * val - Numeric value to scale by\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nvec3.scale = function(vec, val, dest) {\n\tif(!dest || vec == dest) {\n\t\tvec[0] *= val;\n\t\tvec[1] *= val;\n\t\tvec[2] *= val;\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0]*val;\n\tdest[1] = vec[1]*val;\n\tdest[2] = vec[2]*val;\n\treturn dest;\n};\n\n/*\n * vec3.normalize\n * Generates a unit vector of the same direction as the provided vec3\n * If vector length is 0, returns [0, 0, 0]\n *\n * Params:\n * vec - vec3 to normalize\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nvec3.normalize = function(vec, dest) {\n\tif(!dest) { dest = vec; }\n\t\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\tvar len = Math.sqrt(x*x + y*y + z*z);\n\t\n\tif (!len) {\n\t\tdest[0] = 0;\n\t\tdest[1] = 0;\n\t\tdest[2] = 0;\n\t\treturn dest;\n\t} else if (len == 1) {\n\t\tdest[0] = x;\n\t\tdest[1] = y;\n\t\tdest[2] = z;\n\t\treturn dest;\n\t}\n\t\n\tlen = 1 / len;\n\tdest[0] = x*len;\n\tdest[1] = y*len;\n\tdest[2] = z*len;\n\treturn dest;\n};\n\n/*\n * vec3.cross\n * Generates the cross product of two vec3s\n *\n * Params:\n * vec - vec3, first operand\n * vec2 - vec3, second operand\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nvec3.cross = function(vec, vec2, dest){\n\tif(!dest) { dest = vec; }\n\t\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\tvar x2 = vec2[0], y2 = vec2[1], z2 = vec2[2];\n\t\n\tdest[0] = y*z2 - z*y2;\n\tdest[1] = z*x2 - x*z2;\n\tdest[2] = x*y2 - y*x2;\n\treturn dest;\n};\n\n/*\n * vec3.length\n * Caclulates the length of a vec3\n *\n * Params:\n * vec - vec3 to calculate length of\n *\n * Returns:\n * Length of vec\n */\nvec3.length = function(vec){\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\treturn Math.sqrt(x*x + y*y + z*z);\n};\n\n/*\n * vec3.dot\n * Caclulates the dot product of two vec3s\n *\n * Params:\n * vec - vec3, first operand\n * vec2 - vec3, second operand\n *\n * Returns:\n * Dot product of vec and vec2\n */\nvec3.dot = function(vec, vec2){\n\treturn vec[0]*vec2[0] + vec[1]*vec2[1] + vec[2]*vec2[2];\n};\n\n/*\n * vec3.direction\n * Generates a unit vector pointing from one vector to another\n *\n * Params:\n * vec - origin vec3\n * vec2 - vec3 to point to\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nvec3.direction = function(vec, vec2, dest) {\n\tif(!dest) { dest = vec; }\n\t\n\tvar x = vec[0] - vec2[0];\n\tvar y = vec[1] - vec2[1];\n\tvar z = vec[2] - vec2[2];\n\t\n\tvar len = Math.sqrt(x*x + y*y + z*z);\n\tif (!len) { \n\t\tdest[0] = 0; \n\t\tdest[1] = 0; \n\t\tdest[2] = 0;\n\t\treturn dest; \n\t}\n\t\n\tlen = 1 / len;\n\tdest[0] = x * len; \n\tdest[1] = y * len; \n\tdest[2] = z * len;\n\treturn dest; \n};\n\n/*\n * vec3.lerp\n * Performs a linear interpolation between two vec3\n *\n * Params:\n * vec - vec3, first vector\n * vec2 - vec3, second vector\n * lerp - interpolation amount between the two inputs\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nvec3.lerp = function(vec, vec2, lerp, dest){\n if(!dest) { dest = vec; }\n \n dest[0] = vec[0] + lerp * (vec2[0] - vec[0]);\n dest[1] = vec[1] + lerp * (vec2[1] - vec[1]);\n dest[2] = vec[2] + lerp * (vec2[2] - vec[2]);\n \n return dest;\n};\n\n/*\n * vec3.str\n * Returns a string representation of a vector\n *\n * Params:\n * vec - vec3 to represent as a string\n *\n * Returns:\n * string representation of vec\n */\nvec3.str = function(vec) {\n\treturn '[' + vec[0] + ', ' + vec[1] + ', ' + vec[2] + ']'; \n};\n\n/*\n * mat3 - 3x3 Matrix\n */\nvar mat3 = {};\n\n/*\n * mat3.create\n * Creates a new instance of a mat3 using the default array type\n * Any javascript array containing at least 9 numeric elements can serve as a mat3\n *\n * Params:\n * mat - Optional, mat3 containing values to initialize with\n *\n * Returns:\n * New mat3\n */\nmat3.create = function(mat) {\n\tvar dest;\n\t\n\tif(mat) {\n\t\tdest = new glMatrixArrayType(9);\n\t\tdest[0] = mat[0];\n\t\tdest[1] = mat[1];\n\t\tdest[2] = mat[2];\n\t\tdest[3] = mat[3];\n\t\tdest[4] = mat[4];\n\t\tdest[5] = mat[5];\n\t\tdest[6] = mat[6];\n\t\tdest[7] = mat[7];\n\t\tdest[8] = mat[8];\n\t} else {\n\t\tif(glMatrixArrayType === Array)\n\t\t\tdest = new glMatrixArrayType([0,0,0,0,0,0,0,0,0]);\n\t\telse\n\t\t\tdest = new glMatrixArrayType(9);\n\t}\n\t\n\treturn dest;\n};\n\n/*\n * mat3.set\n * Copies the values of one mat3 to another\n *\n * Params:\n * mat - mat3 containing values to copy\n * dest - mat3 receiving copied values\n *\n * Returns:\n * dest\n */\nmat3.set = function(mat, dest) {\n\tdest[0] = mat[0];\n\tdest[1] = mat[1];\n\tdest[2] = mat[2];\n\tdest[3] = mat[3];\n\tdest[4] = mat[4];\n\tdest[5] = mat[5];\n\tdest[6] = mat[6];\n\tdest[7] = mat[7];\n\tdest[8] = mat[8];\n\treturn dest;\n};\n\n/*\n * mat3.identity\n * Sets a mat3 to an identity matrix\n *\n * Params:\n * dest - mat3 to set\n *\n * Returns:\n * dest\n */\nmat3.identity = function(dest) {\n\tdest[0] = 1;\n\tdest[1] = 0;\n\tdest[2] = 0;\n\tdest[3] = 0;\n\tdest[4] = 1;\n\tdest[5] = 0;\n\tdest[6] = 0;\n\tdest[7] = 0;\n\tdest[8] = 1;\n\treturn dest;\n};\n\n/*\n * mat4.transpose\n * Transposes a mat3 (flips the values over the diagonal)\n *\n * Params:\n * mat - mat3 to transpose\n * dest - Optional, mat3 receiving transposed values. If not specified result is written to mat\n *\n * Returns:\n * dest is specified, mat otherwise\n */\nmat3.transpose = function(mat, dest) {\n\t// If we are transposing ourselves we can skip a few steps but have to cache some values\n\tif(!dest || mat == dest) { \n\t\tvar a01 = mat[1], a02 = mat[2];\n\t\tvar a12 = mat[5];\n\t\t\n mat[1] = mat[3];\n mat[2] = mat[6];\n mat[3] = a01;\n mat[5] = mat[7];\n mat[6] = a02;\n mat[7] = a12;\n\t\treturn mat;\n\t}\n\t\n\tdest[0] = mat[0];\n\tdest[1] = mat[3];\n\tdest[2] = mat[6];\n\tdest[3] = mat[1];\n\tdest[4] = mat[4];\n\tdest[5] = mat[7];\n\tdest[6] = mat[2];\n\tdest[7] = mat[5];\n\tdest[8] = mat[8];\n\treturn dest;\n};\n\n/*\n * mat3.toMat4\n * Copies the elements of a mat3 into the upper 3x3 elements of a mat4\n *\n * Params:\n * mat - mat3 containing values to copy\n * dest - Optional, mat4 receiving copied values\n *\n * Returns:\n * dest if specified, a new mat4 otherwise\n */\nmat3.toMat4 = function(mat, dest) {\n\tif(!dest) { dest = mat4.create(); }\n\t\n\tdest[0] = mat[0];\n\tdest[1] = mat[1];\n\tdest[2] = mat[2];\n\tdest[3] = 0;\n\n\tdest[4] = mat[3];\n\tdest[5] = mat[4];\n\tdest[6] = mat[5];\n\tdest[7] = 0;\n\n\tdest[8] = mat[6];\n\tdest[9] = mat[7];\n\tdest[10] = mat[8];\n\tdest[11] = 0;\n\n\tdest[12] = 0;\n\tdest[13] = 0;\n\tdest[14] = 0;\n\tdest[15] = 1;\n\t\n\treturn dest;\n};\n\n/*\n * mat3.str\n * Returns a string representation of a mat3\n *\n * Params:\n * mat - mat3 to represent as a string\n *\n * Returns:\n * string representation of mat\n */\nmat3.str = function(mat) {\n\treturn '[' + mat[0] + ', ' + mat[1] + ', ' + mat[2] + \n\t\t', ' + mat[3] + ', '+ mat[4] + ', ' + mat[5] + \n\t\t', ' + mat[6] + ', ' + mat[7] + ', '+ mat[8] + ']';\n};\n\n/*\n * mat4 - 4x4 Matrix\n */\nvar mat4 = {};\n\n/*\n * mat4.create\n * Creates a new instance of a mat4 using the default array type\n * Any javascript array containing at least 16 numeric elements can serve as a mat4\n *\n * Params:\n * mat - Optional, mat4 containing values to initialize with\n *\n * Returns:\n * New mat4\n */\nmat4.create = function(mat) {\n\tvar dest;\n\t\n\tif(mat) {\n\t\tdest = new glMatrixArrayType(16);\n\t\tdest[0] = mat[0];\n\t\tdest[1] = mat[1];\n\t\tdest[2] = mat[2];\n\t\tdest[3] = mat[3];\n\t\tdest[4] = mat[4];\n\t\tdest[5] = mat[5];\n\t\tdest[6] = mat[6];\n\t\tdest[7] = mat[7];\n\t\tdest[8] = mat[8];\n\t\tdest[9] = mat[9];\n\t\tdest[10] = mat[10];\n\t\tdest[11] = mat[11];\n\t\tdest[12] = mat[12];\n\t\tdest[13] = mat[13];\n\t\tdest[14] = mat[14];\n\t\tdest[15] = mat[15];\n\t} else {\n\t\tif(glMatrixArrayType === Array)\n\t\t\tdest = new glMatrixArrayType([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);\n\t\telse\n\t\t\tdest = new glMatrixArrayType(16);\n\t}\n\t\n\treturn dest;\n};\n\n/*\n * mat4.set\n * Copies the values of one mat4 to another\n *\n * Params:\n * mat - mat4 containing values to copy\n * dest - mat4 receiving copied values\n *\n * Returns:\n * dest\n */\nmat4.set = function(mat, dest) {\n\tdest[0] = mat[0];\n\tdest[1] = mat[1];\n\tdest[2] = mat[2];\n\tdest[3] = mat[3];\n\tdest[4] = mat[4];\n\tdest[5] = mat[5];\n\tdest[6] = mat[6];\n\tdest[7] = mat[7];\n\tdest[8] = mat[8];\n\tdest[9] = mat[9];\n\tdest[10] = mat[10];\n\tdest[11] = mat[11];\n\tdest[12] = mat[12];\n\tdest[13] = mat[13];\n\tdest[14] = mat[14];\n\tdest[15] = mat[15];\n\treturn dest;\n};\n\n/*\n * mat4.identity\n * Sets a mat4 to an identity matrix\n *\n * Params:\n * dest - mat4 to set\n *\n * Returns:\n * dest\n */\nmat4.identity = function(dest) {\n\tdest[0] = 1;\n\tdest[1] = 0;\n\tdest[2] = 0;\n\tdest[3] = 0;\n\tdest[4] = 0;\n\tdest[5] = 1;\n\tdest[6] = 0;\n\tdest[7] = 0;\n\tdest[8] = 0;\n\tdest[9] = 0;\n\tdest[10] = 1;\n\tdest[11] = 0;\n\tdest[12] = 0;\n\tdest[13] = 0;\n\tdest[14] = 0;\n\tdest[15] = 1;\n\treturn dest;\n};\n\n/*\n * mat4.transpose\n * Transposes a mat4 (flips the values over the diagonal)\n *\n * Params:\n * mat - mat4 to transpose\n * dest - Optional, mat4 receiving transposed values. If not specified result is written to mat\n *\n * Returns:\n * dest is specified, mat otherwise\n */\nmat4.transpose = function(mat, dest) {\n\t// If we are transposing ourselves we can skip a few steps but have to cache some values\n\tif(!dest || mat == dest) { \n\t\tvar a01 = mat[1], a02 = mat[2], a03 = mat[3];\n\t\tvar a12 = mat[6], a13 = mat[7];\n\t\tvar a23 = mat[11];\n\t\t\n\t\tmat[1] = mat[4];\n\t\tmat[2] = mat[8];\n\t\tmat[3] = mat[12];\n\t\tmat[4] = a01;\n\t\tmat[6] = mat[9];\n\t\tmat[7] = mat[13];\n\t\tmat[8] = a02;\n\t\tmat[9] = a12;\n\t\tmat[11] = mat[14];\n\t\tmat[12] = a03;\n\t\tmat[13] = a13;\n\t\tmat[14] = a23;\n\t\treturn mat;\n\t}\n\t\n\tdest[0] = mat[0];\n\tdest[1] = mat[4];\n\tdest[2] = mat[8];\n\tdest[3] = mat[12];\n\tdest[4] = mat[1];\n\tdest[5] = mat[5];\n\tdest[6] = mat[9];\n\tdest[7] = mat[13];\n\tdest[8] = mat[2];\n\tdest[9] = mat[6];\n\tdest[10] = mat[10];\n\tdest[11] = mat[14];\n\tdest[12] = mat[3];\n\tdest[13] = mat[7];\n\tdest[14] = mat[11];\n\tdest[15] = mat[15];\n\treturn dest;\n};\n\n/*\n * mat4.determinant\n * Calculates the determinant of a mat4\n *\n * Params:\n * mat - mat4 to calculate determinant of\n *\n * Returns:\n * determinant of mat\n */\nmat4.determinant = function(mat) {\n\t// Cache the matrix values (makes for huge speed increases!)\n\tvar a00 = mat[0], a01 = mat[1], a02 = mat[2], a03 = mat[3];\n\tvar a10 = mat[4], a11 = mat[5], a12 = mat[6], a13 = mat[7];\n\tvar a20 = mat[8], a21 = mat[9], a22 = mat[10], a23 = mat[11];\n\tvar a30 = mat[12], a31 = mat[13], a32 = mat[14], a33 = mat[15];\n\n\treturn\ta30*a21*a12*a03 - a20*a31*a12*a03 - a30*a11*a22*a03 + a10*a31*a22*a03 +\n\t\t\ta20*a11*a32*a03 - a10*a21*a32*a03 - a30*a21*a02*a13 + a20*a31*a02*a13 +\n\t\t\ta30*a01*a22*a13 - a00*a31*a22*a13 - a20*a01*a32*a13 + a00*a21*a32*a13 +\n\t\t\ta30*a11*a02*a23 - a10*a31*a02*a23 - a30*a01*a12*a23 + a00*a31*a12*a23 +\n\t\t\ta10*a01*a32*a23 - a00*a11*a32*a23 - a20*a11*a02*a33 + a10*a21*a02*a33 +\n\t\t\ta20*a01*a12*a33 - a00*a21*a12*a33 - a10*a01*a22*a33 + a00*a11*a22*a33;\n};\n\n/*\n * mat4.inverse\n * Calculates the inverse matrix of a mat4\n *\n * Params:\n * mat - mat4 to calculate inverse of\n * dest - Optional, mat4 receiving inverse matrix. If not specified result is written to mat\n *\n * Returns:\n * dest is specified, mat otherwise\n */\nmat4.inverse = function(mat, dest) {\n\tif(!dest) { dest = mat; }\n\t\n\t// Cache the matrix values (makes for huge speed increases!)\n\tvar a00 = mat[0], a01 = mat[1], a02 = mat[2], a03 = mat[3];\n\tvar a10 = mat[4], a11 = mat[5], a12 = mat[6], a13 = mat[7];\n\tvar a20 = mat[8], a21 = mat[9], a22 = mat[10], a23 = mat[11];\n\tvar a30 = mat[12], a31 = mat[13], a32 = mat[14], a33 = mat[15];\n\t\n\tvar b00 = a00*a11 - a01*a10;\n\tvar b01 = a00*a12 - a02*a10;\n\tvar b02 = a00*a13 - a03*a10;\n\tvar b03 = a01*a12 - a02*a11;\n\tvar b04 = a01*a13 - a03*a11;\n\tvar b05 = a02*a13 - a03*a12;\n\tvar b06 = a20*a31 - a21*a30;\n\tvar b07 = a20*a32 - a22*a30;\n\tvar b08 = a20*a33 - a23*a30;\n\tvar b09 = a21*a32 - a22*a31;\n\tvar b10 = a21*a33 - a23*a31;\n\tvar b11 = a22*a33 - a23*a32;\n\t\n\t// Calculate the determinant (inlined to avoid double-caching)\n\tvar invDet = 1/(b00*b11 - b01*b10 + b02*b09 + b03*b08 - b04*b07 + b05*b06);\n\t\n\tdest[0] = (a11*b11 - a12*b10 + a13*b09)*invDet;\n\tdest[1] = (-a01*b11 + a02*b10 - a03*b09)*invDet;\n\tdest[2] = (a31*b05 - a32*b04 + a33*b03)*invDet;\n\tdest[3] = (-a21*b05 + a22*b04 - a23*b03)*invDet;\n\tdest[4] = (-a10*b11 + a12*b08 - a13*b07)*invDet;\n\tdest[5] = (a00*b11 - a02*b08 + a03*b07)*invDet;\n\tdest[6] = (-a30*b05 + a32*b02 - a33*b01)*invDet;\n\tdest[7] = (a20*b05 - a22*b02 + a23*b01)*invDet;\n\tdest[8] = (a10*b10 - a11*b08 + a13*b06)*invDet;\n\tdest[9] = (-a00*b10 + a01*b08 - a03*b06)*invDet;\n\tdest[10] = (a30*b04 - a31*b02 + a33*b00)*invDet;\n\tdest[11] = (-a20*b04 + a21*b02 - a23*b00)*invDet;\n\tdest[12] = (-a10*b09 + a11*b07 - a12*b06)*invDet;\n\tdest[13] = (a00*b09 - a01*b07 + a02*b06)*invDet;\n\tdest[14] = (-a30*b03 + a31*b01 - a32*b00)*invDet;\n\tdest[15] = (a20*b03 - a21*b01 + a22*b00)*invDet;\n\t\n\treturn dest;\n};\n\n/*\n * mat4.toRotationMat\n * Copies the upper 3x3 elements of a mat4 into another mat4\n *\n * Params:\n * mat - mat4 containing values to copy\n * dest - Optional, mat4 receiving copied values\n *\n * Returns:\n * dest is specified, a new mat4 otherwise\n */\nmat4.toRotationMat = function(mat, dest) {\n\tif(!dest) { dest = mat4.create(); }\n\t\n\tdest[0] = mat[0];\n\tdest[1] = mat[1];\n\tdest[2] = mat[2];\n\tdest[3] = mat[3];\n\tdest[4] = mat[4];\n\tdest[5] = mat[5];\n\tdest[6] = mat[6];\n\tdest[7] = mat[7];\n\tdest[8] = mat[8];\n\tdest[9] = mat[9];\n\tdest[10] = mat[10];\n\tdest[11] = mat[11];\n\tdest[12] = 0;\n\tdest[13] = 0;\n\tdest[14] = 0;\n\tdest[15] = 1;\n\t\n\treturn dest;\n};\n\n/*\n * mat4.toMat3\n * Copies the upper 3x3 elements of a mat4 into a mat3\n *\n * Params:\n * mat - mat4 containing values to copy\n * dest - Optional, mat3 receiving copied values\n *\n * Returns:\n * dest is specified, a new mat3 otherwise\n */\nmat4.toMat3 = function(mat, dest) {\n\tif(!dest) { dest = mat3.create(); }\n\t\n\tdest[0] = mat[0];\n\tdest[1] = mat[1];\n\tdest[2] = mat[2];\n\tdest[3] = mat[4];\n\tdest[4] = mat[5];\n\tdest[5] = mat[6];\n\tdest[6] = mat[8];\n\tdest[7] = mat[9];\n\tdest[8] = mat[10];\n\t\n\treturn dest;\n};\n\n/*\n * mat4.toInverseMat3\n * Calculates the inverse of the upper 3x3 elements of a mat4 and copies the result into a mat3\n * The resulting matrix is useful for calculating transformed normals\n *\n * Params:\n * mat - mat4 containing values to invert and copy\n * dest - Optional, mat3 receiving values\n *\n * Returns:\n * dest is specified, a new mat3 otherwise\n */\nmat4.toInverseMat3 = function(mat, dest) {\n\t// Cache the matrix values (makes for huge speed increases!)\n\tvar a00 = mat[0], a01 = mat[1], a02 = mat[2];\n\tvar a10 = mat[4], a11 = mat[5], a12 = mat[6];\n\tvar a20 = mat[8], a21 = mat[9], a22 = mat[10];\n\t\n\tvar b01 = a22*a11-a12*a21;\n\tvar b11 = -a22*a10+a12*a20;\n\tvar b21 = a21*a10-a11*a20;\n\t\t\n\tvar d = a00*b01 + a01*b11 + a02*b21;\n\tif (!d) { return null; }\n\tvar id = 1/d;\n\t\n\tif(!dest) { dest = mat3.create(); }\n\t\n\tdest[0] = b01*id;\n\tdest[1] = (-a22*a01 + a02*a21)*id;\n\tdest[2] = (a12*a01 - a02*a11)*id;\n\tdest[3] = b11*id;\n\tdest[4] = (a22*a00 - a02*a20)*id;\n\tdest[5] = (-a12*a00 + a02*a10)*id;\n\tdest[6] = b21*id;\n\tdest[7] = (-a21*a00 + a01*a20)*id;\n\tdest[8] = (a11*a00 - a01*a10)*id;\n\t\n\treturn dest;\n};\n\n/*\n * mat4.multiply\n * Performs a matrix multiplication\n *\n * Params:\n * mat - mat4, first operand\n * mat2 - mat4, second operand\n * dest - Optional, mat4 receiving operation result. If not specified result is written to mat\n *\n * Returns:\n * dest if specified, mat otherwise\n */\nmat4.multiply = function(mat, mat2, dest) {\n\tif(!dest) { dest = mat; }\n\t\n\t// Cache the matrix values (makes for huge speed increases!)\n\tvar a00 = mat[0], a01 = mat[1], a02 = mat[2], a03 = mat[3];\n\tvar a10 = mat[4], a11 = mat[5], a12 = mat[6], a13 = mat[7];\n\tvar a20 = mat[8], a21 = mat[9], a22 = mat[10], a23 = mat[11];\n\tvar a30 = mat[12], a31 = mat[13], a32 = mat[14], a33 = mat[15];\n\t\n\tvar b00 = mat2[0], b01 = mat2[1], b02 = mat2[2], b03 = mat2[3];\n\tvar b10 = mat2[4], b11 = mat2[5], b12 = mat2[6], b13 = mat2[7];\n\tvar b20 = mat2[8], b21 = mat2[9], b22 = mat2[10], b23 = mat2[11];\n\tvar b30 = mat2[12], b31 = mat2[13], b32 = mat2[14], b33 = mat2[15];\n\t\n\tdest[0] = b00*a00 + b01*a10 + b02*a20 + b03*a30;\n\tdest[1] = b00*a01 + b01*a11 + b02*a21 + b03*a31;\n\tdest[2] = b00*a02 + b01*a12 + b02*a22 + b03*a32;\n\tdest[3] = b00*a03 + b01*a13 + b02*a23 + b03*a33;\n\tdest[4] = b10*a00 + b11*a10 + b12*a20 + b13*a30;\n\tdest[5] = b10*a01 + b11*a11 + b12*a21 + b13*a31;\n\tdest[6] = b10*a02 + b11*a12 + b12*a22 + b13*a32;\n\tdest[7] = b10*a03 + b11*a13 + b12*a23 + b13*a33;\n\tdest[8] = b20*a00 + b21*a10 + b22*a20 + b23*a30;\n\tdest[9] = b20*a01 + b21*a11 + b22*a21 + b23*a31;\n\tdest[10] = b20*a02 + b21*a12 + b22*a22 + b23*a32;\n\tdest[11] = b20*a03 + b21*a13 + b22*a23 + b23*a33;\n\tdest[12] = b30*a00 + b31*a10 + b32*a20 + b33*a30;\n\tdest[13] = b30*a01 + b31*a11 + b32*a21 + b33*a31;\n\tdest[14] = b30*a02 + b31*a12 + b32*a22 + b33*a32;\n\tdest[15] = b30*a03 + b31*a13 + b32*a23 + b33*a33;\n\t\n\treturn dest;\n};\n\n/*\n * mat4.multiplyVec3\n * Transforms a vec3 with the given matrix\n * 4th vector component is implicitly '1'\n *\n * Params:\n * mat - mat4 to transform the vector with\n * vec - vec3 to transform\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nmat4.multiplyVec3 = function(mat, vec, dest) {\n\tif(!dest) { dest = vec; }\n\t\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\t\n\tdest[0] = mat[0]*x + mat[4]*y + mat[8]*z + mat[12];\n\tdest[1] = mat[1]*x + mat[5]*y + mat[9]*z + mat[13];\n\tdest[2] = mat[2]*x + mat[6]*y + mat[10]*z + mat[14];\n\t\n\treturn dest;\n};\n\n/*\n * mat4.multiplyVec4\n * Transforms a vec4 with the given matrix\n *\n * Params:\n * mat - mat4 to transform the vector with\n * vec - vec4 to transform\n * dest - Optional, vec4 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nmat4.multiplyVec4 = function(mat, vec, dest) {\n\tif(!dest) { dest = vec; }\n\t\n\tvar x = vec[0], y = vec[1], z = vec[2], w = vec[3];\n\t\n\tdest[0] = mat[0]*x + mat[4]*y + mat[8]*z + mat[12]*w;\n\tdest[1] = mat[1]*x + mat[5]*y + mat[9]*z + mat[13]*w;\n\tdest[2] = mat[2]*x + mat[6]*y + mat[10]*z + mat[14]*w;\n\tdest[3] = mat[3]*x + mat[7]*y + mat[11]*z + mat[15]*w;\n\t\n\treturn dest;\n};\n\n/*\n * mat4.translate\n * Translates a matrix by the given vector\n *\n * Params:\n * mat - mat4 to translate\n * vec - vec3 specifying the translation\n * dest - Optional, mat4 receiving operation result. If not specified result is written to mat\n *\n * Returns:\n * dest if specified, mat otherwise\n */\nmat4.translate = function(mat, vec, dest) {\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\t\n\tif(!dest || mat == dest) {\n\t\tmat[12] = mat[0]*x + mat[4]*y + mat[8]*z + mat[12];\n\t\tmat[13] = mat[1]*x + mat[5]*y + mat[9]*z + mat[13];\n\t\tmat[14] = mat[2]*x + mat[6]*y + mat[10]*z + mat[14];\n\t\tmat[15] = mat[3]*x + mat[7]*y + mat[11]*z + mat[15];\n\t\treturn mat;\n\t}\n\t\n\tvar a00 = mat[0], a01 = mat[1], a02 = mat[2], a03 = mat[3];\n\tvar a10 = mat[4], a11 = mat[5], a12 = mat[6], a13 = mat[7];\n\tvar a20 = mat[8], a21 = mat[9], a22 = mat[10], a23 = mat[11];\n\t\n\tdest[0] = a00;\n\tdest[1] = a01;\n\tdest[2] = a02;\n\tdest[3] = a03;\n\tdest[4] = a10;\n\tdest[5] = a11;\n\tdest[6] = a12;\n\tdest[7] = a13;\n\tdest[8] = a20;\n\tdest[9] = a21;\n\tdest[10] = a22;\n\tdest[11] = a23;\n\t\n\tdest[12] = a00*x + a10*y + a20*z + mat[12];\n\tdest[13] = a01*x + a11*y + a21*z + mat[13];\n\tdest[14] = a02*x + a12*y + a22*z + mat[14];\n\tdest[15] = a03*x + a13*y + a23*z + mat[15];\n\treturn dest;\n};\n\n/*\n * mat4.scale\n * Scales a matrix by the given vector\n *\n * Params:\n * mat - mat4 to scale\n * vec - vec3 specifying the scale for each axis\n * dest - Optional, mat4 receiving operation result. If not specified result is written to mat\n *\n * Returns:\n * dest if specified, mat otherwise\n */\nmat4.scale = function(mat, vec, dest) {\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\t\n\tif(!dest || mat == dest) {\n\t\tmat[0] *= x;\n\t\tmat[1] *= x;\n\t\tmat[2] *= x;\n\t\tmat[3] *= x;\n\t\tmat[4] *= y;\n\t\tmat[5] *= y;\n\t\tmat[6] *= y;\n\t\tmat[7] *= y;\n\t\tmat[8] *= z;\n\t\tmat[9] *= z;\n\t\tmat[10] *= z;\n\t\tmat[11] *= z;\n\t\treturn mat;\n\t}\n\t\n\tdest[0] = mat[0]*x;\n\tdest[1] = mat[1]*x;\n\tdest[2] = mat[2]*x;\n\tdest[3] = mat[3]*x;\n\tdest[4] = mat[4]*y;\n\tdest[5] = mat[5]*y;\n\tdest[6] = mat[6]*y;\n\tdest[7] = mat[7]*y;\n\tdest[8] = mat[8]*z;\n\tdest[9] = mat[9]*z;\n\tdest[10] = mat[10]*z;\n\tdest[11] = mat[11]*z;\n\tdest[12] = mat[12];\n\tdest[13] = mat[13];\n\tdest[14] = mat[14];\n\tdest[15] = mat[15];\n\treturn dest;\n};\n\n/*\n * mat4.rotate\n * Rotates a matrix by the given angle around the specified axis\n * If rotating around a primary axis (X,Y,Z) one of the specialized rotation functions should be used instead for performance\n *\n * Params:\n * mat - mat4 to rotate\n * angle - angle (in radians) to rotate\n * axis - vec3 representing the axis to rotate around \n * dest - Optional, mat4 receiving operation result. If not specified result is written to mat\n *\n * Returns:\n * dest if specified, mat otherwise\n */\nmat4.rotate = function(mat, angle, axis, dest) {\n\tvar x = axis[0], y = axis[1], z = axis[2];\n\tvar len = Math.sqrt(x*x + y*y + z*z);\n\tif (!len) { return null; }\n\tif (len != 1) {\n\t\tlen = 1 / len;\n\t\tx *= len; \n\t\ty *= len; \n\t\tz *= len;\n\t}\n\t\n\tvar s = Math.sin(angle);\n\tvar c = Math.cos(angle);\n\tvar t = 1-c;\n\t\n\t// Cache the matrix values (makes for huge speed increases!)\n\tvar a00 = mat[0], a01 = mat[1], a02 = mat[2], a03 = mat[3];\n\tvar a10 = mat[4], a11 = mat[5], a12 = mat[6], a13 = mat[7];\n\tvar a20 = mat[8], a21 = mat[9], a22 = mat[10], a23 = mat[11];\n\t\n\t// Construct the elements of the rotation matrix\n\tvar b00 = x*x*t + c, b01 = y*x*t + z*s, b02 = z*x*t - y*s;\n\tvar b10 = x*y*t - z*s, b11 = y*y*t + c, b12 = z*y*t + x*s;\n\tvar b20 = x*z*t + y*s, b21 = y*z*t - x*s, b22 = z*z*t + c;\n\t\n\tif(!dest) { \n\t\tdest = mat; \n\t} else if(mat != dest) { // If the source and destination differ, copy the unchanged last row\n\t\tdest[12] = mat[12];\n\t\tdest[13] = mat[13];\n\t\tdest[14] = mat[14];\n\t\tdest[15] = mat[15];\n\t}\n\t\n\t// Perform rotation-specific matrix multiplication\n\tdest[0] = a00*b00 + a10*b01 + a20*b02;\n\tdest[1] = a01*b00 + a11*b01 + a21*b02;\n\tdest[2] = a02*b00 + a12*b01 + a22*b02;\n\tdest[3] = a03*b00 + a13*b01 + a23*b02;\n\t\n\tdest[4] = a00*b10 + a10*b11 + a20*b12;\n\tdest[5] = a01*b10 + a11*b11 + a21*b12;\n\tdest[6] = a02*b10 + a12*b11 + a22*b12;\n\tdest[7] = a03*b10 + a13*b11 + a23*b12;\n\t\n\tdest[8] = a00*b20 + a10*b21 + a20*b22;\n\tdest[9] = a01*b20 + a11*b21 + a21*b22;\n\tdest[10] = a02*b20 + a12*b21 + a22*b22;\n\tdest[11] = a03*b20 + a13*b21 + a23*b22;\n\treturn dest;\n};\n\n/*\n * mat4.rotateX\n * Rotates a matrix by the given angle around the X axis\n *\n * Params:\n * mat - mat4 to rotate\n * angle - angle (in radians) to rotate\n * dest - Optional, mat4 receiving operation result. If not specified result is written to mat\n *\n * Returns:\n * dest if specified, mat otherwise\n */\nmat4.rotateX = function(mat, angle, dest) {\n\tvar s = Math.sin(angle);\n\tvar c = Math.cos(angle);\n\t\n\t// Cache the matrix values (makes for huge speed increases!)\n\tvar a10 = mat[4], a11 = mat[5], a12 = mat[6], a13 = mat[7];\n\tvar a20 = mat[8], a21 = mat[9], a22 = mat[10], a23 = mat[11];\n\n\tif(!dest) { \n\t\tdest = mat; \n\t} else if(mat != dest) { // If the source and destination differ, copy the unchanged rows\n\t\tdest[0] = mat[0];\n\t\tdest[1] = mat[1];\n\t\tdest[2] = mat[2];\n\t\tdest[3] = mat[3];\n\t\t\n\t\tdest[12] = mat[12];\n\t\tdest[13] = mat[13];\n\t\tdest[14] = mat[14];\n\t\tdest[15] = mat[15];\n\t}\n\t\n\t// Perform axis-specific matrix multiplication\n\tdest[4] = a10*c + a20*s;\n\tdest[5] = a11*c + a21*s;\n\tdest[6] = a12*c + a22*s;\n\tdest[7] = a13*c + a23*s;\n\t\n\tdest[8] = a10*-s + a20*c;\n\tdest[9] = a11*-s + a21*c;\n\tdest[10] = a12*-s + a22*c;\n\tdest[11] = a13*-s + a23*c;\n\treturn dest;\n};\n\n/*\n * mat4.rotateY\n * Rotates a matrix by the given angle around the Y axis\n *\n * Params:\n * mat - mat4 to rotate\n * angle - angle (in radians) to rotate\n * dest - Optional, mat4 receiving operation result. If not specified result is written to mat\n *\n * Returns:\n * dest if specified, mat otherwise\n */\nmat4.rotateY = function(mat, angle, dest) {\n\tvar s = Math.sin(angle);\n\tvar c = Math.cos(angle);\n\t\n\t// Cache the matrix values (makes for huge speed increases!)\n\tvar a00 = mat[0], a01 = mat[1], a02 = mat[2], a03 = mat[3];\n\tvar a20 = mat[8], a21 = mat[9], a22 = mat[10], a23 = mat[11];\n\t\n\tif(!dest) { \n\t\tdest = mat; \n\t} else if(mat != dest) { // If the source and destination differ, copy the unchanged rows\n\t\tdest[4] = mat[4];\n\t\tdest[5] = mat[5];\n\t\tdest[6] = mat[6];\n\t\tdest[7] = mat[7];\n\t\t\n\t\tdest[12] = mat[12];\n\t\tdest[13] = mat[13];\n\t\tdest[14] = mat[14];\n\t\tdest[15] = mat[15];\n\t}\n\t\n\t// Perform axis-specific matrix multiplication\n\tdest[0] = a00*c + a20*-s;\n\tdest[1] = a01*c + a21*-s;\n\tdest[2] = a02*c + a22*-s;\n\tdest[3] = a03*c + a23*-s;\n\t\n\tdest[8] = a00*s + a20*c;\n\tdest[9] = a01*s + a21*c;\n\tdest[10] = a02*s + a22*c;\n\tdest[11] = a03*s + a23*c;\n\treturn dest;\n};\n\n/*\n * mat4.rotateZ\n * Rotates a matrix by the given angle around the Z axis\n *\n * Params:\n * mat - mat4 to rotate\n * angle - angle (in radians) to rotate\n * dest - Optional, mat4 receiving operation result. If not specified result is written to mat\n *\n * Returns:\n * dest if specified, mat otherwise\n */\nmat4.rotateZ = function(mat, angle, dest) {\n\tvar s = Math.sin(angle);\n\tvar c = Math.cos(angle);\n\t\n\t// Cache the matrix values (makes for huge speed increases!)\n\tvar a00 = mat[0], a01 = mat[1], a02 = mat[2], a03 = mat[3];\n\tvar a10 = mat[4], a11 = mat[5], a12 = mat[6], a13 = mat[7];\n\t\n\tif(!dest) { \n\t\tdest = mat; \n\t} else if(mat != dest) { // If the source and destination differ, copy the unchanged last row\n\t\tdest[8] = mat[8];\n\t\tdest[9] = mat[9];\n\t\tdest[10] = mat[10];\n\t\tdest[11] = mat[11];\n\t\t\n\t\tdest[12] = mat[12];\n\t\tdest[13] = mat[13];\n\t\tdest[14] = mat[14];\n\t\tdest[15] = mat[15];\n\t}\n\t\n\t// Perform axis-specific matrix multiplication\n\tdest[0] = a00*c + a10*s;\n\tdest[1] = a01*c + a11*s;\n\tdest[2] = a02*c + a12*s;\n\tdest[3] = a03*c + a13*s;\n\t\n\tdest[4] = a00*-s + a10*c;\n\tdest[5] = a01*-s + a11*c;\n\tdest[6] = a02*-s + a12*c;\n\tdest[7] = a03*-s + a13*c;\n\t\n\treturn dest;\n};\n\n/*\n * mat4.frustum\n * Generates a frustum matrix with the given bounds\n *\n * Params:\n * left, right - scalar, left and right bounds of the frustum\n * bottom, top - scalar, bottom and top bounds of the frustum\n * near, far - scalar, near and far bounds of the frustum\n * dest - Optional, mat4 frustum matrix will be written into\n *\n * Returns:\n * dest if specified, a new mat4 otherwise\n */\nmat4.frustum = function(left, right, bottom, top, near, far, dest) {\n\tif(!dest) { dest = mat4.create(); }\n\tvar rl = (right - left);\n\tvar tb = (top - bottom);\n\tvar fn = (far - near);\n\tdest[0] = (near*2) / rl;\n\tdest[1] = 0;\n\tdest[2] = 0;\n\tdest[3] = 0;\n\tdest[4] = 0;\n\tdest[5] = (near*2) / tb;\n\tdest[6] = 0;\n\tdest[7] = 0;\n\tdest[8] = (right + left) / rl;\n\tdest[9] = (top + bottom) / tb;\n\tdest[10] = -(far + near) / fn;\n\tdest[11] = -1;\n\tdest[12] = 0;\n\tdest[13] = 0;\n\tdest[14] = -(far*near*2) / fn;\n\tdest[15] = 0;\n\treturn dest;\n};\n\n/*\n * mat4.perspective\n * Generates a perspective projection matrix with the given bounds\n *\n * Params:\n * fovy - scalar, vertical field of view\n * aspect - scalar, aspect ratio. typically viewport width/height\n * near, far - scalar, near and far bounds of the frustum\n * dest - Optional, mat4 frustum matrix will be written into\n *\n * Returns:\n * dest if specified, a new mat4 otherwise\n */\nmat4.perspective = function(fovy, aspect, near, far, dest) {\n\tvar top = near*Math.tan(fovy*Math.PI / 360.0);\n\tvar right = top*aspect;\n\treturn mat4.frustum(-right, right, -top, top, near, far, dest);\n};\n\n/*\n * mat4.ortho\n * Generates a orthogonal projection matrix with the given bounds\n *\n * Params:\n * left, right - scalar, left and right bounds of the frustum\n * bottom, top - scalar, bottom and top bounds of the frustum\n * near, far - scalar, near and far bounds of the frustum\n * dest - Optional, mat4 frustum matrix will be written into\n *\n * Returns:\n * dest if specified, a new mat4 otherwise\n */\nmat4.ortho = function(left, right, bottom, top, near, far, dest) {\n\tif(!dest) { dest = mat4.create(); }\n\tvar rl = (right - left);\n\tvar tb = (top - bottom);\n\tvar fn = (far - near);\n\tdest[0] = 2 / rl;\n\tdest[1] = 0;\n\tdest[2] = 0;\n\tdest[3] = 0;\n\tdest[4] = 0;\n\tdest[5] = 2 / tb;\n\tdest[6] = 0;\n\tdest[7] = 0;\n\tdest[8] = 0;\n\tdest[9] = 0;\n\tdest[10] = -2 / fn;\n\tdest[11] = 0;\n\tdest[12] = -(left + right) / rl;\n\tdest[13] = -(top + bottom) / tb;\n\tdest[14] = -(far + near) / fn;\n\tdest[15] = 1;\n\treturn dest;\n};\n\n/*\n * mat4.ortho\n * Generates a look-at matrix with the given eye position, focal point, and up axis\n *\n * Params:\n * eye - vec3, position of the viewer\n * center - vec3, point the viewer is looking at\n * up - vec3 pointing \"up\"\n * dest - Optional, mat4 frustum matrix will be written into\n *\n * Returns:\n * dest if specified, a new mat4 otherwise\n */\nmat4.lookAt = function(eye, center, up, dest) {\n\tif(!dest) { dest = mat4.create(); }\n\t\n\tvar eyex = eye[0],\n\t\teyey = eye[1],\n\t\teyez = eye[2],\n\t\tupx = up[0],\n\t\tupy = up[1],\n\t\tupz = up[2],\n\t\tcenterx = center[0],\n\t\tcentery = center[1],\n\t\tcenterz = center[2];\n\n\tif (eyex == centerx && eyey == centery && eyez == centerz) {\n\t\treturn mat4.identity(dest);\n\t}\n\t\n\tvar z0,z1,z2,x0,x1,x2,y0,y1,y2,len;\n\t\n\t//vec3.direction(eye, center, z);\n\tz0 = eyex - center[0];\n\tz1 = eyey - center[1];\n\tz2 = eyez - center[2];\n\t\n\t// normalize (no check needed for 0 because of early return)\n\tlen = 1/Math.sqrt(z0*z0 + z1*z1 + z2*z2);\n\tz0 *= len;\n\tz1 *= len;\n\tz2 *= len;\n\t\n\t//vec3.normalize(vec3.cross(up, z, x));\n\tx0 = upy*z2 - upz*z1;\n\tx1 = upz*z0 - upx*z2;\n\tx2 = upx*z1 - upy*z0;\n\tlen = Math.sqrt(x0*x0 + x1*x1 + x2*x2);\n\tif (!len) {\n\t\tx0 = 0;\n\t\tx1 = 0;\n\t\tx2 = 0;\n\t} else {\n\t\tlen = 1/len;\n\t\tx0 *= len;\n\t\tx1 *= len;\n\t\tx2 *= len;\n\t};\n\t\n\t//vec3.normalize(vec3.cross(z, x, y));\n\ty0 = z1*x2 - z2*x1;\n\ty1 = z2*x0 - z0*x2;\n\ty2 = z0*x1 - z1*x0;\n\t\n\tlen = Math.sqrt(y0*y0 + y1*y1 + y2*y2);\n\tif (!len) {\n\t\ty0 = 0;\n\t\ty1 = 0;\n\t\ty2 = 0;\n\t} else {\n\t\tlen = 1/len;\n\t\ty0 *= len;\n\t\ty1 *= len;\n\t\ty2 *= len;\n\t}\n\t\n\tdest[0] = x0;\n\tdest[1] = y0;\n\tdest[2] = z0;\n\tdest[3] = 0;\n\tdest[4] = x1;\n\tdest[5] = y1;\n\tdest[6] = z1;\n\tdest[7] = 0;\n\tdest[8] = x2;\n\tdest[9] = y2;\n\tdest[10] = z2;\n\tdest[11] = 0;\n\tdest[12] = -(x0*eyex + x1*eyey + x2*eyez);\n\tdest[13] = -(y0*eyex + y1*eyey + y2*eyez);\n\tdest[14] = -(z0*eyex + z1*eyey + z2*eyez);\n\tdest[15] = 1;\n\t\n\treturn dest;\n};\n\n/*\n * mat4.str\n * Returns a string representation of a mat4\n *\n * Params:\n * mat - mat4 to represent as a string\n *\n * Returns:\n * string representation of mat\n */\nmat4.str = function(mat) {\n\treturn '[' + mat[0] + ', ' + mat[1] + ', ' + mat[2] + ', ' + mat[3] + \n\t\t',\\n '+ mat[4] + ', ' + mat[5] + ', ' + mat[6] + ', ' + mat[7] + \n\t\t',\\n '+ mat[8] + ', ' + mat[9] + ', ' + mat[10] + ', ' + mat[11] + \n\t\t',\\n '+ mat[12] + ', ' + mat[13] + ', ' + mat[14] + ', ' + mat[15] + ']';\n};\n\n/*\n * quat4 - Quaternions \n */\nquat4 = {};\n\n/*\n * quat4.create\n * Creates a new instance of a quat4 using the default array type\n * Any javascript array containing at least 4 numeric elements can serve as a quat4\n *\n * Params:\n * quat - Optional, quat4 containing values to initialize with\n *\n * Returns:\n * New quat4\n */\nquat4.create = function(quat) {\n\tvar dest;\n\t\n\tif(quat) {\n\t\tdest = new glMatrixArrayType(4);\n\t\tdest[0] = quat[0];\n\t\tdest[1] = quat[1];\n\t\tdest[2] = quat[2];\n\t\tdest[3] = quat[3];\n\t} else {\n\t\tif(glMatrixArrayType === Array)\n\t\t\tdest = new glMatrixArrayType([0,0,0,0]);\n\t\telse\n\t\t\tdest = new glMatrixArrayType(4);\n\t}\n\t\n\treturn dest;\n};\n\n/*\n * quat4.set\n * Copies the values of one quat4 to another\n *\n * Params:\n * quat - quat4 containing values to copy\n * dest - quat4 receiving copied values\n *\n * Returns:\n * dest\n */\nquat4.set = function(quat, dest) {\n\tdest[0] = quat[0];\n\tdest[1] = quat[1];\n\tdest[2] = quat[2];\n\tdest[3] = quat[3];\n\t\n\treturn dest;\n};\n\n/*\n * quat4.calculateW\n * Calculates the W component of a quat4 from the X, Y, and Z components.\n * Assumes that quaternion is 1 unit in length. \n * Any existing W component will be ignored. \n *\n * Params:\n * quat - quat4 to calculate W component of\n * dest - Optional, quat4 receiving calculated values. If not specified result is written to quat\n *\n * Returns:\n * dest if specified, quat otherwise\n */\nquat4.calculateW = function(quat, dest) {\n\tvar x = quat[0], y = quat[1], z = quat[2];\n\n\tif(!dest || quat == dest) {\n\t\tquat[3] = -Math.sqrt(Math.abs(1.0 - x*x - y*y - z*z));\n\t\treturn quat;\n\t}\n\tdest[0] = x;\n\tdest[1] = y;\n\tdest[2] = z;\n\tdest[3] = -Math.sqrt(Math.abs(1.0 - x*x - y*y - z*z));\n\treturn dest;\n};\n\n/*\n * quat4.inverse\n * Calculates the inverse of a quat4\n *\n * Params:\n * quat - quat4 to calculate inverse of\n * dest - Optional, quat4 receiving inverse values. If not specified result is written to quat\n *\n * Returns:\n * dest if specified, quat otherwise\n */\nquat4.inverse = function(quat, dest) {\n\tif(!dest || quat == dest) {\n\t\tquat[0] *= -1;\n\t\tquat[1] *= -1;\n\t\tquat[2] *= -1;\n\t\treturn quat;\n\t}\n\tdest[0] = -quat[0];\n\tdest[1] = -quat[1];\n\tdest[2] = -quat[2];\n\tdest[3] = quat[3];\n\treturn dest;\n};\n\n/*\n * quat4.length\n * Calculates the length of a quat4\n *\n * Params:\n * quat - quat4 to calculate length of\n *\n * Returns:\n * Length of quat\n */\nquat4.length = function(quat) {\n\tvar x = quat[0], y = quat[1], z = quat[2], w = quat[3];\n\treturn Math.sqrt(x*x + y*y + z*z + w*w);\n};\n\n/*\n * quat4.normalize\n * Generates a unit quaternion of the same direction as the provided quat4\n * If quaternion length is 0, returns [0, 0, 0, 0]\n *\n * Params:\n * quat - quat4 to normalize\n * dest - Optional, quat4 receiving operation result. If not specified result is written to quat\n *\n * Returns:\n * dest if specified, quat otherwise\n */\nquat4.normalize = function(quat, dest) {\n\tif(!dest) { dest = quat; }\n\t\n\tvar x = quat[0], y = quat[1], z = quat[2], w = quat[3];\n\tvar len = Math.sqrt(x*x + y*y + z*z + w*w);\n\tif(len == 0) {\n\t\tdest[0] = 0;\n\t\tdest[1] = 0;\n\t\tdest[2] = 0;\n\t\tdest[3] = 0;\n\t\treturn dest;\n\t}\n\tlen = 1/len;\n\tdest[0] = x * len;\n\tdest[1] = y * len;\n\tdest[2] = z * len;\n\tdest[3] = w * len;\n\t\n\treturn dest;\n};\n\n/*\n * quat4.multiply\n * Performs a quaternion multiplication\n *\n * Params:\n * quat - quat4, first operand\n * quat2 - quat4, second operand\n * dest - Optional, quat4 receiving operation result. If not specified result is written to quat\n *\n * Returns:\n * dest if specified, quat otherwise\n */\nquat4.multiply = function(quat, quat2, dest) {\n\tif(!dest) { dest = quat; }\n\t\n\tvar qax = quat[0], qay = quat[1], qaz = quat[2], qaw = quat[3];\n\tvar qbx = quat2[0], qby = quat2[1], qbz = quat2[2], qbw = quat2[3];\n\t\n\tdest[0] = qax*qbw + qaw*qbx + qay*qbz - qaz*qby;\n\tdest[1] = qay*qbw + qaw*qby + qaz*qbx - qax*qbz;\n\tdest[2] = qaz*qbw + qaw*qbz + qax*qby - qay*qbx;\n\tdest[3] = qaw*qbw - qax*qbx - qay*qby - qaz*qbz;\n\t\n\treturn dest;\n};\n\n/*\n * quat4.multiplyVec3\n * Transforms a vec3 with the given quaternion\n *\n * Params:\n * quat - quat4 to transform the vector with\n * vec - vec3 to transform\n * dest - Optional, vec3 receiving operation result. If not specified result is written to vec\n *\n * Returns:\n * dest if specified, vec otherwise\n */\nquat4.multiplyVec3 = function(quat, vec, dest) {\n\tif(!dest) { dest = vec; }\n\t\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\tvar qx = quat[0], qy = quat[1], qz = quat[2], qw = quat[3];\n\n\t// calculate quat * vec\n\tvar ix = qw*x + qy*z - qz*y;\n\tvar iy = qw*y + qz*x - qx*z;\n\tvar iz = qw*z + qx*y - qy*x;\n\tvar iw = -qx*x - qy*y - qz*z;\n\t\n\t// calculate result * inverse quat\n\tdest[0] = ix*qw + iw*-qx + iy*-qz - iz*-qy;\n\tdest[1] = iy*qw + iw*-qy + iz*-qx - ix*-qz;\n\tdest[2] = iz*qw + iw*-qz + ix*-qy - iy*-qx;\n\t\n\treturn dest;\n};\n\n/*\n * quat4.toMat3\n * Calculates a 3x3 matrix from the given quat4\n *\n * Params:\n * quat - quat4 to create matrix from\n * dest - Optional, mat3 receiving operation result\n *\n * Returns:\n * dest if specified, a new mat3 otherwise\n */\nquat4.toMat3 = function(quat, dest) {\n\tif(!dest) { dest = mat3.create(); }\n\t\n\tvar x = quat[0], y = quat[1], z = quat[2], w = quat[3];\n\n\tvar x2 = x + x;\n\tvar y2 = y + y;\n\tvar z2 = z + z;\n\n\tvar xx = x*x2;\n\tvar xy = x*y2;\n\tvar xz = x*z2;\n\n\tvar yy = y*y2;\n\tvar yz = y*z2;\n\tvar zz = z*z2;\n\n\tvar wx = w*x2;\n\tvar wy = w*y2;\n\tvar wz = w*z2;\n\n\tdest[0] = 1 - (yy + zz);\n\tdest[1] = xy - wz;\n\tdest[2] = xz + wy;\n\n\tdest[3] = xy + wz;\n\tdest[4] = 1 - (xx + zz);\n\tdest[5] = yz - wx;\n\n\tdest[6] = xz - wy;\n\tdest[7] = yz + wx;\n\tdest[8] = 1 - (xx + yy);\n\t\n\treturn dest;\n};\n\n/*\n * quat4.toMat4\n * Calculates a 4x4 matrix from the given quat4\n *\n * Params:\n * quat - quat4 to create matrix from\n * dest - Optional, mat4 receiving operation result\n *\n * Returns:\n * dest if specified, a new mat4 otherwise\n */\nquat4.toMat4 = function(quat, dest) {\n\tif(!dest) { dest = mat4.create(); }\n\t\n\tvar x = quat[0], y = quat[1], z = quat[2], w = quat[3];\n\n\tvar x2 = x + x;\n\tvar y2 = y + y;\n\tvar z2 = z + z;\n\n\tvar xx = x*x2;\n\tvar xy = x*y2;\n\tvar xz = x*z2;\n\n\tvar yy = y*y2;\n\tvar yz = y*z2;\n\tvar zz = z*z2;\n\n\tvar wx = w*x2;\n\tvar wy = w*y2;\n\tvar wz = w*z2;\n\n\tdest[0] = 1 - (yy + zz);\n\tdest[1] = xy - wz;\n\tdest[2] = xz + wy;\n\tdest[3] = 0;\n\n\tdest[4] = xy + wz;\n\tdest[5] = 1 - (xx + zz);\n\tdest[6] = yz - wx;\n\tdest[7] = 0;\n\n\tdest[8] = xz - wy;\n\tdest[9] = yz + wx;\n\tdest[10] = 1 - (xx + yy);\n\tdest[11] = 0;\n\n\tdest[12] = 0;\n\tdest[13] = 0;\n\tdest[14] = 0;\n\tdest[15] = 1;\n\t\n\treturn dest;\n};\n\n/*\n * quat4.slerp\n * Performs a spherical linear interpolation between two quat4\n *\n * Params:\n * quat - quat4, first quaternion\n * quat2 - quat4, second quaternion\n * slerp - interpolation amount between the two inputs\n * dest - Optional, quat4 receiving operation result. If not specified result is written to quat\n *\n * Returns:\n * dest if specified, quat otherwise\n */\nquat4.slerp = function(quat, quat2, slerp, dest) {\n if(!dest) { dest = quat; }\n \n\tvar cosHalfTheta = quat[0]*quat2[0] + quat[1]*quat2[1] + quat[2]*quat2[2] + quat[3]*quat2[3];\n\t\n\tif (Math.abs(cosHalfTheta) >= 1.0){\n\t if(dest != quat) {\n\t\t dest[0] = quat[0];\n\t\t dest[1] = quat[1];\n\t\t dest[2] = quat[2];\n\t\t dest[3] = quat[3];\n\t\t}\n\t\treturn dest;\n\t}\n\t\n\tvar halfTheta = Math.acos(cosHalfTheta);\n\tvar sinHalfTheta = Math.sqrt(1.0 - cosHalfTheta*cosHalfTheta);\n\n\tif (Math.abs(sinHalfTheta) < 0.001){\n\t\tdest[0] = (quat[0]*0.5 + quat2[0]*0.5);\n\t\tdest[1] = (quat[1]*0.5 + quat2[1]*0.5);\n\t\tdest[2] = (quat[2]*0.5 + quat2[2]*0.5);\n\t\tdest[3] = (quat[3]*0.5 + quat2[3]*0.5);\n\t\treturn dest;\n\t}\n\t\n\tvar ratioA = Math.sin((1 - slerp)*halfTheta) / sinHalfTheta;\n\tvar ratioB = Math.sin(slerp*halfTheta) / sinHalfTheta; \n\t\n\tdest[0] = (quat[0]*ratioA + quat2[0]*ratioB);\n\tdest[1] = (quat[1]*ratioA + quat2[1]*ratioB);\n\tdest[2] = (quat[2]*ratioA + quat2[2]*ratioB);\n\tdest[3] = (quat[3]*ratioA + quat2[3]*ratioB);\n\t\n\treturn dest;\n};\n\n\n/*\n * quat4.str\n * Returns a string representation of a quaternion\n *\n * Params:\n * quat - quat4 to represent as a string\n *\n * Returns:\n * string representation of quat\n */\nquat4.str = function(quat) {\n\treturn '[' + quat[0] + ', ' + quat[1] + ', ' + quat[2] + ', ' + quat[3] + ']'; \n};\n\n\ndefine(\"glMatrix\", [\"typedefs\"], (function (global) {\n return function () {\n var ret, fn;\n return ret || global.glMatrix;\n };\n}(this)));\n\n/*\n * glMatrixAddon.js\n * Extension to the glMatrix library. The original glMatrix library\n * was created by Brandon Jones.\n */\n\n\nmat4.xVec4 = function(mat, vec, dest){\n\tif(!dest) { dest = vec; }\t\n\tvar x = vec[0], y = vec[1], z = vec[2], w = vec[3];\n\t\n\tdest[0] = mat[0]*x + mat[1]*y + mat[2]*z + mat[3]*w;\n\tdest[1] = mat[4]*x + mat[5]*y + mat[6]*z + mat[7]*w;\n\tdest[2] = mat[8]*x + mat[9]*y + mat[10]*z + mat[11]*w;\n\tdest[3] = mat[12]*x + mat[13]*y + mat[14]*z + mat[15]*w;\n\t\n\treturn dest;\n};\n\nmat3.scale = function(mat, scalar, dest){\n\tif(!dest || mat == dest) {\n\t\tmat[0] *= scalar;\n\t\tmat[1] *= scalar;\n\t\tmat[2] *= scalar;\n\t\tmat[3] *= scalar;\n\t\tmat[4] *= scalar;\n\t\tmat[5] *= scalar;\n\t\tmat[6] *= scalar;\n\t\tmat[7] *= scalar;\n\t\tmat[8] *= scalar;\n\t\treturn mat;\n\t}\n\tdest = mat3.create();\n\tdest[0] = mat[0]*scalar;\n\tdest[1] = mat[1]*scalar;\n\tdest[2] = mat[2]*scalar;\n\tdest[3] = mat[3]*scalar;\n\tdest[4] = mat[4]*scalar;\n\tdest[5] = mat[5]*scalar;\n\tdest[6] = mat[6]*scalar;\n\tdest[7] = mat[7]*scalar;\n\tdest[8] = mat[8]*scalar;\n\treturn dest;\n};\n\nmat3.inverse = function(mat, dest){\n\tif(!dest) { dest = mat; }\n\t\n\tvar ha00 = mat[0], ha01 = mat[1], ha02 = mat[2];\n\tvar ha10 = mat[3], ha11 = mat[4], ha12 = mat[5];\n\tvar ha20 = mat[6], ha21 = mat[7], ha22 = mat[8];\n\t\n\tvar invDetA = 1/(ha00*ha11*ha22 + ha01*ha12*ha20 + ha02*ha10*ha21 - ha02*ha11*ha20 - ha01*ha10*ha22 - ha00*ha12*ha21);\n\tdest[0] = (ha11*ha22 - ha12*ha21)*invDetA;\n\tdest[1] = (ha02*ha21 - ha01*ha22)*invDetA;\n\tdest[2] = (ha01*ha12 - ha02*ha11)*invDetA;\n\tdest[3] = (ha12*ha20 - ha10*ha22)*invDetA;\n\tdest[4] = (ha00*ha22 - ha02*ha20)*invDetA;\n\tdest[5] = (ha02*ha10 - ha00*ha12)*invDetA;\n\tdest[6] = (ha10*ha21 - ha11*ha20)*invDetA;\n\tdest[7] = (ha01*ha20 - ha00*ha21)*invDetA;\n\tdest[8] = (ha00*ha11 - ha01*ha10)*invDetA;\n\treturn dest;\n};\n\nmat3.multiply = function(mat, mat2, dest) {\n\tif(!dest) { dest = mat; }\n\t\n\tvar ha00 = mat[0], ha01 = mat[1], ha02 = mat[2];\n\tvar ha10 = mat[3], ha11 = mat[4], ha12 = mat[5];\n\tvar ha20 = mat[6], ha21 = mat[7], ha22 = mat[8];\n\t\n\tvar hb00 = mat2[0], hb01 = mat2[1], hb02 = mat2[2];\n\tvar hb10 = mat2[3], hb11 = mat2[4], hb12 = mat2[5];\n\tvar hb20 = mat2[6], hb21 = mat2[7], hb22 = mat2[8];\n\t\n\tdest[0] = ha00*hb00 + ha01*hb10 + ha02*hb20;\n\tdest[1] = ha00*hb01 + ha01*hb11 + ha02*hb21;\n\tdest[2] = ha00*hb02 + ha01*hb12 + ha02*hb22;\n\t\n\tdest[3] = ha10*hb00 + ha11*hb10 + ha12*hb20;\n\tdest[4] = ha10*hb01 + ha11*hb11 + ha12*hb21;\n\tdest[5] = ha10*hb02 + ha11*hb12 + ha12*hb22;\n\t\n\tdest[6] = ha20*hb00 + ha21*hb10 + ha22*hb20;\n\tdest[7] = ha20*hb01 + ha21*hb11 + ha22*hb21;\n\tdest[8] = ha20*hb02 + ha21*hb12 + ha22*hb22;\n\treturn dest;\n};\n\nmat3.xVec3 = function(mat, vec, dest){\n\tif(!dest) { dest = vec; }\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\t\n\tdest[0] = mat[0]*x + mat[1]*y + mat[2]*z;\n\tdest[1] = mat[3]*x + mat[4]*y + mat[5]*z;\n\tdest[2] = mat[6]*x + mat[7]*y + mat[8]*z;\n\t\n\treturn dest;\n};\n\nvar vec4={};\n\nvec4.create = function(vec){\n\tvar dest;\n\t\n\tif(vec) {\n\t\tdest = new glMatrixArrayType(4);\n\t\tdest[0] = vec[0];\n\t\tdest[1] = vec[1];\n\t\tdest[2] = vec[2];\n\t\tdest[3] = vec[3];\n\t} else {\n\t\tif(glMatrixArrayType === Array)\n\t\t\tdest = new glMatrixArrayType([0,0,0,0]);\n\t\telse\n\t\t\tdest = new glMatrixArrayType(4);\n\t}\n\t\n\treturn dest;\n};\n\nvec4.project = function(vec, dest){\n\tif(!dest) { dest = vec; }\n\t\n\tdest[0] = vec[0]/vec[3];\n\tdest[1] = vec[1]/vec[3];\n\tdest[2] = vec[2]/vec[3];\n\treturn dest;\n};\n\nvec4.scale = function(vec, val, dest){\n\tif(!dest || vec == dest) {\n\t\tvec[0] *= val;\n\t\tvec[1] *= val;\n\t\tvec[2] *= val;\n\t\tvec[4] *= val;\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0]*val;\n\tdest[1] = vec[1]*val;\n\tdest[2] = vec[2]*val;\n\tdest[3] = vec[3]*val;\n\treturn dest;\n};\n\nvec4.xMat4 = function(vec, mat, dest){\n\tif(!dest) { dest = vec; }\n\t\n\tvar x = vec[0], y = vec[1], z = vec[2], w = vec[3];\n\t\n\tdest[0] = mat[0]*x + mat[4]*y + mat[8]*z + mat[12]*w;\n\tdest[1] = mat[1]*x + mat[5]*y + mat[9]*z + mat[13]*w;\n\tdest[2] = mat[2]*x + mat[6]*y + mat[10]*z + mat[14]*w;\n\tdest[3] = mat[3]*x + mat[7]*y + mat[11]*z + mat[15]*w;\n\t\n\treturn dest;\n};\n\n\nvar mat2 = {};\n\nmat2.create = function(mat){\n\tvar dest;\n\t\n\tif(mat) {\n\t\tdest = new glMatrixArrayType(4);\n\t\tdest[0] = mat[0];\n\t\tdest[1] = mat[1];\n\t\tdest[2] = mat[2];\n\t\tdest[3] = mat[3];\n\t} else {\n\t\tif(glMatrixArrayType === Array)\n\t\t\tdest = new glMatrixArrayType([0,0,0,0]);\n\t\telse\n\t\t\tdest = new glMatrixArrayType(4);\n\t}\n\t\n\treturn dest;\n};\n\nmat2.xVec2 = function(mat, vec, dest){\n\tif(!dest) { dest = vec; }\n\tvar x = vec[0], y = vec[1];\n\t\n\tdest[0] = mat[0]*x + mat[1]*y;\n\tdest[1] = mat[2]*x + mat[3]*y;\n\t\n\treturn dest;\n};\n\nmat2.scale = function(mat, scale, dest){\n\tif(!dest || mat == dest) {\n\t\tmat[0] *= scale;\n\t\tmat[1] *= scale;\n\t\tmat[2] *= scale;\n\t\tmat[3] *= scale;\n\t\treturn mat;\n\t}\n\t\n\tdest[0] = mat[0]*scale;\n\tdest[1] = mat[1]*scale;\n\tdest[2] = mat[2]*scale;\n\tdest[3] = mat[3]*scale;\n\treturn dest;\n};\n\nmat2.determinant = function(mat){\n\treturn mat[0]*mat[3] - mat[1]*mat[2];\n};\n\nmat2.inverse = function(mat){\n var scale = 1/(mat2.determinant(mat));\n var a = mat[3]*scale,\n b = -mat[1]*scale,\n c = -mat[2]*scale,\n d = mat[0];\n mat[0] = a;\n mat[1] = b;\n mat[2] = c;\n mat[3] = d;\n return mat;\n};\n\nvar vec2 = {};\nvec2.create = function(vec){\n\tvar dest;\n\t\n\tif(vec) {\n\t\tdest = new glMatrixArrayType(2);\n\t\tdest[0] = vec[0];\n\t\tdest[1] = vec[1];\n\t} else {\n\t\tif(glMatrixArrayType === Array)\n\t\t\tdest = new glMatrixArrayType([0,0]);\n\t\telse\n\t\t\tdest = new glMatrixArrayType(2);\n\t}\n\t\n\treturn dest;\n};\n\nvec2.subtract = function(vec, vec2, dest) {\n\tif(!dest || vec == dest) {\n\t\tvec[0] -= vec2[0];\n\t\tvec[1] -= vec2[1];\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0] - vec2[0];\n\tdest[1] = vec[1] - vec2[1];\n\treturn dest;\n};\n\nvec2.add = function(vec, vec2, dest) {\n\tif(!dest || vec == dest) {\n\t\tvec[0] += vec2[0];\n\t\tvec[1] += vec2[1];\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0] + vec2[0];\n\tdest[1] = vec[1] + vec2[1];\n\treturn dest;\n};\n\nvec2.scale = function(vec, val, dest) {\n\tif(!dest || vec == dest) {\n\t\tvec[0] *= val;\n\t\tvec[1] *= val;\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0]*val;\n\tdest[1] = vec[1]*val;\n\treturn dest;\n};\n\nvec2.normalize = function(vec, dest) {\n if(!dest) { dest = vec; }\n \n var x = vec[0], y = vec[1];\n var len = Math.sqrt(x*x + y*y);\n \n if (!len) {\n dest[0] = 0;\n dest[1] = 0;\n return dest;\n } else if (len == 1) {\n dest[0] = x;\n dest[1] = y;\n return dest;\n }\n \n len = 1 / len;\n dest[0] = x*len;\n dest[1] = y*len;\n return dest;\n};\n\nvec2.dot = function(vec, vec2){\n return vec[0]*vec2[0] + vec[1]*vec2[1];\n};\n\nvec2.multiply = function(vec, vec2, dest){\n if(!dest) { dest = vec; }\n \n dest[0] = vec[0]*vec2[0];\n dest[1] = vec[1]*vec2[1];\n return dest;\n};\n\n/**\n * @param vec vec2 to be unprojected [x,y] -> [x,y,1]\n * @returns vec3 unprojected vector\n */\nvec2.unproject = function(vec){\n\treturn vec3.create([vec[0], vec[1], 1]);\n};\n\nvec2.length = function(vec){\n return Math.sqrt(vec[0]*vec[0] + vec[1]*vec[1]);\n};\n\nvec2.perspectiveProject = function(vec){\n var result = vec2.create(vec);\n return vec2.scale(result, 1/vec[2]);\n};\n\n/**\n * @param vec vec3 to be projected [x,y,z] -> [x/z,y/z]\n * @returns vec2 projected vector\n */\nvec3.project = function(vec){\n\treturn vec2.scale(vec2.create(vec), 1/vec[2]);\n};\n\nvar vec6 = {};\nvec6.scale = function(vec, val, dest){\n\tif(!dest || vec == dest) {\n\t\tvec[0] *= val;\n\t\tvec[1] *= val;\n\t\tvec[2] *= val;\n\t\tvec[3] *= val;\n\t\tvec[4] *= val;\n\t\tvec[5] *= val;\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0]*val;\n\tdest[1] = vec[1]*val;\n\tdest[2] = vec[2]*val;\n\tdest[3] = vec[3]*val;\n\tdest[4] = vec[4]*val;\n\tdest[5] = vec[5]*val;\n\treturn dest;\n};\n\nvec6.subtract = function(vec, vec2, dest){\n\tif(!dest || vec == dest) {\n\t\tvec[0] -= vec2[0];\n\t\tvec[1] -= vec2[1];\n\t\tvec[2] -= vec2[2];\n\t\tvec[3] -= vec2[3];\n\t\tvec[4] -= vec2[4];\n\t\tvec[5] -= vec2[5];\n\t\treturn vec;\n\t}\n\t\n\tdest[0] = vec[0] - vec2[0];\n\tdest[1] = vec[1] - vec2[1];\n\tdest[2] = vec[2] - vec2[2];\n\tdest[3] = vec[3] - vec2[3];\n\tdest[4] = vec[4] - vec2[4];\n\tdest[5] = vec[5] - vec2[5];\n\treturn dest;\n};\n\nvec6.dot = function(vec, vec2){\n\treturn vec[0]*vec2[0] + vec[1]*vec2[1] + vec[2]*vec2[2] + vec[3]*vec2[3] + vec[4]*vec2[4] + vec[5]*vec2[5];\n};\n\nvar mat6 = {};\nmat6.xVec6 = function(mat, vec, dest){\n\tif(!dest) { dest = vec; }\t\n\tvar x = vec[0], y = vec[1], z = vec[2], u = vec[3], w = vec[4], v = vec[5];\n\t\n\tdest[0] = mat[0]*x + mat[1]*y + mat[2]*z + mat[3]*u + mat[4]*w + mat[5]*v;\n\tdest[1] = mat[6]*x + mat[7]*y + mat[8]*z + mat[9]*u + mat[10]*w + mat[11]*v;\n\tdest[2] = mat[12]*x + mat[13]*y + mat[14]*z + mat[15]*u + mat[16]*w + mat[17]*v;\n\tdest[3] = mat[18]*x + mat[19]*y + mat[20]*z + mat[21]*u + mat[22]*w + mat[23]*v;\n\tdest[4] = mat[24]*x + mat[25]*y + mat[26]*z + mat[27]*u + mat[28]*w + mat[29]*v;\n\tdest[5] = mat[30]*x + mat[31]*y + mat[32]*z + mat[33]*u + mat[34]*w + mat[35]*v;\n\t\n\treturn dest;\n};\n\nmat3.xVec3 = function(mat, vec, dest){\n\tif(!dest) { dest = vec; }\t\n\tvar x = vec[0], y = vec[1], z = vec[2];\n\t\n\tdest[0] = mat[0]*x + mat[1]*y + mat[2]*z;\n\tdest[1] = mat[3]*x + mat[4]*y + mat[5]*z;\n\tdest[2] = mat[6]*x + mat[7]*y + mat[8]*z;\n\t\n\treturn dest;\n};\ndefine(\"glMatrixAddon\", [\"glMatrix\"], (function (global) {\n return function () {\n var ret, fn;\n return ret || global.glMatrixAddon;\n };\n}(this)));\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('array_helper',[],function() {\n \"use strict\";\n\n return {\n init : function(arr, val) {\n var l = arr.length;\n while (l--) {\n arr[l] = val;\n }\n },\n\n /**\n * Shuffles the content of an array\n * @return {Array} the array itself shuffled\n */\n shuffle : function(arr) {\n var i = arr.length - 1, j, x;\n for (i; i >= 0; i--) {\n j = Math.floor(Math.random() * i);\n x = arr[i];\n arr[i] = arr[j];\n arr[j] = x;\n }\n return arr;\n },\n\n toPointList : function(arr) {\n var i, j, row = [], rows = [];\n for ( i = 0; i < arr.length; i++) {\n row = [];\n for ( j = 0; j < arr[i].length; j++) {\n row[j] = arr[i][j];\n }\n rows[i] = \"[\" + row.join(\",\") + \"]\";\n }\n return \"[\" + rows.join(\",\\r\\n\") + \"]\";\n },\n\n /**\n * returns the elements which's score is bigger than the threshold\n * @return {Array} the reduced array\n */\n threshold : function(arr, threshold, scoreFunc) {\n var i, queue = [];\n for ( i = 0; i < arr.length; i++) {\n if (scoreFunc.apply(arr, [arr[i]]) >= threshold) {\n queue.push(arr[i]);\n }\n }\n return queue;\n },\n\n maxIndex : function(arr) {\n var i, max = 0;\n for ( i = 0; i < arr.length; i++) {\n if (arr[i] > arr[max]) {\n max = i;\n }\n }\n return max;\n },\n\n max : function(arr) {\n var i, max = 0;\n for ( i = 0; i < arr.length; i++) {\n if (arr[i] > max) {\n max = arr[i];\n }\n }\n return max;\n },\n\n sum: function(arr) {\n var length = arr.length,\n sum = 0;\n\n while(length--) {\n sum += arr[length];\n }\n return sum;\n }\n };\n}); \n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define, vec2, vec3 */\n\ndefine('cv_utils',['cluster', 'glMatrixAddon', \"array_helper\"], function(Cluster2, glMatrixAddon, ArrayHelper) {\n\n \"use strict\";\n /*\n * cv_utils.js\n * Collection of CV functions and libraries\n */\n\n /**\n * Namespace for various CV alorithms\n * @class Represents a collection of useful CV algorithms/functions\n */\n\n var CVUtils = {};\n\n /**\n * @param x x-coordinate\n * @param y y-coordinate\n * @return ImageReference {x,y} Coordinate\n */\n CVUtils.imageRef = function(x, y) {\n var that = {\n x : x,\n y : y,\n toVec2 : function() {\n return vec2.create([this.x, this.y]);\n },\n toVec3 : function() {\n return vec3.create([this.x, this.y, 1]);\n },\n round : function() {\n this.x = this.x > 0.0 ? Math.floor(this.x + 0.5) : Math.floor(this.x - 0.5);\n this.y = this.y > 0.0 ? Math.floor(this.y + 0.5) : Math.floor(this.y - 0.5);\n return this;\n }\n };\n return that;\n };\n\n /**\n * Computes an integral image of a given grayscale image.\n * @param imageDataContainer {ImageDataContainer} the image to be integrated\n */\n CVUtils.computeIntegralImage2 = function(imageWrapper, integralWrapper) {\n var imageData = imageWrapper.data;\n var width = imageWrapper.size.x;\n var height = imageWrapper.size.y;\n var integralImageData = integralWrapper.data;\n var sum = 0, posA = 0, posB = 0, posC = 0, posD = 0, x, y;\n\n // sum up first column\n posB = width;\n sum = 0;\n for ( y = 1; y < height; y++) {\n sum += imageData[posA];\n integralImageData[posB] += sum;\n posA += width;\n posB += width;\n }\n\n posA = 0;\n posB = 1;\n sum = 0;\n for ( x = 1; x < width; x++) {\n sum += imageData[posA];\n integralImageData[posB] += sum;\n posA++;\n posB++;\n }\n\n for ( y = 1; y < height; y++) {\n posA = y * width + 1;\n posB = (y - 1) * width + 1;\n posC = y * width;\n posD = (y - 1) * width;\n for ( x = 1; x < width; x++) {\n integralImageData[posA] += imageData[posA] + integralImageData[posB] + integralImageData[posC] - integralImageData[posD];\n posA++;\n posB++;\n posC++;\n posD++;\n }\n }\n };\n\n CVUtils.computeIntegralImage = function(imageWrapper, integralWrapper) {\n var imageData = imageWrapper.data;\n var width = imageWrapper.size.x;\n var height = imageWrapper.size.y;\n var integralImageData = integralWrapper.data;\n var sum = 0;\n\n // sum up first row\n for (var i = 0; i < width; i++) {\n sum += imageData[i];\n integralImageData[i] = sum;\n }\n\n for (var v = 1; v < height; v++) {\n sum = 0;\n for (var u = 0; u < width; u++) {\n sum += imageData[v * width + u];\n integralImageData[((v) * width) + u] = sum + integralImageData[(v - 1) * width + u];\n }\n }\n };\n\n CVUtils.thresholdImage = function(imageWrapper, threshold, targetWrapper) {\n if (!targetWrapper) {\n targetWrapper = imageWrapper;\n }\n var imageData = imageWrapper.data, length = imageData.length, targetData = targetWrapper.data;\n\n while (length--) {\n targetData[length] = imageData[length] < threshold ? 1 : 0;\n }\n };\n\n CVUtils.computeHistogram = function(imageWrapper, bitsPerPixel) {\n if (!bitsPerPixel) {\n bitsPerPixel = 8;\n }\n var imageData = imageWrapper.data,\n length = imageData.length,\n bitShift = 8 - bitsPerPixel,\n bucketCnt = 1 << bitsPerPixel,\n hist = new Int32Array(bucketCnt);\n\n while (length--) {\n hist[imageData[length] >> bitShift]++;\n }\n return hist;\n };\n\n CVUtils.sharpenLine = function(line) {\n var i,\n length = line.length,\n left = line[0],\n center = line[1],\n right;\n\n for (i = 1; i < length - 1; i++) {\n right = line[i + 1];\n // -1 4 -1 kernel\n line[i-1] = (((center * 2) - left - right)) & 255;\n left = center;\n center = right;\n }\n return line;\n };\n\n CVUtils.determineOtsuThreshold = function(imageWrapper, bitsPerPixel) {\n if (!bitsPerPixel) {\n bitsPerPixel = 8;\n }\n var hist,\n threshold,\n bitShift = 8 - bitsPerPixel;\n\n function px(init, end) {\n var sum = 0, i;\n for ( i = init; i <= end; i++) {\n sum += hist[i];\n }\n return sum;\n }\n\n function mx(init, end) {\n var i, sum = 0;\n\n for ( i = init; i <= end; i++) {\n sum += i * hist[i];\n }\n\n return sum;\n }\n\n function determineThreshold() {\n var vet = [0], p1, p2, p12, k, m1, m2, m12,\n max = (1 << bitsPerPixel) - 1;\n\n hist = CVUtils.computeHistogram(imageWrapper, bitsPerPixel);\n for ( k = 1; k < max; k++) {\n p1 = px(0, k);\n p2 = px(k + 1, max);\n p12 = p1 * p2;\n if (p12 === 0) {\n p12 = 1;\n }\n m1 = mx(0, k) * p2;\n m2 = mx(k + 1, max) * p1;\n m12 = m1 - m2;\n vet[k] = m12 * m12 / p12;\n }\n return ArrayHelper.maxIndex(vet);\n }\n\n threshold = determineThreshold();\n return threshold << bitShift;\n };\n\n CVUtils.otsuThreshold = function(imageWrapper, targetWrapper) {\n var threshold = CVUtils.determineOtsuThreshold(imageWrapper);\n\n CVUtils.thresholdImage(imageWrapper, threshold, targetWrapper);\n return threshold;\n };\n\n // local thresholding\n CVUtils.computeBinaryImage = function(imageWrapper, integralWrapper, targetWrapper) {\n CVUtils.computeIntegralImage(imageWrapper, integralWrapper);\n\n if (!targetWrapper) {\n targetWrapper = imageWrapper;\n }\n var imageData = imageWrapper.data;\n var targetData = targetWrapper.data;\n var width = imageWrapper.size.x;\n var height = imageWrapper.size.y;\n var integralImageData = integralWrapper.data;\n var sum = 0, v, u, kernel = 3, A, B, C, D, avg, size = (kernel * 2 + 1) * (kernel * 2 + 1);\n\n // clear out top & bottom-border\n for ( v = 0; v <= kernel; v++) {\n for ( u = 0; u < width; u++) {\n targetData[((v) * width) + u] = 0;\n targetData[(((height - 1) - v) * width) + u] = 0;\n }\n }\n\n // clear out left & right border\n for ( v = kernel; v < height - kernel; v++) {\n for ( u = 0; u <= kernel; u++) {\n targetData[((v) * width) + u] = 0;\n targetData[((v) * width) + (width - 1 - u)] = 0;\n }\n }\n\n for ( v = kernel + 1; v < height - kernel - 1; v++) {\n for ( u = kernel + 1; u < width - kernel; u++) {\n A = integralImageData[(v - kernel - 1) * width + (u - kernel - 1)];\n B = integralImageData[(v - kernel - 1) * width + (u + kernel)];\n C = integralImageData[(v + kernel) * width + (u - kernel - 1)];\n D = integralImageData[(v + kernel) * width + (u + kernel)];\n sum = D - C - B + A;\n avg = sum / (size);\n targetData[v * width + u] = imageData[v * width + u] > (avg + 5) ? 0 : 1;\n }\n }\n };\n\n CVUtils.cluster = function(points, threshold, property) {\n var i, k, cluster, point, clusters = [];\n\n if (!property) {\n property = \"rad\";\n }\n\n function addToCluster(point) {\n var found = false;\n for ( k = 0; k < clusters.length; k++) {\n cluster = clusters[k];\n if (cluster.fits(point)) {\n cluster.add(point);\n found = true;\n }\n }\n return found;\n }\n\n // iterate over each cloud\n for ( i = 0; i < points.length; i++) {\n point = Cluster2.createPoint(points[i], i, property);\n if (!addToCluster(point)) {\n clusters.push(Cluster2.create(point, threshold));\n }\n }\n\n return clusters;\n\n };\n\n CVUtils.Tracer = {\n trace : function(points, vec) {\n var iteration, maxIterations = 10, top = [], result = [], centerPos = 0, currentPos = 0;\n\n function trace(idx, forward) {\n var from, to, toIdx, predictedPos, thresholdX = 1, thresholdY = Math.abs(vec[1] / 10), found = false;\n\n function match(pos, predicted) {\n if (pos.x > (predicted.x - thresholdX) && pos.x < (predicted.x + thresholdX) && pos.y > (predicted.y - thresholdY) && pos.y < (predicted.y + thresholdY)) {\n return true;\n } else {\n return false;\n }\n }\n\n // check if the next index is within the vec specifications\n // if not, check as long as the threshold is met\n\n from = points[idx];\n if (forward) {\n predictedPos = {\n x : from.x + vec[0],\n y : from.y + vec[1]\n };\n } else {\n predictedPos = {\n x : from.x - vec[0],\n y : from.y - vec[1]\n };\n }\n\n toIdx = forward ? idx + 1 : idx - 1;\n to = points[toIdx];\n while (to && ( found = match(to, predictedPos)) !== true && (Math.abs(to.y - from.y) < vec[1])) {\n toIdx = forward ? toIdx + 1 : toIdx - 1;\n to = points[toIdx];\n }\n\n return found ? toIdx : null;\n }\n\n for ( iteration = 0; iteration < maxIterations; iteration++) {\n // randomly select point to start with\n centerPos = Math.floor(Math.random() * points.length);\n\n // trace forward\n top = [];\n currentPos = centerPos;\n top.push(points[currentPos]);\n while (( currentPos = trace(currentPos, true)) !== null) {\n top.push(points[currentPos]);\n }\n if (centerPos > 0) {\n currentPos = centerPos;\n while (( currentPos = trace(currentPos, false)) !== null) {\n top.push(points[currentPos]);\n }\n }\n\n if (top.length > result.length) {\n result = top;\n }\n }\n\n return result;\n\n }\n };\n\n CVUtils.DILATE = 1;\n CVUtils.ERODE = 2;\n\n CVUtils.dilate = function(inImageWrapper, outImageWrapper) {\n var v, u, inImageData = inImageWrapper.data, outImageData = outImageWrapper.data, height = inImageWrapper.size.y, width = inImageWrapper.size.x, sum, yStart1, yStart2, xStart1, xStart2;\n\n for ( v = 1; v < height - 1; v++) {\n for ( u = 1; u < width - 1; u++) {\n yStart1 = v - 1;\n yStart2 = v + 1;\n xStart1 = u - 1;\n xStart2 = u + 1;\n sum = inImageData[yStart1 * width + xStart1]/* + inImageData[yStart1*width+u] */ + inImageData[yStart1 * width + xStart2] +\n /* inImageData[v*width+xStart1] + */\n inImageData[v * width + u] + /* inImageData[v*width+xStart2] +*/\n inImageData[yStart2 * width + xStart1]/* + inImageData[yStart2*width+u]*/ + inImageData[yStart2 * width + xStart2];\n outImageData[v * width + u] = sum > 0 ? 1 : 0;\n }\n }\n };\n\n CVUtils.erode = function(inImageWrapper, outImageWrapper) {\n var v, u, inImageData = inImageWrapper.data, outImageData = outImageWrapper.data, height = inImageWrapper.size.y, width = inImageWrapper.size.x, sum, yStart1, yStart2, xStart1, xStart2;\n\n for ( v = 1; v < height - 1; v++) {\n for ( u = 1; u < width - 1; u++) {\n yStart1 = v - 1;\n yStart2 = v + 1;\n xStart1 = u - 1;\n xStart2 = u + 1;\n sum = inImageData[yStart1 * width + xStart1]/* + inImageData[yStart1*width+u] */ + inImageData[yStart1 * width + xStart2] +\n /* inImageData[v*width+xStart1] + */\n inImageData[v * width + u] + /* inImageData[v*width+xStart2] +*/\n inImageData[yStart2 * width + xStart1]/* + inImageData[yStart2*width+u]*/ + inImageData[yStart2 * width + xStart2];\n outImageData[v * width + u] = sum === 5 ? 1 : 0;\n }\n }\n };\n\n CVUtils.subtract = function(aImageWrapper, bImageWrapper, resultImageWrapper) {\n if (!resultImageWrapper) {\n resultImageWrapper = aImageWrapper;\n }\n var length = aImageWrapper.data.length, aImageData = aImageWrapper.data, bImageData = bImageWrapper.data, cImageData = resultImageWrapper.data;\n\n while (length--) {\n cImageData[length] = aImageData[length] - bImageData[length];\n }\n };\n\n CVUtils.bitwiseOr = function(aImageWrapper, bImageWrapper, resultImageWrapper) {\n if (!resultImageWrapper) {\n resultImageWrapper = aImageWrapper;\n }\n var length = aImageWrapper.data.length, aImageData = aImageWrapper.data, bImageData = bImageWrapper.data, cImageData = resultImageWrapper.data;\n\n while (length--) {\n cImageData[length] = aImageData[length] || bImageData[length];\n }\n };\n\n CVUtils.countNonZero = function(imageWrapper) {\n var length = imageWrapper.data.length, data = imageWrapper.data, sum = 0;\n\n while (length--) {\n sum += data[length];\n }\n return sum;\n };\n\n CVUtils.topGeneric = function(list, top, scoreFunc) {\n var i, minIdx = 0, min = 0, queue = [], score, hit, pos;\n\n for ( i = 0; i < top; i++) {\n queue[i] = {\n score : 0,\n item : null\n };\n }\n\n for ( i = 0; i < list.length; i++) {\n score = scoreFunc.apply(this, [list[i]]);\n if (score > min) {\n hit = queue[minIdx];\n hit.score = score;\n hit.item = list[i];\n min = Number.MAX_VALUE;\n for ( pos = 0; pos < top; pos++) {\n if (queue[pos].score < min) {\n min = queue[pos].score;\n minIdx = pos;\n }\n }\n }\n }\n\n return queue;\n };\n\n CVUtils.grayArrayFromImage = function(htmlImage, offsetX, ctx, array) {\n ctx.drawImage(htmlImage, offsetX, 0, htmlImage.width, htmlImage.height);\n var ctxData = ctx.getImageData(offsetX, 0, htmlImage.width, htmlImage.height).data;\n CVUtils.computeGray(ctxData, array);\n };\n\n CVUtils.grayArrayFromContext = function(ctx, size, offset, array) {\n var ctxData = ctx.getImageData(offset.x, offset.y, size.x, size.y).data;\n CVUtils.computeGray(ctxData, array);\n };\n\n CVUtils.grayAndHalfSampleFromCanvasData = function(canvasData, size, outArray) {\n var topRowIdx = 0;\n var bottomRowIdx = size.x;\n var endIdx = Math.floor(canvasData.length / 4);\n var outWidth = size.x / 2;\n var outImgIdx = 0;\n var inWidth = size.x;\n var i;\n\n while (bottomRowIdx < endIdx) {\n for ( i = 0; i < outWidth; i++) {\n outArray[outImgIdx] = Math.floor(((0.299 * canvasData[topRowIdx * 4 + 0] + 0.587 * canvasData[topRowIdx * 4 + 1] + 0.114 * canvasData[topRowIdx * 4 + 2]) + (0.299 * canvasData[(topRowIdx + 1) * 4 + 0] + 0.587 * canvasData[(topRowIdx + 1) * 4 + 1] + 0.114 * canvasData[(topRowIdx + 1) * 4 + 2]) + (0.299 * canvasData[(bottomRowIdx) * 4 + 0] + 0.587 * canvasData[(bottomRowIdx) * 4 + 1] + 0.114 * canvasData[(bottomRowIdx) * 4 + 2]) + (0.299 * canvasData[(bottomRowIdx + 1) * 4 + 0] + 0.587 * canvasData[(bottomRowIdx + 1) * 4 + 1] + 0.114 * canvasData[(bottomRowIdx + 1) * 4 + 2])) / 4);\n outImgIdx++;\n topRowIdx = topRowIdx + 2;\n bottomRowIdx = bottomRowIdx + 2;\n }\n topRowIdx = topRowIdx + inWidth;\n bottomRowIdx = bottomRowIdx + inWidth;\n }\n\n };\n\n CVUtils.computeGray = function(imageData, outArray, config) {\n var l = (imageData.length / 4) | 0,\n i,\n singleChannel = config && config.singleChannel === true;\n\n if (singleChannel) {\n for (i = 0; i < l; i++) {\n outArray[i] = imageData[i * 4 + 0];\n }\n } else {\n for (i = 0; i < l; i++) {\n outArray[i] = Math.floor(0.299 * imageData[i * 4 + 0] + 0.587 * imageData[i * 4 + 1] + 0.114 * imageData[i * 4 + 2]);\n }\n }\n };\n\n CVUtils.loadImageArray = function(src, callback, canvas) {\n if (!canvas)\n canvas = document.createElement('canvas');\n var img = new Image();\n img.callback = callback;\n img.onload = function() {\n canvas.width = this.width;\n canvas.height = this.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(this, 0, 0);\n var array = new Uint8Array(this.width * this.height);\n ctx.drawImage(this, 0, 0);\n var data = ctx.getImageData(0, 0, this.width, this.height).data;\n CVUtils.computeGray(data, array);\n this.callback(array, {\n x : this.width,\n y : this.height\n }, this);\n };\n img.src = src;\n };\n\n /**\n * @param inImg {ImageWrapper} input image to be sampled\n * @param outImg {ImageWrapper} to be stored in\n */\n CVUtils.halfSample = function(inImgWrapper, outImgWrapper) {\n var inImg = inImgWrapper.data;\n var inWidth = inImgWrapper.size.x;\n var outImg = outImgWrapper.data;\n var topRowIdx = 0;\n var bottomRowIdx = inWidth;\n var endIdx = inImg.length;\n var outWidth = inWidth / 2;\n var outImgIdx = 0;\n while (bottomRowIdx < endIdx) {\n for (var i = 0; i < outWidth; i++) {\n outImg[outImgIdx] = Math.floor((inImg[topRowIdx] + inImg[topRowIdx + 1] + inImg[bottomRowIdx] + inImg[bottomRowIdx + 1]) / 4);\n outImgIdx++;\n topRowIdx = topRowIdx + 2;\n bottomRowIdx = bottomRowIdx + 2;\n }\n topRowIdx = topRowIdx + inWidth;\n bottomRowIdx = bottomRowIdx + inWidth;\n }\n };\n\n CVUtils.hsv2rgb = function(hsv, rgb) {\n var h = hsv[0], s = hsv[1], v = hsv[2], c = v * s, x = c * (1 - Math.abs((h / 60) % 2 - 1)), m = v - c, r = 0, g = 0, b = 0;\n rgb = rgb || [0, 0, 0];\n\n if (h < 60) {\n r = c;\n g = x;\n } else if (h < 120) {\n r = x;\n g = c;\n } else if (h < 180) {\n g = c;\n b = x;\n } else if (h < 240) {\n g = x;\n b = c;\n } else if (h < 300) {\n r = x;\n b = c;\n } else if (h < 360) {\n r = c;\n b = x;\n }\n rgb[0] = ((r + m) * 255) | 0;\n rgb[1] = ((g + m) * 255) | 0;\n rgb[2] = ((b + m) * 255) | 0;\n return rgb;\n };\n\n CVUtils._computeDivisors = function(n) {\n var largeDivisors = [],\n divisors = [],\n i;\n\n for (i = 1; i < Math.sqrt(n) + 1; i++) {\n if (n % i === 0) {\n divisors.push(i);\n if (i !== n/i) {\n largeDivisors.unshift(Math.floor(n/i));\n }\n }\n }\n return divisors.concat(largeDivisors);\n };\n\n CVUtils._computeIntersection = function(arr1, arr2) {\n var i = 0,\n j = 0,\n result = [];\n\n while (i < arr1.length && j < arr2.length) {\n if (arr1[i] === arr2[j]) {\n result.push(arr1[i]);\n i++;\n j++;\n } else if (arr1[i] > arr2[j]) {\n j++;\n } else {\n i++;\n }\n }\n return result;\n };\n\n CVUtils.calculatePatchSize = function(patchSize, imgSize) {\n var divisorsX = this._computeDivisors(imgSize.x),\n divisorsY = this._computeDivisors(imgSize.y),\n wideSide = Math.max(imgSize.x, imgSize.y),\n common = this._computeIntersection(divisorsX, divisorsY),\n nrOfPatchesList = [8, 10, 15, 20, 32, 60, 80],\n nrOfPatchesMap = {\n \"x-small\": 5,\n \"small\": 4,\n \"medium\": 3,\n \"large\": 2,\n \"x-large\": 1\n },\n nrOfPatchesIdx = nrOfPatchesMap[patchSize] || nrOfPatchesMap.medium,\n nrOfPatches = nrOfPatchesList[nrOfPatchesIdx],\n desiredPatchSize = Math.floor(wideSide/nrOfPatches),\n optimalPatchSize;\n\n function findPatchSizeForDivisors(divisors) {\n var i = 0,\n found = divisors[Math.floor(divisors.length/2)];\n\n while(i < (divisors.length - 1) && divisors[i] < desiredPatchSize) {\n i++;\n }\n if (i > 0) {\n if (Math.abs(divisors[i] - desiredPatchSize) > Math.abs(divisors[i-1] - desiredPatchSize)) {\n found = divisors[i-1];\n } else {\n found = divisors[i];\n }\n }\n if (desiredPatchSize / found < nrOfPatchesList[nrOfPatchesIdx+1] / nrOfPatchesList[nrOfPatchesIdx] &&\n desiredPatchSize / found > nrOfPatchesList[nrOfPatchesIdx-1]/nrOfPatchesList[nrOfPatchesIdx] ) {\n return {x: found, y: found};\n }\n return null;\n }\n\n optimalPatchSize = findPatchSizeForDivisors(common);\n if (!optimalPatchSize) {\n optimalPatchSize = findPatchSizeForDivisors(this._computeDivisors(wideSide));\n if (!optimalPatchSize) {\n optimalPatchSize = findPatchSizeForDivisors((this._computeDivisors(desiredPatchSize * nrOfPatches)));\n }\n }\n return optimalPatchSize;\n };\n\n CVUtils._parseCSSDimensionValues = function(value) {\n var dimension = {\n value: parseFloat(value),\n unit: value.indexOf(\"%\") === value.length-1 ? \"%\" : \"%\"\n };\n\n return dimension;\n };\n\n CVUtils._dimensionsConverters = {\n top: function(dimension, context) {\n if (dimension.unit === \"%\") {\n return Math.floor(context.height * (dimension.value / 100));\n }\n },\n right: function(dimension, context) {\n if (dimension.unit === \"%\") {\n return Math.floor(context.width - (context.width * (dimension.value / 100)));\n }\n },\n bottom: function(dimension, context) {\n if (dimension.unit === \"%\") {\n return Math.floor(context.height - (context.height * (dimension.value / 100)));\n }\n },\n left: function(dimension, context) {\n if (dimension.unit === \"%\") {\n return Math.floor(context.width * (dimension.value / 100));\n }\n }\n };\n\n CVUtils.computeImageArea = function(inputWidth, inputHeight, area) {\n var context = {width: inputWidth, height: inputHeight};\n\n var parsedArea = Object.keys(area).reduce(function(result, key) {\n var value = area[key],\n parsed = CVUtils._parseCSSDimensionValues(value),\n calculated = CVUtils._dimensionsConverters[key](parsed, context);\n\n result[key] = calculated;\n return result;\n }, {});\n\n return {\n sx: parsedArea.left,\n sy: parsedArea.top,\n sw: parsedArea.right - parsedArea.left,\n sh: parsedArea.bottom - parsedArea.top\n };\n };\n\n return (CVUtils);\n});\n\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define, vec2, mat2 */\n\ndefine('image_wrapper',[\n \"subImage\",\n \"cv_utils\",\n \"array_helper\"\n ], \n function(SubImage, CVUtils, ArrayHelper) {\n \n 'use strict';\n\n /**\n * Represents a basic image combining the data and size.\n * In addition, some methods for manipulation are contained.\n * @param size {x,y} The size of the image in pixel\n * @param data {Array} If given, a flat array containing the pixel data\n * @param ArrayType {Type} If given, the desired DataType of the Array (may be typed/non-typed)\n * @param initialize {Boolean} Indicating if the array should be initialized on creation.\n * @returns {ImageWrapper}\n */\n function ImageWrapper(size, data, ArrayType, initialize) {\n if (!data) {\n if (ArrayType) {\n this.data = new ArrayType(size.x * size.y);\n if (ArrayType === Array && initialize) {\n ArrayHelper.init(this.data, 0);\n }\n } else {\n this.data = new Uint8Array(size.x * size.y);\n if (Uint8Array === Array && initialize) {\n ArrayHelper.init(this.data, 0);\n }\n }\n\n } else {\n this.data = data;\n }\n this.size = size;\n }\n\n /**\n * tests if a position is within the image with a given offset\n * @param imgRef {x, y} The location to test\n * @param border Number the padding value in pixel\n * @returns {Boolean} true if location inside the image's border, false otherwise\n * @see cvd/image.h\n */\n ImageWrapper.prototype.inImageWithBorder = function(imgRef, border) {\n return (imgRef.x >= border) && (imgRef.y >= border) && (imgRef.x < (this.size.x - border)) && (imgRef.y < (this.size.y - border));\n };\n\n /**\n * Transforms an image according to the given affine-transformation matrix.\n * @param inImg ImageWrapper a image containing the information to be extracted.\n * @param outImg ImageWrapper the image to be filled. The whole image out image is filled by the in image.\n * @param M mat2 the matrix used to map point in the out matrix to those in the in matrix\n * @param inOrig vec2 origin in the in image\n * @param outOrig vec2 origin in the out image\n * @returns Number the number of pixels not in the in image\n * @see cvd/vision.h\n */\n ImageWrapper.transform = function(inImg, outImg, M, inOrig, outOrig) {\n var w = outImg.size.x, h = outImg.size.y, iw = inImg.size.x, ih = inImg.size.y;\n var across = vec2.create([M[0], M[2]]);\n var down = vec2.create([M[1], M[3]]);\n var defaultValue = 0;\n\n var p0 = vec2.subtract(inOrig, mat2.xVec2(M, outOrig, vec2.create()), vec2.create());\n\n var min_x = p0[0], min_y = p0[1];\n var max_x = min_x, max_y = min_y;\n var p, i, j;\n\n var sampleFunc = ImageWrapper.sample;\n\n if (across[0] < 0)\n min_x += w * across[0];\n else\n max_x += w * across[0];\n\n if (down[0] < 0)\n min_x += h * down[0];\n else\n max_x += h * down[0];\n\n if (across[1] < 0)\n min_y += w * across[1];\n else\n max_y += w * across[1];\n\n if (down[1] < 0)\n min_y += h * down[1];\n else\n max_y += h * down[1];\n\n var carrigeReturn = vec2.subtract(down, vec2.scale(across, w, vec2.create()), vec2.create());\n\n if (min_x >= 0 && min_y >= 0 && max_x < iw - 1 && max_y < ih - 1) {\n p = p0;\n for ( i = 0; i < h; ++i, vec2.add(p, carrigeReturn))\n for ( j = 0; j < w; ++j, vec2.add(p, across))\n outImg.set(j, i, sampleFunc(inImg, p[0], p[1]));\n return 0;\n } else {\n var x_bound = iw - 1;\n var y_bound = ih - 1;\n var count = 0;\n p = p0;\n for ( i = 0; i < h; ++i, vec2.add(p, carrigeReturn)) {\n for ( j = 0; j < w; ++j, vec2.add(p, across)) {\n if (0 <= p[0] && 0 <= p[1] && p[0] < x_bound && p[1] < y_bound) {\n outImg.set(j, i, sampleFunc(inImg, p[0], p[1]));\n } else {\n outImg.set(j, i, defaultValue); ++count;\n }\n }\n }\n return count;\n }\n };\n\n /**\n * Performs bilinear sampling\n * @param inImg Image to extract sample from\n * @param x the x-coordinate\n * @param y the y-coordinate\n * @returns the sampled value\n * @see cvd/vision.h\n */\n ImageWrapper.sample = function(inImg, x, y) {\n var lx = Math.floor(x);\n var ly = Math.floor(y);\n var w = inImg.size.x;\n var base = ly * inImg.size.x + lx;\n var a = inImg.data[base + 0];\n var b = inImg.data[base + 1];\n var c = inImg.data[base + w];\n var d = inImg.data[base + w + 1];\n var e = a - b;\n x -= lx;\n y -= ly;\n\n var result = Math.floor(x * (y * (e - c + d) - e) + y * (c - a) + a);\n return result;\n };\n\n /**\n * Initializes a given array. Sets each element to zero.\n * @param array {Array} The array to initialize\n */\n ImageWrapper.clearArray = function(array) {\n var l = array.length;\n while (l--) {\n array[l] = 0;\n }\n };\n\n /**\n * Creates a {SubImage} from the current image ({this}).\n * @param from {ImageRef} The position where to start the {SubImage} from. (top-left corner)\n * @param size {ImageRef} The size of the resulting image\n * @returns {SubImage} A shared part of the original image\n */\n ImageWrapper.prototype.subImage = function(from, size) {\n return new SubImage(from, size, this);\n };\n\n /**\n * Creates an {ImageWrapper) and copies the needed underlying image-data area\n * @param imageWrapper {ImageWrapper} The target {ImageWrapper} where the data should be copied\n * @param from {ImageRef} The location where to copy from (top-left location)\n */\n ImageWrapper.prototype.subImageAsCopy = function(imageWrapper, from) {\n var sizeY = imageWrapper.size.y, sizeX = imageWrapper.size.x;\n var x, y;\n for ( x = 0; x < sizeX; x++) {\n for ( y = 0; y < sizeY; y++) {\n imageWrapper.data[y * sizeX + x] = this.data[(from.y + y) * this.size.x + from.x + x];\n }\n }\n };\n\n ImageWrapper.prototype.copyTo = function(imageWrapper) {\n var length = this.data.length, srcData = this.data, dstData = imageWrapper.data;\n\n while (length--) {\n dstData[length] = srcData[length];\n }\n };\n\n /**\n * Retrieves a given pixel position from the image\n * @param x {Number} The x-position\n * @param y {Number} The y-position\n * @returns {Number} The grayscale value at the pixel-position\n */\n ImageWrapper.prototype.get = function(x, y) {\n return this.data[y * this.size.x + x];\n };\n\n /**\n * Retrieves a given pixel position from the image\n * @param x {Number} The x-position\n * @param y {Number} The y-position\n * @returns {Number} The grayscale value at the pixel-position\n */\n ImageWrapper.prototype.getSafe = function(x, y) {\n var i;\n \n if (!this.indexMapping) {\n this.indexMapping = {\n x : [],\n y : []\n };\n for (i = 0; i < this.size.x; i++) {\n this.indexMapping.x[i] = i;\n this.indexMapping.x[i + this.size.x] = i;\n }\n for (i = 0; i < this.size.y; i++) {\n this.indexMapping.y[i] = i;\n this.indexMapping.y[i + this.size.y] = i;\n }\n }\n return this.data[(this.indexMapping.y[y + this.size.y]) * this.size.x + this.indexMapping.x[x + this.size.x]];\n };\n\n /**\n * Sets a given pixel position in the image\n * @param x {Number} The x-position\n * @param y {Number} The y-position\n * @param value {Number} The grayscale value to set\n * @returns {ImageWrapper} The Image itself (for possible chaining)\n */\n ImageWrapper.prototype.set = function(x, y, value) {\n this.data[y * this.size.x + x] = value;\n return this;\n };\n\n /**\n * Sets the border of the image (1 pixel) to zero\n */\n ImageWrapper.prototype.zeroBorder = function() {\n var i, width = this.size.x, height = this.size.y, data = this.data;\n for ( i = 0; i < width; i++) {\n data[i] = data[(height - 1) * width + i] = 0;\n }\n for ( i = 1; i < height - 1; i++) {\n data[i * width] = data[i * width + (width - 1)] = 0;\n }\n };\n\n /**\n * Inverts a binary image in place\n */\n ImageWrapper.prototype.invert = function() {\n var data = this.data, length = data.length;\n\n while (length--) {\n data[length] = data[length] ? 0 : 1;\n }\n\n };\n\n ImageWrapper.prototype.convolve = function(kernel) {\n var x, y, kx, ky, kSize = (kernel.length / 2) | 0, accu = 0;\n for ( y = 0; y < this.size.y; y++) {\n for ( x = 0; x < this.size.x; x++) {\n accu = 0;\n for ( ky = -kSize; ky <= kSize; ky++) {\n for ( kx = -kSize; kx <= kSize; kx++) {\n accu += kernel[ky+kSize][kx + kSize] * this.getSafe(x + kx, y + ky);\n }\n }\n this.data[y * this.size.x + x] = accu;\n }\n }\n };\n\n ImageWrapper.prototype.moments = function(labelcount) {\n var data = this.data,\n x,\n y,\n height = this.size.y,\n width = this.size.x,\n val,\n ysq,\n labelsum = [],\n i,\n label,\n mu11,\n mu02,\n mu20,\n x_,\n y_,\n tmp,\n result = [],\n PI = Math.PI,\n PI_4 = PI / 4;\n\n if (labelcount <= 0) {\n return result;\n }\n\n for ( i = 0; i < labelcount; i++) {\n labelsum[i] = {\n m00 : 0,\n m01 : 0,\n m10 : 0,\n m11 : 0,\n m02 : 0,\n m20 : 0,\n theta : 0,\n rad : 0\n };\n }\n\n for ( y = 0; y < height; y++) {\n ysq = y * y;\n for ( x = 0; x < width; x++) {\n val = data[y * width + x];\n if (val > 0) {\n label = labelsum[val - 1];\n label.m00 += 1;\n label.m01 += y;\n label.m10 += x;\n label.m11 += x * y;\n label.m02 += ysq;\n label.m20 += x * x;\n }\n }\n }\n\n for ( i = 0; i < labelcount; i++) {\n label = labelsum[i];\n if (!isNaN(label.m00) && label.m00 !== 0) {\n x_ = label.m10 / label.m00;\n y_ = label.m01 / label.m00;\n mu11 = label.m11 / label.m00 - x_ * y_;\n mu02 = label.m02 / label.m00 - y_ * y_;\n mu20 = label.m20 / label.m00 - x_ * x_;\n tmp = (mu02 - mu20) / (2 * mu11);\n tmp = 0.5 * Math.atan(tmp) + (mu11 >= 0 ? PI_4 : -PI_4 ) + PI;\n label.theta = (tmp * 180 / PI + 90) % 180 - 90;\n if (label.theta < 0) {\n label.theta += 180;\n }\n label.rad = tmp > PI ? tmp - PI : tmp;\n label.vec = vec2.create([Math.cos(tmp), Math.sin(tmp)]);\n result.push(label);\n }\n }\n\n return result;\n };\n\n /**\n * Displays the {ImageWrapper} in a given canvas\n * @param canvas {Canvas} The canvas element to write to\n * @param scale {Number} Scale which is applied to each pixel-value\n */\n ImageWrapper.prototype.show = function(canvas, scale) {\n var ctx,\n frame,\n data,\n current,\n pixel,\n x,\n y;\n \n if (!scale) {\n scale = 1.0;\n }\n ctx = canvas.getContext('2d');\n canvas.width = this.size.x;\n canvas.height = this.size.y;\n frame = ctx.getImageData(0, 0, canvas.width, canvas.height);\n data = frame.data;\n current = 0;\n for (y = 0; y < this.size.y; y++) {\n for (x = 0; x < this.size.x; x++) {\n pixel = y * this.size.x + x;\n current = this.get(x, y) * scale;\n data[pixel * 4 + 0] = current;\n data[pixel * 4 + 1] = current;\n data[pixel * 4 + 2] = current;\n data[pixel * 4 + 3] = 255;\n }\n }\n //frame.data = data;\n ctx.putImageData(frame, 0, 0);\n };\n\n /**\n * Displays the {SubImage} in a given canvas\n * @param canvas {Canvas} The canvas element to write to\n * @param scale {Number} Scale which is applied to each pixel-value\n */\n ImageWrapper.prototype.overlay = function(canvas, scale, from) {\n if (!scale || scale < 0 || scale > 360) {\n scale = 360;\n }\n var hsv = [0, 1, 1];\n var rgb = [0, 0, 0];\n var whiteRgb = [255, 255, 255];\n var blackRgb = [0, 0, 0];\n var result = [];\n var ctx = canvas.getContext('2d');\n var frame = ctx.getImageData(from.x, from.y, this.size.x, this.size.y);\n var data = frame.data;\n var length = this.data.length;\n while (length--) {\n hsv[0] = this.data[length] * scale;\n result = hsv[0] <= 0 ? whiteRgb : hsv[0] >= 360 ? blackRgb : CVUtils.hsv2rgb(hsv, rgb);\n data[length * 4 + 0] = result[0];\n data[length * 4 + 1] = result[1];\n data[length * 4 + 2] = result[2];\n data[length * 4 + 3] = 255;\n }\n ctx.putImageData(frame, from.x, from.y);\n };\n\n return (ImageWrapper);\n}); \n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\n/**\n * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization\n */\ndefine('tracer',[],function() {\n \"use strict\";\n \n var Tracer = {\n searchDirections : [[0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1], [-1, 0], [-1, 1]],\n create : function(imageWrapper, labelWrapper) {\n var imageData = imageWrapper.data,\n labelData = labelWrapper.data,\n searchDirections = this.searchDirections,\n width = imageWrapper.size.x,\n pos;\n\n function trace(current, color, label, edgelabel) {\n var i,\n y,\n x;\n\n for ( i = 0; i < 7; i++) {\n y = current.cy + searchDirections[current.dir][0];\n x = current.cx + searchDirections[current.dir][1];\n pos = y * width + x;\n if ((imageData[pos] === color) && ((labelData[pos] === 0) || (labelData[pos] === label))) {\n labelData[pos] = label;\n current.cy = y;\n current.cx = x;\n return true;\n } else {\n if (labelData[pos] === 0) {\n labelData[pos] = edgelabel;\n }\n current.dir = (current.dir + 1) % 8;\n }\n }\n return false;\n }\n\n function vertex2D(x, y, dir) {\n return {\n dir : dir,\n x : x,\n y : y,\n next : null,\n prev : null\n };\n }\n\n function contourTracing(sy, sx, label, color, edgelabel) {\n var Fv = null,\n Cv,\n P,\n ldir,\n current = {\n cx : sx,\n cy : sy,\n dir : 0\n };\n\n if (trace(current, color, label, edgelabel)) {\n Fv = vertex2D(sx, sy, current.dir);\n Cv = Fv;\n ldir = current.dir;\n P = vertex2D(current.cx, current.cy, 0);\n P.prev = Cv;\n Cv.next = P;\n P.next = null;\n Cv = P;\n do {\n current.dir = (current.dir + 6) % 8;\n trace(current, color, label, edgelabel);\n if (ldir != current.dir) {\n Cv.dir = current.dir;\n P = vertex2D(current.cx, current.cy, 0);\n P.prev = Cv;\n Cv.next = P;\n P.next = null;\n Cv = P;\n } else {\n Cv.dir = ldir;\n Cv.x = current.cx;\n Cv.y = current.cy;\n }\n ldir = current.dir;\n } while(current.cx != sx || current.cy != sy);\n Fv.prev = Cv.prev;\n Cv.prev.next = Fv;\n }\n return Fv;\n }\n\n return {\n trace : function(current, color, label, edgelabel) {\n return trace(current, color, label, edgelabel);\n },\n contourTracing : function(sy, sx, label, color, edgelabel) {\n return contourTracing(sy, sx, label, color, edgelabel);\n }\n };\n }\n };\n\n return (Tracer);\n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\n/**\n * http://www.codeproject.com/Tips/407172/Connected-Component-Labeling-and-Vectorization\n */\ndefine('rasterizer',[\"tracer\"], function(Tracer) {\n \"use strict\";\n\n var Rasterizer = {\n createContour2D : function() {\n return {\n dir : null,\n index : null,\n firstVertex : null,\n insideContours : null,\n nextpeer : null,\n prevpeer : null\n };\n },\n CONTOUR_DIR : {\n CW_DIR : 0,\n CCW_DIR : 1,\n UNKNOWN_DIR : 2\n },\n DIR : {\n OUTSIDE_EDGE : -32767,\n INSIDE_EDGE : -32766\n },\n create : function(imageWrapper, labelWrapper) {\n var imageData = imageWrapper.data,\n labelData = labelWrapper.data,\n width = imageWrapper.size.x,\n height = imageWrapper.size.y,\n tracer = Tracer.create(imageWrapper, labelWrapper);\n\n return {\n rasterize : function(depthlabel) {\n var color,\n bc,\n lc,\n labelindex,\n cx,\n cy,\n colorMap = [],\n vertex,\n p,\n cc,\n sc,\n pos,\n connectedCount = 0,\n i;\n\n for ( i = 0; i < 400; i++) {\n colorMap[i] = 0;\n }\n\n colorMap[0] = imageData[0];\n cc = null;\n for ( cy = 1; cy < height - 1; cy++) {\n labelindex = 0;\n bc = colorMap[0];\n for ( cx = 1; cx < width - 1; cx++) {\n pos = cy * width + cx;\n if (labelData[pos] === 0) {\n color = imageData[pos];\n if (color !== bc) {\n if (labelindex === 0) {\n lc = connectedCount + 1;\n colorMap[lc] = color;\n bc = color;\n vertex = tracer.contourTracing(cy, cx, lc, color, Rasterizer.DIR.OUTSIDE_EDGE);\n if (vertex !== null) {\n connectedCount++;\n labelindex = lc;\n p = Rasterizer.createContour2D();\n p.dir = Rasterizer.CONTOUR_DIR.CW_DIR;\n p.index = labelindex;\n p.firstVertex = vertex;\n p.nextpeer = cc;\n p.insideContours = null;\n if (cc !== null) {\n cc.prevpeer = p;\n }\n cc = p;\n }\n } else {\n vertex = tracer.contourTracing(cy, cx, Rasterizer.DIR.INSIDE_EDGE, color, labelindex);\n if (vertex !== null) {\n p = Rasterizer.createContour2D();\n p.firstVertex = vertex;\n p.insideContours = null;\n if (depthlabel === 0) {\n p.dir = Rasterizer.CONTOUR_DIR.CCW_DIR;\n } else {\n p.dir = Rasterizer.CONTOUR_DIR.CW_DIR;\n }\n p.index = depthlabel;\n sc = cc;\n while ((sc !== null) && sc.index !== labelindex) {\n sc = sc.nextpeer;\n }\n if (sc !== null) {\n p.nextpeer = sc.insideContours;\n if (sc.insideContours !== null) {\n sc.insideContours.prevpeer = p;\n }\n sc.insideContours = p;\n }\n }\n }\n } else {\n labelData[pos] = labelindex;\n }\n } else if (labelData[pos] === Rasterizer.DIR.OUTSIDE_EDGE || labelData[pos] === Rasterizer.DIR.INSIDE_EDGE) {\n labelindex = 0;\n if (labelData[pos] === Rasterizer.DIR.INSIDE_EDGE) {\n bc = imageData[pos];\n } else {\n bc = colorMap[0];\n }\n } else {\n labelindex = labelData[pos];\n bc = colorMap[labelindex];\n }\n }\n }\n sc = cc;\n while (sc !== null) {\n sc.index = depthlabel;\n sc = sc.nextpeer;\n }\n return {\n cc : cc,\n count : connectedCount\n };\n },\n debug: {\n drawContour : function(canvas, firstContour) {\n var ctx = canvas.getContext(\"2d\"),\n pq = firstContour,\n iq,\n q,\n p;\n \n ctx.strokeStyle = \"red\";\n ctx.fillStyle = \"red\";\n ctx.lineWidth = 1;\n \n if (pq !== null) {\n iq = pq.insideContours;\n } else {\n iq = null;\n }\n \n while (pq !== null) {\n if (iq !== null) {\n q = iq;\n iq = iq.nextpeer;\n } else {\n q = pq;\n pq = pq.nextpeer;\n if (pq !== null) {\n iq = pq.insideContours;\n } else {\n iq = null;\n }\n }\n \n switch(q.dir) {\n case Rasterizer.CONTOUR_DIR.CW_DIR:\n ctx.strokeStyle = \"red\";\n break;\n case Rasterizer.CONTOUR_DIR.CCW_DIR:\n ctx.strokeStyle = \"blue\";\n break;\n case Rasterizer.CONTOUR_DIR.UNKNOWN_DIR:\n ctx.strokeStyle = \"green\";\n break;\n }\n \n p = q.firstVertex;\n ctx.beginPath();\n ctx.moveTo(p.x, p.y);\n do {\n p = p.next;\n ctx.lineTo(p.x, p.y);\n } while(p !== q.firstVertex);\n ctx.stroke();\n }\n }\n }\n };\n }\n };\n\n return (Rasterizer);\n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true, -W041: false */\n/* global define */\n\ndefine('skeletonizer',[],function() {\n \"use strict\";\n\n /* @preserve ASM BEGIN */\n function Skeletonizer(stdlib, foreign, buffer) {\n \"use asm\";\n\n var images = new stdlib.Uint8Array(buffer),\n size = foreign.size | 0,\n imul = stdlib.Math.imul;\n\n function erode(inImagePtr, outImagePtr) {\n inImagePtr = inImagePtr | 0;\n outImagePtr = outImagePtr | 0;\n\n var v = 0,\n u = 0,\n sum = 0,\n yStart1 = 0,\n yStart2 = 0,\n xStart1 = 0,\n xStart2 = 0,\n offset = 0;\n\n for ( v = 1; (v | 0) < ((size - 1) | 0); v = (v + 1) | 0) {\n offset = (offset + size) | 0;\n for ( u = 1; (u | 0) < ((size - 1) | 0); u = (u + 1) | 0) {\n yStart1 = (offset - size) | 0;\n yStart2 = (offset + size) | 0;\n xStart1 = (u - 1) | 0;\n xStart2 = (u + 1) | 0;\n sum = ((images[(inImagePtr + yStart1 + xStart1) | 0] | 0) + (images[(inImagePtr + yStart1 + xStart2) | 0] | 0) + (images[(inImagePtr + offset + u) | 0] | 0) + (images[(inImagePtr + yStart2 + xStart1) | 0] | 0) + (images[(inImagePtr + yStart2 + xStart2) | 0] | 0)) | 0;\n if ((sum | 0) == (5 | 0)) {\n images[(outImagePtr + offset + u) | 0] = 1;\n } else {\n images[(outImagePtr + offset + u) | 0] = 0;\n }\n }\n }\n return;\n }\n\n function subtract(aImagePtr, bImagePtr, outImagePtr) {\n aImagePtr = aImagePtr | 0;\n bImagePtr = bImagePtr | 0;\n outImagePtr = outImagePtr | 0;\n\n var length = 0;\n\n length = imul(size, size) | 0;\n\n while ((length | 0) > 0) {\n length = (length - 1) | 0;\n images[(outImagePtr + length) | 0] = ((images[(aImagePtr + length) | 0] | 0) - (images[(bImagePtr + length) | 0] | 0)) | 0;\n }\n }\n\n function bitwiseOr(aImagePtr, bImagePtr, outImagePtr) {\n aImagePtr = aImagePtr | 0;\n bImagePtr = bImagePtr | 0;\n outImagePtr = outImagePtr | 0;\n\n var length = 0;\n\n length = imul(size, size) | 0;\n\n while ((length | 0) > 0) {\n length = (length - 1) | 0;\n images[(outImagePtr + length) | 0] = ((images[(aImagePtr + length) | 0] | 0) | (images[(bImagePtr + length) | 0] | 0)) | 0;\n }\n }\n\n function countNonZero(imagePtr) {\n imagePtr = imagePtr | 0;\n\n var sum = 0,\n length = 0;\n\n length = imul(size, size) | 0;\n\n while ((length | 0) > 0) {\n length = (length - 1) | 0;\n sum = ((sum | 0) + (images[(imagePtr + length) | 0] | 0)) | 0;\n }\n\n return (sum | 0);\n }\n\n function init(imagePtr, value) {\n imagePtr = imagePtr | 0;\n value = value | 0;\n\n var length = 0;\n\n length = imul(size, size) | 0;\n\n while ((length | 0) > 0) {\n length = (length - 1) | 0;\n images[(imagePtr + length) | 0] = value;\n }\n }\n\n function dilate(inImagePtr, outImagePtr) {\n inImagePtr = inImagePtr | 0;\n outImagePtr = outImagePtr | 0;\n\n var v = 0,\n u = 0,\n sum = 0,\n yStart1 = 0,\n yStart2 = 0,\n xStart1 = 0,\n xStart2 = 0,\n offset = 0;\n\n for ( v = 1; (v | 0) < ((size - 1) | 0); v = (v + 1) | 0) {\n offset = (offset + size) | 0;\n for ( u = 1; (u | 0) < ((size - 1) | 0); u = (u + 1) | 0) {\n yStart1 = (offset - size) | 0;\n yStart2 = (offset + size) | 0;\n xStart1 = (u - 1) | 0;\n xStart2 = (u + 1) | 0;\n sum = ((images[(inImagePtr + yStart1 + xStart1) | 0] | 0) + (images[(inImagePtr + yStart1 + xStart2) | 0] | 0) + (images[(inImagePtr + offset + u) | 0] | 0) + (images[(inImagePtr + yStart2 + xStart1) | 0] | 0) + (images[(inImagePtr + yStart2 + xStart2) | 0] | 0)) | 0;\n if ((sum | 0) > (0 | 0)) {\n images[(outImagePtr + offset + u) | 0] = 1;\n } else {\n images[(outImagePtr + offset + u) | 0] = 0;\n }\n }\n }\n return;\n }\n\n function memcpy(srcImagePtr, dstImagePtr) {\n srcImagePtr = srcImagePtr | 0;\n dstImagePtr = dstImagePtr | 0;\n\n var length = 0;\n\n length = imul(size, size) | 0;\n\n while ((length | 0) > 0) {\n length = (length - 1) | 0;\n images[(dstImagePtr + length) | 0] = (images[(srcImagePtr + length) | 0] | 0);\n }\n }\n\n function zeroBorder(imagePtr) {\n imagePtr = imagePtr | 0;\n\n var x = 0,\n y = 0;\n\n for ( x = 0; (x | 0) < ((size - 1) | 0); x = (x + 1) | 0) {\n images[(imagePtr + x) | 0] = 0;\n images[(imagePtr + y) | 0] = 0;\n y = ((y + size) - 1) | 0;\n images[(imagePtr + y) | 0] = 0;\n y = (y + 1) | 0;\n }\n for ( x = 0; (x | 0) < (size | 0); x = (x + 1) | 0) {\n images[(imagePtr + y) | 0] = 0;\n y = (y + 1) | 0;\n }\n }\n\n function skeletonize() {\n var subImagePtr = 0,\n erodedImagePtr = 0,\n tempImagePtr = 0,\n skelImagePtr = 0,\n sum = 0,\n done = 0;\n \n erodedImagePtr = imul(size, size) | 0;\n tempImagePtr = (erodedImagePtr + erodedImagePtr) | 0;\n skelImagePtr = (tempImagePtr + erodedImagePtr) | 0;\n\n // init skel-image\n init(skelImagePtr, 0);\n zeroBorder(subImagePtr);\n\n do {\n erode(subImagePtr, erodedImagePtr);\n dilate(erodedImagePtr, tempImagePtr);\n subtract(subImagePtr, tempImagePtr, tempImagePtr);\n bitwiseOr(skelImagePtr, tempImagePtr, skelImagePtr);\n memcpy(erodedImagePtr, subImagePtr);\n sum = countNonZero(subImagePtr) | 0;\n done = ((sum | 0) == 0 | 0);\n } while(!done);\n }\n\n return {\n skeletonize : skeletonize\n };\n }\n /* @preserve ASM END */\n\n return Skeletonizer;\n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('image_debug',[],function() {\n \"use strict\";\n \n return {\n drawRect: function(pos, size, ctx, style){\n ctx.strokeStyle = style.color;\n ctx.fillStyle = style.color;\n ctx.lineWidth = 1;\n ctx.beginPath();\n ctx.strokeRect(pos.x, pos.y, size.x, size.y);\n },\n drawPath: function(path, def, ctx, style) {\n ctx.strokeStyle = style.color;\n ctx.fillStyle = style.color;\n ctx.lineWidth = style.lineWidth;\n ctx.beginPath();\n ctx.moveTo(path[0][def.x], path[0][def.y]);\n for (var j = 1; j < path.length; j++) {\n ctx.lineTo(path[j][def.x], path[j][def.y]);\n }\n ctx.closePath();\n ctx.stroke();\n },\n drawImage: function(imageData, size, ctx) {\n var canvasData = ctx.getImageData(0, 0, size.x, size.y),\n data = canvasData.data,\n imageDataPos = imageData.length,\n canvasDataPos = data.length,\n value;\n\n if (canvasDataPos/imageDataPos !== 4) {\n return false;\n }\n while(imageDataPos--){\n value = imageData[imageDataPos];\n data[--canvasDataPos] = 255;\n data[--canvasDataPos] = value;\n data[--canvasDataPos] = value;\n data[--canvasDataPos] = value;\n }\n ctx.putImageData(canvasData, 0, 0);\n return true;\n }\n };\n \n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define, mat2, vec2 */\n\ndefine(\"barcode_locator\", [\"image_wrapper\", \"cv_utils\", \"rasterizer\", \"tracer\", \"skeletonizer\", \"array_helper\", \"image_debug\"],\nfunction(ImageWrapper, CVUtils, Rasterizer, Tracer, skeletonizer, ArrayHelper, ImageDebug) {\n\n var _config,\n _currentImageWrapper,\n _skelImageWrapper,\n _subImageWrapper,\n _labelImageWrapper,\n _patchGrid,\n _patchLabelGrid,\n _imageToPatchGrid,\n _binaryImageWrapper,\n _patchSize,\n _canvasContainer = {\n ctx : {\n binary : null\n },\n dom : {\n binary : null\n }\n },\n _numPatches = {x: 0, y: 0},\n _inputImageWrapper,\n _skeletonizer,\n self = this;\n\n function initBuffers() {\n var skeletonImageData;\n \n if (_config.halfSample) {\n _currentImageWrapper = new ImageWrapper({\n x : _inputImageWrapper.size.x / 2 | 0,\n y : _inputImageWrapper.size.y / 2 | 0\n });\n } else {\n _currentImageWrapper = _inputImageWrapper;\n }\n\n _patchSize = CVUtils.calculatePatchSize(_config.patchSize, _currentImageWrapper.size);\n\n _numPatches.x = _currentImageWrapper.size.x / _patchSize.x | 0;\n _numPatches.y = _currentImageWrapper.size.y / _patchSize.y | 0;\n\n _binaryImageWrapper = new ImageWrapper(_currentImageWrapper.size, undefined, Uint8Array, false);\n\n _labelImageWrapper = new ImageWrapper(_patchSize, undefined, Array, true);\n\n skeletonImageData = new ArrayBuffer(64*1024);\n _subImageWrapper = new ImageWrapper(_patchSize, new Uint8Array(skeletonImageData, 0, _patchSize.x * _patchSize.y));\n _skelImageWrapper = new ImageWrapper(_patchSize, new Uint8Array(skeletonImageData, _patchSize.x * _patchSize.y * 3, _patchSize.x * _patchSize.y), undefined, true);\n _skeletonizer = skeletonizer(self, {\n size : _patchSize.x\n }, skeletonImageData);\n\n _imageToPatchGrid = new ImageWrapper({\n x : (_currentImageWrapper.size.x / _subImageWrapper.size.x) | 0,\n y : (_currentImageWrapper.size.y / _subImageWrapper.size.y) | 0\n }, undefined, Array, true);\n _patchGrid = new ImageWrapper(_imageToPatchGrid.size, undefined, undefined, true);\n _patchLabelGrid = new ImageWrapper(_imageToPatchGrid.size, undefined, Int32Array, true);\n }\n\n function initCanvas() {\n if (_config.useWorker || typeof document === 'undefined') {\n return;\n }\n _canvasContainer.dom.binary = document.createElement(\"canvas\");\n _canvasContainer.dom.binary.className = \"binaryBuffer\";\n if (_config.showCanvas === true) {\n document.querySelector(\"#debug\").appendChild(_canvasContainer.dom.binary);\n }\n _canvasContainer.ctx.binary = _canvasContainer.dom.binary.getContext(\"2d\");\n _canvasContainer.dom.binary.width = _binaryImageWrapper.size.x;\n _canvasContainer.dom.binary.height = _binaryImageWrapper.size.y;\n }\n\n /**\n * Creates a bounding box which encloses all the given patches\n * @returns {Array} The minimal bounding box \n */\n function boxFromPatches(patches) {\n var overAvg, i, j, patch, transMat, minx = _binaryImageWrapper.size.x, miny = _binaryImageWrapper.size.y, maxx = -_binaryImageWrapper.size.x, maxy = -_binaryImageWrapper.size.y, box, scale;\n\n // draw all patches which are to be taken into consideration\n overAvg = 0;\n for ( i = 0; i < patches.length; i++) {\n patch = patches[i];\n overAvg += patch.rad;\n if (_config.showPatches) {\n ImageDebug.drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, {color: \"red\"});\n }\n }\n\n overAvg /= patches.length;\n overAvg = (overAvg * 180 / Math.PI + 90) % 180 - 90;\n if (overAvg < 0) {\n overAvg += 180;\n }\n\n //console.log(overAvg);\n overAvg = (180 - overAvg) * Math.PI / 180;\n transMat = mat2.create([Math.cos(overAvg), -Math.sin(overAvg), Math.sin(overAvg), Math.cos(overAvg)]);\n\n // iterate over patches and rotate by angle\n for ( i = 0; i < patches.length; i++) {\n patch = patches[i];\n for ( j = 0; j < 4; j++) {\n mat2.xVec2(transMat, patch.box[j]);\n }\n\n if (_config.boxFromPatches.showTransformed) {\n ImageDebug.drawPath(patch.box, {x: 0, y: 1}, _canvasContainer.ctx.binary, {color: '#99ff00', lineWidth: 2});\n }\n }\n\n // find bounding box\n for ( i = 0; i < patches.length; i++) {\n patch = patches[i];\n for ( j = 0; j < 4; j++) {\n if (patch.box[j][0] < minx) {\n minx = patch.box[j][0];\n }\n if (patch.box[j][0] > maxx) {\n maxx = patch.box[j][0];\n }\n if (patch.box[j][1] < miny) {\n miny = patch.box[j][1];\n }\n if (patch.box[j][1] > maxy) {\n maxy = patch.box[j][1];\n }\n }\n }\n\n box = [[minx, miny], [maxx, miny], [maxx, maxy], [minx, maxy]];\n\n if (_config.boxFromPatches.showTransformedBox) {\n ImageDebug.drawPath(box, {x: 0, y: 1}, _canvasContainer.ctx.binary, {color: '#ff0000', lineWidth: 2});\n }\n\n scale = _config.halfSample ? 2 : 1;\n // reverse rotation;\n transMat = mat2.inverse(transMat);\n for ( j = 0; j < 4; j++) {\n mat2.xVec2(transMat, box[j]);\n }\n\n if (_config.boxFromPatches.showBB) {\n ImageDebug.drawPath(box, {x: 0, y: 1}, _canvasContainer.ctx.binary, {color: '#ff0000', lineWidth: 2});\n }\n \n for ( j = 0; j < 4; j++) {\n vec2.scale(box[j], scale);\n }\n\n return box;\n }\n\n /**\n * Creates a binary image of the current image\n */\n function binarizeImage() {\n CVUtils.otsuThreshold(_currentImageWrapper, _binaryImageWrapper);\n _binaryImageWrapper.zeroBorder();\n if (_config.showCanvas) {\n _binaryImageWrapper.show(_canvasContainer.dom.binary, 255);\n }\n }\n \n /**\n * Iterate over the entire image\n * extract patches\n */\n function findPatches() {\n var i,\n j,\n x,\n y,\n moments,\n patchesFound = [],\n rasterizer,\n rasterResult,\n patch;\n for ( i = 0; i < _numPatches.x; i++) {\n for ( j = 0; j < _numPatches.y; j++) {\n\n x = _subImageWrapper.size.x * i;\n y = _subImageWrapper.size.y * j;\n\n // seperate parts\n skeletonize(x, y);\n\n // Rasterize, find individual bars\n _skelImageWrapper.zeroBorder();\n ArrayHelper.init(_labelImageWrapper.data, 0);\n rasterizer = Rasterizer.create(_skelImageWrapper, _labelImageWrapper);\n rasterResult = rasterizer.rasterize(0);\n\n if (_config.showLabels) {\n _labelImageWrapper.overlay(_canvasContainer.dom.binary, Math.floor(360 / rasterResult.count), {x : x, y : y});\n }\n\n // calculate moments from the skeletonized patch\n moments = _labelImageWrapper.moments(rasterResult.count);\n\n // extract eligible patches\n patchesFound = patchesFound.concat(describePatch(moments, [i, j], x, y));\n }\n }\n \n if (_config.showFoundPatches) {\n for ( i = 0; i < patchesFound.length; i++) {\n patch = patchesFound[i];\n ImageDebug.drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, {color: \"#99ff00\", lineWidth: 2});\n }\n }\n \n return patchesFound;\n }\n \n /**\n * Finds those connected areas which contain at least 6 patches\n * and returns them ordered DESC by the number of contained patches\n * @param {Number} maxLabel \n */\n function findBiggestConnectedAreas(maxLabel){\n var i,\n sum,\n labelHist = [],\n topLabels = [];\n \n for ( i = 0; i < maxLabel; i++) {\n labelHist.push(0);\n }\n sum = _patchLabelGrid.data.length;\n while (sum--) {\n if (_patchLabelGrid.data[sum] > 0) {\n labelHist[_patchLabelGrid.data[sum] - 1]++;\n }\n }\n\n labelHist = labelHist.map(function(val, idx) {\n return {\n val : val,\n label : idx + 1\n };\n });\n\n labelHist.sort(function(a, b) {\n return b.val - a.val;\n });\n\n // extract top areas with at least 6 patches present\n topLabels = labelHist.filter(function(el) {\n return el.val >= 5;\n });\n \n return topLabels;\n }\n \n /**\n * \n */\n function findBoxes(topLabels, maxLabel) {\n var i,\n j,\n sum,\n patches = [],\n patch,\n box,\n boxes = [],\n hsv = [0, 1, 1],\n rgb = [0, 0, 0];\n \n for ( i = 0; i < topLabels.length; i++) {\n sum = _patchLabelGrid.data.length;\n patches.length = 0;\n while (sum--) {\n if (_patchLabelGrid.data[sum] === topLabels[i].label) {\n patch = _imageToPatchGrid.data[sum];\n patches.push(patch);\n }\n }\n box = boxFromPatches(patches);\n if (box) {\n boxes.push(box);\n\n // draw patch-labels if requested\n if (_config.showRemainingPatchLabels) {\n for ( j = 0; j < patches.length; j++) {\n patch = patches[j];\n hsv[0] = (topLabels[i].label / (maxLabel + 1)) * 360;\n CVUtils.hsv2rgb(hsv, rgb);\n ImageDebug.drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, {color: \"rgb(\" + rgb.join(\",\") + \")\", lineWidth: 2});\n }\n }\n }\n }\n return boxes;\n }\n\n /**\n * Find similar moments (via cluster)\n * @param {Object} moments\n */\n function similarMoments(moments) {\n var clusters = CVUtils.cluster(moments, 0.90);\n var topCluster = CVUtils.topGeneric(clusters, 1, function(e) {\n return e.getPoints().length;\n });\n var points = [], result = [];\n if (topCluster.length === 1) {\n points = topCluster[0].item.getPoints();\n for (var i = 0; i < points.length; i++) {\n result.push(points[i].point);\n }\n }\n return result;\n }\n\n function skeletonize(x, y) {\n _binaryImageWrapper.subImageAsCopy(_subImageWrapper, CVUtils.imageRef(x, y));\n _skeletonizer.skeletonize();\n \n // Show skeleton if requested\n if (_config.showSkeleton) {\n _skelImageWrapper.overlay(_canvasContainer.dom.binary, 360, CVUtils.imageRef(x, y));\n }\n }\n\n /**\n * Extracts and describes those patches which seem to contain a barcode pattern\n * @param {Array} moments\n * @param {Object} patchPos,\n * @param {Number} x\n * @param {Number} y\n * @returns {Array} list of patches\n */\n function describePatch(moments, patchPos, x, y) {\n var k,\n avg,\n sum = 0,\n eligibleMoments = [],\n matchingMoments,\n patch,\n patchesFound = [],\n minComponentWeight = Math.ceil(_patchSize.x/3);\n\n if (moments.length >= 2) {\n // only collect moments which's area covers at least minComponentWeight pixels.\n for ( k = 0; k < moments.length; k++) {\n if (moments[k].m00 > minComponentWeight) {\n eligibleMoments.push(moments[k]);\n }\n }\n\n // if at least 2 moments are found which have at least minComponentWeights covered\n if (eligibleMoments.length >= 2) {\n sum = eligibleMoments.length;\n matchingMoments = similarMoments(eligibleMoments);\n avg = 0;\n // determine the similarity of the moments\n for ( k = 0; k < matchingMoments.length; k++) {\n avg += matchingMoments[k].rad;\n }\n\n // Only two of the moments are allowed not to fit into the equation\n // add the patch to the set\n if (matchingMoments.length > 1 && matchingMoments.length >= (eligibleMoments.length / 4) * 3 && matchingMoments.length > moments.length / 4) {\n avg /= matchingMoments.length;\n patch = {\n index : patchPos[1] * _numPatches.x + patchPos[0],\n pos : {\n x : x,\n y : y\n },\n box : [vec2.create([x, y]), vec2.create([x + _subImageWrapper.size.x, y]), vec2.create([x + _subImageWrapper.size.x, y + _subImageWrapper.size.y]), vec2.create([x, y + _subImageWrapper.size.y])],\n moments : matchingMoments,\n rad : avg,\n vec : vec2.create([Math.cos(avg), Math.sin(avg)])\n };\n patchesFound.push(patch);\n }\n }\n }\n return patchesFound;\n }\n\n /**\n * finds patches which are connected and share the same orientation\n * @param {Object} patchesFound\n */\n function rasterizeAngularSimilarity(patchesFound) {\n var label = 0,\n threshold = 0.95,\n currIdx = 0,\n j,\n patch,\n hsv = [0, 1, 1],\n rgb = [0, 0, 0];\n\n function notYetProcessed() {\n var i;\n for ( i = 0; i < _patchLabelGrid.data.length; i++) {\n if (_patchLabelGrid.data[i] === 0 && _patchGrid.data[i] === 1) {\n return i;\n }\n }\n return _patchLabelGrid.length;\n }\n\n function trace(currentIdx) {\n var x, y, currentPatch, patch, idx, dir, current = {\n x : currentIdx % _patchLabelGrid.size.x,\n y : (currentIdx / _patchLabelGrid.size.x) | 0\n }, similarity;\n\n if (currentIdx < _patchLabelGrid.data.length) {\n currentPatch = _imageToPatchGrid.data[currentIdx];\n // assign label\n _patchLabelGrid.data[currentIdx] = label;\n for ( dir = 0; dir < Tracer.searchDirections.length; dir++) {\n y = current.y + Tracer.searchDirections[dir][0];\n x = current.x + Tracer.searchDirections[dir][1];\n idx = y * _patchLabelGrid.size.x + x;\n\n // continue if patch empty\n if (_patchGrid.data[idx] === 0) {\n _patchLabelGrid.data[idx] = Number.MAX_VALUE;\n continue;\n }\n\n patch = _imageToPatchGrid.data[idx];\n if (_patchLabelGrid.data[idx] === 0) {\n similarity = Math.abs(vec2.dot(patch.vec, currentPatch.vec));\n if (similarity > threshold) {\n trace(idx);\n }\n }\n }\n }\n }\n \n // prepare for finding the right patches\n ArrayHelper.init(_patchGrid.data, 0);\n ArrayHelper.init(_patchLabelGrid.data, 0);\n ArrayHelper.init(_imageToPatchGrid.data, null);\n\n for ( j = 0; j < patchesFound.length; j++) {\n patch = patchesFound[j];\n _imageToPatchGrid.data[patch.index] = patch;\n _patchGrid.data[patch.index] = 1;\n }\n\n // rasterize the patches found to determine area\n _patchGrid.zeroBorder();\n\n while (( currIdx = notYetProcessed()) < _patchLabelGrid.data.length) {\n label++;\n trace(currIdx);\n }\n \n // draw patch-labels if requested\n if (_config.showPatchLabels) {\n for ( j = 0; j < _patchLabelGrid.data.length; j++) {\n if (_patchLabelGrid.data[j] > 0 && _patchLabelGrid.data[j] <= label) {\n patch = _imageToPatchGrid.data[j];\n hsv[0] = (_patchLabelGrid.data[j] / (label + 1)) * 360;\n CVUtils.hsv2rgb(hsv, rgb);\n ImageDebug.drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, {color: \"rgb(\" + rgb.join(\",\") + \")\", lineWidth: 2});\n }\n }\n }\n \n return label;\n }\n\n return {\n init : function(inputImageWrapper, config) {\n _config = config;\n _inputImageWrapper = inputImageWrapper;\n\n initBuffers();\n initCanvas();\n },\n\n locate : function() {\n var patchesFound,\n topLabels,\n boxes;\n\n if (_config.halfSample) {\n CVUtils.halfSample(_inputImageWrapper, _currentImageWrapper);\n }\n\n binarizeImage();\n patchesFound = findPatches();\n // return unless 5% or more patches are found\n if (patchesFound.length < _numPatches.x * _numPatches.y * 0.05) {\n return null;\n }\n\n // rasterrize area by comparing angular similarity;\n var maxLabel = rasterizeAngularSimilarity(patchesFound);\n if (maxLabel < 1) {\n return null;\n }\n\n // search for area with the most patches (biggest connected area)\n topLabels = findBiggestConnectedAreas(maxLabel);\n if (topLabels.length === 0) {\n return null;\n }\n\n boxes = findBoxes(topLabels, maxLabel);\n return boxes;\n },\n\n checkImageConstraints: function(inputStream, config) {\n var patchSize,\n width = inputStream.getWidth(),\n height = inputStream.getHeight(),\n halfSample = config.halfSample ? 0.5 : 1,\n size,\n area;\n\n // calculate width and height based on area\n if (inputStream.getConfig().area) {\n area = CVUtils.computeImageArea(width, height, inputStream.getConfig().area);\n inputStream.setTopRight({x: area.sx, y: area.sy});\n inputStream.setCanvasSize({x: width, y: height});\n width = area.sw;\n height = area.sh;\n }\n\n size = {\n x: Math.floor(width * halfSample),\n y: Math.floor(height * halfSample)\n };\n\n patchSize = CVUtils.calculatePatchSize(config.patchSize, size);\n console.log(\"Patch-Size: \" + JSON.stringify(patchSize));\n\n inputStream.setWidth(Math.floor(Math.floor(size.x/patchSize.x)*(1/halfSample)*patchSize.x));\n inputStream.setHeight(Math.floor(Math.floor(size.y/patchSize.y)*(1/halfSample)*patchSize.y));\n\n if ((inputStream.getWidth() % patchSize.x) === 0 && (inputStream.getHeight() % patchSize.y) === 0) {\n return true;\n }\n\n throw new Error(\"Image dimensions do not comply with the current settings: Width (\" +\n width + \" )and height (\" + height +\n \") must a multiple of \" + patchSize.x);\n }\n };\n});\n\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('bresenham',[\"cv_utils\", \"image_wrapper\"], function(CVUtils, ImageWrapper) {\n \"use strict\";\n var Bresenham = {};\n\n var Slope = {\n DIR : {\n UP : 1,\n DOWN : -1\n }\n };\n /**\n * Scans a line of the given image from point p1 to p2 and returns a result object containing \n * gray-scale values (0-255) of the underlying pixels in addition to the min\n * and max values.\n * @param {Object} imageWrapper\n * @param {Object} p1 The start point {x,y}\n * @param {Object} p2 The end point {x,y}\n * @returns {line, min, max}\n */\n Bresenham.getBarcodeLine = function(imageWrapper, p1, p2) {\n var x0 = p1.x | 0,\n y0 = p1.y | 0,\n x1 = p2.x | 0,\n y1 = p2.y | 0,\n steep = Math.abs(y1 - y0) > Math.abs(x1 - x0),\n deltax,\n deltay,\n error,\n ystep,\n y,\n tmp,\n x,\n line = [],\n imageData = imageWrapper.data,\n width = imageWrapper.size.x,\n sum = 0,\n val,\n min = 255,\n max = 0;\n\n function read(a, b) {\n val = imageData[b * width + a];\n sum += val;\n min = val < min ? val : min;\n max = val > max ? val : max;\n line.push(val);\n }\n\n if (steep) {\n tmp = x0;\n x0 = y0;\n y0 = tmp;\n\n tmp = x1;\n x1 = y1;\n y1 = tmp;\n }\n if (x0 > x1) {\n tmp = x0;\n x0 = x1;\n x1 = tmp;\n\n tmp = y0;\n y0 = y1;\n y1 = tmp;\n }\n deltax = x1 - x0;\n deltay = Math.abs(y1 - y0);\n error = (deltax / 2) | 0;\n y = y0;\n ystep = y0 < y1 ? 1 : -1;\n for ( x = x0; x < x1; x++) {\n if(steep){\n read(y, x);\n } else {\n read(x, y);\n }\n error = error - deltay;\n if (error < 0) {\n y = y + ystep;\n error = error + deltax;\n }\n }\n\n return {\n line : line,\n min : min,\n max : max\n };\n };\n\n Bresenham.toOtsuBinaryLine = function(result) {\n var line = result.line,\n image = new ImageWrapper({x: line.length - 1, y: 1}, line),\n threshold = CVUtils.determineOtsuThreshold(image, 5);\n\n line = CVUtils.sharpenLine(line);\n CVUtils.thresholdImage(image, threshold);\n\n return {\n line: line,\n threshold: threshold\n };\n };\n \n /**\n * Converts the result from getBarcodeLine into a binary representation \n * also considering the frequency and slope of the signal for more robust results\n * @param {Object} result {line, min, max}\n */\n Bresenham.toBinaryLine = function(result) {\n\n var min = result.min,\n max = result.max,\n line = result.line,\n slope,\n slope2,\n center = min + (max - min) / 2,\n extrema = [],\n currentDir,\n dir,\n threshold = (max - min) / 12,\n rThreshold = -threshold,\n i,\n j;\n\n // 1. find extrema\n currentDir = line[0] > center ? Slope.DIR.UP : Slope.DIR.DOWN;\n extrema.push({\n pos : 0,\n val : line[0]\n });\n for ( i = 0; i < line.length - 2; i++) {\n slope = (line[i + 1] - line[i]);\n slope2 = (line[i + 2] - line[i + 1]);\n if ((slope + slope2) < rThreshold && line[i + 1] < (center*1.5)) {\n dir = Slope.DIR.DOWN;\n } else if ((slope + slope2) > threshold && line[i + 1] > (center*0.5)) {\n dir = Slope.DIR.UP;\n } else {\n dir = currentDir;\n }\n\n if (currentDir !== dir) {\n extrema.push({\n pos : i,\n val : line[i]\n });\n currentDir = dir;\n }\n }\n extrema.push({\n pos : line.length,\n val : line[line.length - 1]\n });\n\n for ( j = extrema[0].pos; j < extrema[1].pos; j++) {\n line[j] = line[j] > center ? 0 : 1;\n }\n\n // iterate over extrema and convert to binary based on avg between minmax\n for ( i = 1; i < extrema.length - 1; i++) {\n if (extrema[i + 1].val > extrema[i].val) {\n threshold = (extrema[i].val + ((extrema[i + 1].val - extrema[i].val) / 3) * 2) | 0;\n } else {\n threshold = (extrema[i + 1].val + ((extrema[i].val - extrema[i + 1].val) / 3)) | 0;\n }\n\n for ( j = extrema[i].pos; j < extrema[i + 1].pos; j++) {\n line[j] = line[j] > threshold ? 0 : 1;\n }\n }\n\n return {\n line : line,\n threshold : threshold\n };\n };\n \n /**\n * Used for development only \n */\n Bresenham.debug = {\n printFrequency: function(line, canvas) {\n var i,\n ctx = canvas.getContext(\"2d\");\n canvas.width = line.length;\n canvas.height = 256;\n \n ctx.beginPath();\n ctx.strokeStyle = \"blue\";\n for ( i = 0; i < line.length; i++) {\n ctx.moveTo(i, 255);\n ctx.lineTo(i, 255 - line[i]);\n }\n ctx.stroke();\n ctx.closePath();\n },\n \n printPattern: function(line, canvas) {\n var ctx = canvas.getContext(\"2d\"), i;\n \n canvas.width = line.length;\n ctx.fillColor = \"black\";\n for ( i = 0; i < line.length; i++) {\n if (line[i] === 1) {\n ctx.fillRect(i, 0, 1, 100);\n }\n }\n }\n };\n\n return (Bresenham);\n}); \n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'barcode_reader',[],function() {\n \"use strict\";\n \n function BarcodeReader(config) {\n this._row = [];\n this.config = config || {};\n return this;\n }\n \n BarcodeReader.prototype._nextUnset = function(line, start) {\n var i;\n \n if (start === undefined) {\n start = 0;\n }\n for (i = start; i < line.length; i++) {\n if (!line[i]) {\n return i;\n }\n }\n return line.length;\n };\n \n BarcodeReader.prototype._matchPattern = function(counter, code) {\n var i,\n error = 0,\n singleError = 0,\n modulo = this.MODULO,\n maxSingleError = this.SINGLE_CODE_ERROR || 1;\n \n for (i = 0; i < counter.length; i++) {\n singleError = Math.abs(code[i] - counter[i]);\n if (singleError > maxSingleError) {\n return Number.MAX_VALUE;\n }\n error += singleError;\n }\n return error/modulo;\n };\n\n BarcodeReader.prototype._nextSet = function(line, offset) {\n var i;\n\n offset = offset || 0;\n for (i = offset; i < line.length; i++) {\n if (line[i]) {\n return i;\n }\n }\n return line.length;\n };\n\n BarcodeReader.prototype._normalize = function(counter, modulo) {\n var i,\n self = this,\n sum = 0,\n ratio,\n numOnes = 0,\n normalized = [],\n norm = 0;\n \n if (!modulo) {\n modulo = self.MODULO;\n }\n for (i = 0; i < counter.length; i++) {\n if (counter[i] === 1) {\n numOnes++;\n } else {\n sum += counter[i];\n }\n }\n ratio = sum / (modulo - numOnes);\n if (ratio > 1.0) {\n for (i = 0; i < counter.length; i++) {\n norm = counter[i] === 1 ? counter[i] : counter[i] / ratio;\n normalized.push(norm);\n }\n } else {\n ratio = (sum + numOnes)/modulo;\n for (i = 0; i < counter.length; i++) {\n norm = counter[i] / ratio;\n normalized.push(norm);\n }\n }\n return normalized;\n };\n\n BarcodeReader.prototype._matchTrace = function(cmpCounter, epsilon) {\n var counter = [],\n i,\n self = this,\n offset = self._nextSet(self._row),\n isWhite = !self._row[offset],\n counterPos = 0,\n bestMatch = {\n error : Number.MAX_VALUE,\n code : -1,\n start : 0\n },\n error;\n\n if (cmpCounter) {\n for ( i = 0; i < cmpCounter.length; i++) {\n counter.push(0);\n }\n for ( i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n error = self._matchPattern(counter, cmpCounter);\n\n if (error < epsilon) {\n bestMatch.start = i - offset;\n bestMatch.end = i;\n bestMatch.counter = counter;\n return bestMatch;\n } else {\n return null;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n } else {\n counter.push(0);\n for ( i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n counterPos++;\n counter.push(0);\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n }\n\n // if cmpCounter was not given\n bestMatch.start = offset;\n bestMatch.end = self._row.length - 1;\n bestMatch.counter = counter;\n return bestMatch;\n };\n \n BarcodeReader.prototype.decodePattern = function(pattern) {\n var self = this,\n result;\n \n self._row = pattern;\n result = self._decode();\n if (result === null) {\n self._row.reverse();\n result = self._decode();\n if (result) {\n result.direction = BarcodeReader.DIRECTION.REVERSE;\n result.start = self._row.length - result.start;\n result.end = self._row.length - result.end;\n }\n } else {\n result.direction = BarcodeReader.DIRECTION.FORWARD;\n }\n if (result) {\n result.format = self.FORMAT;\n }\n return result;\n };\n\n BarcodeReader.prototype._matchRange = function(start, end, value) {\n var i;\n\n start = start < 0 ? 0 : start;\n for (i = start; i < end; i++) {\n if (this._row[i] !== value) {\n return false;\n }\n }\n return true;\n };\n\n BarcodeReader.prototype._fillCounters = function(offset, end, isWhite) {\n var self = this,\n counterPos = 0,\n i,\n counters = [];\n\n isWhite = (typeof isWhite !== 'undefined') ? isWhite : true;\n offset = (typeof offset !== 'undefined') ? offset : self._nextUnset(self._row);\n end = end || self._row.length;\n\n counters[counterPos] = 0;\n for (i = offset; i < end; i++) {\n if (self._row[i] ^ isWhite) {\n counters[counterPos]++;\n } else {\n counterPos++;\n counters[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return counters;\n };\n\n Object.defineProperty(BarcodeReader.prototype, \"FORMAT\", {\n value: 'unknown',\n writeable: false\n });\n \n BarcodeReader.DIRECTION = {\n FORWARD : 1,\n REVERSE : -1\n };\n \n BarcodeReader.Exception = {\n StartNotFoundException : \"Start-Info was not found!\",\n CodeNotFoundException : \"Code could not be found!\",\n PatternNotFoundException : \"Pattern could not be found!\"\n };\n\n BarcodeReader.CONFIG_KEYS = {};\n \n return (BarcodeReader);\n }\n);\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'code_128_reader',[\n \"./barcode_reader\"\n ],\n function(BarcodeReader) {\n \"use strict\";\n \n function Code128Reader() {\n BarcodeReader.call(this);\n }\n \n var properties = {\n CODE_SHIFT : {value: 98},\n CODE_C : {value: 99},\n CODE_B : {value: 100},\n CODE_A : {value: 101},\n START_CODE_A : {value: 103},\n START_CODE_B : {value: 104},\n START_CODE_C : {value: 105},\n STOP_CODE : {value: 106},\n MODULO : {value: 11},\n CODE_PATTERN : {value: [\n [2, 1, 2, 2, 2, 2],\n [2, 2, 2, 1, 2, 2],\n [2, 2, 2, 2, 2, 1],\n [1, 2, 1, 2, 2, 3],\n [1, 2, 1, 3, 2, 2],\n [1, 3, 1, 2, 2, 2],\n [1, 2, 2, 2, 1, 3],\n [1, 2, 2, 3, 1, 2],\n [1, 3, 2, 2, 1, 2],\n [2, 2, 1, 2, 1, 3],\n [2, 2, 1, 3, 1, 2],\n [2, 3, 1, 2, 1, 2],\n [1, 1, 2, 2, 3, 2],\n [1, 2, 2, 1, 3, 2],\n [1, 2, 2, 2, 3, 1],\n [1, 1, 3, 2, 2, 2],\n [1, 2, 3, 1, 2, 2],\n [1, 2, 3, 2, 2, 1],\n [2, 2, 3, 2, 1, 1],\n [2, 2, 1, 1, 3, 2],\n [2, 2, 1, 2, 3, 1],\n [2, 1, 3, 2, 1, 2],\n [2, 2, 3, 1, 1, 2],\n [3, 1, 2, 1, 3, 1],\n [3, 1, 1, 2, 2, 2],\n [3, 2, 1, 1, 2, 2],\n [3, 2, 1, 2, 2, 1],\n [3, 1, 2, 2, 1, 2],\n [3, 2, 2, 1, 1, 2],\n [3, 2, 2, 2, 1, 1],\n [2, 1, 2, 1, 2, 3],\n [2, 1, 2, 3, 2, 1],\n [2, 3, 2, 1, 2, 1],\n [1, 1, 1, 3, 2, 3],\n [1, 3, 1, 1, 2, 3],\n [1, 3, 1, 3, 2, 1],\n [1, 1, 2, 3, 1, 3],\n [1, 3, 2, 1, 1, 3],\n [1, 3, 2, 3, 1, 1],\n [2, 1, 1, 3, 1, 3],\n [2, 3, 1, 1, 1, 3],\n [2, 3, 1, 3, 1, 1],\n [1, 1, 2, 1, 3, 3],\n [1, 1, 2, 3, 3, 1],\n [1, 3, 2, 1, 3, 1],\n [1, 1, 3, 1, 2, 3],\n [1, 1, 3, 3, 2, 1],\n [1, 3, 3, 1, 2, 1],\n [3, 1, 3, 1, 2, 1],\n [2, 1, 1, 3, 3, 1],\n [2, 3, 1, 1, 3, 1],\n [2, 1, 3, 1, 1, 3],\n [2, 1, 3, 3, 1, 1],\n [2, 1, 3, 1, 3, 1],\n [3, 1, 1, 1, 2, 3],\n [3, 1, 1, 3, 2, 1],\n [3, 3, 1, 1, 2, 1],\n [3, 1, 2, 1, 1, 3],\n [3, 1, 2, 3, 1, 1],\n [3, 3, 2, 1, 1, 1],\n [3, 1, 4, 1, 1, 1],\n [2, 2, 1, 4, 1, 1],\n [4, 3, 1, 1, 1, 1],\n [1, 1, 1, 2, 2, 4],\n [1, 1, 1, 4, 2, 2],\n [1, 2, 1, 1, 2, 4],\n [1, 2, 1, 4, 2, 1],\n [1, 4, 1, 1, 2, 2],\n [1, 4, 1, 2, 2, 1],\n [1, 1, 2, 2, 1, 4],\n [1, 1, 2, 4, 1, 2],\n [1, 2, 2, 1, 1, 4],\n [1, 2, 2, 4, 1, 1],\n [1, 4, 2, 1, 1, 2],\n [1, 4, 2, 2, 1, 1],\n [2, 4, 1, 2, 1, 1],\n [2, 2, 1, 1, 1, 4],\n [4, 1, 3, 1, 1, 1],\n [2, 4, 1, 1, 1, 2],\n [1, 3, 4, 1, 1, 1],\n [1, 1, 1, 2, 4, 2],\n [1, 2, 1, 1, 4, 2],\n [1, 2, 1, 2, 4, 1],\n [1, 1, 4, 2, 1, 2],\n [1, 2, 4, 1, 1, 2],\n [1, 2, 4, 2, 1, 1],\n [4, 1, 1, 2, 1, 2],\n [4, 2, 1, 1, 1, 2],\n [4, 2, 1, 2, 1, 1],\n [2, 1, 2, 1, 4, 1],\n [2, 1, 4, 1, 2, 1],\n [4, 1, 2, 1, 2, 1],\n [1, 1, 1, 1, 4, 3],\n [1, 1, 1, 3, 4, 1],\n [1, 3, 1, 1, 4, 1],\n [1, 1, 4, 1, 1, 3],\n [1, 1, 4, 3, 1, 1],\n [4, 1, 1, 1, 1, 3],\n [4, 1, 1, 3, 1, 1],\n [1, 1, 3, 1, 4, 1],\n [1, 1, 4, 1, 3, 1],\n [3, 1, 1, 1, 4, 1],\n [4, 1, 1, 1, 3, 1],\n [2, 1, 1, 4, 1, 2],\n [2, 1, 1, 2, 1, 4],\n [2, 1, 1, 2, 3, 2],\n [2, 3, 3, 1, 1, 1, 2]\n ]},\n SINGLE_CODE_ERROR: {value: 1},\n AVG_CODE_ERROR: {value: 0.5},\n FORMAT: {value: \"code_128\", writeable: false}\n };\n \n Code128Reader.prototype = Object.create(BarcodeReader.prototype, properties);\n Code128Reader.prototype.constructor = Code128Reader;\n \n Code128Reader.prototype._decodeCode = function(start) {\n var counter = [0, 0, 0, 0, 0, 0],\n i,\n self = this,\n offset = start,\n isWhite = !self._row[offset],\n counterPos = 0,\n bestMatch = {\n error : Number.MAX_VALUE,\n code : -1,\n start : start,\n end : start\n },\n code,\n error,\n normalized;\n\n for ( i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n normalized = self._normalize(counter);\n if (normalized) {\n for (code = 0; code < self.CODE_PATTERN.length; code++) {\n error = self._matchPattern(normalized, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n bestMatch.end = i;\n return bestMatch;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n\n Code128Reader.prototype._findStart = function() {\n var counter = [0, 0, 0, 0, 0, 0],\n i,\n self = this,\n offset = self._nextSet(self._row),\n isWhite = false,\n counterPos = 0,\n bestMatch = {\n error : Number.MAX_VALUE,\n code : -1,\n start : 0,\n end : 0\n },\n code,\n error,\n j,\n sum,\n normalized;\n \n for ( i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n sum = 0;\n for ( j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n normalized = self._normalize(counter);\n if (normalized) {\n for (code = self.START_CODE_A; code <= self.START_CODE_C; code++) {\n error = self._matchPattern(normalized, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n if (bestMatch.error < self.AVG_CODE_ERROR) {\n bestMatch.start = i - sum;\n bestMatch.end = i;\n return bestMatch;\n }\n }\n\n for ( j = 0; j < 4; j++) {\n counter[j] = counter[j + 2];\n }\n counter[4] = 0;\n counter[5] = 0;\n counterPos--;\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n\n Code128Reader.prototype._decode = function() {\n var self = this,\n startInfo = self._findStart(),\n code = null,\n done = false,\n result = [],\n multiplier = 0,\n checksum = 0,\n codeset,\n rawResult = [],\n decodedCodes = [],\n shiftNext = false,\n unshift,\n lastCharacterWasPrintable;\n\n if (startInfo === null) {\n return null;\n }\n code = {\n code : startInfo.code,\n start : startInfo.start,\n end : startInfo.end\n };\n decodedCodes.push(code);\n checksum = code.code;\n switch(code.code) {\n case self.START_CODE_A:\n codeset = self.CODE_A;\n break;\n case self.START_CODE_B:\n codeset = self.CODE_B;\n break;\n case self.START_CODE_C:\n codeset = self.CODE_C;\n break;\n default:\n return null;\n }\n\n while (!done) {\n unshift = shiftNext;\n shiftNext = false;\n code = self._decodeCode(code.end);\n if (code !== null) {\n if (code.code !== self.STOP_CODE) {\n rawResult.push(code.code);\n multiplier++;\n checksum += multiplier * code.code;\n }\n decodedCodes.push(code);\n\n switch(codeset) {\n case self.CODE_A:\n if (code.code < 64) {\n result.push(String.fromCharCode(32 + code.code));\n } else if (code.code < 96) {\n result.push(String.fromCharCode(code.code - 64));\n } else {\n switch (code.code) {\n case self.CODE_SHIFT:\n shiftNext = true;\n codeset = self.CODE_B;\n break;\n case self.CODE_B:\n codeset = self.CODE_B;\n break;\n case self.CODE_C:\n codeset = self.CODE_C;\n break;\n case self.STOP_CODE:\n done = true;\n break;\n }\n }\n break;\n case self.CODE_B:\n if (code.code < 96) {\n result.push(String.fromCharCode(32 + code.code));\n } else {\n if (code.code != self.STOP_CODE) {\n lastCharacterWasPrintable = false;\n }\n switch (code.code) {\n case self.CODE_SHIFT:\n shiftNext = true;\n codeset = self.CODE_A;\n break;\n case self.CODE_A:\n codeset = self.CODE_A;\n break;\n case self.CODE_C:\n codeset = self.CODE_C;\n break;\n case self.STOP_CODE:\n done = true;\n break;\n }\n }\n break;\n case self.CODE_C:\n if (code.code < 100) {\n result.push(code.code < 10 ? \"0\" + code.code : code.code);\n }\n switch (code.code) {\n case self.CODE_A:\n codeset = self.CODE_A;\n break;\n case self.CODE_B:\n codeset = self.CODE_B;\n break;\n case self.STOP_CODE:\n done = true;\n break;\n }\n break;\n }\n } else {\n done = true;\n }\n if (unshift) {\n codeset = codeset == self.CODE_A ? self.CODE_B : self.CODE_A;\n }\n }\n\n if (code === null) {\n return null;\n }\n\n // find end bar\n code.end = self._nextUnset(self._row, code.end);\n if(!self._verifyTrailingWhitespace(code)){\n return null;\n }\n\n // checksum\n // Does not work correctly yet!!! startcode - endcode?\n checksum -= multiplier * rawResult[rawResult.length - 1];\n if (checksum % 103 != rawResult[rawResult.length - 1]) {\n return null;\n }\n\n if (!result.length) {\n return null;\n }\n\n // remove last code from result (checksum)\n result.splice(result.length - 1, 1);\n\n\n\n return {\n code : result.join(\"\"),\n start : startInfo.start,\n end : code.end,\n codeset : codeset,\n startInfo : startInfo,\n decodedCodes : decodedCodes,\n endInfo : code\n };\n };\n\n\n BarcodeReader.prototype._verifyTrailingWhitespace = function(endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n\n trailingWhitespaceEnd = endInfo.end + ((endInfo.end - endInfo.start) / 2);\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n return null;\n };\n \n return (Code128Reader);\n }\n);\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'ean_reader',[\n \"./barcode_reader\"\n ],\n function(BarcodeReader) {\n \"use strict\";\n \n function EANReader(opts) {\n BarcodeReader.call(this, opts);\n }\n \n var properties = {\n CODE_L_START : {value: 0},\n MODULO : {value: 7},\n CODE_G_START : {value: 10},\n START_PATTERN : {value: [1 / 3 * 7, 1 / 3 * 7, 1 / 3 * 7]},\n STOP_PATTERN : {value: [1 / 3 * 7, 1 / 3 * 7, 1 / 3 * 7]},\n MIDDLE_PATTERN : {value: [1 / 5 * 7, 1 / 5 * 7, 1 / 5 * 7, 1 / 5 * 7, 1 / 5 * 7]},\n CODE_PATTERN : {value: [\n [3, 2, 1, 1],\n [2, 2, 2, 1],\n [2, 1, 2, 2],\n [1, 4, 1, 1],\n [1, 1, 3, 2],\n [1, 2, 3, 1],\n [1, 1, 1, 4],\n [1, 3, 1, 2],\n [1, 2, 1, 3],\n [3, 1, 1, 2],\n [1, 1, 2, 3],\n [1, 2, 2, 2],\n [2, 2, 1, 2],\n [1, 1, 4, 1],\n [2, 3, 1, 1],\n [1, 3, 2, 1],\n [4, 1, 1, 1],\n [2, 1, 3, 1],\n [3, 1, 2, 1],\n [2, 1, 1, 3]\n ]},\n CODE_FREQUENCY : {value: [0, 11, 13, 14, 19, 25, 28, 21, 22, 26]},\n SINGLE_CODE_ERROR: {value: 0.67},\n AVG_CODE_ERROR: {value: 0.27},\n FORMAT: {value: \"ean_13\", writeable: false}\n };\n \n EANReader.prototype = Object.create(BarcodeReader.prototype, properties);\n EANReader.prototype.constructor = EANReader;\n \n EANReader.prototype._decodeCode = function(start, coderange) {\n var counter = [0, 0, 0, 0],\n i,\n self = this,\n offset = start,\n isWhite = !self._row[offset],\n counterPos = 0,\n bestMatch = {\n error : Number.MAX_VALUE,\n code : -1,\n start : start,\n end : start\n },\n code,\n error,\n normalized;\n\n if (!coderange) {\n coderange = self.CODE_PATTERN.length;\n }\n\n for ( i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n normalized = self._normalize(counter);\n if (normalized) {\n for (code = 0; code < coderange; code++) {\n error = self._matchPattern(normalized, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n bestMatch.end = i;\n if (bestMatch.error > self.AVG_CODE_ERROR) {\n return null;\n }\n return bestMatch;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n\n EANReader.prototype._findPattern = function(pattern, offset, isWhite, tryHarder, epsilon) {\n var counter = [],\n self = this,\n i,\n counterPos = 0,\n bestMatch = {\n error : Number.MAX_VALUE,\n code : -1,\n start : 0,\n end : 0\n },\n error,\n j,\n sum,\n normalized;\n\n if (!offset) {\n offset = self._nextSet(self._row);\n }\n\n if (isWhite === undefined) {\n isWhite = false;\n }\n\n if (tryHarder === undefined) {\n tryHarder = true;\n }\n\n if ( epsilon === undefined) {\n epsilon = self.AVG_CODE_ERROR;\n }\n\n for ( i = 0; i < pattern.length; i++) {\n counter[i] = 0;\n }\n\n for ( i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n sum = 0;\n for ( j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n normalized = self._normalize(counter);\n if (normalized) {\n error = self._matchPattern(normalized, pattern);\n\n if (error < epsilon) {\n bestMatch.error = error;\n bestMatch.start = i - sum;\n bestMatch.end = i;\n return bestMatch;\n }\n }\n if (tryHarder) {\n for ( j = 0; j < counter.length - 2; j++) {\n counter[j] = counter[j + 2];\n }\n counter[counter.length - 2] = 0;\n counter[counter.length - 1] = 0;\n counterPos--;\n } else {\n return null;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n\n EANReader.prototype._findStart = function() {\n var self = this,\n leadingWhitespaceStart,\n offset = self._nextSet(self._row),\n startInfo;\n\n while(!startInfo) {\n startInfo = self._findPattern(self.START_PATTERN, offset);\n if (!startInfo) {\n return null;\n }\n leadingWhitespaceStart = startInfo.start - (startInfo.end - startInfo.start);\n if (leadingWhitespaceStart >= 0) {\n if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) {\n return startInfo;\n }\n }\n offset = startInfo.end;\n startInfo = null;\n }\n };\n\n EANReader.prototype._verifyTrailingWhitespace = function(endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n\n trailingWhitespaceEnd = endInfo.end + (endInfo.end - endInfo.start);\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n return null;\n };\n\n EANReader.prototype._findEnd = function(offset, isWhite) {\n var self = this,\n endInfo = self._findPattern(self.STOP_PATTERN, offset, isWhite, false);\n\n return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null;\n };\n\n EANReader.prototype._calculateFirstDigit = function(codeFrequency) {\n var i,\n self = this;\n\n for ( i = 0; i < self.CODE_FREQUENCY.length; i++) {\n if (codeFrequency === self.CODE_FREQUENCY[i]) {\n return i;\n }\n }\n return null;\n };\n\n EANReader.prototype._decodePayload = function(code, result, decodedCodes) {\n var i,\n self = this,\n codeFrequency = 0x0,\n firstDigit;\n\n for ( i = 0; i < 6; i++) {\n code = self._decodeCode(code.end);\n if (!code) {\n return null;\n }\n if (code.code >= self.CODE_G_START) {\n code.code = code.code - self.CODE_G_START;\n codeFrequency |= 1 << (5 - i);\n } else {\n codeFrequency |= 0 << (5 - i);\n }\n result.push(code.code);\n decodedCodes.push(code);\n }\n\n firstDigit = self._calculateFirstDigit(codeFrequency);\n if (firstDigit === null) {\n return null;\n }\n result.unshift(firstDigit);\n\n code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false);\n if (code === null) {\n return null;\n }\n decodedCodes.push(code);\n\n for ( i = 0; i < 6; i++) {\n code = self._decodeCode(code.end, self.CODE_G_START);\n if (!code) {\n return null;\n }\n decodedCodes.push(code);\n result.push(code.code);\n }\n\n return code;\n };\n\n EANReader.prototype._decode = function() {\n var startInfo,\n self = this,\n code,\n result = [],\n decodedCodes = [];\n\n startInfo = self._findStart();\n if (!startInfo) {\n return null;\n }\n code = {\n code : startInfo.code,\n start : startInfo.start,\n end : startInfo.end\n };\n decodedCodes.push(code);\n code = self._decodePayload(code, result, decodedCodes);\n if (!code) {\n return null;\n }\n code = self._findEnd(code.end, false);\n if (!code){\n return null;\n }\n\n decodedCodes.push(code);\n\n // Checksum\n if (!self._checksum(result)) {\n return null;\n }\n\n return {\n code : result.join(\"\"),\n start : startInfo.start,\n end : code.end,\n codeset : \"\",\n startInfo : startInfo,\n decodedCodes : decodedCodes\n };\n };\n\n EANReader.prototype._checksum = function(result) {\n var sum = 0, i;\n\n for ( i = result.length - 2; i >= 0; i -= 2) {\n sum += result[i];\n }\n sum *= 3;\n for ( i = result.length - 1; i >= 0; i -= 2) {\n sum += result[i];\n }\n return sum % 10 === 0;\n };\n \n return (EANReader);\n }\n);\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'code_39_reader',[\n \"./barcode_reader\",\n \"./array_helper\"\n ],\n function(BarcodeReader, ArrayHelper) {\n \"use strict\";\n\n function Code39Reader() {\n BarcodeReader.call(this);\n }\n\n var properties = {\n ALPHABETH_STRING: {value: \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%\"},\n ALPHABET: {value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 45, 46, 32, 42, 36, 47, 43, 37]},\n CHARACTER_ENCODINGS: {value: [0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064, 0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C, 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016, 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x094, 0x0A8, 0x0A2, 0x08A, 0x02A]},\n ASTERISK: {value: 0x094},\n FORMAT: {value: \"code_39\", writeable: false}\n };\n\n Code39Reader.prototype = Object.create(BarcodeReader.prototype, properties);\n Code39Reader.prototype.constructor = Code39Reader;\n\n Code39Reader.prototype._toCounters = function(start, counter) {\n var self = this,\n numCounters = counter.length,\n end = self._row.length,\n isWhite = !self._row[start],\n i,\n counterPos = 0;\n\n ArrayHelper.init(counter, 0);\n\n for ( i = start; i < end; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n counterPos++;\n if (counterPos === numCounters) {\n break;\n } else {\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n }\n\n return counter;\n };\n\n Code39Reader.prototype._decode = function() {\n var self = this,\n counters = [0,0,0,0,0,0,0,0,0],\n result = [],\n start = self._findStart(),\n decodedChar,\n lastStart,\n pattern,\n nextStart;\n\n if (!start) {\n return null;\n }\n nextStart = self._nextSet(self._row, start.end);\n\n do {\n counters = self._toCounters(nextStart, counters);\n pattern = self._toPattern(counters);\n if (pattern < 0) {\n return null;\n }\n decodedChar = self._patternToChar(pattern);\n if (decodedChar < 0){\n return null;\n }\n result.push(decodedChar);\n lastStart = nextStart;\n nextStart += ArrayHelper.sum(counters);\n nextStart = self._nextSet(self._row, nextStart);\n } while(decodedChar !== '*');\n result.pop();\n\n if (!result.length) {\n return null;\n }\n\n if(!self._verifyTrailingWhitespace(lastStart, nextStart, counters)) {\n return null;\n }\n\n return {\n code : result.join(\"\"),\n start : start.start,\n end : nextStart,\n startInfo : start,\n decodedCodes : result\n };\n };\n\n Code39Reader.prototype._verifyTrailingWhitespace = function(lastStart, nextStart, counters) {\n var trailingWhitespaceEnd,\n patternSize = ArrayHelper.sum(counters);\n\n trailingWhitespaceEnd = nextStart - lastStart - patternSize;\n if ((trailingWhitespaceEnd * 3) >= patternSize) {\n return true;\n }\n return false;\n };\n\n Code39Reader.prototype._patternToChar = function(pattern) {\n var i,\n self = this;\n\n for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) {\n if (self.CHARACTER_ENCODINGS[i] === pattern) {\n return String.fromCharCode(self.ALPHABET[i]);\n }\n }\n };\n\n Code39Reader.prototype._findNextWidth = function(counters, current) {\n var i,\n minWidth = Number.MAX_VALUE;\n\n for (i = 0; i < counters.length; i++) {\n if (counters[i] < minWidth && counters[i] > current) {\n minWidth = counters[i];\n }\n }\n\n return minWidth;\n };\n\n Code39Reader.prototype._toPattern = function(counters) {\n var numCounters = counters.length,\n maxNarrowWidth = 0,\n numWideBars = numCounters,\n wideBarWidth = 0,\n self = this,\n pattern,\n i;\n\n while(numWideBars > 3) {\n maxNarrowWidth = self._findNextWidth(counters, maxNarrowWidth);\n numWideBars = 0;\n pattern = 0;\n for (i = 0; i < numCounters; i++) {\n if (counters[i] > maxNarrowWidth) {\n pattern |= 1 << (numCounters - 1 - i);\n numWideBars++;\n wideBarWidth += counters[i];\n }\n }\n\n if (numWideBars === 3) {\n for (i = 0; i < numCounters && numWideBars > 0; i++) {\n if (counters[i] > maxNarrowWidth) {\n numWideBars--;\n if ((counters[i] * 2) >= wideBarWidth) {\n return -1;\n }\n }\n }\n return pattern;\n }\n }\n return -1;\n };\n\n Code39Reader.prototype._findStart = function() {\n var self = this,\n offset = self._nextSet(self._row),\n patternStart = offset,\n counter = [0,0,0,0,0,0,0,0,0],\n counterPos = 0,\n isWhite = false,\n i,\n j,\n whiteSpaceMustStart;\n\n for ( i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n\n // find start pattern\n if (self._toPattern(counter) === self.ASTERISK) {\n whiteSpaceMustStart = Math.floor(Math.max(0, patternStart - ((i - patternStart) / 4)));\n if (self._matchRange(whiteSpaceMustStart, patternStart, 0)) {\n return {\n start: patternStart,\n end: i\n };\n }\n }\n\n patternStart += counter[0] + counter[1];\n for ( j = 0; j < 7; j++) {\n counter[j] = counter[j + 2];\n }\n counter[7] = 0;\n counter[8] = 0;\n counterPos--;\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n\n return (Code39Reader);\n }\n);\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'code_39_vin_reader',[\n \"./code_39_reader\"\n ],\n function(Code39Reader) {\n \"use strict\";\n\n function Code39VINReader() {\n Code39Reader.call(this);\n }\n\n var patterns = {\n IOQ: /[IOQ]/g,\n AZ09: /[A-Z0-9]{17}/\n };\n\n Code39VINReader.prototype = Object.create(Code39Reader.prototype);\n Code39VINReader.prototype.constructor = Code39VINReader;\n\n // Cribbed from:\n // https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/client/result/VINResultParser.java\n Code39VINReader.prototype._decode = function() {\n var result = Code39Reader.prototype._decode.apply(this);\n if (!result) {\n return null;\n }\n\n var code = result.code;\n\n if (!code) {\n return;\n }\n\n code = code.replace(patterns.IOQ, '');\n\n if (!code.match(patterns.AZ09)) {\n console.log('Failed AZ09 pattern code:', code);\n return null;\n }\n\n if (!this._checkChecksum(code)) {\n return null;\n }\n\n result.code = code;\n return result;\n };\n\n Code39VINReader.prototype._checkChecksum = function(code) {\n // TODO\n return !!code;\n };\n\n return (Code39VINReader);\n }\n);\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'codabar_reader',[\n \"./barcode_reader\"\n ],\n function(BarcodeReader) {\n \"use strict\";\n\n function CodabarReader() {\n BarcodeReader.call(this);\n this._counters = [];\n }\n\n var properties = {\n ALPHABETH_STRING: {value: \"0123456789-$:/.+ABCD\"},\n ALPHABET: {value: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 45, 36, 58, 47, 46, 43, 65, 66, 67, 68]},\n CHARACTER_ENCODINGS: {value: [0x003, 0x006, 0x009, 0x060, 0x012, 0x042, 0x021, 0x024, 0x030, 0x048, 0x00c, 0x018, 0x045, 0x051, 0x054, 0x015, 0x01A, 0x029, 0x00B, 0x00E]},\n START_END: {value: [0x01A, 0x029, 0x00B, 0x00E]},\n MIN_ENCODED_CHARS: {value: 4},\n MAX_ACCEPTABLE: {value: 2.0},\n PADDING: {value: 1.5},\n FORMAT: {value: \"codabar\", writeable: false}\n };\n\n CodabarReader.prototype = Object.create(BarcodeReader.prototype, properties);\n CodabarReader.prototype.constructor = CodabarReader;\n\n CodabarReader.prototype._decode = function() {\n var self = this,\n result = [],\n start,\n decodedChar,\n pattern,\n nextStart,\n end;\n\n this._counters = self._fillCounters();\n start = self._findStart();\n if (!start) {\n return null;\n }\n nextStart = start.startCounter;\n\n do {\n pattern = self._toPattern(nextStart);\n if (pattern < 0) {\n return null;\n }\n decodedChar = self._patternToChar(pattern);\n if (decodedChar < 0){\n return null;\n }\n result.push(decodedChar);\n nextStart += 8;\n if (result.length > 1 && self._isStartEnd(pattern)) {\n break;\n }\n } while(nextStart < self._counters.length);\n\n // verify end\n if ((result.length - 2) < self.MIN_ENCODED_CHARS || !self._isStartEnd(pattern)) {\n return null;\n }\n\n // verify end white space\n if (!self._verifyWhitespace(start.startCounter, nextStart - 8)){\n return null;\n }\n\n if (!self._validateResult(result, start.startCounter)){\n return null;\n }\n\n nextStart = nextStart > self._counters.length ? self._counters.length : nextStart;\n end = start.start + self._sumCounters(start.startCounter, nextStart - 8);\n\n return {\n code : result.join(\"\"),\n start : start.start,\n end : end,\n startInfo : start,\n decodedCodes : result\n };\n };\n\n CodabarReader.prototype._verifyWhitespace = function(startCounter, endCounter) {\n if ((startCounter - 1 <= 0) || this._counters[startCounter-1] >= (this._calculatePatternLength(startCounter) / 2.0)) {\n if ((endCounter + 8 >= this._counters.length) || this._counters[endCounter+7] >= (this._calculatePatternLength(endCounter) / 2.0)) {\n return true;\n }\n }\n return false;\n };\n\n CodabarReader.prototype._calculatePatternLength = function(offset) {\n var i,\n sum = 0;\n\n for (i = offset; i < offset + 7; i++) {\n sum += this._counters[i];\n }\n\n return sum;\n };\n\n CodabarReader.prototype._thresholdResultPattern = function(result, startCounter){\n var self = this,\n categorization = {\n space: {\n narrow: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE},\n wide: {size: 0, counts: 0, min: 0, max: Number.MAX_VALUE}\n },\n bar: {\n narrow: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE},\n wide: { size: 0, counts: 0, min: 0, max: Number.MAX_VALUE}\n }\n },\n kind,\n cat,\n i,\n j,\n pos = startCounter,\n pattern;\n\n for (i = 0; i < result.length; i++){\n pattern = self._charToPattern(result[i]);\n for (j = 6; j >= 0; j--) {\n kind = (j & 1) === 2 ? categorization.bar : categorization.space;\n cat = (pattern & 1) === 1 ? kind.wide : kind.narrow;\n cat.size += self._counters[pos + j];\n cat.counts++;\n pattern >>= 1;\n }\n pos += 8;\n }\n\n [\"space\", \"bar\"].forEach(function(key) {\n var kind = categorization[key];\n kind.wide.min = Math.floor((kind.narrow.size/kind.narrow.counts + kind.wide.size / kind.wide.counts) / 2);\n kind.narrow.max = Math.ceil(kind.wide.min);\n kind.wide.max = Math.ceil((kind.wide.size * self.MAX_ACCEPTABLE + self.PADDING) / kind.wide.counts);\n });\n\n return categorization;\n };\n\n CodabarReader.prototype._charToPattern = function(char) {\n var self = this,\n charCode = char.charCodeAt(0),\n i;\n\n for (i = 0; i < self.ALPHABET.length; i++) {\n if (self.ALPHABET[i] === charCode){\n return self.CHARACTER_ENCODINGS[i];\n }\n }\n return 0x0;\n };\n\n CodabarReader.prototype._validateResult = function(result, startCounter) {\n var self = this,\n thresholds = self._thresholdResultPattern(result, startCounter),\n i,\n j,\n kind,\n cat,\n size,\n pos = startCounter,\n pattern;\n\n for (i = 0; i < result.length; i++) {\n pattern = self._charToPattern(result[i]);\n for (j = 6; j >= 0; j--) {\n kind = (j & 1) === 0 ? thresholds.bar : thresholds.space;\n cat = (pattern & 1) === 1 ? kind.wide : kind.narrow;\n size = self._counters[pos + j];\n if (size < cat.min || size > cat.max) {\n return false;\n }\n pattern >>= 1;\n }\n pos += 8;\n }\n return true;\n };\n\n CodabarReader.prototype._patternToChar = function(pattern) {\n var i,\n self = this;\n\n for (i = 0; i < self.CHARACTER_ENCODINGS.length; i++) {\n if (self.CHARACTER_ENCODINGS[i] === pattern) {\n return String.fromCharCode(self.ALPHABET[i]);\n }\n }\n return -1;\n };\n\n CodabarReader.prototype._computeAlternatingThreshold = function(offset, end) {\n var i,\n min = Number.MAX_VALUE,\n max = 0,\n counter;\n\n for (i = offset; i < end; i += 2){\n counter = this._counters[i];\n if (counter > max) {\n max = counter;\n }\n if (counter < min) {\n min = counter;\n }\n }\n\n return ((min + max) / 2.0) | 0;\n };\n\n CodabarReader.prototype._toPattern = function(offset) {\n var numCounters = 7,\n end = offset + numCounters,\n barThreshold,\n spaceThreshold,\n bitmask = 1 << (numCounters - 1),\n pattern = 0,\n i,\n threshold;\n\n if (end > this._counters.length) {\n return -1;\n }\n\n barThreshold = this._computeAlternatingThreshold(offset, end);\n spaceThreshold = this._computeAlternatingThreshold(offset + 1, end);\n\n for (i = 0; i < numCounters; i++){\n threshold = (i & 1) === 0 ? barThreshold : spaceThreshold;\n if (this._counters[offset + i] > threshold) {\n pattern |= bitmask;\n }\n bitmask >>= 1;\n }\n\n return pattern;\n };\n\n CodabarReader.prototype._isStartEnd = function(pattern) {\n var i;\n\n for (i = 0; i < this.START_END.length; i++) {\n if (this.START_END[i] === pattern) {\n return true;\n }\n }\n return false;\n };\n\n CodabarReader.prototype._sumCounters = function(start, end) {\n var i,\n sum = 0;\n\n for (i = start; i < end; i++) {\n sum += this._counters[i];\n }\n return sum;\n };\n\n CodabarReader.prototype._findStart = function() {\n var self = this,\n i,\n pattern,\n start = self._nextUnset(self._row),\n end;\n\n for (i = 1; i < this._counters.length; i++) {\n pattern = self._toPattern(i);\n if (pattern !== -1 && self._isStartEnd(pattern)) {\n // TODO: Look for whitespace ahead\n start += self._sumCounters(0, i);\n end = start + self._sumCounters(i, i + 8);\n return {\n start: start,\n end: end,\n startCounter: i,\n endCounter: i + 8\n };\n }\n }\n };\n\n return (CodabarReader);\n }\n);\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'upc_reader',[\n \"./ean_reader\"\n ],\n function(EANReader) {\n \"use strict\";\n\n function UPCReader() {\n EANReader.call(this);\n }\n\n var properties = {\n FORMAT: {value: \"upc_a\", writeable: false}\n };\n\n UPCReader.prototype = Object.create(EANReader.prototype, properties);\n UPCReader.prototype.constructor = UPCReader;\n\n UPCReader.prototype._decode = function() {\n var result = EANReader.prototype._decode.call(this);\n\n if (result && result.code && result.code.length === 13 && result.code.charAt(0) === \"0\") {\n\n result.code = result.code.substring(1);\n return result;\n }\n return null;\n };\n\n return (UPCReader);\n }\n);\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'ean_8_reader',[\n \"./ean_reader\"\n ],\n function(EANReader) {\n \"use strict\";\n\n function EAN8Reader() {\n EANReader.call(this);\n }\n\n var properties = {\n FORMAT: {value: \"ean_8\", writeable: false}\n };\n\n EAN8Reader.prototype = Object.create(EANReader.prototype, properties);\n EAN8Reader.prototype.constructor = EAN8Reader;\n\n EAN8Reader.prototype._decodePayload = function(code, result, decodedCodes) {\n var i,\n self = this;\n\n for ( i = 0; i < 4; i++) {\n code = self._decodeCode(code.end, self.CODE_G_START);\n if (!code) {\n return null;\n }\n result.push(code.code);\n decodedCodes.push(code);\n }\n\n code = self._findPattern(self.MIDDLE_PATTERN, code.end, true, false);\n if (code === null) {\n return null;\n }\n decodedCodes.push(code);\n\n for ( i = 0; i < 4; i++) {\n code = self._decodeCode(code.end, self.CODE_G_START);\n if (!code) {\n return null;\n }\n decodedCodes.push(code);\n result.push(code.code);\n }\n\n return code;\n };\n\n return (EAN8Reader);\n }\n);\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'upc_e_reader',[\n \"./ean_reader\"\n ],\n function(EANReader) {\n \"use strict\";\n\n function UPCEReader() {\n EANReader.call(this);\n }\n\n var properties = {\n CODE_FREQUENCY : {value: [\n [ 56, 52, 50, 49, 44, 38, 35, 42, 41, 37 ],\n [7, 11, 13, 14, 19, 25, 28, 21, 22, 26]]},\n STOP_PATTERN: { value: [1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7, 1 / 6 * 7]},\n FORMAT: {value: \"upc_e\", writeable: false}\n };\n\n UPCEReader.prototype = Object.create(EANReader.prototype, properties);\n UPCEReader.prototype.constructor = UPCEReader;\n\n UPCEReader.prototype._decodePayload = function(code, result, decodedCodes) {\n var i,\n self = this,\n codeFrequency = 0x0;\n\n for ( i = 0; i < 6; i++) {\n code = self._decodeCode(code.end);\n if (!code) {\n return null;\n }\n if (code.code >= self.CODE_G_START) {\n code.code = code.code - self.CODE_G_START;\n codeFrequency |= 1 << (5 - i);\n }\n result.push(code.code);\n decodedCodes.push(code);\n }\n if (!self._determineParity(codeFrequency, result)) {\n return null;\n }\n\n return code;\n };\n\n UPCEReader.prototype._determineParity = function(codeFrequency, result) {\n var self =this,\n i,\n nrSystem;\n\n for (nrSystem = 0; nrSystem < self.CODE_FREQUENCY.length; nrSystem++){\n for ( i = 0; i < self.CODE_FREQUENCY[nrSystem].length; i++) {\n if (codeFrequency === self.CODE_FREQUENCY[nrSystem][i]) {\n result.unshift(nrSystem);\n result.push(i);\n return true;\n }\n }\n }\n return false;\n };\n\n UPCEReader.prototype._convertToUPCA = function(result) {\n var upca = [result[0]],\n lastDigit = result[result.length - 2];\n\n if (lastDigit <= 2) {\n upca = upca.concat(result.slice(1, 3))\n .concat([lastDigit, 0, 0, 0, 0])\n .concat(result.slice(3, 6));\n } else if (lastDigit === 3) {\n upca = upca.concat(result.slice(1, 4))\n .concat([0 ,0, 0, 0, 0])\n .concat(result.slice(4,6));\n } else if (lastDigit === 4) {\n upca = upca.concat(result.slice(1, 5))\n .concat([0, 0, 0, 0, 0, result[5]]);\n } else {\n upca = upca.concat(result.slice(1, 6))\n .concat([0, 0, 0, 0, lastDigit]);\n }\n\n upca.push(result[result.length - 1]);\n return upca;\n };\n\n UPCEReader.prototype._checksum = function(result) {\n return EANReader.prototype._checksum.call(this, this._convertToUPCA(result));\n };\n\n UPCEReader.prototype._findEnd = function(offset, isWhite) {\n isWhite = true;\n return EANReader.prototype._findEnd.call(this, offset, isWhite);\n };\n\n UPCEReader.prototype._verifyTrailingWhitespace = function(endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n\n trailingWhitespaceEnd = endInfo.end + ((endInfo.end - endInfo.start)/2);\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n };\n\n return (UPCEReader);\n }\n);\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('html_utils',[], function() {\n \"use strict\";\n\n function createNode(htmlStr) {\n var temp = document.createElement('div');\n \n temp.innerHTML = htmlStr;\n while (temp.firstChild) {\n return temp.firstChild;\n }\n }\n\n function mergeObjects(obj1, obj2) {\n for (var p in obj2) {\n try {\n if (obj2[p].constructor == Object) {\n obj1[p] = mergeObjects(obj1[p], obj2[p]);\n } else {\n obj1[p] = obj2[p];\n }\n } catch(e) {\n obj1[p] = obj2[p];\n }\n }\n\n return obj1;\n }\n\n return {\n createNode : function(htmlStr) {\n return createNode(htmlStr);\n },\n mergeObjects : function(obj1, obj2) {\n return mergeObjects(obj1, obj2);\n }\n };\n}); \n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine(\n 'i2of5_reader',[\n \"./barcode_reader\",\n \"./html_utils\"\n ],\n function(BarcodeReader, HTMLUtils) {\n \"use strict\";\n\n function I2of5Reader(opts) {\n opts = HTMLUtils.mergeObjects(getDefaulConfig(), opts);\n BarcodeReader.call(this, opts);\n this.barSpaceRatio = [1, 1];\n if (opts.normalizeBarSpaceWidth) {\n this.SINGLE_CODE_ERROR = 0.38;\n this.AVG_CODE_ERROR = 0.09;\n }\n }\n\n function getDefaulConfig() {\n var config = {};\n\n Object.keys(I2of5Reader.CONFIG_KEYS).forEach(function(key) {\n config[key] = I2of5Reader.CONFIG_KEYS[key]['default'];\n });\n return config;\n }\n\n var N = 1,\n W = 3,\n properties = {\n MODULO : {value: 10},\n START_PATTERN : {value: [N*2.5, N*2.5, N*2.5, N*2.5]},\n STOP_PATTERN : {value: [N*2, N*2, W*2]},\n CODE_PATTERN : {value: [\n [N, N, W, W, N],\n [W, N, N, N, W],\n [N, W, N, N, W],\n [W, W, N, N, N],\n [N, N, W, N, W],\n [W, N, W, N, N],\n [N, W, W, N, N],\n [N, N, N, W, W],\n [W, N, N, W, N],\n [N, W, N, W, N]\n ]},\n SINGLE_CODE_ERROR: {value: 0.78, writable: true},\n AVG_CODE_ERROR: {value: 0.38, writable: true},\n MAX_CORRECTION_FACTOR: {value: 5},\n FORMAT: {value: \"i2of5\"}\n };\n\n I2of5Reader.prototype = Object.create(BarcodeReader.prototype, properties);\n I2of5Reader.prototype.constructor = I2of5Reader;\n\n I2of5Reader.prototype._matchPattern = function(counter, code) {\n if (this.config.normalizeBarSpaceWidth) {\n var i,\n counterSum = [0, 0],\n codeSum = [0, 0],\n correction = [0, 0],\n correctionRatio = this.MAX_CORRECTION_FACTOR,\n correctionRatioInverse = 1 / correctionRatio;\n\n for (i = 0; i < counter.length; i++) {\n counterSum[i % 2] += counter[i];\n codeSum[i % 2] += code[i];\n }\n correction[0] = codeSum[0] / counterSum[0];\n correction[1] = codeSum[1] / counterSum[1];\n\n correction[0] = Math.max(Math.min(correction[0], correctionRatio), correctionRatioInverse);\n correction[1] = Math.max(Math.min(correction[1], correctionRatio), correctionRatioInverse);\n this.barSpaceRatio = correction;\n for (i = 0; i < counter.length; i++) {\n counter[i] *= this.barSpaceRatio[i % 2];\n }\n }\n return BarcodeReader.prototype._matchPattern.call(this, counter, code);\n };\n\n I2of5Reader.prototype._findPattern = function(pattern, offset, isWhite, tryHarder) {\n var counter = [],\n self = this,\n i,\n counterPos = 0,\n bestMatch = {\n error : Number.MAX_VALUE,\n code : -1,\n start : 0,\n end : 0\n },\n error,\n j,\n sum,\n normalized,\n epsilon = self.AVG_CODE_ERROR;\n\n isWhite = isWhite || false;\n tryHarder = tryHarder || false;\n\n if (!offset) {\n offset = self._nextSet(self._row);\n }\n\n for ( i = 0; i < pattern.length; i++) {\n counter[i] = 0;\n }\n\n for ( i = offset; i < self._row.length; i++) {\n if (self._row[i] ^ isWhite) {\n counter[counterPos]++;\n } else {\n if (counterPos === counter.length - 1) {\n sum = 0;\n for ( j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n normalized = self._normalize(counter);\n if (normalized) {\n error = self._matchPattern(normalized, pattern);\n\n if (error < epsilon) {\n bestMatch.error = error;\n bestMatch.start = i - sum;\n bestMatch.end = i;\n return bestMatch;\n }\n }\n if (tryHarder) {\n for (j = 0; j < counter.length - 2; j++) {\n counter[j] = counter[j + 2];\n }\n counter[counter.length - 2] = 0;\n counter[counter.length - 1] = 0;\n counterPos--;\n } else {\n return null;\n }\n } else {\n counterPos++;\n }\n counter[counterPos] = 1;\n isWhite = !isWhite;\n }\n }\n return null;\n };\n\n I2of5Reader.prototype._findStart = function() {\n var self = this,\n leadingWhitespaceStart,\n offset = self._nextSet(self._row),\n startInfo,\n narrowBarWidth = 1;\n\n while(!startInfo) {\n startInfo = self._findPattern(self.START_PATTERN, offset, false, true);\n if (!startInfo) {\n return null;\n }\n narrowBarWidth = Math.floor((startInfo.end - startInfo.start) / 4);\n leadingWhitespaceStart = startInfo.start - narrowBarWidth*10;\n if (leadingWhitespaceStart >= 0) {\n if (self._matchRange(leadingWhitespaceStart, startInfo.start, 0)) {\n return startInfo;\n }\n }\n offset = startInfo.end;\n startInfo = null;\n }\n };\n\n I2of5Reader.prototype._verifyTrailingWhitespace = function(endInfo) {\n var self = this,\n trailingWhitespaceEnd;\n\n trailingWhitespaceEnd = endInfo.end + ((endInfo.end - endInfo.start) / 2);\n if (trailingWhitespaceEnd < self._row.length) {\n if (self._matchRange(endInfo.end, trailingWhitespaceEnd, 0)) {\n return endInfo;\n }\n }\n return null;\n };\n\n I2of5Reader.prototype._findEnd = function() {\n var self = this,\n endInfo,\n tmp;\n\n self._row.reverse();\n endInfo = self._findPattern(self.STOP_PATTERN);\n self._row.reverse();\n\n if (endInfo === null) {\n return null;\n }\n\n // reverse numbers\n tmp = endInfo.start;\n endInfo.start = self._row.length - endInfo.end;\n endInfo.end = self._row.length - tmp;\n\n return endInfo !== null ? self._verifyTrailingWhitespace(endInfo) : null;\n };\n\n I2of5Reader.prototype._decodePair = function(counterPair) {\n var i,\n code,\n codes = [],\n self = this;\n\n for (i = 0; i < counterPair.length; i++) {\n code = self._decodeCode(counterPair[i]);\n if (!code) {\n return null;\n }\n codes.push(code);\n }\n return codes;\n };\n\n I2of5Reader.prototype._decodeCode = function(counter) {\n var j,\n self = this,\n sum = 0,\n normalized,\n error,\n epsilon = self.AVG_CODE_ERROR,\n code,\n bestMatch = {\n error : Number.MAX_VALUE,\n code : -1,\n start : 0,\n end : 0\n };\n\n for ( j = 0; j < counter.length; j++) {\n sum += counter[j];\n }\n normalized = self._normalize(counter);\n if (normalized) {\n for (code = 0; code < self.CODE_PATTERN.length; code++) {\n error = self._matchPattern(normalized, self.CODE_PATTERN[code]);\n if (error < bestMatch.error) {\n bestMatch.code = code;\n bestMatch.error = error;\n }\n }\n if (bestMatch.error < epsilon) {\n return bestMatch;\n }\n }\n return null;\n };\n\n I2of5Reader.prototype._decodePayload = function(counters, result, decodedCodes) {\n var i,\n self = this,\n pos = 0,\n counterLength = counters.length,\n counterPair = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]],\n codes;\n\n while (pos < counterLength) {\n for (i = 0; i < 5; i++) {\n counterPair[0][i] = counters[pos]*this.barSpaceRatio[0];\n counterPair[1][i] = counters[pos + 1]*this.barSpaceRatio[1];\n pos += 2;\n }\n codes = self._decodePair(counterPair);\n if (!codes) {\n return null;\n }\n for (i = 0; i < codes.length; i++) {\n result.push(codes[i].code + \"\");\n decodedCodes.push(codes[i]);\n }\n }\n return codes;\n };\n\n I2of5Reader.prototype._verifyCounterLength = function(counters) {\n return (counters.length % 10 === 0);\n };\n\n I2of5Reader.prototype._decode = function() {\n var startInfo,\n endInfo,\n self = this,\n code,\n result = [],\n decodedCodes = [],\n counters;\n\n startInfo = self._findStart();\n if (!startInfo) {\n return null;\n }\n decodedCodes.push(startInfo);\n\n endInfo = self._findEnd();\n if (!endInfo) {\n return null;\n }\n\n counters = self._fillCounters(startInfo.end, endInfo.start, false);\n if (!self._verifyCounterLength(counters)) {\n return null;\n }\n code = self._decodePayload(counters, result, decodedCodes);\n if (!code) {\n return null;\n }\n if (result.length % 2 !== 0 ||\n result.length < 6) {\n return null;\n }\n\n decodedCodes.push(endInfo);\n return {\n code : result.join(\"\"),\n start : startInfo.start,\n end : endInfo.end,\n startInfo : startInfo,\n decodedCodes : decodedCodes\n };\n };\n\n I2of5Reader.CONFIG_KEYS = {\n normalizeBarSpaceWidth: {\n 'type': 'boolean',\n 'default': false,\n 'description': 'If true, the reader tries to normalize the' +\n 'width-difference between bars and spaces'\n }\n };\n\n return (I2of5Reader);\n }\n);\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('barcode_decoder',[\n \"bresenham\",\n \"image_debug\",\n 'code_128_reader',\n 'ean_reader',\n 'code_39_reader',\n 'code_39_vin_reader',\n 'codabar_reader',\n 'upc_reader',\n 'ean_8_reader',\n 'upc_e_reader',\n 'i2of5_reader'\n], function(\n Bresenham,\n ImageDebug,\n Code128Reader,\n EANReader,\n Code39Reader,\n Code39VINReader,\n CodabarReader,\n UPCReader,\n EAN8Reader,\n UPCEReader,\n I2of5Reader) {\n \"use strict\";\n\n var readers = {\n code_128_reader: Code128Reader,\n ean_reader: EANReader,\n ean_8_reader: EAN8Reader,\n code_39_reader: Code39Reader,\n code_39_vin_reader: Code39VINReader,\n codabar_reader: CodabarReader,\n upc_reader: UPCReader,\n upc_e_reader: UPCEReader,\n i2of5_reader: I2of5Reader\n };\n var BarcodeDecoder = {\n create : function(config, inputImageWrapper) {\n var _canvas = {\n ctx : {\n frequency : null,\n pattern : null,\n overlay : null\n },\n dom : {\n frequency : null,\n pattern : null,\n overlay : null\n }\n },\n _barcodeReaders = [];\n\n initCanvas();\n initReaders();\n initConfig();\n\n function initCanvas() {\n if (typeof document !== 'undefined') {\n var $debug = document.querySelector(\"#debug.detection\");\n _canvas.dom.frequency = document.querySelector(\"canvas.frequency\");\n if (!_canvas.dom.frequency) {\n _canvas.dom.frequency = document.createElement(\"canvas\");\n _canvas.dom.frequency.className = \"frequency\";\n if($debug) {\n $debug.appendChild(_canvas.dom.frequency);\n }\n }\n _canvas.ctx.frequency = _canvas.dom.frequency.getContext(\"2d\");\n\n _canvas.dom.pattern = document.querySelector(\"canvas.patternBuffer\");\n if (!_canvas.dom.pattern) {\n _canvas.dom.pattern = document.createElement(\"canvas\");\n _canvas.dom.pattern.className = \"patternBuffer\";\n if($debug) {\n $debug.appendChild(_canvas.dom.pattern);\n }\n }\n _canvas.ctx.pattern = _canvas.dom.pattern.getContext(\"2d\");\n\n _canvas.dom.overlay = document.querySelector(\"canvas.drawingBuffer\");\n if (_canvas.dom.overlay) {\n _canvas.ctx.overlay = _canvas.dom.overlay.getContext(\"2d\");\n }\n }\n }\n\n function initReaders() {\n config.readers.forEach(function(readerConfig) {\n var reader,\n config = {};\n\n if (typeof readerConfig === 'object') {\n reader = readerConfig.format;\n config = readerConfig.config;\n } else if (typeof readerConfig === 'string') {\n reader = readerConfig;\n }\n _barcodeReaders.push(new readers[reader](config));\n });\n console.log(\"Registered Readers: \" + _barcodeReaders\n .map(function(reader) {return JSON.stringify({format: reader.FORMAT, config: reader.config});})\n .join(', '));\n }\n\n function initConfig() {\n if (typeof document !== 'undefined') {\n var i,\n vis = [{\n node : _canvas.dom.frequency,\n prop : config.showFrequency\n }, {\n node : _canvas.dom.pattern,\n prop : config.showPattern\n }];\n\n for (i = 0; i < vis.length; i++) {\n if (vis[i].prop === true) {\n vis[i].node.style.display = \"block\";\n } else {\n vis[i].node.style.display = \"none\";\n }\n }\n }\n }\n\n /**\n * extend the line on both ends\n * @param {Array} line\n * @param {Number} angle\n */\n function getExtendedLine(line, angle, ext) {\n function extendLine(amount) {\n var extension = {\n y : amount * Math.sin(angle),\n x : amount * Math.cos(angle)\n };\n\n line[0].y -= extension.y;\n line[0].x -= extension.x;\n line[1].y += extension.y;\n line[1].x += extension.x;\n }\n\n // check if inside image\n extendLine(ext);\n while (ext > 1 && (!inputImageWrapper.inImageWithBorder(line[0], 0) || !inputImageWrapper.inImageWithBorder(line[1], 0))) {\n ext -= Math.ceil(ext/2);\n extendLine(-ext);\n }\n return line;\n }\n\n function getLine(box) {\n return [{\n x : (box[1][0] - box[0][0]) / 2 + box[0][0],\n y : (box[1][1] - box[0][1]) / 2 + box[0][1]\n }, {\n x : (box[3][0] - box[2][0]) / 2 + box[2][0],\n y : (box[3][1] - box[2][1]) / 2 + box[2][1]\n }];\n }\n\n function tryDecode(line) {\n var result = null,\n i,\n barcodeLine = Bresenham.getBarcodeLine(inputImageWrapper, line[0], line[1]);\n\n if (config.showFrequency) {\n ImageDebug.drawPath(line, {x: 'x', y: 'y'}, _canvas.ctx.overlay, {color: 'red', lineWidth: 3});\n Bresenham.debug.printFrequency(barcodeLine.line, _canvas.dom.frequency);\n }\n Bresenham.toBinaryLine(barcodeLine);\n if (config.showPattern) {\n Bresenham.debug.printPattern(barcodeLine.line, _canvas.dom.pattern);\n }\n\n for ( i = 0; i < _barcodeReaders.length && result === null; i++) {\n result = _barcodeReaders[i].decodePattern(barcodeLine.line);\n }\n if(result === null){\n return null;\n }\n return {\n codeResult: result,\n barcodeLine: barcodeLine\n };\n\n }\n\n /**\n * This method slices the given area apart and tries to detect a barcode-pattern\n * for each slice. It returns the decoded barcode, or null if nothing was found\n * @param {Array} box\n * @param {Array} line\n * @param {Number} lineAngle\n */\n function tryDecodeBruteForce(box, line, lineAngle) {\n var sideLength = Math.sqrt(Math.pow(box[1][0] - box[0][0], 2) + Math.pow((box[1][1] - box[0][1]), 2)),\n i,\n slices = 16,\n result = null,\n dir,\n extension,\n xdir = Math.sin(lineAngle),\n ydir = Math.cos(lineAngle);\n\n for ( i = 1; i < slices && result === null; i++) {\n // move line perpendicular to angle\n dir = sideLength / slices * i * (i % 2 === 0 ? -1 : 1);\n extension = {\n y : dir * xdir,\n x : dir * ydir\n };\n line[0].y += extension.x;\n line[0].x -= extension.y;\n line[1].y += extension.x;\n line[1].x -= extension.y;\n\n result = tryDecode(line);\n }\n return result;\n }\n\n function getLineLength(line) {\n return Math.sqrt(\n Math.pow(Math.abs(line[1].y - line[0].y), 2) +\n Math.pow(Math.abs(line[1].x - line[0].x), 2));\n }\n\n /**\n * With the help of the configured readers (Code128 or EAN) this function tries to detect a\n * valid barcode pattern within the given area.\n * @param {Object} box The area to search in\n * @returns {Object} the result {codeResult, line, angle, pattern, threshold}\n */\n function decodeFromBoundingBox(box) {\n var line,\n lineAngle,\n ctx = _canvas.ctx.overlay,\n result,\n lineLength;\n\n if (config.drawBoundingBox && ctx) {\n ImageDebug.drawPath(box, {x: 0, y: 1}, ctx, {color: \"blue\", lineWidth: 2});\n }\n\n line = getLine(box);\n lineLength = getLineLength(line);\n lineAngle = Math.atan2(line[1].y - line[0].y, line[1].x - line[0].x);\n line = getExtendedLine(line, lineAngle, Math.floor(lineLength*0.1));\n if(line === null){\n return null;\n }\n\n result = tryDecode(line);\n if(result === null) {\n result = tryDecodeBruteForce(box, line, lineAngle);\n }\n\n if(result === null) {\n return null;\n }\n\n if (result && config.drawScanline && ctx) {\n ImageDebug.drawPath(line, {x: 'x', y: 'y'}, ctx, {color: 'red', lineWidth: 3});\n }\n\n return {\n codeResult : result.codeResult,\n line : line,\n angle : lineAngle,\n pattern : result.barcodeLine.line,\n threshold : result.barcodeLine.threshold\n };\n }\n\n return {\n decodeFromBoundingBox : function(box) {\n return decodeFromBoundingBox(box);\n },\n decodeFromBoundingBoxes : function(boxes) {\n var i, result;\n for ( i = 0; i < boxes.length; i++) {\n result = decodeFromBoundingBox(boxes[i]);\n if (result && result.codeResult) {\n result.box = boxes[i];\n return result;\n }\n }\n },\n setReaders: function(readers) {\n config.readers = readers;\n _barcodeReaders.length = 0;\n initReaders();\n }\n };\n }\n };\n\n return (BarcodeDecoder);\n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('frame_grabber',[\"cv_utils\"], function(CVUtils) {\n \"use strict\";\n\n var FrameGrabber = {};\n\n FrameGrabber.create = function(inputStream, canvas) {\n var _that = {},\n _streamConfig = inputStream.getConfig(),\n _video_size = CVUtils.imageRef(inputStream.getRealWidth(), inputStream.getRealHeight()),\n _canvasSize = inputStream.getCanvasSize(),\n _size = CVUtils.imageRef(inputStream.getWidth(), inputStream.getHeight()),\n topRight = inputStream.getTopRight(),\n _sx = topRight.x,\n _sy = topRight.y,\n _canvas,\n _ctx = null,\n _data = null;\n\n _canvas = canvas ? canvas : document.createElement(\"canvas\");\n _canvas.width = _canvasSize.x;\n _canvas.height = _canvasSize.y;\n _ctx = _canvas.getContext(\"2d\");\n _data = new Uint8Array(_size.x * _size.y);\n console.log(\"FrameGrabber\", JSON.stringify({\n size: _size,\n topRight: topRight,\n videoSize: _video_size,\n canvasSize: _canvasSize\n }));\n\n /**\n * Uses the given array as frame-buffer \n */\n _that.attachData = function(data) {\n _data = data;\n };\n\n /**\n * Returns the used frame-buffer\n */\n _that.getData = function() {\n return _data;\n };\n\n /**\n * Fetches a frame from the input-stream and puts into the frame-buffer.\n * The image-data is converted to gray-scale and then half-sampled if configured.\n */\n _that.grab = function() {\n var doHalfSample = _streamConfig.halfSample,\n frame = inputStream.getFrame(),\n ctxData;\n if (frame) {\n _ctx.drawImage(frame, 0, 0, _canvasSize.x, _canvasSize.y);\n ctxData = _ctx.getImageData(_sx, _sy, _size.x, _size.y).data;\n if(doHalfSample){\n CVUtils.grayAndHalfSampleFromCanvasData(ctxData, _size, _data);\n } else {\n CVUtils.computeGray(ctxData, _data, _streamConfig);\n }\n return true;\n } else {\n return false;\n }\n };\n\n _that.getSize = function() {\n return _size;\n };\n\n return _that;\n };\n\n return (FrameGrabber);\n});\n\n/**\n * The basic configuration\n */\n\ndefine('config',[],function(){\n var config = {\n inputStream: { name: \"Live\",\n type: \"LiveStream\",\n constraints: {\n width: 640,\n height: 480,\n minAspectRatio: 0,\n maxAspectRatio: 100,\n facing: \"environment\" // or user\n },\n area: {\n top: \"0%\",\n right: \"0%\",\n left: \"0%\",\n bottom: \"0%\"\n },\n singleChannel: false // true: only the red color-channel is read\n },\n tracking: false,\n debug: false,\n controls: false,\n locate: true,\n numOfWorkers: 4,\n visual: {\n show: true\n },\n decoder:{\n drawBoundingBox: false,\n showFrequency: false,\n drawScanline: false,\n showPattern: false,\n readers: [\n 'code_128_reader'\n ]\n },\n locator: {\n halfSample: true,\n patchSize: \"medium\", // x-small, small, medium, large, x-large\n showCanvas: false,\n showPatches: false,\n showFoundPatches: false,\n showSkeleton: false,\n showLabels: false,\n showPatchLabels: false,\n showRemainingPatchLabels: false,\n boxFromPatches: {\n showTransformed: false,\n showTransformedBox: false,\n showBB: false\n }\n }\n };\n\n return config;\n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('events',[],function() {\n \"use strict\";\n\n var _events = function() {\n var events = {};\n\n function getEvent(eventName) {\n if (!events[eventName]) {\n events[eventName] = {\n subscribers : []\n };\n }\n return events[eventName];\n }\n \n function clearEvents(){\n events = {};\n }\n\n function publishSubscription(subscription, data) {\n if (subscription.async) {\n setTimeout(function() {\n subscription.callback(data);\n }, 4);\n } else {\n subscription.callback(data);\n }\n }\n \n function subscribe(event, callback, async) {\n var subscription;\n\n if ( typeof callback === \"function\") {\n subscription = {\n callback : callback,\n async : async\n };\n } else {\n subscription = callback;\n if (!subscription.callback) {\n throw \"Callback was not specified on options\";\n }\n }\n\n getEvent(event).subscribers.push(subscription);\n }\n\n return {\n subscribe : function(event, callback, async) {\n return subscribe(event, callback, async);\n },\n publish : function(eventName, data) {\n var event = getEvent(eventName),\n subscribers = event.subscribers;\n \n event.subscribers = subscribers.filter(function(subscriber) {\n publishSubscription(subscriber, data);\n return !subscriber.once;\n });\n },\n once: function(event, callback, async) {\n subscribe(event, {\n callback: callback,\n async: async,\n once: true\n });\n },\n unsubscribe: function(eventName, callback) {\n var event;\n \n if (eventName) {\n event = getEvent(eventName);\n if (event && callback) {\n event.subscribers = event.subscribers.filter(function(subscriber){\n return subscriber.callback !== callback;\n });\n } else {\n event.subscribers = [];\n }\n } else {\n clearEvents();\n }\n }\n };\n }();\n\n return _events;\n}); \n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define, MediaStreamTrack */\n\ndefine('camera_access',[\"html_utils\"], function(HtmlUtils) {\n \"use strict\";\n var streamRef,\n loadedDataHandler;\n\n /**\n * Wraps browser-specific getUserMedia\n * @param {Object} constraints\n * @param {Object} success Callback\n * @param {Object} failure Callback\n */\n function getUserMedia(constraints, success, failure) {\n if (typeof navigator.getUserMedia !== 'undefined') {\n navigator.getUserMedia(constraints, function (stream) {\n streamRef = stream;\n var videoSrc = (window.URL && window.URL.createObjectURL(stream)) || stream;\n success.apply(null, [videoSrc]);\n }, failure);\n } else {\n failure(new TypeError(\"getUserMedia not available\"));\n }\n }\n\n function loadedData(video, callback) {\n var attempts = 10;\n\n function checkVideo() {\n if (attempts > 0) {\n if (video.videoWidth > 0 && video.videoHeight > 0) {\n console.log(video.videoWidth + \"px x \" + video.videoHeight + \"px\");\n callback();\n } else {\n window.setTimeout(checkVideo, 500);\n }\n } else {\n callback('Unable to play video stream. Is webcam working?');\n }\n attempts--;\n }\n checkVideo();\n }\n\n /**\n * Tries to attach the camera-stream to a given video-element\n * and calls the callback function when the content is ready\n * @param {Object} constraints\n * @param {Object} video\n * @param {Object} callback\n */\n function initCamera(constraints, video, callback) {\n getUserMedia(constraints, function(src) {\n video.src = src;\n if (loadedDataHandler) {\n video.removeEventListener(\"loadeddata\", loadedDataHandler, false);\n }\n loadedDataHandler = loadedData.bind(null, video, callback);\n video.addEventListener('loadeddata', loadedDataHandler, false);\n video.play();\n }, function(e) {\n callback(e);\n });\n }\n\n /**\n * Normalizes the incoming constraints to satisfy the current browser\n * @param config\n * @param cb Callback which is called whenever constraints are created\n * @returns {*}\n */\n function normalizeConstraints(config, cb) {\n var constraints = {\n audio: false,\n video: true\n },\n videoConstraints = HtmlUtils.mergeObjects({\n width: 640,\n height: 480,\n minAspectRatio: 0,\n maxAspectRatio: 100,\n facing: \"environment\"\n }, config);\n\n if ( typeof MediaStreamTrack !== 'undefined' && typeof MediaStreamTrack.getSources !== 'undefined') {\n MediaStreamTrack.getSources(function(sourceInfos) {\n var videoSourceId;\n for (var i = 0; i != sourceInfos.length; ++i) {\n var sourceInfo = sourceInfos[i];\n if (sourceInfo.kind == \"video\" && sourceInfo.facing == videoConstraints.facing) {\n videoSourceId = sourceInfo.id;\n }\n }\n constraints.video = {\n mandatory: {\n minWidth: videoConstraints.width,\n minHeight: videoConstraints.height,\n minAspectRatio: videoConstraints.minAspectRatio,\n maxAspectRatio: videoConstraints.maxAspectRatio\n },\n optional: [{\n sourceId: videoSourceId\n }]\n };\n return cb(constraints);\n });\n } else {\n constraints.video = {\n mediaSource: \"camera\",\n width: { min: videoConstraints.width, max: videoConstraints.width },\n height: { min: videoConstraints.height, max: videoConstraints.height },\n require: [\"width\", \"height\"]\n };\n return cb(constraints);\n }\n }\n\n /**\n * Requests the back-facing camera of the user. The callback is called\n * whenever the stream is ready to be consumed, or if an error occures.\n * @param {Object} video\n * @param {Object} callback\n */\n function request(video, videoConstraints, callback) {\n normalizeConstraints(videoConstraints, function(constraints) {\n initCamera(constraints, video, callback);\n });\n }\n\n return {\n request : function(video, constraints, callback) {\n request(video, constraints, callback);\n },\n release : function() {\n var tracks = streamRef && streamRef.getVideoTracks();\n if (tracks.length) {\n tracks[0].stop();\n }\n streamRef = null;\n }\n };\n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true */\n/* global define */\n\ndefine('result_collector',[\"image_debug\"], function(ImageDebug) {\n \"use strict\";\n\n function contains(codeResult, list) {\n if (list) {\n return list.some(function (item) {\n return Object.keys(item).every(function (key) {\n return item[key] === codeResult[key];\n });\n });\n }\n return false;\n }\n\n function passesFilter(codeResult, filter) {\n if (typeof filter === 'function') {\n return filter(codeResult);\n }\n return true;\n }\n\n return {\n create: function(config) {\n var canvas = document.createElement(\"canvas\"),\n ctx = canvas.getContext(\"2d\"),\n results = [],\n capacity = config.capacity || 20,\n capture = config.capture === true;\n\n function matchesConstraints(codeResult) {\n return capacity && codeResult && !contains(codeResult, config.blacklist) && passesFilter(codeResult, config.filter);\n }\n\n return {\n addResult: function(data, imageSize, codeResult) {\n var result = {};\n\n if (matchesConstraints(codeResult)) {\n capacity--;\n result.codeResult = codeResult;\n if (capture) {\n canvas.width = imageSize.x;\n canvas.height = imageSize.y;\n ImageDebug.drawImage(data, imageSize, ctx);\n result.frame = canvas.toDataURL();\n }\n results.push(result);\n }\n },\n getResults: function() {\n return results;\n }\n };\n }\n };\n});\n\n/* jshint undef: true, unused: true, browser:true, devel: true, evil: true */\n/* global define, vec2 */\n\n\ndefine('quagga',[\n \"input_stream\",\n \"image_wrapper\",\n \"barcode_locator\",\n \"barcode_decoder\",\n \"frame_grabber\",\n \"html_utils\",\n \"config\",\n \"events\",\n \"camera_access\",\n \"image_debug\",\n \"result_collector\"],\nfunction(InputStream,\n ImageWrapper,\n BarcodeLocator,\n BarcodeDecoder,\n FrameGrabber,\n HtmlUtils,\n _config,\n Events,\n CameraAccess,\n ImageDebug,\n ResultCollector) {\n \"use strict\";\n \n var _inputStream,\n _framegrabber,\n _stopped,\n _canvasContainer = {\n ctx : {\n image : null,\n overlay : null\n },\n dom : {\n image : null,\n overlay : null\n }\n },\n _inputImageWrapper,\n _boxSize,\n _decoder,\n _workerPool = [],\n _onUIThread = true,\n _resultCollector;\n\n function initializeData(imageWrapper) {\n initBuffers(imageWrapper);\n _decoder = BarcodeDecoder.create(_config.decoder, _inputImageWrapper);\n }\n\n function initConfig() {\n if (typeof document !== \"undefined\") {\n var vis = [{\n node: document.querySelector(\"div[data-controls]\"),\n prop: _config.controls\n }, {\n node: _canvasContainer.dom.overlay,\n prop: _config.visual.show\n }];\n\n for (var i = 0; i < vis.length; i++) {\n if (vis[i].node) {\n if (vis[i].prop === true) {\n vis[i].node.style.display = \"block\";\n } else {\n vis[i].node.style.display = \"none\";\n }\n }\n }\n }\n }\n\n function initInputStream(cb) {\n var video;\n if (_config.inputStream.type == \"VideoStream\") {\n video = document.createElement(\"video\");\n _inputStream = InputStream.createVideoStream(video);\n } else if (_config.inputStream.type == \"ImageStream\") {\n _inputStream = InputStream.createImageStream();\n } else if (_config.inputStream.type == \"LiveStream\") {\n var $viewport = document.querySelector(\"#interactive.viewport\");\n if ($viewport) {\n video = $viewport.querySelector(\"video\");\n if (!video) {\n video = document.createElement(\"video\");\n $viewport.appendChild(video);\n }\n }\n _inputStream = InputStream.createLiveStream(video);\n CameraAccess.request(video, _config.inputStream.constraints, function(err) {\n if (!err) {\n _inputStream.trigger(\"canrecord\");\n } else {\n return cb(err);\n }\n });\n }\n\n _inputStream.setAttribute(\"preload\", \"auto\");\n _inputStream.setAttribute(\"autoplay\", true);\n _inputStream.setInputStream(_config.inputStream);\n _inputStream.addEventListener(\"canrecord\", canRecord.bind(undefined, cb));\n }\n\n function canRecord(cb) {\n BarcodeLocator.checkImageConstraints(_inputStream, _config.locator);\n initCanvas();\n _framegrabber = FrameGrabber.create(_inputStream, _canvasContainer.dom.image);\n initConfig();\n\n if (_config.numOfWorkers > 0) {\n initWorkers(function() {\n console.log(\"Workers created\");\n ready(cb);\n });\n } else {\n initializeData();\n ready(cb);\n }\n }\n\n function ready(cb){\n _inputStream.play();\n cb();\n }\n\n function initCanvas() {\n if (typeof document !== \"undefined\") {\n var $viewport = document.querySelector(\"#interactive.viewport\");\n _canvasContainer.dom.image = document.querySelector(\"canvas.imgBuffer\");\n if (!_canvasContainer.dom.image) {\n _canvasContainer.dom.image = document.createElement(\"canvas\");\n _canvasContainer.dom.image.className = \"imgBuffer\";\n if ($viewport && _config.inputStream.type == \"ImageStream\") {\n $viewport.appendChild(_canvasContainer.dom.image);\n }\n }\n _canvasContainer.ctx.image = _canvasContainer.dom.image.getContext(\"2d\");\n _canvasContainer.dom.image.width = _inputStream.getCanvasSize().x;\n _canvasContainer.dom.image.height = _inputStream.getCanvasSize().y;\n\n _canvasContainer.dom.overlay = document.querySelector(\"canvas.drawingBuffer\");\n if (!_canvasContainer.dom.overlay) {\n _canvasContainer.dom.overlay = document.createElement(\"canvas\");\n _canvasContainer.dom.overlay.className = \"drawingBuffer\";\n if ($viewport) {\n $viewport.appendChild(_canvasContainer.dom.overlay);\n }\n var clearFix = document.createElement(\"br\");\n clearFix.setAttribute(\"clear\", \"all\");\n if ($viewport) {\n $viewport.appendChild(clearFix);\n }\n }\n _canvasContainer.ctx.overlay = _canvasContainer.dom.overlay.getContext(\"2d\");\n _canvasContainer.dom.overlay.width = _inputStream.getCanvasSize().x;\n _canvasContainer.dom.overlay.height = _inputStream.getCanvasSize().y;\n }\n }\n\n function initBuffers(imageWrapper) {\n if (imageWrapper) {\n _inputImageWrapper = imageWrapper;\n } else {\n _inputImageWrapper = new ImageWrapper({\n x : _inputStream.getWidth(),\n y : _inputStream.getHeight()\n });\n }\n\n console.log(_inputImageWrapper.size);\n _boxSize = [\n vec2.create([0, 0]),\n vec2.create([0, _inputImageWrapper.size.y]),\n vec2.create([_inputImageWrapper.size.x, _inputImageWrapper.size.y]),\n vec2.create([_inputImageWrapper.size.x, 0])\n ];\n BarcodeLocator.init(_inputImageWrapper, _config.locator);\n }\n\n function getBoundingBoxes() {\n if (_config.locate) {\n return BarcodeLocator.locate();\n } else {\n return [[\n vec2.create(_boxSize[0]),\n vec2.create(_boxSize[1]),\n vec2.create(_boxSize[2]),\n vec2.create(_boxSize[3])]];\n }\n }\n\n function transformResult(result) {\n var topRight = _inputStream.getTopRight(),\n xOffset = topRight.x,\n yOffset = topRight.y,\n i;\n\n if (!result || (xOffset === 0 && yOffset === 0)) {\n return;\n }\n\n\n if (result.line && result.line.length === 2) {\n moveLine(result.line);\n }\n if (result.boxes && result.boxes.length > 0) {\n for (i = 0; i < result.boxes.length; i++) {\n moveBox(result.boxes[i]);\n }\n }\n\n function moveBox(box) {\n var corner = box.length;\n\n while(corner--) {\n box[corner][0] += xOffset;\n box[corner][1] += yOffset;\n }\n }\n\n function moveLine(line) {\n line[0].x += xOffset;\n line[0].y += yOffset;\n line[1].x += xOffset;\n line[1].y += yOffset;\n }\n }\n\n function publishResult(result, imageData) {\n if (_onUIThread) {\n transformResult(result);\n if (imageData && result && result.codeResult) {\n if (_resultCollector) {\n _resultCollector.addResult(imageData, _inputStream.getCanvasSize(), result.codeResult);\n }\n }\n }\n\n Events.publish(\"processed\", result);\n if (result && result.codeResult) {\n Events.publish(\"detected\", result);\n }\n }\n\n function locateAndDecode() {\n var result,\n boxes;\n\n boxes = getBoundingBoxes();\n if (boxes) {\n result = _decoder.decodeFromBoundingBoxes(boxes);\n result = result || {};\n result.boxes = boxes;\n publishResult(result, _inputImageWrapper.data);\n } else {\n publishResult();\n }\n }\n\n function update() {\n var availableWorker;\n\n if (_onUIThread) {\n if (_workerPool.length > 0) {\n availableWorker = _workerPool.filter(function(workerThread) {\n return !workerThread.busy;\n })[0];\n if (availableWorker) {\n _framegrabber.attachData(availableWorker.imageData);\n } else {\n return; // all workers are busy\n }\n } else {\n _framegrabber.attachData(_inputImageWrapper.data);\n }\n if (_framegrabber.grab()) {\n if (availableWorker) {\n availableWorker.busy = true;\n availableWorker.worker.postMessage({\n cmd: 'process',\n imageData: availableWorker.imageData\n }, [availableWorker.imageData.buffer]);\n } else {\n locateAndDecode();\n }\n }\n } else {\n locateAndDecode();\n }\n }\n\n function start() {\n _stopped = false;\n ( function frame() {\n if (!_stopped) {\n update();\n if (_onUIThread && _config.inputStream.type == \"LiveStream\") {\n window.requestAnimFrame(frame);\n }\n }\n }());\n }\n\n function initWorkers(cb) {\n var i;\n _workerPool = [];\n\n for (i = 0; i < _config.numOfWorkers; i++) {\n initWorker(workerInitialized);\n }\n\n function workerInitialized(workerThread) {\n _workerPool.push(workerThread);\n if (_workerPool.length >= _config.numOfWorkers){\n cb();\n }\n }\n }\n\n function initWorker(cb) {\n var blobURL,\n workerThread = {\n worker: undefined,\n imageData: new Uint8Array(_inputStream.getWidth() * _inputStream.getHeight()),\n busy: true\n };\n\n blobURL = generateWorkerBlob();\n workerThread.worker = new Worker(blobURL);\n\n workerThread.worker.onmessage = function(e) {\n if (e.data.event === 'initialized') {\n URL.revokeObjectURL(blobURL);\n workerThread.busy = false;\n workerThread.imageData = new Uint8Array(e.data.imageData);\n console.log(\"Worker initialized\");\n return cb(workerThread);\n } else if (e.data.event === 'processed') {\n workerThread.imageData = new Uint8Array(e.data.imageData);\n workerThread.busy = false;\n publishResult(e.data.result, workerThread.imageData);\n } else if (e.data.event === 'error') {\n console.log(\"Worker error: \" + e.data.message);\n }\n };\n\n workerThread.worker.postMessage({\n cmd: 'init',\n size: {x: _inputStream.getWidth(), y: _inputStream.getHeight()},\n imageData: workerThread.imageData,\n config: _config\n }, [workerThread.imageData.buffer]);\n }\n\n\n function workerInterface(factory) {\n if (factory) {\n /* jshint ignore:start */\n var Quagga = factory();\n if (!Quagga) {\n self.postMessage({'event': 'error', message: 'Quagga could not be created'});\n return;\n }\n /* jshint ignore:end */\n }\n /* jshint ignore:start */\n var imageWrapper;\n\n self.onmessage = function(e) {\n if (e.data.cmd === 'init') {\n var config = e.data.config;\n config.numOfWorkers = 0;\n imageWrapper = new Quagga.ImageWrapper({\n x : e.data.size.x,\n y : e.data.size.y\n }, new Uint8Array(e.data.imageData));\n Quagga.init(config, ready, imageWrapper);\n Quagga.onProcessed(onProcessed);\n } else if (e.data.cmd === 'process') {\n imageWrapper.data = new Uint8Array(e.data.imageData);\n Quagga.start();\n } else if (e.data.cmd === 'setReaders') {\n Quagga.setReaders(e.data.readers);\n }\n };\n\n function onProcessed(result) {\n self.postMessage({'event': 'processed', imageData: imageWrapper.data, result: result}, [imageWrapper.data.buffer]);\n }\n\n function ready() {\n self.postMessage({'event': 'initialized', imageData: imageWrapper.data}, [imageWrapper.data.buffer]);\n }\n /* jshint ignore:end */\n }\n\n function generateWorkerBlob() {\n var blob,\n factorySource;\n\n /* jshint ignore:start */\n if (typeof __factorySource__ !== 'undefined') {\n factorySource = __factorySource__;\n }\n /* jshint ignore:end */\n\n blob = new Blob(['(' + workerInterface.toString() + ')(' + factorySource + ');'],\n {type : 'text/javascript'});\n\n return window.URL.createObjectURL(blob);\n }\n\n function setReaders(readers) {\n if (_decoder) {\n _decoder.setReaders(readers);\n } else if (_onUIThread && _workerPool.length > 0) {\n _workerPool.forEach(function(workerThread) {\n workerThread.worker.postMessage({cmd: 'setReaders', readers: readers});\n });\n }\n }\n\n return {\n init : function(config, cb, imageWrapper) {\n _config = HtmlUtils.mergeObjects(_config, config);\n if (imageWrapper) {\n _onUIThread = false;\n initializeData(imageWrapper);\n return cb();\n } else {\n initInputStream(cb);\n }\n },\n start : function() {\n start();\n },\n stop : function() {\n _stopped = true;\n _workerPool.forEach(function(workerThread) {\n workerThread.worker.terminate();\n console.log(\"Worker terminated!\");\n });\n _workerPool.length = 0;\n if (_config.inputStream.type === \"LiveStream\") {\n CameraAccess.release();\n _inputStream.clearEventHandlers();\n }\n },\n pause: function() {\n _stopped = true;\n },\n onDetected : function(callback) {\n Events.subscribe(\"detected\", callback);\n },\n offDetected: function(callback) {\n Events.unsubscribe(\"detected\", callback);\n },\n onProcessed: function(callback) {\n Events.subscribe(\"processed\", callback);\n },\n offProcessed: function(callback) {\n Events.unsubscribe(\"processed\", callback);\n },\n setReaders: function(readers) {\n setReaders(readers);\n },\n registerResultCollector: function(resultCollector) {\n if (resultCollector && typeof resultCollector.addResult === 'function') {\n _resultCollector = resultCollector;\n }\n },\n canvas : _canvasContainer,\n decodeSingle : function(config, resultCallback) {\n config = HtmlUtils.mergeObjects({\n inputStream: {\n type : \"ImageStream\",\n sequence : false,\n size: 800,\n src: config.src\n },\n numOfWorkers: 1,\n locator: {\n halfSample: false\n }\n }, config);\n this.init(config, function() {\n Events.once(\"processed\", function(result) {\n _stopped = true;\n resultCallback.call(null, result);\n }, true);\n start();\n });\n },\n ImageWrapper: ImageWrapper,\n ImageDebug: ImageDebug,\n ResultCollector: ResultCollector\n };\n});\n\n return require('quagga');\n}));","/*\n _ _ _ _\n ___| (_) ___| | __ (_)___\n/ __| | |/ __| |/ / | / __|\n\\__ \\ | | (__| < _ | \\__ \\\n|___/_|_|\\___|_|\\_(_)/ |___/\n |__/\n\n Version: 1.8.1\n Author: Ken Wheeler\n Website: http://kenwheeler.github.io\n Docs: http://kenwheeler.github.io/slick\n Repo: http://github.com/kenwheeler/slick\n Issues: http://github.com/kenwheeler/slick/issues\n\n */\n/* global window, document, define, jQuery, setInterval, clearInterval */\n;(function(factory) {\n 'use strict';\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports !== 'undefined') {\n module.exports = factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n\n}(function($) {\n 'use strict';\n var Slick = window.Slick || {};\n\n Slick = (function() {\n\n var instanceUid = 0;\n\n function Slick(element, settings) {\n\n var _ = this, dataSettings;\n\n _.defaults = {\n accessibility: true,\n adaptiveHeight: false,\n appendArrows: $(element),\n appendDots: $(element),\n arrows: true,\n asNavFor: null,\n prevArrow: '<button class=\"slick-prev\" aria-label=\"Previous\" type=\"button\">Previous</button>',\n nextArrow: '<button class=\"slick-next\" aria-label=\"Next\" type=\"button\">Next</button>',\n autoplay: false,\n autoplaySpeed: 3000,\n centerMode: false,\n centerPadding: '50px',\n cssEase: 'ease',\n customPaging: function(slider, i) {\n return $('<button type=\"button\" />').text(i + 1);\n },\n dots: false,\n dotsClass: 'slick-dots',\n draggable: true,\n easing: 'linear',\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n focusOnChange: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: 'ondemand',\n mobileFirst: false,\n pauseOnHover: true,\n pauseOnFocus: true,\n pauseOnDotsHover: false,\n respondTo: 'window',\n responsive: null,\n rows: 1,\n rtl: false,\n slide: '',\n slidesPerRow: 1,\n slidesToShow: 1,\n slidesToScroll: 1,\n speed: 500,\n swipe: true,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n verticalSwiping: false,\n waitForAnimate: true,\n zIndex: 1000\n };\n\n _.initials = {\n animating: false,\n dragging: false,\n autoPlayTimer: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n $dots: null,\n listWidth: null,\n listHeight: null,\n loadIndex: 0,\n $nextArrow: null,\n $prevArrow: null,\n scrolling: false,\n slideCount: null,\n slideWidth: null,\n $slideTrack: null,\n $slides: null,\n sliding: false,\n slideOffset: 0,\n swipeLeft: null,\n swiping: false,\n $list: null,\n touchObject: {},\n transformsEnabled: false,\n unslicked: false\n };\n\n $.extend(_, _.initials);\n\n _.activeBreakpoint = null;\n _.animType = null;\n _.animProp = null;\n _.breakpoints = [];\n _.breakpointSettings = [];\n _.cssTransitions = false;\n _.focussed = false;\n _.interrupted = false;\n _.hidden = 'hidden';\n _.paused = true;\n _.positionProp = null;\n _.respondTo = null;\n _.rowCount = 1;\n _.shouldClick = true;\n _.$slider = $(element);\n _.$slidesCache = null;\n _.transformType = null;\n _.transitionType = null;\n _.visibilityChange = 'visibilitychange';\n _.windowWidth = 0;\n _.windowTimer = null;\n\n dataSettings = $(element).data('slick') || {};\n\n _.options = $.extend({}, _.defaults, settings, dataSettings);\n\n _.currentSlide = _.options.initialSlide;\n\n _.originalSettings = _.options;\n\n if (typeof document.mozHidden !== 'undefined') {\n _.hidden = 'mozHidden';\n _.visibilityChange = 'mozvisibilitychange';\n } else if (typeof document.webkitHidden !== 'undefined') {\n _.hidden = 'webkitHidden';\n _.visibilityChange = 'webkitvisibilitychange';\n }\n\n _.autoPlay = $.proxy(_.autoPlay, _);\n _.autoPlayClear = $.proxy(_.autoPlayClear, _);\n _.autoPlayIterator = $.proxy(_.autoPlayIterator, _);\n _.changeSlide = $.proxy(_.changeSlide, _);\n _.clickHandler = $.proxy(_.clickHandler, _);\n _.selectHandler = $.proxy(_.selectHandler, _);\n _.setPosition = $.proxy(_.setPosition, _);\n _.swipeHandler = $.proxy(_.swipeHandler, _);\n _.dragHandler = $.proxy(_.dragHandler, _);\n _.keyHandler = $.proxy(_.keyHandler, _);\n\n _.instanceUid = instanceUid++;\n\n // A simple way to check for HTML strings\n // Strict HTML recognition (must start with <)\n // Extracted from jQuery v1.11 source\n _.htmlExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*)$/;\n\n\n _.registerBreakpoints();\n _.init(true);\n\n }\n\n return Slick;\n\n }());\n\n Slick.prototype.activateADA = function() {\n var _ = this;\n\n _.$slideTrack.find('.slick-active').attr({\n 'aria-hidden': 'false'\n }).find('a, input, button, select').attr({\n 'tabindex': '0'\n });\n\n };\n\n Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {\n\n var _ = this;\n\n if (typeof(index) === 'boolean') {\n addBefore = index;\n index = null;\n } else if (index < 0 || (index >= _.slideCount)) {\n return false;\n }\n\n _.unload();\n\n if (typeof(index) === 'number') {\n if (index === 0 && _.$slides.length === 0) {\n $(markup).appendTo(_.$slideTrack);\n } else if (addBefore) {\n $(markup).insertBefore(_.$slides.eq(index));\n } else {\n $(markup).insertAfter(_.$slides.eq(index));\n }\n } else {\n if (addBefore === true) {\n $(markup).prependTo(_.$slideTrack);\n } else {\n $(markup).appendTo(_.$slideTrack);\n }\n }\n\n _.$slides = _.$slideTrack.children(this.options.slide);\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slideTrack.append(_.$slides);\n\n _.$slides.each(function(index, element) {\n $(element).attr('data-slick-index', index);\n });\n\n _.$slidesCache = _.$slides;\n\n _.reinit();\n\n };\n\n Slick.prototype.animateHeight = function() {\n var _ = this;\n if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {\n var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);\n _.$list.animate({\n height: targetHeight\n }, _.options.speed);\n }\n };\n\n Slick.prototype.animateSlide = function(targetLeft, callback) {\n\n var animProps = {},\n _ = this;\n\n _.animateHeight();\n\n if (_.options.rtl === true && _.options.vertical === false) {\n targetLeft = -targetLeft;\n }\n if (_.transformsEnabled === false) {\n if (_.options.vertical === false) {\n _.$slideTrack.animate({\n left: targetLeft\n }, _.options.speed, _.options.easing, callback);\n } else {\n _.$slideTrack.animate({\n top: targetLeft\n }, _.options.speed, _.options.easing, callback);\n }\n\n } else {\n\n if (_.cssTransitions === false) {\n if (_.options.rtl === true) {\n _.currentLeft = -(_.currentLeft);\n }\n $({\n animStart: _.currentLeft\n }).animate({\n animStart: targetLeft\n }, {\n duration: _.options.speed,\n easing: _.options.easing,\n step: function(now) {\n now = Math.ceil(now);\n if (_.options.vertical === false) {\n animProps[_.animType] = 'translate(' +\n now + 'px, 0px)';\n _.$slideTrack.css(animProps);\n } else {\n animProps[_.animType] = 'translate(0px,' +\n now + 'px)';\n _.$slideTrack.css(animProps);\n }\n },\n complete: function() {\n if (callback) {\n callback.call();\n }\n }\n });\n\n } else {\n\n _.applyTransition();\n targetLeft = Math.ceil(targetLeft);\n\n if (_.options.vertical === false) {\n animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';\n } else {\n animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';\n }\n _.$slideTrack.css(animProps);\n\n if (callback) {\n setTimeout(function() {\n\n _.disableTransition();\n\n callback.call();\n }, _.options.speed);\n }\n\n }\n\n }\n\n };\n\n Slick.prototype.getNavTarget = function() {\n\n var _ = this,\n asNavFor = _.options.asNavFor;\n\n if ( asNavFor && asNavFor !== null ) {\n asNavFor = $(asNavFor).not(_.$slider);\n }\n\n return asNavFor;\n\n };\n\n Slick.prototype.asNavFor = function(index) {\n\n var _ = this,\n asNavFor = _.getNavTarget();\n\n if ( asNavFor !== null && typeof asNavFor === 'object' ) {\n asNavFor.each(function() {\n var target = $(this).slick('getSlick');\n if(!target.unslicked) {\n target.slideHandler(index, true);\n }\n });\n }\n\n };\n\n Slick.prototype.applyTransition = function(slide) {\n\n var _ = this,\n transition = {};\n\n if (_.options.fade === false) {\n transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;\n } else {\n transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;\n }\n\n if (_.options.fade === false) {\n _.$slideTrack.css(transition);\n } else {\n _.$slides.eq(slide).css(transition);\n }\n\n };\n\n Slick.prototype.autoPlay = function() {\n\n var _ = this;\n\n _.autoPlayClear();\n\n if ( _.slideCount > _.options.slidesToShow ) {\n _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed );\n }\n\n };\n\n Slick.prototype.autoPlayClear = function() {\n\n var _ = this;\n\n if (_.autoPlayTimer) {\n clearInterval(_.autoPlayTimer);\n }\n\n };\n\n Slick.prototype.autoPlayIterator = function() {\n\n var _ = this,\n slideTo = _.currentSlide + _.options.slidesToScroll;\n\n if ( !_.paused && !_.interrupted && !_.focussed ) {\n\n if ( _.options.infinite === false ) {\n\n if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) {\n _.direction = 0;\n }\n\n else if ( _.direction === 0 ) {\n\n slideTo = _.currentSlide - _.options.slidesToScroll;\n\n if ( _.currentSlide - 1 === 0 ) {\n _.direction = 1;\n }\n\n }\n\n }\n\n _.slideHandler( slideTo );\n\n }\n\n };\n\n Slick.prototype.buildArrows = function() {\n\n var _ = this;\n\n if (_.options.arrows === true ) {\n\n _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');\n _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');\n\n if( _.slideCount > _.options.slidesToShow ) {\n\n _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');\n _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');\n\n if (_.htmlExpr.test(_.options.prevArrow)) {\n _.$prevArrow.prependTo(_.options.appendArrows);\n }\n\n if (_.htmlExpr.test(_.options.nextArrow)) {\n _.$nextArrow.appendTo(_.options.appendArrows);\n }\n\n if (_.options.infinite !== true) {\n _.$prevArrow\n .addClass('slick-disabled')\n .attr('aria-disabled', 'true');\n }\n\n } else {\n\n _.$prevArrow.add( _.$nextArrow )\n\n .addClass('slick-hidden')\n .attr({\n 'aria-disabled': 'true',\n 'tabindex': '-1'\n });\n\n }\n\n }\n\n };\n\n Slick.prototype.buildDots = function() {\n\n var _ = this,\n i, dot;\n\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\n\n _.$slider.addClass('slick-dotted');\n\n dot = $('<ul />').addClass(_.options.dotsClass);\n\n for (i = 0; i <= _.getDotCount(); i += 1) {\n dot.append($('<li />').append(_.options.customPaging.call(this, _, i)));\n }\n\n _.$dots = dot.appendTo(_.options.appendDots);\n\n _.$dots.find('li').first().addClass('slick-active');\n\n }\n\n };\n\n Slick.prototype.buildOut = function() {\n\n var _ = this;\n\n _.$slides =\n _.$slider\n .children( _.options.slide + ':not(.slick-cloned)')\n .addClass('slick-slide');\n\n _.slideCount = _.$slides.length;\n\n _.$slides.each(function(index, element) {\n $(element)\n .attr('data-slick-index', index)\n .data('originalStyling', $(element).attr('style') || '');\n });\n\n _.$slider.addClass('slick-slider');\n\n _.$slideTrack = (_.slideCount === 0) ?\n $('<div class=\"slick-track\"/>').appendTo(_.$slider) :\n _.$slides.wrapAll('<div class=\"slick-track\"/>').parent();\n\n _.$list = _.$slideTrack.wrap(\n '<div class=\"slick-list\"/>').parent();\n _.$slideTrack.css('opacity', 0);\n\n if (_.options.centerMode === true || _.options.swipeToSlide === true) {\n _.options.slidesToScroll = 1;\n }\n\n $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');\n\n _.setupInfinite();\n\n _.buildArrows();\n\n _.buildDots();\n\n _.updateDots();\n\n\n _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);\n\n if (_.options.draggable === true) {\n _.$list.addClass('draggable');\n }\n\n };\n\n Slick.prototype.buildRows = function() {\n\n var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection;\n\n newSlides = document.createDocumentFragment();\n originalSlides = _.$slider.children();\n\n if(_.options.rows > 0) {\n\n slidesPerSection = _.options.slidesPerRow * _.options.rows;\n numOfSlides = Math.ceil(\n originalSlides.length / slidesPerSection\n );\n\n for(a = 0; a < numOfSlides; a++){\n var slide = document.createElement('div');\n for(b = 0; b < _.options.rows; b++) {\n var row = document.createElement('div');\n for(c = 0; c < _.options.slidesPerRow; c++) {\n var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));\n if (originalSlides.get(target)) {\n row.appendChild(originalSlides.get(target));\n }\n }\n slide.appendChild(row);\n }\n newSlides.appendChild(slide);\n }\n\n _.$slider.empty().append(newSlides);\n _.$slider.children().children().children()\n .css({\n 'width':(100 / _.options.slidesPerRow) + '%',\n 'display': 'inline-block'\n });\n\n }\n\n };\n\n Slick.prototype.checkResponsive = function(initial, forceUpdate) {\n\n var _ = this,\n breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;\n var sliderWidth = _.$slider.width();\n var windowWidth = window.innerWidth || $(window).width();\n\n if (_.respondTo === 'window') {\n respondToWidth = windowWidth;\n } else if (_.respondTo === 'slider') {\n respondToWidth = sliderWidth;\n } else if (_.respondTo === 'min') {\n respondToWidth = Math.min(windowWidth, sliderWidth);\n }\n\n if ( _.options.responsive &&\n _.options.responsive.length &&\n _.options.responsive !== null) {\n\n targetBreakpoint = null;\n\n for (breakpoint in _.breakpoints) {\n if (_.breakpoints.hasOwnProperty(breakpoint)) {\n if (_.originalSettings.mobileFirst === false) {\n if (respondToWidth < _.breakpoints[breakpoint]) {\n targetBreakpoint = _.breakpoints[breakpoint];\n }\n } else {\n if (respondToWidth > _.breakpoints[breakpoint]) {\n targetBreakpoint = _.breakpoints[breakpoint];\n }\n }\n }\n }\n\n if (targetBreakpoint !== null) {\n if (_.activeBreakpoint !== null) {\n if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {\n _.activeBreakpoint =\n targetBreakpoint;\n if (_.breakpointSettings[targetBreakpoint] === 'unslick') {\n _.unslick(targetBreakpoint);\n } else {\n _.options = $.extend({}, _.originalSettings,\n _.breakpointSettings[\n targetBreakpoint]);\n if (initial === true) {\n _.currentSlide = _.options.initialSlide;\n }\n _.refresh(initial);\n }\n triggerBreakpoint = targetBreakpoint;\n }\n } else {\n _.activeBreakpoint = targetBreakpoint;\n if (_.breakpointSettings[targetBreakpoint] === 'unslick') {\n _.unslick(targetBreakpoint);\n } else {\n _.options = $.extend({}, _.originalSettings,\n _.breakpointSettings[\n targetBreakpoint]);\n if (initial === true) {\n _.currentSlide = _.options.initialSlide;\n }\n _.refresh(initial);\n }\n triggerBreakpoint = targetBreakpoint;\n }\n } else {\n if (_.activeBreakpoint !== null) {\n _.activeBreakpoint = null;\n _.options = _.originalSettings;\n if (initial === true) {\n _.currentSlide = _.options.initialSlide;\n }\n _.refresh(initial);\n triggerBreakpoint = targetBreakpoint;\n }\n }\n\n // only trigger breakpoints during an actual break. not on initialize.\n if( !initial && triggerBreakpoint !== false ) {\n _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);\n }\n }\n\n };\n\n Slick.prototype.changeSlide = function(event, dontAnimate) {\n\n var _ = this,\n $target = $(event.currentTarget),\n indexOffset, slideOffset, unevenOffset;\n\n // If target is a link, prevent default action.\n if($target.is('a')) {\n event.preventDefault();\n }\n\n // If target is not the <li> element (ie: a child), find the <li>.\n if(!$target.is('li')) {\n $target = $target.closest('li');\n }\n\n unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);\n indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;\n\n switch (event.data.message) {\n\n case 'previous':\n slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;\n if (_.slideCount > _.options.slidesToShow) {\n _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);\n }\n break;\n\n case 'next':\n slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;\n if (_.slideCount > _.options.slidesToShow) {\n _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);\n }\n break;\n\n case 'index':\n var index = event.data.index === 0 ? 0 :\n event.data.index || $target.index() * _.options.slidesToScroll;\n\n _.slideHandler(_.checkNavigable(index), false, dontAnimate);\n $target.children().trigger('focus');\n break;\n\n default:\n return;\n }\n\n };\n\n Slick.prototype.checkNavigable = function(index) {\n\n var _ = this,\n navigables, prevNavigable;\n\n navigables = _.getNavigableIndexes();\n prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n };\n\n Slick.prototype.cleanUpEvents = function() {\n\n var _ = this;\n\n if (_.options.dots && _.$dots !== null) {\n\n $('li', _.$dots)\n .off('click.slick', _.changeSlide)\n .off('mouseenter.slick', $.proxy(_.interrupt, _, true))\n .off('mouseleave.slick', $.proxy(_.interrupt, _, false));\n\n if (_.options.accessibility === true) {\n _.$dots.off('keydown.slick', _.keyHandler);\n }\n }\n\n _.$slider.off('focus.slick blur.slick');\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\n _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);\n _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);\n\n if (_.options.accessibility === true) {\n _.$prevArrow && _.$prevArrow.off('keydown.slick', _.keyHandler);\n _.$nextArrow && _.$nextArrow.off('keydown.slick', _.keyHandler);\n }\n }\n\n _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);\n _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);\n _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);\n _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);\n\n _.$list.off('click.slick', _.clickHandler);\n\n $(document).off(_.visibilityChange, _.visibility);\n\n _.cleanUpSlideEvents();\n\n if (_.options.accessibility === true) {\n _.$list.off('keydown.slick', _.keyHandler);\n }\n\n if (_.options.focusOnSelect === true) {\n $(_.$slideTrack).children().off('click.slick', _.selectHandler);\n }\n\n $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);\n\n $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);\n\n $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);\n\n $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);\n\n };\n\n Slick.prototype.cleanUpSlideEvents = function() {\n\n var _ = this;\n\n _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));\n _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));\n\n };\n\n Slick.prototype.cleanUpRows = function() {\n\n var _ = this, originalSlides;\n\n if(_.options.rows > 0) {\n originalSlides = _.$slides.children().children();\n originalSlides.removeAttr('style');\n _.$slider.empty().append(originalSlides);\n }\n\n };\n\n Slick.prototype.clickHandler = function(event) {\n\n var _ = this;\n\n if (_.shouldClick === false) {\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n }\n\n };\n\n Slick.prototype.destroy = function(refresh) {\n\n var _ = this;\n\n _.autoPlayClear();\n\n _.touchObject = {};\n\n _.cleanUpEvents();\n\n $('.slick-cloned', _.$slider).detach();\n\n if (_.$dots) {\n _.$dots.remove();\n }\n\n if ( _.$prevArrow && _.$prevArrow.length ) {\n\n _.$prevArrow\n .removeClass('slick-disabled slick-arrow slick-hidden')\n .removeAttr('aria-hidden aria-disabled tabindex')\n .css('display','');\n\n if ( _.htmlExpr.test( _.options.prevArrow )) {\n _.$prevArrow.remove();\n }\n }\n\n if ( _.$nextArrow && _.$nextArrow.length ) {\n\n _.$nextArrow\n .removeClass('slick-disabled slick-arrow slick-hidden')\n .removeAttr('aria-hidden aria-disabled tabindex')\n .css('display','');\n\n if ( _.htmlExpr.test( _.options.nextArrow )) {\n _.$nextArrow.remove();\n }\n }\n\n\n if (_.$slides) {\n\n _.$slides\n .removeClass('slick-slide slick-active slick-center slick-visible slick-current')\n .removeAttr('aria-hidden')\n .removeAttr('data-slick-index')\n .each(function(){\n $(this).attr('style', $(this).data('originalStyling'));\n });\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slideTrack.detach();\n\n _.$list.detach();\n\n _.$slider.append(_.$slides);\n }\n\n _.cleanUpRows();\n\n _.$slider.removeClass('slick-slider');\n _.$slider.removeClass('slick-initialized');\n _.$slider.removeClass('slick-dotted');\n\n _.unslicked = true;\n\n if(!refresh) {\n _.$slider.trigger('destroy', [_]);\n }\n\n };\n\n Slick.prototype.disableTransition = function(slide) {\n\n var _ = this,\n transition = {};\n\n transition[_.transitionType] = '';\n\n if (_.options.fade === false) {\n _.$slideTrack.css(transition);\n } else {\n _.$slides.eq(slide).css(transition);\n }\n\n };\n\n Slick.prototype.fadeSlide = function(slideIndex, callback) {\n\n var _ = this;\n\n if (_.cssTransitions === false) {\n\n _.$slides.eq(slideIndex).css({\n zIndex: _.options.zIndex\n });\n\n _.$slides.eq(slideIndex).animate({\n opacity: 1\n }, _.options.speed, _.options.easing, callback);\n\n } else {\n\n _.applyTransition(slideIndex);\n\n _.$slides.eq(slideIndex).css({\n opacity: 1,\n zIndex: _.options.zIndex\n });\n\n if (callback) {\n setTimeout(function() {\n\n _.disableTransition(slideIndex);\n\n callback.call();\n }, _.options.speed);\n }\n\n }\n\n };\n\n Slick.prototype.fadeSlideOut = function(slideIndex) {\n\n var _ = this;\n\n if (_.cssTransitions === false) {\n\n _.$slides.eq(slideIndex).animate({\n opacity: 0,\n zIndex: _.options.zIndex - 2\n }, _.options.speed, _.options.easing);\n\n } else {\n\n _.applyTransition(slideIndex);\n\n _.$slides.eq(slideIndex).css({\n opacity: 0,\n zIndex: _.options.zIndex - 2\n });\n\n }\n\n };\n\n Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {\n\n var _ = this;\n\n if (filter !== null) {\n\n _.$slidesCache = _.$slides;\n\n _.unload();\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slidesCache.filter(filter).appendTo(_.$slideTrack);\n\n _.reinit();\n\n }\n\n };\n\n Slick.prototype.focusHandler = function() {\n\n var _ = this;\n\n _.$slider\n .off('focus.slick blur.slick')\n .on('focus.slick blur.slick', '*', function(event) {\n\n event.stopImmediatePropagation();\n var $sf = $(this);\n\n setTimeout(function() {\n\n if( _.options.pauseOnFocus ) {\n _.focussed = $sf.is(':focus');\n _.autoPlay();\n }\n\n }, 0);\n\n });\n };\n\n Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {\n\n var _ = this;\n return _.currentSlide;\n\n };\n\n Slick.prototype.getDotCount = function() {\n\n var _ = this;\n\n var breakPoint = 0;\n var counter = 0;\n var pagerQty = 0;\n\n if (_.options.infinite === true) {\n if (_.slideCount <= _.options.slidesToShow) {\n ++pagerQty;\n } else {\n while (breakPoint < _.slideCount) {\n ++pagerQty;\n breakPoint = counter + _.options.slidesToScroll;\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\n }\n }\n } else if (_.options.centerMode === true) {\n pagerQty = _.slideCount;\n } else if(!_.options.asNavFor) {\n pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);\n }else {\n while (breakPoint < _.slideCount) {\n ++pagerQty;\n breakPoint = counter + _.options.slidesToScroll;\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\n }\n }\n\n return pagerQty - 1;\n\n };\n\n Slick.prototype.getLeft = function(slideIndex) {\n\n var _ = this,\n targetLeft,\n verticalHeight,\n verticalOffset = 0,\n targetSlide,\n coef;\n\n _.slideOffset = 0;\n verticalHeight = _.$slides.first().outerHeight(true);\n\n if (_.options.infinite === true) {\n if (_.slideCount > _.options.slidesToShow) {\n _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;\n coef = -1\n\n if (_.options.vertical === true && _.options.centerMode === true) {\n if (_.options.slidesToShow === 2) {\n coef = -1.5;\n } else if (_.options.slidesToShow === 1) {\n coef = -2\n }\n }\n verticalOffset = (verticalHeight * _.options.slidesToShow) * coef;\n }\n if (_.slideCount % _.options.slidesToScroll !== 0) {\n if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {\n if (slideIndex > _.slideCount) {\n _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;\n verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;\n } else {\n _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;\n verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;\n }\n }\n }\n } else {\n if (slideIndex + _.options.slidesToShow > _.slideCount) {\n _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;\n verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;\n }\n }\n\n if (_.slideCount <= _.options.slidesToShow) {\n _.slideOffset = 0;\n verticalOffset = 0;\n }\n\n if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) {\n _.slideOffset = ((_.slideWidth * Math.floor(_.options.slidesToShow)) / 2) - ((_.slideWidth * _.slideCount) / 2);\n } else if (_.options.centerMode === true && _.options.infinite === true) {\n _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;\n } else if (_.options.centerMode === true) {\n _.slideOffset = 0;\n _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);\n }\n\n if (_.options.vertical === false) {\n targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;\n } else {\n targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;\n }\n\n if (_.options.variableWidth === true) {\n\n if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);\n } else {\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);\n }\n\n if (_.options.rtl === true) {\n if (targetSlide[0]) {\n targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;\n } else {\n targetLeft = 0;\n }\n } else {\n targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;\n }\n\n if (_.options.centerMode === true) {\n if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);\n } else {\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);\n }\n\n if (_.options.rtl === true) {\n if (targetSlide[0]) {\n targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;\n } else {\n targetLeft = 0;\n }\n } else {\n targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;\n }\n\n targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;\n }\n }\n\n return targetLeft;\n\n };\n\n Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {\n\n var _ = this;\n\n return _.options[option];\n\n };\n\n Slick.prototype.getNavigableIndexes = function() {\n\n var _ = this,\n breakPoint = 0,\n counter = 0,\n indexes = [],\n max;\n\n if (_.options.infinite === false) {\n max = _.slideCount;\n } else {\n breakPoint = _.options.slidesToScroll * -1;\n counter = _.options.slidesToScroll * -1;\n max = _.slideCount * 2;\n }\n\n while (breakPoint < max) {\n indexes.push(breakPoint);\n breakPoint = counter + _.options.slidesToScroll;\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\n }\n\n return indexes;\n\n };\n\n Slick.prototype.getSlick = function() {\n\n return this;\n\n };\n\n Slick.prototype.getSlideCount = function() {\n\n var _ = this,\n slidesTraversed, swipedSlide, centerOffset;\n\n centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;\n\n if (_.options.swipeToSlide === true) {\n _.$slideTrack.find('.slick-slide').each(function(index, slide) {\n if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {\n swipedSlide = slide;\n return false;\n }\n });\n\n slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;\n\n return slidesTraversed;\n\n } else {\n return _.options.slidesToScroll;\n }\n\n };\n\n Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {\n\n var _ = this;\n\n _.changeSlide({\n data: {\n message: 'index',\n index: parseInt(slide)\n }\n }, dontAnimate);\n\n };\n\n Slick.prototype.init = function(creation) {\n\n var _ = this;\n\n if (!$(_.$slider).hasClass('slick-initialized')) {\n\n $(_.$slider).addClass('slick-initialized');\n\n _.buildRows();\n _.buildOut();\n _.setProps();\n _.startLoad();\n _.loadSlider();\n _.initializeEvents();\n _.updateArrows();\n _.updateDots();\n _.checkResponsive(true);\n _.focusHandler();\n\n }\n\n if (creation) {\n _.$slider.trigger('init', [_]);\n }\n\n if (_.options.accessibility === true) {\n _.initADA();\n }\n\n if ( _.options.autoplay ) {\n\n _.paused = false;\n _.autoPlay();\n\n }\n\n };\n\n Slick.prototype.initADA = function() {\n var _ = this,\n numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow),\n tabControlIndexes = _.getNavigableIndexes().filter(function(val) {\n return (val >= 0) && (val < _.slideCount);\n });\n\n _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n }).find('a, input, button, select').attr({\n 'tabindex': '-1'\n });\n\n if (_.$dots !== null) {\n _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) {\n var slideControlIndex = tabControlIndexes.indexOf(i);\n\n $(this).attr({\n 'role': 'tabpanel',\n 'id': 'slick-slide' + _.instanceUid + i,\n 'tabindex': -1\n });\n\n if (slideControlIndex !== -1) {\n var ariaButtonControl = 'slick-slide-control' + _.instanceUid + slideControlIndex\n if ($('#' + ariaButtonControl).length) {\n $(this).attr({\n 'aria-describedby': ariaButtonControl\n });\n }\n }\n });\n\n _.$dots.attr('role', 'tablist').find('li').each(function(i) {\n var mappedSlideIndex = tabControlIndexes[i];\n\n $(this).attr({\n 'role': 'presentation'\n });\n\n $(this).find('button').first().attr({\n 'role': 'tab',\n 'id': 'slick-slide-control' + _.instanceUid + i,\n 'aria-controls': 'slick-slide' + _.instanceUid + mappedSlideIndex,\n 'aria-label': (i + 1) + ' of ' + numDotGroups,\n 'aria-selected': null,\n 'tabindex': '-1'\n });\n\n }).eq(_.currentSlide).find('button').attr({\n 'aria-selected': 'true',\n 'tabindex': '0'\n }).end();\n }\n\n for (var i=_.currentSlide, max=i+_.options.slidesToShow; i < max; i++) {\n if (_.options.focusOnChange) {\n _.$slides.eq(i).attr({'tabindex': '0'});\n } else {\n _.$slides.eq(i).removeAttr('tabindex');\n }\n }\n\n _.activateADA();\n\n };\n\n Slick.prototype.initArrowEvents = function() {\n\n var _ = this;\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\n _.$prevArrow\n .off('click.slick')\n .on('click.slick', {\n message: 'previous'\n }, _.changeSlide);\n _.$nextArrow\n .off('click.slick')\n .on('click.slick', {\n message: 'next'\n }, _.changeSlide);\n\n if (_.options.accessibility === true) {\n _.$prevArrow.on('keydown.slick', _.keyHandler);\n _.$nextArrow.on('keydown.slick', _.keyHandler);\n }\n }\n\n };\n\n Slick.prototype.initDotEvents = function() {\n\n var _ = this;\n\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\n $('li', _.$dots).on('click.slick', {\n message: 'index'\n }, _.changeSlide);\n\n if (_.options.accessibility === true) {\n _.$dots.on('keydown.slick', _.keyHandler);\n }\n }\n\n if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) {\n\n $('li', _.$dots)\n .on('mouseenter.slick', $.proxy(_.interrupt, _, true))\n .on('mouseleave.slick', $.proxy(_.interrupt, _, false));\n\n }\n\n };\n\n Slick.prototype.initSlideEvents = function() {\n\n var _ = this;\n\n if ( _.options.pauseOnHover ) {\n\n _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));\n _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));\n\n }\n\n };\n\n Slick.prototype.initializeEvents = function() {\n\n var _ = this;\n\n _.initArrowEvents();\n\n _.initDotEvents();\n _.initSlideEvents();\n\n _.$list.on('touchstart.slick mousedown.slick', {\n action: 'start'\n }, _.swipeHandler);\n _.$list.on('touchmove.slick mousemove.slick', {\n action: 'move'\n }, _.swipeHandler);\n _.$list.on('touchend.slick mouseup.slick', {\n action: 'end'\n }, _.swipeHandler);\n _.$list.on('touchcancel.slick mouseleave.slick', {\n action: 'end'\n }, _.swipeHandler);\n\n _.$list.on('click.slick', _.clickHandler);\n\n $(document).on(_.visibilityChange, $.proxy(_.visibility, _));\n\n if (_.options.accessibility === true) {\n _.$list.on('keydown.slick', _.keyHandler);\n }\n\n if (_.options.focusOnSelect === true) {\n $(_.$slideTrack).children().on('click.slick', _.selectHandler);\n }\n\n $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));\n\n $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));\n\n $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);\n\n $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);\n $(_.setPosition);\n\n };\n\n Slick.prototype.initUI = function() {\n\n var _ = this;\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\n\n _.$prevArrow.show();\n _.$nextArrow.show();\n\n }\n\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\n\n _.$dots.show();\n\n }\n\n };\n\n Slick.prototype.keyHandler = function(event) {\n\n var _ = this;\n //Dont slide if the cursor is inside the form fields and arrow keys are pressed\n if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {\n if (event.keyCode === 37 && _.options.accessibility === true) {\n _.changeSlide({\n data: {\n message: _.options.rtl === true ? 'next' : 'previous'\n }\n });\n } else if (event.keyCode === 39 && _.options.accessibility === true) {\n _.changeSlide({\n data: {\n message: _.options.rtl === true ? 'previous' : 'next'\n }\n });\n }\n }\n\n };\n\n Slick.prototype.lazyLoad = function() {\n\n var _ = this,\n loadRange, cloneRange, rangeStart, rangeEnd;\n\n function loadImages(imagesScope) {\n\n $('img[data-lazy]', imagesScope).each(function() {\n\n var image = $(this),\n imageSource = $(this).attr('data-lazy'),\n imageSrcSet = $(this).attr('data-srcset'),\n imageSizes = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'),\n imageToLoad = document.createElement('img');\n\n imageToLoad.onload = function() {\n\n image\n .animate({ opacity: 0 }, 100, function() {\n\n if (imageSrcSet) {\n image\n .attr('srcset', imageSrcSet );\n\n if (imageSizes) {\n image\n .attr('sizes', imageSizes );\n }\n }\n\n image\n .attr('src', imageSource)\n .animate({ opacity: 1 }, 200, function() {\n image\n .removeAttr('data-lazy data-srcset data-sizes')\n .removeClass('slick-loading');\n });\n _.$slider.trigger('lazyLoaded', [_, image, imageSource]);\n });\n\n };\n\n imageToLoad.onerror = function() {\n\n image\n .removeAttr( 'data-lazy' )\n .removeClass( 'slick-loading' )\n .addClass( 'slick-lazyload-error' );\n\n _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);\n\n };\n\n imageToLoad.src = imageSource;\n\n });\n\n }\n\n if (_.options.centerMode === true) {\n if (_.options.infinite === true) {\n rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);\n rangeEnd = rangeStart + _.options.slidesToShow + 2;\n } else {\n rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));\n rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;\n }\n } else {\n rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;\n rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);\n if (_.options.fade === true) {\n if (rangeStart > 0) rangeStart--;\n if (rangeEnd <= _.slideCount) rangeEnd++;\n }\n }\n\n loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);\n\n if (_.options.lazyLoad === 'anticipated') {\n var prevSlide = rangeStart - 1,\n nextSlide = rangeEnd,\n $slides = _.$slider.find('.slick-slide');\n\n for (var i = 0; i < _.options.slidesToScroll; i++) {\n if (prevSlide < 0) prevSlide = _.slideCount - 1;\n loadRange = loadRange.add($slides.eq(prevSlide));\n loadRange = loadRange.add($slides.eq(nextSlide));\n prevSlide--;\n nextSlide++;\n }\n }\n\n loadImages(loadRange);\n\n if (_.slideCount <= _.options.slidesToShow) {\n cloneRange = _.$slider.find('.slick-slide');\n loadImages(cloneRange);\n } else\n if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {\n cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);\n loadImages(cloneRange);\n } else if (_.currentSlide === 0) {\n cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);\n loadImages(cloneRange);\n }\n\n };\n\n Slick.prototype.loadSlider = function() {\n\n var _ = this;\n\n _.setPosition();\n\n _.$slideTrack.css({\n opacity: 1\n });\n\n _.$slider.removeClass('slick-loading');\n\n _.initUI();\n\n if (_.options.lazyLoad === 'progressive') {\n _.progressiveLazyLoad();\n }\n\n };\n\n Slick.prototype.next = Slick.prototype.slickNext = function() {\n\n var _ = this;\n\n _.changeSlide({\n data: {\n message: 'next'\n }\n });\n\n };\n\n Slick.prototype.orientationChange = function() {\n\n var _ = this;\n\n _.checkResponsive();\n _.setPosition();\n\n };\n\n Slick.prototype.pause = Slick.prototype.slickPause = function() {\n\n var _ = this;\n\n _.autoPlayClear();\n _.paused = true;\n\n };\n\n Slick.prototype.play = Slick.prototype.slickPlay = function() {\n\n var _ = this;\n\n _.autoPlay();\n _.options.autoplay = true;\n _.paused = false;\n _.focussed = false;\n _.interrupted = false;\n\n };\n\n Slick.prototype.postSlide = function(index) {\n\n var _ = this;\n\n if( !_.unslicked ) {\n\n _.$slider.trigger('afterChange', [_, index]);\n\n _.animating = false;\n\n if (_.slideCount > _.options.slidesToShow) {\n _.setPosition();\n }\n\n _.swipeLeft = null;\n\n if ( _.options.autoplay ) {\n _.autoPlay();\n }\n\n if (_.options.accessibility === true) {\n _.initADA();\n\n if (_.options.focusOnChange) {\n var $currentSlide = $(_.$slides.get(_.currentSlide));\n $currentSlide.attr('tabindex', 0).focus();\n }\n }\n\n }\n\n };\n\n Slick.prototype.prev = Slick.prototype.slickPrev = function() {\n\n var _ = this;\n\n _.changeSlide({\n data: {\n message: 'previous'\n }\n });\n\n };\n\n Slick.prototype.preventDefault = function(event) {\n\n event.preventDefault();\n\n };\n\n Slick.prototype.progressiveLazyLoad = function( tryCount ) {\n\n tryCount = tryCount || 1;\n\n var _ = this,\n $imgsToLoad = $( 'img[data-lazy]', _.$slider ),\n image,\n imageSource,\n imageSrcSet,\n imageSizes,\n imageToLoad;\n\n if ( $imgsToLoad.length ) {\n\n image = $imgsToLoad.first();\n imageSource = image.attr('data-lazy');\n imageSrcSet = image.attr('data-srcset');\n imageSizes = image.attr('data-sizes') || _.$slider.attr('data-sizes');\n imageToLoad = document.createElement('img');\n\n imageToLoad.onload = function() {\n\n if (imageSrcSet) {\n image\n .attr('srcset', imageSrcSet );\n\n if (imageSizes) {\n image\n .attr('sizes', imageSizes );\n }\n }\n\n image\n .attr( 'src', imageSource )\n .removeAttr('data-lazy data-srcset data-sizes')\n .removeClass('slick-loading');\n\n if ( _.options.adaptiveHeight === true ) {\n _.setPosition();\n }\n\n _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]);\n _.progressiveLazyLoad();\n\n };\n\n imageToLoad.onerror = function() {\n\n if ( tryCount < 3 ) {\n\n /**\n * try to load the image 3 times,\n * leave a slight delay so we don't get\n * servers blocking the request.\n */\n setTimeout( function() {\n _.progressiveLazyLoad( tryCount + 1 );\n }, 500 );\n\n } else {\n\n image\n .removeAttr( 'data-lazy' )\n .removeClass( 'slick-loading' )\n .addClass( 'slick-lazyload-error' );\n\n _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);\n\n _.progressiveLazyLoad();\n\n }\n\n };\n\n imageToLoad.src = imageSource;\n\n } else {\n\n _.$slider.trigger('allImagesLoaded', [ _ ]);\n\n }\n\n };\n\n Slick.prototype.refresh = function( initializing ) {\n\n var _ = this, currentSlide, lastVisibleIndex;\n\n lastVisibleIndex = _.slideCount - _.options.slidesToShow;\n\n // in non-infinite sliders, we don't want to go past the\n // last visible index.\n if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) {\n _.currentSlide = lastVisibleIndex;\n }\n\n // if less slides than to show, go to start.\n if ( _.slideCount <= _.options.slidesToShow ) {\n _.currentSlide = 0;\n\n }\n\n currentSlide = _.currentSlide;\n\n _.destroy(true);\n\n $.extend(_, _.initials, { currentSlide: currentSlide });\n\n _.init();\n\n if( !initializing ) {\n\n _.changeSlide({\n data: {\n message: 'index',\n index: currentSlide\n }\n }, false);\n\n }\n\n };\n\n Slick.prototype.registerBreakpoints = function() {\n\n var _ = this, breakpoint, currentBreakpoint, l,\n responsiveSettings = _.options.responsive || null;\n\n if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) {\n\n _.respondTo = _.options.respondTo || 'window';\n\n for ( breakpoint in responsiveSettings ) {\n\n l = _.breakpoints.length-1;\n\n if (responsiveSettings.hasOwnProperty(breakpoint)) {\n currentBreakpoint = responsiveSettings[breakpoint].breakpoint;\n\n // loop through the breakpoints and cut out any existing\n // ones with the same breakpoint number, we don't want dupes.\n while( l >= 0 ) {\n if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) {\n _.breakpoints.splice(l,1);\n }\n l--;\n }\n\n _.breakpoints.push(currentBreakpoint);\n _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;\n\n }\n\n }\n\n _.breakpoints.sort(function(a, b) {\n return ( _.options.mobileFirst ) ? a-b : b-a;\n });\n\n }\n\n };\n\n Slick.prototype.reinit = function() {\n\n var _ = this;\n\n _.$slides =\n _.$slideTrack\n .children(_.options.slide)\n .addClass('slick-slide');\n\n _.slideCount = _.$slides.length;\n\n if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {\n _.currentSlide = _.currentSlide - _.options.slidesToScroll;\n }\n\n if (_.slideCount <= _.options.slidesToShow) {\n _.currentSlide = 0;\n }\n\n _.registerBreakpoints();\n\n _.setProps();\n _.setupInfinite();\n _.buildArrows();\n _.updateArrows();\n _.initArrowEvents();\n _.buildDots();\n _.updateDots();\n _.initDotEvents();\n _.cleanUpSlideEvents();\n _.initSlideEvents();\n\n _.checkResponsive(false, true);\n\n if (_.options.focusOnSelect === true) {\n $(_.$slideTrack).children().on('click.slick', _.selectHandler);\n }\n\n _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);\n\n _.setPosition();\n _.focusHandler();\n\n _.paused = !_.options.autoplay;\n _.autoPlay();\n\n _.$slider.trigger('reInit', [_]);\n\n };\n\n Slick.prototype.resize = function() {\n\n var _ = this;\n\n if ($(window).width() !== _.windowWidth) {\n clearTimeout(_.windowDelay);\n _.windowDelay = window.setTimeout(function() {\n _.windowWidth = $(window).width();\n _.checkResponsive();\n if( !_.unslicked ) { _.setPosition(); }\n }, 50);\n }\n };\n\n Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {\n\n var _ = this;\n\n if (typeof(index) === 'boolean') {\n removeBefore = index;\n index = removeBefore === true ? 0 : _.slideCount - 1;\n } else {\n index = removeBefore === true ? --index : index;\n }\n\n if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {\n return false;\n }\n\n _.unload();\n\n if (removeAll === true) {\n _.$slideTrack.children().remove();\n } else {\n _.$slideTrack.children(this.options.slide).eq(index).remove();\n }\n\n _.$slides = _.$slideTrack.children(this.options.slide);\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slideTrack.append(_.$slides);\n\n _.$slidesCache = _.$slides;\n\n _.reinit();\n\n };\n\n Slick.prototype.setCSS = function(position) {\n\n var _ = this,\n positionProps = {},\n x, y;\n\n if (_.options.rtl === true) {\n position = -position;\n }\n x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';\n y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';\n\n positionProps[_.positionProp] = position;\n\n if (_.transformsEnabled === false) {\n _.$slideTrack.css(positionProps);\n } else {\n positionProps = {};\n if (_.cssTransitions === false) {\n positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';\n _.$slideTrack.css(positionProps);\n } else {\n positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';\n _.$slideTrack.css(positionProps);\n }\n }\n\n };\n\n Slick.prototype.setDimensions = function() {\n\n var _ = this;\n\n if (_.options.vertical === false) {\n if (_.options.centerMode === true) {\n _.$list.css({\n padding: ('0px ' + _.options.centerPadding)\n });\n }\n } else {\n _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);\n if (_.options.centerMode === true) {\n _.$list.css({\n padding: (_.options.centerPadding + ' 0px')\n });\n }\n }\n\n _.listWidth = _.$list.width();\n _.listHeight = _.$list.height();\n\n\n if (_.options.vertical === false && _.options.variableWidth === false) {\n _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);\n _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));\n\n } else if (_.options.variableWidth === true) {\n _.$slideTrack.width(5000 * _.slideCount);\n } else {\n _.slideWidth = Math.ceil(_.listWidth);\n _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));\n }\n\n var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();\n if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);\n\n };\n\n Slick.prototype.setFade = function() {\n\n var _ = this,\n targetLeft;\n\n _.$slides.each(function(index, element) {\n targetLeft = (_.slideWidth * index) * -1;\n if (_.options.rtl === true) {\n $(element).css({\n position: 'relative',\n right: targetLeft,\n top: 0,\n zIndex: _.options.zIndex - 2,\n opacity: 0\n });\n } else {\n $(element).css({\n position: 'relative',\n left: targetLeft,\n top: 0,\n zIndex: _.options.zIndex - 2,\n opacity: 0\n });\n }\n });\n\n _.$slides.eq(_.currentSlide).css({\n zIndex: _.options.zIndex - 1,\n opacity: 1\n });\n\n };\n\n Slick.prototype.setHeight = function() {\n\n var _ = this;\n\n if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {\n var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);\n _.$list.css('height', targetHeight);\n }\n\n };\n\n Slick.prototype.setOption =\n Slick.prototype.slickSetOption = function() {\n\n /**\n * accepts arguments in format of:\n *\n * - for changing a single option's value:\n * .slick(\"setOption\", option, value, refresh )\n *\n * - for changing a set of responsive options:\n * .slick(\"setOption\", 'responsive', [{}, ...], refresh )\n *\n * - for updating multiple values at once (not responsive)\n * .slick(\"setOption\", { 'option': value, ... }, refresh )\n */\n\n var _ = this, l, item, option, value, refresh = false, type;\n\n if( $.type( arguments[0] ) === 'object' ) {\n\n option = arguments[0];\n refresh = arguments[1];\n type = 'multiple';\n\n } else if ( $.type( arguments[0] ) === 'string' ) {\n\n option = arguments[0];\n value = arguments[1];\n refresh = arguments[2];\n\n if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) {\n\n type = 'responsive';\n\n } else if ( typeof arguments[1] !== 'undefined' ) {\n\n type = 'single';\n\n }\n\n }\n\n if ( type === 'single' ) {\n\n _.options[option] = value;\n\n\n } else if ( type === 'multiple' ) {\n\n $.each( option , function( opt, val ) {\n\n _.options[opt] = val;\n\n });\n\n\n } else if ( type === 'responsive' ) {\n\n for ( item in value ) {\n\n if( $.type( _.options.responsive ) !== 'array' ) {\n\n _.options.responsive = [ value[item] ];\n\n } else {\n\n l = _.options.responsive.length-1;\n\n // loop through the responsive object and splice out duplicates.\n while( l >= 0 ) {\n\n if( _.options.responsive[l].breakpoint === value[item].breakpoint ) {\n\n _.options.responsive.splice(l,1);\n\n }\n\n l--;\n\n }\n\n _.options.responsive.push( value[item] );\n\n }\n\n }\n\n }\n\n if ( refresh ) {\n\n _.unload();\n _.reinit();\n\n }\n\n };\n\n Slick.prototype.setPosition = function() {\n\n var _ = this;\n\n _.setDimensions();\n\n _.setHeight();\n\n if (_.options.fade === false) {\n _.setCSS(_.getLeft(_.currentSlide));\n } else {\n _.setFade();\n }\n\n _.$slider.trigger('setPosition', [_]);\n\n };\n\n Slick.prototype.setProps = function() {\n\n var _ = this,\n bodyStyle = document.body.style;\n\n _.positionProp = _.options.vertical === true ? 'top' : 'left';\n\n if (_.positionProp === 'top') {\n _.$slider.addClass('slick-vertical');\n } else {\n _.$slider.removeClass('slick-vertical');\n }\n\n if (bodyStyle.WebkitTransition !== undefined ||\n bodyStyle.MozTransition !== undefined ||\n bodyStyle.msTransition !== undefined) {\n if (_.options.useCSS === true) {\n _.cssTransitions = true;\n }\n }\n\n if ( _.options.fade ) {\n if ( typeof _.options.zIndex === 'number' ) {\n if( _.options.zIndex < 3 ) {\n _.options.zIndex = 3;\n }\n } else {\n _.options.zIndex = _.defaults.zIndex;\n }\n }\n\n if (bodyStyle.OTransform !== undefined) {\n _.animType = 'OTransform';\n _.transformType = '-o-transform';\n _.transitionType = 'OTransition';\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;\n }\n if (bodyStyle.MozTransform !== undefined) {\n _.animType = 'MozTransform';\n _.transformType = '-moz-transform';\n _.transitionType = 'MozTransition';\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;\n }\n if (bodyStyle.webkitTransform !== undefined) {\n _.animType = 'webkitTransform';\n _.transformType = '-webkit-transform';\n _.transitionType = 'webkitTransition';\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;\n }\n if (bodyStyle.msTransform !== undefined) {\n _.animType = 'msTransform';\n _.transformType = '-ms-transform';\n _.transitionType = 'msTransition';\n if (bodyStyle.msTransform === undefined) _.animType = false;\n }\n if (bodyStyle.transform !== undefined && _.animType !== false) {\n _.animType = 'transform';\n _.transformType = 'transform';\n _.transitionType = 'transition';\n }\n _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);\n };\n\n\n Slick.prototype.setSlideClasses = function(index) {\n\n var _ = this,\n centerOffset, allSlides, indexOffset, remainder;\n\n allSlides = _.$slider\n .find('.slick-slide')\n .removeClass('slick-active slick-center slick-current')\n .attr('aria-hidden', 'true');\n\n _.$slides\n .eq(index)\n .addClass('slick-current');\n\n if (_.options.centerMode === true) {\n\n var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0;\n\n centerOffset = Math.floor(_.options.slidesToShow / 2);\n\n if (_.options.infinite === true) {\n\n if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {\n _.$slides\n .slice(index - centerOffset + evenCoef, index + centerOffset + 1)\n .addClass('slick-active')\n .attr('aria-hidden', 'false');\n\n } else {\n\n indexOffset = _.options.slidesToShow + index;\n allSlides\n .slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2)\n .addClass('slick-active')\n .attr('aria-hidden', 'false');\n\n }\n\n if (index === 0) {\n\n allSlides\n .eq(allSlides.length - 1 - _.options.slidesToShow)\n .addClass('slick-center');\n\n } else if (index === _.slideCount - 1) {\n\n allSlides\n .eq(_.options.slidesToShow)\n .addClass('slick-center');\n\n }\n\n }\n\n _.$slides\n .eq(index)\n .addClass('slick-center');\n\n } else {\n\n if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {\n\n _.$slides\n .slice(index, index + _.options.slidesToShow)\n .addClass('slick-active')\n .attr('aria-hidden', 'false');\n\n } else if (allSlides.length <= _.options.slidesToShow) {\n\n allSlides\n .addClass('slick-active')\n .attr('aria-hidden', 'false');\n\n } else {\n\n remainder = _.slideCount % _.options.slidesToShow;\n indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;\n\n if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {\n\n allSlides\n .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)\n .addClass('slick-active')\n .attr('aria-hidden', 'false');\n\n } else {\n\n allSlides\n .slice(indexOffset, indexOffset + _.options.slidesToShow)\n .addClass('slick-active')\n .attr('aria-hidden', 'false');\n\n }\n\n }\n\n }\n\n if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') {\n _.lazyLoad();\n }\n };\n\n Slick.prototype.setupInfinite = function() {\n\n var _ = this,\n i, slideIndex, infiniteCount;\n\n if (_.options.fade === true) {\n _.options.centerMode = false;\n }\n\n if (_.options.infinite === true && _.options.fade === false) {\n\n slideIndex = null;\n\n if (_.slideCount > _.options.slidesToShow) {\n\n if (_.options.centerMode === true) {\n infiniteCount = _.options.slidesToShow + 1;\n } else {\n infiniteCount = _.options.slidesToShow;\n }\n\n for (i = _.slideCount; i > (_.slideCount -\n infiniteCount); i -= 1) {\n slideIndex = i - 1;\n $(_.$slides[slideIndex]).clone(true).attr('id', '')\n .attr('data-slick-index', slideIndex - _.slideCount)\n .prependTo(_.$slideTrack).addClass('slick-cloned');\n }\n for (i = 0; i < infiniteCount + _.slideCount; i += 1) {\n slideIndex = i;\n $(_.$slides[slideIndex]).clone(true).attr('id', '')\n .attr('data-slick-index', slideIndex + _.slideCount)\n .appendTo(_.$slideTrack).addClass('slick-cloned');\n }\n _.$slideTrack.find('.slick-cloned').find('[id]').each(function() {\n $(this).attr('id', '');\n });\n\n }\n\n }\n\n };\n\n Slick.prototype.interrupt = function( toggle ) {\n\n var _ = this;\n\n if( !toggle ) {\n _.autoPlay();\n }\n _.interrupted = toggle;\n\n };\n\n Slick.prototype.selectHandler = function(event) {\n\n var _ = this;\n\n var targetElement =\n $(event.target).is('.slick-slide') ?\n $(event.target) :\n $(event.target).parents('.slick-slide');\n\n var index = parseInt(targetElement.attr('data-slick-index'));\n\n if (!index) index = 0;\n\n if (_.slideCount <= _.options.slidesToShow) {\n\n _.slideHandler(index, false, true);\n return;\n\n }\n\n _.slideHandler(index);\n\n };\n\n Slick.prototype.slideHandler = function(index, sync, dontAnimate) {\n\n var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,\n _ = this, navTarget;\n\n sync = sync || false;\n\n if (_.animating === true && _.options.waitForAnimate === true) {\n return;\n }\n\n if (_.options.fade === true && _.currentSlide === index) {\n return;\n }\n\n if (sync === false) {\n _.asNavFor(index);\n }\n\n targetSlide = index;\n targetLeft = _.getLeft(targetSlide);\n slideLeft = _.getLeft(_.currentSlide);\n\n _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;\n\n if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {\n if (_.options.fade === false) {\n targetSlide = _.currentSlide;\n if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {\n _.animateSlide(slideLeft, function() {\n _.postSlide(targetSlide);\n });\n } else {\n _.postSlide(targetSlide);\n }\n }\n return;\n } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {\n if (_.options.fade === false) {\n targetSlide = _.currentSlide;\n if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {\n _.animateSlide(slideLeft, function() {\n _.postSlide(targetSlide);\n });\n } else {\n _.postSlide(targetSlide);\n }\n }\n return;\n }\n\n if ( _.options.autoplay ) {\n clearInterval(_.autoPlayTimer);\n }\n\n if (targetSlide < 0) {\n if (_.slideCount % _.options.slidesToScroll !== 0) {\n animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);\n } else {\n animSlide = _.slideCount + targetSlide;\n }\n } else if (targetSlide >= _.slideCount) {\n if (_.slideCount % _.options.slidesToScroll !== 0) {\n animSlide = 0;\n } else {\n animSlide = targetSlide - _.slideCount;\n }\n } else {\n animSlide = targetSlide;\n }\n\n _.animating = true;\n\n _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);\n\n oldSlide = _.currentSlide;\n _.currentSlide = animSlide;\n\n _.setSlideClasses(_.currentSlide);\n\n if ( _.options.asNavFor ) {\n\n navTarget = _.getNavTarget();\n navTarget = navTarget.slick('getSlick');\n\n if ( navTarget.slideCount <= navTarget.options.slidesToShow ) {\n navTarget.setSlideClasses(_.currentSlide);\n }\n\n }\n\n _.updateDots();\n _.updateArrows();\n\n if (_.options.fade === true) {\n if (dontAnimate !== true) {\n\n _.fadeSlideOut(oldSlide);\n\n _.fadeSlide(animSlide, function() {\n _.postSlide(animSlide);\n });\n\n } else {\n _.postSlide(animSlide);\n }\n _.animateHeight();\n return;\n }\n\n if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {\n _.animateSlide(targetLeft, function() {\n _.postSlide(animSlide);\n });\n } else {\n _.postSlide(animSlide);\n }\n\n };\n\n Slick.prototype.startLoad = function() {\n\n var _ = this;\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\n\n _.$prevArrow.hide();\n _.$nextArrow.hide();\n\n }\n\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\n\n _.$dots.hide();\n\n }\n\n _.$slider.addClass('slick-loading');\n\n };\n\n Slick.prototype.swipeDirection = function() {\n\n var xDist, yDist, r, swipeAngle, _ = this;\n\n xDist = _.touchObject.startX - _.touchObject.curX;\n yDist = _.touchObject.startY - _.touchObject.curY;\n r = Math.atan2(yDist, xDist);\n\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if ((swipeAngle <= 45) && (swipeAngle >= 0)) {\n return (_.options.rtl === false ? 'left' : 'right');\n }\n if ((swipeAngle <= 360) && (swipeAngle >= 315)) {\n return (_.options.rtl === false ? 'left' : 'right');\n }\n if ((swipeAngle >= 135) && (swipeAngle <= 225)) {\n return (_.options.rtl === false ? 'right' : 'left');\n }\n if (_.options.verticalSwiping === true) {\n if ((swipeAngle >= 35) && (swipeAngle <= 135)) {\n return 'down';\n } else {\n return 'up';\n }\n }\n\n return 'vertical';\n\n };\n\n Slick.prototype.swipeEnd = function(event) {\n\n var _ = this,\n slideCount,\n direction;\n\n _.dragging = false;\n _.swiping = false;\n\n if (_.scrolling) {\n _.scrolling = false;\n return false;\n }\n\n _.interrupted = false;\n _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true;\n\n if ( _.touchObject.curX === undefined ) {\n return false;\n }\n\n if ( _.touchObject.edgeHit === true ) {\n _.$slider.trigger('edge', [_, _.swipeDirection() ]);\n }\n\n if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) {\n\n direction = _.swipeDirection();\n\n switch ( direction ) {\n\n case 'left':\n case 'down':\n\n slideCount =\n _.options.swipeToSlide ?\n _.checkNavigable( _.currentSlide + _.getSlideCount() ) :\n _.currentSlide + _.getSlideCount();\n\n _.currentDirection = 0;\n\n break;\n\n case 'right':\n case 'up':\n\n slideCount =\n _.options.swipeToSlide ?\n _.checkNavigable( _.currentSlide - _.getSlideCount() ) :\n _.currentSlide - _.getSlideCount();\n\n _.currentDirection = 1;\n\n break;\n\n default:\n\n\n }\n\n if( direction != 'vertical' ) {\n\n _.slideHandler( slideCount );\n _.touchObject = {};\n _.$slider.trigger('swipe', [_, direction ]);\n\n }\n\n } else {\n\n if ( _.touchObject.startX !== _.touchObject.curX ) {\n\n _.slideHandler( _.currentSlide );\n _.touchObject = {};\n\n }\n\n }\n\n };\n\n Slick.prototype.swipeHandler = function(event) {\n\n var _ = this;\n\n if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {\n return;\n } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {\n return;\n }\n\n _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?\n event.originalEvent.touches.length : 1;\n\n _.touchObject.minSwipe = _.listWidth / _.options\n .touchThreshold;\n\n if (_.options.verticalSwiping === true) {\n _.touchObject.minSwipe = _.listHeight / _.options\n .touchThreshold;\n }\n\n switch (event.data.action) {\n\n case 'start':\n _.swipeStart(event);\n break;\n\n case 'move':\n _.swipeMove(event);\n break;\n\n case 'end':\n _.swipeEnd(event);\n break;\n\n }\n\n };\n\n Slick.prototype.swipeMove = function(event) {\n\n var _ = this,\n edgeWasHit = false,\n curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength;\n\n touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;\n\n if (!_.dragging || _.scrolling || touches && touches.length !== 1) {\n return false;\n }\n\n curLeft = _.getLeft(_.currentSlide);\n\n _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;\n _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;\n\n _.touchObject.swipeLength = Math.round(Math.sqrt(\n Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));\n\n verticalSwipeLength = Math.round(Math.sqrt(\n Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));\n\n if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) {\n _.scrolling = true;\n return false;\n }\n\n if (_.options.verticalSwiping === true) {\n _.touchObject.swipeLength = verticalSwipeLength;\n }\n\n swipeDirection = _.swipeDirection();\n\n if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {\n _.swiping = true;\n event.preventDefault();\n }\n\n positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);\n if (_.options.verticalSwiping === true) {\n positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;\n }\n\n\n swipeLength = _.touchObject.swipeLength;\n\n _.touchObject.edgeHit = false;\n\n if (_.options.infinite === false) {\n if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {\n swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;\n _.touchObject.edgeHit = true;\n }\n }\n\n if (_.options.vertical === false) {\n _.swipeLeft = curLeft + swipeLength * positionOffset;\n } else {\n _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;\n }\n if (_.options.verticalSwiping === true) {\n _.swipeLeft = curLeft + swipeLength * positionOffset;\n }\n\n if (_.options.fade === true || _.options.touchMove === false) {\n return false;\n }\n\n if (_.animating === true) {\n _.swipeLeft = null;\n return false;\n }\n\n _.setCSS(_.swipeLeft);\n\n };\n\n Slick.prototype.swipeStart = function(event) {\n\n var _ = this,\n touches;\n\n _.interrupted = true;\n\n if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {\n _.touchObject = {};\n return false;\n }\n\n if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {\n touches = event.originalEvent.touches[0];\n }\n\n _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;\n _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;\n\n _.dragging = true;\n\n };\n\n Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {\n\n var _ = this;\n\n if (_.$slidesCache !== null) {\n\n _.unload();\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slidesCache.appendTo(_.$slideTrack);\n\n _.reinit();\n\n }\n\n };\n\n Slick.prototype.unload = function() {\n\n var _ = this;\n\n $('.slick-cloned', _.$slider).remove();\n\n if (_.$dots) {\n _.$dots.remove();\n }\n\n if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {\n _.$prevArrow.remove();\n }\n\n if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {\n _.$nextArrow.remove();\n }\n\n _.$slides\n .removeClass('slick-slide slick-active slick-visible slick-current')\n .attr('aria-hidden', 'true')\n .css('width', '');\n\n };\n\n Slick.prototype.unslick = function(fromBreakpoint) {\n\n var _ = this;\n _.$slider.trigger('unslick', [_, fromBreakpoint]);\n _.destroy();\n\n };\n\n Slick.prototype.updateArrows = function() {\n\n var _ = this,\n centerOffset;\n\n centerOffset = Math.floor(_.options.slidesToShow / 2);\n\n if ( _.options.arrows === true &&\n _.slideCount > _.options.slidesToShow &&\n !_.options.infinite ) {\n\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n\n if (_.currentSlide === 0) {\n\n _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\n _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n\n } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {\n\n _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n\n } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {\n\n _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n\n }\n\n }\n\n };\n\n Slick.prototype.updateDots = function() {\n\n var _ = this;\n\n if (_.$dots !== null) {\n\n _.$dots\n .find('li')\n .removeClass('slick-active')\n .end();\n\n _.$dots\n .find('li')\n .eq(Math.floor(_.currentSlide / _.options.slidesToScroll))\n .addClass('slick-active');\n\n }\n\n };\n\n Slick.prototype.visibility = function() {\n\n var _ = this;\n\n if ( _.options.autoplay ) {\n\n if ( document[_.hidden] ) {\n\n _.interrupted = true;\n\n } else {\n\n _.interrupted = false;\n\n }\n\n }\n\n };\n\n $.fn.slick = function() {\n var _ = this,\n opt = arguments[0],\n args = Array.prototype.slice.call(arguments, 1),\n l = _.length,\n i,\n ret;\n for (i = 0; i < l; i++) {\n if (typeof opt == 'object' || typeof opt == 'undefined')\n _[i].slick = new Slick(_[i], opt);\n else\n ret = _[i].slick[opt].apply(_[i].slick, args);\n if (typeof ret != 'undefined') return ret;\n }\n return _;\n };\n\n}));\n","module.exports = window.Resources;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","// eslint-disable-next-line no-multi-assign\nwindow.jQuery = window.$ = require('jquery');\nconst processInclude = require('./util');\nrequire('./components/polyfills.js')();\nconst scripts = $('#main_scripts').data('scripts') || [];\n\nscripts.reduce((promise, script) => {\n return promise.then(() => new Promise((resolve) => {\n $.ajax({\n dataType: 'script',\n crossDomain: true,\n cache: true,\n url: script\n }).always(resolve);\n }));\n}, Promise.resolve());\n\nrequire('slick-carousel');\nrequire('./components/jqueryZoom');\nrequire('./components/spinner');\n\n$(document).ready(() => {\n processInclude(require('./components/PartialOverlay'));\n processInclude(require('./components/pageHeaderAd'));\n processInclude(require('./components/cookieModal'));\n processInclude(require('./components/menu'));\n processInclude(require('./components/dialogs/dialogs'));\n processInclude(require('./components/a11y/a11y-helpers'));\n processInclude(require('./components/popupButton'));\n processInclude(require('./components/consentTracking'));\n processInclude(require('./components/mailSignupForm'));\n processInclude(require('./cart/removeProduct'));\n processInclude(require('./components/miniCart'));\n processInclude(require('./components/postalCodeMenu'));\n processInclude(require('./components/footerNav'));\n processInclude(require('./components/scrollToTop'));\n processInclude(require('./components/headerSearch'));\n processInclude(require('./components/barcode'));\n processInclude(require('./components/clientSideValidation'));\n processInclude(require('./components/countrySelector'));\n processInclude(require('./components/toggleHamburger'));\n processInclude(require('./components/stickyHeaderHeight'));\n processInclude(require('./components/breadcrumbs'));\n processInclude(require('./components/a11y/Notifier'));\n processInclude(require('./components/inputFormaters'));\n processInclude(require('./components/dataLayerGlobal'));\n processInclude(require('./myaccount/sessionTimeout'));\n processInclude(require('./giftcard/giftcard.js'));\n processInclude(require('./slickCarousel.js'));\n processInclude(require('./storeLocatorModal.js'));\n processInclude(require('../js/product/wishlistHeart.js'));\n processInclude(require('./components/accountModalMobile'));\n processInclude(require('./components/newsletterModal'));\n processInclude(require('./subscription/subscribeRoomsAndSpaces'));\n processInclude(require('./components/domainswitch'));\n});\n"],"names":["dataLayer","require","_require","appendToUrl","waiNotify","removeButtonClass","removeConfirmationButtonClass","prepareConfirmationModalContent","actionUrl","productID","productName","uuid","$deleteConfirmBtn","$","$productToRemoveSpan","data","empty","append","getRemoveConfirmationData","e","button","target","url","module","exports","$body","on","preventDefault","$quantityError","addClass","currentData","urlParams","pid","spinner","start","ajax","type","dataType","success","removeFromCartDataLayerEventInit","basket","items","length","trigger","toBeDeletedUUIDs","i","concat","remove","hasBonusProduct","isFromCheckout","closest","order","resources","numberOfItems","wasMixedShipping","window","location","reload","qty","numItems","discounts","approachingDiscounts","totals","discountsHtml","stop","isMixShipmentEnabled","prop","error","err","responseJSON","redirectUrl","href","errorMessage","scrollAnimate","loadFormErrors","parentSelector","fieldErrors","animate","canAnimate","undefined","each","attr","siblings","html","show","clearPreviousErrors","find","removeClass","hide","PartialOverlay","domNode","_classCallCheck2","default","overlay","handlers","visibleClassName","hidingClassName","timeOut","bodyClasses","document","body","classList","_createClass2","key","value","_addEventListeners","handler","addEventListener","push","_removeEventListeners","_this","forEach","removeEventListener","_addClasses","add","_removeClasses","_setHandler","clickHandler","indexOf","open","clearTimeout","timer","close","_this2","setTimeout","destroy","partialOverlay","overlayNode","querySelector","FocusHighlighter","highlighterDomNode","highlighter","keyCode","Object","freeze","TAB","RETURN","ESC","SPACE","PAGEUP","PAGEDOWN","END","HOME","LEFT","UP","RIGHT","DOWN","keyboardModality","isHighlighterVisible","lastFocusedElement","handleClick","bind","handleKeyup","handleResize","handleFocusin","focus","handleMutation","updateHighlighter","init","initEventListeners","observeDOMChanges","observer","MutationObserver","observe","subtree","childList","mutationsList","_iterator","_createForOfIteratorHelper","_step","s","n","done","mutation","addedNodes","f","moveHighlighterTo","blur","event","x","y","focusedElement","activeElement","isValidTarget","isTextInput","detectHurryNavigation","hideHighlighter","hideTimeOut","highlighterStyle","style","top","getBoundingClientRect","scrollY","left","scrollX","width","offsetWidth","height","offsetHeight","currentTime","Date","now","lastKeyTime","isHurryNavigation","nodeName","tagName","readOnly","getAttribute","Grid","grid","currentRow","currentColumn","navigationDisabled","CTRL","setupRoles","setUpGridModel","setUpBoundariesBehavior","addEventListeners","setAttribute","reinit","handleKeydown","preventEventActions","moveFocusTo","ctrlKey","stopPropagation","cell","findNodeInGrid","row","col","column","moveToRow","moveToColumn","rowsBounds","rowLoop","rowStop","colsBounds","columnLoop","columnStop","alteredControl","rowWrap","alteredCol","alteredRow","columnWrap","blurCell","focusCell","rowLength","colsTotal","colsLength","querySelectorAll","cells","hasAttribute","tabIndex","focusableCell","wrapRows","getSettingAttributeValue","wrapCols","loopRows","loopCols","attrName","parentElement","node","destroyRoles","removeAttribute","item","Notifier","notifier","hideTimer","initRoles","initComponentReference","destroyComponentReference","notify","message","innerText","widget","notifierNode","highlighterNode","grids","$modalContainer","dialogManager","openDialog","Quagga","liveStreamConfig","inputStream","constraints","min","aspectRatio","max","facingMode","locator","patchSize","halfSample","numOfWorkers","navigator","hardwareConcurrency","decoder","readers","format","config","frequency","locate","fileConfig","extend","size","$liveStreamScannerSelector","SystemError","ErrorMessage","errorHtml","errorMessageBarcode","name","onProcessed","result","drawingCtx","canvas","ctx","drawingCanvas","dom","boxes","clearRect","parseInt","filter","box","ImageDebug","drawPath","color","lineWidth","codeResult","code","line","processResult","onDetected","files","decodeSingle","src","URL","createObjectURL","Expand","CompositedComponent","Noop","styleConstants","breakpoint","small","clearField","field","focusOnFirstError","form","validity","valid","clearForm","validateForm","checkValidity","stopImmediatePropagation","toggleSubscriptionButton","$subscriptionBtn","subscriptionOptionsExist","conditionsAndPrivacyChecked","subscriptionOptionsSelected","validateEmailField","targetElement","$targetElement","$newEmailField","hasClass","val","match","setCustomValidity","realTimeValidationForm","trim","$newPasswordField","newPasswordElementValue","$otherSubscriptionListsCheckboxes","not","$otherSubscriptionListsCheckboxesChecked","Number","textLength","parents","text","regex","test","is","invalid","submit","realTimeValidation","buttonClick","clearModalForms","invalidateFunction","currentTarget","validationMessage","patternMismatch","rangeOverflow","rangeUnderflow","tooLong","tooShort","valueMissing","typeMismatch","call","off","functions","showConsentModal","prepopulatedData","urlContent","onSuccess","responce","urlAccept","urlReject","textYes","textNo","textHeader","htmlString","response","closeDialog","COOKIE_MODAL","COOKIE_MODAL_VALUE","COOKIE_MODAL_TIMEOUT","cookieModal","timeout","dataset","isNaN","getCookie","autoClose","cookieModalCloseBtn","showCookieModal","events","timeoutCookie","getTime","setCookie","removeCookie","closeCookieModal","waitForEl","selector","callback","bottom","matches","cookie","RegExp","decodeURIComponent","$link","$page","action","queryString","hashPresent","split","localeCode","localeCurrencyCode","CurrencyCode","setPromotionsTracking","promotionsArray","JSON","parse","ecommerce","promoView","promotions","setCustomerContext","$dataLayerContext","dataObject","loginStatus","userId","customerID","pageType","setGlobalVariable","$context","user_email","customerEmail","user_FirstName","firstName","promoClick","FocusUtils","Dialog","dialogNode","focusAfterClose","focusAfterOpen","setFocusAfterCloseElement","setFocusAfterOpenElement","isForcedToChoice","forcedChoiceAlertMessage","backdropNode","focusFirstDescendant","focusLastDescendant","searchingFocusedElement","handleFocus","handleBackdropClick","create","initBackdrop","createFocusTrap","handleTransitionEnd","transitionEndFallbackTimeout","focusElementAfterOpen","afterOpen","beforeClose","removeEventListeners","removeFocusTrap","removeBackdrop","focusElementAfterClose","bringDown","bringOnTop","boundFocusNodeStart","boundFocusNodeEnd","contains","firstFocusable","createElement","insertBefore","lastFocusable","nextSibling","removeChild","backdropClass","parent","parentNode","encloseModalWithBackdrop","className","appendChild","closeDialogFromOutside","focusFirst","focusElement","getElementById","_typeof2","focusAfterClosed","arguments","Error","Modal","DialogManager","dialogsStack","dialogType","dialogId","isDialogInStack","_bringCurrentDialogDown","createDialog","_createDialog","CustomEvent","bubbles","cancelable","dispatchEvent","dialogID","_setDialogById","currentDialog","_getCurrentDialog","lastDialog","_destroyCurrentDialog","enclosedNode","_bringCurrentDialogToTop","closeAll","stackLength","_createAlert","replaceDialog","newDialogId","newFocusAfterClosed","newFocusFirst","topDialog","some","dialog","handleEscape","_handleEscape","handleClose","_handleCloseButton","isCloseButton","isDialogOpen","focusAfterCloseElement","dialogInStack","selectedDialog","splice","pop","alert","textContent","alertTimout","validateDialogStructure","validRoles","isDialog","token","role","element","childNodes","child","attemptFocus","isFocusable","disabled","rel","_Dialog","_inherits2","_super","_createSuper","toggle","controlledModalId","$brandSwithcDelayEl","$brandSwitch","brandSwitchDelay","FooterGrid","container","footerNav","Accordion","clearFormErrors","formElement","payload","fields","keys","feedbackElement","children","Array","isArray","join","prepend","Combobox","comboboxNode","combobox","input","listbox","minChars","focusedItemClassName","suggetionsUpdateDelay","lastSearchedTerm","activeIndex","resultsCount","isListboxOpen","BACKSPACE","handleOuterClick","handleBlur","handleInput","handleMouseenter","handleMouseleave","updateListbox","closeListbox","evt","selectItem","hasHoverWithin","getItemByIndex","setActiveToNextItem","activateItem","setActiveToPreviousItem","activeItem","prevActive","afterItemActivated","index","query","getSuggestions","results","innerHTML","afterSuggestionsUpdate","openListbox","toggleOverlay","isShown","isOverlayVisible","InputClear","clearInput","toggleClearButton","showButton","hideButton","showBarcodeBtn","wrapper","barcodeBtn","showClearButton","_Combobox","SearchCombo","suggestionsOvelay","clearButton","endpoint","setupXHR","formListeners","initClearButton","handleSubmit","handleFormMouseenter","handleFormMouseleave","onError","toggleSpinner","request","XMLHttpRequest","processResponse","replace","totalSuggests","_this3","q","abort","onreadystatechange","readyState","status","responseText","send","goingByLink","css","clickEvent","MouseEvent","view","createEvent","initEvent","formHasHover","inputClear","content","firstElementChild","_this4","overlayStyles","flyoutMinHeight","offsetParent","clientHeight","closeSearch","isAsPopup","innerWidth","page","toggleBarcodeBtn","opacity","visibility","flyoutBorderHeight","suggestionsHeight","valueLength","suggestions","scrollTo","offsetTop","behavior","autocomplete","dwAddressForms","id","forms","postal_code","country","state","city","address","getForms","pageInfo","getPlaceComponent","place","address_components","addressType","types","long_name","short_name","setElementValue","elementID","options","selected","fillInAddress","getPlace","formInfo","component","streetNumber","preventFormSubmit","from","getElementsByClassName","inputElement","google","maps","places","Autocomplete","componentRestrictions","setFields","shippingForm","inputId","addListener","searchForm","$MobileSearchInput","$headerWrapper","$headerBanner","$headerSearch","$plpHeaderFilters","$productGrid","headerWrapperHeight","innerHeight","headerSearchHeight","headerBannerHeight","stickyFilterPositioning","isMobileSearchActive","isHeaderSticky","productGridTop","offset","stickyHeaderHeight","topPosition","scrollTop","scroll","toggleClass","searchComboHeader","$MobileSearchIcon","initHoursPopup","$target","$hoursPopup","next","$allPopups","one","_inputmask","_interopRequireDefault","digitsOnly","Inputmask","mask","defaults","duration","touch","onZoomIn","onZoomOut","magnify","zoom","source","img","targetHeight","targetWidth","sourceHeight","sourceWidth","xRatio","yRatio","position","$source","overflow","border","maxWidth","maxHeight","appendTo","outerWidth","outerHeight","move","pageX","pageY","Math","fn","settings","$img","mousemove","clicked","touched","srcElement","currentSrc","onload","fadeTo","support","isFunction","which","console","log","originalEvent","touches","changedTouches","alt","jQuery","validation","displayMessage","isRedirect","$form","$messageContainer","msg","subscriptionFormUrl","removeAttr","emailId","menuList","menuBar","newNav","Menubar","HamburgerNew","Hamburger","medium","MobileNav","domeNode","backBtn","trackCurrentLevel","activePanels","forward","back","resetHamburgerState","hamburgerPanel","clickedLink","nextElementSibling","moveTrackTo","activatePanel","level","mainNavClasses","toggleBackButton","activeLink","panelRelatedToLink","backButtonClasses","resetClasses","currentLevel","openedPanel","panel","MenuItem","Menu","controllerObj","validateStructure","controller","menuitems","hasFocus","hasHover","firstItem","lastItem","mouseOutTimeout","initMenuItems","initFirstAndLastElements","handleMouseover","handleMouseout","menuItem","setFocusToController","cmd","command","isMenubarItem","setFocusToPreviousItem","setFocusToNextItem","setFocusToItem","newItem","setFocusToFirstItem","setFocusToLastItem","currentItem","getItemIndex","togglePopup","force","hasFocusWithin","popupMenu","hasHoverOnController","isOpen","setExpanded","msgPrefix","Element","TypeError","childElementCount","childElement","menuitem","menuObj","menu","blurHandledByController","handleKeyReturn","handleKeyLeft","handleKeyRight","MenubarItem","menubarItems","activationDelay","flyout","setUpMenuItems","setFirstAndLastItems","elem","menuElement","menubarItem","handleMouseEnter","handleMouseLeave","setIntentionalHover","barItem","hasOpenedMenu","isPopUpExpanded","getElementIndex","toggleFlyout","menuNode","flyoutPaneStyles","menuNodeHeight","pageYOffset","childs","PopupMenu","nextElement","isExpanded","Popup","setPopupPosition","toString","buttonBottom","buttonCenter","offsetLeft","clientWidth","closePopup","NewNav","windowWidth","documentElement","isFirstClick","header","utilityMenu","desktopBar","desktopBtn","isToggled","resetDesktopBar","hamburgerMenu","hamburgerMobileContainer","desktopHamburgerButton","nMainMenu","nPanel","removeProperty","updateMiniCart","closeMiniCartTimeout","updateMiniCartQuantity","hiddenClass","minicartQuantity","minicartButton","minicartCountOfItems","closeMiniCart","showRestrictionDialog","shipToHomeRestricted","openMiniCart","$trigger","cb","$panelYields","get","emptyMiniCart","emptyMinicartTemplate","updateAppoachingDiscounts","discountMsg","updateMiniCartProductGrandTotal","_ref","qwe","UUID","priceTotal","$grandTotalPrice","price","updateOrderDiscount","$orderDiscountWrapper","$orderDiscount","$shippingDiscountWrapper","$shippingDiscount","orderLevelDiscountTotal","formatted","hideClass","shippingLevelDiscountTotal","updateMiniCartTotals","$itemsCount","$total","$taxtotal","$shipping","$subtotal","$approachingDiscounts","$miniCartErrorMessage","grandTotal","totalTax","totalShippingCost","subTotal","openModalDialog","quantity","modalDialogContent","click","$minicartQuantityEl","initialQuantity","resultingQuantity","cart","SELECTORS","modal","email","closeBtn","signupBtn","thanks","$modal","$closeBtn","$signupBtn","$thanks","showNewsletterModal","closeNewsletterModal","serialize","fail","always","ready","pageHeaderBanner","headerBanner","sessionStorage","getItem","closeButton","setStyles","closeBanner","removeShowClass","setItem","nodeListForEach","NodeList","prototype","msMatchesSelector","cssSelector","customEvents","params","eventParams","detail","initCustomEvent","PopupButton","popupButton","formHelpers","showModal","showModalError","postalCodeMenu","postalCodeErrorMenu","postForm","targetCart","isInvalidBasket","postFormModal","object","scrollIntoView","$scrollToTopButton","loaderTimer","addSpinner","delay","$spinner","removeSpinner","$element","Fn","$window","domainSwitcherHeight","$headerBannerBtn","$content","headerTop","searchContainer","headerHeight","intervalHandler","setInterval","clearInterval","hamburgerButton","hamburgerContainer","windowHeight","desktopDomainSwitcher","domainHeight","display","newWindowHeight","group","buttons","allowToggle","isAttributeSet","allowMultiple","addComponentReference","removeComponentReference","toggleSection","closeSection","openSection","focusButtonByIndex","getButtonIndex","requestedIndex","buttonsLength","nextIndex","controlledSection","controledElement","initState","destroyState","before","after","desktopComponent","mobileComponent","desktopComponentInited","mobileComponentInited","mediaHelpers","initDesktopComponent","initMobileComponent","toggleComponents","listenBreakpointChange","lastBreakpoint","calls","getBreakpoint","currentBreakpoint","$notification","loginDataLayerEventInit","addToCartDataLayerEventInit","productQuantity","productData","currencyCode","jsProductDetailSelector","productDataJson","isExsistEvent","eventIndex","products","onCheckout","productInCheckoutSelector","productsInBasketJson","productsInBasket","userStatus","orderInformation","orderInformationObject","purchase","actionField","affiliation","revenue","tax","shipping","coupon","pushProductInDataLayer","product","category","eventCallback","babyRegistryEvent","productDataSelector","Products","pushProductDetail","brand","pushProductsInDataLayer","productsJsonSelector","productsJson","productsArray","isExistImpressions","ecommerceIndex","dataLayerObject","impressions","previousProducts","allProduct","lastPosition","productId","productsDataJson","productsData","removeFromCartEventPosition","isFirstDeleting","productForDeleting","String","variationId","storeLocatorEvent","locateType","radius","locationEntered","idx","el","$el","orderDataLayer","checkout","step","checkoutEvents","reportStep","stepNo","giftcardForm","sendButton","pinInfoBlock","resultBlock","balanceField","recaptcha","cbError","recaptchaFeedback","recaptchaRef","reCaptchaSuccess","verifyCallback","expiredCallback","grecaptcha","reset","render","sitekey","locale","scriptTag","getElementsByTagName","serverErrors","balance","inputName","resetForm","clearBtn","onloadCallback","modalInit","modalRecaptcha","checkReCaptchaStatus","cleanErrorMessage","isCaptchaEnable","first","resetCaptcha","timeoutTime","$sessionLogout","showSessionPopup","secondsLeft","$timeouCountdown","leftTimer","assign","ajaxStop","formValidation","googleCaptcha","arr","icons","toArray","icon","addToWishlistAfterLogIn","addToWishlist","$this","addToWishlistMessage","removeFromWishlistMessage","isPdpIcon","wishlistIcon","$wishListItemsContainer","wishListItems","isGuestUser","itemAdded","updatedList","LogIn","that","redirectURl","isSuccessCaptcha","createAccount","urlParsed","encodeURIComponent","pathname","resetPassword","$title","$btn","titleText","bodyHtml","btnText","receivedMsgHeading","receivedMsgBody","mobile","buttonText","returnUrl","openWishList","login","clearFieldAfterClosing","$imagesSection","$productImages","$productImagesSet","$headerCarousel","$CategoryCarousel","mediumBreakPoints","smallBreakPoints","setAvailabilityMessage","$parentElement","$carousel","$tileContainer","$availabilityMsgBlock","$shippingInfoBlock","isShipToHome","isFreeISPU","availabilityText","availabilityType","comingSoon","soldout","setHeartIconForRecommendation","itemsArr","$productRecommendations","slick","slidesToShow","dots","asNavFor","swipe","responsive","slidesToScroll","focusOnSelect","vertical","verticalSwiping","arrows","productRecommendationConfig","$categoryCarousel","scrollCount","currentSlide","hoursTooltip","googleAddress","media","storeLocator","$emptySearch","$noResults","newUrl","map","updateDom","$results","$updates","parseResults","selectors","numberOfClicksOnLoadMore","hash","updateIcons","toggleBusy","isLoading","updateAvailabilityMsg","productsUpdate","storeID","locationURL","selectedUrl","searchPage","method","geocodeAddress","geocoder","Geocoder","Promise","resolve","reject","geocode","geometry","updateStoresResults","$resultsDiv","hasResults","stores","isEmptyQuery","searchKey","storesResultsHtml","expandStoresEvent","appendStoresResults","$storesResults","getNextPage","$pagingOptions","search","isMobile","then","lat","lng","catch","locations","detectLocationAndRenderMap","geolocation","$storeLocatorMap","getCurrentPosition","$detectLocationButton","showStoreMobile","initConfirmationClosePopup","$modalContent","$selectBtn","setMyStoreToProfile","ID","newStoreId","detectLocation","changeRadius","change","selectStore","storeList","selectedStore","store","myStoreMessage","dataStore","stringify","pidReadyToAdd","displayHours","updateSelectStoreButton","loadMoreStores","openMyStores","htmlTemplate","initExpandStoresEvent","modalId","$scope","$stores","$store","$mapDiv","$storeInStock","inventoryBody","$dialog","last","postalCode","findStoreByLocation","coords","latitude","longitude","isDoorDash","storeData","searchRadius","searchPostalCode","storeDetailsHtml","processInclude","$initalState","$finalState","submitSubscription","include","scripts","reduce","promise","script","crossDomain","cache"],"sourceRoot":""}