{"version":3,"file":"Scripts/app.js","mappings":";;;;;;;;;;AAAa;;AAEb;AACA,cAAc,mBAAO,CAAC,iDAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;;ACjEa;;AAEb;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,kBAAkB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,qBAAM,mBAAmB,qBAAM;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;;AAEA,IAAI,QAAOpvD,IAAI,iCAAAoa,OAAA,CAAJpa,IAAI,OAAK,QAAQ,EAAE;EAC1BA,IAAI,GAAG,CAAC,CAAC;AACb;AAEC,aAAY;EACT,YAAY;;EAEZ,SAAS2xB,CAACA,CAACJ,CAAC,EAAE;IACV;IACA,OAAOA,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGA,CAAC,GAAGA,CAAC;EAC/B;EAEA,IAAI,OAAOj1B,IAAI,CAACoR,SAAS,CAAC6iD,MAAM,KAAK,UAAU,EAAE;IAE7Cj0D,IAAI,CAACoR,SAAS,CAAC6iD,MAAM,GAAG,UAAUx3D,GAAG,EAAE;MAEnC,OAAOy3D,QAAQ,CAAC,IAAI,CAACC,OAAO,CAAC,CAAC,CAAC,GACzB,IAAI,CAACC,cAAc,CAAC,CAAC,GAAO,GAAG,GAC7B/+B,CAAC,CAAC,IAAI,CAACg/B,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAC/Bh/B,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CA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,aAAa;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED;;;;;;;;;;;AC/OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAK4B;AAClC,CAAC;AACD,8BAA8B;AAC9B;;AAEA;AACA,8DAA8D,8BAAmB;;AAEjF;;AAEA;AACA,8BAAmB;AACnB,0BAA0B;AAC1B,CAAC;;AAED;AACA,mBAAmB,8BAAmB;AACtC,wCAAwC,8BAAmB;AAC3D;AACA,aAAa,8BAAmB;AAChC,kCAAkC,8BAAmB;AACrD;AACA,iBAAiB,8BAAmB;AACpC,kCAAkC,8BAAmB;AACrD,CAAC;AACD;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA,WAAW,oBAAoB;AAC/B,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,wDAAwD;;AAExD,uCAAuC;;AAEvC;AACA;AACA,kCAAkC;;AAElC;AACA,2DAA2D;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,YAAY;AACZ;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;AACD,wBAAwB,2BAA2B,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;;;AAIpW;AACA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA,KAAK;AACL,IAAI;;;AAGJ;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;AACD,iCAAiC,2BAA2B,2EAA2E,2CAA2C,wBAAwB,OAAO,2CAA2C,mIAAmI;;AAE/X,kDAAkD,0CAA0C;;AAE5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;;AAE/P,8DAA8D,sEAAsE,8DAA8D;;AAElM,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG;;AAEzU,iCAAiC,4EAA4E,iBAAiB,aAAa;;AAE3I,iCAAiC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,2DAA2D,OAAO,yCAAyC;;AAEpX,kDAAkD,mFAAmF,eAAe;;AAEpJ,wCAAwC,uBAAuB,yFAAyF;;AAExJ,uCAAuC,wEAAwE,0CAA0C,8CAA8C,MAAM,uEAAuE,IAAI,eAAe,YAAY;;AAEnT,8BAA8B,gGAAgG,mDAAmD;;;;;;;AAOjL;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA,aAAa,4CAA4C;AACzD,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4CAA4C;AAC3D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,QAAQ;AACvB;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;;AAEP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;AAErE,cAAc,gCAAmB;;AAEjC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;AAErE,SAAS,gCAAmB;AAC5B,eAAe,gCAAmB;;AAElC;AACA;AACA;AACA;AACA,WAAW,4CAA4C;AACvD,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,yCAAyC;AACzC;AACA;;AAEA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;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mBAAO,CAAC,2FAA+B;AAC5D,WAAW,mBAAO,CAAC,qGAAoC;AACvD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,wBAAwB,mBAAO,CAAC,mGAAmC;AACnE,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,qBAAqB,mBAAO,CAAC,yFAA8B;AAC3D,6BAA6B,mBAAO,CAAC,6GAAwC;AAC7E,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,cAAc,4HAAiD;AAC/D,0BAA0B,mBAAO,CAAC,uFAA6B;;AAE/D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,yEAAyE,gCAAgC;AACzG,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;;AAEA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,OAAO;AACP,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,UAAU,UAAU,aAA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ACA,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;;;;;;;;;;;;ACnLa;AACb,0BAA0B,mBAAO,CAAC,uGAAqC;AACvE,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,6BAA6B,mBAAO,CAAC,2GAAuC;;AAE5E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;;;;;;;;;;;AChBA,2BAA2B,mHAA4C;AACvE,YAAY,mBAAO,CAAC,qEAAoB;AACxC,kBAAkB,mBAAO,CAAC,iFAA0B;;AAEpD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;ACdA,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;AAC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AsB,mBAAO,CAAC,6FAAgC;AAC9D,WAAW,6GAAwC;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,MAAM;AACN;AACA,qCAAqC,cAAc,OAAO;AAC1D,sCAAsC,cAAc,OAAO;AAC3D;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA,sEAAsE,yBAAyB;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,6DAA6D;AACjE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACvGa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,0BAA0B,mBAAO,CAAC,uGAAqC;AACvE,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,cAAc,mBAAO,CAAC,qFAA4B;AAClD,YAAY,mBAAO,CAAC,qEAAoB;;AAExC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kBAAkB;AAClB,CAAC;;AAED;AACA;AACA,IAAI,+CAA+C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;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;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A;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACxIY;AACb,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,oCAAoC,mBAAO,CAAC,+HAAiD;AAC7F,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,wBAAwB,mBAAO,CAAC,mGAAmC;AACnE,6BAA6B,mBAAO,CAAC,2GAAuC;AAC5E,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,+EAAyB;AACjD,iBAAiB,mBAAO,CAAC,mGAAmC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACrCY;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,YAAY,6GAAwC;AACpD,6BAA6B,mBAAO,CAAC,+FAAiC;;AAEtE;AACA;AACA,IAAI,uEAAuE;AAC3E;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACXD,4BAA4B,mBAAO,CAAC,2GAAuC;;AAE3E;AACA;AACA;;;;;;;;;;;;ACJa;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;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mDAAmD;AACnD,uBAAuB,yCAAyC,UAAU;AAC1E,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;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,+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;;;;;;;;;;;;AC5PA;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,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,oBAAoB,mBAAO,CAAC,uGAAqC;AACjE,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,gCAAgC,mBAAO,CAAC,iHAA0C;;AAElF;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,MAAM,+CAA+C;AACrD;AACA,GAAG;AACH;;;;;;;;;;;AC1DA,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,aAAa,mBAAO,CAAC,2FAA+B;AACpD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,6BAA6B,mBAAO,CAAC,6GAAwC;;AAE7E;AACA;;AAEA;AACA;AACA,IAAI,+DAA+D;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACrBD,4BAA4B,mBAAO,CAAC,2GAAuC;;AAE3E;AACA;AACA;;;;;;;;;;;ACJA;AACA,mBAAO,CAAC,iGAAkC;AAC1C,mBAAO,CAAC,iFAA0B;AAClC,mBAAO,CAAC,yFAA8B;AACtC,mBAAO,CAAC,yFAA8B;AACtC,mBAAO,CAAC,2HAA+C;;;;;;;;;;;ACLvD,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,2FAA+B;AACpD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,kBAAkB,mBAAO,CAAC,qFAA4B;AACtD,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,6BAA6B,mBAAO,CAAC,6GAAwC;;AAE7E;;AAEA;AACA;AACA,IAAI,+DAA+D;AACnE;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AChBD,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,8BAA8B,mBAAO,CAAC,+GAAyC;;AAE/E;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACTA,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,qBAAqB,mBAAO,CAAC,6FAAgC;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACVA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,mBAAmB,mBAAO,CAAC,qFAA4B;AACvD,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,cAAc,mBAAO,CAAC,uFAA6B;AACnD,kCAAkC,mBAAO,CAAC,uHAA6C;;AAEvF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrBA,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,mBAAmB,mBAAO,CAAC,qFAA4B;AACvD,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,2BAA2B,mBAAO,CAAC,yFAA8B;AACjE,kCAAkC,mBAAO,CAAC,uHAA6C;AACvF,sBAAsB,mBAAO,CAAC,6FAAgC;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrCa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,qBAAqB,mBAAO,CAAC,2FAA+B;AAC5D,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,YAAY,mBAAO,CAAC,qEAAoB;AACxC,aAAa,mBAAO,CAAC,qFAA4B;AACjD,+BAA+B,mBAAO,CAAC,+GAAyC;AAChF,qBAAqB,gIAAgD;AACrE,oBAAoB,mBAAO,CAAC,yFAA8B;AAC1D,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,aAAa,mBAAO,CAAC,2FAA+B;AACpD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,oBAAoB,mBAAO,CAAC,yFAA8B;AAC1D,8BAA8B,mBAAO,CAAC,6GAAwC;AAC9E,4BAA4B,mBAAO,CAAC,yGAAsC;AAC1E,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,cAAc,mBAAO,CAAC,yEAAsB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,6DAA6D;AACjE;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChJa;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,+BAA+B,mBAAO,CAAC,+GAAyC;AAChF,qBAAqB,gIAAgD;AACrE,aAAa,mBAAO,CAAC,2FAA+B;AACpD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,wBAAwB,mBAAO,CAAC,iGAAkC;AAClE,8BAA8B,mBAAO,CAAC,6GAAwC;AAC9E,4BAA4B,mBAAO,CAAC,yGAAsC;AAC1E,sBAAsB,mBAAO,CAAC,6FAAgC;AAC9D,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,cAAc,mBAAO,CAAC,yEAAsB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,wEAAwE,IAAI;AAChF;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnEA,iBAAiB,mBAAO,CAAC,mFAA2B;AACpD,qBAAqB,mBAAO,CAAC,6FAAgC;;AAE7D;;AAEA;AACA;;;;;;;;;;;ACNA,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,oBAAoB,mBAAO,CAAC,uFAA6B;;AAEzD;;AAEA;AACA;AACA,IAAI,sEAAsE;AAC1E;AACA,CAAC;;;;;;;;;;;ACVD,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,oBAAoB,mBAAO,CAAC,uFAA6B;;AAEzD;;AAEA;AACA;AACA,IAAI,oEAAoE;AACxE;AACA,CAAC;;;;;;;;;;;ACVD;AACA,mBAAO,CAAC,uFAA6B;AACrC,mBAAO,CAAC,qFAA4B;;;;;;;;;;;;ACFvB;AACb;AACA,mBAAO,CAAC,yFAA8B;AACtC,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,aAAa,mBAAO,CAAC,uEAAqB;AAC1C,WAAW,mBAAO,CAAC,qFAA4B;AAC/C,kBAAkB,mBAAO,CAAC,qGAAoC;AAC9D,kBAAkB,mBAAO,CAAC,iFAA0B;AACpD,qBAAqB,mBAAO,CAAC,6GAAwC;AACrE,oBAAoB,mBAAO,CAAC,yFAA8B;AAC1D,4BAA4B,mBAAO,CAAC,2GAAuC;AAC3E,qBAAqB,mBAAO,CAAC,2FAA+B;AAC5D,qBAAqB,mBAAO,CAAC,6FAAgC;AAC7D,gCAAgC,mBAAO,CAAC,iHAA0C;AAClF,0BAA0B,mBAAO,CAAC,uFAA6B;AAC/D,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,iBAAiB,mBAAO,CAAC,iFAA0B;AACnD,aAAa,mBAAO,CAAC,2FAA+B;AACpD,WAAW,mBAAO,CAAC,qGAAoC;AACvD,cAAc,mBAAO,CAAC,yEAAsB;AAC5C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,eAAe,mBAAO,CAAC,6EAAwB;AAC/C,gBAAgB,mBAAO,CAAC,6EAAwB;AAChD,aAAa,mBAAO,CAAC,qFAA4B;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,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,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;;;;;;;;;;;ACtZA;AACA,mBAAO,CAAC,yHAA8C;;;;;;;;;;;;ACDzC;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,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;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;;;;;;;;;;;ACnhCD;AACA,mBAAO,CAAC,6FAAgC;;;;;;;;;;;;ACD3B;AACb,QAAQ,mBAAO,CAAC,uEAAqB;AACrC,WAAW,mBAAO,CAAC,qFAA4B;;AAE/C;AACA;AACA,IAAI,8CAA8C;AAClD;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACVD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA,CAAC;;;;;;;;;;;ACpDD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO,MAAM,KAAK,EAAE,KAAK,EAAE,KAAK;AAC3C,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,OAAO,EAAE,KAAK,EAAE,KAAK;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ,IAAI;AACvB,WAAW,QAAQ,IAAI;AACvB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW,QAAQ;AACnB;AACA;AACA,4BAA4B,8BAA8B;;AAE1D;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,gBAAgB;;AAEhB;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA,oCAAoC;;AAEpC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,GAAG;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C,2BAA2B,cAAc;AACzC,2BAA2B,gCAAgC;AAC3D,yBAAyB,gCAAgC;AACzD;AACA,yBAAyB,4BAA4B;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB;AACA;AACA;AACA,4BAA4B,gCAAgC;;AAE5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;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;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,mGAAmG,IAAI;AACvG;;AAEA,IAAI,IAA0C;AAC9C,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,kGAAC;AACN,EAAE,KAAK,EAIN;;AAED,CAAC;;;;;;;;;;;;ACllFD;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;;AAE7C;AACA,kBAAkB,KAAyB;AAC3C;;AAEA;AACA;AACA,yBAAyB,qBAAM,gBAAgB,qBAAM;AACrD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,8iBAA8iB,wZAAwZ,WAAW;;AAEn+B;AACA;AACA,cAAc;AACd,aAAa;AACb,eAAe;AACf,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,wxfAAwxf,inBAAinB,6BAA6B,yBAAyB;AAC/7gB,kBAAkB,4teAA4te,wKAAwK,2uZAA2uZ,wKAAwK,6gFAA6gF;AACtz9B,wBAAwB;AACxB,yBAAyB;AACzB;;AAEA;;AAEA;;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;;AAEA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;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,0DAA0D;AAC1D;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,iBAAiB;AACpC,qBAAqB,MAAM,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,wCAAwC,GAAG;AAC3C,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,uCAAuC;AACvC,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAO;AACT;AACA,GAAG;AAAA,kGAAC;AACJ,GAAG,KAAK,YAUN;;AAEF,CAAC;;;;;;;;;;;ACxVD;AACA;AACA;AACA;AACA;;AAEA,YAAY,aAAa,aAAa,aAAa,OAAO,6DAA6D,IAAI,yKAAyK,wBAAwB,QAAQ,yCAAyC,kCAAkC,uCAAuC,YAAY,EAAE,cAAc,yDAAyD,aAAa,oCAAoC,cAAc,qDAAqD,uCAAuC,8ZAA8Z,aAAa,cAAc,iBAAiB,uEAAuE,qGAAqG,yBAAyB,MAAM,mBAAmB,sBAAsB,iGAAiG,MAAM,kBAAkB,MAAM,oEAAoE,UAAU,KAAqC,CAAC,iCAAO,EAAE,oCAAC,CAAC;AAAA;AAAA;AAAA,kGAAC,CAAC,CAAqG,gEAAgE,wCAAwC,EAAE;AACnzD;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA,IAAI,KAAK;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,QAAQ;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,QAAQ;AACZ;AACA;;AAEA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;AACF;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,KAAK;AAChB;AACA,YAAY,QAAQ;AACpB;AACO;AACP,4BAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAA+C;AAC/C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,+CAA+C;AAC/C;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,MAAM;AAClB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;ACzuBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,eAAe;AACf,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjFD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvMD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;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;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;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,SAAS;AACT;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,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9LD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClLD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtKD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;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,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9JD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACxGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrND;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtJD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzED;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ND;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3JD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;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,SAAS;AACT;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,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrLD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iCAAiC;AACjC,cAAc;AACd,gCAAgC;AAChC,cAAc;AACd,mCAAmC;AACnC,cAAc;AACd,mCAAmC;AACnC,cAAc;AACd,gCAAgC;AAChC,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClGD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACrGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACtID;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;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,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACpHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;ACnGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACzHD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;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;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACjLD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC5FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AChED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7DD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC1FD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACnFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC9GD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;AC7GD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnSA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,sBAAsB;;AAEvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;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;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,YAAY;AACvD;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;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;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,QAAQ;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;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,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;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,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,8EAAe,IAAW,OAAO,CAAC;AAClD;AACA,cAAc;AACd;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,mCAAmC,iBAAiB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;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,oBAAoB,cAAc;AAClC;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;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;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4GAA4G;AAC5G;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;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;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;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;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;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;ACpjLD;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,IAA2B;AACnC;AACA;AACA,cAAc,SAAS,mBAAO,CAAC,+CAAQ,KAAK;AAC5C;AACA,MAAM,KAAK,EAWN;AACL,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,wCAAwC;AACxC;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;;AAGL;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,yBAAyB;AACzB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yDAAyD,eAAe;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;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;;AAEA,4BAA4B,yBAAyB;AACrD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;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;;AAEA;AACA,CAAC;;;;;;;;;;;;ACjxCY;;AAEb,gBAAgB,mBAAO,CAAC,4DAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;;;;;;;;;;;ACrBa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBa;;AAEb,gBAAgB,mBAAO,CAAC,4DAAa;AACrC,oBAAoB,mBAAO,CAAC,sEAAkB;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBa;;AAEb,oBAAoB,mBAAO,CAAC,sEAAkB;AAC9C,qBAAqB,mBAAO,CAAC,wEAAmB;;AAEhD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;;;;;;;;;;;;;;;;ACpBA;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,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;AAMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,aAAa,SAAS;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;;AAEA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA,eAAe;AACf;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;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;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,SAAS;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,eAAe;;AAE5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,eAAe;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sBAAsB,wDAAwD;;AAE9E;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,2BAA2B;AAC3B,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gDAAgD;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;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,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,eAAe;AAC7B;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,4BAA4B;AAC5B;;AAEA,qCAAqC;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,aAAa,YAAY;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA,eAAe,oBAAoB;AACnC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA,eAAe,YAAY;AAC3B;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,IAAI;AACJ;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;;AAEA;AACA;AACA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;AACA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB;;AAEA;AACA;AACA,WAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yBAAyB;AACtC,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe;AACf,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B,iDAAiD,uCAAuC,kDAAkD;AAC1I,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,cAAc,QAAQ;AACtB;AACA,cAAc,QAAQ;AACtB;AACA;;;AAGA,yDAAyD,qBAAM;AAC/D;AACA;;AAEA,iEAAe,MAAM,EAAC;AACtB;;;;;;;;;;;;;;;;;ACvjFsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,6CAAO;AAC1B;AACA;AACA,SAAS,6CAAO;AAChB;AACA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;;;;;;;ACjCe;AACN;AACU;AAC+C;AACjD;AACV;AACA;AACU;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kDAAK,CAAC,wDAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC,gBAAgB,wDAAS;AACzB,YAAY,8DAAe;AAC3B,iBAAiB,qDAAW;AAC5B,+BAA+B,kDAAK;AACpC;;AAEA,EAAE,mDAAM,cAAc;AACtB,EAAE,mDAAM,iBAAiB;;AAEzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,oDAAW;AACpC;AACA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;ACzE1B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5DA,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACd4C;AAClB;;AAE1B,6BAAe,oCAAS;AACxB,wBAAwB,sDAAO,cAAc,iDAAI;AACjD;;;;;;;;;;;;;;;;;;;ACJgD;AACtB;;AAE1B,6BAAe,oCAAS;AACxB,yBAAyB,kDAAG,cAAc,iDAAI,MAAM,qDAAM;AAC1D;;;;;;;;;;;;;;;;;ACNsC;;AAEtC,6BAAe,oCAAS;AACxB;AACA,uBAAuB,uDAAU;;AAEjC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACb4B;AACE;;AAE9B,6BAAe,oCAAS;AACxB;AACA,MAAM,mDAAM,eAAe,kDAAK;;AAEhC;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACLA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACd0B;AACA;;AAE1B,6BAAe,oCAAS;AACxB;AACA;AACA,mBAAmB,iDAAI;AACvB,mBAAmB,iDAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC/BA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;ACHA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACdA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACPA,6BAAe,oCAAS;AACxB;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACf4C;;AAE5C,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,mBAAmB,sDAAO;AAC1B;AACA;AACA,aAAa,sDAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;AC/BA,6BAAe,oCAAS;AACxB;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACLA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;ACH4C;;AAE5C,6BAAe,oCAAS;AACxB;AACA;AACA,YAAY,sDAAO;AACnB,kBAAkB,SAAS;AAC3B;AACA,WAAW,sDAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBgC;AACU;;AAE1C;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA,yBAAyB,GAAG,OAAO;AACnC;AACA;AACA;AACA;AACA,SAAS,oDAAO;AAChB;AACA,sBAAsB,oDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACTA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACZ4C;;AAE5C,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,0BAA0B,sDAAO;AACjC;;;;;;;;;;;;;;;;ACPA;AAC4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtGA;AAC4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzQA;AAC4B;;AAE5B,yBAAyB;AACzB,kCAAkC;AAClC,gCAAgC;AAChC,mCAAmC;AACnC,kCAAkC;AAClC,gCAAgC;AAChC,+BAA+B;AAC/B,oCAAoC;AACpC,kCAAkC;AAClC,6BAA6B;AAC7B,qCAAqC;AACrC,6BAA6B;AAC7B,gCAAgC;;;;;;;;;;;;;;;;ACfhC,iEAAe;AACf,OAAO,iBAAiB;AACxB,YAAY;AACZ,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHK;AACA;AACA;AACA,mBAAmB;AACnB,qBAAqB;AACrB,sCAAsC;AACtC,wCAAwC;AACxC,gDAAgD;AAChD;AACA;AACP;AACO;AACP;AACO;AACP;AACO;AACA;AACP;AACA;;AAEO;AACA;AACA;AACA;AACP;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;;;AC5BmB;AACU;AACpC,YAAY,iDAAI;;AAEhB;AACA;AACA;AACA,uBAAuB,sDAAS,oCAAoC;AACpE;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ,UAAU,sDAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,6CAAI;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS,iDAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,KAAK;;;;;;;;;;;;;;;;ACrFyF;;AAE7G;AACA;;AAEA;AACA,qBAAqB,0DAAW;AAChC,IAAI;AACJ,qBAAqB,wDAAS;AAC9B;;AAEA;AACA;AACA;AACA,uBAAuB,yDAAU;AACjC;AACA;AACA;AACA,yBAAyB,yDAAU;AACnC,+BAA+B,yDAAU;AACzC,+BAA+B,yDAAU;AACzC,+BAA+B,yDAAU;AACzC;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,4DAAa;AAClC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;;;;ACtCR;AACsD;AAC5D;AACP;AACA,kBAAkB;AAClB,IAAI;AACJ;AACA;AACA;AACA,IAAI,+BAA+B,yDAAU;AAC7C;AACA,IAAI,+BAA+B,yDAAU;AAC7C;AACA,IAAI;AACJ,iBAAiB;AACjB;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,8BAA8B;;AAE9B,UAAU;AACV,eAAe;AACf,gBAAgB;AAChB,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA,kBAAkB,sDAAO,wBAAwB,sDAAO;AACxD,gBAAgB,sDAAO;AACvB,IAAI,oBAAoB,sDAAO,uBAAuB,sDAAO;AAC7D,eAAe,sDAAO;AACtB,IAAI,qBAAqB,sDAAO;AAChC;AACA;AACA,aAAa;AACb,IAAI,oBAAoB,sDAAO;AAC/B;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEK;AACP;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA;AACA,UAAU;AACV,aAAa;AACb,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,aAAa;AACb,YAAY;;AAEZ;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,sDAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACO;;AAEP,qBAAqB,yDAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,yDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACO;;AAEP,qBAAqB,yDAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,wBAAwB,yDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;;;;;;;;;;;;AC5O4B;;AAEmG;AAClF;AAC7C;AACA,mBAAmB,yDAAU,aAAa,yDAAU;AACpD;;AAEA,6BAAe,oCAAS;AACxB;AACA,MAAM,0DAAa;AACnB,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA,4BAA4B,0DAAW,wBAAwB,0DAAW;AAC1E;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,4DAAa;AACzC;AACA;AACA;AACA;AACA,eAAe,kEAAmB;AAClC,gBAAgB,iEAAkB;AAClC;;AAEA;AACA;AACA;AACA,0BAA0B,4DAAa;AACvC,aAAa,kEAAmB;AAChC,aAAa,kEAAmB;AAChC,cAAc,iEAAkB;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU,iEAAoB;AAC9B;AACA;AACA,YAAY,8DAAiB;AAC7B;AACA;AACA,YAAY,gEAAmB;AAC/B;AACA,UAAU,iEAAoB;;AAE9B,0BAA0B,4DAAa;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,eAAe;AACf,gBAAgB;AAChB;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kDAAG,mBAAmB,kDAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,sBAAsB;AACtB,YAAY;AACZ;AACA;AACA,SAAS,8DAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,cAAc;AACd,cAAc;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY;AACZ;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC/L+B;AACM;AACR;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uDAAS;AAC9B;AACA;AACA,qBAAqB,sDAAG;AACxB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,mDAAO;AACP,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;;ACtDsC;AACQ;AACtC;;AAErB;AACP,kBAAkB;AAClB,kBAAkB;AAClB,2BAA2B;AAC3B;AACA;AACA,mBAAmB,oDAAK,SAAS,kDAAG,QAAQ,kDAAG;AAC/C;AACA;AACA,IAAI;AACJ,uBAAuB;AACvB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACO;AACP,YAAY;AACZ,kBAAkB,kDAAK,CAAC,4DAAS;AACjC;AACA,gBAAgB,uDAAK;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,oDAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/CA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACV2B;AACD;AACE;AACU;AACZ;AACM;AACI;AACZ;AACmB;;AAE3C,0DAAkB,YAAY;AAC9B,kDAAU,GAAG,6CAAI;AACjB,mDAAW,OAAO,kDAAU;AAC5B,mDAAW,GAAG,8CAAK;AACnB,qDAAa,GAAG,uDAAM;AACtB,kDAAU,GAAG,6CAAI;AACjB,qDAAa,GAAG,gDAAO;AACvB,uDAAe,GAAG,kDAAS;AAC3B,kDAAU,GAAG,4CAAI;AACjB,qDAAa;AACb,kDAAmB,CAAC,6CAAK;AACzB,iEAAe,6CAAK,EAAC;;;;;;;;;;;;;;;;ACrBrB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,iCAAiC,gFAAgF;AACjH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC7I0B;AACG;AACM;AACP;AAC5B;AACA;AACA;AACA;AACA,iBAAiB,6CAAI;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,aAAa,kDAAK;AAClB;AACA;AACA;AACA,aAAa,kDAAK;AAClB;AACA;AACA;AACA,YAAY,kDAAK;AACjB;AACA;AACA;AACA,SAAS,kDAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAAI;AACjB;AACA;AACA,gBAAgB,sDAAG;AACnB;AACA;AACA,eAAe,0DAAiB;AAChC;AACA;AACA;AACA,eAAe,uDAAO;AACtB;AACA;AACA;AACA;AACA,aAAa,uDAAO;AACpB;AACA,GAAG;AACH;AACA;AACA;;AAEA,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;;;AC7DkB;AACe;AAChB;AACV;;AAE5B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,kDAAG;AACzB,KAAK;AACL;AACA,sBAAsB,kDAAG;AACzB,KAAK;AACL;AACA,sBAAsB,kDAAG;AACzB,KAAK;AACL;AACA,wBAAwB,kDAAG;AAC3B,KAAK;AACL;AACA,uBAAuB,kDAAG;AAC1B,KAAK;AACL;AACA,uBAAuB,kDAAG;AAC1B,KAAK;AACL;AACA,uBAAuB,kDAAG;AAC1B,KAAK;AACL;AACA,mCAAmC,kDAAG;AACtC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,uBAAuB,kDAAG;AAC1B,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB,kDAAK,CAAC,wDAAK;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgC,kDAAG;AACnC,KAAK;AACL;AACA,eAAe,kDAAK,CAAC,gEAAa;AAClC,wDAAwD,kDAAG;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC5IsC;AACM;AAC5C,aAAa,yDAAI,EAAE,4DAAO;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEa;;AAEN;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACtCkC;AACA;AACU;AACV;AACM;;AAEnC;;AAEP,wCAAwC,oDAAK;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,yDAAK;AAClB,aAAa,yDAAK;;AAElB;AACA;AACA;AACA,aAAa,yDAAK;AAClB,aAAa,yDAAK;;AAElB;AACA;AACA;AACA,aAAa,yDAAK;;AAElB,wCAAwC,oDAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;;AAEP;AACA;;AAEA;AACA;;AAEA,WAAW,yDAAK;AAChB;AACA,yBAAyB,8DAAU;AACnC;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,8DAAU;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA,YAAY,yDAAK;AACjB,eAAe,oDAAK;AACpB;AACA;;AAEA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChI4C;AACK;;AAEjB;AACA;AACA;AACA;AACA;AACJ;AACM;AACA;;;;AAI7B;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,aAAa,8DAAU;AACvB;AACA;AACA,sCAAsC,oDAAK;AAC3C;AACA,gCAAgC,sDAAO;AACvC,gCAAgC,sDAAO;AACvC;AACA;AACA,2CAA2C,oDAAK;AAChD;AACA,gCAAgC,sDAAO;AACvC,gCAAgC,sDAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wDAAI;AACb,SAAS,wDAAI;AACb,SAAS,wDAAI;AACb,SAAS,wDAAI;AACb,sCAAsC,oDAAK;AAC3C;AACA,qBAAqB,wDAAI,iBAAiB,sDAAO;AACjD,oBAAoB,wDAAI;AACxB;AACA;AACA;AACA;AACA,2CAA2C,oDAAK;AAChD;AACA,qBAAqB,wDAAI,iBAAiB,sDAAO;AACjD,oBAAoB,wDAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAE;AACd,WAAW,sDAAE;AACb;AACA;AACA;AACA;AACA;AACA,mDAAmD,oDAAK;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,oDAAK;AAC7B;AACA;AACA;AACA,YAAY,yDAAK;AACjB,kCAAkC,sDAAO;AACzC,2BAA2B,oDAAK;AAChC;AACA,gBAAgB,8DAAU;AAC1B;AACA;AACA,gBAAgB,8DAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS;AACT,cAAc,8DAAU;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,wDAAI;AACb,SAAS,wDAAI;AACb,SAAS,wDAAI;AACb,SAAS,wDAAI;AACb,sCAAsC,oDAAK;AAC3C;AACA,qBAAqB,wDAAI,iBAAiB,sDAAO;AACjD;AACA;AACA,YAAY,yDAAK;AACjB,YAAY,8DAAU;AACtB;AACA;AACA;AACA;AACA,2CAA2C,oDAAK;AAChD;AACA,qBAAqB,wDAAI,iBAAiB,sDAAO;AACjD;AACA;;AAEA,YAAY,yDAAK;AACjB,YAAY,8DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/MgC;AACA;AACA;AACA;AACA;AACJ;AACgB;AACA;AACV;AACe;;AAE5C;AACP;AACA,cAAc,wDAAI;AAClB,cAAc,wDAAI;AAClB,cAAc,wDAAI;AAClB,cAAc,wDAAI;AAClB,wBAAwB,wDAAI;AAC5B;AACA;;AAEA;AACA;AACO;;AAEP;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAU;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAE;AACf;AACA;AACA;AACA;AACA,sBAAsB,wDAAI;;AAE1B;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAK;AACpB,kCAAkC,sDAAO,KAAK,oDAAK;AACnD;AACA,YAAY,sDAAO;AACnB;AACA;AACA;AACA;AACA;AACA,cAAc,sDAAE;;AAEhB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,8DAAU;AAClB,QAAQ,8DAAU;AAClB;;AAEA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;AC3G4C;AACV;AACA;AACE;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,cAAc,yDAAK;AACnB;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAU;AACvB;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAK;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA,UAAU,8DAAU;AACpB;AACA;AACA;AACA,UAAU,0DAAM;AAChB,UAAU,8DAAU;AACpB;;AAEA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;ACrE4C;AACA;;AAEvC;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACO;;AAEP;AACA;;AAEA,aAAa,8DAAU;AACvB,aAAa,8DAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACO;;AAEP;AACA;;AAEA,QAAQ,8DAAU;AAClB,QAAQ,8DAAU;AAClB;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CgC;AACA;AACA;AACA;AACE;AACF;AACY;AACA;AACV;AACM;;AAEnC;;AAEP;AACA;AACA;AACA,wCAAwC,oDAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAI;AAChB,YAAY,wDAAI;AAChB,YAAY,wDAAI;AAChB,YAAY,wDAAI;;AAEhB;AACA;;AAEA,aAAa,yDAAK;AAClB,aAAa,wDAAI;;AAEjB,wCAAwC,oDAAK;AAC7C;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAK;AACpB,eAAe,wDAAI;AACnB;AACA;AACA;AACA,aAAa,wDAAI;AACjB;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAI;AACjB;AACA;AACA,wBAAwB,8DAAU;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,8DAAU;AACpB,UAAU,8DAAU;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yDAAK;AACf,UAAU,8DAAU;AACpB;AACA;AACA;AACA;;AAEA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpHF;AACA;;AAEyC;AACP;AACE;AACE;AACJ;AACE;AACY;AACF;;AAEvC;AACP;AACA;AACA;AACA;AACA;AACA,IAAI,qEAAgB;AACpB,mBAAmB,kEAAa;AAChC,mBAAmB,kEAAa;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,UAAU,wDAAI;AACd,4BAA4B,yDAAK;AACjC;;AAEO;AACP,WAAW,8DAAU;AACrB;;AAEA,OAAO,wDAAI;AACX;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,yDAAK;AACxC,OAAO,0DAAM;;AAEb,YAAY,+DAAW;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,+DAAW;;AAEzB;AACA;AACA,mBAAmB,wDAAI;;AAEvB;AACA;AACA;AACA;;AAEA,qCAAqC,yDAAK;AAC1C;;AAEA,UAAU,8DAAU;AACpB,UAAU,wDAAI;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;AC3KgC;AAClC;AACoD;;AAE7C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qDAAM,yCAAyC,qDAAM,aAAa,wDAAI;AAC7G;;AAEO;AACP;AACA;;AAEA,6DAA6D,qDAAM,aAAa,wDAAI,yCAAyC,sDAAO;AACpI;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,0CAA0C,qDAAM;AAChD,yBAAyB,OAAO;AAChC,8BAA8B,wDAAI,4CAA4C,sDAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;AChDqB;;AAEhB;AACP;;AAEA;;AAEO;AACP,gBAAgB,iEAAoB;AACpC;AACA;;AAEO;AACP,gBAAgB,iEAAoB;AACpC;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;AC1BmC;;AAE7B;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gCAAgC;AAChC,MAAM;AACN;AACA;AACA;;AAEA,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,yDAAK;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD,yDAAK;AACzD;AACA,UAAU;AACV;AACA,oDAAoD,yDAAK;AACzD;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA,oDAAoD,yDAAK;AACzD;AACA,UAAU;AACV;AACA,oDAAoD,yDAAK;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,yDAAK;AACzD,UAAU;AACV;AACA,oDAAoD,yDAAK;AACzD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;AC7J4C;AACV;AACM;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP,sBAAsB;AACtB,YAAY;AACZ,cAAc;AACd,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAU;;AAEnB;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,oDAAK;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU,yDAAK;AACf;AACA,UAAU,8DAAU;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;ACvG4C;;AAEvC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,kBAAkB,8DAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;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,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxGyD;;AAEvB;AACU;;AAE9C;AACA;AACA;AACA;AACA;;AAEO;;AAEA;AACA;AACA;;AAEP;AACA;AACO;AACP;AACA,mBAAmB,sDAAO,IAAI,oDAAK;AACnC;AACA;AACA,yBAAyB,oDAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,yDAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yDAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,QAAQ,8DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oDAAK;AAC3C;AACA;AACA,UAAU,qDAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sDAAO;AACjB;AACA;AACA;AACA,gBAAgB,sDAAO;AACvB;AACA;AACA;AACA,sBAAsB,oDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAK;AAClC;AACA;AACA;AACA;AACA,6BAA6B,oDAAK;AAClC;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAO;AACnB;AACA;AACA,aAAa,sDAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAK;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,8DAAU;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACzSkC;AACA;AACF;AACY;AACV;AACe;AAC5C;AACP;AACA,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAK;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,yDAAK;AACjB,YAAY,yDAAK;;AAEjB;AACA;AACA,YAAY,yDAAK;AACjB,YAAY,yDAAK;;AAEjB,YAAY,yDAAK;;AAEjB,wCAAwC,oDAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;;AAEP;AACA;;AAEA;AACA,+CAA+C,oDAAK;AACpD,UAAU,wDAAI,SAAS,sDAAO,OAAO,oDAAK;AAC1C;;AAEA,qCAAqC,sDAAO;AAC5C;AACA,YAAY,oDAAK;AACjB,SAAS,yDAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAU;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yDAAK;AACf;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAO;AAClB;AACA,QAAQ,8DAAU;;AAElB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;ACrJK;AACP;AACA;;AAEA;AACA;AACA;AAC6B;AACA;AACtB;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACfkC;;AAEU;AACV;AACA;AAC4B;AACzD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA,YAAY,kDAAG,eAAe,kDAAG,gBAAgB,kDAAG,gBAAgB,kDAAG;AACvE;AACA;;AAEA;AACA,+BAA+B,sDAAO,KAAK,oDAAK;AAChD;AACA;AACA;AACA;AACA,uCAAuC,8DAAU;AACjD,yDAAyD,qDAAM;AAC/D;AACA;AACA;AACA,eAAe,yDAAK;AACpB,uCAAuC,8DAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;;AAEP;AACA;AACA;;AAEA;AACA,UAAU,sDAAO;AACjB;AACA;AACA;AACA,UAAU,yDAAK;AACf;AACA;AACA;AACA;AACA,QAAQ,8DAAU;;AAElB;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;ACnG4C;;AAE9C;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,aAAa,8DAAU;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;;AAEA,YAAY,8DAAU;AACtB;;AAEA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;ACnD4C;AACvC;AACmC;AAC1C;AACA;AACO;;AAEP;AACA;AACA;AACA;;AAEA,kBAAkB,8DAAU;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oDAAK;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,oDAAK;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;AClF6C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;;AAEA;AACP;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,yDAAU;AACpC;AACA,mBAAmB;;AAEnB;AACA,cAAc,SAAS;AACvB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,yDAAU;AAC3C;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;ACjOkC;AACU;AACV;AACsC;;AAE1E;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kDAAG;AAC5C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAO,2CAA2C,sDAAO;AAChF,kCAAkC,sDAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yDAAK;AAC5B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ,iBAAiB,yDAAK;AACtB,iBAAiB,yDAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,qDAAM;AACnB,MAAM;AACN,cAAc,qDAAM;AACpB;AACA;AACA,gBAAgB,8DAAU;AAC1B,6CAA6C,8DAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qDAAM;AACrD,+CAA+C,qDAAM;AACrD;;;AAGA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,+BAA+B,sDAAO,IAAI,oDAAK;AAC/C,0BAA0B,yDAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oDAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAK;AACxC;AACA,yBAAyB,sDAAO,GAAG,sDAAO;AAC1C,IAAI;AACJ;AACA,eAAe,yDAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;AChP4C;AACV;AACe;;AAE5C;AACP,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP,sBAAsB;AACtB,YAAY;AACZ,cAAc;AACd,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAU;;AAEnB;AACA;;AAEA;AACA;AACA;AACA,iCAAiC,oDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,UAAU;AACV,SAAS;AACT,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yDAAK;;AAEX;AACA;;AAEA;AACA,sBAAsB,oDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAK;AACb,8BAA8B,sDAAO;AACrC,uBAAuB,oDAAK;AAC5B;AACA,YAAY,8DAAU;AACtB;AACA;AACA,YAAY,8DAAU;AACtB;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAU;AAClB;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FgC;AACA;AACA;AACA;AACY;AACA;AACZ;AACQ;;AAEZ;AAC9B;;AAEO;AACP;AACA;AACA;AACA,wCAAwC;AACxC;AACA,YAAY,wDAAI;AAChB,YAAY,wDAAI;AAChB,YAAY,wDAAI;AAChB,YAAY,wDAAI;AAChB,sBAAsB,wDAAI,iDAAiD;AAC3E;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA,aAAa,8DAAU;AACvB;AACA;AACA,yBAAyB,oDAAK;AAC9B;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAU;AAC9B;AACA;AACA;AACA,yBAAyB,oDAAK;AAC9B;AACA;AACA;AACA;AACA,eAAe,sDAAE;AACjB;AACA,mBAAmB,wDAAI;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,oDAAK;AACjD,YAAY,8DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,GAAG;AAC5B;AACA;AACA;AACA,8BAA8B,oDAAK;AACnC;AACA;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA;AACA;AACA,kCAAkC,oDAAK;AACvC;AACA,YAAY,8DAAU;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,GAAG;AAC5B;AACA;AACA,uBAAuB,wDAAI;AAC3B;AACA;AACA;AACA;AACA,8BAA8B,oDAAK;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,8DAAU;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;ACtIF;AACA;;AAEwE;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,sDAAO,GAAG,qDAAM;AACnC;AACA,IAAI,wBAAwB,sDAAO,GAAG,qDAAM;AAC5C;AACA,IAAI,iCAAiC,qDAAM;AAC3C;AACA,IAAI,iCAAiC,sDAAO,GAAG,qDAAM;AACrD;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP,YAAY;AACZ;AACA;AACA;AACA,SAAS;AACT,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,UAAU,sDAAO;AACjB,eAAe,qDAAM,WAAW,sDAAO,GAAG,qDAAM;AAChD;AACA,oBAAoB,sDAAO;AAC3B,MAAM,eAAe,sDAAO,GAAG,qDAAM,aAAa,sDAAO,GAAG,qDAAM;AAClE;AACA,iCAAiC,kDAAG,SAAS,kDAAG;AAChD,MAAM,iBAAiB,sDAAO,GAAG,qDAAM,aAAa,qDAAM;AAC1D;AACA,oBAAoB,sDAAO;AAC3B,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ,UAAU,sDAAO;AACjB,eAAe,qDAAM,WAAW,sDAAO,GAAG,qDAAM;AAChD;AACA,qBAAqB,sDAAO;AAC5B,MAAM,eAAe,qDAAM,YAAY,qDAAM;AAC7C;AACA;AACA,MAAM,gBAAgB,qDAAM,aAAa,sDAAO,GAAG,qDAAM;AACzD;AACA,qBAAqB,sDAAO;AAC5B,MAAM;AACN;AACA,kCAAkC,kDAAG,UAAU,kDAAG;AAClD;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,uCAAuC,sDAAO;AAC9C,MAAM;AACN,uCAAuC,kDAAG;AAC1C,MAAM;AACN,uCAAuC,sDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,kDAAG,kDAAkD,qDAAM,KAAK,sDAAO;AAC9F;;AAEA;AACA;AACA,UAAU,sDAAO;AACjB,IAAI;AACJ,UAAU,kDAAG;AACb,IAAI;AACJ,gBAAgB,kDAAG;AACnB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP,YAAY;AACZ;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,UAAU,sDAAO;AACjB,IAAI;AACJ;AACA,0BAA0B,kDAAG,QAAQ,kDAAG;AACxC,IAAI;AACJ;AACA,UAAU,sDAAO;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,kDAAG;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAO;AACpB;AACA,uBAAuB,sDAAO;AAC9B,MAAM;AACN,sCAAsC,kDAAG,WAAW,kDAAG;AACvD,MAAM;AACN,uBAAuB,sDAAO;AAC9B,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA,mBAAmB,sDAAO;AAC1B;AACA,wBAAwB,sDAAO;AAC/B,MAAM;AACN;AACA,MAAM;AACN,wBAAwB,sDAAO;AAC/B,MAAM;AACN,uCAAuC,kDAAG,YAAY,kDAAG;AACzD;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAO;AACpC;AACA;AACA,6CAA6C,sDAAO;AACpD,MAAM;AACN,6CAA6C,kDAAG;AAChD,MAAM;AACN,6CAA6C,sDAAO;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,oDAAK;AACjB;AACA;AACA,IAAI;AACJ;AACA,2BAA2B,qDAAM;AACjC;AACA,MAAM,iBAAiB,qDAAM,aAAa,sDAAO,GAAG,qDAAM;AAC1D;AACA,eAAe,sDAAO;AACtB,MAAM,iBAAiB,sDAAO,GAAG,qDAAM,eAAe,sDAAO,GAAG,qDAAM;AACtE;AACA,sCAAsC,kDAAG,WAAW,kDAAG;AACvD,MAAM;AACN;AACA,eAAe,sDAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,kDAAG;AACjB,YAAY,qDAAM;AAClB,IAAI,iBAAiB,kDAAG;AACxB,YAAY,qDAAM;AAClB;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;AC9WF;AACA;AACA;;AAE6D;AACf;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,kDAAG,IAAI;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,cAAc,8DAAU;;AAExB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,WAAW,kDAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA,2BAA2B,sDAAO,GAAG,sDAAO;AAC5C,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,eAAe;AACf;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,oDAAK;;AAEnB;AACA,6BAA6B,kDAAG;AAChC;AACA;AACA;AACA;;AAEA,WAAW,8DAAU;AACrB;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;AChK4C;AACA;AACN;AACxC;AACwC;AACQ;AACG;;AAEf;;;AAG7B;AACP;AACA;;;AAGA;AACA,cAAc,2DAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAU;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,GAAG;AAChC;AACA;AACA,0BAA0B,oDAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,2DAAO;AACxB;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,yDAAK;AACjB;AACA;AACA,YAAY,yDAAK;AACjB;AACA,UAAU,8DAAU;AACpB,UAAU,8DAAU;AACpB;AACA;AACA,UAAU,+DAAW;AACrB;AACA,YAAY,sDAAO;AACnB;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA,kBAAkB,oDAAK,IAAI,sDAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;AClHF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrFiD;;AAEjB;AACE;AACA;AACA;AACU;;AAEvC;AACP;AACA,0BAA0B,sDAAO;AACjC;;AAEO;AACP;AACA;AACA;AACA,0EAA0E,oDAAK;AAC/E,2BAA2B,wDAAI;AAC/B;AACA;AACA;AACA,kCAAkC,oDAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,oDAAK;AAC/E,kCAAkC,yDAAK,yDAAyD,yDAAK;AACrG;AACA,eAAe,yDAAK;AACpB,2EAA2E,sDAAO;AAClF;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,8DAAU;;AAEvB,wDAAwD,oDAAK,iCAAiC,oDAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,sDAAO;AAChE;AACA;AACA,kCAAkC,oDAAK;AACvC,WAAW,yDAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oDAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oDAAK;AACnB;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAK;AACtC;AACA,cAAc,8DAAU;AACxB;AACA;AACA,cAAc,8DAAU;AACxB;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAK;AACvC,gBAAgB,oDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yDAAK;AAC5B,uBAAuB,8DAAU;AACjC;AACA;AACA;AACA;AACA,gBAAgB,oDAAK;AACrB;AACA;AACA;AACA;AACA,cAAc,8DAAU;AACxB;AACA,iBAAiB,yDAAK,yBAAyB,sDAAO;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;AC7K0B;AACkB;;AAEvC;AACP,EAAE,yDAAgB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,QAAQ,8DAAU;AAClB,EAAE,4DAAmB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE,4DAAmB;AACrB,QAAQ,8DAAU;AAClB;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC/DF;AACA;;AAEwC;AACA;AACQ;AACF;;AAEK;AACjB;;AAE3B;AACP;AACA;AACA;AACA;;AAEA;AACA,cAAc,2DAAO;AACrB,eAAe,2DAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA,kBAAkB,8DAAU;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,oDAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAK;AACtC;AACA;AACA;AACA;AACA,aAAa,2DAAO;;AAEpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA;AACA,SAAS;AACT;AACA,UAAU,+DAAW;;AAErB,wBAAwB,sDAAO;AAC/B;AACA;AACA,wCAAwC,oDAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,YAAY,8DAAU;AACtB;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAO,GAAG,wDAAI;AAC1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;AC3KF;AACA;AACA;AACA;AACA;AACA;;AAE0D;AACtB;;AAEpC;AACA,WAAW,wBAAwB;AACnC,WAAW,kCAAkC;AAC7C,WAAW,kCAAkC;AAC7C,WAAW,mBAAmB;AAC9B,WAAW,oCAAoC;AAC/C;;AAEO;AACP;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,0BAA0B,kDAAG;AAC7B;AACA,GAAG;;AAEH,sCAAsC,sDAAO,KAAK,oDAAK;AACvD;AACA,IAAI,+BAA+B,oDAAK;AACxC;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;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;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,yDAAK;AAChB,qBAAqB,oDAAK;AAC1B;AACA;AACA,IAAI;AACJ;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;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;ACxK8C;AAClB;AACvB;AACiC;;;AAGjC;AACP,aAAa,+DAAW;AACxB;AACA;AACA;AACA;AACA,+CAA+C,kDAAG;AAClD;AACA;AACA;;AAEA,EAAE,0DAAiB;AACnB,iBAAiB,uDAAc;AAC/B,iBAAiB,uDAAc;AAC/B;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;AC3B4C;;AAEK;;AAEf;;AAEpC;AACA;AACO;AACP,sBAAsB;AACtB;AACA;;AAEO;;AAEP;AACA;;AAEA;AACA;AACA,aAAa,8DAAU;AACvB;;AAEA,uBAAuB,oDAAK;AAC5B;AACA;AACA;AACA,cAAc,yDAAK;AACnB,yBAAyB,oDAAK,+BAA+B,sDAAO,KAAK,oDAAK;AAC9E;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;;AAEA;AACA;AACO;AACP;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,qBAAqB,oDAAK;AAC1B;AACA;AACA;AACA,UAAU,8DAAU;AACpB;;AAEA;AACA;AACA;AACA;;AAEO;AACP,iEAAe;AACf;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;AChIiF;AACnC;AACR;AACd;AACa;AACC;;AAExC;AACA;AACA,iCAAiC,yDAAU,gCAAgC,yDAAU,gCAAgC,4DAAa;AAClI,gCAAgC,yDAAU,8BAA8B,yDAAU,8BAA8B,4DAAa;AAC7H;;AAEe;AACf;AACA;AACA,YAAY,2DAAO;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,wDAAW;AACb;AACA;AACA,gBAAgB,6CAAI;AACpB;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAW;AACvB;AACA;AACA;AACA;AACA,mBAAmB,kDAAG;AACtB,mBAAmB,kDAAG;AACtB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,4DAAe;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,kDAAG;AACtB,mBAAmB,kDAAG;AACtB;AACA;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,wDAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzG4C;AACE;AACN;AACM;AACF;AACE;AACF;AACJ;AACM;AACJ;AACA;AACF;AACE;AACF;AACA;AACE;AACA;AACA;AACA;AACA;AACA;AACE;AACF;AACE;AACJ;AACI;AACI;AACJ;AACF;AAC1C,6BAAe,oCAAS;AACxB,6BAA6B,8DAAK;AAClC,6BAA6B,+DAAM;AACnC,6BAA6B,4DAAG;AAChC,6BAA6B,+DAAM;AACnC,6BAA6B,8DAAK;AAClC,6BAA6B,+DAAM;AACnC,6BAA6B,8DAAK;AAClC,6BAA6B,4DAAG;AAChC,6BAA6B,+DAAM;AACnC,6BAA6B,6DAAI;AACjC,6BAA6B,8DAAI;AACjC,6BAA6B,6DAAG;AAChC,6BAA6B,8DAAI;AACjC,6BAA6B,6DAAG;AAChC,6BAA6B,6DAAG;AAChC,6BAA6B,8DAAI;AACjC,6BAA6B,8DAAI;AACjC,6BAA6B,8DAAI;AACjC,6BAA6B,8DAAI;AACjC,6BAA6B,8DAAI;AACjC,6BAA6B,8DAAI;AACjC,6BAA6B,+DAAK;AAClC,6BAA6B,8DAAI;AACjC,6BAA6B,+DAAK;AAClC,6BAA6B,6DAAG;AAChC,6BAA6B,+DAAK;AAClC,6BAA6B,iEAAO;AACpC,6BAA6B,+DAAK;AAClC,6BAA6B,8DAAI;AACjC;;;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,qDAAU;AAChC,cAAc,mBAAO,CAAC,8DAAa;AACnC,WAAW,mBAAO,CAAC,iDAAM;;AAEzB;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAwB;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,gCAAgC;AAChC;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA,KAAK;;AAEL;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA,aAAa,iBAAiB;AAC9B;AACA;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;;AAGA;;AAEA;;AAEA;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;;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;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb,SAAS;AACT,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;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,cAAc;AACd;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,cAAc;AACd;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,MAAM;AACN;AACA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACxwDA;AACA;AACA;AACA;AACA;AAC+B;;AAE/B;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;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,kCAAkC;AAClC,8BAA8B;AAC9B,gCAAgC;AAChC,8BAA8B;AAC9B,gCAAgC;;AAEhC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB,2BAA2B;;AAE3B;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,KAAK;AAChB,YAAY;AACZ;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA,WAAW,KAAK;AAChB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,KAAK;AAChB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,KAAK;AAChB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM,4DAA4D;AAClE;AACA,MAAM;AACN;AACA;;AAEA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,oDAAoD;AACpD,0DAA0D;;AAE1D;AACA,oBAAoB;AACpB;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA,uBAAuB,gCAAgC;;AAEvD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH,gCAAgC;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,eAAe,iDAAM;AACrB;AACA,KAAK;AACL,4BAA4B,8CAA8C;AAC1E;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,0DAA0D;AAC/E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4DAA4D;AAC5D;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,qBAAqB;AAC9C;AACA;AACA,aAAa,kBAAkB;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,0CAA0C;AACrD,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iEAAe,OAAO,EAAC;AACvB;;;;;;;;;;;AC16DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,eAAe;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,0BAA0B;AAC1B;AACA;AACA,kBAAkB,YAAY;AAC9B,iBAAiB,iBAAiB,SAAS;AAC3C;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B;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;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,YAAY;;AAEZ,MAAM;AACN;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,QAAQ;AACR;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0CAA0C;AAC1C;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;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,mBAAmB,0BAA0B;AAC7C,mBAAmB,0BAA0B;AAC7C,mBAAmB,0BAA0B;AAC7C,mBAAmB;AACnB,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,cAAc,eAAe,cAAc;AACrD;AACA,oDAAoD;AACpD;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,gBAAgB;AAChB,6BAA6B;AAC7B;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA,uBAAuB,wBAAwB;AAC/C,uBAAuB,wBAAwB;AAC/C,uBAAuB,wBAAwB;AAC/C,uBAAuB,2BAA2B;AAClD,kCAAkC;AAClC;AACA;AACA,cAAc;AACd;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;AC5qBD;AAC8B;AACE;;;;AAIhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;;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;AACA;AACA;AACA,6BAAe,oCAAS;AACxB,aAAa,mDAAM;AACnB;AACA;AACA;AACA;AACA;AACA,EAAE,+CAAK;AACP;AACA;AACA;;;;;;;;;;;;;;;;ACzMA,iEAAe,WAAW,EAAC;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChHA,4FAAiC;;;;;;;;;;;ACAjC,IAAI,qBAAM;AACV,EAAE,qBAAM,WAAW,mBAAO,CAAC,mDAAQ;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAO,CAAC,4DAAe;AAClC,GAAG;AACH;;AAEA,0GAAyC;;;;;;;;;;;;ACZzC;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,oEAAe;;;AAGtC;AACA;AACA;;AAEA;AACA;;AAEA,mFAAmF;;;AAGnF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;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","sources":["webpack://classiccottages/./node_modules/asap/browser-asap.js","webpack://classiccottages/./node_modules/asap/browser-raw.js","webpack://classiccottages/./Assets/Scripts/modules/Accordion.js","webpack://classiccottages/./Assets/Scripts/modules/ArrivalMap.js","webpack://classiccottages/./Assets/Scripts/modules/Availability.js","webpack://classiccottages/./Assets/Scripts/modules/Blog.js","webpack://classiccottages/./Assets/Scripts/modules/Breadcrumbs.js","webpack://classiccottages/./Assets/Scripts/modules/ButtonCounter.js","webpack://classiccottages/./Assets/Scripts/modules/CalendarRange.js","webpack://classiccottages/./Assets/Scripts/modules/CookieConsent.js","webpack://classiccottages/./Assets/Scripts/modules/DeferredImages.js","webpack://classiccottages/./Assets/Scripts/modules/ExploreNearby.js","webpack://classiccottages/./Assets/Scripts/modules/FeaturedProperties.js","webpack://classiccottages/./Assets/Scripts/modules/FindAddress.js","webpack://classiccottages/./Assets/Scripts/modules/FindCottage.js","webpack://classiccottages/./Assets/Scripts/modules/GeoSearch.js","webpack://classiccottages/./Assets/Scripts/modules/GuideReviewModal.js","webpack://classiccottages/./Assets/Scripts/modules/HeaderSecondaryNav.js","webpack://classiccottages/./Assets/Scripts/modules/Helpers.js","webpack://classiccottages/./Assets/Scripts/modules/IsBrowserIE10.js","webpack://classiccottages/./Assets/Scripts/modules/IsBrowserIE9.js","webpack://classiccottages/./Assets/Scripts/modules/IsNodeList.js","webpack://classiccottages/./Assets/Scripts/modules/IsTouchDevice.js","webpack://classiccottages/./Assets/Scripts/modules/Map.js","webpack://classiccottages/./Assets/Scripts/modules/MobileNav.js","webpack://classiccottages/./Assets/Scripts/modules/MobileResultsFilter.js","webpack://classiccottages/./Assets/Scripts/modules/Modal.js","webpack://classiccottages/./Assets/Scripts/modules/NRequired.js","webpack://classiccottages/./Assets/Scripts/modules/Newsletter.js","webpack://classiccottages/./Assets/Scripts/modules/OwnersContact.js","webpack://classiccottages/./Assets/Scripts/modules/OwnersLocation.js","webpack://classiccottages/./Assets/Scripts/modules/PaymentSchedule.js","webpack://classiccottages/./Assets/Scripts/modules/Questionnaire.js","webpack://classiccottages/./Assets/Scripts/modules/RangeSlider.js","webpack://classiccottages/./Assets/Scripts/modules/Results.js","webpack://classiccottages/./Assets/Scripts/modules/Reveal.js","webpack://classiccottages/./Assets/Scripts/modules/Reviews.ReadMore.js","webpack://classiccottages/./Assets/Scripts/modules/Reviews.js","webpack://classiccottages/./Assets/Scripts/modules/RoomConfig.js","webpack://classiccottages/./Assets/Scripts/modules/Shortlist.js","webpack://classiccottages/./Assets/Scripts/modules/ShortlistAPI.js","webpack://classiccottages/./Assets/Scripts/modules/Slider.js","webpack://classiccottages/./Assets/Scripts/modules/SliderResults.js","webpack://classiccottages/./Assets/Scripts/modules/SliderThumbnails.js","webpack://classiccottages/./Assets/Scripts/modules/SocialShare.js","webpack://classiccottages/./Assets/Scripts/modules/StarRating.js","webpack://classiccottages/./Assets/Scripts/modules/SuperSearch.js","webpack://classiccottages/./Assets/Scripts/modules/TawkChat.js","webpack://classiccottages/./Assets/Scripts/modules/Tooltips.js","webpack://classiccottages/./Assets/Scripts/modules/UserTabbing.js","webpack://classiccottages/./Assets/Scripts/modules/forms/AccesOrCreateAccount.js","webpack://classiccottages/./Assets/Scripts/modules/forms/FormValidation.js","webpack://classiccottages/./Assets/Scripts/modules/forms/PopDependantDDL.js","webpack://classiccottages/./Assets/Scripts/modules/maps/mapboxOS.js","webpack://classiccottages/./Assets/Scripts/modules/maps/proj4Mapbox.js","webpack://classiccottages/./Assets/Scripts/modules/myclassic/Booking.js","webpack://classiccottages/./Assets/Scripts/modules/myclassic/FerryBooking.js","webpack://classiccottages/./Assets/Scripts/modules/myclassic/MyAlerts.js","webpack://classiccottages/./Assets/Scripts/modules/myclassic/MyClassic.js","webpack://classiccottages/./Assets/Scripts/modules/myclassic/MyDetails.js","webpack://classiccottages/./Assets/Scripts/modules/myclassic/RouteDirections.js","webpack://classiccottages/./Assets/Scripts/modules/polyfills/ForEachPolyfill.js","webpack://classiccottages/./Assets/Scripts/modules/polyfills/MatchesSelectorPolyfill.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Dates.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Facets.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Header.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.LastMinute.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Location.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Map.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Pagination.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Party.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Sorting.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.Tracking.js","webpack://classiccottages/./Assets/Scripts/modules/results/Results.UI.js","webpack://classiccottages/./Assets/Scripts/modules/vendor/History.js","webpack://classiccottages/./node_modules/classlist-polyfill/src/index.js","webpack://classiccottages/./node_modules/clipboard/dist/clipboard.js","webpack://classiccottages/./node_modules/core-js/internals/a-callable.js","webpack://classiccottages/./node_modules/core-js/internals/a-constructor.js","webpack://classiccottages/./node_modules/core-js/internals/a-possible-prototype.js","webpack://classiccottages/./node_modules/core-js/internals/add-to-unscopables.js","webpack://classiccottages/./node_modules/core-js/internals/advance-string-index.js","webpack://classiccottages/./node_modules/core-js/internals/an-instance.js","webpack://classiccottages/./node_modules/core-js/internals/an-object.js","webpack://classiccottages/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://classiccottages/./node_modules/core-js/internals/array-for-each.js","webpack://classiccottages/./node_modules/core-js/internals/array-from.js","webpack://classiccottages/./node_modules/core-js/internals/array-includes.js","webpack://classiccottages/./node_modules/core-js/internals/array-iteration.js","webpack://classiccottages/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://classiccottages/./node_modules/core-js/internals/array-method-is-strict.js","webpack://classiccottages/./node_modules/core-js/internals/array-set-length.js","webpack://classiccottages/./node_modules/core-js/internals/array-slice-simple.js","webpack://classiccottages/./node_modules/core-js/internals/array-slice.js","webpack://classiccottages/./node_modules/core-js/internals/array-sort.js","webpack://classiccottages/./node_modules/core-js/internals/array-species-constructor.js","webpack://classiccottages/./node_modules/core-js/internals/array-species-create.js","webpack://classiccottages/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://classiccottages/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://classiccottages/./node_modules/core-js/internals/classof-raw.js","webpack://classiccottages/./node_modules/core-js/internals/classof.js","webpack://classiccottages/./node_modules/core-js/internals/collection-strong.js","webpack://classiccottages/./node_modules/core-js/internals/collection.js","webpack://classiccottages/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://classiccottages/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://classiccottages/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://classiccottages/./node_modules/core-js/internals/create-iter-result-object.js","webpack://classiccottages/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://classiccottages/./node_modules/core-js/internals/create-property-descriptor.js","webpack://classiccottages/./node_modules/core-js/internals/create-property.js","webpack://classiccottages/./node_modules/core-js/internals/date-to-primitive.js","webpack://classiccottages/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://classiccottages/./node_modules/core-js/internals/define-built-in.js","webpack://classiccottages/./node_modules/core-js/internals/define-built-ins.js","webpack://classiccottages/./node_modules/core-js/internals/define-global-property.js","webpack://classiccottages/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://classiccottages/./node_modules/core-js/internals/descriptors.js","webpack://classiccottages/./node_modules/core-js/internals/document-all.js","webpack://classiccottages/./node_modules/core-js/internals/document-create-element.js","webpack://classiccottages/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://classiccottages/./node_modules/core-js/internals/dom-exception-constants.js","webpack://classiccottages/./node_modules/core-js/internals/dom-iterables.js","webpack://classiccottages/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://classiccottages/./node_modules/core-js/internals/engine-ff-version.js","webpack://classiccottages/./node_modules/core-js/internals/engine-is-browser.js","webpack://classiccottages/./node_modules/core-js/internals/engine-is-bun.js","webpack://classiccottages/./node_modules/core-js/internals/engine-is-deno.js","webpack://classiccottages/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://classiccottages/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://classiccottages/./node_modules/core-js/internals/engine-is-ios.js","webpack://classiccottages/./node_modules/core-js/internals/engine-is-node.js","webpack://classiccottages/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://classiccottages/./node_modules/core-js/internals/engine-user-agent.js","webpack://classiccottages/./node_modules/core-js/internals/engine-v8-version.js","webpack://classiccottages/./node_modules/core-js/internals/engine-webkit-version.js","webpack://classiccottages/./node_modules/core-js/internals/enum-bug-keys.js","webpack://classiccottages/./node_modules/core-js/internals/error-stack-clear.js","webpack://classiccottages/./node_modules/core-js/internals/error-stack-install.js","webpack://classiccottages/./node_modules/core-js/internals/error-stack-installable.js","webpack://classiccottages/./node_modules/core-js/internals/error-to-string.js","webpack://classiccottages/./node_modules/core-js/internals/export.js","webpack://classiccottages/./node_modules/core-js/internals/fails.js","webpack://classiccottages/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://classiccottages/./node_modules/core-js/internals/freezing.js","webpack://classiccottages/./node_modules/core-js/internals/function-apply.js","webpack://classiccottages/./node_modules/core-js/internals/function-bind-context.js","webpack://classiccottages/./node_modules/core-js/internals/function-bind-native.js","webpack://classiccottages/./node_modules/core-js/internals/function-call.js","webpack://classiccottages/./node_modules/core-js/internals/function-name.js","webpack://classiccottages/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://classiccottages/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://classiccottages/./node_modules/core-js/internals/function-uncurry-this.js","webpack://classiccottages/./node_modules/core-js/internals/get-built-in.js","webpack://classiccottages/./node_modules/core-js/internals/get-iterator-method.js","webpack://classiccottages/./node_modules/core-js/internals/get-iterator.js","webpack://classiccottages/./node_modules/core-js/internals/get-json-replacer-function.js","webpack://classiccottages/./node_modules/core-js/internals/get-method.js","webpack://classiccottages/./node_modules/core-js/internals/get-substitution.js","webpack://classiccottages/./node_modules/core-js/internals/global.js","webpack://classiccottages/./node_modules/core-js/internals/has-own-property.js","webpack://classiccottages/./node_modules/core-js/internals/hidden-keys.js","webpack://classiccottages/./node_modules/core-js/internals/host-report-errors.js","webpack://classiccottages/./node_modules/core-js/internals/html.js","webpack://classiccottages/./node_modules/core-js/internals/ie8-dom-define.js","webpack://classiccottages/./node_modules/core-js/internals/indexed-object.js","webpack://classiccottages/./node_modules/core-js/internals/inherit-if-required.js","webpack://classiccottages/./node_modules/core-js/internals/inspect-source.js","webpack://classiccottages/./node_modules/core-js/internals/install-error-cause.js","webpack://classiccottages/./node_modules/core-js/internals/internal-metadata.js","webpack://classiccottages/./node_modules/core-js/internals/internal-state.js","webpack://classiccottages/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://classiccottages/./node_modules/core-js/internals/is-array.js","webpack://classiccottages/./node_modules/core-js/internals/is-callable.js","webpack://classiccottages/./node_modules/core-js/internals/is-constructor.js","webpack://classiccottages/./node_modules/core-js/internals/is-forced.js","webpack://classiccottages/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://classiccottages/./node_modules/core-js/internals/is-object.js","webpack://classiccottages/./node_modules/core-js/internals/is-pure.js","webpack://classiccottages/./node_modules/core-js/internals/is-regexp.js","webpack://classiccottages/./node_modules/core-js/internals/is-symbol.js","webpack://classiccottages/./node_modules/core-js/internals/iterate.js","webpack://classiccottages/./node_modules/core-js/internals/iterator-close.js","webpack://classiccottages/./node_modules/core-js/internals/iterator-create-constructor.js","webpack://classiccottages/./node_modules/core-js/internals/iterator-define.js","webpack://classiccottages/./node_modules/core-js/internals/iterators-core.js","webpack://classiccottages/./node_modules/core-js/internals/iterators.js","webpack://classiccottages/./node_modules/core-js/internals/length-of-array-like.js","webpack://classiccottages/./node_modules/core-js/internals/make-built-in.js","webpack://classiccottages/./node_modules/core-js/internals/math-trunc.js","webpack://classiccottages/./node_modules/core-js/internals/microtask.js","webpack://classiccottages/./node_modules/core-js/internals/new-promise-capability.js","webpack://classiccottages/./node_modules/core-js/internals/normalize-string-argument.js","webpack://classiccottages/./node_modules/core-js/internals/not-a-regexp.js","webpack://classiccottages/./node_modules/core-js/internals/object-assign.js","webpack://classiccottages/./node_modules/core-js/internals/object-create.js","webpack://classiccottages/./node_modules/core-js/internals/object-define-properties.js","webpack://classiccottages/./node_modules/core-js/internals/object-define-property.js","webpack://classiccottages/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://classiccottages/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://classiccottages/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://classiccottages/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://classiccottages/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://classiccottages/./node_modules/core-js/internals/object-is-extensible.js","webpack://classiccottages/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://classiccottages/./node_modules/core-js/internals/object-keys-internal.js","webpack://classiccottages/./node_modules/core-js/internals/object-keys.js","webpack://classiccottages/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://classiccottages/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://classiccottages/./node_modules/core-js/internals/object-to-string.js","webpack://classiccottages/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://classiccottages/./node_modules/core-js/internals/own-keys.js","webpack://classiccottages/./node_modules/core-js/internals/path.js","webpack://classiccottages/./node_modules/core-js/internals/perform.js","webpack://classiccottages/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://classiccottages/./node_modules/core-js/internals/promise-native-constructor.js","webpack://classiccottages/./node_modules/core-js/internals/promise-resolve.js","webpack://classiccottages/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://classiccottages/./node_modules/core-js/internals/proxy-accessor.js","webpack://classiccottages/./node_modules/core-js/internals/queue.js","webpack://classiccottages/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://classiccottages/./node_modules/core-js/internals/regexp-exec.js","webpack://classiccottages/./node_modules/core-js/internals/regexp-flags.js","webpack://classiccottages/./node_modules/core-js/internals/regexp-get-flags.js","webpack://classiccottages/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://classiccottages/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://classiccottages/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://classiccottages/./node_modules/core-js/internals/require-object-coercible.js","webpack://classiccottages/./node_modules/core-js/internals/same-value.js","webpack://classiccottages/./node_modules/core-js/internals/schedulers-fix.js","webpack://classiccottages/./node_modules/core-js/internals/set-species.js","webpack://classiccottages/./node_modules/core-js/internals/set-to-string-tag.js","webpack://classiccottages/./node_modules/core-js/internals/shared-key.js","webpack://classiccottages/./node_modules/core-js/internals/shared-store.js","webpack://classiccottages/./node_modules/core-js/internals/shared.js","webpack://classiccottages/./node_modules/core-js/internals/species-constructor.js","webpack://classiccottages/./node_modules/core-js/internals/string-multibyte.js","webpack://classiccottages/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://classiccottages/./node_modules/core-js/internals/string-repeat.js","webpack://classiccottages/./node_modules/core-js/internals/string-trim-forced.js","webpack://classiccottages/./node_modules/core-js/internals/string-trim.js","webpack://classiccottages/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://classiccottages/./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://classiccottages/./node_modules/core-js/internals/symbol-registry-detection.js","webpack://classiccottages/./node_modules/core-js/internals/task.js","webpack://classiccottages/./node_modules/core-js/internals/this-number-value.js","webpack://classiccottages/./node_modules/core-js/internals/to-absolute-index.js","webpack://classiccottages/./node_modules/core-js/internals/to-indexed-object.js","webpack://classiccottages/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://classiccottages/./node_modules/core-js/internals/to-length.js","webpack://classiccottages/./node_modules/core-js/internals/to-object.js","webpack://classiccottages/./node_modules/core-js/internals/to-primitive.js","webpack://classiccottages/./node_modules/core-js/internals/to-property-key.js","webpack://classiccottages/./node_modules/core-js/internals/to-string-tag-support.js","webpack://classiccottages/./node_modules/core-js/internals/to-string.js","webpack://classiccottages/./node_modules/core-js/internals/try-node-require.js","webpack://classiccottages/./node_modules/core-js/internals/try-to-string.js","webpack://classiccottages/./node_modules/core-js/internals/uid.js","webpack://classiccottages/./node_modules/core-js/internals/url-constructor-detection.js","webpack://classiccottages/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://classiccottages/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://classiccottages/./node_modules/core-js/internals/validate-arguments-length.js","webpack://classiccottages/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://classiccottages/./node_modules/core-js/internals/well-known-symbol-define.js","webpack://classiccottages/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://classiccottages/./node_modules/core-js/internals/well-known-symbol.js","webpack://classiccottages/./node_modules/core-js/internals/whitespaces.js","webpack://classiccottages/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.concat.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.filter.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.find-index.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.find.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.from.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.includes.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.iterator.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.join.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.map.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.push.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.reverse.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.slice.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.sort.js","webpack://classiccottages/./node_modules/core-js/modules/es.array.unshift.js","webpack://classiccottages/./node_modules/core-js/modules/es.date.to-json.js","webpack://classiccottages/./node_modules/core-js/modules/es.date.to-primitive.js","webpack://classiccottages/./node_modules/core-js/modules/es.error.cause.js","webpack://classiccottages/./node_modules/core-js/modules/es.function.name.js","webpack://classiccottages/./node_modules/core-js/modules/es.json.stringify.js","webpack://classiccottages/./node_modules/core-js/modules/es.json.to-string-tag.js","webpack://classiccottages/./node_modules/core-js/modules/es.math.to-string-tag.js","webpack://classiccottages/./node_modules/core-js/modules/es.number.constructor.js","webpack://classiccottages/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.assign.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.keys.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.proto.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack://classiccottages/./node_modules/core-js/modules/es.object.to-string.js","webpack://classiccottages/./node_modules/core-js/modules/es.promise.all.js","webpack://classiccottages/./node_modules/core-js/modules/es.promise.catch.js","webpack://classiccottages/./node_modules/core-js/modules/es.promise.constructor.js","webpack://classiccottages/./node_modules/core-js/modules/es.promise.js","webpack://classiccottages/./node_modules/core-js/modules/es.promise.race.js","webpack://classiccottages/./node_modules/core-js/modules/es.promise.reject.js","webpack://classiccottages/./node_modules/core-js/modules/es.promise.resolve.js","webpack://classiccottages/./node_modules/core-js/modules/es.regexp.exec.js","webpack://classiccottages/./node_modules/core-js/modules/es.regexp.test.js","webpack://classiccottages/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://classiccottages/./node_modules/core-js/modules/es.set.constructor.js","webpack://classiccottages/./node_modules/core-js/modules/es.set.js","webpack://classiccottages/./node_modules/core-js/modules/es.string.includes.js","webpack://classiccottages/./node_modules/core-js/modules/es.string.iterator.js","webpack://classiccottages/./node_modules/core-js/modules/es.string.match.js","webpack://classiccottages/./node_modules/core-js/modules/es.string.replace.js","webpack://classiccottages/./node_modules/core-js/modules/es.string.search.js","webpack://classiccottages/./node_modules/core-js/modules/es.string.trim.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.description.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.for.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://classiccottages/./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://classiccottages/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://classiccottages/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://classiccottages/./node_modules/core-js/modules/web.dom-exception.constructor.js","webpack://classiccottages/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://classiccottages/./node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack://classiccottages/./node_modules/core-js/modules/web.set-interval.js","webpack://classiccottages/./node_modules/core-js/modules/web.set-timeout.js","webpack://classiccottages/./node_modules/core-js/modules/web.timers.js","webpack://classiccottages/./node_modules/core-js/modules/web.url-search-params.constructor.js","webpack://classiccottages/./node_modules/core-js/modules/web.url-search-params.js","webpack://classiccottages/./node_modules/core-js/modules/web.url.constructor.js","webpack://classiccottages/./node_modules/core-js/modules/web.url.js","webpack://classiccottages/./node_modules/core-js/modules/web.url.to-json.js","webpack://classiccottages/./node_modules/custom-event-polyfill/polyfill.js","webpack://classiccottages/./node_modules/hammerjs/hammer.js","webpack://classiccottages/./node_modules/he/he.js","webpack://classiccottages/./node_modules/image-map-resizer/js/imageMapResizer.min.js","webpack://classiccottages/./node_modules/mgrs/mgrs.js","webpack://classiccottages/./node_modules/moment/locale/af.js","webpack://classiccottages/./node_modules/moment/locale/ar-dz.js","webpack://classiccottages/./node_modules/moment/locale/ar-kw.js","webpack://classiccottages/./node_modules/moment/locale/ar-ly.js","webpack://classiccottages/./node_modules/moment/locale/ar-ma.js","webpack://classiccottages/./node_modules/moment/locale/ar-sa.js","webpack://classiccottages/./node_modules/moment/locale/ar-tn.js","webpack://classiccottages/./node_modules/moment/locale/ar.js","webpack://classiccottages/./node_modules/moment/locale/az.js","webpack://classiccottages/./node_modules/moment/locale/be.js","webpack://classiccottages/./node_modules/moment/locale/bg.js","webpack://classiccottages/./node_modules/moment/locale/bm.js","webpack://classiccottages/./node_modules/moment/locale/bn-bd.js","webpack://classiccottages/./node_modules/moment/locale/bn.js","webpack://classiccottages/./node_modules/moment/locale/bo.js","webpack://classiccottages/./node_modules/moment/locale/br.js","webpack://classiccottages/./node_modules/moment/locale/bs.js","webpack://classiccottages/./node_modules/moment/locale/ca.js","webpack://classiccottages/./node_modules/moment/locale/cs.js","webpack://classiccottages/./node_modules/moment/locale/cv.js","webpack://classiccottages/./node_modules/moment/locale/cy.js","webpack://classiccottages/./node_modules/moment/locale/da.js","webpack://classiccottages/./node_modules/moment/locale/de-at.js","webpack://classiccottages/./node_modules/moment/locale/de-ch.js","webpack://classiccottages/./node_modules/moment/locale/de.js","webpack://classiccottages/./node_modules/moment/locale/dv.js","webpack://classiccottages/./node_modules/moment/locale/el.js","webpack://classiccottages/./node_modules/moment/locale/en-au.js","webpack://classiccottages/./node_modules/moment/locale/en-ca.js","webpack://classiccottages/./node_modules/moment/locale/en-gb.js","webpack://classiccottages/./node_modules/moment/locale/en-ie.js","webpack://classiccottages/./node_modules/moment/locale/en-il.js","webpack://classiccottages/./node_modules/moment/locale/en-in.js","webpack://classiccottages/./node_modules/moment/locale/en-nz.js","webpack://classiccottages/./node_modules/moment/locale/en-sg.js","webpack://classiccottages/./node_modules/moment/locale/eo.js","webpack://classiccottages/./node_modules/moment/locale/es-do.js","webpack://classiccottages/./node_modules/moment/locale/es-mx.js","webpack://classiccottages/./node_modules/moment/locale/es-us.js","webpack://classiccottages/./node_modules/moment/locale/es.js","webpack://classiccottages/./node_modules/moment/locale/et.js","webpack://classiccottages/./node_modules/moment/locale/eu.js","webpack://classiccottages/./node_modules/moment/locale/fa.js","webpack://classiccottages/./node_modules/moment/locale/fi.js","webpack://classiccottages/./node_modules/moment/locale/fil.js","webpack://classiccottages/./node_modules/moment/locale/fo.js","webpack://classiccottages/./node_modules/moment/locale/fr-ca.js","webpack://classiccottages/./node_modules/moment/locale/fr-ch.js","webpack://classiccottages/./node_modules/moment/locale/fr.js","webpack://classiccottages/./node_modules/moment/locale/fy.js","webpack://classiccottages/./node_modules/moment/locale/ga.js","webpack://classiccottages/./node_modules/moment/locale/gd.js","webpack://classiccottages/./node_modules/moment/locale/gl.js","webpack://classiccottages/./node_modules/moment/locale/gom-deva.js","webpack://classiccottages/./node_modules/moment/locale/gom-latn.js","webpack://classiccottages/./node_modules/moment/locale/gu.js","webpack://classiccottages/./node_modules/moment/locale/he.js","webpack://classiccottages/./node_modules/moment/locale/hi.js","webpack://classiccottages/./node_modules/moment/locale/hr.js","webpack://classiccottages/./node_modules/moment/locale/hu.js","webpack://classiccottages/./node_modules/moment/locale/hy-am.js","webpack://classiccottages/./node_modules/moment/locale/id.js","webpack://classiccottages/./node_modules/moment/locale/is.js","webpack://classiccottages/./node_modules/moment/locale/it-ch.js","webpack://classiccottages/./node_modules/moment/locale/it.js","webpack://classiccottages/./node_modules/moment/locale/ja.js","webpack://classiccottages/./node_modules/moment/locale/jv.js","webpack://classiccottages/./node_modules/moment/locale/ka.js","webpack://classiccottages/./node_modules/moment/locale/kk.js","webpack://classiccottages/./node_modules/moment/locale/km.js","webpack://classiccottages/./node_modules/moment/locale/kn.js","webpack://classiccottages/./node_modules/moment/locale/ko.js","webpack://classiccottages/./node_modules/moment/locale/ku.js","webpack://classiccottages/./node_modules/moment/locale/ky.js","webpack://classiccottages/./node_modules/moment/locale/lb.js","webpack://classiccottages/./node_modules/moment/locale/lo.js","webpack://classiccottages/./node_modules/moment/locale/lt.js","webpack://classiccottages/./node_modules/moment/locale/lv.js","webpack://classiccottages/./node_modules/moment/locale/me.js","webpack://classiccottages/./node_modules/moment/locale/mi.js","webpack://classiccottages/./node_modules/moment/locale/mk.js","webpack://classiccottages/./node_modules/moment/locale/ml.js","webpack://classiccottages/./node_modules/moment/locale/mn.js","webpack://classiccottages/./node_modules/moment/locale/mr.js","webpack://classiccottages/./node_modules/moment/locale/ms-my.js","webpack://classiccottages/./node_modules/moment/locale/ms.js","webpack://classiccottages/./node_modules/moment/locale/mt.js","webpack://classiccottages/./node_modules/moment/locale/my.js","webpack://classiccottages/./node_modules/moment/locale/nb.js","webpack://classiccottages/./node_modules/moment/locale/ne.js","webpack://classiccottages/./node_modules/moment/locale/nl-be.js","webpack://classiccottages/./node_modules/moment/locale/nl.js","webpack://classiccottages/./node_modules/moment/locale/nn.js","webpack://classiccottages/./node_modules/moment/locale/oc-lnc.js","webpack://classiccottages/./node_modules/moment/locale/pa-in.js","webpack://classiccottages/./node_modules/moment/locale/pl.js","webpack://classiccottages/./node_modules/moment/locale/pt-br.js","webpack://classiccottages/./node_modules/moment/locale/pt.js","webpack://classiccottages/./node_modules/moment/locale/ro.js","webpack://classiccottages/./node_modules/moment/locale/ru.js","webpack://classiccottages/./node_modules/moment/locale/sd.js","webpack://classiccottages/./node_modules/moment/locale/se.js","webpack://classiccottages/./node_modules/moment/locale/si.js","webpack://classiccottages/./node_modules/moment/locale/sk.js","webpack://classiccottages/./node_modules/moment/locale/sl.js","webpack://classiccottages/./node_modules/moment/locale/sq.js","webpack://classiccottages/./node_modules/moment/locale/sr-cyrl.js","webpack://classiccottages/./node_modules/moment/locale/sr.js","webpack://classiccottages/./node_modules/moment/locale/ss.js","webpack://classiccottages/./node_modules/moment/locale/sv.js","webpack://classiccottages/./node_modules/moment/locale/sw.js","webpack://classiccottages/./node_modules/moment/locale/ta.js","webpack://classiccottages/./node_modules/moment/locale/te.js","webpack://classiccottages/./node_modules/moment/locale/tet.js","webpack://classiccottages/./node_modules/moment/locale/tg.js","webpack://classiccottages/./node_modules/moment/locale/th.js","webpack://classiccottages/./node_modules/moment/locale/tk.js","webpack://classiccottages/./node_modules/moment/locale/tl-ph.js","webpack://classiccottages/./node_modules/moment/locale/tlh.js","webpack://classiccottages/./node_modules/moment/locale/tr.js","webpack://classiccottages/./node_modules/moment/locale/tzl.js","webpack://classiccottages/./node_modules/moment/locale/tzm-latn.js","webpack://classiccottages/./node_modules/moment/locale/tzm.js","webpack://classiccottages/./node_modules/moment/locale/ug-cn.js","webpack://classiccottages/./node_modules/moment/locale/uk.js","webpack://classiccottages/./node_modules/moment/locale/ur.js","webpack://classiccottages/./node_modules/moment/locale/uz-latn.js","webpack://classiccottages/./node_modules/moment/locale/uz.js","webpack://classiccottages/./node_modules/moment/locale/vi.js","webpack://classiccottages/./node_modules/moment/locale/x-pseudo.js","webpack://classiccottages/./node_modules/moment/locale/yo.js","webpack://classiccottages/./node_modules/moment/locale/zh-cn.js","webpack://classiccottages/./node_modules/moment/locale/zh-hk.js","webpack://classiccottages/./node_modules/moment/locale/zh-mo.js","webpack://classiccottages/./node_modules/moment/locale/zh-tw.js","webpack://classiccottages/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://classiccottages/./node_modules/moment/moment.js","webpack://classiccottages/./node_modules/object-assign/index.js","webpack://classiccottages/./node_modules/parse-headers/parse-headers.js","webpack://classiccottages/./node_modules/pikaday/pikaday.js","webpack://classiccottages/./node_modules/pop-iterate/array-iterator.js","webpack://classiccottages/./node_modules/pop-iterate/iteration.js","webpack://classiccottages/./node_modules/pop-iterate/object-iterator.js","webpack://classiccottages/./node_modules/pop-iterate/pop-iterate.js","webpack://classiccottages/./node_modules/popper.js/dist/esm/popper.js","webpack://classiccottages/./node_modules/proj4/lib/Point.js","webpack://classiccottages/./node_modules/proj4/lib/Proj.js","webpack://classiccottages/./node_modules/proj4/lib/adjust_axis.js","webpack://classiccottages/./node_modules/proj4/lib/checkSanity.js","webpack://classiccottages/./node_modules/proj4/lib/common/adjust_lat.js","webpack://classiccottages/./node_modules/proj4/lib/common/adjust_lon.js","webpack://classiccottages/./node_modules/proj4/lib/common/adjust_zone.js","webpack://classiccottages/./node_modules/proj4/lib/common/asinhy.js","webpack://classiccottages/./node_modules/proj4/lib/common/asinz.js","webpack://classiccottages/./node_modules/proj4/lib/common/clens.js","webpack://classiccottages/./node_modules/proj4/lib/common/clens_cmplx.js","webpack://classiccottages/./node_modules/proj4/lib/common/cosh.js","webpack://classiccottages/./node_modules/proj4/lib/common/e0fn.js","webpack://classiccottages/./node_modules/proj4/lib/common/e1fn.js","webpack://classiccottages/./node_modules/proj4/lib/common/e2fn.js","webpack://classiccottages/./node_modules/proj4/lib/common/e3fn.js","webpack://classiccottages/./node_modules/proj4/lib/common/gN.js","webpack://classiccottages/./node_modules/proj4/lib/common/gatg.js","webpack://classiccottages/./node_modules/proj4/lib/common/hypot.js","webpack://classiccottages/./node_modules/proj4/lib/common/imlfn.js","webpack://classiccottages/./node_modules/proj4/lib/common/iqsfnz.js","webpack://classiccottages/./node_modules/proj4/lib/common/log1py.js","webpack://classiccottages/./node_modules/proj4/lib/common/mlfn.js","webpack://classiccottages/./node_modules/proj4/lib/common/msfnz.js","webpack://classiccottages/./node_modules/proj4/lib/common/phi2z.js","webpack://classiccottages/./node_modules/proj4/lib/common/pj_enfn.js","webpack://classiccottages/./node_modules/proj4/lib/common/pj_inv_mlfn.js","webpack://classiccottages/./node_modules/proj4/lib/common/pj_mlfn.js","webpack://classiccottages/./node_modules/proj4/lib/common/qsfnz.js","webpack://classiccottages/./node_modules/proj4/lib/common/sign.js","webpack://classiccottages/./node_modules/proj4/lib/common/sinh.js","webpack://classiccottages/./node_modules/proj4/lib/common/srat.js","webpack://classiccottages/./node_modules/proj4/lib/common/toPoint.js","webpack://classiccottages/./node_modules/proj4/lib/common/tsfnz.js","webpack://classiccottages/./node_modules/proj4/lib/constants/Datum.js","webpack://classiccottages/./node_modules/proj4/lib/constants/Ellipsoid.js","webpack://classiccottages/./node_modules/proj4/lib/constants/PrimeMeridian.js","webpack://classiccottages/./node_modules/proj4/lib/constants/units.js","webpack://classiccottages/./node_modules/proj4/lib/constants/values.js","webpack://classiccottages/./node_modules/proj4/lib/core.js","webpack://classiccottages/./node_modules/proj4/lib/datum.js","webpack://classiccottages/./node_modules/proj4/lib/datumUtils.js","webpack://classiccottages/./node_modules/proj4/lib/datum_transform.js","webpack://classiccottages/./node_modules/proj4/lib/defs.js","webpack://classiccottages/./node_modules/proj4/lib/deriveConstants.js","webpack://classiccottages/./node_modules/proj4/lib/extend.js","webpack://classiccottages/./node_modules/proj4/lib/global.js","webpack://classiccottages/./node_modules/proj4/lib/index.js","webpack://classiccottages/./node_modules/proj4/lib/match.js","webpack://classiccottages/./node_modules/proj4/lib/nadgrid.js","webpack://classiccottages/./node_modules/proj4/lib/parseCode.js","webpack://classiccottages/./node_modules/proj4/lib/projString.js","webpack://classiccottages/./node_modules/proj4/lib/projections.js","webpack://classiccottages/./node_modules/proj4/lib/projections/aea.js","webpack://classiccottages/./node_modules/proj4/lib/projections/aeqd.js","webpack://classiccottages/./node_modules/proj4/lib/projections/cass.js","webpack://classiccottages/./node_modules/proj4/lib/projections/cea.js","webpack://classiccottages/./node_modules/proj4/lib/projections/eqc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/eqdc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/etmerc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/gauss.js","webpack://classiccottages/./node_modules/proj4/lib/projections/geocent.js","webpack://classiccottages/./node_modules/proj4/lib/projections/geos.js","webpack://classiccottages/./node_modules/proj4/lib/projections/gnom.js","webpack://classiccottages/./node_modules/proj4/lib/projections/krovak.js","webpack://classiccottages/./node_modules/proj4/lib/projections/laea.js","webpack://classiccottages/./node_modules/proj4/lib/projections/lcc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/longlat.js","webpack://classiccottages/./node_modules/proj4/lib/projections/merc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/mill.js","webpack://classiccottages/./node_modules/proj4/lib/projections/moll.js","webpack://classiccottages/./node_modules/proj4/lib/projections/nzmg.js","webpack://classiccottages/./node_modules/proj4/lib/projections/omerc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/ortho.js","webpack://classiccottages/./node_modules/proj4/lib/projections/poly.js","webpack://classiccottages/./node_modules/proj4/lib/projections/qsc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/robin.js","webpack://classiccottages/./node_modules/proj4/lib/projections/sinu.js","webpack://classiccottages/./node_modules/proj4/lib/projections/somerc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/stere.js","webpack://classiccottages/./node_modules/proj4/lib/projections/sterea.js","webpack://classiccottages/./node_modules/proj4/lib/projections/tmerc.js","webpack://classiccottages/./node_modules/proj4/lib/projections/tpers.js","webpack://classiccottages/./node_modules/proj4/lib/projections/utm.js","webpack://classiccottages/./node_modules/proj4/lib/projections/vandg.js","webpack://classiccottages/./node_modules/proj4/lib/transform.js","webpack://classiccottages/./node_modules/proj4/projs.js","webpack://classiccottages/./node_modules/q/q.js","webpack://classiccottages/./node_modules/tippy.js/dist/esm/tippy.standalone.js","webpack://classiccottages/./node_modules/weak-map/weak-map.js","webpack://classiccottages/./node_modules/wkt-parser/index.js","webpack://classiccottages/./node_modules/wkt-parser/parser.js","webpack://classiccottages/./node_modules/wkt-parser/process.js","webpack://classiccottages/./node_modules/xhr-promise/index.js","webpack://classiccottages/./node_modules/xhr-promise/lib/index.js","webpack://classiccottages/./node_modules/xhr-promise/lib/xhr-promise.js","webpack://classiccottages/./node_modules/zousan/zousan-min.js","webpack://classiccottages/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://classiccottages/webpack/bootstrap","webpack://classiccottages/webpack/runtime/compat get default export","webpack://classiccottages/webpack/runtime/define property getters","webpack://classiccottages/webpack/runtime/global","webpack://classiccottages/webpack/runtime/hasOwnProperty shorthand","webpack://classiccottages/webpack/runtime/make namespace object","webpack://classiccottages/webpack/runtime/node module decorator","webpack://classiccottages/./Assets/Scripts/main.js"],"sourcesContent":["\"use strict\";\n\n// rawAsap provides everything we need except exception management.\nvar rawAsap = require(\"./raw\");\n// RawTasks are recycled to reduce GC churn.\nvar freeTasks = [];\n// We queue errors to ensure they are thrown in right order (FIFO).\n// Array-as-queue is good enough here, since we are just dealing with exceptions.\nvar pendingErrors = [];\nvar requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);\n\nfunction throwFirstError() {\n if (pendingErrors.length) {\n throw pendingErrors.shift();\n }\n}\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nmodule.exports = asap;\nfunction asap(task) {\n var rawTask;\n if (freeTasks.length) {\n rawTask = freeTasks.pop();\n } else {\n rawTask = new RawTask();\n }\n rawTask.task = task;\n rawAsap(rawTask);\n}\n\n// We wrap tasks with recyclable task objects. A task object implements\n// `call`, just like a function.\nfunction RawTask() {\n this.task = null;\n}\n\n// The sole purpose of wrapping the task is to catch the exception and recycle\n// the task object after its single use.\nRawTask.prototype.call = function () {\n try {\n this.task.call();\n } catch (error) {\n if (asap.onerror) {\n // This hook exists purely for testing purposes.\n // Its name will be periodically randomized to break any code that\n // depends on its existence.\n asap.onerror(error);\n } else {\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n pendingErrors.push(error);\n requestErrorThrow();\n }\n } finally {\n this.task = null;\n freeTasks[freeTasks.length] = this;\n }\n};\n","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","import Helpers from '../modules/Helpers'\r\nimport Reveal from '../modules/Reveal'\r\n\r\n// Listen to all accordion toggle buttons in order \r\n// to open and close corresponding accordion.\r\nnew Helpers(document.getElementsByTagName('body')).delegateEventListener('.accordion-toggle',(e) => {\r\n e.preventDefault()\r\n\r\n const currentAccordion = e.target\r\n\r\n // Check if element has `aria-controls` attribute\r\n // as it's used to determine the element to toggle.\r\n // If no attribute set, then toggle the next element.\r\n const hasAriaControlsAttr = new Helpers(currentAccordion).hasAriaControlsAttr()\r\n\r\n const ariaControlsValue = currentAccordion.getAttribute('aria-controls')\r\n const ariaControlsElement = document.getElementById(ariaControlsValue)\r\n const nextSiblingElement = currentAccordion.nextElementSibling\r\n\r\n // If element has `aria-controls` attribute, then toggle\r\n // the element its value refers to (by `id`), otherwise toggle\r\n // the next sibling elmement.\r\n const accordion = hasAriaControlsAttr ? ariaControlsElement : nextSiblingElement\r\n\r\n new Helpers(currentAccordion).toggleClass('accordion-toggle--active')\r\n new Reveal(accordion).toggle('accordion--active')\r\n})\r\n","/* global L */\r\n\r\nimport Map, { streetLayer, satelliteLayer } from './Map'\r\nimport MapboxOS from './maps/mapboxOS'\r\n\r\nif (document.getElementById('arrivalMap') !== null) {\r\n // Load Ordinance survey projection for Leaflet Map\r\n MapboxOS()\r\n\r\n const arrivalMap = new Map('arrivalMap', {\r\n coords: [50.1016, -5.2750],\r\n maxZoom: 19,\r\n minZoom: 7,\r\n zoom: 7,\r\n scrollWheelZoom: false,\r\n }, {\r\n Streets: streetLayer(),\r\n Satellite: satelliteLayer(),\r\n 'Ordnance Survey': L.OSMap.tilelayer('qOGSRiomYmUUAki6J2BZrtZcUVWMl4aS', {maxZoom: 10}),\r\n })\r\n\r\n const cottageLat = parseFloat(document.getElementById('arrivalMap').getAttribute('data-lat'))\r\n const cottageLng = parseFloat(document.getElementById('arrivalMap').getAttribute('data-lng'))\r\n const cottageName = document.getElementById('arrivalMap').getAttribute('data-name')\r\n\r\n arrivalMap.addMarker([cottageLat, cottageLng], {\r\n title: cottageName,\r\n icon: L.icon({\r\n iconUrl: '/media/map/icon-home.png',\r\n iconSize: [33, 47],\r\n iconAnchor: [17, 46],\r\n popupAnchor: [0, -40],\r\n }),\r\n zIndexOffset: 100,\r\n riseOnHover: true,\r\n })\r\n\r\n arrivalMap.fitMarkers({ padding: [40, 40], maxZoom: 14 })\r\n}\r\n","import Helpers from './Helpers'\r\nimport moment from 'moment'\r\nimport XHRPromise from 'xhr-promise'\r\n\r\nconst availability = document.getElementsByClassName('property-availability')\r\n\r\nconst idDateFormat = 'YYYY-M-D'\r\nconst displayDateFormat = 'ddd D MMM YYYY'\r\n\r\nconst hoverClass = 'hover'\r\nconst hoverClassStart = 'hover-start'\r\nconst hoverClassEnd = 'hover-end'\r\nconst selectedClass = 'selected'\r\nconst selectedClassStart = 'selected-start'\r\nconst selectedClassEnd = 'selected-end'\r\n\r\nconst pricingFeed = '/feeds/pricingFeed.aspx';\r\n\r\nconst hintStart = 'Click the day you\\'d like to arrive to reserve or check the price...'\r\nconst hintEnd = 'Now, click the day you\\'d like to leave...'\r\nconst hintCalculating = 'Fetching pricing...'\r\n\r\n\r\nclass Availability {\r\n\r\n constructor(container) {\r\n this.container = container\r\n this.calendars = container.getElementsByClassName('property-calendar')\r\n this.pricingContainer = container.getElementsByClassName('property-availability__pricing')[0]\r\n this.messageContainer = container.getElementsByClassName('property-availability__message')[0]\r\n this.calendarCells = []\r\n Array.from(this.calendars).forEach((c) => {\r\n this.calendarCells = this.calendarCells.concat(Array.from(c.querySelectorAll('td[id]')))\r\n })\r\n \r\n this.displayStart = document.getElementsByClassName('property-availability__reserve-arriving')[0]\r\n this.displayEnd = document.getElementsByClassName('property-availability__reserve-departing')[0]\r\n this.displayTotal = document.getElementsByClassName('property-availability__reserve-total')[0]\r\n this.submitButton = document.querySelector('.property-availability__reserve-submit button')\r\n this.shortBreakLength = document.getElementsByClassName('property-availability__reserve-duration')[0]\r\n this.shortBreakButtons = document.querySelectorAll('#property-aside__short-breaks-buttons>li')\r\n\r\n this.form = new Helpers(this.submitButton).getClosest('form')\r\n this.pricingToggles = null\r\n if (document.getElementsByClassName('property-pricing__dates').length > 0) {\r\n this.pricingToggles = document.getElementsByClassName('property-pricing__dates')[0].getElementsByTagName('button')\r\n }\r\n\r\n this.cdrn = this.container.getAttribute('data-cdrn')\r\n this.cottageCode = this.container.getAttribute('data-cottagecode')\r\n\r\n this.startDate = null\r\n this.endDate = null\r\n this.canReserve = false\r\n\r\n this.readDisplayDates()\r\n this.setDisplayDates()\r\n\r\n this.listeners()\r\n }\r\n\r\n listeners() {\r\n if (!window.IS_TOUCH_DEVICE) {\r\n new Helpers(this.calendarCells).eventListener((e) => {\r\n this.hoverAction(e.currentTarget)\r\n }, 'mouseover')\r\n\r\n\r\n new Helpers(this.container).eventListener((e) => {\r\n this.clearHighlight()\r\n this.clearOfferHighlight()\r\n }, 'mouseout')\r\n }\r\n\r\n new Helpers(this.calendarCells).eventListener((e) => {\r\n this.clickAction(e.currentTarget)\r\n })\r\n\r\n this.form.onsubmit = () => this.submitAction()\r\n\r\n if (this.pricingToggles !== null) {\r\n new Helpers(this.pricingToggles).eventListener((e) => {\r\n const year = e.currentTarget.getAttribute('data-year')\r\n this.changePricingYear(year)\r\n })\r\n }\r\n try {\r\n if (sessionStorage.searchDates) {\r\n this.loadSearchDates()\r\n }\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n if (this.shortBreakButtons !== null) {\r\n new Helpers(this.shortBreakButtons).eventListener((e) => {\r\n const buttons = document.getElementById('property-aside__short-breaks-buttons').getElementsByTagName('li')\r\n new Helpers(buttons).removeClass('enabled')\r\n new Helpers(e.currentTarget).addClass('enabled')\r\n const value = parseInt(e.currentTarget.getAttribute('data-short-break-minimum-click'), 10)\r\n this.highlightShortBreaks(value)\r\n })\r\n }\r\n\r\n new Helpers(this.pricingContainer).eventListener((e) => {\r\n // only use this on mobile.\r\n if (window.outerWidth > 600) return\r\n // if its the stop element, the click would be for the \"clear dates\" psuedo button\r\n if (new Helpers(e.target).hasClass('stop')) {\r\n this.clearSelected()\r\n this.startDate = null\r\n this.endDate = null\r\n this.setDisplayDates()\r\n }\r\n })\r\n }\r\n\r\n cellDate(cell) {\r\n const id = cell.id\r\n return moment(id, idDateFormat).toDate()\r\n }\r\n\r\n cellId(date) {\r\n return date.getFullYear() + '-' + (date.getMonth()+1) + '-' + date.getDate()\r\n }\r\n \r\n hoverAction(cell) {\r\n const el = new Helpers(cell)\r\n\r\n if (this.startDate === null) {\r\n // start hover\r\n if (el.hasClass('unavailable') || el.hasClass('unavailable-start')) {\r\n this.clearHighlight()\r\n } else {\r\n this.highlightRange(this.cellDate(cell), null, true)\r\n }\r\n } else if (this.endDate === null) {\r\n // end hover\r\n if (el.hasClass('unavailable') || el.hasClass('unavailable-end')) {\r\n this.clearHighlight()\r\n } else {\r\n this.highlightRange(this.startDate, this.cellDate(cell), true)\r\n }\r\n }\r\n\r\n // check for SO\r\n this.clearOfferHighlight()\r\n const offerSubCell = cell.getElementsByTagName('span')\r\n if (offerSubCell.length) {\r\n const offerIndex = offerSubCell[0].getAttribute('data-offer').split('-')[1]\r\n if (offerIndex !== '0') {\r\n this.highlightOfferCells(offerIndex)\r\n }\r\n }\r\n }\r\n\r\n highlightOfferCells(offerIndex) {\r\n this.calendarCells.forEach((c) => {\r\n const offerSubCell = c.getElementsByTagName('span')\r\n if (offerSubCell.length) {\r\n const data = offerSubCell[0].getAttribute('data-offer')\r\n if (data.indexOf(offerIndex) >= 0) {\r\n new Helpers(offerSubCell[0]).addClass('highlight')\r\n }\r\n }\r\n })\r\n }\r\n clearOfferHighlight() {\r\n this.calendarCells.forEach((c) => {\r\n const offerSubCell = c.getElementsByTagName('span')\r\n if (offerSubCell.length) {\r\n new Helpers(offerSubCell[0]).removeClass('highlight')\r\n }\r\n })\r\n }\r\n\r\n clickAction(cell) {\r\n const el = new Helpers(cell)\r\n\r\n if (this.startDate === null) {\r\n // start\r\n if (!el.hasClass('unavailable') && !el.hasClass('unavailable-start')) {\r\n this.startDate = this.cellDate(cell)\r\n }\r\n } else if (this.endDate === null) {\r\n // end\r\n if (!el.hasClass('unavailable') && !el.hasClass('unavailable-end')) {\r\n this.endDate = this.cellDate(cell)\r\n if (this.endDate <= this.startDate) {\r\n // if the dates are invalid, clear\r\n this.clearSelected()\r\n this.startDate = null\r\n this.endDate = null\r\n } else {\r\n this.scrollToPricing()\r\n }\r\n }\r\n } else {\r\n this.clearSelected()\r\n this.startDate = this.cellDate(cell)\r\n this.endDate = null\r\n }\r\n\r\n this.highlightRange(this.startDate, this.endDate)\r\n this.setDisplayDates()\r\n if (this.startDate !== null && this.endDate !== null) {\r\n this.calc()\r\n }\r\n\r\n // Reset searchDates as the user has clicked availability grid.\r\n try {\r\n sessionStorage.removeItem('searchDates')\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n }\r\n\r\n submitAction() {\r\n this.scrollToPricing()\r\n return this.canReserve\r\n }\r\n\r\n scrollToPricing() {\r\n if (window.outerWidth > 600) {\r\n this.form.scrollIntoView({ behavior: 'smooth', block: 'start' })\r\n }\r\n }\r\n\r\n clearHighlight() {\r\n // reset hover UI\r\n new Helpers(this.calendarCells)\r\n .removeClass(hoverClass, hoverClassStart, hoverClassEnd)\r\n }\r\n\r\n clearSelected() {\r\n new Helpers(this.calendarCells)\r\n .removeClass(selectedClass, selectedClassStart, selectedClassEnd)\r\n }\r\n\r\n highlightRange(startDate, endDate, hover = false) {\r\n this.clearHighlight()\r\n\r\n if (startDate === null && endDate === null) {\r\n return\r\n }\r\n\r\n if (endDate === null) {\r\n endDate = startDate\r\n }\r\n\r\n // first cell\r\n const d = new Date(startDate)\r\n while (d <= endDate) {\r\n const cellId = this.cellId(d)\r\n const cell = document.getElementById(cellId)\r\n if (cell !== undefined) {\r\n const start = moment(d).isSame(startDate)\r\n const end = moment(d).isSame(endDate)\r\n\r\n if (start) {\r\n new Helpers(cell).addClass(hover ? hoverClassStart : selectedClassStart)\r\n }\r\n\r\n if (end && !start) {\r\n new Helpers(cell).addClass(hover ? hoverClassEnd : selectedClassEnd)\r\n }\r\n\r\n if (!start && !end) {\r\n new Helpers(cell).addClass(hover ? hoverClass : selectedClass)\r\n }\r\n }\r\n // move to the next day\r\n d.setDate(d.getDate() + 1)\r\n }\r\n }\r\n\r\n readDisplayDates() {\r\n try {\r\n const startDate = moment(this.displayStart.value, displayDateFormat)\r\n const endDate = moment(this.displayEnd.value, displayDateFormat)\r\n if (startDate.isValid() && endDate.isValid()) {\r\n this.startDate = startDate.toDate()\r\n this.endDate = endDate.toDate()\r\n this.highlightRange(this.startDate, this.endDate, false)\r\n new Helpers(this.form).addClass('has-dates')\r\n this.calc()\r\n }\r\n } catch (ex) {\r\n this.startDate = null\r\n this.endDate = null\r\n this.setDisplayDates()\r\n }\r\n }\r\n\r\n setDisplayDates() {\r\n this.displayStart.value = this.startDate === null ? '' : moment(this.startDate).format(displayDateFormat)\r\n this.displayEnd.value = this.endDate === null ? '' : moment(this.endDate).format(displayDateFormat)\r\n this.displayTotal.value = ''\r\n new Helpers(this.submitButton).addClass('disabled')\r\n new Helpers(this.form).removeClass('can-reserve')\r\n\r\n if (this.startDate === null) {\r\n this.pricingContainer.innerHTML = hintStart\r\n new Helpers(this.form).removeClass('has-dates')\r\n } else if (this.endDate === null) {\r\n this.pricingContainer.innerHTML = hintEnd\r\n new Helpers(this.form).addClass('has-dates')\r\n } else {\r\n this.pricingContainer.innerHTML = hintCalculating\r\n new Helpers(this.form).addClass('has-dates')\r\n }\r\n }\r\n\r\n calc() {\r\n const xhr = new XHRPromise()\r\n const fromDate = moment(this.startDate).format('DD/MM/YYYY')\r\n const toDate = moment(this.endDate).format('DD/MM/YYYY')\r\n\r\n xhr.send({\r\n url: `${pricingFeed}?c=${this.cdrn}&h=${fromDate},${toDate}&business=cc`,\r\n })\r\n .then(response => (new window.DOMParser()).parseFromString(response.responseText, 'text/xml'))\r\n .then((data) => {\r\n this.displayPricing(data)\r\n this.recordPricing(data)\r\n }).catch((e) => {\r\n console.log(e)\r\n })\r\n }\r\n\r\n recordPricing(data) {\r\n // Push response from pricing feed to the datalayer, exposing it for use in TagManager.\r\n // https://trello.com/c/iLl7NGFD\r\n\r\n if (data.getElementsByTagName('Result').length) {\r\n const result = data.getElementsByTagName('Result')[0]\r\n const pricedHolidays = Array.from(data.getElementsByTagName('pricedHoliday'))\r\n\r\n const fullPrice = (pricedHolidays.length > 0 ? pricedHolidays[0].getAttribute('Price') : 0)\r\n const holidayDesc = result.getAttribute('HolidayDesc')\r\n const showRent = result.getAttribute('ShowRent') === 'Y'\r\n const canReserve = result.getAttribute('CanReserve') === 'Y'\r\n const warning = result.getAttribute('WarningMessage')\r\n\r\n const startDate = moment(this.displayStart.value, displayDateFormat)\r\n const endDate = moment(this.displayEnd.value, displayDateFormat)\r\n const nights = endDate.diff(startDate, 'days')\r\n\r\n window.dataLayerQueue.push({\r\n 'event': 'priceLookup'\r\n , 'cottageCode': this.cottageCode\r\n , 'arrivalDate': startDate.format('YYYY-MM-DD')\r\n , 'nights': nights\r\n , 'price': fullPrice\r\n , 'warningMessage': warning\r\n , 'canReserve': canReserve\r\n })\r\n }\r\n }\r\n\r\n displayPricing(data) {\r\n // cler and reveal panel\r\n this.pricingContainer.innerHTML = ''\r\n this.displayTotal.value = ''\r\n new Helpers(this.submitButton).addClass('disabled')\r\n new Helpers(this.form).removeClass('can-reserve')\r\n\r\n if (data.getElementsByTagName('Result').length) {\r\n const result = data.getElementsByTagName('Result')[0]\r\n const pricedHolidays = Array.from(data.getElementsByTagName('pricedHoliday'))\r\n const holidayDesc = result.getAttribute('HolidayDesc')\r\n const showRent = result.getAttribute('ShowRent') === 'Y'\r\n const canReserve = result.getAttribute('CanReserve') === 'Y'\r\n const warning = result.getAttribute('WarningMessage')\r\n\r\n if (canReserve && showRent) {\r\n this.pricingContainer.appendChild(this.pricedHolidaysMarkup(pricedHolidays, holidayDesc))\r\n this.setPriceDisplay(pricedHolidays)\r\n new Helpers(this.submitButton).removeClass('disabled')\r\n new Helpers(this.form).addClass('can-reserve')\r\n }\r\n\r\n //if (!canReserve) {\r\n // // can't reserve, give us a call message\r\n // warning += `${warning.length > 0 ? `.
` : ``}These dates don't really fit but we might be able to work something out, give us a call to discuss.`\r\n //} \r\n\r\n if (warning !== '') {\r\n const stopMessage = document.createElement('p')\r\n const stopNote = document.createElement('p') \r\n\r\n stopNote.innerHTML = warning\r\n if (canReserve) {\r\n // not blocked from reserving but the warning means that it'll need to be checked\r\n stopNote.className = 'warning'\r\n stopNote.innerHTML += \". We'll hold your dates and quickly check everything is ok before we confirm your booking.\"\r\n } else {\r\n \r\n stopMessage.className = \"stop\"\r\n stopMessage.innerHTML = \"These dates aren't available online, but call us on 01326 555 555 and we will try to work something out for you.\"\r\n }\r\n this.pricingContainer.appendChild(stopMessage)\r\n this.pricingContainer.appendChild(stopNote) \r\n this.scrollToPricing()\r\n }\r\n\r\n if (canReserve) {\r\n const p = document.createElement('p')\r\n p.className = 'more-time'\r\n p.innerHTML = 'Need more time? Reserve for up to 24 hours or book now.'\r\n this.pricingContainer.appendChild(p)\r\n }\r\n\r\n this.canReserve = canReserve\r\n }\r\n }\r\n\r\n pricedHolidaysMarkup(pricedHolidays, holidayDesc) {\r\n\r\n const output = document.createElement('div')\r\n output.className = 'rent'\r\n\r\n if (pricedHolidays.length > 1) {\r\n var minPrice=99999999\r\n var restrictionsForMinPrice = ''\r\n pricedHolidays.forEach((ph, k) => {\r\n const price = parseFloat(ph.getAttribute('Price'))\r\n if (price < minPrice) {\r\n restrictionsForMinPrice = ph.getAttribute('Restrictions')\r\n minPrice = price\r\n }\r\n })\r\n const p = document.createElement('p')\r\n p.innerHTML = `* Includes ${restrictionsForMinPrice}`\r\n output.appendChild(p)\r\n } \r\n return output\r\n }\r\n\r\n setPriceDisplay(pricedHolidays) {\r\n let minPrice = null\r\n let count = 0\r\n pricedHolidays.forEach((ph) => {\r\n let totalPrice = parseFloat(ph.getAttribute('Price'))\r\n // iterate through line items\r\n Array.from(ph.getElementsByTagName('lineItem')).forEach((l) => {\r\n const value = parseFloat(l.getAttribute('value'))\r\n totalPrice += value\r\n })\r\n\r\n minPrice = minPrice === null ? totalPrice : Math.min(minPrice, totalPrice)\r\n count += 1\r\n })\r\n this.displayTotal.value = `${count > 1 ? 'from ' : ''}£${minPrice.toFixed(2)}${count > 1 ? ' *' : ''}`\r\n }\r\n\r\n changePricingYear(year) {\r\n // toggle active button state\r\n Array.from(this.pricingToggles).forEach((button) => {\r\n const className = button.getAttribute('aria-controls')\r\n const controls = document.getElementsByClassName(className)\r\n const active = button.getAttribute('data-year') === year\r\n\r\n button.setAttribute('aria-current', active)\r\n new Helpers(controls).setAttributes({ 'aria-hidden': !active})\r\n \r\n })\r\n // toggle active pricing display\r\n \r\n }\r\n\r\n loadSearchDates() {\r\n if (!sessionStorage.searchDates) {\r\n return\r\n }\r\n if (this.displayStart.value !== '') {\r\n return\r\n }\r\n\r\n let dates = JSON.parse(sessionStorage.searchDates)\r\n let startDate = moment(dates['dss'])\r\n let endDate = moment(dates['des'])\r\n let duration = parseInt(dates['nday'])\r\n\r\n // If a short break duration was selected via search enable that selection.\r\n this.enableShortBreakButton(duration)\r\n this.highlightShortBreaks(duration)\r\n\r\n // Only accepts ISO 8601 strings\r\n if (!startDate.isValid() || !endDate.isValid()) {\r\n return\r\n }\r\n // Only display if exact holiday dates known.\r\n if (endDate.diff(startDate, 'days') !== duration) {\r\n return\r\n }\r\n\r\n // Update the UI.\r\n this.startDate = startDate.toDate()\r\n this.endDate = endDate.toDate()\r\n this.setDisplayDates()\r\n this.calc()\r\n this.highlightRange(this.startDate, this.endDate) \r\n }\r\n\r\n enableShortBreakButton(duration) {\r\n // Validate length.\r\n duration = parseInt(duration)\r\n if (duration < 2 || duration > 6) {\r\n return\r\n }\r\n\r\n var container = document.getElementById('property-aside__short-breaks-buttons')\r\n if (container === null) {\r\n return\r\n }\r\n var buttons = container.getElementsByTagName('li')\r\n var currentButton = document.getElementById('property-aside__short-breaks-buttons_' + duration)\r\n\r\n // If a button for the exact length is not available, search for the next best.\r\n if (currentButton === null) {\r\n var options = [];\r\n for (var index = 0; index < buttons.length; index++) {\r\n var item = buttons[index];\r\n var length = parseInt(item.getAttribute('data-short-break-minimum-click'))\r\n if (length < duration) {\r\n options.push(length)\r\n }\r\n }\r\n if (options.length > 0) {\r\n var max = Math.max(...options)\r\n currentButton = document.getElementById('property-aside__short-breaks-buttons_' + max)\r\n }\r\n }\r\n\r\n // Add the class if a button has been found to use.\r\n if (currentButton !== null) {\r\n new Helpers(buttons).removeClass('enabled')\r\n new Helpers(currentButton).addClass('enabled')\r\n }\r\n }\r\n \r\n highlightShortBreaks(duration) {\r\n // Validate length.\r\n duration = parseInt(duration)\r\n if (duration < 2 || duration > 6) {\r\n return\r\n }\r\n\r\n // Loop all the short break day in the availability grids.\r\n var all = document.querySelectorAll('[data-short-break-state]')\r\n for (var index = 0; index < all.length; index++) {\r\n var item = all[index];\r\n var state = item.getAttribute('data-short-break-state')\r\n var minimum = parseInt(item.getAttribute('data-short-break-minimum'))\r\n var previousState = item.getAttribute('data-short-break-previous-state')\r\n var previousMinimum = parseInt(item.getAttribute('data-short-break-previous-minimum'))\r\n\r\n // Handle non-short break days.\r\n if (state !== 'ShortBreak' && previousState === 'ShortBreak') {\r\n new Helpers(item).removeClass(\r\n 'available-end',\r\n 'available-alt-end')\r\n new Helpers(item).addClass(previousMinimum <= duration ? 'available-alt-end' : 'available-end')\r\n }\r\n if (state !== 'ShortBreak') {\r\n continue\r\n }\r\n\r\n // Remove any existing classes from the current day.\r\n new Helpers(item).removeClass(\r\n 'available-start',\r\n 'available',\r\n 'available-alt-start',\r\n 'available-alt')\r\n \r\n var mainCssClass = ''\r\n var previousCssClass = ''\r\n\r\n // Set the days primary css class.\r\n if (minimum <= duration) {\r\n mainCssClass = 'available-alt'\r\n } else {\r\n mainCssClass = 'available'\r\n }\r\n\r\n // Handle change of state days (half-days).\r\n if (previousState !== 'ShortBreak' && previousState !== 'null') {\r\n mainCssClass += '-start'\r\n previousCssClass = previousState === 'Available' ? 'available-end' : 'unavailable-end'\r\n } else if (previousState === 'ShortBreak' && minimum <= duration && previousMinimum > duration) { \r\n mainCssClass += '-start'\r\n previousCssClass = 'available-end'\r\n } else if (previousState === 'ShortBreak' && minimum > duration && previousMinimum <= duration) { \r\n mainCssClass += '-start'\r\n previousCssClass = 'available-alt-end'\r\n }\r\n\r\n // Apply the css classes to the table cell.\r\n new Helpers(item).addClass(mainCssClass)\r\n if (previousCssClass !== '') {\r\n new Helpers(item).addClass(previousCssClass)\r\n }\r\n }\r\n }\r\n}\r\n\r\nif (availability.length) {\r\n const avail = new Availability(availability[0])\r\n}","import './vendor/History'\r\nimport Helpers from '../modules/Helpers'\r\nimport Reveal from '../modules/Reveal'\r\nimport XHRPromise from 'xhr-promise'\r\nimport breadcrumbs from '../modules/Breadcrumbs'\r\n\r\nconst history = window.History\r\n\r\nconst blog = {};\r\n\r\nblog.state = {};\r\nblog.nav = {};\r\nblog.ui = {};\r\n\r\n\r\nblog.state.baseUrl = '/nas';\r\nblog.state.page = 1;\r\n\r\nblog.state.getURL = (page) => {\r\n if(page==undefined) page = blog.state.page;\r\n // get category & location parameters\r\n let catUrl = '/' + blog.nav.getCategory()\r\n let locUrl = '/' + blog.nav.getLocation()\r\n if (locUrl.indexOf('the-west-country') !== -1 || locUrl == '/') locUrl = ''\r\n\r\n // build querystring for ordering & pagination\r\n let qs = '';\r\n if (blog.nav.getSort() == 'P') {\r\n qs = (qs.length ? '&' : '?') + 's=popular'\r\n }\r\n if (page > 1) {\r\n qs = (qs.length ? '&' : '?') + 'page=' + page\r\n }\r\n\r\n // build complete url\r\n let fullUrl;\r\n if (locUrl == '' && catUrl == '/latest') {\r\n fullUrl = blog.state.baseUrl + '/' + qs\r\n } else {\r\n fullUrl = blog.state.baseUrl + catUrl + locUrl + '.html' + qs\r\n }\r\n return fullUrl;\r\n}\r\n\r\n\r\nblog.state.readUI = (page) => {\r\n if (page != undefined) blog.state.page = page\r\n\r\n const fullUrl = blog.state.getURL()\r\n if (blog.nav.isInteractive()) {\r\n // push new page into history and run ajax load\r\n const params = {\r\n category: blog.nav.getCategory(),\r\n location: blog.nav.getLocation(),\r\n sort: blog.nav.getSort(),\r\n page: blog.state.page\r\n }\r\n\r\n history.pushState(params, document.title, fullUrl)\r\n } else {\r\n // modify the href action of the search link\r\n document.getElementById('blogSearch').href= fullUrl\r\n }\r\n}\r\n\r\nblog.state.setUI = (state) => {\r\n blog.nav.setCategory(state.category === '' ? 'latest' : state.category)\r\n blog.nav.setLocation(state.location === '' ? '' : state.location)\r\n blog.nav.setSort(state.sort === '' ? 'L' : state.sort)\r\n};\r\n\r\nblog.state.init = () => {\r\n history.Adapter.bind(window, 'statechange', (e) => {\r\n const state = history.getState().data\r\n blog.state.setUI(state)\r\n blog.nav.search(state)\r\n window.dataLayerQueue.push({ 'event': 'pageView' });\r\n })\r\n}\r\n\r\n\r\n\r\nblog.nav.categoryLinks = Array.from(document.querySelectorAll('#blogCategories a'))\r\nblog.nav.locationLinks = Array.from(document.querySelectorAll('#blogLocations a'))\r\nblog.nav.sortLinks = Array.from(document.querySelectorAll('#blogOrder button'))\r\n\r\n\r\nblog.nav.init = function () {\r\n // click event trigger on category\r\n new Helpers(blog.nav.categoryLinks).eventListener((e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n blog.nav.setCategory(e.target.getAttribute('data-code'))\r\n blog.state.readUI(1)\r\n blog.nav.hideAccordions()\r\n })\r\n \r\n // click event trigger on location\r\n new Helpers(blog.nav.locationLinks).eventListener((e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n blog.nav.setLocation(e.target.getAttribute('data-code'))\r\n blog.state.readUI(1)\r\n blog.nav.hideAccordions()\r\n })\r\n\r\n // click event trigger on sort\r\n new Helpers(blog.nav.sortLinks).eventListener((e) => {\r\n e.preventDefault()\r\n blog.nav.setSort(e.target.getAttribute('data-code'))\r\n blog.state.readUI(1)\r\n blog.nav.hideAccordions()\r\n })\r\n\r\n new Helpers(document.getElementsByTagName('body')).eventListener((e) => {\r\n blog.nav.hideAccordions(e.target.id)\r\n })\r\n};\r\n\r\nblog.nav.isInteractive = () => {\r\n return document.getElementById('blogSearch') === null\r\n}\r\n\r\nblog.nav.hideAccordions = (excludeId = '') => {\r\n if (excludeId !== 'blogCategory') {\r\n new Helpers(document.getElementById('blogCategory')).removeClass('accordion-toggle--active')\r\n new Reveal(document.getElementById('blogCategories')).hide('accordion--active')\r\n }\r\n if (excludeId !== 'blogLocation') {\r\n new Helpers(document.getElementById('blogLocation')).removeClass('accordion-toggle--active')\r\n new Reveal(document.getElementById('blogLocations')).hide('accordion--active')\r\n }\r\n if (excludeId !== 'blogSort' && document.getElementById('blogSort') !== null) {\r\n new Helpers(document.getElementById('blogSort')).removeClass('accordion-toggle--active')\r\n new Reveal(document.getElementById('blogOrder')).hide('accordion--active')\r\n }\r\n}\r\n\r\nblog.nav.getCategory = () => {\r\n let category = \"\"\r\n blog.nav.categoryLinks.forEach((a) => {\r\n if (a.getAttribute('aria-current') == 'true') {\r\n category = a.getAttribute('data-code')\r\n }\r\n });\r\n return category\r\n}\r\n\r\nblog.nav.setCategory = (category) => {\r\n blog.nav.categoryLinks.forEach((c) => {\r\n if (c.getAttribute('data-code') === category) {\r\n // set as current and set button text from link\r\n c.setAttribute('aria-current', 'true')\r\n document.getElementById('blogCategory').innerText = c.innerText\r\n } else {\r\n c.setAttribute('aria-current', 'false')\r\n }\r\n })\r\n};\r\n\r\nblog.nav.getLocation = () => {\r\n let location = \"\"\r\n blog.nav.locationLinks.forEach((a) => {\r\n if (a.getAttribute('aria-current') == 'true') {\r\n location = a.getAttribute('data-code')\r\n }\r\n });\r\n return location\r\n}\r\n\r\nblog.nav.setLocation = (location) => {\r\n blog.nav.locationLinks.forEach((l) => {\r\n if (l.getAttribute('data-code') === location) {\r\n // set as current and set button text from link\r\n l.setAttribute('aria-current', 'true')\r\n document.getElementById('blogLocation').innerText = l.innerText\r\n } else {\r\n l.setAttribute('aria-current', 'false')\r\n }\r\n })\r\n};\r\n\r\nblog.nav.getSort = () => {\r\n let sort = \"\"\r\n blog.nav.sortLinks.forEach((a) => {\r\n if (a.getAttribute('aria-current') == 'true') {\r\n sort = a.getAttribute('data-code')\r\n }\r\n });\r\n return sort\r\n}\r\n\r\nblog.nav.setSort = (sort) => {\r\n blog.nav.sortLinks.forEach((s) => {\r\n s.setAttribute('aria-current', s.getAttribute('data-code') === sort)\r\n })\r\n}\r\n\r\n\r\nblog.nav.pagination = (total) => {\r\n const link = document.getElementsByClassName('blog-main__load-more-toggle')[0]\r\n const maxPage = Math.ceil(total / 8)\r\n const nextPage = blog.state.page + 1\r\n\r\n link.href = blog.state.getURL(blog.state.page + 1)\r\n link.setAttribute('aria-hidden', nextPage > maxPage)\r\n}\r\n\r\nblog.loading = {}\r\nblog.loading.earliest = null\r\nblog.loading.start = () => {\r\n const filter = document.getElementsByClassName('filter')[0]\r\n new Helpers(filter).removeClass('filter--loading')\r\n void filter.offsetWidth\r\n new Helpers(filter).addClass('filter--loading')\r\n blog.loading.earliest = new Date(new Date().getTime() + 2000).getTime();\r\n}\r\n\r\nblog.loading.stop = () => {\r\n if (blog.loading.earliest === null || blog.loading.earliest <= new Date().getTime()) {\r\n const filter = document.getElementsByClassName('filter')[0]\r\n new Helpers(filter).removeClass('filter--loading')\r\n } else {\r\n setTimeout(blog.loading.stop, blog.loading.earliest - new Date().getTime())\r\n }\r\n}\r\n\r\n\r\n\r\nblog.nav.fetch = -1\r\nblog.nav.search = (state) => {\r\n\r\n if (blog.nav.fetch !== -1) {\r\n blog.nav.fetch.getXHR().abort()\r\n blog.nav.fetch = -1\r\n }\r\n\r\n blog.loading.start()\r\n\r\n blog.nav.fetch = new XHRPromise()\r\n\r\n blog.nav.fetch.send({\r\n url: `/nas/feed.aspx?category=${state.category}&location=${state.location}&sort=${state.sort}&page=${state.page}`\r\n })\r\n .then((response) => {\r\n return response.responseText\r\n })\r\n .then((data) => {\r\n blog.ui.updateList(data.Articles);\r\n blog.ui.total(data.Total);\r\n blog.ui.intro(data.Intro);\r\n blog.nav.pagination(data.Total);\r\n breadcrumbs.set(data.Breadcrumbs)\r\n blog.nav.fetch = -1\r\n blog.loading.stop()\r\n document.title = data.MetaTitle\r\n })\r\n};\r\n\r\n\r\n\r\nblog.nav.loadMore = () => {\r\n\r\n if (blog.nav.fetch !== -1) {\r\n blog.nav.fetch.getXHR().abort()\r\n blog.nav.fetch = -1\r\n }\r\n\r\n blog.nav.fetch = new XHRPromise()\r\n\r\n blog.nav.fetch.send({\r\n url: `/nas/feed.aspx?category=${blog.nav.getCategory()}&location=${blog.nav.getLocation()}&sort=${blog.nav.getSort()}&page=${blog.state.page}`,\r\n })\r\n .then((response) => {\r\n return response.responseText\r\n })\r\n .then((data) => {\r\n blog.ui.addToList(data.Articles);\r\n blog.nav.pagination(data.Total)\r\n blog.nav.fetch = -1\r\n })\r\n}\r\n\r\n\r\nblog.ui.init = function () {\r\n const showMoreEl = document.getElementsByClassName('blog-main__load-more-toggle')[0]\r\n new Helpers(showMoreEl).eventListener((e) => {\r\n e.preventDefault()\r\n if (blog.nav.fetch === -1) {\r\n blog.ui.lazyLoad()\r\n }\r\n })\r\n this.showMoreRunInterval = setInterval(() => {\r\n if (new Helpers(showMoreEl).isInViewport()) {\r\n // if button is visible (if not then no more results)\r\n // and not already running\r\n if (showMoreEl.getAttribute('aria-hidden') == 'false' && blog.nav.fetch === -1) {\r\n blog.ui.lazyLoad()\r\n }\r\n }\r\n }, 200)\r\n\r\n blog.ui.inlineTweets()\r\n};\r\n\r\nblog.ui.lazyLoadEnabled = true;\r\nblog.ui.lazyLoad = () => {\r\n blog.state.page++;\r\n blog.nav.loadMore();\r\n}\r\n\r\n\r\nblog.ui.total = (total) => {\r\n document.getElementsByClassName('filter__no-articles')[0].innerText = total + ' articles'\r\n};\r\n\r\nblog.ui.intro = (intro) => {\r\n document.getElementsByClassName('blog-main__header')[0].innerHTML = intro\r\n};\r\n\r\nblog.ui.updateList = (articles) => {\r\n document.getElementsByClassName('blog-main__article-group')[0].innerHTML = ''\r\n blog.ui.addToList(articles)\r\n}\r\n\r\nblog.ui.addToList = (articles) => {\r\n\r\n articles.forEach((a) => {\r\n const article = `
\r\n \r\n \r\n \r\n

${a.Title}

\r\n

${a.Teaser}

\r\n ${a.Category.Title}\r\n ${a.DatePosted} ${a.Author}`\r\n\r\n // TODO: do something with these articles\r\n const el = document.createElement('div')\r\n el.innerHTML = article\r\n document.getElementsByClassName('blog-main__article-group')[0].appendChild(el.firstChild)\r\n })\r\n}\r\n\r\nblog.ui.inlineTweets = function () {\r\n new Helpers(document.getElementsByClassName('')).eventListener((e) => {\r\n var text = e.target.innerText\r\n window.open('https://twitter.com/intent/tweet?text=' + text + ' ' + window.location.href + '&via=classiccottages&related=classiccottages', 'ArticleTweet', 'width=600,height=400')\r\n })\r\n};\r\n\r\n\r\n\r\nif (new Helpers(document.getElementsByTagName('body')).hasClass('blog')) {\r\n blog.nav.init();\r\n\r\n\r\n if (document.getElementsByClassName('blog-main__article-group').length) {\r\n blog.ui.init();\r\n blog.state.init();\r\n }\r\n}","import Helpers from '../modules/Helpers'\r\n\r\nconst breadcrumbs = {}\r\n\r\nbreadcrumbs.el = document.getElementById('breadcrumb')\r\n\r\nbreadcrumbs.set = (crumbs) => {\r\n breadcrumbs.clear()\r\n\r\n crumbs.forEach((crumb) => {\r\n const newCrumb = document.createElement('li')\r\n const link = document.createElement('a')\r\n link.href = crumb.href\r\n link.innerText = crumb.text\r\n newCrumb.appendChild(link)\r\n breadcrumbs.el.getElementsByTagName('ul')[0].appendChild(newCrumb)\r\n })\r\n}\r\n\r\nbreadcrumbs.clear = () => {\r\n const crumbEls = Array.from(breadcrumbs.el.getElementsByTagName('li'))\r\n // ignore the first el (home link)\r\n crumbEls.shift()\r\n // delete the rest\r\n crumbEls.forEach(crumb => crumb.parentNode.removeChild(crumb))\r\n}\r\n\r\nexport default breadcrumbs","import Helpers from './Helpers'\r\n\r\nconst VALUE_INCREMENT = 1\r\nconst VALUE_DECREMENT = -1\r\n\r\nclass ButtonCounter {\r\n constructor(control) {\r\n this.control = control\r\n\r\n this.name = control.getAttribute(\"data-name\")\r\n this.code = control.getAttribute(\"data-qs-code\")\r\n this.buttons = control.getElementsByTagName('button')\r\n this.input = control.getElementsByTagName('input')[0]\r\n this.text = control.getElementsByTagName('p')[0]\r\n this.max = parseInt(control.getAttribute('data-max')) || 10\r\n this.min = parseInt(control.getAttribute('data-min')) || 0\r\n this.defaultValue = control.getAttribute('data-default-value') || '0'\r\n this.mousedownEvent = -1\r\n this.mousedownInterval = 200\r\n this.mousedownInitialInterval = 600\r\n\r\n this.buttonClickEvent()\r\n }\r\n\r\n getValue() {\r\n return this.input.value\r\n }\r\n\r\n buttonClickEvent() {\r\n const self = this\r\n new Helpers(this.buttons).eventListener((e) => {\r\n const button = e.target\r\n \r\n if (button.getAttribute('aria-label') == 'Plus') {\r\n self.mouseDown(VALUE_INCREMENT)\r\n } else if (button.getAttribute('aria-label') == 'Minus') {\r\n self.mouseDown(VALUE_DECREMENT)\r\n }\r\n\r\n }, 'mousedown')\r\n\r\n new Helpers(this.buttons).eventListener((e) => {\r\n self.mouseUp()\r\n }, 'mouseup')\r\n\r\n new Helpers(this.buttons).eventListener((e) => {\r\n self.mouseUp()\r\n }, 'mouseout')\r\n\r\n }\r\n\r\n updateDisplay() {\r\n let text = parseInt(this.input.value) != 1 ? this.text.getAttribute(\"data-plural\") : this.text.getAttribute(\"data-singular\")\r\n\r\n this.text.innerText = text.replace(\"{0}\", this.input.value)\r\n }\r\n\r\n mouseDown(direction) {\r\n const self = this\r\n if (this.mousedownEvent == -1) {\r\n\r\n if (direction == VALUE_INCREMENT) {\r\n this.increment()\r\n this.mousedownEvent = setTimeout(() => {\r\n self.incrementTimeout()\r\n }, this.mousedownInitialInterval)\r\n }\r\n\r\n if (direction == VALUE_DECREMENT) {\r\n this.decrement()\r\n this.mousedownEvent = setTimeout(() => {\r\n self.decrementTimeout()\r\n }, this.mousedownInitialInterval)\r\n }\r\n }\r\n }\r\n\r\n mouseUp() {\r\n if (this.mousedownEvent != -1) {\r\n clearTimeout(this.mousedownEvent)\r\n this.mousedownEvent = -1\r\n }\r\n }\r\n\r\n increment() {\r\n if (this.input.value < this.max) {\r\n this.input.value = parseInt(this.input.value) + 1\r\n this.updateDisplay()\r\n this.raiseEvent()\r\n }\r\n }\r\n\r\n incrementTimeout() {\r\n this.increment()\r\n this.mousedownEvent = setTimeout(() => {\r\n this.incrementTimeout()\r\n }, this.mousedownInterval)\r\n }\r\n\r\n decrement() {\r\n if (this.input.value > this.min) {\r\n this.input.value = parseInt(this.input.value) - 1\r\n this.updateDisplay()\r\n this.raiseEvent()\r\n }\r\n }\r\n\r\n decrementTimeout() {\r\n this.decrement()\r\n this.mousedownEvent = setTimeout(() => {\r\n this.decrementTimeout()\r\n }, this.mousedownInterval)\r\n }\r\n\r\n raiseEvent() {\r\n this.control.dispatchEvent(new CustomEvent('change'))\r\n }\r\n\r\n setValue(value) {\r\n this.input.value = value\r\n this.updateDisplay()\r\n }\r\n\r\n reset() {\r\n this.setValue(this.defaultValue)\r\n }\r\n}\r\n\r\nexport default ButtonCounter","import moment from 'moment'\r\nimport Hammer from 'hammerjs'\r\nimport Helpers from '../modules/Helpers'\r\n\r\n\r\nclass CalendarRange {\r\n constructor(container, changeEvent = () => { }) {\r\n this.container = container\r\n\r\n this.getControls()\r\n this.getParameters()\r\n this.changeEvent = changeEvent\r\n\r\n this.listeners()\r\n this.hammer()\r\n this.render()\r\n }\r\n\r\n getControls() {\r\n this.prevButtonContainer = this.container.getElementsByClassName('calendar-range__container--left')[0]\r\n this.nextButtonContainer = this.container.getElementsByClassName('calendar-range__container--right')[0]\r\n this.prevButton = this.container.getElementsByClassName('calendar-range__move--left')[0]\r\n this.nextButton = this.container.getElementsByClassName('calendar-range__move--right')[0]\r\n this.monthContainer = this.container.getElementsByClassName('calendar-range__months')[0]\r\n }\r\n\r\n getParameters() {\r\n this.minCalendarWidth = 240\r\n this.minDate = moment(this.container.getAttribute('data-minDate'), \"YYYY-MM-DD\")\r\n this.maxDate = moment(this.container.getAttribute('data-maxDate'), \"YYYY-MM-DD\")\r\n this.currentMonth = moment(this.minDate).startOf('month')\r\n this.noOfCalendars = null\r\n\r\n this.selectedStart = null\r\n this.selectedEnd = null\r\n \r\n return this\r\n }\r\n\r\n listeners() {\r\n new Helpers(this.prevButtonContainer).eventListener((e) => {\r\n e.preventDefault()\r\n this.move('prev')\r\n })\r\n\r\n new Helpers(this.nextButtonContainer).eventListener((e) => {\r\n e.preventDefault()\r\n this.move('next') \r\n })\r\n }\r\n\r\n move(direction) {\r\n if (direction === 'next') {\r\n if (moment(this.currentMonth).endOf('month').isBefore(this.maxDate)) {\r\n this.currentMonth.add(1, 'month')\r\n this.render()\r\n }\r\n } else {\r\n if (moment(this.currentMonth).startOf('month').isAfter(this.minDate)) {\r\n this.currentMonth.subtract(1, 'month')\r\n this.render()\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Instantiate Hammer.js\r\n * \r\n * @return {Object}\r\n */\r\n hammer() {\r\n if (typeof Hammer === 'function') {\r\n const hammertime = new Hammer(this.container)\r\n\r\n hammertime.on('swipeleft swiperight', (e) => {\r\n let direction = ''\r\n if (e.type == 'swiperight') {\r\n direction = 'prev'\r\n } else {\r\n direction = 'next'\r\n }\r\n this.lastMoveTime = (new Date).getTime();\r\n this.move(direction)\r\n })\r\n }\r\n\r\n return this\r\n }\r\n\r\n setNoOfCalendars(calendars) {\r\n this.noOfCalendars = calendars\r\n\r\n return this;\r\n }\r\n\r\n visibleMonths() {\r\n return this.noOfCalendars || Math.max(Math.floor(this.container.offsetWidth / this.minCalendarWidth), 1)\r\n }\r\n\r\n render() {\r\n // clear container\r\n this.monthContainer.innerHTML = ''\r\n\r\n for (let i = 0; i <= this.visibleMonths()-1; i++) {\r\n const monthStart = moment(this.currentMonth).add(i, 'month').startOf('month')\r\n const monthEnd = moment(monthStart).endOf('month')\r\n // wrapper div\r\n const wrap = document.createElement('div')\r\n new Helpers(wrap).addClass('calendar-range__month')\r\n // month title\r\n const title = document.createElement('h4')\r\n title.innerText = monthStart.format(\"MMMM YYYY\")\r\n wrap.appendChild(title)\r\n\r\n // table\r\n const table = document.createElement('table')\r\n\r\n //day headers\r\n const header = document.createElement('tr');\r\n\r\n ['M', 'T', 'W', 'T', 'F', 'S', 'S'].forEach((d) => {\r\n const day = document.createElement('th')\r\n day.innerText = d\r\n header.appendChild(day)\r\n })\r\n table.appendChild(header)\r\n\r\n // days of the month\r\n const calendarStart = moment(monthStart).startOf('isoweek')\r\n const calendarEnd = moment(monthEnd).endOf('isoweek')\r\n\r\n let count = 0\r\n for (let row = 0; row < 6; row++) {\r\n // rows\r\n const tr = document.createElement('tr')\r\n\r\n for (let col = 0; col < 7; col++) {\r\n // days\r\n const calendarDay = moment(calendarStart).add(count,'day')\r\n if (calendarDay.isAfter(calendarEnd)) {\r\n continue;\r\n }\r\n const td = document.createElement('td')\r\n new Helpers(td).addClass('calendar-range__day')\r\n\r\n // check if the day is within the month\r\n if (calendarDay.isBefore(monthStart) || calendarDay.isAfter(monthEnd)) {\r\n new Helpers(td).addClass('calendar-range__day--adjoining')\r\n } else {\r\n td.innerText = calendarDay.date()\r\n td.id = calendarDay.format(\"YYYY-MM-DD\")\r\n if (calendarDay.isBefore(this.minDate) || calendarDay.isAfter(this.maxDate)) {\r\n new Helpers(td).addClass('calendar-range__day--inactive')\r\n }\r\n }\r\n\r\n tr.appendChild(td)\r\n count += 1\r\n }\r\n if (tr.innerHTML.length>0) {\r\n table.appendChild(tr)\r\n }\r\n }\r\n wrap.appendChild(table)\r\n this.monthContainer.appendChild(wrap)\r\n }\r\n\r\n //toggle visiblity of nav buttons\r\n this.prevButton.disabled = this.currentMonth.isSame(this.minDate, 'month')\r\n this.nextButton.disabled = moment(this.currentMonth).add(this.visibleMonths()-1,'month').isSame(this.maxDate, 'month')\r\n\r\n this.highlightRange(this.selectedStart, this.selectedEnd,false)\r\n\r\n this.calendarListeners()\r\n\r\n return this\r\n }\r\n\r\n calendarListeners() {\r\n new Helpers(document.getElementsByClassName('calendar-range__day')).eventListener((e) => {\r\n this.hoverAction(e.currentTarget)\r\n }, 'mouseover')\r\n\r\n new Helpers(document.getElementsByClassName('calendar-range__months')).eventListener((e) => {\r\n this.clearHighlight()\r\n }, 'mouseout')\r\n\r\n new Helpers(document.getElementsByClassName('calendar-range__day')).eventListener((e) => {\r\n if ((this.lastMoveTime || 0) < (new Date).getTime() - 500) {\r\n this.clickAction(e.currentTarget)\r\n }\r\n })\r\n }\r\n\r\n hoverAction(cell) {\r\n const el = new Helpers(cell)\r\n if (this.selectedStart == null) {\r\n if (el.hasClass('calendar-range__day--inactive') || el.hasClass('calendar-range__day--adjoining')) {\r\n this.clearHighlight()\r\n } else {\r\n this.highlightRange(this.cellDate(cell), null, true)\r\n }\r\n } else if (this.selectedEnd === null) {\r\n // end hover\r\n if (el.hasClass('calendar-range__day--inactive') || el.hasClass('calendar-range__day--adjoining')) {\r\n this.clearHighlight();\r\n } else {\r\n this.highlightRange(this.selectedStart, this.cellDate(cell), true)\r\n }\r\n }\r\n }\r\n\r\n clickAction(cell) {\r\n const el = new Helpers(cell)\r\n\r\n if (this.selectedStart === null) {\r\n // start\r\n if (!el.hasClass('calendar-range__day--inactive') && !el.hasClass('calendar-range__day--adjoining')) {\r\n this.selectedStart = this.cellDate(cell)\r\n }\r\n } else if (this.selectedEnd === null) {\r\n // end \r\n if (!el.hasClass('calendar-range__day--inactive') && !el.hasClass('calendar-range__day--adjoining')) {\r\n this.selectedEnd = this.cellDate(cell)\r\n if (this.selectedEnd.isBefore(this.selectedStart)) {\r\n // if the dates are invalid, clear\r\n this.clearSelected()\r\n this.selectedStart = null\r\n this.selectedEnd = null\r\n }\r\n }\r\n } else {\r\n this.clearSelected()\r\n this.selectedStart = this.cellDate(cell)\r\n this.selectedEnd = null\r\n }\r\n\r\n this.highlightRange(this.selectedStart, this.selectedEnd, false)\r\n\r\n this.changeEvent(this.selectedStart,this.selectedEnd)\r\n }\r\n\r\n setDates(startDate, endDate) {\r\n this.clearHighlight()\r\n this.clearSelected()\r\n this.selectedStart = startDate\r\n this.selectedEnd = endDate\r\n this.highlightRange(this.selectedStart, this.selectedEnd, false)\r\n }\r\n\r\n cellDate(cell) {\r\n return moment(cell.id, 'YYYY-MM-DD')\r\n }\r\n\r\n clearHighlight() {\r\n // reset hover UI\r\n new Helpers(document.getElementsByClassName('calendar-range__day')).removeClass('calendar-range__day--highlight')\r\n }\r\n\r\n clearSelected() {\r\n new Helpers(document.getElementsByClassName('calendar-range__day')).removeClass('calendar-range__day--selected')\r\n }\r\n\r\n highlightRange(startDate, endDate, hover = true) {\r\n this.clearHighlight()\r\n\r\n if (startDate === null && endDate === null) {\r\n return;\r\n }\r\n\r\n if (endDate === null) {\r\n endDate = startDate\r\n }\r\n\r\n // first cell\r\n let d = new moment(startDate)\r\n while (d.isBefore(endDate) || d.isSame(endDate)) {\r\n const cellId = d.format(\"YYYY-MM-DD\")\r\n const cell = document.getElementById(cellId)\r\n if (cell !== null) {\r\n const start = moment(d).isSame(startDate)\r\n const end = moment(d).isSame(endDate)\r\n\r\n if (hover) {\r\n new Helpers(cell).addClass('calendar-range__day--highlight')\r\n } else {\r\n new Helpers(cell).addClass('calendar-range__day--selected')\r\n }\r\n }\r\n // move to the next day\r\n d.add(1,'day')\r\n }\r\n }\r\n}\r\n\r\nexport default CalendarRange","//Consent data provided by Termly\r\nconst termlyApiCach = JSON.parse(window.localStorage.getItem(\"TERMLY_API_CACHE\"))\r\n//collection of iframes that were changed at render\r\nconst iframes = document.querySelectorAll('iframe[data-src][data-requiresconsent]')\r\n//Button to load consent page\r\nlet consentRequired = document.getElementsByClassName('cookie-consent__iframe')[0].cloneNode(true)\r\nconsentRequired.classList.add('required')\r\n\r\nlet termlyConsent\r\nif (typeof (termlyApiCach) !== 'undefined' && termlyApiCach !== null && typeof (termlyApiCach.TERMLY_COOKIE_CONSENT) != 'undefined') {\r\n termlyConsent = termlyApiCach.TERMLY_COOKIE_CONSENT.value\r\n}\r\n\r\niframes.forEach(function (el, i) {\r\n //check that only iframes that need advertising consent are changed\r\n if (ConsentGiven(el)) {\r\n //Show the video if the consent is approved\r\n el.setAttribute('src', el.getAttribute('data-src'))\r\n el.removeAttribute('data-src')\r\n } else {\r\n //add a wrapper to the iframe if the consent was not given. This provides the button to change consent options\r\n var wrapper = consentRequired.cloneNode(true);\r\n el.parentNode.insertBefore(wrapper, el)\r\n wrapper.appendChild(el)\r\n }\r\n})\r\nfunction ConsentGiven(el) { \r\n return typeof(termlyConsent) !== 'undefined' && el.getAttribute('data-requiresconsent') === 'advertising' && termlyConsent.advertising === true\r\n}","import Helpers from './Helpers'\r\n\r\nnew Helpers(window).eventListener(() => {\r\n\r\n const images = [].slice.call(document.querySelectorAll('img[data-deferred=\"true\"]'))\r\n const containers = [].slice.call(document.querySelectorAll('.deferred-images'))\r\n\r\n const canUseIntersection = 'IntersectionObserver' in window\r\n\r\n\r\n if (canUseIntersection) {\r\n // if \"isIntersecting\" is not present (Edge 15) add a polyfill\r\n if (!('isIntersecting' in IntersectionObserverEntry.prototype)) {\r\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\r\n get: () => this.intersectionRatio > 0,\r\n })\r\n }\r\n\r\n const options = {\r\n rootMargin: '100px',\r\n threshold: 0,\r\n }\r\n\r\n const deferredImageObserver = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\r\n const img = entry.target\r\n if (img.hasAttribute('data-src')) {\r\n img.setAttribute('src', img.getAttribute('data-src'))\r\n // Srcset Images\r\n if (img.hasAttribute('data-srcset')) {\r\n img.setAttribute('srcset', img.getAttribute('data-srcset'))\r\n img.setAttribute('sizes', img.getAttribute('data-sizes'))\r\n\r\n img.removeAttribute('data-srcset')\r\n img.removeAttribute('data-sizes')\r\n }\r\n img.removeAttribute('data-src')\r\n img.removeAttribute('data-deferred')\r\n }\r\n deferredImageObserver.unobserve(img)\r\n }\r\n })\r\n }, options)\r\n\r\n const deferredContainerObserver = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\r\n const container = entry.target\r\n const imgs = [].slice.call(container.querySelectorAll('img[data-deferred=\"true\"]'))\r\n imgs.forEach((img) => {\r\n if (img.hasAttribute('data-src')) {\r\n img.setAttribute('src', img.getAttribute('data-src'))\r\n // Srcset Images\r\n if (img.hasAttribute('data-srcset')) {\r\n img.setAttribute('srcset', img.getAttribute('data-srcset'))\r\n img.setAttribute('sizes', img.getAttribute('data-sizes'))\r\n\r\n img.removeAttribute('data-srcset')\r\n img.removeAttribute('data-sizes')\r\n }\r\n img.removeAttribute('data-src')\r\n img.removeAttribute('data-deferred')\r\n }\r\n // unobserve the image once loaded\r\n deferredImageObserver.unobserve(img)\r\n })\r\n container.classList.remove('deferred-images')\r\n // unobserve the container once all images within are loaded\r\n deferredContainerObserver.unobserve(container)\r\n }\r\n })\r\n }, options)\r\n\r\n // register observer to elements\r\n images.forEach((img) => {\r\n deferredImageObserver.observe(img)\r\n })\r\n\r\n containers.forEach((container) => {\r\n deferredContainerObserver.observe(container)\r\n })\r\n } else {\r\n images.forEach((img) => {\r\n img.setAttribute('src', img.getAttribute('data-src'))\r\n img.setAttribute('srcset', img.getAttribute('data-srcset'))\r\n img.setAttribute('sizes', img.getAttribute('data-sizes'))\r\n img.removeAttribute('data-src')\r\n img.removeAttribute('data-srcset')\r\n img.removeAttribute('data-sizes')\r\n img.removeAttribute('data-deferred')\r\n })\r\n }\r\n}, 'load')\r\n","/* global L */\r\n\r\nimport Map, { streetLayer, satelliteLayer } from '../modules/Map'\r\nimport MapboxOS from '../modules/maps/mapboxOS'\r\n\r\nif (document.getElementById('exploreMap') !== null) {\r\n // Load Ordinance survey projection for Leaflet Map\r\n MapboxOS()\r\n\r\n const exploreMap = new Map('exploreMap', {\r\n coords: [50.1016, -5.2750],\r\n maxZoom: 16,\r\n minZoom: 7,\r\n zoom: 7,\r\n scrollWheelZoom: false,\r\n }, {\r\n Streets: streetLayer(),\r\n Satellite: satelliteLayer(),\r\n 'Ordnance Survey': L.OSMap.tilelayer('qOGSRiomYmUUAki6J2BZrtZcUVWMl4aS'),\r\n })\r\n\r\n Array.from(document.getElementsByClassName('explore-map-item')).forEach((item) => {\r\n const lat = parseFloat(item.getAttribute('data-lat'))\r\n const lng = parseFloat(item.getAttribute('data-lng'))\r\n const icon = item.getAttribute('data-icon')\r\n const title = item.getAttribute('data-title')\r\n\r\n exploreMap.addMarker([lat, lng], {\r\n title,\r\n icon: L.icon({\r\n iconUrl: `/media/map/explore-icons/${icon}.png`,\r\n iconSize: [35, 44],\r\n iconAnchor: [19, 44],\r\n popupAnchor: [0, -40],\r\n }),\r\n riseOnHover: true,\r\n })\r\n })\r\n\r\n const cottageLat = parseFloat(document.getElementById('exploreMap').getAttribute('data-lat'))\r\n const cottageLng = parseFloat(document.getElementById('exploreMap').getAttribute('data-lng'))\r\n const cottageName = document.getElementById('exploreMap').getAttribute('data-name')\r\n\r\n exploreMap.addMarker([cottageLat, cottageLng], {\r\n title: cottageName,\r\n icon: L.icon({\r\n iconUrl: '/media/map/icon-home.png',\r\n iconSize: [33, 47],\r\n iconAnchor: [17, 46],\r\n popupAnchor: [0, -40],\r\n }),\r\n zIndexOffset: 100,\r\n riseOnHover: true,\r\n })\r\n\r\n exploreMap.fitMarkers({ padding: [40, 40] })\r\n}\r\n","import Helpers from '../modules/Helpers'\r\n\r\nconst featuredProperties = document.getElementsByClassName('featured-properties__item')\r\n\r\nnew Helpers(featuredProperties).eventListener((e) => {\r\n const code = e.currentTarget.getAttribute('data-cottagecode')\r\n const position = e.currentTarget.getAttribute('data-position')\r\n window.dataLayerQueue.push({ 'event': 'featuredPropertyNavigation', 'cottageCode': code, 'position': position });\r\n})\r\n","import Reveal from '../modules/Reveal'\r\nimport Helpers from '../modules/Helpers'\r\nimport XHRPromise from 'xhr-promise'\r\n\r\nclass FindAddress {\r\n \r\n search(postcode) {\r\n return new Promise((resolve) => {\r\n const xhr = new XHRPromise()\r\n\r\n xhr.send({\r\n url: '/ajax/postcode.aspx?postCode=' + postcode\r\n }).then((response) => {\r\n return (new window.DOMParser()).parseFromString(response.responseText, \"text/xml\")\r\n })\r\n .then((data) => {\r\n const results = data.getElementsByTagName('Item')\r\n const addresses = []\r\n let error = null\r\n if (results.length == 1 && results[0].getAttribute('error_number') !== null) {\r\n error = results[0].getAttribute('message')\r\n }\r\n\r\n Array.from(results).forEach((result) => {\r\n if (result.getAttribute('id') !== null) {\r\n addresses.push({\r\n id: result.getAttribute('id'),\r\n description: result.getAttribute('description')\r\n })\r\n }\r\n })\r\n\r\n resolve({\r\n error: error,\r\n addresses: addresses\r\n })\r\n })\r\n })\r\n }\r\n\r\n getAddress(id) {\r\n return new Promise((resolve) => {\r\n const xhr = new XHRPromise()\r\n\r\n xhr.send({\r\n url: '/ajax/postcode.aspx?addressID=' + id\r\n }).then((response) => {\r\n return (new window.DOMParser()).parseFromString(response.responseText, \"text/xml\")\r\n })\r\n .then((data) => {\r\n const result = data.getElementsByTagName('Item')[0]\r\n const address = {\r\n org: result.getAttribute('organisation_name'),\r\n line1: result.getAttribute('line1'),\r\n line2: result.getAttribute('line2'),\r\n line3: result.getAttribute('line3'),\r\n line4: result.getAttribute('line4'),\r\n town: result.getAttribute('post_town'),\r\n county: result.getAttribute('county'),\r\n postcode: result.getAttribute('postcode')\r\n }\r\n\r\n resolve({\r\n address: address\r\n })\r\n })\r\n })\r\n }\r\n\r\n validatePostcode(postcode) {\r\n return /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z]))))\\s?[0-9][A-Za-z]{2})$/.test(postcode)\r\n }\r\n}\r\n\r\n\r\nclass FindAddressModal {\r\n constructor() {\r\n this.modal = document.getElementsByClassName('modal-postcode')\r\n this.errorEl = document.getElementsByClassName('modal-postcode__error')[0]\r\n this.resultsEl = document.getElementsByClassName('modal-postcode__results')[0]\r\n this.listeners()\r\n }\r\n \r\n listeners() {\r\n new Helpers(document.getElementsByClassName('modal-postcode__submit')).eventListener((e) => {\r\n e.preventDefault()\r\n this.search()\r\n })\r\n new Helpers(this.resultsEl).eventListener((e) => {\r\n this.loadAddress(e.target.getAttribute('data-id'))\r\n })\r\n new Helpers(document.getElementById('btnFindPostcode')).eventListener((e) => {\r\n document.getElementsByClassName('modal-postcode__search')[0].postcode.value = document.getElementById('txtFindPostcode').value\r\n this.search()\r\n })\r\n }\r\n\r\n postcode() {\r\n return document.getElementsByClassName('modal-postcode__search')[0].postcode.value\r\n }\r\n\r\n search() {\r\n\r\n if (new FindAddress().validatePostcode(this.postcode())) {\r\n new FindAddress().search(this.postcode()).then((results) => {\r\n if (results.error !== null) {\r\n this.error(results.error)\r\n return\r\n }\r\n\r\n if (results.addresses.length === 0) {\r\n this.error(\"No address found for this postcode.\")\r\n } else {\r\n this.listAddresses(results.addresses)\r\n }\r\n })\r\n\r\n } else {\r\n if (this.postcode() === '') {\r\n this.resultsEl.setAttribute('aria-hidden', true)\r\n this.errorEl.setAttribute('aria-hidden', true)\r\n } else {\r\n this.error(\"Provided postcode is not valid.\")\r\n }\r\n }\r\n }\r\n\r\n error(message) {\r\n this.resultsEl.setAttribute('aria-hidden', true)\r\n this.errorEl.setAttribute('aria-hidden', false)\r\n this.errorEl.innerText = message\r\n }\r\n\r\n listAddresses(addresses) {\r\n\r\n this.resultsEl.innerHTML = ''\r\n\r\n addresses.forEach((address) => {\r\n const li = document.createElement('li')\r\n li.innerText = address.description\r\n li.setAttribute('data-id', address.id)\r\n this.resultsEl.appendChild(li)\r\n })\r\n\r\n this.resultsEl.setAttribute('aria-hidden', false)\r\n this.errorEl.setAttribute('aria-hidden', true)\r\n\r\n\r\n }\r\n\r\n loadAddress(id) {\r\n new FindAddress().getAddress(id).then((result) => {\r\n document.querySelector('[id$=_txtAdd1]').value = (result.address.org !== null ? `${result.address.org}, ` : '') + result.address.line1\r\n document.querySelector('[id$=_txtAdd2]').value = result.address.line2\r\n document.querySelector('[id$=_txtAdd3]').value = result.address.line3\r\n document.querySelector('[id$=_txtTown]').value = result.address.town\r\n document.querySelector('[id$=_txtCounty]').value = result.address.county\r\n document.querySelector('[id$=_txtPostcode]').value = result.address.postcode\r\n if (document.querySelector('[id$=_ddlCountry]') !== null) {\r\n document.querySelector('[id$=_ddlCountry]').value = 'GB'\r\n }\r\n\r\n // hide modal\r\n new Reveal(this.modal).hide('modal--active')\r\n new Helpers(document.getElementsByTagName('body')).removeClass('no-scroll')\r\n })\r\n }\r\n}\r\n\r\nif (document.getElementsByClassName('modal-postcode').length) {\r\n const modalPostcode = new FindAddressModal() \r\n}","import Helpers from '../modules/Helpers'\r\n\r\nconst activeButtonClass = 'find-cottage-index__char--active'\r\nconst findCottageIndexButtons = document.getElementsByClassName('find-cottage-index__char')\r\nconst findCottageList = document.getElementsByClassName('find-cottage-index__list')\r\n\r\nnew Helpers(findCottageIndexButtons).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(findCottageIndexButtons).removeClass(activeButtonClass)\r\n new Helpers(e.target).addClass(activeButtonClass)\r\n\r\n const char = e.target.value.toUpperCase()\r\n\r\n Array.from(findCottageList).forEach((ul) => {\r\n Array.from(ul.getElementsByTagName('li')).forEach((li) => {\r\n const startsWith = li.getAttribute('data-char').toUpperCase()\r\n const isNumeric = !isNaN(startsWith)\r\n const visible = char === startsWith || (char === \"0-9\" && isNumeric) || char === \"ALL\"\r\n li.setAttribute('aria-hidden', !visible)\r\n })\r\n })\r\n \r\n})","import Helpers from '../modules/Helpers'\r\nimport XHRPromise from 'xhr-promise'\r\n\r\nclass GeoSearch {\r\n \r\n constructor(input, results, options) {\r\n this.defaultOptions = {\r\n minSearchLength: 3,\r\n noMatchTimeoutDelay: 1000,\r\n placeholderText: {\r\n focus: 'Enter place or cottage name...',\r\n blur: 'Where would you like to go?'\r\n }\r\n }\r\n\r\n this.input = input\r\n this.results = results\r\n this.activeSearch = null\r\n\r\n \r\n\r\n this.options = Object.assign(this.defaultOptions, options)\r\n this.selectActions = []\r\n this.invalidActions = []\r\n\r\n this.inputContentIsValid = true\r\n\r\n this.events()\r\n }\r\n\r\n on(event, callback) {\r\n switch (event) {\r\n case 'select':\r\n this.selectActions.push(callback)\r\n break;\r\n case 'invalid':\r\n this.invalidActions.push(callback)\r\n }\r\n }\r\n\r\n events() {\r\n\r\n new Helpers(this.input).eventListener((e) => {\r\n this.inputContentIsValid = false\r\n this.runSearch()\r\n }, 'search')\r\n\r\n new Helpers(this.input).eventListener((e) => {\r\n this.input.dispatchEvent(new CustomEvent('search'))\r\n }, 'input')\r\n\r\n new Helpers(this.input).eventListener((e) => {\r\n this.input.setAttribute('placeholder', this.options.placeholderText.focus)\r\n }, 'focus')\r\n\r\n new Helpers(this.input).eventListener((e) => {\r\n \r\n // clear the results box on blur - with a delay to ensure click events in the results box would already have fired\r\n setTimeout(() => {\r\n this.input.setAttribute('placeholder', this.options.placeholderText.blur)\r\n if (!this.inputContentIsValid) {\r\n this.invalidActions.forEach((cb) => {\r\n cb(this.input.value)\r\n }) \r\n }\r\n this.clearResults()\r\n }, 300)\r\n }, 'blur')\r\n\r\n new Helpers(this.input).eventListener((e) => {\r\n switch (e.keyCode) {\r\n case 40:\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.highlightNextResult()\r\n return false;\r\n break;\r\n case 38:\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.highlightPrevResult()\r\n return false;\r\n break;\r\n case 13:\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.selectResult()\r\n return false;\r\n break;\r\n case 9:\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.selectResult()\r\n return false;\r\n break;\r\n }\r\n return true;\r\n }, 'keydown')\r\n\r\n new Helpers(this.searchResults).eventListener((e) => {\r\n this.clearHighlight()\r\n }, 'mouseover')\r\n\r\n new Helpers(this.results).eventListener((e) => {\r\n const result = new Helpers(e.target).getClosest('li')\r\n const index = Array.from(this.results.children).indexOf(result)\r\n this.highlightResult(index)\r\n this.selectResult()\r\n })\r\n }\r\n\r\n getHighlightedResult() {\r\n return this.results.querySelector('li[aria-current=\"true\"]')\r\n }\r\n\r\n clearHighlight() {\r\n const results = this.results.querySelectorAll('li')\r\n new Helpers(results).setAttributes({ 'aria-current': false })\r\n }\r\n\r\n highlightResult(index) {\r\n this.clearHighlight()\r\n const result = this.results.children[index]\r\n result.setAttribute('aria-current', true)\r\n }\r\n\r\n highlightPrevResult() {\r\n const currentHighlight = this.getHighlightedResult()\r\n let newHighlight = null\r\n if (currentHighlight === null || currentHighlight.previousElementSibling === null) {\r\n newHighlight = this.results.lastElementChild\r\n } else {\r\n newHighlight = currentHighlight.previousElementSibling\r\n }\r\n const newIndex = Array.from(this.results.children).indexOf(newHighlight)\r\n\r\n this.highlightResult(newIndex)\r\n return this\r\n }\r\n\r\n highlightNextResult() {\r\n const currentHighlight = this.getHighlightedResult()\r\n let newHighlight = null\r\n if (currentHighlight === null || currentHighlight.nextElementSibling === null) {\r\n newHighlight = this.results.firstElementChild\r\n } else {\r\n newHighlight = currentHighlight.nextElementSibling\r\n }\r\n const newIndex = Array.from(this.results.children).indexOf(newHighlight)\r\n\r\n this.highlightResult(newIndex)\r\n return this\r\n }\r\n\r\n\r\n activeResultData() {\r\n const result = this.getHighlightedResult()\r\n if (result !== null) {\r\n return {\r\n type: result.getAttribute('data-type'),\r\n code: result.getAttribute('data-code'),\r\n text: result.getAttribute('data-value'),\r\n url: result.getAttribute('data-url')\r\n }\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n selectResult() {\r\n if (this.hasResults()) {\r\n this.inputContentIsValid = true\r\n this.selectActions.forEach((cb) => {\r\n const data = this.activeResultData()\r\n if (data !== null) {\r\n cb(data)\r\n }\r\n })\r\n }\r\n }\r\n\r\n setValue(value) {\r\n this.inputContentIsValid = true\r\n this.input.value = value\r\n }\r\n\r\n clearResults() {\r\n this.results.innerHTML = ''\r\n }\r\n\r\n hasResults() {\r\n return this.results.querySelectorAll('li').length>0\r\n }\r\n \r\n createResultElement(data) {\r\n const el = document.createElement('li')\r\n el.setAttribute('class','geo-search-result')\r\n if (data.Place.length > 0) {\r\n el.innerHTML = `${data.Name}${data.Place}`\r\n } else {\r\n el.innerHTML = `${data.Name}`\r\n }\r\n el.setAttribute('data-value', data.Name)\r\n el.setAttribute('data-type', data.Type)\r\n el.setAttribute('data-code', data.Code)\r\n el.setAttribute('data-point', data.Point.join(','))\r\n el.setAttribute('data-url', data.Url)\r\n\r\n return el\r\n }\r\n\r\n\r\n runSearch() { \r\n if (this.activeSearch !== null) {\r\n this.activeSearch.getXHR().abort()\r\n this.activeSearch = null\r\n }\r\n\r\n // if search term is atleast three characters or a numeric value\r\n if (this.input.value.length >= this.options.minSearchLength || (this.input.value.length >= 1 && !isNaN(this.input.value))) {\r\n\r\n this.activeSearch = new XHRPromise()\r\n\r\n this.activeSearch.send({\r\n url: `/feeds/geoSearch.aspx?s=${this.input.value}`\r\n }).then((response) => {\r\n const resultCount = response.responseText.length\r\n // clear the results list\r\n this.clearResults()\r\n // build and apply html for each result\r\n response.responseText.forEach((r) => {\r\n this.results.appendChild(this.createResultElement(r))\r\n })\r\n\r\n if (resultCount > 0) {\r\n if (resultCount === 1) {\r\n // we have one result, highlight it\r\n this.highlightResult(0)\r\n }\r\n } else {\r\n // no results for this term, log it as a GA event (with some debounce logic)\r\n clearTimeout(this.noMatchTimeout)\r\n this.noMatchTimeout = setTimeout(() => {\r\n window.dataLayerQueue = window.dataLayerQueue || []\r\n window.dataLayerQueue.push({ 'event': 'resultsLocationSearch', 'searchTerm': this.input.value });\r\n }, this.options.noMatchTimeoutDelay)\r\n\r\n }\r\n this.activeSearch = null\r\n }).catch((error) => {\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n }\r\n });\r\n } else {\r\n // clear the results list\r\n this.clearResults()\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default GeoSearch","import Helpers from '../modules/Helpers'\r\nimport StarRating from '../modules/StarRating'\r\nimport XHRPromise from 'xhr-promise'\r\n\r\nconst modal = document.getElementById('guideReviewModal')\r\n\r\nif (modal !== null) {\r\n\r\n const titleEl = modal.getElementsByTagName('h3')[0]\r\n const form = modal.getElementsByTagName('form')[0]\r\n const successView = modal.getElementsByClassName('modal-guide-review__success')\r\n const errorView = modal.getElementsByClassName('modal-guide-review__error')\r\n\r\n // on button click, initialise modal\r\n new Helpers(document.getElementsByClassName('property-explore__review-cta')).eventListener((e) => {\r\n const el = e.target\r\n\r\n // get attraction info from button\r\n const attractionId = el.getAttribute('data-id')\r\n const attractionName = el.getAttribute('data-name')\r\n \r\n // reset view\r\n form.setAttribute('aria-hidden', false)\r\n new Helpers(successView).setAttributes({ 'aria-hidden': true })\r\n new Helpers(errorView).setAttributes({ 'aria-hidden': true })\r\n\r\n // set the title and the id\r\n titleEl.innerText = `Review ${attractionName}`\r\n form.attractionId.value = attractionId\r\n\r\n // reset form values\r\n form.reviewTitle.value = ''\r\n form.reviewDescription.value = ''\r\n form.reviewAnonymous.checked = false\r\n new StarRating(modal.getElementsByClassName('star-rating')[0]).clear()\r\n \r\n })\r\n\r\n\r\n // on submit of modal form, handle with ajax\r\n new Helpers(form).eventListener((e) => {\r\n e.preventDefault()\r\n const xhr = new XHRPromise()\r\n\r\n xhr.send({\r\n method: 'POST',\r\n url: \"/my-classic/Ajax.aspx\",\r\n data: `type=submitreview&AttractionId=${form.attractionId.value}&Title=${form.reviewTitle.value}&Description=${form.reviewDescription.value}&StarRating=${form.reviewRating.value}&Anonymous=${form.reviewAnonymous.checked ? 1 : 0}`\r\n })\r\n .then((response) => {\r\n if (response.status !== 200) {\r\n throw new Error('submission failed')\r\n }\r\n //show success dialog, with timeout to close modal\r\n form.setAttribute('aria-hidden', true)\r\n new Helpers(successView).setAttributes({ 'aria-hidden': false })\r\n })\r\n .catch((e) => {\r\n // show failure dialog\r\n form.setAttribute('aria-hidden', true)\r\n new Helpers(errorView).setAttributes({ 'aria-hidden': false })\r\n })\r\n }, 'submit')\r\n\r\n}","import Helpers from '../modules/Helpers'\r\nimport Reveal from '../modules/Reveal'\r\n\r\nconst headerSecondaryLinksIcon = document.getElementById('headerSecondaryLinksIcon')\r\nconst headerLinks = document.getElementById('headerLinks')\r\n\r\n// Toggle header secondary navigation when clicking\r\n// burger icon (only visible on small desktops).\r\nnew Helpers(headerSecondaryLinksIcon).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(headerSecondaryLinksIcon).toggleClass('burger-icon--active')\r\n new Reveal(headerLinks).toggle('header__links--active')\r\n})\r\n","import isNodeList from './IsNodeList'\r\n\r\nclass Helpers {\r\n constructor(element) {\r\n // Ensure whatever element is passed into the\r\n // constructor is an array, as methods loop\r\n // over every element using `forEach`.\r\n if (Array.isArray(element)) {\r\n this.element = element\r\n } else if (!isNodeList(element)) {\r\n this.element = [element]\r\n } else {\r\n this.element = Array.from(element)\r\n }\r\n }\r\n\r\n /**\r\n * Get closest element\r\n *\r\n * @param {HTMLElement|HTMLCollection|NodeList} selector Name of closest element to get\r\n * @return {HTMLElement|HTMLCollection|NodeList} Closest element\r\n */\r\n getClosest(selector) {\r\n this.element.forEach((element) => {\r\n let currentElement = element\r\n\r\n while (currentElement) {\r\n if (typeof selector === 'string') {\r\n if (currentElement.matches(selector)) {\r\n this.closestElement = currentElement\r\n return\r\n }\r\n } else if (currentElement === selector) {\r\n this.closestElement = currentElement\r\n return\r\n }\r\n\r\n currentElement = currentElement.parentElement\r\n }\r\n })\r\n\r\n return this.closestElement\r\n }\r\n\r\n getNext(selector) {\r\n this.element.forEach((element) => {\r\n let currentElement = element\r\n\r\n while (currentElement = currentElement.nextElementSibling) {\r\n if (currentElement.matches(selector)) {\r\n this.nextElement = currentElement\r\n return\r\n }\r\n }\r\n })\r\n\r\n return this.nextElement\r\n }\r\n\r\n getPrevious(selector) {\r\n this.element.forEach((element) => {\r\n let currentElement = element\r\n\r\n while (currentElement = currentElement.previousElementSibling) {\r\n if (currentElement.matches(selector)) {\r\n this.previousElement = currentElement\r\n return\r\n }\r\n }\r\n })\r\n\r\n return this.previousElement\r\n }\r\n\r\n getParents(elem, selector) {\r\n // credit to Chris Ferdinandi: https://gomakethings.com/climbing-up-and-down-the-dom-tree-with-vanilla-javascript/#getting-all-matches-up-the-tree\r\n // Element.matches() polyfill\r\n if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.matchesSelector ||\r\n Element.prototype.mozMatchesSelector ||\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.oMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector ||\r\n function (s) {\r\n var matches = (this.document || this.ownerDocument).querySelectorAll(s),\r\n i = matches.length;\r\n while (--i >= 0 && matches.item(i) !== this) { }\r\n return i > -1;\r\n };\r\n }\r\n\r\n // Setup parents array\r\n var parents = [];\r\n\r\n // Get matching parent elements\r\n for (; elem && elem !== document; elem = elem.parentNode) {\r\n\r\n // Add matching parents to array\r\n if (selector) {\r\n if (elem.matches(selector)) {\r\n parents.push(elem);\r\n }\r\n } else {\r\n parents.push(elem);\r\n }\r\n\r\n }\r\n\r\n return parents;\r\n\r\n };\r\n\r\n /**\r\n * Set multiple element attributes\r\n *\r\n * @param {Object} attributes Attributes and values to set\r\n * @return {Object}\r\n */\r\n setAttributes(attributes) {\r\n this.element.forEach((element) => {\r\n Object.keys(attributes).forEach((key) => {\r\n const attrValue = attributes[key]\r\n if (attrValue === null) {\r\n element.removeAttribute(key)\r\n } else {\r\n element.setAttribute(key, attrValue)\r\n }\r\n })\r\n })\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Remove multiple element attributes\r\n *\r\n * @param {Array} attributes Array of objects to remove\r\n * @return {Object}\r\n */\r\n removeAttributes(attributes) {\r\n this.element.forEach((element) => {\r\n attributes.forEach(function (key, index) {\r\n element.removeAttribute(key)\r\n })\r\n })\r\n\r\n return this\r\n }\r\n\r\n\r\n /**\r\n * Add class to clement\r\n *\r\n * @param {String} className Class name to add\r\n * @return {Object}\r\n */\r\n addClass(...className) {\r\n this.element.forEach(element => element.classList.add(...className))\r\n\r\n return this\r\n }\r\n\r\n\r\n /**\r\n * Remove class from element\r\n *\r\n * @param {String} className Class name to remove\r\n * @return {Object}\r\n */\r\n removeClass(...className) {\r\n this.element.forEach(element => element.classList.remove(...className))\r\n\r\n return this\r\n }\r\n\r\n\r\n /**\r\n * Toggle class on element\r\n *\r\n * @param {String} className Class name to toggle\r\n * @return {Object}\r\n */\r\n toggleClass(...className) {\r\n this.element.forEach(element => element.classList.toggle(...className))\r\n\r\n return this\r\n }\r\n\r\n\r\n /**\r\n * Check if element has class\r\n *\r\n * @param {String} className Class name to check\r\n * @return {Boolean} Whether element has class or not\r\n */\r\n hasClass(className) {\r\n return this.element.filter(element => element.classList.contains(className)).length\r\n }\r\n\r\n\r\n /**\r\n * Toggle element true/false attribute\r\n *\r\n * @param {String} attribute Attribute to toggle\r\n * @return {Object}\r\n */\r\n toggleAttribute(attribute) {\r\n this.element.forEach((element) => {\r\n if (element.getAttribute(attribute) === 'true') {\r\n element.setAttribute(attribute, 'false')\r\n } else {\r\n element.setAttribute(attribute, 'true')\r\n }\r\n })\r\n\r\n return this\r\n }\r\n\r\n\r\n /**\r\n * Create event listener\r\n *\r\n * @param {Function} callback Event listener callback function\r\n * @param {String} [eventListener='click'] Desktop event\r\n * @return {Object}\r\n */\r\n eventListener(callback, eventListener = 'click') {\r\n this.element.forEach((element) => {\r\n if (element) {\r\n element.addEventListener(eventListener, callback, false)\r\n }\r\n })\r\n\r\n return this\r\n }\r\n\r\n delegateEventListener(selector, handler, eventListener = 'click') {\r\n this.element.forEach((element) => {\r\n if (element) {\r\n element.addEventListener(eventListener, function (event) {\r\n var listeningTarget = new Helpers(event.target).getClosest(selector)\r\n if (listeningTarget) {\r\n handler.call(listeningTarget, event)\r\n }\r\n });\r\n }\r\n })\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Remove item from array\r\n *\r\n * @param {HTMLElement|HTMLCollection|NodeList} element Element to remove from array\r\n * @return {Object}\r\n */\r\n exclude(element) {\r\n this.element = this.element.filter(item => element !== item)\r\n\r\n return this\r\n }\r\n\r\n\r\n /**\r\n * Check if element has aria-controls attribute\r\n *\r\n * @return {Boolean} Whether element has aria-controls attribute or not\r\n */\r\n hasAriaControlsAttr() {\r\n return this.element.filter(element => element.getAttribute('aria-controls')).length\r\n }\r\n\r\n // Check if element is in visible viewport (completely in view port)\r\n isInViewport() {\r\n this.elementIsInViewport = false\r\n this.element.forEach((element) => {\r\n const rect = element.getBoundingClientRect()\r\n if ((rect.height > 0 || rect.width > 0) &&\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)) {\r\n\r\n this.elementIsInViewport = true\r\n }\r\n })\r\n\r\n return this.elementIsInViewport\r\n }\r\n\r\n\r\n // Check if element is even partially in viewport\r\n isPartiallyInViewport() {\r\n return this.element.some(element => {\r\n const rect = element.getBoundingClientRect();\r\n return (\r\n rect.top < (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.bottom > 0 &&\r\n rect.left < (window.innerWidth || document.documentElement.clientWidth) &&\r\n rect.right > 0\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * Get largest element width\r\n *\r\n * @return {Integer} Width of largest element\r\n */\r\n getWidth(includePadding = true) {\r\n const widths = this.element.map((element) => {\r\n const styles = window.getComputedStyle(element)\r\n let width = parseInt(styles.width, 10)\r\n\r\n if (!includePadding) {\r\n width = width - parseInt(styles.paddingLeft, 10) - parseInt(styles.paddingRight, 10)\r\n }\r\n\r\n return width\r\n })\r\n\r\n return Math.max(widths)\r\n }\r\n\r\n\r\n /**\r\n * Get largest element height\r\n *\r\n * @return {Integer} Height of largest element\r\n */\r\n getHeight(includePadding = true) {\r\n const heights = this.element.map((element) => {\r\n const styles = window.getComputedStyle(element)\r\n let height = parseInt(styles.height, 10)\r\n\r\n if (!includePadding) {\r\n height = height - parseInt(styles.paddingTop, 10) - parseInt(styles.paddingBottom, 10)\r\n }\r\n\r\n return height\r\n })\r\n\r\n return Math.max(heights)\r\n }\r\n}\r\n\r\nexport default Helpers\r\n","/**\r\n * Check if browser is IE 10\r\n * \r\n * @return {Boolean}\r\n */\r\nconst isBrowserIE10 = () => navigator.userAgent.match('MSIE 10.0;')\r\n\r\nexport default isBrowserIE10\r\n","import Helpers from '../modules/Helpers'\r\n\r\n/**\r\n * Check if browser is IE 9\r\n * \r\n * @return {Boolean}\r\n */\r\nconst isBrowserIE9 = () => {\r\n const htmlTag = document.getElementsByTagName('html')[0]\r\n\r\n return new Helpers(htmlTag).hasClass('ie9')\r\n}\r\n\r\nexport default isBrowserIE9\r\n","/**\r\n * Check if element is a node list\r\n *\r\n * @param {HTMLElement|HTMLCollection|NodeList} el Element to check\r\n * @return {Boolean}\r\n */\r\nconst IsNodeList = (el) => {\r\n const stringRepr = Object.prototype.toString.call(el)\r\n\r\n return typeof el === 'object' &&\r\n /^\\[object (HTMLCollection|NodeList|RadioNodeList|Object)\\]$/.test(stringRepr) &&\r\n (typeof el.length === 'number') &&\r\n (el.length === 0 || (typeof el[0] === 'object' && el[0].nodeType > 0))\r\n}\r\n\r\nexport default IsNodeList\r\n","window.IS_TOUCH_DEVICE = false\r\n\r\n/**\r\n * Check if user's device supports touch\r\n * \r\n * @return {Boolean}\r\n */\r\nwindow.IS_TOUCH_DEVICE = ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch\r\n","/* global L */\r\n\r\n// Set mapbox API access token\r\nif (typeof (L) !== 'undefined') {\r\n L.mapbox.accessToken = 'pk.eyJ1IjoiY2xhc3NpY2NvdHRhZ2VzIiwiYSI6ImNpcmJ3djZjNDAwNXNpOW1nbTF3bjIwcjcifQ.wUw-oQaU0UmbS3vsv_e8yQ'\r\n}\r\n\r\nexport function streetLayer(provider = 'osm') {\r\n switch (provider) {\r\n case 'osm':\r\n return L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {\r\n tileSize: 256,\r\n minZoom: 1,\r\n maxZoom: 19,\r\n attribution: 'Map data © OpenStreetMap contributors',\r\n crossOrigin: true,\r\n })\r\n case 'mapbox':\r\n return L.mapbox.styleLayer('mapbox://styles/mapbox/streets-v10')\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nexport function satelliteLayer(provider = 'mapbox') {\r\n switch (provider) {\r\n case 'mapbox':\r\n return L.mapbox.styleLayer('mapbox://styles/mapbox/satellite-streets-v10')\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nclass Map {\r\n constructor(elementId, options = {}, customLayers = null) {\r\n this.container = document.getElementById(elementId)\r\n const opts = Object.assign({\r\n zoom: 9,\r\n maxZoom: 15,\r\n minZoom: 7,\r\n }, options)\r\n\r\n const layers = customLayers || {\r\n Streets: streetLayer(),\r\n Satellite: satelliteLayer(),\r\n }\r\n\r\n this.map = L.mapbox.map(elementId, null, opts)\r\n // assign the first layer as default\r\n layers[Object.keys(layers)[0]].addTo(this.map)\r\n\r\n // if there are more than one layers, show the control to\r\n // be able to switch between them\r\n if (Object.keys(layers).length > 1) {\r\n L.control.layers(layers, {}, { position: 'topleft' }).addTo(this.map)\r\n }\r\n\r\n // empty arrays for additional ui elements\r\n this.markers = []\r\n this.shapes = []\r\n this.cluster = null\r\n }\r\n\r\n addMarker(coords, options = {}, popupContent = null) {\r\n const defaults = {\r\n zindex: 1,\r\n }\r\n\r\n const marker = L.marker(coords, Object.assign({}, defaults, options)).addTo(this.map)\r\n this.markers.push(marker)\r\n\r\n if (popupContent !== null) {\r\n marker.bindPopup(popupContent)\r\n } else if (options.title) {\r\n marker.bindPopup(`${options.title}`)\r\n }\r\n\r\n return marker\r\n }\r\n\r\n fitMarkers(options = {}) {\r\n const boundsOpts = Object.assign({\r\n padding: [10, 10],\r\n }, options)\r\n\r\n if (this.markers.length > 0) {\r\n // create a group to hold all shapes\r\n const group = L.featureGroup(this.markers)\r\n // reference this group to retrieve the combined bounds\r\n this.map.fitBounds(group.getBounds(), boundsOpts)\r\n }\r\n\r\n return this\r\n }\r\n\r\n clusterMarkers() {\r\n if (this.cluster === null) {\r\n this.cluster = L.markerClusterGroup({\r\n showCoverageOnHover: false,\r\n maxClusterRadius: 30,\r\n spiderLegPolylineOptions: { weight: 3, color: '#206FA2', opacity: 1 },\r\n spiderfyDistanceMultiplier: 2,\r\n })\r\n this.map.addLayer(this.cluster)\r\n }\r\n\r\n this.markers.forEach((marker) => {\r\n marker.remove()\r\n this.cluster.addLayer(marker)\r\n })\r\n }\r\n\r\n\r\n clearMarkers() {\r\n if (this.cluster !== null) {\r\n this.cluster.clearLayers()\r\n }\r\n\r\n this.markers.forEach((marker) => {\r\n marker.remove()\r\n })\r\n this.markers = []\r\n\r\n return this\r\n }\r\n\r\n addShape(wkt, options = {}) {\r\n const shapeOpts = Object.assign({\r\n weight: 3,\r\n color: '#29abe3',\r\n opacity: 1,\r\n fillColor: '#29abe3',\r\n fillOpacity: 0.5,\r\n }, options)\r\n const coords = this.parseWKT(wkt)\r\n\r\n if (coords !== null) {\r\n const shape = L.polyline(coords, shapeOpts).addTo(this.map)\r\n this.shapes.push(shape)\r\n }\r\n return this\r\n }\r\n\r\n fitShapes(options = {}) {\r\n const boundsOpts = Object.assign({\r\n padding: [10, 10],\r\n }, options)\r\n\r\n if (this.shapes.length > 0) {\r\n // create a group to hold all shapes\r\n const group = L.featureGroup(this.shapes)\r\n // reference this group to retrieve the combined bounds\r\n this.map.fitBounds(group.getBounds(), boundsOpts)\r\n }\r\n return this\r\n }\r\n\r\n clearShapes() {\r\n this.shapes.forEach((shape) => {\r\n shape.remove()\r\n })\r\n this.shapes = []\r\n\r\n return this\r\n }\r\n\r\n /* eslint class-methods-use-this:0 */\r\n parseWKT(wkt = '') {\r\n if (wkt !== '') {\r\n const parameters = wkt.match(/([A-Z ]+)\\([(]?([0-9-. ,]+)\\)[)]?/)\r\n if (parameters) {\r\n const coords = []\r\n const lls = parameters[2].split(',')\r\n lls.forEach((ll) => {\r\n const llarr = ll.trim().split(' ')\r\n coords.push(L.latLng(...llarr.reverse()))\r\n })\r\n return coords\r\n }\r\n }\r\n return null\r\n }\r\n}\r\n\r\nexport default Map\r\n","import Helpers from '../modules/Helpers'\r\n\r\nconst body = document.querySelector('body')\r\nconst header = document.getElementById('header')\r\nconst mobileNavigationIcon = document.getElementById('mobileNavIcon')\r\nconst megaMenus = document.getElementsByClassName('megamenu')\r\nconst megaMenuToggles = document.getElementsByClassName('megamenu-toggle')\r\nconst ownerNavTaggles = document.getElementsByClassName('owners-navigation__toggles')\r\nconst ownerNavMenu = document.getElementsByClassName('owners-navigation__options')\r\n\r\n// Open and close mobile navigation when clicking mobile menu icon\r\nnew Helpers(mobileNavigationIcon).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(mobileNavigationIcon).toggleClass('burger-icon--active')\r\n new Helpers(header).toggleAttribute('aria-expanded')\r\n\r\n new Helpers(body)\r\n .toggleClass('mobile-nav--active')\r\n .removeClass('megamenu--expanded')\r\n\r\n new Helpers(megaMenus).removeClass('megamenu--active')\r\n new Helpers(megaMenuToggles).removeClass('megamenu-toggle--active')\r\n})\r\n\r\nnew Helpers(ownerNavTaggles).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(ownerNavMenu).toggleClass('owners-navigation__options--active')\r\n})\r\n\r\n","import Helpers from '../modules/Helpers'\r\n\r\nconst body = document.querySelector('body')\r\nconst resultsFilterToggle = document.getElementsByClassName('results-mobile-nav__filter')\r\nconst resultsFilterClose = document.getElementsByClassName('results-aside__close')\r\nconst resultFilterApply = document.getElementsByClassName('results-aside__apply-filter')\r\n\r\n// Results filter active classes\r\nconst resultsFilterClass = 'results-aside--active'\r\nconst noScrollClass = 'no-scroll'\r\n\r\n// Show results page mobile 'Filter by'\r\n// navigation when clicking open button.\r\nnew Helpers(resultsFilterToggle).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(body).addClass(\r\n resultsFilterClass,\r\n noScrollClass,\r\n )\r\n})\r\n\r\n// Hide all active results page mobile filters\r\n// when clicking close button.\r\nnew Helpers(resultsFilterClose).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(body).removeClass(\r\n resultsFilterClass,\r\n noScrollClass,\r\n )\r\n})\r\n\r\n// Hide mobile filters and return to search\r\n// when clicking apply\r\nnew Helpers(resultFilterApply).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(body).removeClass(\r\n resultsFilterClass,\r\n noScrollClass,\r\n )\r\n})\r\n\r\n","import Helpers from '../modules/Helpers'\r\nimport Reveal from '../modules/Reveal'\r\n\r\nconst body = document.querySelector('body')\r\nconst modals = document.getElementsByClassName('modal')\r\nconst modalContent = document.getElementsByClassName('modal__content')\r\nconst modalOpen = document.getElementsByClassName('modal-open')\r\nconst modalClose = document.querySelectorAll('.modal, .modal-close')\r\nconst noScrollClass = 'no-scroll'\r\n\r\n// Modal active class\r\nconst activeClass = 'modal--active'\r\n\r\n\r\n// Listen to all modal toggle buttons in order \r\n// to open corresponding modal.\r\nnew Helpers(document.getElementsByTagName('body')).delegateEventListener('.modal-open', (e) => {\r\n let el = e.target\r\n if (!new Helpers(el).hasClass('modal-open')) {\r\n el = new Helpers(el).getClosest('.modal-open')\r\n }\r\n\r\n const modalId = el.getAttribute('aria-controls')\r\n const modal = document.getElementById(modalId)\r\n \r\n // condition for modals with \"modal-processing\" class\r\n // only open them if the form is valid and in a submittable state\r\n if (new Helpers(modal).hasClass('modal-processing')) {\r\n const form = new Helpers(e.target).getClosest('form')\r\n if (!form.checkValidity()) {\r\n return\r\n }\r\n }\r\n\r\n new Reveal(modal).show(activeClass)\r\n new Helpers(body).addClass(noScrollClass)\r\n\r\n // if this is a standard modal, prevent the original click event from proceeding\r\n // otherwise continue, this has been added to accomodate loading modals that have the class .modal-processing\r\n if (new Helpers(modal).hasClass('modal')) {\r\n e.preventDefault()\r\n }\r\n\r\n const modalType = el.getAttribute('data-modal-type')\r\n const modalValue = el.getAttribute('data-modal-value')\r\n if (modalType !== null) {\r\n window.dataLayerQueue = window.dataLayerQueue || []\r\n window.dataLayerQueue.push({ 'event': 'modalOpen', 'modalType': modalType, 'modalValue': modalValue })\r\n }\r\n\r\n})\r\n\r\n\r\n// Listen to all modal toggle buttons in order \r\n// to close corresponding modal.\r\nnew Helpers(document.getElementsByTagName('body')).delegateEventListener('.modal, .modal-close', (e) => {\r\n if (new Helpers(e.target).getClosest('.modal-close') || !new Helpers(e.target).getClosest('.modal__content')) {\r\n new Reveal(modals).hide(activeClass)\r\n new Helpers(body).removeClass(noScrollClass)\r\n }\r\n})\r\n\r\n","import Helpers from '../modules/Helpers'\r\n\r\nclass NRequired {\r\n constructor(group) {\r\n this.group = group\r\n\r\n this.requiredCount = parseInt(group.getAttribute(\"data-required-count\") || 0)\r\n this.inputs = Array.from(group.getElementsByTagName('input'))\r\n\r\n if (this.inputs[0].setCustomValidity === undefined) {\r\n // can't use this here, the browser doesn't support it\r\n return\r\n }\r\n\r\n this.setValidity()\r\n this.setListener()\r\n }\r\n\r\n populatedCount() {\r\n return this.inputs.filter(i => i.value.length > 0).length\r\n }\r\n\r\n setValidity() {\r\n // reset\r\n this.clearValidity()\r\n // if set count less than required specify invalidity\r\n if (this.populatedCount() < this.requiredCount) {\r\n this.inputs.forEach((input) => {\r\n if (input.value.length == 0) {\r\n input.setCustomValidity('At least ' + this.requiredCount + ' must be provided')\r\n }\r\n })\r\n }\r\n }\r\n\r\n clearValidity() {\r\n this.inputs.forEach((input) => {\r\n input.setCustomValidity('')\r\n })\r\n }\r\n\r\n setListener() {\r\n let self = this\r\n\r\n this.inputs.forEach((input) => {\r\n new Helpers(input).eventListener((e) => {\r\n self.setValidity()\r\n }, 'change')\r\n })\r\n }\r\n}\r\n\r\nexport default NRequired","import Helpers from './Helpers'\r\nimport Reveal from '../modules/Reveal'\r\nimport XhrPromise from 'xhr-promise'\r\n\r\n\r\n// Request\r\nconst sendEmailToNewsletterSignUp = (e, signUpContainer, formObject) => {\r\n e.preventDefault();\r\n\r\n const xhr = new XhrPromise();\r\n const { emailField, formUI, errorUI, successUI } = formObject;\r\n const emailAddress = emailField.value;\r\n\r\n xhr.send({\r\n url: '/ajax/newsletter.aspx',\r\n method: 'POST',\r\n data: `email=${emailAddress}`\r\n })\r\n .then((response) => {\r\n return response.responseText.length > 0 ? JSON.parse(response.responseText) : {};\r\n })\r\n .then((data) => {\r\n formUI.setAttribute('aria-hidden', 'true');\r\n errorUI.setAttribute('aria-hidden', data.error ? 'false' : 'true');\r\n successUI.setAttribute('aria-hidden', data.error ? 'true' : 'false');\r\n\r\n if (!data.error) {\r\n setTimeout(() => new Helpers(signUpContainer).removeClass('modal--active'), 6000);\r\n }\r\n });\r\n};\r\n\r\n// Create Sign Up Object\r\nconst createSignUpFormObject = container => {\r\n return {\r\n formUI: container.getElementsByClassName('sign-up')[0],\r\n successUI: container.getElementsByClassName('newsletter__success')[0],\r\n errorUI: container.getElementsByClassName('newsletter__error')[0],\r\n submitButton: container.getElementsByTagName('button')[0],\r\n emailField: container.getElementsByTagName('input')[0],\r\n };\r\n};\r\n\r\n// Footer sign up\r\nconst newsletterFooterSignUp = document.getElementById('footer-newsletter-sign-up');\r\nif (newsletterFooterSignUp) {\r\n const formObject = createSignUpFormObject(newsletterFooterSignUp);\r\n new Helpers(formObject.formUI.getElementsByTagName('form')).eventListener((e) => {\r\n sendEmailToNewsletterSignUp(e, newsletterFooterSignUp, formObject);\r\n }, 'submit');\r\n}\r\n\r\n// Modal sign Up\r\nconst newsletterModalSignUp = document.getElementById('modal-newsletter-sign-up');\r\nif (newsletterModalSignUp) {\r\n const formObject = createSignUpFormObject(newsletterModalSignUp);\r\n new Helpers(formObject.formUI.getElementsByTagName('form')).eventListener((e) => {\r\n sendEmailToNewsletterSignUp(e, newsletterModalSignUp, formObject);\r\n }, 'submit');\r\n}\r\n\r\n\r\n\r\n// Get the query parameters and check if we want to load the page with the newsletter sign up modal open\r\nif (newsletterModalSignUp) {\r\n const queryParams = new URLSearchParams(window.location.search);\r\n const paramName = 'newsletter';\r\n if (newsletterModalSignUp && queryParams.has(paramName)) {\r\n const activeClass = 'modal--active';\r\n new Reveal(newsletterModalSignUp).show(activeClass);\r\n }\r\n}\r\n","import Helpers from '../modules/Helpers'\r\nimport Map, { streetLayer } from '../modules/Map'\r\n\r\nif (document.getElementsByClassName('owners-contact').length) {\r\n \r\n new Helpers(document.getElementById('showMap')).eventListener((e) => {\r\n if (this.map === undefined) {\r\n /**\r\n * Initialise the map\r\n * use a small timeout to ensure the panel is visible first\r\n **/\r\n setTimeout(() => {\r\n this.map = new Map('map', {\r\n center: [50.72, -3.53], zoom: 7,\r\n }, {\r\n 'Streets': streetLayer(),\r\n })\r\n\r\n /**\r\n * Add marker to the map, where the user clicked and set a hidden value\r\n **/\r\n this.map.map.on('click', (data) => {\r\n this.map.clearMarkers()\r\n this.map.addMarker(data.latlng)\r\n document.getElementsByClassName('owners-contact__latlng')[0].value = data.latlng.lat + \",\" + data.latlng.lng\r\n })\r\n\r\n /**\r\n * Remove the marker icon (and clear the hidden value)\r\n **/\r\n new Helpers(document.getElementById('clearMarker')).eventListener((e) => {\r\n e.preventDefault()\r\n this.map.clearMarkers()\r\n document.getElementsByClassName('owners-contact__latlng')[0].value = ''\r\n })\r\n\r\n\r\n }, 100)\r\n }\r\n })\r\n \r\n}","import imageMapResize from 'image-map-resizer'\r\nimport Map from '../modules/Map'\r\nimport Helpers from '../modules/Helpers'\r\n\r\nif (document.getElementsByClassName('owners-location__map').length) {\r\n const map = new Map('map', { center: [50.102, -5.275], zoom: 12 })\r\n const wkt = document.getElementById('map').getAttribute('data-shape')\r\n map.addShape(wkt)\r\n map.fitShapes()\r\n}\r\n\r\nconst imageEl = document.getElementById('owners-cms-block-map__image')\r\nif (typeof (imageEl) !== 'undefined' && imageEl !== null) {\r\n imageMapResize()\r\n\r\n const imageSrc = imageEl.src\r\n const regions = {\r\n 'owners-cms-block-map__cornwall': '/media/owners/02-Cornwall.jpg',\r\n 'owners-cms-block-map__devon': '/media/owners/03-Devon.jpg',\r\n 'owners-cms-block-map__somerset': '/media/owners/04-Somerset.jpg',\r\n 'owners-cms-block-map__dorset': '/media/owners/05-Dorset.jpg',\r\n 'owners-cms-block-map__hampshire': '/media/owners/06-Hampshire.jpg',\r\n 'owners-cms-block-map__sussex': '/media/owners/09_Sussex_Kent.jpg',\r\n 'owners-cms-block-map__isle-of-wight': '/media/owners/08-Isle-Of-Wight.jpg',\r\n 'owners-cms-block-map__pembrokeshire': '/media/owners/09-pembrokeshire.jpg',\r\n 'owners-cms-block-map__cotswolds': '/media/owners/03-Cotswolds.jpg'\r\n }\r\n\r\n Object.keys(regions).forEach((selector) => {\r\n const regionArea = document.getElementById(selector)\r\n const regionImage = regions[selector]\r\n\r\n new Helpers(regionArea).eventListener((e) => {\r\n imageEl.src = regionImage\r\n }, 'mouseover')\r\n\r\n new Helpers(regionArea).eventListener((e) => {\r\n imageEl.src = imageSrc\r\n }, 'mouseout')\r\n })\r\n}\r\n","import XHRPromise from 'xhr-promise'\r\nimport moment from 'moment'\r\n\r\n(function () {\r\n let activeFetch = -1\r\n const daySelector = document.getElementById('daySelector') \r\n const urlParams = new URLSearchParams(window.location.search);\r\n const bookingId = urlParams.get('brn');\r\n\r\n if (daySelector != null) {\r\n daySelector.addEventListener(\"change\", () => {\r\n const hidSelectedDay = document.getElementById('hidSelectedDay')\r\n hidSelectedDay.value = daySelector.value\r\n getPaymentSchedule(bookingId, daySelector.value)\r\n })\r\n\r\n\r\n let getPaymentSchedule = async (bookingID, dayOfMonth) => {\r\n const feedEndpoint = `/feeds/paymentScheduleFeed.aspx?bookingID=${bookingID}&dayOfMonth=${dayOfMonth}`\r\n\r\n try {\r\n if (activeFetch !== -1) {\r\n activeFetch.getXHR().abort()\r\n }\r\n\r\n activeFetch = new XHRPromise()\r\n const response = await activeFetch.send({\r\n url: feedEndpoint,\r\n })\r\n const data = response.responseText\r\n updateUI(data)\r\n activeFetch = -1\r\n } catch (error) {\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n }\r\n }\r\n };\r\n\r\n let updateUI = (data) => {\r\n\r\n let finalPayment = data.Table[data.Table.length - 1].Amount\r\n\r\n // Filter the table to only include rows with PaymentId as null\r\n const filteredTable = data.Table.filter(row => row.PaymentId === null)\r\n\r\n let noOfPayments = filteredTable.length\r\n let monthlyPayments = filteredTable[0].Amount\r\n\r\n const paymentSummary = document.getElementById('paymentSummary')\r\n\r\n if (monthlyPayments === finalPayment) {\r\n paymentSummary.innerText = `You will be charged ${formatCurrency(monthlyPayments)} for ${noOfPayments} months.`\r\n } else {\r\n noOfPayments--; // Remove the final payment from the count\r\n paymentSummary.innerText = `You will be charged ${formatCurrency(monthlyPayments)} for ${noOfPayments} months and then a final payment of ${formatCurrency(finalPayment)}.`\r\n }\r\n }\r\n\r\n // Function to format number as currency\r\n const formatCurrency = (amount) => {\r\n return Number(amount).toLocaleString('en-GB', {\r\n style: 'currency',\r\n currency: 'GBP'\r\n })\r\n }\r\n\r\n getPaymentSchedule(bookingId, 1)\r\n } \r\n})()\r\n\r\n","import Helpers from '../modules/Helpers'\r\nimport Reveal from '../modules/Reveal'\r\n\r\n\r\nvar StarReviewField = document.getElementsByClassName('StarReviewField')\r\nvar stars = document.getElementsByClassName('star')\r\nvar submit = document.getElementsByClassName('questionnaire__buttons-submit')\r\n\r\n//set the review stars from db\r\n\r\nfor (var i = 0; i < stars.length; i++) {\r\n var starNum = stars[i].getAttribute('data-starNumber')\r\n if (starNum <= StarReviewField[0].value) {\r\n new Helpers(stars[i]).addClass('star--rated')\r\n }\r\n}\r\n\r\nnew Helpers(stars).eventListener((e) => {\r\n new Helpers(stars).removeClass('star--rated')\r\n var StarClicked = e.target\r\n\r\n for (var i = 0; i < StarClicked.getAttribute('data-starNumber'); i++) {\r\n new Helpers(stars[i]).addClass('star--rated')\r\n }\r\n StarReviewField[0].value = StarClicked.getAttribute('data-starNumber')\r\n})\r\n\r\n\r\nvar quest = { unAnsweredQuestions: 0, submitCount: 0 }\r\nquest.validationMessage = document.getElementById('questionnaire__validation-message')\r\n\r\n//Validate responses as essential fields on version 2:\r\nif (quest.validationMessage !== null){\r\n var submitButton = document.getElementsByClassName('questionnaire__buttons-submit')\r\n var form = new Helpers(submitButton).getClosest('form')\r\n form.checkValidity = function () {\r\n return quest.checkOnComplete()\r\n }\r\n\r\n var answers = document.getElementsByTagName(\"input\")\r\n new Helpers(answers).eventListener((e) => {\r\n quest.trackUnanswered()\r\n })\r\n}\r\n\r\n\r\nquest.checkOnComplete = function () {\r\n quest.submitCount++\r\n quest.trackUnanswered()\r\n return !(quest.unAnsweredQuestions > 0)\r\n}\r\n\r\nquest.trackUnanswered = function () {\r\n\r\n if (quest.validationMessage !== null) {\r\n quest.checkQuestions()\r\n if (quest.unAnsweredQuestions > 0) {\r\n quest.validationMessage.innerText = 'Please complete the ' + quest.unAnsweredQuestions.toString() + ' unanswered question' + (quest.unAnsweredQuestions > 1 ? 's' : '') + ' above before pressing submit.'\r\n if (quest.submitCount > 0) {\r\n new Helpers(quest.validationMessage).addClass('incomplete')\r\n }\r\n } else {\r\n quest.validationMessage.innerText = ''\r\n }\r\n }\r\n}\r\n\r\nquest.checkAQuestion = function (rdoGroupName, rdoLabelId) {\r\n\r\n rdoLabelId = (typeof rdoLabelId === 'undefined') ? rdoGroupName : rdoLabelId\r\n var rdoLabel = document.getElementById(rdoLabelId)\r\n\r\n if (rdoLabel !== null) {\r\n try {\r\n if (quest.RDONull(rdoGroupName)) {\r\n quest.unAnsweredQuestions++\r\n if (quest.submitCount > 0) {\r\n rdoLabel.classList.add('incomplete')\r\n }\r\n } else {\r\n rdoLabel.classList.remove('incomplete')\r\n }\r\n }\r\n catch (e) {\r\n console.log(e)\r\n rdoLabel.classList.remove('incomplete')\r\n }\r\n }\r\n}\r\n\r\nquest.checkQuestions = function () {\r\n quest.unAnsweredQuestions = 0\r\n quest.checkAQuestion('qstDescription')\r\n quest.checkAQuestion('qstBooking')\r\n quest.checkAQuestion('qstRD')\r\n quest.checkAQuestion('qstStaff')\r\n quest.checkAQuestion('nps','nps-label')\r\n quest.checkAQuestion('qstCleanliness')\r\n quest.checkAQuestion('qstLocation')\r\n quest.checkAQuestion('qstComfort')\r\n quest.checkAQuestion('qstDFE')\r\n quest.checkAQuestion('qstInventory')\r\n quest.checkAQuestion('qstValue')\r\n quest.checkAQuestion('qstExpectation')\r\n //quest.checkAQuestion('rdoReccommend', 'qstReccommend')\r\n\r\n}\r\n\r\n\r\nquest.RDONull = function (RDOGroupName) {\r\n var ctls = document.getElementById(RDOGroupName).getElementsByTagName(\"input\")\r\n for (var i = 0; i < ctls.length; i++) {\r\n if (ctls[i].checked) {\r\n return false\r\n }\r\n }\r\n return true;\r\n}\r","import Helpers from '../modules/Helpers'\r\nimport isBrowserIE10 from '../modules/IsBrowserIE10'\r\n\r\nconst rangerSliders = document.getElementsByClassName('ranger-slider')\r\n\r\n// Ensure correct event is used in IE 10 as\r\n// 'input' event is buggy in IE 10\r\nconst event = isBrowserIE10() ? 'change' : 'input'\r\n\r\n// When a slider inputs value is changed by sliding,\r\n// change the corresponding output to show user\r\n// their current selection.\r\nnew Helpers(rangerSliders).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n const rangeSliderOutputId = e.target.getAttribute('aria-controls')\r\n const rangeSliderOutput = document.getElementById(rangeSliderOutputId)\r\n\r\n // When the value of the slider is greater the 1,\r\n // update the iner HTML of the corresponding output\r\n // element to reflect their selection.\r\n if (parseFloat(e.target.value) == 1) {\r\n rangeSliderOutput.innerHTML = `1 mile`\r\n } else if (parseFloat(e.target.value) > 0) {\r\n rangeSliderOutput.innerHTML = `${e.target.value} miles`\r\n } else {\r\n rangeSliderOutput.innerHTML = 'This area only'\r\n }\r\n}, event)\r\n\r\nnew Helpers(rangerSliders).eventListener((e) => {\r\n const rangeSliderOutputId = e.target.getAttribute('aria-controls')\r\n const rangeSliderOutput = document.getElementById(rangeSliderOutputId)\r\n\r\n // When the value of the slider is greater the 1,\r\n // update the iner HTML of the corresponding output\r\n // element to reflect their selection.\r\n if (parseFloat(e.target.value) == 1) {\r\n rangeSliderOutput.innerHTML = `1 mile`\r\n } else if (parseFloat(e.target.value) > 0) {\r\n rangeSliderOutput.innerHTML = `${e.target.value} miles`\r\n } else {\r\n rangeSliderOutput.innerHTML = 'This area only'\r\n }\r\n}, 'sync')\r\n","import he from 'he'\r\nimport moment from 'moment'\r\nimport XHRPromise from 'xhr-promise'\r\nimport './vendor/History'\r\nimport Helpers from './Helpers'\r\nimport Locations from './results/Results.Location'\r\nimport Facets from './results/Results.Facets'\r\nimport Party from './results/Results.Party'\r\nimport Dates from './results/Results.Dates'\r\nimport UI from './results/Results.UI'\r\nimport Header from './results/Results.Header'\r\nimport Pagination from './results/Results.Pagination'\r\nimport Map from './results/Results.Map'\r\nimport Sorting from './results/Results.Sorting'\r\nimport Slider from '../modules/Slider'\r\nimport Tracking from './results/Results.Tracking'\r\nimport LastMinute from './results/Results.LastMinute'\r\n\r\nconst History = window.History\r\n\r\nconst searchControl = document.getElementsByClassName('results-aside')[0]\r\n\r\nclass Results {\r\n constructor() {\r\n\r\n this.resultsList = document.getElementsByClassName('results-list__items')[0]\r\n this.featuredSearchId = parseInt(document.getElementsByName('FeaturedSearchID')[0].value, 10)\r\n this.locations = new Locations(this.changeEvent, this.regionChangeEvent)\r\n this.facets = new Facets(this.changeEvent)\r\n this.party = new Party(this.changeEvent)\r\n this.dates = new Dates(this.changeEvent)\r\n this.pages = new Pagination(this.changeEvent)\r\n this.sorting = new Sorting(this.changeEvent)\r\n this.tracking = new Tracking()\r\n this.activeFetch = -1\r\n this.stateAction = ''\r\n this.map = new Map(() => {\r\n const qs = this.getNonDefaultValues()\r\n return this.buildQueryString(qs)\r\n })\r\n\r\n this.ui = new UI(this.showMoreEvent, this.extendEvent)\r\n this.lastMinute = new LastMinute(this)\r\n this.header = new Header()\r\n\r\n this.listeners()\r\n this.initState()\r\n\r\n const options = {\r\n threshold: 0.4\r\n }\r\n\r\n this.resultsItemObserver = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\r\n const item = entry.target\r\n let position = 0;\r\n const resultsItems = document.querySelectorAll('.results-list__item')\r\n let params = this.getNonDefaultValues()\r\n let queryString = this.buildQueryString(params)\r\n if (item.classList.contains('results-list__item') && item.attributes.getNamedItem('data-logged') === null) {\r\n const cottageCode = item.getAttribute('data-code').substring(1)\r\n //if the item in view is a complex, log that the complex collection has been seen and also the individual cottages of the complex\r\n if (item.classList.contains('results-complex')) {\r\n const complexCode = item.getAttribute('data-complexCode')\r\n resultsItems.forEach((resultsItem, i) => {\r\n if (resultsItem.getAttribute('data-complexCode') === item.getAttribute('data-complexCode')) {\r\n position = i + 1\r\n }\r\n })\r\n let complexCottages = []\r\n item.querySelectorAll('.slider__item').forEach((c) => {\r\n complexCottages.push(c.getAttribute('data-code').substring(1))\r\n })\r\n let complexCodes = JSON.stringify(complexCottages)\r\n let complex = { 'complexCode': complexCode, 'complexCodes': complexCodes, 'position': position, 'queryString': queryString, 'params': this.tracking.searchQsToJSON(params) }\r\n this.tracking.trackComplexResultViewed(complex)\r\n item.setAttribute('data-logged', 'true')\r\n } else {\r\n resultsItems.forEach((resultsItem, i) => {\r\n if (resultsItem.getAttribute('data-code') === item.getAttribute('data-code')) {\r\n position = i + 1\r\n }\r\n })\r\n ////log a cottage view when the results item has been seen\r\n let cottage = { 'cottageCode': cottageCode, 'position': position, 'queryString': queryString, 'params': this.tracking.searchQsToJSON(params) }\r\n this.tracking.trackResultsItemViewed(cottage)\r\n item.setAttribute('data-logged', 'true')\r\n }\r\n }\r\n }\r\n })\r\n }, options)\r\n }\r\n\r\n listeners() {\r\n // control change events\r\n\r\n new Helpers(window).eventListener((e) => {\r\n const resultsItems = [].slice.call(document.querySelectorAll('.results-list__item'))\r\n resultsItems.forEach((item) => {\r\n this.resultsItemObserver.observe(item)\r\n })\r\n }, 'load')\r\n\r\n new Helpers(searchControl).eventListener((e) => {\r\n if (e.detail.control !== 'region' && e.detail.control !== 'page' && e.detail.control !== 'sorting') {\r\n this.featuredSearchId = 0\r\n }\r\n this.changeSearch(e.detail.control === 'page')\r\n }, 'search-change')\r\n\r\n new Helpers(searchControl).eventListener(() => {\r\n this.showMore()\r\n }, 'search-more')\r\n\r\n new Helpers(searchControl).eventListener((e) => {\r\n this.extendSearch(e.detail.params)\r\n }, 'search-extend')\r\n\r\n new Helpers(searchControl).eventListener(() => {\r\n this.updateState(this.currentUrl())\r\n }, 'search-map')\r\n\r\n // history navigation\r\n History.Adapter.bind(window, 'statechange', () => {\r\n const historyState = History.getState();\r\n const state = historyState.data;\r\n if (this.stateAction !== 'replace' && state !== undefined) { \r\n this.updateControls(state);\r\n let options = this.lastMinute.valid ? { ...this.lastMinute.createUpdateSearchOptions(), url: historyState.url } : { ...this.setDefaultSearchOptions(), url: historyState.url };\r\n this.updateSearch(this.stateAction, options);\r\n if (this.lastMinute.valid) this.lastMinute.setSelectedDateRangeButton(this.lastMinute.lastMinuteButtons?.[state.lmbtn ?? 0]);\r\n // reset this flag\r\n this.stateAction = '';\r\n }\r\n })\r\n }\r\n\r\n // raise event to trigger search update - passed to child search control objects\r\n changeEvent(control) {\r\n // raise event to be picked up by the root change controller\r\n searchControl.dispatchEvent(new CustomEvent('search-change', { detail: { control } }))\r\n return this\r\n }\r\n\r\n showMoreEvent() {\r\n // raise event to be picked up by the root change controller\r\n searchControl.dispatchEvent(new CustomEvent('search-more'))\r\n return this\r\n }\r\n\r\n extendEvent(params) {\r\n searchControl.dispatchEvent(new CustomEvent('search-extend', {\r\n detail: { params },\r\n }))\r\n return this\r\n }\r\n\r\n // fetch all querystring params from independant controls\r\n getValues() {\r\n let values = Object.assign({},\r\n this.locations.getValues(),\r\n this.facets.getValues(),\r\n this.party.getValues(),\r\n this.dates.getValues(),\r\n this.pages.getValues(),\r\n this.map.getValues(),\r\n this.sorting.getValues(),\r\n\r\n {\r\n fsi: this.featuredSearchId,\r\n lmbtn: this.lastMinute.valid ? this.lastMinute.getCurrentIndexOfHighlightedButton() : null\r\n })\r\n\r\n return values\r\n }\r\n\r\n // fetch non-default querystring params from independant controls\r\n getNonDefaultValues() {\r\n const values = Object.assign({},\r\n this.locations.getNonDefaultValues(),\r\n //this.locations.getTownDefaultDistance(),\r\n this.facets.getNonDefaultValues(),\r\n this.party.getNonDefaultValues(),\r\n this.dates.getNonDefaultValues(),\r\n this.pages.getNonDefaultValues(),\r\n this.map.getNonDefaultValues(),\r\n this.sorting.getNonDefaultValues()\r\n )\r\n\r\n if (this.featuredSearchId !== 0) {\r\n values.fsi = this.featuredSearchId\r\n }\r\n\r\n return values\r\n }\r\n\r\n isCustomizedSearch() {\r\n const values = Object.assign({},\r\n this.facets.getNonDefaultValues(),\r\n this.party.getNonDefaultValues(),\r\n this.dates.getNonDefaultValues(),\r\n this.map.getNonDefaultValues(),\r\n this.sorting.getNonDefaultValues(),\r\n )\r\n\r\n const loc = this.locations.getNonDefaultValues()\r\n const pages = this.pages.getValues()\r\n\r\n const result = (Object.keys(values).length === 0 && (loc.nlc === undefined || loc.rgn === 'UK' || loc.rgn === '') && pages.pMax === pages.pMin && loc.nlm === undefined)\r\n return !result\r\n }\r\n\r\n // utility to turn search state parameters object into a querystring\r\n buildQueryString(values) {\r\n return Object\r\n .keys(values)\r\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(values[key])}`)\r\n .join('&')\r\n }\r\n\r\n // utility to return current search state parameters object from querystring\r\n readQueryString() {\r\n const searchParams = window.location.href.split('?')[1]\r\n const result = {}\r\n //in case the queryString is empty\r\n if (searchParams !== undefined) {\r\n const paramParts = searchParams.split('&')\r\n for (let part of paramParts) {\r\n const paramValuePair = part.split('=')\r\n //exclude the case when the param has no value\r\n if (paramValuePair.length === 2) {\r\n result[paramValuePair[0]] = decodeURIComponent(paramValuePair[1])\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n\r\n initState() {\r\n // replace current state with one that also contains the control state object\r\n const currentUrl = window.location.href.replace(window.location.protocol + '//' + window.location.hostname, '')\r\n const initialControlValues = this.getValues()\r\n\r\n // naff workaround for history.js - set flag to prevent ajax fetches\r\n // when we're just trying to modify current state\r\n this.stateAction = 'replace'\r\n History.replaceState(initialControlValues, document.title, currentUrl)\r\n this.stateAction = ''\r\n // ensure UI consistency by setting the controls from their read state\r\n this.updateControls(initialControlValues)\r\n new Helpers(window).eventListener((e) => {\r\n const resultsItems = [].slice.call(document.querySelectorAll('.results-list__item'))\r\n resultsItems.forEach((item) => {\r\n this.resultsItemObserver.observe(item)\r\n })\r\n }, 'load')\r\n\r\n // log cottage impressions of starting cottages\r\n Array.from(document.getElementsByClassName('results-list__item')).forEach((item, position) => {\r\n const cottageCode = item.getAttribute('data-code').substring(1)\r\n // track impression through GTM\r\n window.dataLayerQueue.push({ event: 'cottageImpression', cottageCode, position })\r\n })\r\n }\r\n\r\n // Push a new search state into history\r\n changeSearch(persistPagination = false) {\r\n // Reset pagination for a new search\r\n if (!persistPagination) {\r\n this.pages.setValues({})\r\n }\r\n let qs = this.getNonDefaultValues()\r\n const state = this.getValues()\r\n this.stateAction = 'push'\r\n History.pushState(state, document.title, this.currentUrl(qs))\r\n this.stateAction = ''\r\n\r\n // Store search dates for use on cottage availability form.\r\n try {\r\n const dates = {\r\n dss: moment(state.dss, 'ddd D MMM YY').toISOString(true),\r\n des: moment(state.des, 'ddd D MMM YY').toISOString(true),\r\n nday: state.nday,\r\n }\r\n sessionStorage.setItem('searchDates', JSON.stringify(dates))\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n }\r\n\r\n currentUrl(nonDefaultParams = null) {\r\n //get params\r\n const qs = nonDefaultParams || this.getNonDefaultValues()\r\n // build a url appropriate for the current search\r\n let url = ''\r\n if ('fsi' in qs) {\r\n // featured search is set, therefore the search has yet to be modified\r\n // & a serverside built region url can be used\r\n url = this.locations.getRegionHref(this.pages.page())\r\n if ('sorting' in qs) {\r\n url += '?sorting=' + qs.sorting\r\n }\r\n } else if (!this.isCustomizedSearch()) {\r\n // not customised, excepting location. Use the location url\r\n url = this.locations.getLocationUrl(this.pages.page())\r\n } else {\r\n\r\n url = `/results.aspx?search=Y&${this.buildQueryString(qs)}`\r\n }\r\n\r\n return url\r\n }\r\n\r\n extendSearch(params) {\r\n // get current state\r\n const state = History.getState().data\r\n // change values\r\n Object.assign(state, params)\r\n // modify controls\r\n this.updateControls(state)\r\n\r\n // navigate to the top of the results list\r\n document.querySelector('.results-output').scrollIntoView({ behavior: 'smooth' })\r\n\r\n // update list\r\n this.changeSearch()\r\n }\r\n\r\n // without fetching new data, just update the state to reflect current control values\r\n updateState(url) {\r\n if (url === null) url = this.currentUrl();\r\n // naff workaround for history.js - set flag to prevent ajax fetches\r\n // when we're just trying to modify current state\r\n this.stateAction = 'replace'\r\n History.replaceState(this.getValues(), document.title, url)\r\n this.stateAction = ''\r\n }\r\n\r\n\r\n setDefaultSearchOptions = () => {\r\n return {\r\n feedEndpoint: this.getFeedEndpoint(),\r\n updateMetaTitle: true,\r\n preservePageDescription: false,\r\n preservePageHeader: false,\r\n url: this.currentUrl()\r\n };\r\n };\r\n\r\n getFeedEndpoint = () => {\r\n const nonDefaultValues = this.getNonDefaultValues(); // Define qs here\r\n let feedEndpoint = `/feeds/resultsFeedHtml.aspx?rpp=10&${this.buildQueryString(nonDefaultValues)}`;\r\n if (this.isCustomizedSearch()) {\r\n feedEndpoint += '&search=Y';\r\n }\r\n return feedEndpoint;\r\n };\r\n\r\n // Fetch results from feed with the current search state\r\n updateSearch(action, options) {\r\n options = options || this.setDefaultSearchOptions();\r\n const { feedEndpoint, updateMetaTitle, preservePageDescription, preservePageHeader, url } = options;\r\n const self = this;\r\n const qs = this.getNonDefaultValues();\r\n this.ui.loading();\r\n\r\n if (this.activeFetch !== -1) {\r\n this.activeFetch.getXHR().abort()\r\n }\r\n // ajax fetch new results\r\n this.activeFetch = new XHRPromise()\r\n this.activeFetch.send({ url: feedEndpoint })\r\n .then(response => (new window.DOMParser()).parseFromString(response.responseText, 'text/xml'))\r\n .then((data) => {\r\n const regions = data.getElementsByTagName('regionTotals')[0]\r\n const description = data.getElementsByTagName('description')[0]\r\n const pageTitle = description.getAttribute('pageTitle')\r\n const sortOrder = data.getElementsByTagName('SortOrder')[0]\r\n this.sorting.updateSortControl(sortOrder)\r\n const params = Object.assign({\r\n totalPages: parseInt(description.getAttribute('maxPages'), 10),\r\n totalCount: parseInt(description.getAttribute('propertyCount'), 10),\r\n title: description.getAttribute('resultsTitle'),\r\n warning: description.getAttribute('warning'),\r\n totalWithoutOfferFilter: parseInt(description.getAttribute('totalWithoutOfferFilter'), 10),\r\n regionName: description.getAttribute('regionName'),\r\n }, History.getState().data)\r\n\r\n if (data.getElementsByTagName('location').length > 0) {\r\n params.locationName = data.getElementsByTagName('location')[0].getAttribute('name')\r\n }\r\n\r\n self.ui.updateUI(params)\r\n self.pages.setNoOfPages(params.totalPages)\r\n // Breadcrumbs\r\n self.ui.setBreadcrumbs(data.getElementsByTagName('breadcrumbs')[0])\r\n\r\n // Update region counters\r\n self.locations.setRegionCounts(regions)\r\n\r\n // toggle header state (i.e. remove FS or location header) if apending results then leave header alone :)\r\n const headerXML = data.getElementsByTagName('header');\r\n if (headerXML.length == 0) {\r\n if (!preservePageHeader)\r\n this.header.hide();\r\n } else {\r\n this.header.update(headerXML[0]);\r\n }\r\n\r\n // record a page view\r\n window.dataLayerQueue.push({ event: 'pageView', 'virtualPageURL': History.getState().url.replace(/^.*\\/\\/[^\\/]+/, '') });\r\n this.tracking.trackSearch(qs, params)\r\n\r\n // Update the list of cottages.\r\n this.resultsList.innerHTML = ''\r\n\r\n const listItems = data.querySelectorAll('listItem, listAd')\r\n\r\n Array.from(listItems).forEach((item) => {\r\n switch (item.tagName) {\r\n case 'listItem':\r\n const cottageCode = item.getAttribute('code')\r\n const itemCode = item.getAttribute('type') + cottageCode\r\n const position = parseInt(item.getAttribute('positionInResults'), 10)\r\n const tempWrapper = document.createElement('div')\r\n tempWrapper.innerHTML = he.decode(item.getAttribute('html'))\r\n const resultItemEl = tempWrapper.children[0]\r\n this.resultsList.appendChild(resultItemEl)\r\n\r\n // if its a complex listing, init the slider\r\n if (new Helpers(resultItemEl).hasClass('results-complex')) {\r\n new Slider(resultItemEl.querySelector('.slider'), {\r\n navTemplate: '{index}',\r\n }).activate()\r\n }\r\n this.resultsItemObserver.observe(resultItemEl)\r\n // track impression through GTM\r\n // window.dataLayerQueue.push({ event: 'cottageImpression', cottageCode, position })\r\n break;\r\n\r\n case 'listAd':\r\n if (item.getAttribute('html') !== '') {\r\n const tempWrapper = document.createElement('div')\r\n tempWrapper.innerHTML = he.decode(item.getAttribute('html'))\r\n const adEl = tempWrapper.children[0]\r\n this.resultsList.appendChild(adEl)\r\n }\r\n break;\r\n }\r\n })\r\n\r\n // set the document title for the browser tab\r\n if (updateMetaTitle)\r\n document.title = pageTitle\r\n // highlight the shortlisted cottages\r\n window.sl.HighlightShortlistedCottages()\r\n // clear the ajax fetch indicator\r\n self.activeFetch = -1\r\n\r\n if (document.getElementsByClassName('short-break-links').length > 0) {\r\n if (document.getElementsByClassName('short-break-links')[0].parentElement.getAttribute('aria-hidden') === 'false') {\r\n // if region not west then set then\r\n const currentRegion = self.locations.getRegionForFeaturedSearchLinks()\r\n if (currentRegion !== null) {\r\n const buttons = document.querySelectorAll('.short-break-links__link')\r\n if (currentRegion === '') {\r\n Array.from(buttons).forEach((button) => {\r\n const featuredSearchCode = button.getAttribute('data-fsCode')\r\n button.setAttribute('href', `/${featuredSearchCode}.html`)\r\n })\r\n } else {\r\n Array.from(buttons).forEach((button) => {\r\n const featuredSearchCode = button.getAttribute('data-fsCode')\r\n button.setAttribute('href', `/${featuredSearchCode}${currentRegion}`)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (preservePageDescription && document.querySelector('.results-lead__text')) {\r\n document.querySelector('.results-lead__text').setAttribute('aria-hidden', false);\r\n }\r\n\r\n\r\n // final call to ensure UI <-> state consistency \r\n this.updateState(url);\r\n }).catch((error) => {\r\n // TODO: UI/UX for error handling\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n }\r\n })\r\n }\r\n\r\n showMore() {\r\n // if there's a current fetch, escape now\r\n if (this.activeFetch !== -1) return\r\n const self = this\r\n // increment max page\r\n this.pages.showMore()\r\n\r\n // fetch updated qs\r\n const values = this.getNonDefaultValues()\r\n let url = `/results.aspx?${this.buildQueryString(values)}`\r\n // for the sake of \"show more\", pMin should be equal to pMax\r\n // as we're only fetching the delta\r\n values.pMin = values.pMax\r\n let feedEndpoint = `/feeds/resultsFeedHtml.aspx?rpp=10&${this.buildQueryString(values)}`\r\n\r\n if (this.isCustomizedSearch()) {\r\n url += '&search=Y'\r\n feedEndpoint += '&search=Y'\r\n }\r\n\r\n // naff workaround for history.js - set flag to prevent ajax fetches\r\n // when we're just trying to modify current state\r\n this.stateAction = 'replace'\r\n History.replaceState(this.getValues(), document.title, url)\r\n this.stateAction = ''\r\n // init loading anim\r\n this.ui.showMoreLoading(true)\r\n // ajax fetch new results\r\n this.activeFetch = new XHRPromise()\r\n this.activeFetch.send({ url: feedEndpoint })\r\n .then(response => (new window.DOMParser()).parseFromString(response.responseText, 'text/xml'))\r\n .then((data) => {\r\n const description = data.getElementsByTagName('description')[0]\r\n\r\n const params = Object.assign({\r\n totalPages: parseInt(description.getAttribute('maxPages'), 10),\r\n totalCount: parseInt(description.getAttribute('propertyCount'), 10),\r\n title: description.getAttribute('resultsTitle'),\r\n warning: description.getAttribute('warning'),\r\n totalWithoutOfferFilter: parseInt(description.getAttribute('totalWithoutOfferFilter'), 10),\r\n regionName: description.getAttribute('regionName'),\r\n }, History.getState().data)\r\n\r\n if (data.getElementsByTagName('location').length > 0) {\r\n params.locationName = data.getElementsByTagName('location')[0].getAttribute('name')\r\n }\r\n\r\n self.ui.updateUI(params)\r\n self.pages.setNoOfPages(params.totalPages)\r\n\r\n // record a page view\r\n window.dataLayerQueue.push({ event: 'pageView', 'virtualPageURL': History.getState().url.replace(/^.*\\/\\/[^\\/]+/, '') });\r\n\r\n // Update the list of cottages.\r\n const listItems = data.querySelectorAll('listItem, listAd')\r\n Array.from(listItems).forEach((item) => {\r\n if (item.tagName === 'listItem') {\r\n const cottageCode = item.getAttribute('code')\r\n const position = parseInt(item.getAttribute('positionInResults'), 10)\r\n // create the element in a temp wrapper div\r\n const tempWrapper = document.createElement('div')\r\n tempWrapper.innerHTML = he.decode(item.getAttribute('html'))\r\n const resultItemEl = tempWrapper.children[0]\r\n // append it to the results list\r\n this.resultsList.appendChild(resultItemEl)\r\n // if its a complex listing, init the slider\r\n if (new Helpers(resultItemEl).hasClass('results-complex')) {\r\n new Slider(resultItemEl.querySelector('.slider'), {\r\n navTemplate: '{index}',\r\n }).activate()\r\n }\r\n\r\n // track impression through GTM\r\n window.dataLayerQueue.push({ event: 'cottageImpression', cottageCode, position })\r\n\r\n //add new logging here\r\n this.resultsItemObserver.observe(resultItemEl)\r\n\r\n }\r\n if (item.tagName === 'listAd' && item.getAttribute('html') !== '') {\r\n const tempWrapper = document.createElement('div')\r\n tempWrapper.innerHTML = he.decode(item.getAttribute('html'))\r\n const adEl = tempWrapper.children[0]\r\n this.resultsList.appendChild(adEl)\r\n }\r\n })\r\n\r\n // load of \"show more\" complete, hide the loading element\r\n this.ui.showMoreLoading(false)\r\n // highlight the shortlisted cottages\r\n window.sl.HighlightShortlistedCottages()\r\n // clear the ajax fetch indicator\r\n self.activeFetch = -1\r\n }).catch((error) => {\r\n // TODO: UI/UX for error handling\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n this.ui.showMoreLoading(false)\r\n this.activeFetch = -1\r\n }\r\n })\r\n }\r\n\r\n // update search controls to reflect current search state in query string\r\n updateControls(values) {\r\n this.locations.setValues(values, window.location.pathname)\r\n this.facets.setValues(values)\r\n this.party.setValues(values)\r\n this.dates.setValues(values)\r\n this.pages.setValues(values)\r\n this.map.setValues(values)\r\n this.sorting.setValues(values)\r\n this.featuredSearchId = values.fsi || 0\r\n\r\n //update share control with current search link\r\n new Helpers(document.getElementsByClassName('social-share'))\r\n .setAttributes({ 'data-link': window.location.href.replace('http://', 'https://') })\r\n }\r\n}\r\n\r\n\r\nif (searchControl !== undefined) {\r\n new Results()\r\n}\r\n","import Helpers from '../modules/Helpers'\r\nimport IsNodeList from './IsNodeList'\r\n\r\nclass Reveal {\r\n constructor(element) {\r\n // Ensure whatever element is passed into the\r\n // constructor is an array, as methods loop\r\n // over every element using `forEach`.\r\n if (Array.isArray(element)) {\r\n this.element = element\r\n } else if (!IsNodeList(element)) {\r\n this.element = [element]\r\n } else {\r\n this.element = Array.from(element)\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 'Show' element by adding class to element\r\n * and setting `aria-expanded` value to 'true'\r\n * \r\n * @param {String} className Class name to add to element\r\n * @return {Object}\r\n */\r\n show(className) {\r\n this.element.forEach((element) => {\r\n new Helpers(element).addClass(className)\r\n element.setAttribute('aria-expanded', 'true')\r\n })\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * 'Hide' element by removing class on element\r\n * and setting `aria-expanded` value to 'false'\r\n * \r\n * @param {String} className Class name to remove from element\r\n * @return {Object}\r\n */\r\n hide(className) {\r\n this.element.forEach((element) => {\r\n new Helpers(element).removeClass(className)\r\n element.setAttribute('aria-expanded', 'false')\r\n })\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * 'Toggle' element by adding and removing class on element\r\n * and changing `aria-expanded` value to either 'true' or\r\n * 'false' depending on current value.\r\n * \r\n * @param {String} className Class name to toggle on element\r\n * @return {Object}\r\n */\r\n toggle(className) {\r\n this.element.forEach((element) => {\r\n new Helpers(element)\r\n .toggleClass(className)\r\n .toggleAttribute('aria-expanded')\r\n })\r\n\r\n return this\r\n }\r\n}\r\n\r\nexport default Reveal\r\n","class ReviewsReadMore {\r\n\r\n //#region constructor\r\n\r\n constructor() {\r\n\r\n // 'Read More' buttons method binding\r\n this.toggleReadMore = this.toggleReadMore.bind(this);\r\n\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Reviews 'Read More' \r\n\r\n // Toggle between displaying truncated and full review text\r\n toggleReadMore(button) {\r\n const parent = button.parentNode;\r\n const isOpen = parent.classList.toggle('open');\r\n button.innerText = isOpen ? 'Read less...' : 'Read all...';\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n\r\n// Check for instance of reviews before class\r\nconst reviewsContainer = document.querySelector(\"body.cottage #reviews\");\r\nif (reviewsContainer) {\r\n\r\n // Create an instance of the Reviews class\r\n const readMore = new ReviewsReadMore();\r\n\r\n //#region Add Click Events \r\n\r\n const handleReadMoreClick = (event) => {\r\n const target = event.target;\r\n if (target.classList.contains('read-more-btn')) {\r\n // Toggle between displaying truncated and full review text\r\n readMore.toggleReadMore(target);\r\n }\r\n };\r\n\r\n // Attach onclick event for 'Read More' buttons on readMore\r\n reviewsContainer.addEventListener('click', handleReadMoreClick);\r\n\r\n //#endregion\r\n}\r\n","class Reviews {\r\n\r\n //#region General/Global Properties\r\n\r\n reviewsLocation = document.getElementById(\"reviews\");\r\n cottageCode = this.reviewsLocation.getAttribute('data-cottage-code');\r\n pageCount = parseInt(this.reviewsLocation.getAttribute('data-page-count'), 10);\r\n initialPageNum = parseInt(this.reviewsLocation.getAttribute('data-initial-page'), 10);\r\n showMore = document.getElementById(\"show-more-btn\");\r\n pagingContainer = document.getElementById(\"paging-container\");\r\n pagingDisplay = document.getElementById(\"paging-display\");\r\n prevPageButton = document.getElementById(\"prev-page-button\");\r\n nextPageButton = document.getElementById(\"next-page-button\");\r\n endpoint = \"/feeds/reviewCommentsFeed.aspx\";\r\n\r\n // Review character length properties (dynamically populated on first call before used in a global context)\r\n maximumCharLengthOfReview;\r\n maximumCharLengthOfReviewWithBuffer;\r\n\r\n //#endregion\r\n\r\n //#region constructor\r\n\r\n constructor() {\r\n\r\n // Bottom [Show More] Reviews method binding\r\n this.showMoreReviews = this.showMoreReviews.bind(this);\r\n this.getMoreReviews = this.getMoreReviews.bind(this);\r\n this.getLoadMoreNextPageNum = this.getLoadMoreNextPageNum.bind(this);\r\n this.updateCurrentLoadMorePageRange = this.updateCurrentLoadMorePageRange.bind(this);\r\n this.updateCurrentLoadMorePageRangeStart = this.updateCurrentLoadMorePageRangeStart.bind(this);\r\n this.updateCurrentLoadMorePageRangeEnd = this.updateCurrentLoadMorePageRangeEnd.bind(this);\r\n this.hideLoadMore = this.hideLoadMore.bind(this);\r\n\r\n // Pagination method bindings\r\n this.getPrevPaginationInfo = this.getPrevPaginationInfo.bind(this);\r\n this.getNextPaginationInfo = this.getNextPaginationInfo.bind(this);\r\n this.disablePagingPrevButton = this.disablePagingPrevButton.bind(this);\r\n this.disablePagingNextButton = this.disablePagingNextButton.bind(this);\r\n this.updatePagingDisplay = this.updatePagingDisplay.bind(this);\r\n\r\n // Utilities \r\n this.updateReviewPageURLParam = this.updateReviewPageURLParam.bind(this);\r\n this.checkIntitalQueryStringIsInRange = this.checkIntitalQueryStringIsInRange.bind(this);\r\n\r\n // Review HTML templating method binding\r\n this.reviewHTMLTemplate = this.reviewHTMLTemplate.bind(this);\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Utilites\r\n\r\n // Update 'reviewpage' page URL params\r\n updateReviewPageURLParam = (requestedPage) => {\r\n const firstPage = requestedPage === 1;\r\n const currentUrl = new URL(window.location.href);\r\n const newPageState = firstPage ? {} : { reviewpage: requestedPage };\r\n\r\n currentUrl.searchParams.delete('reviewpage');\r\n\r\n if (!firstPage) {\r\n currentUrl.searchParams.set('reviewpage', requestedPage);\r\n }\r\n\r\n history.pushState(newPageState, \"\", currentUrl.toString());\r\n }\r\n\r\n\r\n // Ensure that the review page query parameter is within the valid range\r\n checkIntitalQueryStringIsInRange = () => {\r\n const reviewPageQueryParam = new URLSearchParams(window.location.search).get('reviewpage');\r\n if (reviewPageQueryParam && reviewPageQueryParam > this.pageCount) {\r\n this.updateReviewPageURLParam(this.pageCount);\r\n }\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n //#region Bottom [Show More] Reviews\r\n\r\n // Set inital show more page number\r\n currentLoadMorePageRange = { start: parseInt(this.initialPageNum, 10), end: parseInt(this.initialPageNum, 10) };\r\n\r\n // Get the next page number, constrained within the maximum page count, for show more functionality\r\n getLoadMoreNextPageNum = () => {\r\n const nextPage = this.currentLoadMorePageRange.end + 1;\r\n return nextPage > this.pageCount ? this.pageCount : nextPage;\r\n }\r\n\r\n // Update the next page number for show more functionality\r\n updateCurrentLoadMorePageRange = (start, end) => { this.currentLoadMorePageRange.start = start; this.currentLoadMorePageRange.end = end };\r\n updateCurrentLoadMorePageRangeStart = (pageNumber) => this.currentLoadMorePageRange.start = pageNumber;\r\n updateCurrentLoadMorePageRangeEnd = (pageNumber) => this.currentLoadMorePageRange.end = pageNumber;\r\n\r\n // Hide or show 'Load More' button\r\n hideLoadMore = (hide) => this.showMore.setAttribute('aria-hidden', hide);\r\n\r\n // load more readmore when 'Load More' button is clicked\r\n showMoreReviews = () => {\r\n const requestedPage = this.getLoadMoreNextPageNum();\r\n this.updatePagingDisplay(`${this.currentLoadMorePageRange.start}-${requestedPage}`);\r\n this.getMoreReviews(requestedPage, false);\r\n this.updateCurrentLoadMorePageRangeEnd(requestedPage);\r\n this.hideLoadMore(requestedPage === this.pageCount);\r\n\r\n // Deal with crossover in pagination \r\n this.updateCurrentPaginationPage(requestedPage);\r\n this.disablePagingNextButton(requestedPage === this.pageCount);\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n //#region Fetch Reviews\r\n\r\n // Asynchronously load more readmore from the server/feed\r\n async getMoreReviews(requestedPage, replaceReviews) {\r\n\r\n // Construct the query string for call\r\n const queryString = `?cottagecode=${this.cottageCode}&reviewpage=${requestedPage}&usepagination=Y`;\r\n const callURL = this.endpoint + queryString;\r\n\r\n // Set loading state if replacing readmore\r\n if (replaceReviews) this.setLoadingState(true);\r\n\r\n // Callback for successful fetch\r\n const loadMoreReviewsSuccess = (data) => {\r\n\r\n // Update maximum character lengths\r\n this.maximumCharLengthOfReview = data.MaximumCharLengthOfReview;\r\n this.maximumCharLengthOfReviewWithBuffer = data.MaximumCharLengthOfReviewWithBuffer;\r\n\r\n // If replacing remove the current readmore\r\n if (replaceReviews) this.reviewsLocation.innerHTML = \"\";\r\n\r\n // Loop through and create/insert readmore \r\n data.Reviews.forEach(review => {\r\n const reviewHTML = this.reviewHTMLTemplate(review);\r\n this.reviewsLocation.insertAdjacentHTML(\"beforeend\", reviewHTML);\r\n });\r\n\r\n // Reset loading state if replacing readmore\r\n if (replaceReviews) this.setLoadingState(false);\r\n }\r\n\r\n // Callback for fetch error\r\n const loadMoreReviewsError = (errorMessage) => {\r\n console.log(errorMessage);\r\n this.pagingContainer.remove();\r\n this.showMore.remove();\r\n if (replaceReviews)\r\n this.setLoadingState(false);\r\n }\r\n\r\n try {\r\n // Fetch reviews from feed\r\n const response = await fetch(callURL);\r\n if (response.ok) {\r\n const data = await response.json();\r\n loadMoreReviewsSuccess(data);\r\n } else\r\n loadMoreReviewsError(`${response.status} - ${response.statusText}`);\r\n } catch (error) {\r\n // Handle fetch error\r\n loadMoreReviewsError(error.message);\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Pagination\r\n\r\n // Set inital pagination page number\r\n currentPaginationPageNum = parseInt(this.initialPageNum, 10);\r\n\r\n // Update the current pagination page number\r\n updateCurrentPaginationPage = (page) => this.currentPaginationPageNum = page;\r\n\r\n // Set loading state for readmore container\r\n setLoadingState(loading) {\r\n this.reviewsLocation.classList.toggle('loading', loading);\r\n }\r\n\r\n // Get information for the next pagination page number\r\n getNextPaginationInfo = () => {\r\n const nextPage = this.currentPaginationPageNum + 1;\r\n return {\r\n NextPageIsLast: nextPage === this.pageCount,\r\n NextPageNumber: nextPage\r\n };\r\n }\r\n\r\n // Get information for the previous pagination page\r\n getPrevPaginationInfo = () => {\r\n const prevPage = this.currentPaginationPageNum - 1;\r\n return {\r\n PrevPageIsFirst: prevPage === 1,\r\n PrevPageNumber: prevPage\r\n };\r\n };\r\n\r\n // Update the current page in the pagination (e.g. Page 1 of 4)\r\n updatePagingDisplay(currentPage) {\r\n this.pagingDisplay.querySelector(\".current-page\").innerHTML = currentPage;\r\n }\r\n\r\n // Disable or enable the [Next] pagination button\r\n disablePagingNextButton = (disable) => {\r\n this.nextPageButton.setAttribute(\"data-disabled\", disable);\r\n }\r\n\r\n // Disable or enable the [Prev] pagination button\r\n disablePagingPrevButton = (disable) => {\r\n this.prevPageButton.setAttribute(\"data-disabled\", disable);\r\n }\r\n\r\n // Handle click on the [Prev] button\r\n reviewsPrevPage() {\r\n const { PrevPageIsFirst, PrevPageNumber } = this.getPrevPaginationInfo();\r\n\r\n // Enable/Disable pagination buttons\r\n this.disablePagingNextButton(false);\r\n this.disablePagingPrevButton(PrevPageIsFirst);\r\n\r\n // Update current pagination page\r\n this.updateCurrentPaginationPage(PrevPageNumber);\r\n\r\n // Update next page for show more functionality\r\n this.updateCurrentLoadMorePageRange(PrevPageNumber, PrevPageNumber);\r\n this.hideLoadMore(false);\r\n\r\n // Load more readmore for the previous page\r\n this.getMoreReviews(PrevPageNumber, true);\r\n this.updatePagingDisplay(PrevPageNumber);\r\n this.updateReviewPageURLParam(PrevPageNumber);\r\n }\r\n\r\n // Handle click on the [Next] button\r\n reviewsNextPage() {\r\n const { NextPageIsLast, NextPageNumber } = this.getNextPaginationInfo();\r\n\r\n // Enable/Disable pagination buttons\r\n this.disablePagingPrevButton(false);\r\n this.disablePagingNextButton(NextPageIsLast);\r\n\r\n // Update current pagination page\r\n this.updateCurrentPaginationPage(NextPageNumber);\r\n\r\n // Update next page for show more functionality\r\n this.updateCurrentLoadMorePageRange(NextPageNumber, NextPageNumber);\r\n this.hideLoadMore(NextPageIsLast);\r\n\r\n // Load more readmore for the next page\r\n this.getMoreReviews(NextPageNumber, true);\r\n this.updatePagingDisplay(NextPageNumber);\r\n this.updateReviewPageURLParam(NextPageNumber);\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Reviews HTML Template\r\n\r\n // Generate HTML for a review\r\n reviewHTMLTemplate(review) {\r\n const reviewDate = new Date(review.ToDate);\r\n const reviewMonth = reviewDate.toLocaleString('en-GB', { month: 'long' });\r\n const reviewYear = reviewDate.getFullYear();\r\n const { TenantName, Comment, ModeratorReply } = review;\r\n\r\n // Start block\r\n let html = `
\r\n

\r\n ${TenantName}\r\n ${reviewMonth} ${reviewYear}\r\n

`;\r\n\r\n // Handle the guest comment section\r\n if (Comment.length > this.maximumCharLengthOfReviewWithBuffer) {\r\n // Truncated Long Comment\r\n html += `
\r\n

${Comment.substring(0, this.maximumCharLengthOfReview)}${Comment.substring(this.maximumCharLengthOfReview)}\r\n ...\r\n

\r\n

Read all...

\r\n
`;\r\n }\r\n else {\r\n // Normal Comment\r\n html += `
${Comment}
`;\r\n }\r\n\r\n // Handle the our reply section\r\n if (ModeratorReply && ModeratorReply.trim() !== \"\") {\r\n html += `
this.maximumCharLengthOfReviewWithBuffer ? ' read-more-container' : ''}\">\r\n

Reply from Classic Cottages

`;\r\n if (ModeratorReply.length > this.maximumCharLengthOfReviewWithBuffer) {\r\n // Truncated Long Reply\r\n html += `

${ModeratorReply.substring(0, this.maximumCharLengthOfReview)}${ModeratorReply.substring(this.maximumCharLengthOfReview)}\r\n ...\r\n

\r\n

Read all...

`;\r\n }\r\n else {\r\n // Normal Reply\r\n html += `

${ModeratorReply}

`;\r\n }\r\n }\r\n\r\n // Close the review HTML\r\n html += `
`;\r\n\r\n return html;\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n\r\n// Check before creating an instance of the Reviews class\r\nconst reviewsContainer = document.querySelector(\"body.cottage #reviews\");\r\nif (reviewsContainer) {\r\n\r\n if (reviewsContainer.dataset.pagination == \"true\") {\r\n // Create an instance of the Reviews class\r\n const reviews = new Reviews();\r\n\r\n //#region Add Click Events \r\n\r\n const handlePrevPageClick = (event) => {\r\n event.preventDefault();\r\n reviews.reviewsPrevPage(reviews);\r\n };\r\n\r\n const handleNextPageClick = (event) => {\r\n event.preventDefault();\r\n reviews.reviewsNextPage(reviews);\r\n };\r\n\r\n const handleshowMoreReviewsClick = (event) => {\r\n reviews.showMoreReviews(reviews);\r\n };\r\n\r\n // Attach onclick event of pagination 'Previous Page' button\r\n reviews.prevPageButton.addEventListener('click', handlePrevPageClick);\r\n\r\n // Attach onclick event of pagination 'Next Page' button\r\n reviews.nextPageButton.addEventListener('click', handleNextPageClick);\r\n\r\n // Attach onclick event of show more \r\n reviews.showMore.addEventListener('click', handleshowMoreReviewsClick);\r\n\r\n // Check query string\r\n reviews.checkIntitalQueryStringIsInRange();\r\n\r\n\r\n //#endregion\r\n }\r\n else {\r\n // Remove 'reviewpage' parameter if present in the URL on non paginationed reviews page\r\n const url = new URL(window.location.href);\r\n\r\n if (url.searchParams.has('reviewpage')) {\r\n url.searchParams.delete('reviewpage');\r\n window.history.replaceState({}, \"\", url.href);\r\n }\r\n }\r\n}\r\n","import Helpers from './Helpers'\r\n\r\n// Keeps track of the number of rooms left to configure.\r\nclass RoomConfigTotals {\r\n constructor(el) {\r\n this.el = el\r\n\r\n return this\r\n }\r\n\r\n activate() {\r\n if (this.el === null) {\r\n return\r\n }\r\n\r\n this.listeners()\r\n\r\n this.update()\r\n\r\n return this\r\n }\r\n\r\n listeners() {\r\n if (this.el === null) {\r\n return\r\n }\r\n\r\n new Helpers(this.el.querySelectorAll('[type=\"checkbox\"]')).eventListener((e) => {\r\n this.update()\r\n }, 'change')\r\n\r\n return this\r\n }\r\n\r\n update() {\r\n if (this.el === null) {\r\n return\r\n }\r\n\r\n const requiredElement = document.getElementById('RoomConfigCountRequired')\r\n\r\n if (requiredElement === null) {\r\n return\r\n }\r\n\r\n const required = parseInt(requiredElement.innerText, 10)\r\n\r\n const count = this.el.querySelectorAll('[type=\"checkbox\"]:checked').length\r\n\r\n const remaining = required - count\r\n\r\n new Helpers(document.getElementById('RoomConfigFeedback')).removeClass('complete')\r\n\r\n new Helpers(this.el.querySelectorAll('[type=\"checkbox\"]')).removeAttributes(['disabled'])\r\n\r\n document.getElementById('RoomConfigFeedback').innerHTML = `

Choose ${remaining} more bedroom(s).

`\r\n\r\n if (remaining === 0) {\r\n new Helpers(document.getElementById('RoomConfigFeedback')).addClass('complete')\r\n\r\n document.getElementById('RoomConfigFeedback').innerHTML = '

Correct number of bedrooms chosen.

'\r\n\r\n new Helpers(this.el.querySelectorAll('[type=\"checkbox\"]:not(:checked)')).setAttributes({ disabled: true })\r\n }\r\n\r\n return this\r\n }\r\n}\r\n\r\n// Disable zip and link radios if the bedroom is not selected.\r\nclass RoomConfigRow {\r\n constructor(el) {\r\n this.el = el\r\n\r\n if (this.el === null) {\r\n return\r\n }\r\n\r\n this.input = el.querySelector('[type=\"checkbox\"]')\r\n\r\n if (this.input !== null) {\r\n this.radios = el.querySelectorAll('[type=\"radio\"]')\r\n this.ul = el.querySelectorAll('ul')\r\n this.p = el.querySelectorAll('p')\r\n\r\n if (this.input.checked) {\r\n new Helpers(this.radios).removeAttributes(['disabled'])\r\n new Helpers(this.ul).removeClass('hidden')\r\n new Helpers(this.p).removeClass('hidden')\r\n } else {\r\n new Helpers(this.radios).setAttributes({ disabled: true })\r\n new Helpers(this.ul).addClass('hidden')\r\n new Helpers(this.p).addClass('hidden')\r\n }\r\n }\r\n\r\n return this\r\n }\r\n\r\n activate() {\r\n if (this.el === null) {\r\n return\r\n }\r\n\r\n this.listeners()\r\n\r\n return this\r\n }\r\n\r\n listeners() {\r\n if (this.el === null) {\r\n return\r\n }\r\n\r\n new Helpers(this.input).eventListener((e) => {\r\n if (e.currentTarget.checked) {\r\n new Helpers(this.radios).removeAttributes(['disabled'])\r\n new Helpers(this.ul).removeClass('hidden')\r\n new Helpers(this.p).removeClass('hidden')\r\n } else {\r\n new Helpers(this.radios).setAttributes({ disabled: true })\r\n new Helpers(this.ul).addClass('hidden')\r\n new Helpers(this.p).addClass('hidden')\r\n }\r\n })\r\n return this\r\n }\r\n}\r\n\r\ntry {\r\n // Instantiate the objects above.\r\n Array.from(document.getElementsByClassName('bedroom-config-row')).forEach((el) => {\r\n new RoomConfigRow(el).activate()\r\n })\r\n // FIXME(jameskennedy@classic.co.uk): Use class name not id.\r\n const totals = document.getElementById('MainContent_pnlBedConfiguration')\r\n if (totals !== null) {\r\n new RoomConfigTotals(totals).activate()\r\n }\r\n} catch (e) {\r\n console.log(e)\r\n}","import Cookies from 'js-cookie'\r\nimport Helpers from './Helpers'\r\nimport Map from '../modules/Map'\r\nclass Shortlist {\r\n constructor() {\r\n\r\n }\r\n\r\n list() {\r\n if (Cookies.get('shortlist') !== undefined) {\r\n return Cookies.get('shortlist').split(\",\").filter(code => code.length > 0)\r\n } else {\r\n return []\r\n }\r\n }\r\n\r\n set(list) {\r\n Cookies.set('shortlist', list.join(\",\"), { expires: 365 })\r\n this.updateHeaderIcon()\r\n }\r\n\r\n clear() {\r\n Cookies.remove('shortlist')\r\n this.updateHeaderIcon()\r\n }\r\n\r\n add(code) {\r\n if (!this.contains(code)) {\r\n let list = this.list()\r\n list.push(code.replace(/[CX]/, ''))\r\n this.set(list)\r\n window.dataLayerQueue.push({ 'event': 'addToShortlist', 'cottageCode': code });\r\n }\r\n }\r\n\r\n remove(code) {\r\n if (this.contains(code)) {\r\n let list = this.list()\r\n this.set(list.filter((c) => c.replace(/[CX]/, '') != code.replace(/[CX]/, '')))\r\n }\r\n }\r\n\r\n toggle(code) {\r\n if (!this.contains(code)) {\r\n this.add(code)\r\n } else {\r\n this.remove(code)\r\n }\r\n }\r\n\r\n contains(code) {\r\n return this.list().map(value => value.replace(/[CX]/, '')).indexOf(code.replace(/[CX]/, '')) >= 0\r\n }\r\n\r\n updateHeaderIcon() {\r\n const highlightClass = 'header__favourites--active'\r\n const icon = document.getElementsByClassName('header__favourites')\r\n if (this.list().length > 0) {\r\n new Helpers(icon).addClass(highlightClass)\r\n } else {\r\n new Helpers(icon).removeClass(highlightClass)\r\n }\r\n }\r\n}\r\n\r\nconst shortlist = new Shortlist()\r\nnew Helpers(document.getElementsByClassName('set-item')).eventListener((e) => {\r\n if (e.target.getAttribute('data-inlist') === true) {\r\n window.sl.DeleteCottageFromShortList(e.target.getAttribute('data-code'), e.target.getAttribute('data-guid'))\r\n e.target.setAttribute('data-active', 'false')\r\n }\r\n})\r\n\r\n// Pageload - set cottage shortlist button states\r\nconst favouriteButtons = () => Array.from(document.querySelectorAll('.favourite-button'))\r\n\r\nif (typeof Cookies.get('auth') === 'undefined') {\r\n favouriteButtons().forEach((el) => {\r\n el.setAttribute('data-multi', 'false')\r\n el.setAttribute('data-active', shortlist.contains(el.getAttribute('data-code')))\r\n })\r\n}\r\n\r\n// Favourite button click events\r\nnew Helpers(document.getElementsByTagName('body')).delegateEventListener('.favourite-button', (e) => {\r\n // don't react if we're not in \"cookie shortlist\" mode as that behaviour is handled by the shortlistapi\r\n if (e.target.getAttribute('data-multi') !== 'false') return\r\n\r\n const cottageCode = new Helpers(e.target).getClosest('[data-code]').getAttribute('data-code')\r\n const isShortlisted = (e.target.getAttribute('data-active') || 'false') == 'true'\r\n const affectedButtons = favouriteButtons().filter(button => button.getAttribute('data-code') === cottageCode)\r\n\r\n if (isShortlisted) {\r\n shortlist.remove(cottageCode)\r\n new Helpers(affectedButtons).setAttributes({ 'data-active': 'false' })\r\n } else {\r\n shortlist.add(cottageCode)\r\n new Helpers(affectedButtons).setAttributes({ 'data-active': 'true' })\r\n }\r\n})\r\n\r\n// My Shortlist\r\nif (document.getElementsByClassName('shortlist__map').length) {\r\n const map = new Map('shortlistMap', {\r\n center: [50.1016, -5.2750],\r\n scrollWheelZoom: false,\r\n })\r\n\r\n const icon = L.icon({\r\n iconUrl: '/media/map/icon-home.png',\r\n iconSize: [33, 47],\r\n iconAnchor: [17, 46],\r\n popupAnchor: [0, -40],\r\n })\r\n\r\n const loadMarkers = () => {\r\n map.clearMarkers()\r\n Array.from(document.getElementsByClassName('results-list__item')).forEach((item) => {\r\n const lat = item.getAttribute('data-lat')\r\n const lng = item.getAttribute('data-lng')\r\n const title = item.getElementsByTagName('h2')[0].innerText\r\n map.addMarker([lat, lng], {\r\n title,\r\n icon,\r\n })\r\n })\r\n map.clusterMarkers()\r\n map.fitMarkers({ padding: [40, 40] })\r\n }\r\n\r\n loadMarkers()\r\n\r\n new Helpers(document.getElementsByTagName('body')).eventListener(() => {\r\n loadMarkers()\r\n }, 'shortlist.remove')\r\n\r\n new Helpers(document.getElementsByClassName('shortlist__main')).delegateEventListener('[aria-label=\"Favourite\"][data-multi=\"false\"]', (e) => {\r\n const item = new Helpers(e.target).getClosest('.results-list__item')\r\n item.parentElement.removeChild(item)\r\n loadMarkers()\r\n })\r\n\r\n new Helpers(document.getElementsByClassName('shortlist__clear')).eventListener((e) => {\r\n if (typeof Cookies.get('auth') !== 'undefined') {\r\n if (document.getElementsByClassName('shortlists-item').length > 0) {\r\n const shortlistId = document.querySelector('.shortlists-item[aria-current=\"true\"]').getAttribute('data-shortlistid')\r\n window.sl.DeleteShortlist(shortlistId).then(() => {\r\n window.location.replace('/my-classic/myshortlist.aspx')\r\n })\r\n }\r\n } else {\r\n Array.from(document.getElementsByClassName('shortlist__main')).forEach((item) => {\r\n item.parentElement.removeChild(item)\r\n })\r\n shortlist.clear()\r\n }\r\n loadMarkers()\r\n })\r\n}\r\n\r\nexport default Shortlist\r\n","import Cookies from 'js-cookie'\r\nimport Helpers from './Helpers'\r\nimport Shortlist from './Shortlist.js'\r\nimport XHRPromise from 'xhr-promise'\r\nimport he from 'he'\r\n\r\nconst LOCALSTORAGE_SHORTLIST_KEY = 'shortlists'\r\n\r\nclass Shortlistitem {\r\n constructor(item = null) {\r\n if (item != null) {\r\n this.value = item.value\r\n this.id = item.id\r\n this.shortlistId = item.shortlistId\r\n // this.created = item.created\r\n }\r\n }\r\n}\r\n\r\nclass ShortlistNew {\r\n constructor(shortlist = null) {\r\n this.name = ''\r\n this.public = false\r\n this.id = ''\r\n // this.created = ''\r\n this.items = []\r\n if (shortlist != null) {\r\n this.populate(shortlist)\r\n }\r\n }\r\n\r\n populate(shortlist) {\r\n this.name = shortlist.name\r\n this.public = shortlist.public\r\n this.id = shortlist.id\r\n // this.created = shortlist.created\r\n shortlist.items.forEach((item) => {\r\n this.items.push(new Shortlistitem(item))\r\n })\r\n }\r\n addItem(value) {\r\n const item = new Shortlistitem()\r\n item.value = value\r\n this.items.push(item)\r\n }\r\n}\r\n\r\nclass ShortlistAPI {\r\n constructor() {\r\n this.baseURL = '/api'\r\n this.getAllUrl = `${this.baseURL}/shortlists`\r\n this.shortlists = []\r\n this.shortListItems = []\r\n\r\n if (!this.userIsAuthenticated()) {\r\n window.localStorage.removeItem(LOCALSTORAGE_SHORTLIST_KEY)\r\n }\r\n this.GetAllFromLocalStorage()\r\n }\r\n\r\n userIsAuthenticated() {\r\n return typeof Cookies.get('auth') !== 'undefined'\r\n }\r\n\r\n token() {\r\n return Cookies.get('auth')\r\n }\r\n\r\n LoadShortlists(forceRefresh = false) {\r\n return new Promise((resolve) => {\r\n if (this.userIsAuthenticated()) {\r\n if (window.localStorage.getItem(LOCALSTORAGE_SHORTLIST_KEY) === null || forceRefresh) {\r\n this.GetAllshortlists().then(() => {\r\n this.GetAllFromLocalStorage()\r\n resolve()\r\n })\r\n }\r\n }\r\n resolve()\r\n })\r\n \r\n }\r\n\r\n UpdateLocalStorage(Lsshortlists) {\r\n const obj = JSON.stringify(Lsshortlists)\r\n window.localStorage.setItem(LOCALSTORAGE_SHORTLIST_KEY, obj)\r\n this.updateListOfShortlists()\r\n }\r\n\r\n GetAllFromLocalStorage() {\r\n this.shortlists = []\r\n if (window.localStorage.getItem(LOCALSTORAGE_SHORTLIST_KEY) !== null) {\r\n try {\r\n const obj = JSON.parse(window.localStorage.getItem(LOCALSTORAGE_SHORTLIST_KEY))\r\n if (obj.length > 0) {\r\n obj.forEach(sl => this.shortlists.push(new ShortlistNew(sl)))\r\n }\r\n }\r\n catch(err) {\r\n window.localStorage.removeItem(LOCALSTORAGE_SHORTLIST_KEY)\r\n }\r\n }\r\n }\r\n\r\n GetAllshortlists() {\r\n return new Promise((resolve) => {\r\n if (this.userIsAuthenticated()) {\r\n const GetAllRequest = new XHRPromise()\r\n GetAllRequest.send({\r\n url: this.getAllUrl,\r\n headers: { Authorization: `Bearer ${this.token()}` },\r\n }).then((response) => {\r\n this.shortlists = []\r\n if (response.responseText.length) {\r\n response.responseText.forEach((shortlist) => {\r\n this.shortlists.push(new ShortlistNew(shortlist))\r\n })\r\n }\r\n this.UpdateLocalStorage(this.shortlists)\r\n this.updateHeaderIcon()\r\n resolve()\r\n })\r\n }\r\n\r\n })\r\n }\r\n\r\n CreateShortlist(Slname, SlPublic) {\r\n const PostShortList = new XHRPromise()\r\n const obj = JSON.stringify({ name: Slname, public: SlPublic })\r\n return new Promise((resolve) => {\r\n PostShortList.send({\r\n method: 'POST',\r\n url: this.getAllUrl,\r\n headers: { Authorization: `Bearer ${this.token()}`, 'Content-Type': 'application/json' },\r\n data: obj,\r\n }).then(() => {\r\n this.GetAllshortlists().then(() => resolve())\r\n })\r\n })\r\n }\r\n\r\n PatchShortlist(SlName, SlGuid) {\r\n const PatchShortList = new XHRPromise()\r\n const obj = JSON.stringify({ name: SlName })\r\n const patchURL = `${this.getAllUrl}/${SlGuid}/`\r\n return new Promise((resolve) => {\r\n PatchShortList.send({\r\n method: 'PATCH',\r\n url: patchURL,\r\n headers: { Authorization: `Bearer ${this.token()}`, 'Content-Type': 'application/json' },\r\n data: obj,\r\n }).then(() => {\r\n this.GetAllshortlists().then(() => resolve())\r\n })\r\n })\r\n }\r\n\r\n AddShortlistItem(item) {\r\n const shortlist = this.shortlists.find(s => s.id === item.shortlistId)\r\n let matchedItem = 'undefined'\r\n if (typeof shortlist.items !== 'undefined') {\r\n matchedItem = shortlist.items.find(i => i.value === item.value)\r\n }\r\n if (typeof matchedItem === 'undefined' || matchedItem === '') {\r\n const PostShortListItem = new XHRPromise()\r\n const obj = JSON.stringify({ value: item.value })\r\n const postItemUrl = `${this.getAllUrl}/${item.shortlistId}/items`\r\n PostShortListItem.send({\r\n method: 'POST',\r\n url: postItemUrl,\r\n headers: { Authorization: `Bearer ${this.token()}`, 'Content-Type': 'application/json' },\r\n data: obj,\r\n }).then(() => {\r\n this.GetAllshortlists()\r\n this.updateListOfShortlists()\r\n })\r\n }\r\n }\r\n\r\n DeleteShortlist(listId) {\r\n if (typeof listId !== 'undefined') {\r\n const DeleteShortList = new XHRPromise()\r\n const deleteUrl = `${this.getAllUrl}/${listId}`\r\n return new Promise((resolve) => {\r\n DeleteShortList.send({\r\n method: 'DELETE',\r\n url: deleteUrl,\r\n headers: { Authorization: `Bearer ${this.token()}`, 'Content-Type': 'application/json' },\r\n }).then(() => {\r\n this.GetAllshortlists().then(() => resolve())\r\n })\r\n })\r\n }\r\n }\r\n\r\n DeleteShortListItem(item) {\r\n const shortlist = this.shortlists.find(s => s.id === item.shortlistId)\r\n const matchedItem = shortlist.items.find(i => i.value === item.value)\r\n if (typeof matchedItem !== 'undefined') {\r\n const DeleteShortListItem = new XHRPromise()\r\n const deleteItemUrl = `${this.getAllUrl}/${item.shortlistId}/items/${item.id}`\r\n DeleteShortListItem.send({\r\n method: 'DELETE',\r\n url: deleteItemUrl,\r\n headers: { Authorization: `Bearer ${this.token()}`, 'Content-Type': 'application/json' },\r\n }).then(() => {\r\n this.GetAllshortlists()\r\n })\r\n }\r\n }\r\n\r\n DeleteCottageFromShortListMultiList(cottageCode, ListId) {\r\n this.DeleteCottageFromShortList(cottageCode, ListId)\r\n const container = event.target.closest('div')\r\n const p = container.querySelector('p')\r\n p.setAttribute('data-inlist', 'false')\r\n container.setAttribute('data-active', 'false')\r\n let dataactive = false\r\n const items = container.parentElement.querySelectorAll('p')\r\n items.forEach((i) => {\r\n if (i.getAttribute('data-inlist') === 'true') {\r\n dataactive = true\r\n }\r\n })\r\n new Helpers(document.querySelectorAll(`.favourite-button[data-code=\"${cottageCode}\"]`)).setAttributes({ 'data-active': dataactive })\r\n document.getElementsByTagName('body')[0].dispatchEvent(new CustomEvent('shortlist.remove'))\r\n this.updateListOfShortlists()\r\n }\r\n\r\n ChangeSetValueMulti() {\r\n const multiListItem = new Helpers(event.target).getClosest('p')\r\n let inList = multiListItem.getAttribute('data-inlist')\r\n const cottageCode = multiListItem.getAttribute('data-code')\r\n const listId = multiListItem.getAttribute('data-guid')\r\n if (inList === '') { inList = false }\r\n if (inList !== 'true') {\r\n this.AddCottageToShortListMultiList(cottageCode, listId)\r\n } else {\r\n this.DeleteCottageFromShortListMultiList(cottageCode, listId)\r\n }\r\n }\r\n DeleteCottageFromShortList(cottageCode, ListId) {\r\n this.GetAllFromLocalStorage()\r\n let sl = ''\r\n if (this.shortlists.find(i => i.id === ListId)) {\r\n sl = this.shortlists.find(i => i.id === ListId)\r\n }\r\n if (sl.items.length) {\r\n const thisItem = sl.items.find(i => i.value === cottageCode)\r\n thisItem.shortlistId = sl.id\r\n this.DeleteShortListItem(thisItem)\r\n }\r\n }\r\n AddCottageToShortListMultiList(cottageCode, ListId) {\r\n this.AddCottageToShortList(cottageCode, ListId)\r\n const container = event.target.closest('div')\r\n container.setAttribute('data-active', 'true')\r\n new Helpers(document.querySelectorAll(`.favourite-button[data-code=\"${cottageCode}\"]`)).setAttributes({ 'data-active': 'true' })\r\n const p = container.querySelector('p')\r\n p.setAttribute('data-inlist', 'true')\r\n }\r\n\r\n AddCottageToShortList(cottageCode, ListId) {\r\n this.GetAllFromLocalStorage()\r\n let sl = ''\r\n if (this.shortlists.find(i => i.id === ListId)) {\r\n sl = this.shortlists.find(i => i.id === ListId)\r\n }\r\n const thisItem = new Shortlistitem()\r\n if (typeof sl === 'undefined' || sl === '') {\r\n this.CreateShortlist('Default', false).then(() => {\r\n thisItem.shortlistId = window.sl.shortlists[0].id\r\n thisItem.value = cottageCode\r\n this.AddShortlistItem(thisItem)\r\n })\r\n } else {\r\n thisItem.shortlistId = sl.id\r\n thisItem.value = cottageCode\r\n this.AddShortlistItem(thisItem)\r\n }\r\n }\r\n\r\n updateHeaderIcon() {\r\n const highlightClass = 'header__favourites--active'\r\n const cookieName = 'CC_SHLC'\r\n const icon = document.getElementsByClassName('header__favourites')\r\n\r\n Cookies.remove(cookieName)\r\n\r\n if (this.userIsAuthenticated()) {\r\n this.GetAllFromLocalStorage()\r\n if (typeof this.shortlists !== 'undefined') {\r\n if (this.shortlists.length) {\r\n let shortlistsItemsCount = 0\r\n this.shortlists.forEach((sl) => shortlistsItemsCount += sl.items.length)\r\n\r\n if (shortlistsItemsCount > 0) {\r\n new Helpers(icon).addClass(highlightClass)\r\n Cookies.set(cookieName, shortlistsItemsCount)\r\n } else {\r\n new Helpers(icon).removeClass(highlightClass)\r\n }\r\n }\r\n }\r\n } else {\r\n const shortlist = Cookies.get('shortlist')\r\n if (typeof shortlist !== 'undefined' && shortlist.length > 0) {\r\n new Helpers(icon).addClass(highlightClass)\r\n } else {\r\n new Helpers(icon).removeClass(highlightClass)\r\n }\r\n }\r\n }\r\n\r\n HighlightShortlistedCottages() {\r\n const buttons = document.getElementsByClassName('favourite-button')\r\n if (this.userIsAuthenticated()) {\r\n if (typeof this.shortlists === 'undefined') {\r\n this.GetAllshortlists().then(() => {\r\n this.HighlightShortlistedCottages()\r\n })\r\n return\r\n }\r\n new Helpers(buttons).setAttributes({ 'data-multi': 'true' })\r\n } else {\r\n new Helpers(buttons).setAttributes({ 'data-multi': 'false' })\r\n }\r\n \r\n Array.from(buttons).forEach((button) => {\r\n const val = this.IsCodeInShortlists(button.getAttribute('data-code'))\r\n button.setAttribute('data-active', val)\r\n })\r\n }\r\n\r\n updateListOfShortlists() {\r\n const shortlistLinks = document.querySelector('.shortlist-list ul')\r\n if (shortlistLinks !== null) {\r\n // empty items from div\r\n shortlistLinks.innerHTML = ''\r\n // repopulate div\r\n const currentId = document.getElementById('listId').value\r\n this.shortlists.forEach((s) => {\r\n let activeFlag = ''\r\n if (currentId === s.id) {\r\n activeFlag = 'aria-current=\"true\"'\r\n }\r\n shortlistLinks.innerHTML += `
  • ${s.name} ${s.items.length}
  • `\r\n })\r\n }\r\n }\r\n\r\n IsCodeInShortlists(code) {\r\n let found = 'false'\r\n if (this.userIsAuthenticated()) {\r\n this.GetAllFromLocalStorage()\r\n this.shortlists.forEach((sl) => {\r\n if (sl.items.find(i => i.value === code)) {\r\n found = 'true'\r\n }\r\n })\r\n } else {\r\n const shortlist = new Shortlist()\r\n if (shortlist.contains(code)) {\r\n found = 'true'\r\n }\r\n }\r\n return found\r\n }\r\n}\r\n\r\nconst favouriteButtons = document.querySelectorAll('.favourite-button')\r\n\r\nnew Helpers(document.getElementsByTagName('body')).delegateEventListener('.modal-open[aria-controls=\"createShortlist\"]', (e) => {\r\n const modal = document.getElementById('createShortlist')\r\n modal.setAttribute('data-code', new Helpers(e.target).getClosest('.modal-open').getAttribute('data-code'))\r\n}, 'click')\r\n\r\nnew Helpers(document.querySelector('.modal-open[aria-controls=\"EditShortlist\"]')).eventListener((e) => {\r\n const guid = e.target.getAttribute('data-slguid')\r\n const Sl = window.sl.shortlists.find(s => s.id === guid)\r\n document.getElementsByClassName('edit-shortlist-name')[0].value = he.decode(Sl.name)\r\n document.getElementsByClassName('edit-shortlist-name')[0].setAttribute('data-slguid', guid)\r\n}, 'click')\r\n\r\nnew Helpers(window).eventListener(() => {\r\n window.sl = new ShortlistAPI()\r\n const forceRefresh = document.querySelectorAll('.shortlist__lead, .cottage').length > 0\r\n window.sl.updateHeaderIcon()\r\n window.sl.LoadShortlists(forceRefresh).then(() => {\r\n window.sl.HighlightShortlistedCottages()\r\n window.sl.updateHeaderIcon()\r\n\r\n \r\n if (window.sl.userIsAuthenticated()) {\r\n Array.from(favouriteButtons).forEach((el) => {\r\n el.setAttribute('data-multi', 'true')\r\n el.setAttribute('data-active', window.sl.IsCodeInShortlists(el.getAttribute('data-code').replace(/[CX]/, '')))\r\n })\r\n }\r\n\r\n\r\n })\r\n}, 'load')\r\n\r\nnew Helpers(document.querySelector('.shortlist-aside__select select')).eventListener((e) => {\r\n const shortlistId = e.target.value\r\n window.location = `/my-classic/MyShortlist.aspx?id=${shortlistId}`\r\n}, 'change')\r\n\r\nnew Helpers(document.querySelector('.shortlist__consent--append-to-list')).eventListener(() => {\r\n const codes = document.querySelector('.urlshortlistCodes').value.split(',')\r\n const selector = document.querySelector('#ShortlistsConsent')\r\n const guid = selector[selector.selectedIndex].value\r\n const shortlist = window.sl.shortlists.find(s => s.id === guid)\r\n codes.forEach((c) => {\r\n const thisItem = new Shortlistitem()\r\n thisItem.shortlistId = shortlist.id\r\n thisItem.value = c\r\n window.sl.AddShortlistItem(thisItem)\r\n })\r\n window.location = `/my-classic/MyShortlist.aspx?id=${guid}`\r\n}, 'click')\r\n\r\nnew Helpers(document.querySelector('.shortlist__consent--create-new')).eventListener(() => {\r\n const url = `${window.location.href}&SaveSharedShortlist=true`\r\n window.location = url\r\n}, 'click')\r\n\r\nnew Helpers(document.querySelector('.shortlist__consent .close')).eventListener(() => {\r\n document.querySelector('.shortlist__consent').hidden = true\r\n}, 'click')\r\n\r\nconst modal = document.getElementById('createShortlist')\r\nif (modal !== null) {\r\n const formUI = document.getElementsByClassName('modal-create-shortlist__form')[0]\r\n const successUI = document.getElementsByClassName('modal-shortlist__success')[0]\r\n const errorUI = document.getElementsByClassName('modal-shortlist__error')[0]\r\n new Helpers(formUI.getElementsByClassName('shortlist-create')[0]).eventListener((e) => {\r\n const cottageCode = modal.getAttribute('data-code')\r\n const name = formUI.getElementsByClassName('shortlist-name')[0].value\r\n e.preventDefault()\r\n if (name.length > 0) {\r\n window.sl.CreateShortlist(name, false).then(() => {\r\n const thisId = window.sl.shortlists[window.sl.shortlists.length - 1].id\r\n if (cottageCode !== 'null') {\r\n const thisItem = new Shortlistitem()\r\n thisItem.shortlistId = thisId\r\n thisItem.value = cottageCode\r\n window.sl.AddShortlistItem(thisItem)\r\n new Helpers(document.querySelectorAll(`.favourite-button[data-code=\"${cottageCode}\"]`)).setAttributes({ 'data-active': 'true' })\r\n }\r\n formUI.setAttribute('aria-hidden', 'true')\r\n errorUI.setAttribute('aria-hidden', 'true')\r\n successUI.setAttribute('aria-hidden', 'false')\r\n\r\n if (document.getElementsByClassName('shortlist-home').length) {\r\n setTimeout(() => {\r\n modal.querySelector('.modal-close').click()\r\n }, 1000)\r\n window.location.href = `/my-classic/MyShortlist.aspx?id=${thisId}`\r\n } else {\r\n setTimeout(() => {\r\n modal.querySelector('.modal-close').click()\r\n errorUI.setAttribute('aria-hidden', 'true')\r\n successUI.setAttribute('aria-hidden', 'true')\r\n formUI.setAttribute('aria-hidden', 'false')\r\n formUI.getElementsByClassName('shortlist-name')[0].value = ''\r\n }, 2000)\r\n }\r\n })\r\n }\r\n })\r\n}\r\nconst EditModal = document.getElementById('EditShortlist')\r\nif (EditModal !== null) {\r\n const formUI = document.getElementsByClassName('modal-edit-shortlist__form')[0]\r\n const successUI = document.getElementsByClassName('modal-edit-shortlist__success')[0]\r\n const errorUI = document.getElementsByClassName('modal-edit-shortlist__error')[0]\r\n new Helpers(formUI.getElementsByClassName('shortlist-edit')[0]).eventListener((e) => {\r\n const guid = document.getElementsByClassName('edit-shortlist-name')[0].getAttribute('data-slguid')\r\n const name = formUI.getElementsByClassName('edit-shortlist-name')[0].value\r\n e.preventDefault()\r\n if (name.length > 0) {\r\n window.sl.PatchShortlist(name, guid).then(() => {\r\n formUI.setAttribute('aria-hidden', 'true')\r\n errorUI.setAttribute('aria-hidden', 'true')\r\n successUI.setAttribute('aria-hidden', 'false')\r\n\r\n if (document.getElementsByClassName('shortlist-home').length) {\r\n setTimeout(() => {\r\n modal.querySelector('.modal-close').click()\r\n }, 1000)\r\n window.location.href = `/my-classic/MyShortlist.aspx?id=${guid}`\r\n }\r\n })\r\n }\r\n })\r\n}\r\n\r\n\r\n","import Hammer from 'hammerjs'\r\nimport Helpers from '../modules/Helpers'\r\nimport isBrowserIE9 from '../modules/IsBrowserIE9'\r\nimport SliderThumbNailGallery from '../modules/SliderThumbnails'\r\n\r\nclass Slider {\r\n\r\n //#region constructor\r\n\r\n constructor(slider, options = {}) {\r\n\r\n if(!slider) return; // Guard Clause\r\n\r\n // Create an accessible instances of properties\r\n this.slider = slider;\r\n \r\n this.slides = Array.from(this.slider.querySelectorAll('.slider__item'));\r\n if(this.slides.length === 0) return; // Guard Clause\r\n\r\n this.slidesContainer = this.slider.querySelector('.slides__container');\r\n this.slidesWrap = this.slider.querySelector('.slider__wrapper');\r\n this.arrowNavigation = this.slider.querySelectorAll('.slider__toggle'); // I'm not sure why these are called 'toggle' in the dom \r\n this.nav = this.slider.querySelectorAll('.slider__nav');\r\n\r\n // Combine passed options and defaults \r\n this.options = this.setOptions(options);\r\n\r\n // Set slider General Slider Properties\r\n this.sliderProperties = this.setSliderProperties();\r\n\r\n // Load the actual slider up\r\n this.load();\r\n\r\n // If we have a thumbnail set to associate, extend the class to include the functionality\r\n if (this.isThumbnailClassValid())\r\n this.thumbNailClass = new SliderThumbNailGallery(this, this.options, this.sliderProperties);\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Options Settings/Properties\r\n\r\n // Set options: this.options\r\n\r\n setOptions = (options) => {\r\n this.defaultOptions = {\r\n autoPlayTime: 3000,\r\n speed: 0.5,\r\n mobileSize: 600,\r\n tabletSize: 800,\r\n cssPrefixes: ['webkit', 'moz', 'MS', 'o', ''],\r\n sliderStartPosition: 0,\r\n navTemplate: '{index}',\r\n numberOfClones: 6, \r\n clonesOffset: 3, \r\n slideChangeCallback: () => { },\r\n }\r\n return Object.assign(this.defaultOptions, options);\r\n }\r\n\r\n // Set all slider setting properties: this.sliderProperties\r\n setSliderProperties = () => {\r\n return {\r\n sliderHasThumbnailGallery: this.sliderHasThumbnailGallery(),\r\n isBrowserIE9: isBrowserIE9(),\r\n isLoop: this.isLoop(),\r\n isFullWidth: this.isFullWidth(),\r\n isLazyLoad: this.isLazyLoad(),\r\n isAutoPlay: this.isAutoPlay(),\r\n isSetWidthSlider: this.isSetWidthOfSlider(),\r\n sliderDisplayAmount: this.getSliderDisplayAmount(),\r\n loadAllSlidesFunctionUsed: false,\r\n currentSliderPosition: this.options.sliderStartPosition // inc clones (default is updated when clones are produced)\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region Utility Functions\r\n\r\n // Check if we've navigated to a 'cloned' slider item\r\n isCurrentSliderAClone = () => this.slides[this.sliderProperties.currentSliderPosition].classList.contains('slider__item--clone');\r\n\r\n // Check if certain slide is a 'cloned' slider item\r\n isSliderAClone = (index) => this.slides[index].classList.contains('slider__item--clone');\r\n\r\n // Set the slider in/out of the 'loading' state (based on the slider's parent having a loading class, a bit fluffy of a selector, but the idea is that it would wrap everything).\r\n setLoadingState = loading => loading ? this.slider.parentElement.add('loading') : this.slider.parentElement.classList.remove('loading');\r\n\r\n // Test if the slider has a thumbnail gallery we need to associate with it\r\n sliderHasThumbnailGallery = () => !!this.slider.dataset.thumbnailId;\r\n\r\n // Get the amount of slides we want to display in the slider area (this needs to be updated on page resize)\r\n getSliderDisplayAmount = () => this.getSliderDisplayAmount();\r\n\r\n // Set the amount off clones either side of th slider\r\n setClonesOffset = (offSet) => this.options.clonesOffset = offSet;\r\n\r\n // Set the amount of slides we want to display in the slider area (this needs to be updated on page resize)\r\n setSliderDisplayAmount = () => this.sliderProperties.sliderDisplayAmount = this.getSliderDisplayAmount();\r\n\r\n // Test is slider is meant to loop\r\n isLoop = () => !this.setSliderProperties.isBrowserIE9 && this.slider.hasAttribute('data-loop');\r\n\r\n // Test if slider is Full Screen width\r\n isFullWidth = () => this.slider.hasAttribute('data-full-width');\r\n\r\n // Test the slider itself is set to be lazy loaded into the dom\r\n isLazyLoad = () => this.slider.hasAttribute('data-lazy');\r\n\r\n // Test if slider is set to autoplay\r\n isAutoPlay = () => this.slider.hasAttribute('data-autoplay');\r\n\r\n // Set Current Slider Position\r\n setSliderProperty__CurrentSliderPosition = (position) => this.sliderProperties.currentSliderPosition = position;\r\n\r\n // If we're fixing the width of our sliders rather than leaving responsive\r\n isSetWidthOfSlider = () => !this.slider.hasAttribute('data-responsive-width');\r\n\r\n // Set width of each slide (no support for portrait)\r\n setWidthOfSlider = (width) => this.slides.forEach(x => x.style.width = `${width}px`);\r\n\r\n // Remove set width of each slide\r\n removeWidthOfSlider = (index) => this.slides[index].style.removeProperty(\"width\");\r\n\r\n // Check that we have details an the viewport is the correct size to try and initalise a thumbnail class\r\n isThumbnailClassValid = () => this.sliderProperties.sliderHasThumbnailGallery && window.innerWidth > this.options.mobileSize;\r\n\r\n // set flag if 'load all images' function has been used, as once used, we don't have to bother again\r\n setLoadAllSlidesFunctionUsed = (used) => this.sliderProperties.loadAllSlidesFunctionUsed = used;\r\n\r\n //#endregion\r\n\r\n //#region Auto Play\r\n\r\n autoPlay = () => {\r\n this.autoInt = setInterval(() => {\r\n this.changeActiveSlider(++this.sliderProperties.currentSliderPosition);\r\n }, this.options.autoPlayTime)\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Load Up The Slider\r\n\r\n // Initial Load Up Of The Slider\r\n load = () => {\r\n\r\n // Add Slider Clones For Looping\r\n if (this.sliderProperties.isLoop) this.addSlideClones();\r\n\r\n // Set width of each slide based on container\r\n if(this.sliderProperties.isSetWidthSlider)\r\n this.setWidthOfSlider(this.slidesWrap.clientWidth / this.sliderProperties.sliderDisplayAmount);\r\n\r\n // Load Initial images\r\n if (this.sliderProperties.isLazyLoad) {\r\n // If we're lazy loading images, ensure we've loaded them before we start calculating widths for positioning etc\r\n const indices = this.getDefaultSlideIndexes(this.sliderProperties.currentSliderPosition);\r\n this.lazyLoadSlideImages(indices, true, false, () => {\r\n this.sharedLoadFunctions();\r\n });\r\n\r\n } else {\r\n this.sharedLoadFunctions();\r\n }\r\n }\r\n\r\n // Share general loading functions \r\n sharedLoadFunctions = () => {\r\n\r\n // Set slider position directly\r\n this.setSliderXAxisPosition(this.sliderProperties.currentSliderPosition, false); \r\n\r\n // Set Initial Slider Classes live\r\n this.setSliderActiveCSSClasses(this.sliderProperties.currentSliderPosition);\r\n\r\n // Hide/Show arrow nav\r\n this.hideArrowNavigation();\r\n\r\n // Attach Prev/Next arrow functions\r\n this.setArrowNavigation();\r\n\r\n // Set swipe gesture\r\n this.hammer();\r\n\r\n /// Auto play\r\n if (this.sliderProperties.isAutoPlay) this.autoPlay();\r\n\r\n // Listen for when page is resized\r\n this.pageResize();\r\n\r\n // Take slider out of 'Loading State'\r\n this.setLoadingState(false);\r\n \r\n }\r\n\r\n\r\n // Deferred loading of the slider\r\n deferredLoad = (s) => {\r\n return new Promise((resolve) => {\r\n resolve(new Slider(s))\r\n })\r\n }\r\n\r\n // Activate slider \r\n activate = () => {\r\n var that = this\r\n\r\n if (document.readyState === 'complete') {\r\n this.load() /** 1 */\r\n } else {\r\n window.addEventListener('load', function () { that.load() }) /** 1 */\r\n }\r\n window.addEventListener('resize', function () { that.pageResize() }) /** 2 */\r\n\r\n this.hammer() /** 3 */\r\n\r\n\r\n return this\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Page resize listener\r\n\r\n // Page resize listener\r\n pageResize = () => {\r\n window.addEventListener('resize', () => {\r\n \r\n // Thumbnail gallery hasn't been initialised, however it now needs to (going from small to large)\r\n if(!this.thumbNailClass && this.isThumbnailClassValid())\r\n this.thumbNailClass = new SliderThumbNailGallery(this, this.options, this.sliderProperties);\r\n\r\n // Reset how many slide we want on the page to show\r\n this.setSliderDisplayAmount();\r\n\r\n // Set width of each slide based on container\r\n if(this.sliderProperties.isSetWidthSlider) this.setWidthOfSlider(this.slidesWrap.clientWidth / this.sliderProperties.sliderDisplayAmount);\r\n\r\n // Call setSliderXAxisPosition only after all images have finished loading\r\n this.setSliderXAxisPosition(this.sliderProperties.currentSliderPosition, false);\r\n\r\n // Re-Calc thumbnail position \r\n if (this.thumbNailClass) \r\n this.thumbNailClass.setThumbXAxisPosition(this.thumbNailClass.thumbProperties.currentThumbPosition, false);\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Slider Width\r\n\r\n // Retrieve the number of slides currently visible within the slider display window, such as 3 on desktop, 2 on tablet, and 1 on mobile.\r\n getSliderDisplayAmount = () => {\r\n\r\n // Guard Clause\r\n if (!this.sliderHasDisplayQuantitySet())\r\n return 1;\r\n\r\n const windowWidth = window.innerWidth;\r\n let attribute;\r\n \r\n // Determine which attribute to use based on window width\r\n switch (true) {\r\n case windowWidth <= this.options.mobileSize:\r\n attribute = 'data-qty-mobile';\r\n break;\r\n case windowWidth <= this.options.tabletSize:\r\n attribute = 'data-qty-tablet';\r\n break;\r\n default:\r\n attribute = 'data-qty';\r\n }\r\n \r\n return this.getDisplayQuantity(attribute);\r\n };\r\n \r\n\r\n // Test if a qty is set\r\n sliderHasDisplayQuantitySet = () => this.slider.hasAttribute('data-qty') || this.slider.hasAttribute('data-qty-tablet') || this.slider.hasAttribute('data-qty-mobile');\r\n\r\n // Get qty attribute value (default to 1 if not present)\r\n getDisplayQuantity = (type) => parseInt(this.slider.getAttribute(type) || '1', 10);\r\n\r\n\r\n //#endregion\r\n\r\n //#region Set Up Clones\r\n\r\n // Basic entry point for adding clones to slides array and the DOM\r\n addSlideClones = () => {\r\n // Clone Last slide(s) and add them to the front of the slides\r\n this.addFirstSlideClones();\r\n\r\n // Clone First slide(s) and add them to the back of the slides\r\n this.addLastSlideClones();\r\n\r\n // Update current slider position to take into account clones\r\n this.setSliderProperty__CurrentSliderPosition(this.options.clonesOffset);\r\n }\r\n\r\n\r\n // Take the last slide(s) and clone them before the first slides array nodes and slide DOM elements \r\n addFirstSlideClones = () => {\r\n const selectedSlides = this.slides.filter(slide => !slide.classList.contains('slider__item--clone'))\r\n .slice(Math.max(0, this.slides.length - this.options.clonesOffset), this.slides.length);\r\n\r\n // update the default clone offset, if needed (maybe we don't have enough slides to actually reach that number)\r\n if(selectedSlides.length !== this.options.clonesOffset)\r\n this.setClonesOffset(selectedSlides.length);\r\n\r\n selectedSlides.reverse().forEach((slide) => {\r\n const clonedSlide = slide.cloneNode(true);\r\n // Add clone specific class\r\n new Helpers(clonedSlide).addClass('slider__item--clone');\r\n // Add clone to global slides array\r\n this.slides.unshift(clonedSlide);\r\n // Add to the DOM\r\n this.slidesContainer.prepend(clonedSlide);\r\n });\r\n\r\n };\r\n\r\n // Take the first slide(s) and clone them after the last slides array nodes and slide DOM elements \r\n addLastSlideClones = () => {\r\n const selectedSlides = this.slides.filter(slide => !slide.classList.contains('slider__item--clone'))\r\n .slice(0, this.options.clonesOffset);\r\n \r\n // update the default clone offset, if needed (maybe we don't have enough slides to actually reach that number)\r\n if(selectedSlides.length !== this.options.clonesOffset)\r\n this.setClonesOffset(selectedSlides.length);\r\n\r\n selectedSlides.forEach(slide => {\r\n const clonedSlide = slide.cloneNode(true);\r\n // Add clone specific class\r\n new Helpers(clonedSlide).addClass('slider__item--clone');\r\n // Append clone to global slides array \r\n this.slides.push(clonedSlide);\r\n // Append clone to the DOM\r\n this.slidesContainer.append(clonedSlide);\r\n });\r\n };\r\n\r\n //#endregion\r\n\r\n //#region Prev / Next Button Functions\r\n\r\n // Attach event listeners to arrow buttons\r\n setArrowNavigation = () => {\r\n this.arrowNavigation.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n\r\n const direction = e.target.getAttribute('data-direction');\r\n let newSliderPosition = this.sliderProperties.currentSliderPosition;\r\n\r\n if(direction === \"prev\"){\r\n newSliderPosition--;\r\n // Change active slider\r\n this.changeActiveSlider(newSliderPosition);\r\n // Change Thumbnail (if present)\r\n this.updateNextPreThumbnail(direction);\r\n\r\n }\r\n else { // \"next\"\r\n newSliderPosition++;\r\n // Change active slider\r\n this.changeActiveSlider(newSliderPosition);\r\n // Change Thumbnail (if present)\r\n this.updateNextPreThumbnail(direction);\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n // Hide/Show Arrow Navigation at end/start of slide (If not a loop)\r\n hideArrowNavigation = () => {\r\n\r\n if(this.slides.length <=this.sliderProperties.sliderDisplayAmount)\r\n {\r\n this.arrowNavigation.forEach(x => x.setAttribute('aria-hidden', true));\r\n } else if (!this.sliderProperties.isLoop) {\r\n const hidePrev = this.sliderProperties.currentSliderPosition === 0;\r\n const hideNext = (this.sliderProperties.currentSliderPosition + this.sliderProperties.sliderDisplayAmount) >= this.slides.length;\r\n \r\n this.arrowNavigation.forEach((element) => {\r\n const direction = element.getAttribute('data-direction');\r\n let hide = false;\r\n if (direction === 'prev' && hidePrev) {\r\n hide = true;\r\n } else if (direction === 'next' && hideNext) {\r\n hide = true;\r\n }\r\n element.setAttribute('aria-hidden', hide);\r\n })\r\n } \r\n }\r\n\r\n\r\n //#endregion\r\n\r\n //#region Position change and associated Functions\r\n\r\n // Change where the slider is\r\n changeActiveSlider = (newSliderPosition, useTransition = true) => {\r\n\r\n // Lazy Load new surrounding images (don't bother waiting, we should be just loading potential next images)\r\n if (this.sliderProperties.isLazyLoad) {\r\n const indices = this.getDefaultSlideIndexes(newSliderPosition);\r\n this.lazyLoadSlideImages(indices, false, true, () => {});\r\n } \r\n\r\n // Update CSS\r\n this.setSliderActiveCSSClasses(newSliderPosition, useTransition); \r\n\r\n // Trigger the DOM change\r\n this.setSliderXAxisPosition(newSliderPosition, useTransition); \r\n\r\n // Hide/Show arrow nav\r\n this.hideArrowNavigation();\r\n\r\n // Update global position\r\n this.setSliderProperty__CurrentSliderPosition(newSliderPosition);\r\n\r\n // Check if we need to 'Loop'\r\n if (this.sliderProperties.isLoop) this.loopSlider(newSliderPosition);\r\n }\r\n\r\n // update thumbnail next/previous\r\n updateNextPreThumbnail = (direction) => {\r\n\r\n // If we have a thumbnail gallery update that with the position change\r\n if (this.thumbNailClass) {\r\n switch (direction) {\r\n case \"prev\":\r\n this.thumbNailClass.previousThumb();\r\n break;\r\n case \"next\":\r\n this.thumbNailClass.nextThumb();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n // Set slider position\r\n setSliderXAxisPosition = (slideIndex, useTransition = true) => {\r\n\r\n let position = 0;\r\n let sliced = this.slides.slice(0, slideIndex);\r\n\r\n sliced.forEach(slide => {\r\n const rect = slide.getBoundingClientRect();\r\n position += rect.width;\r\n });\r\n\r\n // if slider is a lot smaller, and responsive, lets try and centre it\r\n if(!this.sliderProperties.isSetWidthSlider) {\r\n const slidesViewPortWidth = this.slidesWrap.clientWidth;\r\n if(this.slides[slideIndex]){\r\n const selectedSlideImgWidth = this.slides[slideIndex].clientWidth;\r\n if(selectedSlideImgWidth < slidesViewPortWidth) {\r\n const adjustAmount = (slidesViewPortWidth - selectedSlideImgWidth) / 2;\r\n position = position - adjustAmount;\r\n }\r\n }\r\n }\r\n\r\n // If slider is gracefully 'sliding' to new position or jumping (Jump to, probably part of a 'loop')\r\n if (useTransition) {\r\n this.slidesContainer.style.transition = `transform ${this.options.speed}s ease-in-out 0s`;\r\n } else {\r\n this.slidesContainer.style.transition = 'none';\r\n }\r\n\r\n // Move slider into position\r\n if (this.sliderProperties.isBrowserIE9) {\r\n this.slidesContainer.style.msTransform = `translateX(-${position}px)`\r\n } else {\r\n this.slidesContainer.style.transform = `translate3d(-${position}px, 0px, 0px)`\r\n this.slidesContainer.style.webkitTransform = `translateX(-${position}px)`\r\n }\r\n }\r\n\r\n // Set slider as active via class\r\n // Note: we use 'active--no-transition' to avoid buggy double transitions while looping the slider\r\n setSliderActiveCSSClasses = (position, useTransition = true) => {\r\n this.slides.forEach(x => x.classList.remove('active', 'active--no-transition'));\r\n const slide = this.slides[position];\r\n useTransition ? slide.classList.add('active') : slide.classList.add('active--no-transition');\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Looping\r\n\r\n // Check and then loop the slider if nee be\r\n loopSlider = (newSliderPosition) => {\r\n\r\n const offset = this.options.clonesOffset;\r\n \r\n if (this.isSliderAClone(newSliderPosition)) {\r\n if (newSliderPosition < offset) {\r\n let adjustedNewPosition = newSliderPosition + (this.slides.length - (offset * 2));\r\n this.doBackLoop(adjustedNewPosition, false);\r\n }\r\n\r\n else if (newSliderPosition >= this.slides.length - offset) {\r\n let adjustedNewPosition = newSliderPosition - (this.slides.length - offset) + offset;\r\n this.doFrontLoop(adjustedNewPosition, false);\r\n }\r\n }\r\n }\r\n\r\n\r\n // Loop back over images (so from the first slider to the last)\r\n doBackLoop = (newSliderPosition, useTransition) => {\r\n setTimeout(() => {\r\n if (this.sliderProperties.isLazyLoad)\r\n {\r\n \r\n const indices = this.getDefaultSlideIndexes(newSliderPosition);\r\n this.lazyLoadSlideImages(indices, false, true, () => {\r\n this.loopFunctions(newSliderPosition, useTransition);\r\n setTimeout(() => {\r\n // If we're going backwards through the loop we're going to have a bad time if we don't load the backwards slide images\r\n this.loadAllSlides();\r\n }, this.options.speed * 1000);\r\n });\r\n \r\n }\r\n else\r\n this.loopFunctions(newSliderPosition, useTransition);\r\n }, this.options.speed * 1000);\r\n }\r\n\r\n\r\n // Loop back over images (so from the first slider to the last)\r\n doFrontLoop = (newSliderPosition, useTransition) => {\r\n setTimeout(() => {\r\n if (this.sliderProperties.isLazyLoad)\r\n {\r\n const indices = this.getDefaultSlideIndexes(newSliderPosition);\r\n this.lazyLoadSlideImages(indices, false, true, () => this.loopFunctions(newSliderPosition, useTransition));\r\n } \r\n else\r\n this.loopFunctions(newSliderPosition, useTransition);\r\n }, this.options.speed * 1000);\r\n }\r\n\r\n\r\n // Shared loop functionality regardless of front or back loop \r\n loopFunctions = (newSliderPosition, useTransition) => {\r\n\r\n // Trigger the DOM change\r\n this.setSliderXAxisPosition(newSliderPosition, useTransition);\r\n\r\n // Update CSS\r\n this.setSliderActiveCSSClasses(newSliderPosition, useTransition);\r\n\r\n // Update global position\r\n this.setSliderProperty__CurrentSliderPosition(newSliderPosition);\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Images\r\n\r\n // Get the next/prev indexes of images to load\r\n getDefaultSlideIndexes = (newSliderPosition) => {\r\n\r\n const slideIndexesToLoad = new Set();\r\n const loadThreshold = this.sliderProperties.sliderDisplayAmount;\r\n \r\n // Load previous slide indexes\r\n for (let i = newSliderPosition - 1; i >= newSliderPosition - loadThreshold && i >= 0; i--) {\r\n slideIndexesToLoad.add(i);\r\n }\r\n \r\n // Load next slide indexes\r\n for (let i = newSliderPosition; i <= newSliderPosition + loadThreshold && i < this.slides.length; i++) {\r\n slideIndexesToLoad.add(i);\r\n }\r\n\r\n return slideIndexesToLoad;\r\n }\r\n\r\n // If we're dealing with a 'responsive' non-fixed width slider,\r\n // we're going to have a really bad time if the images and therefore widths pre-ceeding haven't been loaded in yet. \r\n // So, unfortunately, we have to load them all.\r\n loadAllSlides = () => {\r\n if (!this.sliderProperties.isSetWidthSlider && !this.sliderProperties.loadAllSlidesFunctionUsed) {\r\n const allIndexes = Array.from({ length: this.slides.length }, (_, index) => index);\r\n this.lazyLoadSlideImages(allIndexes, false, false, () => { });\r\n // flag that all the images have been loaded, so we don't bother trying again\r\n this.setLoadAllSlidesFunctionUsed(true);\r\n }\r\n }\r\n\r\n // lazy load images\r\n lazyLoadSlideImages = (slideIndexesToLoad, forcePositionRecalculation, useTransition, callback) => {\r\n\r\n let imagesLoadedCount = 1; // it's a 'size' set, not an array\r\n const totalImagesToLoad = slideIndexesToLoad.size;\r\n \r\n const checkCallback = () => {\r\n\r\n if (forcePositionRecalculation) {\r\n this.setSliderXAxisPosition(this.sliderProperties.currentSliderPosition, useTransition);\r\n }\r\n if (imagesLoadedCount == totalImagesToLoad) {\r\n callback();\r\n }\r\n };\r\n \r\n slideIndexesToLoad.forEach((index) => {\r\n const imagesToLoad = this.slides[index].querySelectorAll('img[data-src]');\r\n \r\n if (imagesToLoad.length === 0) {\r\n imagesLoadedCount++;\r\n checkCallback();\r\n } else {\r\n imagesToLoad.forEach(img => {\r\n if (!img.classList.contains('loaded')) {\r\n const src = img.getAttribute('data-src');\r\n img.src = src;\r\n img.onload = () => {\r\n if(!this.sliderProperties.isSetWidthSlider) this.removeWidthOfSlider(index);\r\n new Helpers(img).addClass('loaded');\r\n imagesLoadedCount++;\r\n checkCallback();\r\n };\r\n } else {\r\n if(!this.sliderProperties.isSetWidthSlider) this.removeWidthOfSlider(index);\r\n imagesLoadedCount++;\r\n checkCallback();\r\n }\r\n });\r\n }\r\n });\r\n };\r\n \r\n //#endregion\r\n\r\n //#endregion hammer / swipe gesture\r\n\r\n hammer = () => {\r\n if (typeof Hammer === 'function') {\r\n\r\n const sliderHammertime = new Hammer(this.slidesContainer);\r\n\r\n sliderHammertime.on('panright', () => {\r\n this.hammerDirection = 'prev';\r\n });\r\n\r\n sliderHammertime.on('panleft', () => {\r\n this.hammerDirection = 'next';\r\n });\r\n\r\n sliderHammertime.on('panend', () => {\r\n\r\n let newSliderPosition = this.hammerDirection === 'next' ? ++this.sliderProperties.currentSliderPosition : --this.sliderProperties.currentSliderPosition;\r\n\r\n // Update slider\r\n this.changeActiveSlider(newSliderPosition);\r\n\r\n /// Update thumbs\r\n this.updateNextPreThumbnail(this.hammerDirection);\r\n \r\n clearInterval(this.autoInt);\r\n });\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n\r\nexport default Slider;","import XHRPromise from 'xhr-promise'\r\nimport Helpers from '../modules/Helpers'\r\nimport Slider from '../modules/Slider'\r\n\r\nconst resultsItemsContainer = document.getElementsByClassName('results-list__items')\r\nconst imageGroupSelector = '.results-list__item-image-group'\r\n\r\nconst loadImages = imageGroup => new Promise((resolve) => {\r\n \r\n const resultItem = new Helpers(imageGroup).getClosest('[data-code^=\"C\"][data-year]');\r\n const code = resultItem.getAttribute('data-code');\r\n const year = resultItem.getAttribute('data-year');\r\n const count = 5;\r\n const xhr = new XHRPromise();\r\n\r\n xhr.send({\r\n url: `/feeds/cottageListPics.aspx?code=${code}&year=${year}&count=${count}&context=search`,\r\n })\r\n .then(response => (new window.DOMParser()).parseFromString(response.responseText, 'text/xml'))\r\n .then((data) => {\r\n \r\n const pictures = Array.from(data.getElementsByTagName('picture')); \r\n const pictureInfo = data.getElementsByTagName('pictures')[0];\r\n const fullyGalleryLength = pictureInfo.getAttribute('unrestrictedGalleryLength');\r\n\r\n pictures.forEach((p, index) => {\r\n const sliderItem = document.createElement('div');\r\n const highLightSlide = index === pictures.length-1 && fullyGalleryLength > count+1;\r\n const classList = highLightSlide ? 'slider__item highlight' : 'slider__item';\r\n sliderItem.setAttribute('class', classList);\r\n\r\n if(highLightSlide) {\r\n const link = document.createElement('a');\r\n const cottageURL = pictureInfo.getAttribute('url');\r\n link.setAttribute('href', cottageURL);\r\n link.innerHTML = `View ${fullyGalleryLength - count}
    more images
    `;\r\n sliderItem.appendChild(link); \r\n }\r\n\r\n const img = document.createElement('img');\r\n img.setAttribute('src', p.getAttribute('url'));\r\n img.setAttribute('srcset', p.getAttribute('srcsets'));\r\n img.setAttribute('sizes', p.getAttribute('sizes'));\r\n sliderItem.appendChild(img);\r\n imageGroup.getElementsByClassName('slides__container')[0].appendChild(sliderItem);\r\n })\r\n\r\n imageGroup.getElementsByClassName('slides__container')[0].style.width = '999999px';\r\n const slider = new Slider(imageGroup);\r\n new Helpers(imageGroup).removeClass('slider--inactive').addClass('slider')\r\n resolve(slider)\r\n })\r\n})\r\n\r\nif (resultsItemsContainer.length > 0) {\r\n new Helpers(resultsItemsContainer).delegateEventListener(imageGroupSelector, (e) => {\r\n const el = new Helpers(e.target).getClosest(imageGroupSelector)\r\n if (el.getAttribute('data-loaded') !== 'true') {\r\n // set as loaded\r\n el.setAttribute('data-loaded', 'true')\r\n // get images and load swiper\r\n loadImages(el)\r\n }\r\n }, 'mouseover')\r\n\r\n new Helpers(resultsItemsContainer).delegateEventListener(imageGroupSelector, (e) => {\r\n const el = new Helpers(e.target).getClosest(imageGroupSelector)\r\n if (el.getAttribute('data-loaded') !== 'true') {\r\n const touchStart = e.touches[0].pageX\r\n // set as loaded\r\n el.setAttribute('data-loaded', 'true')\r\n // get images and load swiper\r\n let slider = null\r\n // load the images and retrieve instance\r\n loadImages(el).then((sliderInstance) => {\r\n slider = sliderInstance\r\n })\r\n\r\n // register a one off touchend event to perform the first navigation event\r\n const touchendCallback = (event) => {\r\n event.currentTarget.removeEventListener(event.type, touchendCallback)\r\n const touchEnd = event.changedTouches[0].pageX\r\n const touchChange = touchStart - touchEnd\r\n // if there is sufficient positional change, navigate the slider\r\n if (Math.abs(touchChange) > 30) {\r\n // use an interval timer as the slider may not yet have been initialized\r\n const sliderNavigateOnLoad = setInterval(() => {\r\n if (slider !== null) {\r\n clearInterval(sliderNavigateOnLoad)\r\n if (touchChange > 30) slider.changeSlide('next', slider.isLoop())\r\n if (touchChange < -30) slider.changeSlide('prev', slider.isLoop())\r\n }\r\n }, 50)\r\n }\r\n }\r\n\r\n el.addEventListener('touchend', touchendCallback)\r\n }\r\n }, 'touchstart')\r\n}\r\n","import Helpers from '../modules/Helpers'\r\n\r\n// Slider thumbnail class (can't currently get this to 'extend')\r\nclass SliderThumbNailGallery {\r\n\r\n //#region constructor\r\n\r\n constructor(sliderClass, options, sliderProperties) {\r\n\r\n // Create an accessible instance of the current slider\r\n this.sliderClass = sliderClass;\r\n this.slider = sliderClass.slider;\r\n this.options = options;\r\n this.sliderProperties = sliderProperties;\r\n\r\n // General properties\r\n this.thumbnailGalleryId = this.getThumbnailGalleryId(this);\r\n if(!this.thumbnailGalleryId) return;\r\n this.thumbnailGallery = document.getElementById(this.thumbnailGalleryId);\r\n this.thumbnailContainer = this.thumbnailGallery.querySelector('.property-slider__thumbnails');\r\n this.thumbs = Array.from(this.thumbnailGallery.querySelectorAll('.thumbnail'));\r\n this.thumbImages = this.thumbnailContainer.querySelectorAll('img');\r\n\r\n // Set slider Thumb General Slider Properties\r\n this.thumbProperties = this.setThumbProperties();\r\n\r\n // Load up thumbnail fun\r\n this.thumbnailLoad();\r\n\r\n this.thumbHammer();\r\n }\r\n\r\n //#endregion\r\n \r\n //#region Options Settings/Properties\r\n\r\n // Set all thumb setting properties: this.thumbProperties\r\n setThumbProperties = () => {\r\n return {\r\n clonesOffest: this.thumbs.slice().length,\r\n clonelessThumbCount: this.thumbs.length,\r\n currentThumbPosition: 0,\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Utility Functions\r\n\r\n // Get the containing element id to associate with the slider\r\n getThumbnailGalleryId = () => this.slider.dataset.thumbnailId;\r\n\r\n // get a cloned version of the thumbnails\r\n getClonedThumbs = () => this.thumbs.filter(thumb => !thumb.classList.contains('thumb__item--clone')).slice();\r\n\r\n // Update current thumb\r\n setCurrentThumb = (position) => this.thumbProperties.currentThumbPosition = position;\r\n\r\n // Check if certain thumb is a 'cloned' thumb item\r\n isThumbAClone = (index) => this.thumbs[index].classList.contains('thumb__item--clone');\r\n \r\n\r\n //#endregion\r\n\r\n //#region Loading\r\n\r\n // Initial Load Up Of The Slider Thumbnail Gallery\r\n thumbnailLoad = () => {\r\n\r\n // Add Thumb Clones For Looping\r\n if (this.sliderProperties.isLoop) this.addThumbClones();\r\n \r\n // Update CSS\r\n this.setThumbActiveCSSClasses(this.thumbProperties.currentThumbPosition, false);\r\n\r\n // Add click events to the thumbs\r\n this.thumbnailClicks();\r\n\r\n // Add hover events to thumbs\r\n this.thumbnailHover();\r\n\r\n // Check all the thumbnail images have loaded before we reveal them\r\n this.checkAllImagesLoaded(() => {\r\n\r\n // Set initial position \r\n this.setThumbXAxisPosition(this.thumbProperties.currentThumbPosition, false);\r\n\r\n // Take thumbs out of loading state\r\n this.setThumbLoadingState(false);\r\n\r\n })\r\n\r\n }\r\n\r\n //#endregion\r\n\r\n //#region utility functions \r\n\r\n // Set the thumbs in/out of the 'loading' state\r\n setThumbLoadingState = loading => loading ? this.thumbnailGallery.classList.add('loading') : this.thumbnailGallery.classList.remove('loading');\r\n\r\n //#endregion\r\n\r\n //#region Image Loading\r\n\r\n // Callback function for when all the thumbnail images are loaded\r\n checkAllImagesLoaded = (callback) => {\r\n const checkImagesRendered = () => {\r\n const allImagesRendered = Array.from(this.thumbImages).every(image => image.complete && image.naturalWidth !== 0);\r\n allImagesRendered ? callback() : requestAnimationFrame(checkImagesRendered);\r\n };\r\n checkImagesRendered();\r\n };\r\n \r\n //#endregion\r\n\r\n //#region Set Up Clones\r\n\r\n // Basic entry point for adding clones to slides array and the DOM\r\n addThumbClones = () => {\r\n\r\n // Clone Last thumb(s) and add them to the front of the slides\r\n this.addFirstThumbClones();\r\n\r\n // Clone First thumb(s) and add them to the back of the slides\r\n this.addLastThumbClones();\r\n }\r\n\r\n // Take the last thumb(s) and clone them before the first thumb array nodes and thumb DOM elements \r\n addFirstThumbClones = () => {\r\n\r\n const clones = this.getClonedThumbs();\r\n\r\n clones.reverse().forEach((thumb) => {\r\n const clonedThumb = thumb.cloneNode(true);\r\n // Add clone specific class\r\n new Helpers(clonedThumb).addClass('thumb__item--clone');\r\n // Add clone to global thumb array\r\n this.thumbs.unshift(clonedThumb);\r\n // Add to the DOM\r\n this.thumbnailContainer.prepend(clonedThumb);\r\n });\r\n\r\n // Adjust for inserted clones\r\n this.setCurrentThumb(clones.length);\r\n\r\n };\r\n\r\n // Take the first thumb(s) and clone them after the last thumb array nodes and thumb DOM elements \r\n addLastThumbClones = () => {\r\n\r\n this.getClonedThumbs().forEach(thumb => {\r\n const clonedThumb = thumb.cloneNode(true);\r\n // Add clone specific class\r\n new Helpers(clonedThumb).addClass('thumb__item--clone');\r\n // Append clone to global thumb array \r\n this.thumbs.push(clonedThumb);\r\n // Append clone to the DOM\r\n this.thumbnailContainer.append(clonedThumb);\r\n });\r\n };\r\n\r\n\r\n\r\n //#endregion\r\n\r\n //#region Position change and associated Functions\r\n\r\n // Previous thumb\r\n previousThumb = () => this.nextPrevFunctions(this.thumbProperties.currentThumbPosition-1);\r\n\r\n // Next thumb\r\n nextThumb = () => this.nextPrevFunctions(this.thumbProperties.currentThumbPosition+1);\r\n\r\n // shared functionality for moving to prev/next thumb\r\n nextPrevFunctions = (newPostiton) => {\r\n\r\n // set global property\r\n this.setCurrentThumb(newPostiton);\r\n\r\n // Change thumb\r\n this.setThumbXAxisPosition(newPostiton, true);\r\n\r\n // Update CSS\r\n this.setThumbActiveCSSClasses(newPostiton, true);\r\n\r\n // Check if loop is required\r\n this.loopThumbs(newPostiton);\r\n }\r\n\r\n // Change where the thumb is\r\n changeActiveThumb = (newPostiton, useTransition = true) => {\r\n\r\n // set global property\r\n this.setCurrentThumb(newPostiton);\r\n\r\n // Trigger the DOM change\r\n this.setThumbXAxisPosition(newPostiton, useTransition);\r\n\r\n // Update CSS\r\n this.setThumbActiveCSSClasses(newPostiton, useTransition);\r\n\r\n // Check if loop is required\r\n this.loopThumbs(newPostiton);\r\n\r\n }\r\n\r\n // Set thumb position\r\n setThumbXAxisPosition = (thumbIndex, useTransition = true) => {\r\n let position = 0;\r\n let sliced = this.thumbs.slice(0, thumbIndex);\r\n sliced.forEach(thumb => {\r\n const rect = thumb.getBoundingClientRect();\r\n position += rect.width;\r\n });\r\n\r\n // If thumb is gracefully 'sliding' to new position or jumping (Jump to, probably part of a 'loop')\r\n if (useTransition) {\r\n this.thumbnailContainer.style.transition = `transform ${this.options.speed}s ease-in-out 0s`;\r\n } else {\r\n this.thumbnailContainer.style.transition = 'none';\r\n }\r\n\r\n // Move thumb into position\r\n if (this.sliderProperties.isBrowserIE9) {\r\n this.thumbnailContainer.style.msTransform = `translateX(-${position}px)`\r\n } else {\r\n this.thumbnailContainer.style.transform = `translate3d(-${position}px, 0px, 0px)`\r\n this.thumbnailContainer.style.webkitTransform = `translateX(-${position}px)`\r\n }\r\n\r\n }\r\n\r\n // Set thumb as active via class\r\n // Note: we use 'active--no-transition' to avoid buggy double transitions while looping the thumb\r\n setThumbActiveCSSClasses = (position, useTransition = true) => {\r\n this.thumbs.forEach(x => x.classList.remove('active', 'active--no-transition'));\r\n useTransition ? this.thumbs[position].classList.add('active') : this.thumbs[position].classList.add('active--no-transition');\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Thumb loop functions\r\n\r\n // Check and then loop the thumbs if need be\r\n loopThumbs = (newThumbPosition) => {\r\n \r\n const offset = this.thumbProperties.clonesOffest;\r\n\r\n if (this.isThumbAClone(newThumbPosition)) {\r\n if (newThumbPosition < offset) {\r\n let adjustedNewPosition = newThumbPosition + (this.thumbs.length - (offset * 2));\r\n this.doThumbBackLoop(adjustedNewPosition);\r\n }\r\n else if (newThumbPosition >= this.thumbs.length - offset) {\r\n let adjustedNewPosition = newThumbPosition - (this.thumbs.length - offset) + offset;\r\n this.doThumbFrontLoop(adjustedNewPosition);\r\n }\r\n }\r\n }\r\n\r\n\r\n // Loop back over images (so from the first thumb to the last)\r\n doThumbBackLoop = (newThumbPosition) => {\r\n setTimeout(() => {\r\n this.loopThumbFunctions(newThumbPosition);\r\n }, this.options.speed * 1000);\r\n }\r\n\r\n\r\n // Loop back over images (so from the first slider to the last)\r\n doThumbFrontLoop = (newThumbPosition) => {\r\n setTimeout(() => {\r\n this.loopThumbFunctions(newThumbPosition);\r\n }, this.options.speed * 1000);\r\n }\r\n\r\n\r\n // Shared loop functionality regardless of front or back loop \r\n loopThumbFunctions = (newThumbPosition) => {\r\n\r\n // Trigger the DOM change\r\n this.setThumbXAxisPosition(newThumbPosition, false);\r\n\r\n // // Update CSS\r\n this.setThumbActiveCSSClasses(newThumbPosition, false);\r\n\r\n // // Update global position\r\n this.setCurrentThumb(newThumbPosition);\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n //#region Thumbnail clicks\r\n\r\n // Add click events for the thumbnail gallery\r\n thumbnailClicks = () => {\r\n\r\n // Loop through each thumbnail\r\n this.thumbs.forEach((thumb, thumbIndex) => {\r\n\r\n // Add click event listener to each thumbnail\r\n thumb.addEventListener('click', () => {\r\n\r\n // Get the index of the clicked thumbnail\r\n const dataIndex = parseInt(thumb.dataset.sliderIndex, 10);\r\n const currentSlideDataIndex = parseInt(this.sliderClass.slides[this.sliderProperties.currentSliderPosition].dataset.sliderIndex, 10);\r\n if(dataIndex !== currentSlideDataIndex)\r\n {\r\n // Adjust index to target to prevent 'whirling' visual bug \r\n const newSlidePosition = this.PreventWhirlingEffect(dataIndex);\r\n\r\n // Change slider position to the clicked index\r\n this.sliderClass.changeActiveSlider(newSlidePosition);\r\n\r\n // Change thumb\r\n this.changeActiveThumb(thumbIndex, true);\r\n }\r\n });\r\n });\r\n }\r\n\r\n // Adjust index of selected to next clone rather than actual slide if that would cause a whirling visual bug\r\n PreventWhirlingEffect = (dataIndex) => {\r\n \r\n const sliderLength = this.sliderClass.slides.length;\r\n let currentIndex = this.sliderProperties.currentSliderPosition;\r\n let nextIndex = (currentIndex + 1) % sliderLength;\r\n \r\n // Check if current index is less than or equal to half of the total slides\r\n if (currentIndex >= sliderLength / 2) {\r\n // Search forward (will be a clone)\r\n for (let i = nextIndex; i !== currentIndex; i = (i + 1) % sliderLength) { \r\n if (this.sliderClass.slides[i].getAttribute('data-slider-index') === dataIndex.toString()) {\r\n return i;\r\n }\r\n }\r\n } \r\n\r\n // Return dataIndex corrected with clone offset \r\n return dataIndex + this.sliderClass.options.clonesOffset;\r\n }\r\n \r\n\r\n //#endregion\r\n\r\n //#region Thumbnail hover\r\n \r\n // Add hover event to thumbs (mainly to predict and pre-load images)\r\n thumbnailHover = () => {\r\n\r\n // Iterate through each element in the array\r\n this.thumbs.forEach((thumb) => {\r\n // Add a hover event listener to each element\r\n thumb.addEventListener('mouseover', () => {\r\n // Get the hovered element's data-slider-index attribute value\r\n const hoveredIndex = parseInt(thumb.getAttribute('data-slider-index'));\r\n \r\n // Create an array of indices from 0 to the hovered index\r\n const indices = Array.from({ length: hoveredIndex + this.options.clonesOffset }, (_, i) => i);\r\n \r\n // Load the array of indices\r\n this.sliderClass.lazyLoadSlideImages(indices, true, true);\r\n });\r\n });\r\n }\r\n\r\n //#endregion\r\n\r\n //#endregion hammer / swipe gesture\r\n\r\n thumbHammer = () => {\r\n if (typeof Hammer === 'function') {\r\n\r\n const thumbHammertime = new Hammer(this.thumbnailGallery);\r\n\r\n thumbHammertime.on('panright', () => {\r\n this.hammerDirection = 'prev';\r\n });\r\n\r\n thumbHammertime.on('panleft', () => {\r\n this.hammerDirection = 'next';\r\n });\r\n\r\n thumbHammertime.on('panend', () => {\r\n\r\n let newSliderPosition = this.hammerDirection === 'next' ? ++this.sliderProperties.currentSliderPosition : --this.sliderProperties.currentSliderPosition;\r\n\r\n // Update slider\r\n this.sliderClass.changeActiveSlider(newSliderPosition);\r\n\r\n /// Update thumbs\r\n if(this.hammerDirection === 'next')\r\n this.nextThumb();\r\n else\r\n this.previousThumb();\r\n \r\n clearInterval(this.autoInt);\r\n });\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n}\r\n\r\nexport default SliderThumbNailGallery;","import Helpers from '../modules/Helpers'\r\nimport XhrPromise from 'xhr-promise'\r\nimport Clipboard from 'clipboard'\r\n\r\nconst emailShare = document.getElementsByClassName('modal-share__email')\r\nconst emailShareForm = document.getElementsByClassName('modal-share__email-form')\r\nconst emailShareSuccess = document.getElementsByClassName('modal-share__email-success')\r\nconst emailShareError = document.getElementsByClassName('modal-share__email-error')\r\n\r\n// initiate dialog copy link to clipboard function\r\nnew Clipboard(document.getElementsByClassName('modal-share__copy-link'))\r\n\r\nnew Helpers(document.getElementsByClassName('social-share')).eventListener((e) => {\r\n let link = e.target.getAttribute('data-link')\r\n const tweet = e.target.getAttribute('data-tweet')\r\n const title = e.target.getAttribute('data-title')\r\n const emailType = e.target.getAttribute('data-emailType')\r\n const emailData = e.target.getAttribute('data-emailData')\r\n const emailSubject = e.target.getAttribute('data-emailSubject')\r\n const message = e.target.getAttribute('data-message')\r\n\r\n const modal = document.getElementById('shareModal')\r\n\r\n // Set form values for email send\r\n modal.getElementsByClassName('modal-share__title')[0].innerText = title\r\n modal.getElementsByClassName('modal-share__email-type')[0].value = emailType\r\n modal.getElementsByClassName('modal-share__email-subject')[0].value = emailSubject\r\n modal.getElementsByClassName('modal-share__email-data')[0].value = emailData\r\n modal.getElementsByTagName('textarea')[0].value = message\r\n\r\n if (document.getElementsByClassName('shortlist-home').length > 0) {\r\n const shareURL = `https://${e.target.getAttribute('data-siteurl')}my-classic/MyShortlist.aspx`\r\n const slname = encodeURI(e.target.getAttribute('data-shortlistname'))\r\n const slcodes = Array.from(document.getElementsByClassName('favourite-button')).map(i => i.getAttribute(\"data-code\")).join(\",\")\r\n link = `${shareURL}?addShortlist=${slcodes}&slname=${slname}`\r\n }\r\n modal.getElementsByClassName('modal-share__shortlist-url')[0].value = link\r\n // Set links for social buttons\r\n modal.getElementsByClassName('btn-facebook')[0].href = `https://www.facebook.com/sharer/sharer.php?u=${escape(link)}`\r\n modal.getElementsByClassName('btn-twitter')[0].href = `https://twitter.com/share/?url=${escape(link)}&text=${escape(tweet)}`\r\n // set link for copy/paste\r\n modal.getElementsByClassName('modal-share__share-link-url')[0].value = link\r\n\r\n // Set initial display state of form\r\n new Helpers(emailShare).setAttributes({ 'aria-hidden': false })\r\n new Helpers(emailShareSuccess).setAttributes({ 'aria-hidden': true })\r\n new Helpers(emailShareError).setAttributes({ 'aria-hidden': true })\r\n})\r\n\r\n// toggle visiblity of custom email message box\r\nnew Helpers(document.getElementsByClassName('modal-share__email-add-message')).eventListener((e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n new Helpers(emailShareForm).toggleClass('add-message')\r\n})\r\n\r\n// Handle ajax email send\r\nnew Helpers(document.getElementsByClassName('modal-share__email')).eventListener((e) => {\r\n e.preventDefault()\r\n const values = []\r\n Array.from(e.target.elements).forEach((element) => {\r\n if (element.name !== undefined && element.name !== '') {\r\n values.push(`${encodeURIComponent(element.name)}=${encodeURIComponent(element.value)}`)\r\n }\r\n })\r\n // hide form to prevent duplicate submission\r\n new Helpers(emailShare).setAttributes({ 'aria-hidden': true })\r\n\r\n const xhr = new XhrPromise()\r\n xhr.send({\r\n url: '/ajax/email.aspx',\r\n method: 'POST',\r\n data: values.join('&'),\r\n })\r\n .then((response) => {\r\n return (new window.DOMParser()).parseFromString(response.responseText, \"text/xml\")\r\n })\r\n .then((data) => {\r\n\r\n const results = data.getElementsByTagName('results')[0]\r\n if (results.getAttribute('outcome') === 'sent') {\r\n new Helpers(emailShareSuccess).setAttributes({ 'aria-hidden': false })\r\n } else {\r\n new Helpers(emailShareError).setAttributes({ 'aria-hidden': false })\r\n }\r\n }).catch((ex) => {\r\n new Helpers(emailShareError).setAttributes({ 'aria-hidden': false })\r\n })\r\n\r\n}, 'submit')\r\n","import Helpers from '../modules/Helpers'\r\n\r\nclass StarRating {\r\n constructor(el) {\r\n this.input = document.getElementById(el.getAttribute('aria-controls'))\r\n\r\n this.stars = el.getElementsByClassName('star-rating__star')\r\n return this\r\n }\r\n\r\n activate() {\r\n this.listeners()\r\n\r\n return this\r\n }\r\n\r\n listeners() {\r\n new Helpers(this.stars).eventListener((e) => {\r\n const rating = parseInt(e.currentTarget.getAttribute('data-rating'))\r\n this.set(rating)\r\n return this\r\n })\r\n }\r\n\r\n clear() {\r\n new Helpers(this.stars).removeClass('star-rating__star--active')\r\n this.input.value = ''\r\n return this\r\n }\r\n\r\n set(rating) {\r\n this.clear()\r\n this.input.value = rating\r\n const activeStars = Array.from(this.stars).filter(star => parseInt(star.getAttribute('data-rating')) <= rating)\r\n new Helpers(activeStars).addClass('star-rating__star--active')\r\n return this\r\n }\r\n}\r\n\r\nArray.from(document.getElementsByClassName('star-rating')).forEach((el) => {\r\n new StarRating(el).activate()\r\n})\r\n\r\nexport default StarRating","import moment from 'moment'\r\nimport XHRPromise from 'xhr-promise'\r\nimport Helpers from '../modules/Helpers'\r\nimport Reveal from '../modules/Reveal'\r\nimport ButtonCounter from '../modules/ButtonCounter'\r\nimport CalendarRange from '../modules/CalendarRange'\r\nimport Map, { streetLayer } from '../modules/Map'\r\nimport GeoSearch from '../modules/GeoSearch'\r\n\r\nconst superSearch = document.getElementById('superSearch')\r\nconst superSearchImage = document.getElementById('superSearchImage')\r\nconst superSearchGroup = document.getElementById('superSearchGroup')\r\nconst superSearchToggles = document.getElementsByClassName('super-search__button')\r\nconst superSearchDropdowns = document.getElementsByClassName('super-search__dropdown')\r\nconst superSearchClose = document.getElementsByClassName('super-search__close')\r\n\r\n// Super search active classes\r\nconst superSearchActiveClass = 'super-search--active'\r\nconst dropdownActiveClass = 'super-search__dropdown--active'\r\nconst toggleActiveClass = 'super-search__button--active'\r\n\r\n// Toggle super search dropdown open and closed\r\n// when corresponding toggle button is clicked.\r\nnew Helpers(superSearchToggles).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n const body = document.querySelector('body')\r\n const currentToggle = document.getElementById(e.currentTarget.id)\r\n const currentDropdownId = e.currentTarget.getAttribute('aria-controls')\r\n const currentDropdown = document.getElementById(currentDropdownId)\r\n const isShown = new Helpers(currentDropdown).hasClass(dropdownActiveClass)\r\n const targetIsSearchResult = new Helpers(e.target).getClosest('.geo-search-result')\r\n const isWhereSearchBox = currentToggle.id === 'whereToGoToggle' && (e.target.tagName.toLowerCase() === 'input' || targetIsSearchResult)\r\n\r\n if (!isShown) {\r\n // Hide all currently active dropdowns in order\r\n // to ensure only one is open at a time.\r\n new Helpers(superSearchDropdowns).removeClass(dropdownActiveClass)\r\n new Helpers(superSearchToggles).removeClass(toggleActiveClass)\r\n\r\n // Add active classes to super search elements\r\n // in order to display correct dropdown.\r\n new Helpers(superSearch).addClass(superSearchActiveClass)\r\n new Reveal(currentDropdown).show(dropdownActiveClass)\r\n new Helpers(currentToggle).addClass(toggleActiveClass)\r\n\r\n if (currentToggle.id === 'whereToGoToggle') {\r\n if (map === null) {\r\n getGeography()\r\n } else {\r\n map.map.invalidateSize()\r\n map.fitShapes()\r\n }\r\n }\r\n if (window.outerWidth <= 600) {\r\n new Helpers(body).addClass('no-scroll')\r\n }\r\n\r\n superSearch.setAttribute('data-active-dropdown', currentToggle.id)\r\n } else if (!isWhereSearchBox) {\r\n // Hide all currently active dropdowns\r\n new Helpers(superSearchDropdowns).removeClass(dropdownActiveClass)\r\n new Helpers(superSearchToggles).removeClass(toggleActiveClass)\r\n\r\n new Helpers(superSearch).removeClass(superSearchActiveClass)\r\n new Helpers(body).removeClass('no-scroll')\r\n superSearch.removeAttribute('data-active-dropdown')\r\n }\r\n})\r\n\r\n\r\nnew Helpers(superSearchClose).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(superSearch).removeClass(superSearchActiveClass)\r\n new Reveal(superSearchDropdowns).hide(dropdownActiveClass)\r\n new Helpers(superSearchToggles).removeClass(toggleActiveClass)\r\n new Helpers(document.querySelector('body')).removeClass('no-scroll')\r\n})\r\n\r\n// Remove all super search active classes when\r\n// clicking off super search dropdowns to ensure\r\n// all dropdowns can be closed when no longer wanted.\r\nnew Helpers(superSearchImage).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n new Helpers(superSearch).removeClass(superSearchActiveClass)\r\n new Reveal(superSearchDropdowns).hide(dropdownActiveClass)\r\n new Helpers(superSearchToggles).removeClass(toggleActiveClass)\r\n})\r\n\r\n\r\n// Stop super search group children events\r\n// bubbling after their own handler executes.\r\nnew Helpers(superSearchGroup).eventListener((e) => {\r\n e.stopPropagation()\r\n})\r\n\r\nif (superSearch !== null) {\r\n (() => {\r\n const rootLocationRegionCode = superSearch.querySelector('.super-search__areas').getAttribute(\"data-root-location\")\r\n let activeFetch = -1\r\n let activeGeoFetch = -1\r\n let locationModified = false\r\n const regions = superSearch.getElementsByClassName('location-region')\r\n const allTowns = superSearch.getElementsByClassName('super-search__towns')[0]\r\n const distance = document.getElementsByName('distance')[0]\r\n\r\n new Helpers(superSearch.getElementsByTagName('form')).eventListener((e) => {\r\n e.preventDefault()\r\n\r\n if (destinationUrl() !== '') {\r\n window.location.href = destinationUrl()\r\n }\r\n }, 'submit')\r\n\r\n let destinationUrl = (mapView = false) => {\r\n const params = getParams()\r\n const setParams = Object.keys(params).length\r\n\r\n let destination = ''\r\n if (mapView) {\r\n return `/results.aspx?search=Y&view=map&${queryString(params)}`\r\n }\r\n if (setParams === 1 && params.rgn !== undefined) {\r\n // use region url\r\n destination = Array.from(regions).filter(r => r.getAttribute('data-value') === params.rgn)[0].getElementsByTagName('a')[0].href\r\n } else if (setParams === 2 && params.nlc !== undefined) {\r\n destination = `/holiday-cottages-${params.nlc.toLowerCase()}.html`\r\n } else if (setParams === 0) {\r\n destination = Array.from(regions).filter(r => r.getAttribute('data-value') === rootLocationRegionCode)[0].getElementsByTagName('a')[0].href\r\n } else {\r\n destination = `/results.aspx?search=Y&${queryString(params)}`\r\n }\r\n return destination\r\n\r\n }\r\n\r\n new Helpers(regions).eventListener((e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n let featuredIds = []\r\n if (e.target.getAttribute('data-toptowns') !== null) {\r\n featuredIds = e.target.getAttribute('data-toptowns').split(\",\")\r\n } else if (e.target.parentElement.getAttribute('data-toptowns') !== null) {\r\n featuredIds = e.target.parentElement.getAttribute('data-toptowns').split(\",\")\r\n }\r\n\r\n new Helpers(regions).setAttributes({ 'aria-current': false })\r\n new Helpers(e.currentTarget).setAttributes({ 'aria-current': true })\r\n\r\n // clear selected town\r\n const allTownsList = allTowns.querySelectorAll('.super-search__towns .location-town')\r\n new Helpers(allTownsList).setAttributes({ 'aria-current': false, 'data-featured': false, 'aria-hidden': true })\r\n\r\n const currentRegion = document.querySelector('.location-region[aria-current=\"true\"]')\r\n\r\n ShowChildLocations(currentRegion.getAttribute('data-id'))\r\n\r\n Array.from(allTownsList).forEach((town) => {\r\n let id = town.getAttribute('data-id').toString()\r\n if (featuredIds.includes(id)) {\r\n new Helpers(town).setAttributes({ 'data-featured': true, 'aria-hidden': false })\r\n }\r\n })\r\n document.getElementsByClassName('map-link')[0].setAttribute('href', destinationUrl(true))\r\n document.getElementsByClassName('super-search__select-location')[0].setAttribute('aria-expanded', false)\r\n\r\n locationModified = true\r\n runSearch()\r\n })\r\n\r\n let ShowChildLocations = (currentID) => {\r\n if (currentID !== '' && currentID !== null && typeof currentID !== 'undefined') {\r\n var childItems = document.querySelectorAll('.location[data-parent-id=\"' + currentID + '\"]')\r\n Array.from(childItems).forEach((ci) => {\r\n if (new Helpers(ci).hasClass('location-town')) {\r\n ci.setAttribute('aria-hidden', false)\r\n }\r\n ShowChildLocations(ci.getAttribute('data-id'))\r\n })\r\n\r\n }\r\n }\r\n\r\n new Helpers(allTowns).eventListener((e) => {\r\n e.preventDefault()\r\n const li = new Helpers(e.target).getClosest('li')\r\n if (li !== undefined) {\r\n new Helpers(allTowns.getElementsByClassName('location-town')).setAttributes({ 'aria-current': false })\r\n new Helpers(li).setAttributes({ 'aria-current': true })\r\n distance.value = li.getAttribute('data-distance')\r\n distance.dispatchEvent(new CustomEvent('sync'))\r\n\r\n locationModified = true\r\n runSearch()\r\n }\r\n })\r\n\r\n let whereSearch = document.getElementsByClassName('super-search__where-search')[0]\r\n let whereResults = document.getElementsByClassName('super-search__where-results')[0]\r\n let geoSearch = new GeoSearch(whereSearch, whereResults, {\r\n placeholderText: {\r\n focus: 'Enter place or cottage name...',\r\n blur: 'Where would you like to go'\r\n }\r\n })\r\n new Helpers(document.getElementsByClassName('super-search__towns-toggle')).eventListener((e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n new Helpers(document.getElementsByClassName('super-search__select-location')).toggleAttribute('aria-expanded')\r\n })\r\n\r\n new Helpers(whereSearch).eventListener((e) => {\r\n e.stopPropagation()\r\n e.preventDefault()\r\n }, 'keyup')\r\n\r\n geoSearch.on('select', (data) => {\r\n switch (data.type) {\r\n case 'Region':\r\n Array.from(regions).find(region => region.getAttribute('data-value') == data.code).click()\r\n break\r\n case 'Location':\r\n Array.from(allTowns.getElementsByClassName('location-town')).find(town => town.getAttribute('data-code') == data.code).click()\r\n break\r\n case 'Cottage':\r\n window.location = data.url\r\n break\r\n default:\r\n // no action\r\n }\r\n geoSearch.clearResults()\r\n })\r\n\r\n geoSearch.on('invalid', (value) => {\r\n if (value.length === 0) {\r\n // set back to UK country\r\n Array.from(regions).filter(r => r.getAttribute('data-value') === rootLocationRegionCode)[0].click()\r\n } else {\r\n // partial value present, reset the buttons\r\n updateButtons(getParams())\r\n }\r\n })\r\n\r\n const guestControls = document.getElementsByClassName('super-search__select-guests-control')\r\n const calendarContainer = document.getElementsByClassName('calendar-range')[0]\r\n const durationInput = document.getElementsByName('duration')[0]\r\n const startDateInput = document.getElementsByName('startDate')[0]\r\n const endDateInput = document.getElementsByName('endDate')[0]\r\n const flexWrap = document.getElementsByClassName('super-search__flex')[0]\r\n const flexInput = document.getElementsByName('flex')[0]\r\n const clearDatesButton = document.getElementsByClassName('super-search__dates-clear')[0]\r\n \r\n // initialise the guest picker controls\r\n Array.from(guestControls).forEach(control => new ButtonCounter(control))\r\n new Helpers(guestControls).eventListener(() => {\r\n runSearch()\r\n }, 'change')\r\n\r\n let calcNoOfCalendars = () => {\r\n return window.outerWidth <= 1050 ? 1 : 2\r\n }\r\n\r\n let noOfCalendars = calcNoOfCalendars()\r\n\r\n window.addEventListener('resize', () => {\r\n if (noOfCalendars !== calcNoOfCalendars()) {\r\n noOfCalendars = calcNoOfCalendars()\r\n calendar.setNoOfCalendars(noOfCalendars).render()\r\n }\r\n })\r\n\r\n // initialise the calendar\r\n let calendar = new CalendarRange(calendarContainer, (startDate, endDate) => {\r\n startDateInput.value = ''\r\n endDateInput.value = ''\r\n if (startDate !== null) {\r\n startDateInput.value = startDate.format('ddd D MMM YYYY')\r\n\r\n let duration = parseInt(durationInput.value, 10)\r\n\r\n if (endDate !== null) {\r\n endDateInput.value = endDate.format('ddd D MMM YYYY')\r\n\r\n if (duration === 0 || endDate.diff(startDate, 'days') < duration) {\r\n // duration hasn't been set or is no longer valid for date range,\r\n // infer it from the dates\r\n duration = Math.min(Math.max(endDate.diff(startDate, 'days'), 2), 7)\r\n durationInput.value = duration\r\n }\r\n\r\n if (endDate.diff(startDate, 'days') < duration) {\r\n calendar.setDates(startDate, moment(startDate).add(duration, 'days'))\r\n }\r\n }\r\n\r\n flexWrap.setAttribute('aria-hidden', false)\r\n clearDatesButton.setAttribute('aria-hidden', false)\r\n }\r\n\r\n runSearch()\r\n })\r\n calendar.setNoOfCalendars(calcNoOfCalendars()).render()\r\n\r\n // duration\r\n new Helpers(durationInput).eventListener(() => {\r\n const startDate = moment(startDateInput.value, 'ddd D MMM YYYY')\r\n const endDate = moment(endDateInput.value, 'ddd D MMM YYYY')\r\n const duration = parseInt(durationInput.value, 10)\r\n\r\n if (!startDate.isValid() || !endDate.isValid()) {\r\n // dates not set, no need to execute validation here\r\n runSearch()\r\n return\r\n } else if (duration === 0) {\r\n // dates are set and no duration provided, do so...\r\n const impliedDuration = Math.max(endDate.diff(startDate, 'days'), 2)\r\n durationInput.value = impliedDuration\r\n }\r\n\r\n if (endDate.diff(startDate, 'days') < duration) {\r\n calendar.setDates(startDate, moment(startDate).add(duration, 'days'))\r\n }\r\n runSearch()\r\n }, 'change')\r\n\r\n new Helpers(flexInput).eventListener(() => {\r\n runSearch()\r\n })\r\n // reset dates input button click\r\n new Helpers(clearDatesButton).eventListener((e) => {\r\n e.preventDefault()\r\n durationInput.value = 0\r\n startDateInput.value = ''\r\n endDateInput.value = ''\r\n calendar.setDates(null, null)\r\n clearDatesButton.setAttribute('aria-hidden', true)\r\n flexWrap.setAttribute('aria-hidden', true)\r\n runSearch()\r\n })\r\n\r\n let getParams = () => {\r\n const params = {}\r\n const region = superSearch.querySelector('.super-search__areas li[aria-current=\"true\"]')\r\n const town = superSearch.querySelector('.super-search__locations li[aria-current=\"true\"]')\r\n const distance = parseInt(document.getElementsByName('distance')[0].value, 10)\r\n const duration = parseInt(document.getElementsByName('duration')[0].value, 10)\r\n const startDate = document.getElementsByName('startDate')[0].value\r\n const endDate = document.getElementsByName('endDate')[0].value\r\n const flex = parseInt(document.getElementsByName('flex')[0].value, 10)\r\n const adults = parseInt(document.getElementsByName('adults')[0].value, 10)\r\n const children = parseInt(document.getElementsByName('children')[0].value, 10)\r\n const babies = parseInt(document.getElementsByName('babies')[0].value, 10)\r\n const pets = parseInt(document.getElementsByName('pets')[0].value, 10)\r\n\r\n if (town !== null) {\r\n params.nlc = town.getAttribute('data-url-name')\r\n params.nlm = distance\r\n } else if (region.getAttribute('data-value') !== rootLocationRegionCode) {\r\n params.rgn = region.getAttribute('data-value')\r\n }\r\n if (duration > 0) {\r\n params.nday = duration\r\n }\r\n if (startDate !== '') {\r\n params.dss = startDate\r\n if (endDate !== '') {\r\n params.des = endDate\r\n } else if (duration > 0) {\r\n params.des = moment(startDate, 'ddd D MMM YYYY').add(duration, 'days').format('ddd D MMM YYYY')\r\n }\r\n if (flex !== 3) {\r\n params.flex = flex\r\n }\r\n }\r\n if (duration > 0 && startDate !== '' && endDate !== '') {\r\n // Store search dates for use on cottage availability form.\r\n try {\r\n const dates = {\r\n dss: moment(startDate, 'ddd D MMM YYYY').toISOString(true),\r\n des: moment(endDate, 'ddd D MMM YYYY').toISOString(true),\r\n nday: duration,\r\n }\r\n sessionStorage.setItem('searchDates', JSON.stringify(dates))\r\n } catch (e) {\r\n console.log(e)\r\n }\r\n }\r\n\r\n if (adults > 1) params.minA = adults\r\n if (children > 0) params.minC = children\r\n if (babies > 0) params.minB = babies\r\n if (pets > 0) params.pet = pets\r\n\r\n return params\r\n }\r\n\r\n let updateButtons = (params) => {\r\n const guests = (params.minA || 1) + (params.minC || 0) + (params.minB || 0)\r\n const pets = params.pet || 0\r\n\r\n // Where\r\n let whereTitle = ''\r\n if (params.nlc !== undefined) {\r\n whereTitle = allTowns.querySelector(`li[data-url-name=\"${params.nlc}\"]`).getAttribute('data-title')\r\n } else if (params.rgn !== undefined) {\r\n whereTitle = Array.from(regions).filter(r => r.getAttribute('data-value') === params.rgn)[0].getAttribute('data-title')\r\n }\r\n geoSearch.setValue(whereTitle)\r\n\r\n // When\r\n const howLongTitle = params.nday > 0 ? document.getElementsByName('duration')[0].querySelector('option:checked').innerText : ''\r\n const howLongSub = params.nday > 0 && params.des !== undefined ? moment(params.dss, 'ddd D MMM YYYY').format('DD/MM/YYYY') + ' - ' + moment(params.des, 'ddd D MMM YYYY').format('DD/MM/YYYY') : ''\r\n setButton('howLongToggle', params.nday > 0, howLongTitle, howLongSub)\r\n\r\n // Guests\r\n const guestsTitle = `${guests} Guest${guests !== 1 ? 's' : ''}`\r\n const guestsSub = `${pets} Dog${pets !== 1 ? 's' : ''}`\r\n setButton('noOfGuestsToggle', guests > 1 || pets > 0, guestsTitle, guestsSub)\r\n }\r\n\r\n\r\n let setButton = (id, set, title, sub) => {\r\n const buttonSetClass = 'super-search__button--set'\r\n const titleClass = 'super-search__button-text-title'\r\n const subClass = 'super-search__button-text-sub'\r\n const button = document.getElementById(id)\r\n if (set) {\r\n new Helpers(button).addClass(buttonSetClass)\r\n button.getElementsByClassName(titleClass)[0].innerText = title\r\n button.getElementsByClassName(subClass)[0].innerText = sub\r\n } else {\r\n new Helpers(button).removeClass(buttonSetClass)\r\n button.getElementsByClassName(titleClass)[0].innerText = ''\r\n button.getElementsByClassName(subClass)[0].innerText = ''\r\n }\r\n }\r\n\r\n let queryString = params => Object.keys(params)\r\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)\r\n .join('&')\r\n\r\n let getGeography = () => {\r\n const region = superSearch.querySelector('.super-search__areas li[aria-current=\"true\"]')\r\n const town = superSearch.querySelector('.super-search__locations li[aria-current=\"true\"]')\r\n\r\n let locationId = 0\r\n let locationDistance = -1\r\n\r\n if (town !== null) {\r\n locationId = town.getAttribute('data-id')\r\n locationDistance = parseInt(document.getElementsByName('distance')[0].value, 10)\r\n } else if (region !== null) {\r\n locationId = region.getAttribute('data-id')\r\n }\r\n\r\n if (activeGeoFetch !== -1) {\r\n activeGeoFetch.getXHR().abort()\r\n }\r\n\r\n activeGeoFetch = new XHRPromise()\r\n activeGeoFetch.send({\r\n url: `/feeds/geography.aspx?locationId=${locationId}&distance=${locationDistance}`,\r\n })\r\n .then(response => (new window.DOMParser()).parseFromString(response.responseText, 'text/xml'))\r\n .then((data) => {\r\n const location = data.getElementsByTagName('location')\r\n if (location.length > 0) {\r\n updateMap(location[0].getAttribute('wkt'))\r\n }\r\n activeGeoFetch = -1\r\n }).catch((error) => {\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n }\r\n })\r\n }\r\n\r\n let runSearch = () => {\r\n Array.from(superSearch.querySelectorAll('button[name=\"submit\"]')).forEach(b => b.innerHTML === '...')\r\n const params = getParams()\r\n updateButtons(params)\r\n\r\n if (locationModified) {\r\n getGeography()\r\n }\r\n\r\n const feedEndpoint = `/feeds/resultsFeed.aspx?search=Y&${queryString(params)}`\r\n\r\n if (activeFetch !== -1) {\r\n activeFetch.getXHR().abort()\r\n }\r\n\r\n activeFetch = new XHRPromise()\r\n activeFetch.send({\r\n url: feedEndpoint,\r\n })\r\n .then(response => (new window.DOMParser()).parseFromString(response.responseText, 'text/xml'))\r\n .then((data) => {\r\n updateUI(data)\r\n activeFetch = -1\r\n }).catch((error) => {\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n }\r\n })\r\n }\r\n\r\n let updateUI = (data) => {\r\n const total = parseInt(data.getElementsByTagName('total')[0].getAttribute('total'), 10)\r\n\r\n // set total\r\n Array.from(superSearch.querySelectorAll('button[name=\"submit\"]')).forEach(b => b.innerHTML = `Search ${total} cottage${total !== 1 ? 's' : ''}`)\r\n\r\n // set regions\r\n Array.from(regions).forEach((region) => {\r\n const code = region.getAttribute('data-value')\r\n const regionTotal = data.getElementsByTagName('regionTotals')[0].getAttribute(code.toLowerCase())\r\n region.getElementsByTagName('span')[0].innerText = regionTotal\r\n })\r\n }\r\n\r\n\r\n let map = null\r\n\r\n let initMap = () => {\r\n if (map === null) {\r\n map = new Map('superSearchMap', {\r\n coords: [50.1016, -5.2750],\r\n zoom: 9,\r\n minZoom: 4,\r\n maxZoom: 14,\r\n zoomControl: false,\r\n attributionControl: false,\r\n dragging: false,\r\n doubleClickZoom: false,\r\n scrollWheelZoom: false,\r\n }, {\r\n LocationMap: streetLayer(),\r\n })\r\n }\r\n }\r\n let updateMap = (wkt) => {\r\n initMap()\r\n map.map.invalidateSize()\r\n map\r\n .clearShapes()\r\n .addShape(wkt, { color: '#29abe3' })\r\n .fitShapes()\r\n }\r\n })()\r\n}\r\n","import Helpers from '../modules/Helpers'\r\n\r\nconst activeClass = 'livechat--active';\r\nconst panels = document.getElementsByClassName('livechat__panel');\r\nconst startChat = document.getElementsByClassName('livechat__start');\r\n\r\nwindow.Tawk_API = window.Tawk_API || {};\r\n\r\n// Show header icon if we have chat agents online\r\nwindow.Tawk_API.onStatusChange = function (status) {\r\n \r\n if (status === 'online') {\r\n new Helpers(panels).addClass(activeClass)\r\n } else {\r\n new Helpers(panels).removeClass(activeClass)\r\n }\r\n};\r\n\r\n// Toggle open/close of the chat widget\r\nnew Helpers(startChat).eventListener(() => {\r\n window.Tawk_API.toggle()\r\n})\r\n\r\n\r\nfunction handleNewsletterSignup(data) {\r\n try {\r\n // If label with \"Newsletter\" is present in the data, we've a positive newsletter sign up\r\n const newsLetterSignUp = data.some(item => item.label === \"Newsletter\");\r\n if (newsLetterSignUp) {\r\n const endpoint = '/ajax/newsletter.aspx';\r\n const formDataObj = {};\r\n\r\n // Iterate through the details array and populate the formDataObj\r\n data.forEach(item => {\r\n formDataObj[item.label.toLowerCase()] = item.answer;\r\n });\r\n\r\n // insert a source property\r\n formDataObj['source'] = 'tawk';\r\n formDataObj['list-name'] = 'chatBoxSignUp';\r\n\r\n // Convert the form data object to a URL-encoded string\r\n const urlEncodedData = new URLSearchParams(formDataObj).toString();\r\n\r\n // Create a URLSearchParams object with a \"data\" field containing the encoded form data\r\n const formBody = new URLSearchParams();\r\n formBody.append('data', urlEncodedData);\r\n\r\n // Fetch POST request to endpoint (we're not really bothered about the response, but commented out for ease of testing)\r\n fetch(endpoint, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n },\r\n body: formBody.toString()\r\n });\r\n //.then(response => {\r\n // if (!response.ok) {\r\n // throw new Error('Network response was not ok');\r\n // }\r\n // console.log('Newsletter signup details sent successfully');\r\n //})\r\n //.catch(error => {\r\n // console.error('Error sending newsletter signup details:', error.message);\r\n //});\r\n }\r\n } catch (error) {\r\n //console.error(error);\r\n }\r\n}\r\n\r\nwindow.Tawk_API.onPrechatSubmit = function (data) {\r\n handleNewsletterSignup(data);\r\n};\r\n\r\nwindow.Tawk_API.onOfflineSubmit = function (data) {\r\n handleNewsletterSignup(data.questions);\r\n};","import tippy from 'tippy.js'\r\nimport he from 'he'\r\n\r\n//tippy('button[aria-label=\"Information\"]', {\r\n// theme: 'light classic',\r\n// animation: 'fade',\r\n// placement: 'right',\r\n// interactive: true, // able to hover over and click in tooltip\r\n//})\r\n\r\n//// set up for cottage page too.\r\n//tippy('.favourite-button', {\r\n// //theme: 'light classic shortlist',\r\n// theme: 'light',\r\n// animation: 'fade',\r\n// allowHTML: true,\r\n// trigger: 'click',\r\n// interactive: true,\r\n// onShow(reference) {\r\n// let html = ''\r\n// const heart = ''\r\n// const code = reference.reference.getAttribute('data-code')\r\n// if (window.sl.shortlists.length > 0) {\r\n// window.sl.shortlists.forEach((shortlist) => {\r\n// let active = 'false'\r\n// if (shortlist.items.find(i => i.value === code)) { active = 'true' }\r\n// html += `

    ${he.encode(shortlist.name)} ${heart}

    `\r\n// })\r\n// } else {\r\n// html += `

    Default ${heart}

    `\r\n// }\r\n// html += `

    Create new shortlist

    `\r\n// reference.setContent(html)\r\n// },\r\n//})\r\n\r\n//tippy('.results-list__price-info', {\r\n// //triggerTarget: '.results-list__price-info',\r\n///* target: '.results-list__price-info',*/\r\n// theme: 'light classic',\r\n// animation: 'fade',\r\n// arrow: true,\r\n// //multiple: true,\r\n// onShow(reference) {\r\n// },\r\n//})\r\n\r\n\r\ntippy('button[aria-label=\"Information-Top\"]', {\r\n theme: 'light classic',\r\n animation: 'fade',\r\n placement: 'top',\r\n arrow: true,\r\n interactive: true, // able to hover over and click in tooltip\r\n})\r\n\r\ntippy('button[aria-label=\"Information\"]', {\r\n theme: 'light classic',\r\n animation: 'fade',\r\n placement: 'right',\r\n arrow: true,\r\n interactive: true, // able to hover over and click in tooltip\r\n})\r\n\r\n// set up for cottage page too.\r\ntippy('.results-list__items, #map, .cottage', {\r\n target: '.favourite-button[data-multi=\"true\"]',\r\n theme: 'light classic shortlist',\r\n animation: 'fade',\r\n arrow: true,\r\n multiple: true,\r\n trigger: 'click',\r\n interactive: true,\r\n onShow(reference) {\r\n let html = ''\r\n const heart = ''\r\n const code = reference.reference.getAttribute('data-code')\r\n if (window.sl.shortlists.length > 0) {\r\n window.sl.shortlists.forEach((shortlist) => {\r\n let active = 'false'\r\n if (shortlist.items.find(i => i.value === code)) { active = 'true' }\r\n html += `

    ${he.encode(shortlist.name)} ${heart}

    `\r\n })\r\n } else {\r\n html += `

    Default ${heart}

    `\r\n }\r\n html += `

    Create new shortlist

    `\r\n reference.setContent(html)\r\n },\r\n})\r\n\r\ntippy('.results-list__items', {\r\n target: '.results-list__price-info',\r\n theme: 'light classic',\r\n animation: 'fade',\r\n arrow: true,\r\n multiple: true,\r\n onShow(reference) {\r\n },\r\n})","import Helpers from '../modules/Helpers'\r\n\r\n/**\r\n * Add class to body if user is tabbing to navigate\r\n * \r\n * @param {Object} event Keydown event\r\n */\r\nconst userTabbing = (event) => {\r\n if (event.keyCode === 9) {\r\n const body = document.querySelector('body')\r\n\r\n new Helpers(body).toggleClass('user-tabbing')\r\n\r\n window.removeEventListener('keydown', userTabbing)\r\n }\r\n}\r\n\r\nwindow.addEventListener('keydown', userTabbing)\r\n","import Helpers from '../Helpers'\r\n\r\nnew Helpers(document.getElementsByClassName('show-password')).eventListener((e) => {\r\n const passwordbox = new Helpers(e.target).getPrevious('input')\r\n if (passwordbox.type === 'text') { passwordbox.type = 'password' } else { passwordbox.type = 'text' }\r\n if (e.target.classList.contains('show-password--hide')) { e.target.classList.remove('show-password--hide') } else { e.target.classList.add('show-password--hide') }\r\n})\r\n\r\nnew Helpers(document.getElementsByClassName('login-form-submit')).eventListener(() => {\r\n const passwordinputs = document.getElementsByClassName('password-input')\r\n for (let i = 0; i < passwordinputs.length; i += 1) {\r\n passwordinputs[i].type = 'password'\r\n }\r\n})\r\nconst signUpContainer = document.querySelector('.form-section--accessOrCreate__create');\r\nconst signInContainer = document.querySelector('.form-section--accessOrCreate__signIn');\r\nconst createLink = document.querySelector('div.form-section--accessOrCreate__toggle-signin');\r\nconst loginLink = document.querySelector('div.form-section--accessOrCreate__toggle-create');\r\n\r\nfunction toggleVisibility() {\r\n signUpContainer.classList.toggle('show');\r\n signInContainer.classList.toggle('show');\r\n createLink.classList.toggle('active');\r\n loginLink.classList.toggle('active');\r\n}\r\nnew Helpers(loginLink).eventListener((e) => { \r\n e.preventDefault();\r\n if (e.currentTarget.classList.contains('active') == false) {\r\n toggleVisibility();\r\n }\r\n});\r\n\r\nnew Helpers(createLink).eventListener((e) => { \r\n e.preventDefault();\r\n if (e.currentTarget.classList.contains('active') == false) {\r\n toggleVisibility();\r\n }\r\n});\r\n","import isNodeList from '../IsNodeList'\r\nimport Helpers from '../Helpers'\r\nimport NRequired from '../NRequired'\r\n\r\nclass FormValidation {\r\n constructor(forms) {\r\n if (!isNodeList(forms)) {\r\n this.forms = [forms]\r\n }\r\n else {\r\n this.forms = Array.from(forms)\r\n }\r\n }\r\n\r\n highlightInvalid() {\r\n this.forms.forEach((form) => {\r\n form.onsubmit = () => {\r\n if (typeof (event) !== 'undefined') {\r\n if (typeof (event.target) !== 'undefined' && !event.target.hasAttribute('formnovalidate')) {\r\n const form = new Helpers(event.target).getClosest('form')\r\n form.classList.add('form--highlight-invalid')\r\n return form.checkValidity()\r\n }\r\n }\r\n // safe fallback\r\n return true\r\n }\r\n })\r\n }\r\n\r\n nRequiredValidity() {\r\n this.forms.forEach((form) => {\r\n // find all instances of n-required in this form\r\n const wrappers = form.getElementsByClassName('n-required')\r\n Array.from(wrappers).forEach((wrapper) => {\r\n new NRequired(wrapper)\r\n })\r\n })\r\n }\r\n\r\n}\r\n\r\nlet validation = new FormValidation(document.forms)\r\nvalidation.highlightInvalid()\r\nvalidation.nRequiredValidity()\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n","window.popDependantDdl = (strH1Index, ddlH2Container) => {\r\n var strH2ArrayItems;\r\n var strH2ArrayValues;\r\n ddlH2Container.options.length = 0;\r\n if (strH1Index != '0') {\r\n strH2ArrayItems = eval('arrH2Items_' + strH1Index);\r\n strH2ArrayValues = eval('arrH2Values_' + strH1Index);\r\n var count = 0;\r\n for (var i = 0; i < strH2ArrayItems.length; i++) {\r\n ddlH2Container.options[ddlH2Container.options.length] = new Option(strH2ArrayItems[i], strH2ArrayValues[i]);\r\n count++;\r\n }\r\n }\r\n else {\r\n ddlH2Container.options[ddlH2Container.options.length] = new Option('', '0');\r\n }\r\n\r\n if (count > 0) {\r\n document.querySelectorAll('[id$=ddlAdSourceH2]')[0].parentElement.style.display = \"block\";\r\n } else {\r\n document.querySelectorAll('[id$=ddlAdSourceH2]')[0].parentElement.style.display = \"none\";\r\n }\r\n if (strH1Index == 899) {\r\n //hide second option box if 'dont know' selected.\r\n document.querySelectorAll('[id$=ddlAdSourceH2]')[0].parentElement.style.display = \"none\";\r\n }\r\n}","/**\r\n * os-leaflet ; A [Leafletjs](http://leafletjs.com/) TileLayer to display Ordnance Survey\r\n * data in your Leaflet map via the OS OpenSpace web map service.\r\n *\r\n * https://github.com/rob-murray/os-leaflet\r\n */\r\n\r\nimport Proj from '../maps/proj4Mapbox'\r\n\r\nconst proj4 = require('proj4').default;\r\n\r\nconst SERVICE_URL = 'https://api.os.uk/maps/raster/v1/zxy'\r\n\r\nexport default () => {\r\n\r\n new Proj()\r\n /* This is our namespace for OSMap on Leaflet js */\r\n L.OSMap = L.OSMap || {};\r\n L.OSMap.VERSION = '1.0.0';\r\n L.OSMap.CRS = L.extend(\r\n new L.Proj.CRS('EPSG:27700', '+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 +units=m +no_defs', {\r\n resolutions: [896.0, 896.0, 896.0, 896.0, 896.0, 896.0, 896.0, 896.0, 448.0, 224.0, 112.0, 56.0, 28.0, 14.0, 7.0, 3.5, 1.75],\r\n origin: [-238375.0, 1376256.0]\r\n })\r\n , {\r\n distance: function (a, b) {\r\n return L.CRS.Earth.distance(a, b);\r\n }\r\n }\r\n );\r\n\r\n L.OSMap.LogoControl = L.Control.extend({\r\n options: {\r\n position: 'bottomleft'\r\n },\r\n\r\n onAdd: function () {\r\n var container = L.DomUtil.create('div', 'os-logo-control');\r\n var logoImage = L.DomUtil.create('img', '', container);\r\n logoImage.title = 'Powered by Ordnance Survey';\r\n logoImage.src = 'data:image/png;base64,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';\r\n\r\n return container;\r\n }\r\n\r\n });\r\n\r\n\r\n L.OSMap.TileLayer = L.TileLayer.extend({\r\n initialize: function (apiKey, options) { // (String, String, Object)\r\n if (!apiKey) {\r\n throw new Error('OSMap layer requires an API Key parameter to function.');\r\n }\r\n\r\n // Transform coordinates.\r\n var transformCoords = function (arr) {\r\n return proj4('EPSG:27700', 'EPSG:4326', arr).reverse();\r\n };\r\n\r\n L.TileLayer.prototype.initialize.call(this,\r\n `${SERVICE_URL}/Leisure_27700/{z}/{x}/{y}.png?key=${apiKey}`, {\r\n crs: L.OSMap.CRS,\r\n bounds: [\r\n transformCoords([-238375.0, 0.0]),\r\n transformCoords([900000.0, 1376256.0])\r\n ],\r\n zoomOffset: -7,\r\n maxZoom: 16,\r\n attribution: 'Contains OS data © Crown copyright and database rights ' + (new Date()).getFullYear()\r\n },\r\n options\r\n );\r\n\r\n this.logoControl = new L.OSMap.LogoControl()\r\n },\r\n\r\n onAdd: function (map) {\r\n const center = map.getCenter()\r\n const zoom = map.getZoom()\r\n map.options.crs = L.OSMap.CRS\r\n \r\n if (map.options.attributionControl) {\r\n map.addControl(this.logoControl);\r\n }\r\n\r\n const resetViewAfterLayerChange = (layer) => {\r\n map._resetView(center, zoom)\r\n map.off('baselayerchange', resetViewAfterLayerChange)\r\n }\r\n map.on('baselayerchange', resetViewAfterLayerChange)\r\n\r\n\r\n L.TileLayer.prototype.onAdd.call(this, map);\r\n },\r\n\r\n onRemove: function (map) {\r\n const center = map.getCenter()\r\n const zoom = map.getZoom()\r\n map.options.crs = L.CRS.EPSG3857\r\n\r\n if (map.options.attributionControl) {\r\n map.removeControl(this.logoControl);\r\n }\r\n\r\n const resetViewAfterLayerChange = (layer) => {\r\n map._resetView(center, zoom)\r\n map.off('baselayerchange', resetViewAfterLayerChange)\r\n }\r\n map.on('baselayerchange', resetViewAfterLayerChange)\r\n\r\n L.TileLayer.prototype.onRemove.call(this, map);\r\n }\r\n });\r\n\r\n /*\r\n * Factory method to create a new OSMap tilelayer.\r\n *\r\n * @public\r\n * @param {string} apiKey Your API key for OSMap.\r\n * @param {string} apiUrl The URL of your site as provided to OSMap.\r\n * @param {object} options Any options to pass to the tilelayer.\r\n * @return {L.TileLayer} TileLayer for Ordnance Survey OpenSpace service.\r\n */\r\n L.OSMap.tilelayer = function (apiKey, options) {\r\n return new L.OSMap.TileLayer(apiKey, options);\r\n };\r\n\r\n return L.OSMap;\r\n}\r\n","export default () => {\r\n\r\n const proj4 = require('proj4').default;\r\n \r\n L.Proj = {};\r\n\r\n L.Proj._isProj4Obj = function (a) {\r\n return (typeof a.inverse !== 'undefined' &&\r\n typeof a.forward !== 'undefined');\r\n };\r\n\r\n L.Proj.Projection = L.Class.extend({\r\n initialize: function (code, def, bounds) {\r\n var isP4 = L.Proj._isProj4Obj(code);\r\n this._proj = isP4 ? code : this._projFromCodeDef(code, def);\r\n this.bounds = isP4 ? def : bounds;\r\n },\r\n\r\n project: function (latlng) {\r\n var point = this._proj.forward([latlng.lng, latlng.lat]);\r\n return new L.Point(point[0], point[1]);\r\n },\r\n\r\n unproject: function (point, unbounded) {\r\n var point2 = this._proj.inverse([point.x, point.y]);\r\n return new L.LatLng(point2[1], point2[0], unbounded);\r\n },\r\n\r\n _projFromCodeDef: function (code, def) {\r\n if (def) {\r\n proj4.defs(code, def);\r\n } else if (proj4.defs[code] === undefined) {\r\n var urn = code.split(':');\r\n if (urn.length > 3) {\r\n code = urn[urn.length - 3] + ':' + urn[urn.length - 1];\r\n }\r\n if (proj4.defs[code] === undefined) {\r\n throw 'No projection definition for code ' + code;\r\n }\r\n }\r\n\r\n return proj4(code);\r\n }\r\n });\r\n\r\n L.Proj.CRS = L.Class.extend({\r\n includes: L.CRS,\r\n\r\n options: {\r\n transformation: new L.Transformation(1, 0, -1, 0)\r\n },\r\n\r\n initialize: function (a, b, c) {\r\n var code,\r\n proj,\r\n def,\r\n options;\r\n\r\n if (L.Proj._isProj4Obj(a)) {\r\n proj = a;\r\n code = proj.srsCode;\r\n options = b || {};\r\n\r\n this.projection = new L.Proj.Projection(proj, options.bounds);\r\n } else {\r\n code = a;\r\n def = b;\r\n options = c || {};\r\n this.projection = new L.Proj.Projection(code, def, options.bounds);\r\n }\r\n\r\n L.Util.setOptions(this, options);\r\n this.code = code;\r\n this.transformation = this.options.transformation;\r\n\r\n if (this.options.origin) {\r\n this.transformation =\r\n new L.Transformation(1, -this.options.origin[0],\r\n -1, this.options.origin[1]);\r\n }\r\n\r\n if (this.options.scales) {\r\n this._scales = this.options.scales;\r\n } else if (this.options.resolutions) {\r\n this._scales = [];\r\n for (var i = this.options.resolutions.length - 1; i >= 0; i--) {\r\n if (this.options.resolutions[i]) {\r\n this._scales[i] = 1 / this.options.resolutions[i];\r\n }\r\n }\r\n }\r\n\r\n this.infinite = !this.options.bounds;\r\n\r\n },\r\n\r\n scale: function (zoom) {\r\n var iZoom = Math.floor(zoom),\r\n baseScale,\r\n nextScale,\r\n scaleDiff,\r\n zDiff;\r\n if (zoom === iZoom) {\r\n return this._scales[zoom];\r\n } else {\r\n // Non-integer zoom, interpolate\r\n baseScale = this._scales[iZoom];\r\n nextScale = this._scales[iZoom + 1];\r\n scaleDiff = nextScale - baseScale;\r\n zDiff = (zoom - iZoom);\r\n return baseScale + scaleDiff * zDiff;\r\n }\r\n },\r\n\r\n zoom: function (scale) {\r\n // Find closest number in this._scales, down\r\n var downScale = this._closestElement(this._scales, scale),\r\n downZoom = this._scales.indexOf(downScale),\r\n nextScale,\r\n nextZoom,\r\n scaleDiff;\r\n // Check if scale is downScale => return array index\r\n if (scale === downScale) {\r\n return downZoom;\r\n }\r\n if (downScale === undefined) {\r\n return -Infinity;\r\n }\r\n // Interpolate\r\n nextZoom = downZoom + 1;\r\n nextScale = this._scales[nextZoom];\r\n if (nextScale === undefined) {\r\n return Infinity;\r\n }\r\n scaleDiff = nextScale - downScale;\r\n return (scale - downScale) / scaleDiff + downZoom;\r\n },\r\n\r\n distance: L.CRS.Earth.distance,\r\n\r\n R: L.CRS.Earth.R,\r\n\r\n /* Get the closest lowest element in an array */\r\n _closestElement: function (array, element) {\r\n var low;\r\n for (var i = array.length; i--;) {\r\n if (array[i] <= element && (low === undefined || low < array[i])) {\r\n low = array[i];\r\n }\r\n }\r\n return low;\r\n }\r\n });\r\n\r\n L.Proj.GeoJSON = L.GeoJSON.extend({\r\n initialize: function (geojson, options) {\r\n this._callLevel = 0;\r\n L.GeoJSON.prototype.initialize.call(this, geojson, options);\r\n },\r\n\r\n addData: function (geojson) {\r\n var crs;\r\n\r\n if (geojson) {\r\n if (geojson.crs && geojson.crs.type === 'name') {\r\n crs = new L.Proj.CRS(geojson.crs.properties.name);\r\n } else if (geojson.crs && geojson.crs.type) {\r\n crs = new L.Proj.CRS(geojson.crs.type + ':' + geojson.crs.properties.code);\r\n }\r\n\r\n if (crs !== undefined) {\r\n this.options.coordsToLatLng = function (coords) {\r\n var point = L.point(coords[0], coords[1]);\r\n return crs.projection.unproject(point);\r\n };\r\n }\r\n }\r\n\r\n // Base class' addData might call us recursively, but\r\n // CRS shouldn't be cleared in that case, since CRS applies\r\n // to the whole GeoJSON, inluding sub-features.\r\n this._callLevel++;\r\n try {\r\n L.GeoJSON.prototype.addData.call(this, geojson);\r\n } finally {\r\n this._callLevel--;\r\n if (this._callLevel === 0) {\r\n delete this.options.coordsToLatLng;\r\n }\r\n }\r\n }\r\n });\r\n\r\n L.Proj.geoJson = function (geojson, options) {\r\n return new L.Proj.GeoJSON(geojson, options);\r\n };\r\n\r\n L.Proj.ImageOverlay = L.ImageOverlay.extend({\r\n initialize: function (url, bounds, options) {\r\n L.ImageOverlay.prototype.initialize.call(this, url, null, options);\r\n this._projectedBounds = bounds;\r\n },\r\n\r\n // Danger ahead: Overriding internal methods in Leaflet.\r\n // Decided to do this rather than making a copy of L.ImageOverlay\r\n // and doing very tiny modifications to it.\r\n // Future will tell if this was wise or not.\r\n _animateZoom: function (event) {\r\n var scale = this._map.getZoomScale(event.zoom);\r\n var northWest = L.point(this._projectedBounds.min.x, this._projectedBounds.max.y);\r\n var offset = this._projectedToNewLayerPoint(northWest, event.zoom, event.center);\r\n\r\n L.DomUtil.setTransform(this._image, offset, scale);\r\n },\r\n\r\n _reset: function () {\r\n var zoom = this._map.getZoom();\r\n var pixelOrigin = this._map.getPixelOrigin();\r\n var bounds = L.bounds(\r\n this._transform(this._projectedBounds.min, zoom)._subtract(pixelOrigin),\r\n this._transform(this._projectedBounds.max, zoom)._subtract(pixelOrigin)\r\n );\r\n var size = bounds.getSize();\r\n\r\n L.DomUtil.setPosition(this._image, bounds.min);\r\n this._image.style.width = size.x + 'px';\r\n this._image.style.height = size.y + 'px';\r\n },\r\n\r\n _projectedToNewLayerPoint: function (point, zoom, center) {\r\n var viewHalf = this._map.getSize()._divideBy(2);\r\n var newTopLeft = this._map.project(center, zoom)._subtract(viewHalf)._round();\r\n var topLeft = newTopLeft.add(this._map._getMapPanePos());\r\n\r\n return this._transform(point, zoom)._subtract(topLeft);\r\n },\r\n\r\n _transform: function (point, zoom) {\r\n var crs = this._map.options.crs;\r\n var transformation = crs.transformation;\r\n var scale = crs.scale(zoom);\r\n\r\n return transformation.transform(point, scale);\r\n }\r\n });\r\n\r\n L.Proj.imageOverlay = function (url, bounds, options) {\r\n return new L.Proj.ImageOverlay(url, bounds, options);\r\n };\r\n\r\n return L.Proj;\r\n}","import Helpers from '../../modules/Helpers'\r\n\r\n\r\n\r\nif (document.getElementsByClassName('booking').length > 0) {\r\n\r\n const wrapper = document.getElementsByClassName('booking')[0]\r\n const form = new Helpers(wrapper).getClosest('form')\r\n \r\n // Rebooking\r\n const rebookingPanel = form.getElementsByClassName('booking__rebooking')\r\n if (rebookingPanel.length > 0) {\r\n const rebookingSelect = rebookingPanel[0].getElementsByTagName('select')[0]\r\n\r\n const updateRebookingDisplay = () => {\r\n const show = parseInt(rebookingSelect.value) === 1\r\n const controls = rebookingPanel[0].getElementsByClassName('booking__rebooking--yes')\r\n new Helpers(controls).setAttributes({ 'aria-hidden': !show })\r\n if (!show) {\r\n Array.from(rebookingPanel[0].getElementsByTagName('input')).forEach(input => input.value = '')\r\n }\r\n }\r\n new Helpers(rebookingSelect).eventListener((e) => {\r\n updateRebookingDisplay()\r\n }, 'change')\r\n\r\n updateRebookingDisplay()\r\n }\r\n\r\n // Insurance\r\n const insurancePanel = form.getElementsByClassName('booking__insurance')\r\n if (insurancePanel.length > 0) {\r\n const insuranceSelect = insurancePanel[0].getElementsByTagName('select')[0]\r\n\r\n const updateInsuranceDisplay = () => {\r\n const show = parseInt(insuranceSelect.value, 10) === 1\r\n const controls = insurancePanel[0].getElementsByClassName('booking__insurance--yes')\r\n new Helpers(controls).setAttributes({ 'aria-hidden': !show })\r\n if (!show) {\r\n Array.from(insurancePanel[0].getElementsByTagName('input')).forEach((cb) => {\r\n cb.checked = false\r\n })\r\n }\r\n }\r\n new Helpers(insuranceSelect).eventListener(updateInsuranceDisplay, 'change')\r\n\r\n updateInsuranceDisplay()\r\n }\r\n\r\n // Card Type\r\n const cardType = form.getElementsByClassName('card-type')\r\n if (cardType.length > 0) {\r\n const cardTypeInput = form[cardType[0].name]\r\n\r\n const setCardTypeVisibility = () => {\r\n const maestro = cardTypeInput.value === 'MO'\r\n\r\n new Helpers(document.getElementsByClassName('maestro-only')).setAttributes({ 'aria-hidden': !maestro })\r\n // toggle disabled state on inputs to ensure any value is not returned\r\n const validFromInputs = document.querySelectorAll('.maestro-only select')\r\n if (!maestro) {\r\n new Helpers(validFromInputs).setAttributes({ 'disabled': \"disabled\" })\r\n } else {\r\n new Helpers(validFromInputs).removeAttributes(['disabled'])\r\n }\r\n \r\n }\r\n\r\n setCardTypeVisibility()\r\n\r\n new Helpers(cardTypeInput).eventListener((e) => {\r\n setCardTypeVisibility()\r\n }, 'change')\r\n\r\n const cardTypeSelector = form.getElementsByClassName('booking__card-types')\r\n if (cardTypeSelector.length > 0) {\r\n Array.from(cardTypeSelector).forEach((cts) => {\r\n new Helpers(cts.getElementsByTagName('img')).eventListener((e) => {\r\n cardTypeInput.value = e.target.getAttribute('data-cardType')\r\n })\r\n })\r\n }\r\n\r\n }\r\n \r\n\r\n // Cardholder Address\r\n const cardholderAddress = document.getElementsByClassName('cardholder-address')\r\n if (cardholderAddress.length > 0) {\r\n const cardholderAddressInput = form[cardholderAddress[0].name]\r\n\r\n const setCardholderAddressVisibility = () => {\r\n const useAlternativeCardholder = parseInt(cardholderAddressInput.value, 10) === 1\r\n new Helpers(document.getElementsByClassName('alternative-cardholder')).setAttributes({\r\n 'aria-hidden': !useAlternativeCardholder,\r\n disabled: useAlternativeCardholder ? null : 'disabled',\r\n })\r\n }\r\n\r\n setCardholderAddressVisibility()\r\n\r\n new Helpers(cardholderAddressInput).eventListener(() => {\r\n setCardholderAddressVisibility()\r\n }, 'change')\r\n }\r\n}\r\n\r\nif (document.getElementsByClassName('sagev4-browserparams').length > 0) {\r\n // populate sagepay browser info\r\n document.querySelector('input[name$=\"hdnBrowserJavascriptEnabled\"]').value = '1'\r\n document.querySelector('input[name$=\"hdnBrowserJavaEnabled\"]').value = navigator.javaEnabled() ? '1' : '0'\r\n // need to add a conditional on the colorDepth as 10 bit displays might return \"30\"\r\n // which is not a valid value for 3DSv2\r\n document.querySelector('input[name$=\"hdnBrowserColorDepth\"]').value = (() => {\r\n switch (screen.colorDepth) {\r\n case 30:\r\n return 24\r\n default:\r\n return screen.colorDepth\r\n }\r\n })()\r\n document.querySelector('input[name$=\"hdnBrowserScreenHeight\"]').value = screen.height\r\n document.querySelector('input[name$=\"hdnBrowserScreenWidth\"]').value = screen.width\r\n document.querySelector('input[name$=\"hdnBrowserTimezoneOffset\"]').value = (new Date()).getTimezoneOffset()\r\n document.querySelector('input[name$=\"hdnBrowserLanguage\"]').value = navigator.language\r\n\r\n const iframeContentWidth = parseInt(document.querySelector('.sagev4-browserparams').clientWidth, 10)\r\n let challengeWindowSize = '01'\r\n if (iframeContentWidth >= 390) { challengeWindowSize = '02' }\r\n if (iframeContentWidth >= 500) { challengeWindowSize = '03' }\r\n if (iframeContentWidth >= 600) { challengeWindowSize = '04' }\r\n document.querySelector('input[name$=\"hdnChallengeWindowSize\"]').value = challengeWindowSize\r\n}\r\n","import Pikaday from 'pikaday'\r\n\r\nconst DATE_FORMAT = 'ddd D MMM YY'\r\n\r\nconst outwardDate = document.getElementById('_ctl0_MainContent_FerryBooking_txtOutDate')\r\nconst returnDate = document.getElementById('_ctl0_MainContent_FerryBooking_txtRtnDate')\r\n\r\nif (outwardDate !== null) {\r\n const o = new Pikaday({\r\n field: outwardDate,\r\n minDate: new Date(),\r\n format: DATE_FORMAT,\r\n firstDay: 1,\r\n })\r\n console.log(o)\r\n}\r\n\r\n\r\nif (returnDate !== null) {\r\n const r = new Pikaday({\r\n field: returnDate,\r\n minDate: new Date(),\r\n format: DATE_FORMAT,\r\n firstDay: 1,\r\n })\r\n console.log(r)\r\n}\r\n","import moment from 'moment'\r\nimport Pikaday from 'pikaday'\r\nimport Helpers from '../../modules/Helpers'\r\n\r\nconst DATE_FORMAT = 'ddd D MMM YY'\r\n\r\nif (document.getElementById('alertRequirements') !== undefined) {\r\n \r\n const dateFrom = new Pikaday({\r\n field: document.getElementsByClassName('my-classic__alerts-date--from')[0],\r\n minDate: new Date(),\r\n maxDate: moment().add(2, 'years').subtract(7, 'days').toDate(),\r\n format: DATE_FORMAT,\r\n firstDay: 1\r\n })\r\n\r\n const dateTo = new Pikaday({\r\n field: document.getElementsByClassName('my-classic__alerts-date--to')[0],\r\n minDate: new Date(),\r\n maxDate: moment().add(2, 'years').subtract(7, 'days').toDate(),\r\n format: DATE_FORMAT,\r\n firstDay: 1\r\n })\r\n\r\n new Helpers(document.getElementsByClassName('my-classic__alerts-clear-dates')).eventListener((e) => {\r\n e.preventDefault()\r\n dateTo.setDate(null)\r\n dateFrom.setDate(null)\r\n })\r\n}","import './MyDetails'\r\nimport './MyAlerts'\r\nimport './Booking'\r\nimport './FerryBooking'\r\nimport './RouteDirections'\r\n","import Helpers from './../Helpers'\r\n\r\nconst address = document.querySelector('.form-section--postal-address')\r\n\r\nif (address !== null) {\r\n const countryDDL = document.querySelector('.form-section--postal-address .address-part--country select')\r\n const county = document.querySelector('.form-section--postal-address .address-part--county')\r\n const state = document.querySelector('.form-section--postal-address .address-part--usstate')\r\n const postcodeFinder = document.querySelector('.form-section--postal-address .form-field--finder')\r\n const postcode = document.querySelector('.form-section--postal-address .address-part--postcode')\r\n\r\n const updateLayout = () => {\r\n new Helpers(county).setAttributes({ 'aria-hidden': countryDDL.value === 'US' })\r\n new Helpers(state).setAttributes({ 'aria-hidden': countryDDL.value !== 'US' })\r\n new Helpers(postcodeFinder).setAttributes({ 'aria-hidden': countryDDL.value !== 'GB' })\r\n postcode.querySelector('label').innerText = countryDDL.value === 'US' ? 'Zipcode' : 'Postcode'\r\n\r\n if (address.getAttribute('data-required') === 'true') {\r\n const countryHasPostcode = countryDDL.querySelector(`option[value=\"${countryDDL.value}\"]`).getAttribute('data-postcode') === 'true'\r\n if (countryHasPostcode) {\r\n new Helpers(postcode.querySelector('input')).setAttributes({ required: 'required', 'aria-required': 'true' })\r\n new Helpers(postcode.querySelector('label')).addClass('form-label--required')\r\n } else {\r\n new Helpers(postcode.querySelector('input')).removeAttributes(['required', 'aria-required'])\r\n new Helpers(postcode.querySelector('label')).removeClass('form-label--required')\r\n }\r\n }\r\n }\r\n\r\n new Helpers(countryDDL).eventListener(updateLayout, 'change')\r\n\r\n updateLayout()\r\n}\r\n","/* global L */\r\nimport Map, { streetLayer } from '../../modules/Map'\r\n\r\n\r\nconst route = document.getElementById('routeDirections')\r\nif (route !== null) {\r\n const from = route.getAttribute('data-from')\r\n const to = route.getAttribute('data-to')\r\n\r\n const map = new Map('map', {\r\n coords: [50.1016, -5.2750],\r\n }, {\r\n Streets: streetLayer('mapbox'),\r\n })\r\n\r\n map.map.invalidateSize()\r\n\r\n const mbDirections = L.mapbox.directions({ profile: 'mapbox.driving' })\r\n\r\n L.mapbox.directions.layer(mbDirections).addTo(map.map)\r\n L.mapbox.directions.routesControl('routes', mbDirections).addTo(map.map)\r\n L.mapbox.directions.instructionsControl('instructions', mbDirections).addTo(map.map)\r\n\r\n mbDirections.setOrigin(from)\r\n mbDirections.setDestination(to)\r\n\r\n mbDirections.on('load', (dir) => {\r\n // Loop through all route coordinates and determine bounds for route.\r\n let minLat = 90\r\n let minLng = 180\r\n let maxLat = -90\r\n let maxLng = -180\r\n\r\n dir.routes[0].geometry.coordinates.forEach((laCoordinate) => {\r\n const lat = laCoordinate[1]\r\n const lng = laCoordinate[0]\r\n if (lat < minLat) {\r\n minLat = lat\r\n }\r\n if (lng < minLng) {\r\n minLng = lng\r\n }\r\n if (lat > maxLat) {\r\n maxLat = lat\r\n }\r\n if (lng > maxLng) {\r\n maxLng = lng\r\n }\r\n })\r\n\r\n const directionsBounds = L.latLngBounds(L.latLng(minLat, minLng), L.latLng(maxLat, maxLng))\r\n\r\n map.map.fitBounds(directionsBounds)\r\n mbDirections.selectRoute(dir.routes[0])\r\n })\r\n\r\n mbDirections.query()\r\n}\r\n","/* Polyfill to fix ForEach in IE 11 */\r\n\r\nif (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = Array.prototype.forEach\r\n}\r\n","/**\r\n * Matches selector polyfill\r\n */\r\n\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = (s) => {\r\n const el = this\r\n let ancestor = this\r\n if (!document.documentElement.contains(el)) return null\r\n do {\r\n if (ancestor.matches(s)) return ancestor\r\n ancestor = ancestor.parentElement\r\n } while (ancestor !== null)\r\n return null\r\n }\r\n}\r\n\r\n","import Pikaday from 'pikaday'\r\nimport moment from 'moment'\r\n\r\nimport Helpers from '../Helpers'\r\n\r\nconst DATE_FORMAT = 'ddd D MMM YY'\r\n\r\nclass ResultsDates {\r\n constructor(changeEvent) {\r\n this.changeEvent = changeEvent\r\n\r\n this.startDateField = document.getElementsByName('startDate')[0]\r\n this.endDateField = document.getElementsByName('endDate')[0]\r\n this.daysField = document.getElementsByName('ddlDays')[0]\r\n this.flexField = document.getElementsByName('flex')[0]\r\n this.specialOfferButtons = document.getElementsByClassName('results-aside__offers')[0].getElementsByTagName('button')\r\n this.specialOfferDuration = document.getElementsByName('ddlSODuration')[0]\r\n this.specialOfferDates = document.getElementsByName('ddlSODates')[0]\r\n this.listeners()\r\n\r\n this.startDate = null\r\n this.endDate = null\r\n\r\n this.bindStartPicker()\r\n this.bindEndPicker()\r\n }\r\n\r\n listeners() {\r\n const self = this\r\n // days changed\r\n new Helpers(this.daysField).eventListener((e) => {\r\n self.daysSet()\r\n }, 'change')\r\n\r\n new Helpers(this.flexField).eventListener((e) => {\r\n self.changeEvent()\r\n }, 'change')\r\n\r\n new Helpers(this.specialOfferButtons).eventListener((e) => {\r\n self.specialOfferChange(e.target)\r\n })\r\n }\r\n\r\n bindStartPicker() {\r\n const self = this\r\n\r\n this.startDate = new Pikaday({\r\n field: this.startDateField,\r\n minDate: new Date(),\r\n maxDate: moment(this.startDateField.getAttribute('data-limit'),'YYYY-MM-DD').toDate(),\r\n format: DATE_FORMAT,\r\n firstDay: 1,\r\n onSelect: () => {\r\n self.startDateSet()\r\n }\r\n })\r\n }\r\n\r\n bindEndPicker() {\r\n const self = this\r\n \r\n // initialise the end date picker\r\n this.endDate = new Pikaday({\r\n field: this.endDateField,\r\n minDate: new Date(),\r\n maxDate: moment(this.endDateField.getAttribute('data-limit'), 'YYYY-MM-DD').toDate(),\r\n format: DATE_FORMAT,\r\n firstDay: 1,\r\n onSelect: () => {\r\n self.endDateSet()\r\n }\r\n })\r\n }\r\n \r\n // Utility function to get the days difference between the start and end dates\r\n getDaysDiff() {\r\n return moment.duration(this.endDate.getMoment().diff(this.startDate.getMoment())).asDays()\r\n }\r\n\r\n startDateSet() {\r\n let days = parseInt(this.daysField.value, 10)\r\n // TODO: change minDate in end date\r\n if (days === 0 && this.startDateField.value !== '') {\r\n this.daysField.value = 7\r\n days = 7\r\n }\r\n if (this.endDate == null) {\r\n this.bindEndPicker()\r\n }\r\n\r\n this.endDate.setMinDate(this.startDate.getMoment().add(2, 'days').toDate())\r\n this.endDate.setDate(this.startDate.getMoment().add(days, 'days').toDate(), true)\r\n\r\n this.changeEvent()\r\n }\r\n\r\n endDateSet() {\r\n // get period length betweenselected dates\r\n const period = this.getDaysDiff()\r\n // if its less than the duration specified, reduce the days value\r\n if (period < parseInt(this.daysField.value, 10)) {\r\n if (period >= 7) {\r\n this.daysField.value = Math.floor(period / 7) * 7\r\n } else {\r\n this.daysField.value = period\r\n }\r\n }\r\n\r\n this.changeEvent()\r\n }\r\n\r\n\r\n daysSet() {\r\n const days = parseInt(this.daysField.value, 10)\r\n if (days === 0) {\r\n this.startDate.setDate(null, true)\r\n this.endDate.setDate(null, true)\r\n } else if (this.startDate.getDate() != null) {\r\n const period = this.getDaysDiff()\r\n if (days > period) {\r\n this.endDate.setDate(this.startDate.getMoment().add(days, 'days').toDate(), true)\r\n }\r\n }\r\n\r\n this.changeEvent()\r\n }\r\n\r\n specialOfferChange(activeButton) {\r\n // set classes on buttons to reflect active state\r\n new Helpers(this.specialOfferButtons).removeClass('results-aside__offers-toggle--active')\r\n new Helpers(activeButton).addClass('results-aside__offers-toggle--active')\r\n\r\n this.changeEvent()\r\n }\r\n\r\n setSpecialOffer(value) {\r\n if (value !== 'Y') {\r\n value = ''\r\n }\r\n // set classes on buttons to reflect active state\r\n new Helpers(this.specialOfferButtons).removeClass('results-aside__offers-toggle--active')\r\n new Helpers(Array.from(this.specialOfferButtons).filter(b => b.getAttribute('data-value') === value)).addClass('results-aside__offers-toggle--active') \r\n }\r\n\r\n getSpecialOfferValue() {\r\n const showOffers = document.getElementsByClassName('results-aside__offers-toggle--active')[0].getAttribute('data-value') === 'Y'\r\n return showOffers ? 'Y' : null\r\n }\r\n\r\n getValues() {\r\n\r\n const values = {}\r\n values.oso = this.getSpecialOfferValue()\r\n\r\n values.dss = this.startDate == null || this.startDate.getDate() == null ? null : this.startDate.getMoment().format(DATE_FORMAT)\r\n values.des = this.endDate == null || this.endDate.getDate() == null ? null : this.endDate.getMoment().format(DATE_FORMAT)\r\n values.nday = parseInt(this.daysField.value, 10)\r\n values.flex = parseInt(this.flexField.value, 10)\r\n\r\n return values\r\n }\r\n\r\n\r\n getNonDefaultValues() {\r\n const values = this.getValues()\r\n Object.keys(values).forEach((key) => {\r\n if (key !== 'flex' && (values[key] == null || values[key] === 0)) {\r\n delete values[key]\r\n } else if (key === 'flex' && values[key] === parseInt(this.flexField.getAttribute('data-default-value'), 10)) {\r\n delete values[key]\r\n }\r\n })\r\n return values\r\n }\r\n\r\n setValues(values) {\r\n const parsedStartDate = values.dss || null ? moment(values.dss, DATE_FORMAT).toDate() : null\r\n this.startDate.setDate(parsedStartDate, true) \r\n if (this.endDate != null) {\r\n const parsedEndDate = values.des || null ? moment(values.des, DATE_FORMAT).toDate() : null\r\n this.endDate.setDate(parsedEndDate, true)\r\n }\r\n this.daysField.value = values.nday || 0\r\n\r\n if (typeof values.flex !== 'undefined' && !isNaN(values.flex)) {\r\n this.flexField.value = values.flex\r\n } else {\r\n parseInt(this.flexField.getAttribute('data-default-value'), 10)\r\n }\r\n\r\n this.setSpecialOffer(values.oso || null)\r\n }\r\n}\r\n\r\nexport default ResultsDates","import Helpers from '../Helpers'\r\nclass ResultsFacets {\r\n constructor(changeEvent) {\r\n const self = this\r\n this.facets = []\r\n this.tagFacetsOptions = []\r\n this.changeEvent = changeEvent\r\n Array.from(document.getElementsByClassName('results-aside__filter')).forEach(el => {\r\n this.facets.push(new ResultsFacet(el))\r\n new Helpers(el).eventListener(e=>{\r\n self.changeEvent(e, self)\r\n },'facet-change')\r\n })\r\n \r\n }\r\n\r\n getValues() {\r\n let values = {}\r\n let tags = []\r\n this.facets.forEach(f => {\r\n const value = f.getValue()\r\n if (value != null && value != '') {\r\n if (f.code in values) {\r\n values[f.code] += `,${value}`\r\n \r\n } else {\r\n values[f.code] = value\r\n }\r\n }\r\n })\r\n return values\r\n }\r\n getNonDefaultValues() {\r\n let values = {}\r\n let tags = []\r\n this.facets.forEach(f => {\r\n const value = f.getValue()\r\n if (value != null && value != '') {\r\n if (f.code in values) {\r\n values[f.code] += `,${value}`\r\n } else {\r\n values[f.code] = value\r\n }\r\n }\r\n })\r\n return values\r\n }\r\n setValues(values) {\r\n this.facets.forEach(f => {\r\n\r\n if (values[f.code] != undefined) {\r\n f.setValue(values[f.code])\r\n } else {\r\n f.reset()\r\n }\r\n })\r\n }\r\n}\r\n\r\nclass ResultsFacet {\r\n \r\n constructor(facet) {\r\n this.control = facet\r\n this.refine = null\r\n this.checkbox = null\r\n this.dropdown = null\r\n \r\n this.name = this.control.getAttribute('data-facet')\r\n this.code = this.control.getAttribute('data-qs-code')\r\n this.defaultValue = \"\" // this.control.getAttribute('data-defaultControlValue')\r\n this.getControls()\r\n\r\n this.toggleEvent()\r\n }\r\n\r\n getControls() {\r\n //find refine control\r\n const next = this.control.nextElementSibling\r\n if(next!= undefined && new Helpers(next).hasClass('results-aside__filter-refine')) {\r\n this.refine = new ResultsFacetRefine(next,this)\r\n }\r\n\r\n //find checkbox\r\n const input = this.control.getElementsByTagName('input')\r\n if(input.length == 1 && input[0].type === 'checkbox') {\r\n this.checkbox = input[0]\r\n }\r\n\r\n // find select\r\n const select = this.control.getElementsByTagName('select')\r\n if (select.length == 1) {\r\n this.dropdown = select[0]\r\n }\r\n }\r\n\r\n getValue() {\r\n if(this.checkbox != null && this.checkbox.checked == true) {\r\n if(this.refine != null) {\r\n return this.refine.getValue()\r\n } else {\r\n return this.checkbox.value\r\n }\r\n }\r\n\r\n if (this.dropdown != null) {\r\n return this.dropdown.value\r\n }\r\n\r\n if (this.checkbox == null) {\r\n if(this.refine != null) {\r\n return this.refine.getValue()\r\n }\r\n }\r\n return ''\r\n }\r\n\r\n setValue(value) {\r\n if (this.checkbox != null) {\r\n if (this.checkbox.value === \"Y\") {\r\n this.checkbox.checked = (value || '') !== ''\r\n } else {\r\n this.checkbox.checked = (value || '').split(',').indexOf(this.checkbox.value) >= 0\r\n }\r\n return this\r\n }\r\n\r\n if (this.dropdown != null) {\r\n this.dropdown.value = value || ''\r\n return this\r\n }\r\n\r\n if (this.refine != null) {\r\n this.refine.setValue(value)\r\n return this\r\n }\r\n }\r\n\r\n reset() {\r\n if (this.checkbox != null) {\r\n this.checkbox.checked = false\r\n } else {\r\n this.control.setAttribute('data-expanded', 'false')\r\n }\r\n if (this.refine != null) {\r\n this.refine.toggle(false)\r\n }\r\n }\r\n\r\n toggleEvent() {\r\n const self = this\r\n if (this.checkbox != null) {\r\n //checkbox toggle\r\n new Helpers(this.checkbox).eventListener((e) => {\r\n self.updateRefine()\r\n self.raiseEvent()\r\n }, 'change')\r\n } else if (this.dropdown != null) {\r\n // dropdown select\r\n new Helpers(this.dropdown).eventListener((e) => {\r\n self.updateRefine()\r\n self.raiseEvent()\r\n }, 'change')\r\n } else {\r\n new Helpers(this.control).eventListener((e) => {\r\n new Helpers(self.control).toggleAttribute('data-expanded')\r\n\r\n self.updateRefine()\r\n })\r\n }\r\n }\r\n\r\n updateRefine() {\r\n if(this.refine === null) return\r\n\r\n if(this.checkbox != null) {\r\n this.refine.toggle(this.checkbox.checked,true)\r\n } else {\r\n this.refine.toggle(this.control.getAttribute('data-expanded') === 'true',false)\r\n }\r\n }\r\n\r\n raiseEvent() {\r\n // TODO: add debounce logic\r\n this.control.dispatchEvent(new CustomEvent('facet-change'))\r\n // Track facet change in GTM\r\n window.dataLayerQueue.push({ 'event': 'searchInteraction', 'searchControl': this.name, 'searchControlValue': this.getValue() });\r\n }\r\n}\r\n\r\nclass ResultsFacetRefine {\r\n constructor(refine, parent) {\r\n this.control = refine\r\n this.parent = parent\r\n\r\n // find all refine checkboxes\r\n this.checkboxes = Array.from(this.control.getElementsByTagName('input')).filter(input => input.type === 'checkbox')\r\n this.range = Array.from(this.control.getElementsByTagName('input')).filter(input => input.type === 'range')[0] || null\r\n \r\n\r\n this.changeEvent()\r\n }\r\n\r\n getValue() {\r\n let values = []\r\n if(this.checkboxes.length > 0 ) {\r\n this.checkboxes.filter(cbx => cbx.checked == true).forEach(cbx=> values.push(cbx.value))\r\n }\r\n if (this.range != null && this.range.value != '' && this.control.getAttribute('data-active') == 'true') {\r\n values.push(this.range.value)\r\n }\r\n return values.join(',')\r\n }\r\n\r\n visible(bool) {\r\n this.control.setAttribute('data-active', bool ? 'true' : 'false')\r\n return this\r\n }\r\n\r\n toggle(visible, defaultChecked) {\r\n this.visible(visible)\r\n\r\n this.checkboxes.forEach(checkbox => checkbox.checked = visible && defaultChecked)\r\n \r\n if (!visible && this.range != null) {\r\n // reset range to default value\r\n this.range.value = this.range.getAttribute('data-default')\r\n }\r\n return this\r\n }\r\n\r\n setValue(value) {\r\n const values = value.split(\",\")\r\n if (this.checkboxes.length > 0) {\r\n this.checkboxes.forEach(checkbox => checkbox.checked = values.indexOf(checkbox.value) >= 0)\r\n this.visible(this.checkboxes.filter(checkbox => checkbox.checked).length > 0)\r\n } else if (this.range != null) {\r\n this.range.value = value\r\n this.range.dispatchEvent(new CustomEvent('sync'))\r\n this.visible(value != '')\r\n }\r\n }\r\n\r\n changeEvent() {\r\n var self = this\r\n if(this.checkboxes.length > 0) {\r\n new Helpers(this.checkboxes).eventListener((e) => {\r\n \r\n //if no checkboxes are checked, clear the parent\r\n if(self.checkboxes.filter(cbx => cbx.checked == true).length == 0) {\r\n self.parent.reset()\r\n }\r\n\r\n self.parent.raiseEvent()\r\n },'change')\r\n }\r\n\r\n if(this.range != null) {\r\n new Helpers(this.range).eventListener((e) => {\r\n self.parent.raiseEvent()\r\n },'change')\r\n }\r\n }\r\n}\r\n\r\n\r\nexport default ResultsFacets","import he from 'he'\r\nimport Helpers from '../Helpers'\r\n\r\nclass ResultsHeader {\r\n constructor() {\r\n this.control = document.getElementsByClassName('results-lead')[0]\r\n if (typeof this.control !== 'undefined') {\r\n this.text = document.getElementsByClassName('results-lead__text')[0]\r\n this.h1 = this.text.getElementsByTagName('h1')[0]\r\n this.ferryAd = document.getElementsByClassName('results-lead__ferry-ad')[0]\r\n this.showmore = document.getElementsByClassName('results-list__loading')[0]\r\n this.readmoreWrapper = document.getElementsByClassName('results-end')[0]\r\n this.readMore = document.getElementsByClassName('read-more')[0]\r\n this.readMoreText = document.getElementsByClassName('results-end__text')[0]\r\n new Helpers(this.readMore).eventListener((e) => {\r\n this.readmoreListener(e)\r\n })\r\n if (this.control.getElementsByClassName('results-lead__video').length > 0) {\r\n this.video = this.control.getElementsByClassName('results-lead__video')[0]\r\n } else {\r\n // Video element not on the page as it has been disabled in config.\r\n // To preserve below code, simply create an element (not in the DOM) to obviate\r\n // need to modify code paths below.\r\n this.video = document.createElement('video')\r\n }\r\n this.initVideo()\r\n }\r\n }\r\n\r\n readmoreListener(e) {\r\n e.preventDefault();\r\n window.dataLayerQueue.push({ event: 'readMoreClick' }); \r\n if (this.readMoreText.hasAttribute('data-moved') && this.readMoreText.getAttribute('data-moved') === 'false') {\r\n const readMoreContent = this.readMoreText.innerHTML;\r\n this.removeReadMoreElements()\r\n const readMoreContainer = this.createReadMoreElement(readMoreContent)\r\n const showLessLinkTop = this.createShowLessElement() \r\n const showLessLinkBottom = this.createShowLessElement()\r\n this.readMore.parentNode.insertBefore(showLessLinkTop, this.readMore.nextSibling);\r\n this.text.appendChild(readMoreContainer)\r\n showLessLinkBottom.style.marginBottom = '40px'\r\n this.text.appendChild(showLessLinkBottom);\r\n this.addShowLessEventListeners()\r\n this.readMoreText.setAttribute('data-moved', 'true')\r\n }\r\n if (this.text.querySelector('.results-header__read-more-text')) {\r\n this.showReadMoreSection()\r\n }\r\n }\r\n showReadMoreSection() {\r\n this.readMore.style.display = 'none'\r\n this.showShowLessLinks()\r\n this.text.querySelector('.results-header__read-more-text').style.display = 'block'\r\n }\r\n addShowLessEventListeners() {\r\n const showLessLinks = document.querySelectorAll('.show-less');\r\n showLessLinks.forEach((link) => {\r\n new Helpers(link).eventListener((e) => {\r\n e.preventDefault();\r\n this.showLess(e);\r\n });\r\n });\r\n }\r\n\r\n hideReadMoreText() {\r\n const readmoretextHeader = this.text.querySelector('.results-header__read-more-text')\r\n if (readmoretextHeader) {\r\n readmoretextHeader.style.display = 'none'\r\n }\r\n }\r\n showShowLessLinks() {\r\n const showLessLinks = this.text.querySelectorAll('.show-less');\r\n showLessLinks.forEach((link) => {\r\n link.style.display = 'inline-block';\r\n });\r\n }\r\n removeReadMoreElements() {\r\n const readmoretext = this.text.querySelector('.results-header__read-more-text');\r\n if (readmoretext) {\r\n readmoretext.remove();\r\n }\r\n const showLessElements = this.text.querySelectorAll('.show-less');\r\n showLessElements.forEach(element => element.remove());\r\n }\r\n createReadMoreElement(readMoreContent) {\r\n const readMoreContainer = document.createElement('div')\r\n readMoreContainer.classList.add('results-header__read-more-text')\r\n readMoreContainer.innerHTML = readMoreContent\r\n return readMoreContainer\r\n }\r\n createShowLessElement() {\r\n const showLessLink = document.createElement('a')\r\n showLessLink.href = '#'\r\n showLessLink.className = 'show-less'\r\n showLessLink.innerText = 'Show less'\r\n return showLessLink\r\n }\r\n \r\n showLess(e) {\r\n this.hideReadMoreText()\r\n this.text.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n\r\n const showLessLinks = this.text.querySelectorAll('.show-less');\r\n showLessLinks.forEach((link) => {\r\n link.style.display = 'none';\r\n });\r\n this.readMore.style.display = 'inline-block'\r\n }\r\n\r\n hide() {\r\n if (typeof this.control !== 'undefined') {\r\n this.control.setAttribute('aria-hidden', 'true')\r\n this.text.setAttribute('aria-hidden', 'true')\r\n this.readmoreWrapper.setAttribute('aria-hidden', 'true')\r\n new Helpers(document.querySelector('body')).removeClass('results--has-header')\r\n }\r\n }\r\n\r\n update(xmlDoc) {\r\n if (typeof this.control !== 'undefined') {\r\n this.setImage(xmlDoc.getAttribute('image'))\r\n this.setVideo(xmlDoc.getAttribute('video'), xmlDoc.getAttribute('image'))\r\n this.setTitle(xmlDoc.getAttribute('title'))\r\n this.setIntro(xmlDoc.getAttribute('intro'))\r\n this.setReadMore(xmlDoc.getAttribute('readmore'))\r\n this.control.setAttribute('aria-hidden', 'false')\r\n this.text.setAttribute('aria-hidden', 'false')\r\n this.text.setAttribute('data-region', xmlDoc.getAttribute('regioncode'))\r\n new Helpers(document.querySelector('body')).addClass('results--has-header')\r\n this.readMore = document.getElementsByClassName('read-more')[0]\r\n this.readMoreText = document.getElementsByClassName('results-end__text')[0]\r\n this.backToTop = document.getElementsByClassName('back-to-top')[0]\r\n this.results = document.getElementById('search-results')\r\n new Helpers(this.readMore).eventListener((e) => {\r\n this.readmoreListener(e)\r\n })\r\n this.removeReadMoreElements()\r\n }\r\n }\r\n\r\n setReadMore(readmore) {\r\n const readmoreTextWrapper = this.readmoreWrapper.getElementsByClassName('results-end__text')[0]\r\n // clear current content\r\n readmoreTextWrapper.innerHTML = ''\r\n // parse escaped html content into temp element\r\n const temp = document.createElement('div')\r\n temp.innerHTML = he.decode(readmore)\r\n // load into page\r\n Array.from(temp.childNodes).forEach((node) => {\r\n readmoreTextWrapper.appendChild(node)\r\n })\r\n this.readMoreText.setAttribute('data-moved', 'false')\r\n }\r\n\r\n setImage(src) {\r\n const el = this.control.querySelector('.results-lead__image img')\r\n if (src != \"\" && el) {\r\n el.src = src\r\n }\r\n }\r\n\r\n showImage() {\r\n const el = this.control.querySelector('.results-lead__image img')\r\n if (el) {\r\n el.classList = \"results-lead__image\"\r\n }\r\n }\r\n\r\n hideImage() {\r\n const el = this.control.querySelector('.results-lead__image img')\r\n if (el) {\r\n el.classList = \"results-lead__video--poster\"\r\n }\r\n }\r\n\r\n setTitle(title) {\r\n this.text.getElementsByTagName('h1')[0].innerText = title\r\n }\r\n\r\n setIntro(intro) {\r\n // remove current content\r\n Array.from(this.text.childNodes).forEach((node) => {\r\n const tag = (typeof node.tagName === 'undefined') ? null : node.tagName\r\n // get rid of everything that isn't the heading or nested divs\r\n if (tag !== 'H1' && tag !== 'DIV' && tag !== 'A') {\r\n this.text.removeChild(node)\r\n }\r\n })\r\n // add in new content\r\n const temp = document.createElement('div')\r\n const beforeEl = this.h1.nextSibling\r\n temp.innerHTML = he.decode(intro)\r\n Array.from(temp.childNodes).forEach((node) => {\r\n this.text.insertBefore(node, beforeEl)\r\n })\r\n }\r\n\r\n setVideo(src, poster) {\r\n this.video.setAttribute('aria-hidden', src === '')\r\n this.video.setAttribute('poster', poster)\r\n this.video.setAttribute('src', src)\r\n if (src !== '' && this.videoVisible()) {\r\n this.video.load()\r\n this.video.play()\r\n this.hideImage()\r\n }\r\n else {\r\n this.showImage()\r\n }\r\n\r\n }\r\n\r\n videoVisible() {\r\n return this.video.offsetWidth > 0 && this.video.offsetHeight > 0\r\n }\r\n\r\n videoPlayable() {\r\n return this.videoVisible() && (this.video.paused === true || this.video.currentTime === 0)\r\n }\r\n\r\n initVideo() {\r\n // initial video play\r\n if (this.videoVisible()) {\r\n new Helpers(window).eventListener(() => {\r\n if (this.videoPlayable()) {\r\n this.video.load()\r\n this.video.play()\r\n }\r\n }, 'load')\r\n }\r\n // set up resize event to play video when its visible\r\n new Helpers(window).eventListener(() => {\r\n if (this.videoPlayable()) {\r\n this.video.load()\r\n this.video.play()\r\n }\r\n }, 'resize')\r\n }\r\n}\r\n\r\nexport default ResultsHeader\r\n","import moment from 'moment'\r\nimport Helpers from '../Helpers'\r\n\r\nclass LastMinute {\r\n constructor(resultsClassInstance) {\r\n\r\n this.lastMinuteResults = document.getElementById(\"last-minute-results\");\r\n this.valid = this.lastMinuteResults !== null;\r\n if (!this.valid) return; // Guard Clause for if the last min block doesn't exist\r\n\r\n this.mobileBreakPoint = 750;\r\n this.resultsClass = resultsClassInstance\r\n this.currentUrl = window.location.href;\r\n this.pageParams = new URLSearchParams(window.location.search);\r\n this.resultsListItems = document.querySelector(\".results-list__items\");\r\n this.lastMinuteButtons = Array.from(this.lastMinuteResults.querySelectorAll(\".date\"));\r\n\r\n // Set start date defaults and first button highlight defaults (this could be overridden by url query params)\r\n this.startDates = {};\r\n this.setStartDates(this.getDefaultStartDateString(), this.getDefaultEndDateString(), this.getDefaultLengthOfStay());\r\n this.firstHighlightedButton = this.lastMinuteButtons[0];\r\n\r\n // Start the Last Minute Process\r\n this.pageLoader();\r\n }\r\n\r\n //#region Page Load\r\n\r\n pageLoader = () => {\r\n\r\n // Test if we've got a query string for start/end dates\r\n this.dateRangesInQueryString();\r\n\r\n // Attach click event listeners \r\n this.lastMinuteButtonsClick();\r\n\r\n // Fetch first batch of results from default date range\r\n this.setFirstLastMinuteDate();\r\n\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n\r\n //#region Query Params - Date Range\r\n\r\n // Query the query string and see if we've start/end dates declared\r\n dateRangesInQueryString = () => {\r\n\r\n // if we've date params\r\n if (!this.datesURLQueryParamDetailsExist()) return;\r\n\r\n // create param based default startdate object\r\n this.setDatesFromURLQueryParams();\r\n }\r\n\r\n\r\n // Check if query params are present to set a default date\r\n datesURLQueryParamDetailsExist = () => {\r\n\r\n // test dss exist\r\n if (!this.pageParams.has(\"dss\")) return false;\r\n\r\n // test des exist \r\n if (!this.pageParams.has(\"des\")) return false;\r\n\r\n // test length of stay exists\r\n if (!this.pageParams.has(\"nday\")) return false;\r\n\r\n return true;\r\n }\r\n\r\n\r\n // Check the query params we have exist as an option on the page\r\n setDatesFromURLQueryParams = () => {\r\n\r\n const start = moment(this.pageParams.get(\"dss\"), \"ddd D MMM YY\").format(\"DD/MM/YY\"); // expected format \"ddd Do MMM YY\" then convert to workable dd/mm/yy\r\n const end = moment(this.pageParams.get(\"des\"), \"ddd D MMM YY\").format(\"DD/MM/YY\") // expected format \"ddd Do MMM YY\" then convert to workable dd/mm/yy\r\n const length = this.pageParams.get(\"nday\");\r\n\r\n // using start date / dss try and get a button\r\n const targetButton = this.lastMinuteButtons.find(x => x.dataset.startDate === start);\r\n\r\n // Check we've found a button\r\n if (targetButton === undefined) {\r\n\r\n // url without params\r\n const url = window.location.href.split('?')[0];\r\n\r\n // Clear locally/class-level stored url query\r\n this.setLocalCurrentURLRef(url);\r\n\r\n // Push changes to url front end\r\n history.pushState({}, document.title, url);\r\n\r\n // there's a date range but it doesn't exist in the current options\r\n return;\r\n }\r\n\r\n // Check the end date is correct\r\n if (!targetButton.dataset.endDate === end) return false;\r\n\r\n // Check length of stay is correct\r\n if (!targetButton.dataset.lengthOfStay === length) return false;\r\n\r\n // Set start/end dates and length of stay\r\n this.setStartDates(start, end, length);\r\n\r\n // Update Initial button thats highlighted on first load\r\n this.firstHighlightedButton = targetButton;\r\n\r\n // Highlight date range button\r\n this.setSelectedDateRangeButton(targetButton);\r\n\r\n return;\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n //#region Utility Functions\r\n\r\n // Query the DOM and find defaults for start/end dates and length of stay\r\n getDefaultStartDateString = () => this.lastMinuteResults.dataset.defaultStartDate;\r\n getDefaultEndDateString = () => this.lastMinuteResults.dataset.defaultEndDate;\r\n getDefaultLengthOfStay = () => this.lastMinuteResults.dataset.defaultLengthOfStay;\r\n\r\n // Class level ref to current state url\r\n setLocalCurrentURLRef = (url) => this.currentUrl = url;\r\n setLocalCurrentParams = (url) => this.pageParams = new URLSearchParams(url);\r\n\r\n // get current highlighted details\r\n getCurrentIndexOfHighlightedButton = () => this.lastMinuteButtons.findIndex(button => button.classList.contains('selected'));\r\n\r\n // set start dates\r\n setStartDates = (start, end, length) => {\r\n this.startDates = {\r\n startDateString: start, // expected format dd/mm/yy\r\n endDateString: end, // expected format dd/mm/yy\r\n lengthOfStay: length\r\n }\r\n }\r\n\r\n // Highlight selected date range button\r\n setSelectedDateRangeButton = (button) => {\r\n this.lastMinuteButtons.forEach(btn => {\r\n btn.classList.toggle('selected', btn === button);\r\n btn.classList.toggle('not-selected', btn !== button);\r\n });\r\n };\r\n\r\n\r\n // After an option is selected, scroll to section\r\n scrollToResults = () => {\r\n const belowMobileBreakpoint = window.innerWidth < this.mobileBreakPoint;\r\n const resultsInViewport = new Helpers(this.resultsListItems).isPartiallyInViewport();\r\n\r\n if (belowMobileBreakpoint && !resultsInViewport) {\r\n this.resultsListItems.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n }\r\n }\r\n\r\n // Create Date Options, For fetching cottage results\r\n createUpdateSearchOptions = () => {\r\n // Get any changes to the search\r\n return {\r\n feedEndpoint: this.resultsClass.getFeedEndpoint(),\r\n updateMetaTitle: false,\r\n preservePageDescription: true,\r\n preservePageHeader: true,\r\n url: this.currentUrl\r\n }\r\n }\r\n\r\n // Create a date range object (expected input date string \"DD/MM/YY\")\r\n createDateRangeObject = (startDate, endDate, lengthOfStay) => {\r\n return {\r\n dss: moment(startDate, \"DD/MM/YY\").format(\"ddd D MMM YY\"),\r\n des: moment(endDate, \"DD/MM/YY\").format(\"ddd D MMM YY\"),\r\n nday: lengthOfStay\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region First Date Load\r\n\r\n setFirstLastMinuteDate = () => {\r\n\r\n const { startDateString, endDateString, lengthOfStay } = this.startDates;\r\n\r\n // Update UI for default/first date ranges \r\n const dateRange = this.createDateRangeObject(startDateString, endDateString, lengthOfStay);\r\n this.resultsClass.dates.setValues(dateRange);\r\n\r\n // Fetch Cottages for default/first date ranges \r\n const options = this.createUpdateSearchOptions();\r\n this.resultsClass.updateSearch(\"\", options);\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region Click Event of Date Range\r\n\r\n lastMinuteButtonsClick = () => {\r\n\r\n this.lastMinuteButtons.forEach(button => {\r\n button.addEventListener('click', (e) => {\r\n\r\n // Highlight clicked button\r\n this.setSelectedDateRangeButton(button);\r\n\r\n // Update UI with new date range\r\n const { startDate, endDate, lengthOfStay } = button.dataset; // expected format dd/mm/yy\r\n const dateRange = this.createDateRangeObject(startDate, endDate, lengthOfStay);\r\n const { fsi, ...queryStringParams } = { ...this.resultsClass.getNonDefaultValues(), ...dateRange };\r\n this.resultsClass.dates.setValues(queryStringParams);\r\n\r\n // Update URL params\r\n this.setURLParams(queryStringParams);\r\n\r\n // Fetch Cottages\r\n const options = this.createUpdateSearchOptions();\r\n this.resultsClass.updateSearch(\"\", options);\r\n\r\n // Go to results\r\n this.scrollToResults();\r\n\r\n });\r\n })\r\n }\r\n\r\n // Set the pages new URL query string (in order to make it sharable)\r\n setURLParams = (queryStringParams) => {\r\n let currentUrl = new URL(window.location.href);\r\n currentUrl.search = `?${this.resultsClass.buildQueryString(queryStringParams)}`;\r\n history.pushState(queryStringParams, document.title, currentUrl.href);\r\n // update locally referenced url items\r\n this.setLocalCurrentURLRef(currentUrl.href);\r\n this.setLocalCurrentParams(currentUrl.href);\r\n }\r\n\r\n //#endregion\r\n}\r\n\r\nexport default LastMinute","import Helpers from '../Helpers'\r\nimport Map, { streetLayer } from '../../modules/Map'\r\nimport XHRPromise from 'xhr-promise'\r\nimport Reveal from '../Reveal'\r\nimport GeoSearch from '../GeoSearch'\r\n\r\nconst searchControl = document.getElementsByClassName('results-aside')[0]\r\n\r\nclass ResultsLocation {\r\n constructor(changeEvent) {\r\n this.control = document.getElementsByClassName('results-aside__location')[0]\r\n this.regions = this.control.getElementsByClassName('location-region')\r\n this.rootLocationCode = this.control.querySelector('.results-aside__locations').getAttribute(\"data-root-location\")\r\n // TODO: replace placeholder\r\n this.towns = document.getElementsByClassName('location-town')\r\n this.distanceControl = document.getElementsByClassName('results-aside__distance')[0]\r\n this.townDistance = document.getElementsByName('nlm')[0]\r\n\r\n this.townToggle = document.getElementsByClassName('location-towns')\r\n\r\n this.mapElement = document.getElementById('resultsLocationMap')\r\n this.map = null\r\n this.activeGeoFetch = -1\r\n\r\n this.search = document.getElementsByClassName('results-aside__location-search-input')[0]\r\n this.searchResults = document.getElementsByClassName('results-aside__location-search-results')[0]\r\n this.geoSearch = new GeoSearch(this.search, this.searchResults)\r\n\r\n this.events()\r\n this.changeEvent = changeEvent\r\n\r\n this.init()\r\n }\r\n\r\n events() {\r\n const self = this\r\n new Helpers(this.regions).eventListener((e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n\r\n this.search.value = ''\r\n this.hideLocationSearchResults()\r\n\r\n if (this.setRegion(e.currentTarget.getAttribute('data-value'))) {\r\n this.setTown('')\r\n self.changeEvent('region')\r\n } else {\r\n this.toggleRegionExpanders()\r\n }\r\n })\r\n\r\n new Helpers(this.towns).eventListener((e) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n this.search.value = ''\r\n this.hideLocationSearchResults()\r\n if (this.setTown(e.currentTarget.getAttribute('data-value'))) {\r\n this.setRegion('')\r\n this.townDistance.value = this.getTownDefaultDistance().dd\r\n this.townDistance.dispatchEvent(new CustomEvent('sync'))\r\n self.changeEvent('town')\r\n } else {\r\n this.toggleRegionExpanders()\r\n }\r\n })\r\n\r\n new Helpers(this.townDistance).eventListener((e) => {\r\n self.changeEvent()\r\n }, 'change')\r\n\r\n new Helpers(this.townToggle).eventListener((e) => {\r\n e.stopPropagation();\r\n const listContainer = new Helpers(e.currentTarget).getClosest('.location-towns')\r\n new Helpers(listContainer).toggleAttribute('aria-show-featured-only')\r\n })\r\n\r\n this.geoSearch.on('select', (data) => {\r\n switch (data.type) {\r\n case 'Region':\r\n if (this.setRegion(data.code)) {\r\n this.setTown('')\r\n this.toggleRegionExpanders()\r\n self.changeEvent('region')\r\n }\r\n break\r\n\r\n case 'Location':\r\n if (this.setTown(data.code)) {\r\n this.setRegion('')\r\n this.toggleRegionExpanders(false, true)\r\n this.townDistance.value = this.getTownDefaultDistance().dd\r\n this.townDistance.dispatchEvent(new CustomEvent('sync'))\r\n self.changeEvent('town')\r\n }\r\n break\r\n\r\n case 'Cottage':\r\n window.location = data.url\r\n return\r\n\r\n default:\r\n return\r\n }\r\n this.geoSearch.setValue(data.text)\r\n this.geoSearch.clearResults()\r\n })\r\n\r\n new Helpers(searchControl).eventListener(() => {\r\n this.updateMap()\r\n }, 'search-map')\r\n }\r\n\r\n init() {\r\n this.updateMap()\r\n }\r\n\r\n getRegionCodeForUrl(url) {\r\n const matchingRegion = Array.from(this.regions).find(region => region.getElementsByTagName('a')[0].getAttribute('href') == url)\r\n if (typeof matchingRegion !== 'undefined') {\r\n return matchingRegion.getAttribute('data-value')\r\n }\r\n\r\n return this.rootLocationCode\r\n }\r\n\r\n getRegion() {\r\n try {\r\n return Array.from(this.regions).find(region => region.getAttribute('aria-current') === 'true').getAttribute('data-value')\r\n } catch (err) {\r\n return ''\r\n }\r\n }\r\n\r\n getRegionTitle() {\r\n try {\r\n return Array.from(this.regions).find(region => region.getAttribute('aria-current') === 'true').getAttribute('data-title')\r\n } catch (err) {\r\n return ''\r\n }\r\n }\r\n\r\n getRegionHref(page = 1) {\r\n if (parseInt(page, 10) === 1) {\r\n return Array.from(this.regions)\r\n .find(region => region.getAttribute('aria-current') === 'true')\r\n .getElementsByTagName('a')[0]\r\n .getAttribute('href')\r\n }\r\n\r\n return Array.from(this.regions)\r\n .find(region => region.getAttribute('aria-current') === 'true')\r\n .getElementsByTagName('a')[0]\r\n .getAttribute('data-hrefpage')\r\n .replace('[page]', page)\r\n }\r\n\r\n getRegionForFeaturedSearchLinks() {\r\n return document.querySelector('.results-aside__locations [aria-current=\"true\"] a').getAttribute('data-regionOnlyUrl')\r\n }\r\n\r\n getLocationUrl(page = 1) {\r\n const region = this.getRegion()\r\n const town = this.getTown()\r\n if (town !== '' && (region === this.rootLocationCode || region === '')) {\r\n let url = `/holiday-cottages-${town}`\r\n\r\n if (page !== 1) {\r\n url += `-${page}`\r\n }\r\n url += '.html'\r\n return url\r\n }\r\n\r\n return Array.from(this.regions)\r\n .find(rgn => rgn.getAttribute('aria-current') === 'true')\r\n .getElementsByTagName('a')[0]\r\n .getAttribute('data-regionUrl')\r\n .replace('[page]', page)\r\n }\r\n\r\n setRegion(code) {\r\n const selectedRegions = Array.from(this.regions).filter(region => region.getAttribute('aria-current') === 'true')\r\n\r\n let changeOccured = false\r\n\r\n if (code === '') {\r\n // clear any selected region\r\n new Helpers(this.regions).setAttributes({ 'aria-current': false })\r\n new Helpers(this.regions).removeClass('highlighted')\r\n changeOccured = selectedRegions.length > 0\r\n } else {\r\n const matchingRegions = Array.from(this.regions).filter(region => region.getAttribute('data-value') === code)\r\n\r\n new Helpers(this.regions).setAttributes({ 'aria-current': false })\r\n new Helpers(this.regions).removeClass('highlighted')\r\n new Helpers(matchingRegions).setAttributes({ 'aria-current': true })\r\n\r\n if (selectedRegions.length === 0 && matchingRegions !== 0) {\r\n changeOccured = true\r\n } else {\r\n changeOccured = selectedRegions[0].getAttribute('data-id') !== matchingRegions[0].getAttribute('data-id')\r\n }\r\n }\r\n\r\n return changeOccured\r\n }\r\n\r\n setTown(townCode = '') {\r\n const selectedTowns = Array.from(this.towns).filter(town => town.getAttribute('aria-current') === 'true')\r\n let changeOccured = false\r\n\r\n if (townCode === '') {\r\n // clear any selected town\r\n new Helpers(this.towns).setAttributes({ 'aria-current': false })\r\n new Helpers(this.regions).setAttributes({ 'aria-expanded': false })\r\n this.distanceControl.setAttribute('aria-hidden', true)\r\n\r\n changeOccured = selectedTowns.length > 0\r\n } else {\r\n const matchingTowns = Array.from(this.towns).filter(town => town.getAttribute('data-value').toLowerCase() === townCode.toLowerCase())\r\n\r\n new Helpers(this.towns).setAttributes({ 'aria-current': false })\r\n new Helpers(matchingTowns).setAttributes({ 'aria-current': true })\r\n\r\n this.distanceControl.setAttribute('aria-hidden', matchingTowns.length === 0)\r\n\r\n if (selectedTowns.length === 0 && matchingTowns.length !== 0) {\r\n changeOccured = true\r\n } else {\r\n changeOccured = selectedTowns[0].getAttribute('data-id') !== matchingTowns[0].getAttribute('data-id')\r\n }\r\n }\r\n\r\n return changeOccured\r\n }\r\n\r\n getTown() {\r\n const selectedTowns = Array.from(this.towns).filter(town => town.getAttribute('aria-current') === 'true')\r\n if (selectedTowns.length === 0) {\r\n return ''\r\n }\r\n\r\n return selectedTowns[0].getAttribute('data-value')\r\n }\r\n getTownRegion() {\r\n const selectedTowns = Array.from(this.towns).filter(town => town.getAttribute('aria-current') === 'true')\r\n if (selectedTowns.length === 0) {\r\n return ''\r\n }\r\n\r\n return selectedTowns[0].getAttribute('data-region')\r\n }\r\n\r\n getTownTitle() {\r\n const selectedTowns = Array.from(this.towns).filter(town => town.getAttribute('aria-current') === 'true')\r\n if (selectedTowns.length === 0) {\r\n return ''\r\n }\r\n\r\n return selectedTowns[0].getAttribute('data-title')\r\n }\r\n\r\n getTownDefaultDistance() {\r\n const values = {}\r\n const selectedTowns = Array.from(this.towns).filter(town => town.getAttribute('aria-current') === 'true')\r\n if (selectedTowns.length > 0) {\r\n values.dd = selectedTowns[0].getAttribute('data-distance')\r\n return values\r\n }\r\n\r\n values.dd = 5\r\n return values\r\n }\r\n\r\n getValues() {\r\n const values = {}\r\n values.rgn = this.getRegion()\r\n values.nlc = this.getTown()\r\n values.nlm = this.townDistance.value\r\n\r\n return values\r\n }\r\n\r\n getNonDefaultValues() {\r\n const values = this.getValues()\r\n const defaultDistance = this.getTownDefaultDistance()\r\n\r\n if (values.nlc === '') {\r\n delete values.nlc\r\n delete values.nlm\r\n }\r\n\r\n if (values.nlm === defaultDistance.dd) {\r\n delete values.nlm\r\n }\r\n\r\n return values\r\n }\r\n\r\n setValues(values, url) {\r\n if (typeof values.rgn !== 'undefined') {\r\n this.setRegion(values.rgn)\r\n } else {\r\n const code = this.getRegionCodeForUrl(url)\r\n this.setRegion(code)\r\n }\r\n\r\n if (typeof values.nlc !== 'undefined') {\r\n this.setTown(values.nlc)\r\n\r\n const distance = values.nlm || this.getTownDefaultDistance().dd\r\n if (this.townDistance.value !== distance) {\r\n this.townDistance.value = distance\r\n this.townDistance.dispatchEvent(new CustomEvent('sync'))\r\n }\r\n } else {\r\n this.setTown('')\r\n }\r\n this.toggleRegionExpanders(true)\r\n this.updateMap()\r\n }\r\n\r\n setRegionCounts(regions) {\r\n Array.from(this.regions).forEach((region) => {\r\n const code = region.getAttribute('data-value')\r\n const count = regions.getAttribute(code.toLowerCase())\r\n const el = region.getElementsByTagName('a')[0].getElementsByTagName('span')[0]\r\n el.innerHTML = count\r\n })\r\n }\r\n\r\n\r\n toggleRegionExpanders(expandRegion = false, setTownInView = false) {\r\n const values = this.getValues()\r\n let parents = []\r\n let activeRegion = null\r\n let activeRegionExpanded = false\r\n let town = null\r\n let townsList = null\r\n let townIsFeatured = false\r\n\r\n if (values.nlc !== null && values.nlc !== '') {\r\n const matchingTowns = Array.from(this.towns).filter(t => t.getAttribute('data-value') === values.nlc)\r\n if (matchingTowns.length > 0) {\r\n // get the containing list\r\n townsList = new Helpers(matchingTowns[0]).getClosest('.location-towns')\r\n // set whether the selected town is a \"featured town\" this can be infered\r\n // by the number of records matched on the matchingTowns value\r\n townIsFeatured = matchingTowns.length === 2\r\n // set town to the currently visible town\r\n town = townIsFeatured && townsList.getAttribute('aria-expanded') === 'true' ? matchingTowns[1] : matchingTowns[0]\r\n activeRegion = town\r\n }\r\n } else {\r\n activeRegion = Array.from(this.regions).find(region => region.getAttribute('aria-current') === 'true')\r\n activeRegionExpanded = activeRegion.getAttribute('aria-expanded') === 'true'\r\n }\r\n\r\n // reset view, collapse everything\r\n new Helpers(this.regions).setAttributes({ 'aria-expanded': false })\r\n\r\n if (town !== null) {\r\n let parentUL = new Helpers(activeRegion).getClosest('ul')\r\n parents = new Helpers(parentUL).getParents(parentUL, '.location')\r\n } else {\r\n parents = new Helpers(activeRegion).getParents(activeRegion, '.location')\r\n }\r\n this.HighlightParents(activeRegion.getAttribute('data-parent-id'))\r\n //parents.forEach((item) => {\r\n // let parentItem = new Helpers(item)\r\n // parentItem.addClass('highlighted')\r\n // item.setAttribute('aria-expanded', true)\r\n //})\r\n\r\n var fixedRegions = document.getElementsByClassName('location-region--fixed')\r\n Array.from(fixedRegions).forEach((item) => {\r\n item.setAttribute('aria-expanded', true)\r\n })\r\n\r\n if (activeRegion !== null) activeRegion.setAttribute('aria-expanded', expandRegion || !activeRegionExpanded)\r\n if (townsList !== null && typeof (townsList) !== 'undefined' && townIsFeatured === false) townsList.setAttribute('aria-expanded', true)\r\n if (setTownInView && town !== null) {\r\n document.getElementsByClassName('results-aside__locations')[0].scrollTop = town.offsetTop\r\n }\r\n }\r\n HighlightParents(parentId) {\r\n if (parentId !== '') {\r\n var parentItem = document.querySelector('.location[data-id=\"' + parentId + '\"]')\r\n if (typeof parentItem !== 'undefined' && parentItem !== null) {\r\n new Helpers(parentItem).addClass('highlighted')\r\n var newParentID = parentItem.getAttribute(\"data-parent-id\")\r\n parentItem.setAttribute('aria-expanded', true)\r\n if (newParentID > 0) {\r\n this.HighlightParents(newParentID);\r\n }\r\n } \r\n }\r\n }\r\n initMap() {\r\n if (this.map === null) {\r\n this.map = new Map(this.mapElement.id, {\r\n coords: [50.1016, -5.2750],\r\n zoom: 9,\r\n minZoom: 4,\r\n maxZoom: 14,\r\n zoomControl: false,\r\n attributionControl: false,\r\n dragging: false,\r\n doubleClickZoom: false,\r\n scrollWheelZoom: false,\r\n }, {\r\n LocationMap: streetLayer(),\r\n })\r\n }\r\n }\r\n\r\n updateMap() {\r\n // location map no longer visible\r\n // chosing to leave code in place as this descision may be reversed\r\n if (true) return\r\n\r\n\r\n this.initMap()\r\n this.map.map.invalidateSize()\r\n const values = this.getValues()\r\n\r\n if (this.activeGeoFetch !== -1) {\r\n this.activeGeoFetch.getXHR().abort()\r\n }\r\n\r\n this.activeGeoFetch = new XHRPromise()\r\n this.activeGeoFetch.send({\r\n url: `/feeds/geography.aspx?regionCode=${values.rgn}&locationCode=${values.nlc}&distance=${values.nlm}`,\r\n })\r\n .then((response) => {\r\n return (new window.DOMParser()).parseFromString(response.responseText, 'text/xml')\r\n })\r\n .then((data) => {\r\n const location = data.getElementsByTagName('location')\r\n if (location.length > 0) {\r\n const wkt = location[0].getAttribute('wkt')\r\n this.map\r\n .clearShapes()\r\n .addShape(wkt, { color: '#29abe3' })\r\n .fitShapes()\r\n }\r\n\r\n this.activeGeoFetch = -1\r\n }).catch((error) => {\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n }\r\n })\r\n }\r\n\r\n resultsHighlight(direction) {\r\n const currentHighlight = this.searchResults.querySelector('li[aria-current=\"true\"]')\r\n let newHighlight = null\r\n\r\n if (direction === 1) {\r\n if (currentHighlight === null || currentHighlight.nextElementSibling === null) {\r\n newHighlight = this.searchResults.firstElementChild\r\n } else {\r\n newHighlight = currentHighlight.nextElementSibling\r\n }\r\n } else {\r\n if (currentHighlight === null || currentHighlight.previousElementSibling === null) {\r\n newHighlight = this.searchResults.lastElementChild\r\n } else {\r\n newHighlight = currentHighlight.previousElementSibling\r\n }\r\n }\r\n\r\n if (currentHighlight !== null) {\r\n currentHighlight.setAttribute('aria-current', false)\r\n }\r\n\r\n if (newHighlight !== null) {\r\n newHighlight.setAttribute('aria-current', true)\r\n }\r\n\r\n }\r\n\r\n resultsTrigger() {\r\n const currentHighlight = this.searchResults.querySelector('li[aria-current=\"true\"]')\r\n if (currentHighlight !== null) {\r\n currentHighlight.click()\r\n }\r\n }\r\n\r\n locationSearch() {\r\n const searchTerm = this.search.value\r\n const container = document.getElementsByClassName('results-aside__location-search')\r\n const activeClass = 'results-aside__location-search--active'\r\n\r\n if (this.activeSearchFetch !== -1) {\r\n this.activeSearchFetch.getXHR().abort()\r\n }\r\n\r\n\r\n if (searchTerm.length >= 3 || (searchTerm.length >= 1 && !isNaN(searchTerm))) {\r\n\r\n this.activeSearchFetch = new XHRPromise()\r\n\r\n this.activeSearchFetch.send({\r\n url: `/feeds/geoSearch.aspx?s=${searchTerm}`\r\n }).then((results) => {\r\n this.searchResults.innerHTML = ''\r\n results.responseText.forEach((r) => {\r\n const resultItem = document.createElement('li')\r\n if (r.Place.length > 0) {\r\n resultItem.innerHTML = `${r.Name}${r.Place}`\r\n } else {\r\n resultItem.innerHTML = `${r.Name}`\r\n }\r\n resultItem.setAttribute('data-value', r.Name)\r\n resultItem.setAttribute('data-type', r.Type)\r\n resultItem.setAttribute('data-code', r.Code)\r\n resultItem.setAttribute('data-point', r.Point.join(','))\r\n resultItem.setAttribute('data-url', r.Url)\r\n this.searchResults.appendChild(resultItem)\r\n })\r\n\r\n if (results.responseText.length > 0) {\r\n new Reveal(container).show(activeClass)\r\n if (results.responseText.length === 1) {\r\n this.resultsHighlight(1)\r\n }\r\n } else {\r\n new Reveal(container).hide(activeClass)\r\n // no results for this term, log it as a GA event\r\n clearTimeout(this.noMatchTimeout)\r\n this.noMatchTimeout = setTimeout(() => {\r\n window.dataLayerQueue = window.dataLayerQueue || []\r\n window.dataLayerQueue.push({ event: 'resultsLocationSearch', searchTerm: searchTerm })\r\n }, 1000)\r\n }\r\n this.activeSearchFetch = -1\r\n }).catch((error) => {\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n }\r\n })\r\n } else {\r\n new Reveal(container).hide(activeClass)\r\n }\r\n }\r\n\r\n hideLocationSearchResults() {\r\n const container = document.getElementsByClassName('results-aside__location-search')\r\n const activeClass = 'results-aside__location-search--active'\r\n\r\n this.searchResults.innerHTML = ''\r\n new Reveal(container).hide(activeClass)\r\n }\r\n}\r\n\r\nexport default ResultsLocation\r\n","/* global L */\r\nimport XHRPromise from 'xhr-promise'\r\nimport Cookies from 'js-cookie'\r\nimport Helpers from '../../modules/Helpers'\r\nimport Map from '../../modules/Map'\r\nimport ResultsHeader from './Results.Header'\r\nimport ResultsLocation from './Results.Location'\r\n\r\nconst activeClass = 'results-map--active'\r\nconst loadingClass = 'results-map__loading'\r\n\r\nconst searchControl = document.getElementsByClassName('results-aside')[0]\r\n\r\nclass ResultsMap {\r\n constructor(getQS) {\r\n this.map = null\r\n this.activeFetch = -1\r\n this.listeners()\r\n this.getQS = getQS\r\n this.cottageIcon = L.icon({\r\n iconUrl: '/media/map/icon-home.png',\r\n iconSize: [33, 47],\r\n iconAnchor: [17, 46],\r\n popupAnchor: [0, -40],\r\n })\r\n this.mapState = document.getElementById('map').getAttribute('data-mapState') || ''\r\n }\r\n\r\n listeners() {\r\n new Helpers(document.getElementsByClassName('results-map__open')).eventListener(() => {\r\n this.open()\r\n this.update()\r\n this.raiseEvent()\r\n })\r\n\r\n new Helpers(document.getElementsByClassName('results-map__close')).eventListener(() => {\r\n this.close()\r\n this.raiseEvent()\r\n })\r\n }\r\n\r\n open() {\r\n new Helpers(document.getElementsByTagName('body')).addClass(activeClass)\r\n if (this.map === null) {\r\n this.init()\r\n }\r\n }\r\n\r\n close() {\r\n new Helpers(document.getElementsByTagName('body')).removeClass(activeClass)\r\n this.openPopup = null\r\n }\r\n\r\n init() {\r\n this.map = new Map('map', {\r\n center: [50.72, -3.53],\r\n zoom: 7,\r\n })\r\n }\r\n\r\n isVisible() {\r\n return new Helpers(document.getElementsByTagName('body')).hasClass(activeClass)\r\n }\r\n\r\n update() {\r\n // clear existing markers\r\n this.map.clearMarkers()\r\n\r\n // show loading overlay\r\n new Helpers(document.getElementsByClassName(loadingClass)).setAttributes({ 'aria-hidden': false })\r\n\r\n this.getMarkers().then((data) => {\r\n data.cottages.forEach((cottage) => {\r\n const marker = this.map.addMarker([cottage.lat, cottage.lng], {\r\n icon: this.cottageIcon,\r\n cottage,\r\n }, this.buildPopup)\r\n\r\n marker.on('popupopen', (popup) => {\r\n const code = popup.target.options.cottage.code\r\n const type = popup.target.options.cottage.type\r\n const center = this.map.map.getCenter()\r\n const zoom = this.map.map.getZoom()\r\n this.mapState = `${type},${code},${center.lat},${center.lng},${zoom}`\r\n this.raiseEvent()\r\n })\r\n\r\n marker.on('popupclose', () => {\r\n this.mapState = ''\r\n this.raiseEvent()\r\n })\r\n })\r\n\r\n \r\n this.map.clusterMarkers()\r\n if (!this.loadMapState()) {\r\n this.map.fitMarkers()\r\n }\r\n\r\n new Helpers(document.getElementsByClassName(loadingClass)).setAttributes({ 'aria-hidden': true })\r\n })\r\n }\r\n\r\n buildPopup(layer) {\r\n const multi = typeof Cookies.get('auth') !== 'undefined' \r\n const cottage = layer.options.cottage\r\n const link = `/holiday-cottage/desc-${cottage.code}.html`\r\n const inShortlist = window.sl.IsCodeInShortlists(cottage.code)\r\n return `
    \r\n \r\n

    ${cottage.name}

    \r\n ${cottage.type === 'X' ? '' : `

    ${cottage.rent}

    `}\r\n

    ${cottage.accom}

    \r\n

    ${cottage.pets > 0 ? 'Dogs welcome' : 'Regret no pets'}

    \r\n
    \r\n Read More\r\n \r\n
    \r\n
    `\r\n }\r\n\r\n loadMapState() {\r\n if (this.mapState === '') return false\r\n const [type, code, lat, lng, zoom] = this.mapState.split(',')\r\n this.map.map.setView([parseFloat(lat), parseFloat(lng)], parseInt(zoom, 10))\r\n // try to find a matching marker\r\n let markerFound = false\r\n this.map.markers.some((marker) => {\r\n if (marker.options.cottage.type === type && marker.options.cottage.code === code) {\r\n setTimeout(() => { marker.openPopup() }, 400)\r\n markerFound = true\r\n return true\r\n }\r\n return false\r\n })\r\n return markerFound\r\n }\r\n\r\n getMarkers() {\r\n return new Promise((resolve) => {\r\n // fetch querystring from search\r\n var qs = this.getQS()\r\n\r\n //map view needs nlm for search but isn't set if default distance is used\r\n if (!qs.includes('nlm') && qs.includes('view=map')) {\r\n let resultsLocation = new ResultsLocation()\r\n let defaultDistance = resultsLocation.getTownDefaultDistance();\r\n qs += `&nlm=${defaultDistance.dd}`\r\n }\r\n\r\n // if we're already running a fetch, abort it\r\n if (this.activeFetch !== -1) {\r\n this.activeFetch.getXHR().abort()\r\n }\r\n // run search for markers\r\n this.activeFetch = new XHRPromise()\r\n this.activeFetch.send({\r\n url: `/feeds/resultsFeed.aspx?type=forMap&${qs}`,\r\n })\r\n .then(response => (new window.DOMParser()).parseFromString(response.responseText, 'text/xml'))\r\n .then((data) => {\r\n const location = data.getElementsByTagName('location')[0]\r\n const cottagesXml = data.getElementsByTagName('cottages')[0]\r\n const complexCottageXml = data.getElementsByTagName('complexCottages')[0]\r\n let cottages = this.parseCottages(cottagesXml.getElementsByTagName('cottage')) || []\r\n let cxCottages = this.parseCottages(complexCottageXml.getElementsByTagName('cottage')) || []\r\n\r\n // filter complex cottages\r\n // - remove duplicate cottages in complexCottages resultset \r\n // - (duplicates can be present due to year based variance)\r\n cxCottages = Array.from(new Set(cxCottages.map(c => c.code)))\r\n .map(code => cxCottages.find(c => c.code === code))\r\n\r\n // - those not already in the cottages resultset\r\n cxCottages = cxCottages.filter((cx) => {\r\n return cottages.map(c => c.code).includes(cx.code) === false\r\n })\r\n\r\n // merge the cottages\r\n cottages = cottages.concat(cxCottages)\r\n\r\n this.activeFetch = -1\r\n resolve({\r\n location,\r\n cottages,\r\n })\r\n }).catch((error) => {\r\n // TODO: UI/UX for error handling\r\n if (error.reason !== 'abort') {\r\n console.log(error)\r\n }\r\n })\r\n })\r\n }\r\n\r\n parseCottages(xmlCottages) {\r\n const cottages = []\r\n Array.from(xmlCottages).forEach((cottage) => {\r\n cottages.push({\r\n lat: parseFloat(cottage.getAttribute('lat')),\r\n lng: parseFloat(cottage.getAttribute('lon')),\r\n name: cottage.getAttribute('name'),\r\n town: cottage.getAttribute('town'),\r\n towndis: cottage.getAttribute('towndis'),\r\n type: cottage.getAttribute('type'),\r\n year: cottage.getAttribute('year'),\r\n code: cottage.getAttribute('code'),\r\n complexCode: cottage.getAttribute('xcode'),\r\n rent: cottage.getAttribute('rent'),\r\n accom: cottage.getAttribute('accom'),\r\n pets: cottage.getAttribute('maxPets'),\r\n image: cottage.getAttribute('picURL')\r\n })\r\n })\r\n return cottages\r\n }\r\n\r\n getNonDefaultValues() {\r\n const params = {}\r\n if (this.isVisible()) {\r\n params.view = 'map'\r\n\r\n if (this.mapState !== '') {\r\n params.mapState = this.mapState\r\n }\r\n }\r\n return params\r\n }\r\n\r\n getValues() {\r\n return this.getNonDefaultValues()\r\n }\r\n\r\n setValues(params) {\r\n this.mapState = params.mapState || ''\r\n\r\n if (params.view === 'map') {\r\n this.open()\r\n this.update()\r\n } else {\r\n this.close()\r\n }\r\n return this\r\n }\r\n\r\n raiseEvent() {\r\n searchControl.dispatchEvent(new CustomEvent('search-map'))\r\n\r\n return this\r\n }\r\n}\r\n\r\nexport default ResultsMap\r\n","import Helpers from '../Helpers'\r\n\r\nclass ResultsPagination {\r\n constructor(changeEvent) {\r\n this.changeEvent = changeEvent\r\n\r\n this.control = document.getElementsByClassName('results-list__utility')[0]\r\n\r\n this.pageTitle = document.getElementsByClassName('results-list__no-results')[0]\r\n\r\n this.pagePrev = document.getElementsByClassName('results-list__paging-control--prev')[0]\r\n this.pageNext = document.getElementsByClassName('results-list__paging-control--next')[0]\r\n this.listeners()\r\n }\r\n\r\n listeners() {\r\n new Helpers(this.pageNext).eventListener((e) => {\r\n e.preventDefault()\r\n const pMax = parseInt(this.control.getAttribute('data-pMax'))\r\n \r\n if (pMax === 0) {\r\n //return if showing \"all pages\"\r\n return\r\n }\r\n const nextPage = pMax + 1\r\n const maxPages = parseInt(this.control.getAttribute('data-pages'))\r\n\r\n if (nextPage > maxPages) {\r\n // would end up outside result set\r\n return\r\n }\r\n \r\n\r\n this.control.setAttribute('data-pMin', nextPage)\r\n this.control.setAttribute('data-pMax', nextPage)\r\n\r\n this.updatePaginationControls()\r\n this.changeEvent('page')\r\n })\r\n new Helpers(this.pagePrev).eventListener((e) => {\r\n e.preventDefault()\r\n const pMin = parseInt(this.control.getAttribute('data-pMin'))\r\n if (pMin === 0) {\r\n //showing all pages\r\n return\r\n }\r\n const prevPage = pMin - 1\r\n\r\n if (prevPage < 1) {\r\n // would end up outside result set\r\n return\r\n }\r\n\r\n this.control.setAttribute('data-pMin', prevPage)\r\n this.control.setAttribute('data-pMax', prevPage)\r\n \r\n this.updatePaginationControls()\r\n this.changeEvent('page')\r\n })\r\n \r\n }\r\n\r\n page() {\r\n return parseInt(this.control.getAttribute('data-pMax'))\r\n }\r\n setNoOfPages(pages) {\r\n this.control.setAttribute('data-pages', pages)\r\n this.updatePaginationControls()\r\n }\r\n\r\n updatePaginationControls() {\r\n const maxPages = parseInt(this.control.getAttribute('data-pages'))\r\n const pMin = parseInt(this.control.getAttribute('data-pMin'))\r\n const pMax = parseInt(this.control.getAttribute('data-pMax'))\r\n if (maxPages === 0) {\r\n this.pageTitle.innerHTML = 'No results'\r\n } else if (pMax === 0) {\r\n this.pageTitle.innerHTML = 'All pages'\r\n } else if (pMax === pMin) {\r\n this.pageTitle.innerHTML = `Page ${pMax} of ${maxPages}`\r\n } else {\r\n this.pageTitle.innerHTML = `Page ${pMin}-${pMax} of ${maxPages}`\r\n }\r\n\r\n this.pagePrev.setAttribute('data-disabled', pMin <= 1 || pMin === 0 ? 'true' : 'false')\r\n this.pageNext.setAttribute('data-disabled', pMax >= maxPages || pMax === 0 ? 'true' : 'false')\r\n }\r\n\r\n showMore() {\r\n const maxPages = parseInt(this.control.getAttribute('data-pages'))\r\n const pMax = parseInt(this.control.getAttribute('data-pMax'))\r\n if (maxPages > pMax) {\r\n this.control.setAttribute('data-pMax',pMax+1)\r\n }\r\n }\r\n\r\n setValues(values) {\r\n this.control.setAttribute('data-pMin', values.pMin === undefined ? 1 : values.pMin)\r\n this.control.setAttribute('data-pMax', values.pMax === undefined ? 1 : values.pMax)\r\n }\r\n\r\n getValues() {\r\n return {\r\n pMin: parseInt(this.control.getAttribute('data-pMin')),\r\n pMax: parseInt(this.control.getAttribute('data-pMax'))\r\n }\r\n }\r\n\r\n getNonDefaultValues() {\r\n const values = this.getValues()\r\n Object.keys(values).forEach((key) => (values[key] === 1) && delete values[key])\r\n return values\r\n }\r\n}\r\n\r\nexport default ResultsPagination","import Helpers from '../Helpers'\r\nimport ButtonCounter from '../ButtonCounter'\r\n\r\nclass ResultsParty {\r\n constructor(changeEvent) {\r\n const self = this\r\n this.changeEvent = changeEvent\r\n this.members = []\r\n Array.from(document.getElementsByClassName('results-aside__your-party-options')[0].children).forEach(el => {\r\n this.members.push(new ButtonCounter(el))\r\n });\r\n\r\n this.childAges = new ResultsPartyChildAges(document.getElementsByClassName('results-aside__children-ages')[0])\r\n this.babyFriendly = document.getElementsByClassName('results-aside__babyCheckbox')[0]\r\n\r\n this.listeners()\r\n }\r\n\r\n listeners() {\r\n const self = this\r\n new Helpers(this.members.map(m => m.control)).eventListener(e => {\r\n self.changeEvent('party')\r\n }, 'change')\r\n \r\n\r\n new Helpers(this.childAges.control).eventListener(e => {\r\n self.changeEvent('party')\r\n }, 'party-change')\r\n\r\n new Helpers(this.babyFriendly).eventListener(e => {\r\n self.changeEvent('party')\r\n },'change')\r\n }\r\n\r\n getValues() {\r\n let values = {}\r\n this.members.forEach(m => {\r\n const value = m.getValue()\r\n if (value != null && value != '0') {\r\n values[m.code] = value\r\n }\r\n })\r\n\r\n if (this.childAges.getValue().min != '') {\r\n values.cFrom = this.childAges.getValue().min\r\n values.cTo = this.childAges.getValue().max\r\n }\r\n\r\n values.baby = this.babyFriendly.checked ? 'Y' : null\r\n\r\n return values\r\n }\r\n\r\n\r\n getNonDefaultValues() {\r\n let values = {}\r\n this.members.forEach(m => {\r\n const value = m.getValue()\r\n if (value != null && value != m.defaultValue) {\r\n values[m.code] = value\r\n }\r\n })\r\n\r\n if (this.childAges.getValue().min != '') {\r\n values.cFrom = this.childAges.getValue().min\r\n values.cTo = this.childAges.getValue().max\r\n }\r\n\r\n if (this.babyFriendly.checked) {\r\n values.baby = 'Y'\r\n }\r\n\r\n return values\r\n }\r\n\r\n setValues(values) {\r\n\r\n this.members.forEach(member => {\r\n const value = values[member.code]\r\n\r\n if (value != undefined) {\r\n member.setValue(value)\r\n } else {\r\n member.reset()\r\n }\r\n })\r\n\r\n this.childAges.setMin(values['cFrom'] || '')\r\n this.childAges.setMax(values['cTo'] || '')\r\n\r\n this.babyFriendly.checked = values['baby'] == 'Y'\r\n }\r\n}\r\n\r\n\r\n\r\nclass ResultsPartyChildAges {\r\n constructor(control) {\r\n this.control = control\r\n this.minAge = control.getElementsByTagName('select')[0]\r\n this.maxAge = control.getElementsByTagName('select')[1]\r\n\r\n this.changeEvents()\r\n }\r\n\r\n getValue() {\r\n return {\r\n 'min': this.minAge.value,\r\n 'max': this.maxAge.value\r\n }\r\n }\r\n\r\n changeEvents() {\r\n const self = this\r\n new Helpers(this.minAge).eventListener((e) => {\r\n self.minChange()\r\n }, 'change')\r\n\r\n new Helpers(this.maxAge).eventListener((e) => {\r\n self.maxChange()\r\n }, 'change')\r\n }\r\n\r\n minChange() {\r\n //clear all disabled values in max\r\n //Array.from(this.maxAge.getElementsByTagName('option')).forEach(o => {\r\n // o.disabled = false\r\n //})\r\n if (this.minAge.value == '') {\r\n // clear max\r\n this.maxAge.value = ''\r\n } else {\r\n if (parseInt(this.maxAge.value) < parseInt(this.minAge.value) || this.maxAge.value == '') {\r\n this.maxAge.value = this.minAge.value\r\n }\r\n\r\n // disable max options below this value\r\n //Array.from(this.maxAge.getElementsByTagName('option')).forEach(o => {\r\n // if (parseInt(o.value) < parseInt(this.minAge.value)) {\r\n // o.disabled = true\r\n // }\r\n //})\r\n }\r\n this.raiseEvent()\r\n }\r\n\r\n maxChange() {\r\n //clear all disabled values in max\r\n //Array.from(this.minAge.getElementsByTagName('option')).forEach(o => {\r\n // o.disabled = false\r\n //})\r\n if (this.maxAge.value == '') {\r\n // clear max\r\n this.minAge.value = ''\r\n } else {\r\n if (parseInt(this.minAge.value) > parseInt(this.maxAge.value) || this.minAge.value == '') {\r\n this.minAge.value = this.maxAge.value\r\n }\r\n // disable max options below this value\r\n //Array.from(this.minAge.getElementsByTagName('option')).forEach(o => {\r\n // if (parseInt(o.value) > parseInt(this.maxAge.value)) {\r\n // o.disabled = true\r\n // }\r\n //})\r\n }\r\n this.raiseEvent()\r\n }\r\n\r\n\r\n raiseEvent() {\r\n this.control.dispatchEvent(new CustomEvent('party-change'))\r\n }\r\n\r\n setMin(value) {\r\n this.minAge.value = value\r\n }\r\n\r\n setMax(value) {\r\n this.maxAge.value = value\r\n }\r\n}\r\n\r\nexport default ResultsParty","import Helpers from '../Helpers'\r\nimport XHRPromise from 'xhr-promise'\r\nimport { Promise } from 'q';\r\n\r\nclass ResultsSorting {\r\n constructor(changeEvent) {\r\n this.changeEvent = changeEvent\r\n this.control = document.querySelector('.results-list__sort-by-dropdown')\r\n this.toggle = document.querySelector('.results-list__sort-by-toggle')\r\n \r\n this.listeners()\r\n }\r\n\r\n get defaultSort() {\r\n return this.control.getAttribute('data-defaultvalue')\r\n }\r\n set defaultSort(value) {\r\n this.control.setAttribute('data-defaultvalue', value)\r\n }\r\n\r\n get sort() {\r\n return this.control.getAttribute('data-value')\r\n }\r\n\r\n set sort(value) {\r\n this.control.setAttribute('data-value', value)\r\n }\r\n\r\n get buttons() {\r\n return Array.from(this.control.getElementsByClassName('button'))\r\n }\r\n\r\n listeners() {\r\n // listener for when option is selected. \r\n // Update ui, raise event and hide picker accordion\r\n new Helpers(this.control).eventListener((e) => {\r\n this.sort = e.target.value\r\n // interim update of toggle text - will be overwritten once the search is performed.\r\n this.toggle.innerText = e.target.innerText\r\n // hide the menu\r\n new Helpers(this.control).removeClass('accordion--active')\r\n new Helpers(this.toggle).removeClass('accordion-toggle--active')\r\n // raise the sorting event\r\n this.changeEvent('sorting')\r\n });\r\n\r\n // any body click not on the accordion toggle should close the accordion too\r\n new Helpers(document.getElementsByTagName('body')).eventListener((e) => {\r\n if (e.target !== this.toggle) {\r\n new Helpers(this.control).removeClass('accordion--active')\r\n new Helpers(this.toggle).removeClass('accordion-toggle--active')\r\n }\r\n })\r\n\r\n new Helpers(this.toggle).eventListener(() => {\r\n // highlight the active sort\r\n this.buttons.forEach(b => b.setAttribute('aria-current', b.value === this.sort))\r\n })\r\n }\r\n\r\n\r\n updateSortControl(data) {\r\n this.toggle.innerText = data.getAttribute('currentSortTitle')\r\n this.defaultSort = data.getAttribute('defaultSort')\r\n this.sort = data.getAttribute('currentSort')\r\n\r\n // set list options\r\n this.control.innerHTML = ''\r\n Array.from(data.getElementsByTagName('sortOption')).forEach((so) => {\r\n const button = document.createElement('button')\r\n button.className = 'button'\r\n button.setAttribute('value', so.getAttribute('name'))\r\n button.setAttribute('aria-current', so.getAttribute('name') === this.sort)\r\n button.innerText = so.getAttribute('title')\r\n const li = document.createElement('li')\r\n li.appendChild(button)\r\n this.control.appendChild(li)\r\n })\r\n }\r\n\r\n setValues(values) {\r\n this.sort = values.sorting || this.defaultSort\r\n }\r\n\r\n buildQsForFeed(values) {\r\n return Object\r\n .keys(values)\r\n .filter(v => values[v] !== null && values[v] !== '')\r\n .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(values[key])}`)\r\n .join('&')\r\n }\r\n\r\n getValues() {\r\n let values = {}\r\n values.sorting = this.sort\r\n return values\r\n }\r\n getNonDefaultValues() {\r\n // return sort if not the default value\r\n const values = this.getValues()\r\n Object.keys(values).forEach((key) => (values[key] === this.defaultSort) && delete values[key])\r\n return values\r\n }\r\n\r\n}\r\nexport default ResultsSorting","class Tracking {\r\n constructor() {\r\n this.trackSearch()\r\n this.searchQsToJSON()\r\n }\r\n trackResultsItemViewed(cottage) {\r\n window.dataLayerQueue.push({\r\n 'event': 'resultsItemViewed'\r\n , 'cottageCode': typeof (cottage.cottageCode) === 'undefined' ? '' : cottage.cottageCode\r\n , 'position': typeof (cottage.position) === 'undefined' ? '' : cottage.position\r\n , 'searchQuery': typeof (cottage.queryString) === 'undefined' ? '' : cottage.queryString\r\n , 'searchParams': typeof (cottage.params) === 'undefined' ? '' : cottage.params\r\n }); \r\n }\r\n trackComplexResultViewed(complex) {\r\n window.dataLayerQueue.push({\r\n 'event': 'resultsComplexViewed'\r\n , 'complexCode': typeof (complex.complexCode) === 'undefined' ? '' : complex.complexCode\r\n , 'cottageCodes': typeof (complex.complexCodes) === 'undefined' ? '' : complex.complexCodes\r\n , 'position': typeof (complex.position) === 'undefined' ? '' : complex.position\r\n , 'searchQuery': typeof (complex.queryString) === 'undefined' ? '' : complex.queryString\r\n , 'searchParams': typeof (complex.params) === 'undefined' ? '' : complex.params\r\n }); \r\n }\r\n \r\n trackSearch(state, params) {\r\n if (typeof (state) !== 'undefined') {\r\n let qs = window.location.href.split(\"?\")[1]\r\n window.dataLayerQueue.push({\r\n 'event': 'Search'\r\n , 'arrivalDate': typeof (state.dss) === 'undefined' ? '' : state.dss\r\n , 'departureDate': typeof (state.des) === 'undefined' ? '' : state.des\r\n , 'pets': typeof (state.pet) === 'undefined' ? '' : state.pet\r\n , 'party': typeof (state.minA) === 'undefined' ? '' : state.minA\r\n , 'nights': typeof (state.nday) === 'undefined' ? '' : state.nday\r\n , 'location': typeof (params.locationName) === 'undefined' ? '' : params.locationName\r\n , 'bedrooms': typeof (state.bed) === 'undefined' ? '' : state.bed\r\n , 'bathrooms': typeof (state.bath) === 'undefined' ? '' : state.bath\r\n , 'resultsCount': typeof (params.totalCount) === 'undefined' ? '' : params.totalCount\r\n , 'sortOrder': typeof (state.sorting) === 'undefined' ? '' : state.sorting\r\n , 'searchQuery': qs\r\n , 'searchParams': this.searchQsToJSON(state)\r\n });\r\n }\r\n }\r\n\r\n searchQsToJSON(queryString) {\r\n let params = new URLSearchParams(queryString);\r\n let json = {};\r\n params.forEach(function (value, key) {\r\n if (!json.hasOwnProperty(key)) {\r\n json[key] = value;\r\n } else {\r\n if (!Array.isArray(json[key])) {\r\n json[key] = [json[key]];\r\n }\r\n json[key].push(value);\r\n }\r\n });\r\n return JSON.stringify(json);\r\n }\r\n}\r\n\r\nexport default Tracking\r\n","import Helpers from '../Helpers'\r\n\r\nclass ResultsUI {\r\n constructor(showMoreEvent, extendEvent) {\r\n this.showmore = document.getElementsByClassName('results-list__loading')[0]\r\n this.specialOfferExtender = document.getElementsByClassName('results-list__extend--offers')[0]\r\n this.contact = document.getElementsByClassName('results-list__extend--contact')[0]\r\n this.breadcrumbs = document.getElementById('breadcrumb')\r\n this.resultsTitle = document.getElementById('searchTitle')\r\n this.resultsFilterButtonMobile = document.getElementsByClassName('results-aside__apply-filter')[0]\r\n this.resultsCountTitleMobile = document.getElementsByClassName('results-mobile-nav__title')[0]\r\n this.warning = document.getElementsByClassName('results-list__warning')[0]\r\n this.range = document.getElementsByClassName('results-list__range')[0]\r\n this.readMore = document.getElementsByClassName('read-more')[0]\r\n this.readMoreText = document.getElementsByClassName('results-end__text')[0]\r\n this.backToTop = document.getElementsByClassName('back-to-top')[0]\r\n this.results = document.getElementById('search-results')\r\n this.showMoreEvent = showMoreEvent\r\n this.extendEvent = extendEvent\r\n this.listeners() \r\n }\r\n\r\n listeners() {\r\n new Helpers(this.specialOfferExtender.getElementsByTagName('button')).eventListener((e) => {\r\n this.extendEvent({ oso: null })\r\n });\r\n new Helpers(this.range).eventListener((e) => {\r\n this.extendEvent({ nlm: parseInt(e.currentTarget.getAttribute('data-range')) })\r\n })\r\n\r\n new Helpers(this.showmore).eventListener((e) => {\r\n e.preventDefault();\r\n this.showMoreEvent();\r\n })\r\n //new Helpers(this.readMore).eventListener((e) => {\r\n // e.preventDefault();\r\n // this.readMoreText.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n // window.dataLayerQueue.push({ event: 'readMoreClick' })\r\n //})\r\n new Helpers(this.backToTop).eventListener((e) => {\r\n e.preventDefault();\r\n this.results.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n window.dataLayerQueue.push({ event: 'backToTopClick'})\r\n\r\n })\r\n \r\n }\r\n\r\n updateUI(params) {\r\n this.toggleShowMore(params.pMax < params.totalPages && params.pMax > 0)\r\n this.toggleContact(params.totalCount == 0)\r\n this.setResultsTitle(params.title)\r\n this.setCountTitle(params)\r\n this.setExtenders(params)\r\n this.setWarning(params.warning)\r\n this.setRange(params)\r\n }\r\n\r\n loading() {\r\n this.setWarning('')\r\n this.contact.setAttribute('aria-hidden', 'true')\r\n this.specialOfferExtender.setAttribute('aria-hidden', 'true')\r\n }\r\n\r\n resetPosition() {\r\n window.scroll(0, document.getElementsByClassName('results-output')[0].offsetTop)\r\n }\r\n\r\n toggleShowMore(visible) {\r\n this.showmore.setAttribute('aria-hidden', visible ? 'false' : 'true')\r\n }\r\n\r\n toggleContact(visible) {\r\n this.contact.setAttribute('aria-hidden', visible ? 'false' : 'true')\r\n }\r\n\r\n setResultsTitle(text) {\r\n this.resultsTitle.innerText = text;\r\n }\r\n\r\n setCountTitle(params) {\r\n this.resultsFilterButtonMobile.getElementsByTagName('span')[0].innerHTML = `${params.totalCount} cottage${params.totalCount !== 1 ? 's' : ''}`\r\n this.resultsCountTitleMobile.getElementsByTagName('span')[0].innerHTML = `${params.totalCount} cottage${params.totalCount !== 1 ? 's' : ''}`\r\n }\r\n\r\n setExtenders(params) {\r\n this.specialOfferExtender.setAttribute('aria-hidden', true)\r\n if (params.oso === 'Y') {\r\n if ((params.pMax === params.totalPages || params.pMax === 0 || params.totalPages === 0) && params.totalWithoutOfferFilter > 0) {\r\n const offerExtenderIntro = `We've got ${params.totalWithoutOfferFilter} more holiday cottage${params.totalWithoutOfferFilter !== 1 ? 's' : ''} in ${params.regionName} that match your search.`\r\n this.specialOfferExtender.getElementsByTagName('p')[0].innerText = offerExtenderIntro\r\n this.specialOfferExtender.setAttribute('aria-hidden', false)\r\n }\r\n }\r\n }\r\n\r\n setWarning(warningMessage) {\r\n if (warningMessage != undefined && warningMessage.length > 0) {\r\n this.warning.getElementsByTagName('p')[0].innerText = warningMessage\r\n this.warning.setAttribute('aria-hidden', 'false')\r\n } else {\r\n this.warning.getElementsByTagName('p')[0].innerText = ''\r\n this.warning.setAttribute('aria-hidden', 'true')\r\n }\r\n }\r\n\r\n setRange(params) {\r\n let range = 0\r\n // calculate extended range value\r\n if (params.nlc && params.nlm < 30) {\r\n if (params.nlm >= 20) {\r\n range = 30\r\n } else if (params.nlm >= 10) {\r\n range = 20\r\n } else if (params.nlm >= 5) {\r\n range = 10\r\n } else if (params.nlm >= 1) {\r\n range = 5\r\n } else if (params.nlm == 0) {\r\n range = 1\r\n }\r\n }\r\n this.range.setAttribute('data-range', range)\r\n // toggle visiblity\r\n this.range.setAttribute('aria-hidden', range > 0 && (params.pMax === 0 || params.pMax >= params.totalPages) ? 'false' : 'true')\r\n\r\n this.range.getElementsByTagName('span')[0].innerText = `${range} mile${range !== 1 ? 's' : ''}`\r\n this.range.getElementsByTagName('span')[1].innerText = params.locationName\r\n\r\n }\r\n\r\n setBreadcrumbs(xmlData) {\r\n\r\n let deleteEl = false\r\n const crumbEls = Array.from(this.breadcrumbs.getElementsByTagName('li'))\r\n // ignore the first el (home link)\r\n crumbEls.shift()\r\n // delete the rest\r\n crumbEls.forEach(crumb => crumb.parentNode.removeChild(crumb))\r\n\r\n // loop thru the xml elements and add each as a crumb\r\n Array.from(xmlData.getElementsByTagName('breadcrumb')).forEach(data => {\r\n const newCrumb = document.createElement('li');\r\n const link = document.createElement('a');\r\n const url = new URL(data.getAttribute('href'), window.location.origin);\r\n link.href = url.pathname + url.search;\r\n link.innerText = data.getAttribute('text');\r\n newCrumb.appendChild(link);\r\n this.breadcrumbs.getElementsByTagName('ul')[0].appendChild(newCrumb);\r\n })\r\n }\r\n\r\n //toggle show more status\r\n showMoreLoading(loading) {\r\n this.showmore.setAttribute('data-enabled', loading ? 'false' : 'true')\r\n\r\n }\r\n\r\n}\r\n\r\nexport default ResultsUI","/*\r\n json2.js\r\n 2012-10-08\r\n\r\n Public Domain.\r\n\r\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\r\n\r\n See http://www.JSON.org/js.html\r\n\r\n\r\n This code should be minified before deployment.\r\n See http://javascript.crockford.com/jsmin.html\r\n\r\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\r\n NOT CONTROL.\r\n\r\n\r\n This file creates a global JSON object containing two methods: stringify\r\n and parse.\r\n\r\n JSON.stringify(value, replacer, space)\r\n value any JavaScript value, usually an object or array.\r\n\r\n replacer an optional parameter that determines how object\r\n values are stringified for objects. It can be a\r\n function or an array of strings.\r\n\r\n space an optional parameter that specifies the indentation\r\n of nested structures. If it is omitted, the text will\r\n be packed without extra whitespace. If it is a number,\r\n it will specify the number of spaces to indent at each\r\n level. If it is a string (such as '\\t' or ' '),\r\n it contains the characters used to indent at each level.\r\n\r\n This method produces a JSON text from a JavaScript value.\r\n\r\n When an object value is found, if the object contains a toJSON\r\n method, its toJSON method will be called and the result will be\r\n stringified. A toJSON method does not serialize: it returns the\r\n value represented by the name/value pair that should be serialized,\r\n or undefined if nothing should be serialized. The toJSON method\r\n will be passed the key associated with the value, and this will be\r\n bound to the value\r\n\r\n For example, this would serialize Dates as ISO strings.\r\n\r\n Date.prototype.toJSON = function (key) {\r\n function f(n) {\r\n // Format integers to have at least two digits.\r\n return n < 10 ? '0' + n : n;\r\n }\r\n\r\n return this.getUTCFullYear() + '-' +\r\n f(this.getUTCMonth() + 1) + '-' +\r\n f(this.getUTCDate()) + 'T' +\r\n f(this.getUTCHours()) + ':' +\r\n f(this.getUTCMinutes()) + ':' +\r\n f(this.getUTCSeconds()) + 'Z';\r\n };\r\n\r\n You can provide an optional replacer method. It will be passed the\r\n key and value of each member, with this bound to the containing\r\n object. The value that is returned from your method will be\r\n serialized. If your method returns undefined, then the member will\r\n be excluded from the serialization.\r\n\r\n If the replacer parameter is an array of strings, then it will be\r\n used to select the members to be serialized. It filters the results\r\n such that only members with keys listed in the replacer array are\r\n stringified.\r\n\r\n Values that do not have JSON representations, such as undefined or\r\n functions, will not be serialized. Such values in objects will be\r\n dropped; in arrays they will be replaced with null. You can use\r\n a replacer function to replace those with JSON values.\r\n JSON.stringify(undefined) returns undefined.\r\n\r\n The optional space parameter produces a stringification of the\r\n value that is filled with line breaks and indentation to make it\r\n easier to read.\r\n\r\n If the space parameter is a non-empty string, then that string will\r\n be used for indentation. If the space parameter is a number, then\r\n the indentation will be that many spaces.\r\n\r\n Example:\r\n\r\n text = JSON.stringify(['e', {pluribus: 'unum'}]);\r\n // text is '[\"e\",{\"pluribus\":\"unum\"}]'\r\n\r\n\r\n text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\r\n // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\r\n\r\n text = JSON.stringify([new Date()], function (key, value) {\r\n return this[key] instanceof Date ?\r\n 'Date(' + this[key] + ')' : value;\r\n });\r\n // text is '[\"Date(---current time---)\"]'\r\n\r\n\r\n JSON.parse(text, reviver)\r\n This method parses a JSON text to produce an object or array.\r\n It can throw a SyntaxError exception.\r\n\r\n The optional reviver parameter is a function that can filter and\r\n transform the results. It receives each of the keys and values,\r\n and its return value is used instead of the original value.\r\n If it returns what it received, then the structure is not modified.\r\n If it returns undefined then the member is deleted.\r\n\r\n Example:\r\n\r\n // Parse the text. Values that look like ISO date strings will\r\n // be converted to Date objects.\r\n\r\n myData = JSON.parse(text, function (key, value) {\r\n var a;\r\n if (typeof value === 'string') {\r\n a =\r\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\r\n if (a) {\r\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\r\n +a[5], +a[6]));\r\n }\r\n }\r\n return value;\r\n });\r\n\r\n myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\r\n var d;\r\n if (typeof value === 'string' &&\r\n value.slice(0, 5) === 'Date(' &&\r\n value.slice(-1) === ')') {\r\n d = new Date(value.slice(5, -1));\r\n if (d) {\r\n return d;\r\n }\r\n }\r\n return value;\r\n });\r\n\r\n\r\n This is a reference implementation. You are free to copy, modify, or\r\n redistribute.\r\n*/\r\n\r\n/*jslint evil: true, regexp: true */\r\n\r\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\r\n call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\r\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\r\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\r\n test, toJSON, toString, valueOf\r\n*/\r\n\r\n\r\n// Create a JSON object only if one does not already exist. We create the\r\n// methods in a closure to avoid creating global variables.\r\n\r\nif (typeof JSON !== 'object') {\r\n JSON = {};\r\n}\r\n\r\n(function () {\r\n 'use strict';\r\n\r\n function f(n) {\r\n // Format integers to have at least two digits.\r\n return n < 10 ? '0' + n : n;\r\n }\r\n\r\n if (typeof Date.prototype.toJSON !== 'function') {\r\n\r\n Date.prototype.toJSON = function (key) {\r\n\r\n return isFinite(this.valueOf())\r\n ? this.getUTCFullYear() + '-' +\r\n f(this.getUTCMonth() + 1) + '-' +\r\n f(this.getUTCDate()) + 'T' +\r\n f(this.getUTCHours()) + ':' +\r\n f(this.getUTCMinutes()) + ':' +\r\n f(this.getUTCSeconds()) + 'Z'\r\n : null;\r\n };\r\n\r\n String.prototype.toJSON =\r\n Number.prototype.toJSON =\r\n Boolean.prototype.toJSON = function (key) {\r\n return this.valueOf();\r\n };\r\n }\r\n\r\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\r\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\r\n gap,\r\n indent,\r\n meta = { // table of character substitutions\r\n '\\b': '\\\\b',\r\n '\\t': '\\\\t',\r\n '\\n': '\\\\n',\r\n '\\f': '\\\\f',\r\n '\\r': '\\\\r',\r\n '\"' : '\\\\\"',\r\n '\\\\': '\\\\\\\\'\r\n },\r\n rep;\r\n\r\n\r\n function quote(string) {\r\n\r\n// If the string contains no control characters, no quote characters, and no\r\n// backslash characters, then we can safely slap some quotes around it.\r\n// Otherwise we must also replace the offending characters with safe escape\r\n// sequences.\r\n\r\n escapable.lastIndex = 0;\r\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\r\n var c = meta[a];\r\n return typeof c === 'string'\r\n ? c\r\n : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\r\n }) + '\"' : '\"' + string + '\"';\r\n }\r\n\r\n\r\n function str(key, holder) {\r\n\r\n// Produce a string from holder[key].\r\n\r\n var i, // The loop counter.\r\n k, // The member key.\r\n v, // The member value.\r\n length,\r\n mind = gap,\r\n partial,\r\n value = holder[key];\r\n\r\n// If the value has a toJSON method, call it to obtain a replacement value.\r\n\r\n if (value && typeof value === 'object' &&\r\n typeof value.toJSON === 'function') {\r\n value = value.toJSON(key);\r\n }\r\n\r\n// If we were called with a replacer function, then call the replacer to\r\n// obtain a replacement value.\r\n\r\n if (typeof rep === 'function') {\r\n value = rep.call(holder, key, value);\r\n }\r\n\r\n// What happens next depends on the value's type.\r\n\r\n switch (typeof value) {\r\n case 'string':\r\n return quote(value);\r\n\r\n case 'number':\r\n\r\n// JSON numbers must be finite. Encode non-finite numbers as null.\r\n\r\n return isFinite(value) ? String(value) : 'null';\r\n\r\n case 'boolean':\r\n case 'null':\r\n\r\n// If the value is a boolean or null, convert it to a string. Note:\r\n// typeof null does not produce 'null'. The case is included here in\r\n// the remote chance that this gets fixed someday.\r\n\r\n return String(value);\r\n\r\n// If the type is 'object', we might be dealing with an object or an array or\r\n// null.\r\n\r\n case 'object':\r\n\r\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\r\n// so watch out for that case.\r\n\r\n if (!value) {\r\n return 'null';\r\n }\r\n\r\n// Make an array to hold the partial results of stringifying this object value.\r\n\r\n gap += indent;\r\n partial = [];\r\n\r\n// Is the value an array?\r\n\r\n if (Object.prototype.toString.apply(value) === '[object Array]') {\r\n\r\n// The value is an array. Stringify every element. Use null as a placeholder\r\n// for non-JSON values.\r\n\r\n length = value.length;\r\n for (i = 0; i < length; i += 1) {\r\n partial[i] = str(i, value) || 'null';\r\n }\r\n\r\n// Join all of the elements together, separated with commas, and wrap them in\r\n// brackets.\r\n\r\n v = partial.length === 0\r\n ? '[]'\r\n : gap\r\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\r\n : '[' + partial.join(',') + ']';\r\n gap = mind;\r\n return v;\r\n }\r\n\r\n// If the replacer is an array, use it to select the members to be stringified.\r\n\r\n if (rep && typeof rep === 'object') {\r\n length = rep.length;\r\n for (i = 0; i < length; i += 1) {\r\n if (typeof rep[i] === 'string') {\r\n k = rep[i];\r\n v = str(k, value);\r\n if (v) {\r\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\r\n }\r\n }\r\n }\r\n } else {\r\n\r\n// Otherwise, iterate through all of the keys in the object.\r\n\r\n for (k in value) {\r\n if (Object.prototype.hasOwnProperty.call(value, k)) {\r\n v = str(k, value);\r\n if (v) {\r\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\r\n }\r\n }\r\n }\r\n }\r\n\r\n// Join all of the member texts together, separated with commas,\r\n// and wrap them in braces.\r\n\r\n v = partial.length === 0\r\n ? '{}'\r\n : gap\r\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\r\n : '{' + partial.join(',') + '}';\r\n gap = mind;\r\n return v;\r\n }\r\n }\r\n\r\n// If the JSON object does not yet have a stringify method, give it one.\r\n\r\n if (typeof JSON.stringify !== 'function') {\r\n JSON.stringify = function (value, replacer, space) {\r\n\r\n// The stringify method takes a value and an optional replacer, and an optional\r\n// space parameter, and returns a JSON text. The replacer can be a function\r\n// that can replace values, or an array of strings that will select the keys.\r\n// A default replacer method can be provided. Use of the space parameter can\r\n// produce text that is more easily readable.\r\n\r\n var i;\r\n gap = '';\r\n indent = '';\r\n\r\n// If the space parameter is a number, make an indent string containing that\r\n// many spaces.\r\n\r\n if (typeof space === 'number') {\r\n for (i = 0; i < space; i += 1) {\r\n indent += ' ';\r\n }\r\n\r\n// If the space parameter is a string, it will be used as the indent string.\r\n\r\n } else if (typeof space === 'string') {\r\n indent = space;\r\n }\r\n\r\n// If there is a replacer, it must be a function or an array.\r\n// Otherwise, throw an error.\r\n\r\n rep = replacer;\r\n if (replacer && typeof replacer !== 'function' &&\r\n (typeof replacer !== 'object' ||\r\n typeof replacer.length !== 'number')) {\r\n throw new Error('JSON.stringify');\r\n }\r\n\r\n// Make a fake root object containing our value under the key of ''.\r\n// Return the result of stringifying the value.\r\n\r\n return str('', {'': value});\r\n };\r\n }\r\n\r\n\r\n// If the JSON object does not yet have a parse method, give it one.\r\n\r\n if (typeof JSON.parse !== 'function') {\r\n JSON.parse = function (text, reviver) {\r\n\r\n// The parse method takes a text and an optional reviver function, and returns\r\n// a JavaScript value if the text is a valid JSON text.\r\n\r\n var j;\r\n\r\n function walk(holder, key) {\r\n\r\n// The walk method is used to recursively walk the resulting structure so\r\n// that modifications can be made.\r\n\r\n var k, v, value = holder[key];\r\n if (value && typeof value === 'object') {\r\n for (k in value) {\r\n if (Object.prototype.hasOwnProperty.call(value, k)) {\r\n v = walk(value, k);\r\n if (v !== undefined) {\r\n value[k] = v;\r\n } else {\r\n delete value[k];\r\n }\r\n }\r\n }\r\n }\r\n return reviver.call(holder, key, value);\r\n }\r\n\r\n\r\n// Parsing happens in four stages. In the first stage, we replace certain\r\n// Unicode characters with escape sequences. JavaScript handles many characters\r\n// incorrectly, either silently deleting them, or treating them as line endings.\r\n\r\n text = String(text);\r\n cx.lastIndex = 0;\r\n if (cx.test(text)) {\r\n text = text.replace(cx, function (a) {\r\n return '\\\\u' +\r\n ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\r\n });\r\n }\r\n\r\n// In the second stage, we run the text against regular expressions that look\r\n// for non-JSON patterns. We are especially concerned with '()' and 'new'\r\n// because they can cause invocation, and '=' because it can cause mutation.\r\n// But just to be safe, we want to reject all unexpected forms.\r\n\r\n// We split the second stage into 4 regexp operations in order to work around\r\n// crippling inefficiencies in IE's and Safari's regexp engines. First we\r\n// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we\r\n// replace all simple value tokens with ']' characters. Third, we delete all\r\n// open brackets that follow a colon or comma or that begin the text. Finally,\r\n// we look to see that the remaining characters are only whitespace or ']' or\r\n// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.\r\n\r\n if (/^[\\],:{}\\s]*$/\r\n .test(text.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')\r\n .replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, ']')\r\n .replace(/(?:^|:|,)(?:\\s*\\[)+/g, ''))) {\r\n\r\n// In the third stage we use the eval function to compile the text into a\r\n// JavaScript structure. The '{' operator is subject to a syntactic ambiguity\r\n// in JavaScript: it can begin a block or an object literal. We wrap the text\r\n// in parens to eliminate the ambiguity.\r\n\r\n j = eval('(' + text + ')');\r\n\r\n// In the optional fourth stage, we recursively walk the new structure, passing\r\n// each name/value pair to a reviver function for possible transformation.\r\n\r\n return typeof reviver === 'function'\r\n ? walk({'': j}, '')\r\n : j;\r\n }\r\n\r\n// If the text is not JSON parseable, then a SyntaxError is thrown.\r\n\r\n throw new SyntaxError('JSON.parse');\r\n };\r\n }\r\n}());/**\r\n * History.js Native Adapter\r\n * @author Benjamin Arthur Lupton \r\n * @copyright 2010-2011 Benjamin Arthur Lupton \r\n * @license New BSD License \r\n */\r\n\r\n// Closure\r\n(function(window,undefined){\r\n\t\"use strict\";\r\n\r\n\t// Localise Globals\r\n\tvar History = window.History = window.History||{};\r\n\r\n\t// Check Existence\r\n\tif ( typeof History.Adapter !== 'undefined' ) {\r\n\t\tthrow new Error('History.js Adapter has already been loaded...');\r\n\t}\r\n\r\n\t// Add the Adapter\r\n\tHistory.Adapter = {\r\n\t\t/**\r\n\t\t * History.Adapter.handlers[uid][eventName] = Array\r\n\t\t */\r\n\t\thandlers: {},\r\n\r\n\t\t/**\r\n\t\t * History.Adapter._uid\r\n\t\t * The current element unique identifier\r\n\t\t */\r\n\t\t_uid: 1,\r\n\r\n\t\t/**\r\n\t\t * History.Adapter.uid(element)\r\n\t\t * @param {Element} element\r\n\t\t * @return {String} uid\r\n\t\t */\r\n\t\tuid: function(element){\r\n\t\t\treturn element._uid || (element._uid = History.Adapter._uid++);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * History.Adapter.bind(el,event,callback)\r\n\t\t * @param {Element} element\r\n\t\t * @param {String} eventName - custom and standard events\r\n\t\t * @param {Function} callback\r\n\t\t * @return\r\n\t\t */\r\n\t\tbind: function(element,eventName,callback){\r\n\t\t\t// Prepare\r\n\t\t\tvar uid = History.Adapter.uid(element);\r\n\r\n\t\t\t// Apply Listener\r\n\t\t\tHistory.Adapter.handlers[uid] = History.Adapter.handlers[uid] || {};\r\n\t\t\tHistory.Adapter.handlers[uid][eventName] = History.Adapter.handlers[uid][eventName] || [];\r\n\t\t\tHistory.Adapter.handlers[uid][eventName].push(callback);\r\n\r\n\t\t\t// Bind Global Listener\r\n\t\t\telement['on'+eventName] = (function(element,eventName){\r\n\t\t\t\treturn function(event){\r\n\t\t\t\t\tHistory.Adapter.trigger(element,eventName,event);\r\n\t\t\t\t};\r\n\t\t\t})(element,eventName);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * History.Adapter.trigger(el,event)\r\n\t\t * @param {Element} element\r\n\t\t * @param {String} eventName - custom and standard events\r\n\t\t * @param {Object} event - a object of event data\r\n\t\t * @return\r\n\t\t */\r\n\t\ttrigger: function(element,eventName,event){\r\n\t\t\t// Prepare\r\n\t\t\tevent = event || {};\r\n\t\t\tvar uid = History.Adapter.uid(element),\r\n\t\t\t\ti,n;\r\n\r\n\t\t\t// Apply Listener\r\n\t\t\tHistory.Adapter.handlers[uid] = History.Adapter.handlers[uid] || {};\r\n\t\t\tHistory.Adapter.handlers[uid][eventName] = History.Adapter.handlers[uid][eventName] || [];\r\n\r\n\t\t\t// Fire Listeners\r\n\t\t\tfor ( i=0,n=History.Adapter.handlers[uid][eventName].length; i\r\n * @copyright 2010-2011 Benjamin Arthur Lupton \r\n * @license New BSD License \r\n */\r\n\r\n(function(window,undefined){\r\n\t\"use strict\";\r\n\r\n\t// ========================================================================\r\n\t// Initialise\r\n\r\n\t// Localise Globals\r\n\tvar\r\n\t\tdocument = window.document, // Make sure we are using the correct document\r\n\t\tsetTimeout = window.setTimeout||setTimeout,\r\n\t\tclearTimeout = window.clearTimeout||clearTimeout,\r\n\t\tsetInterval = window.setInterval||setInterval,\r\n\t\tHistory = window.History = window.History||{}; // Public History Object\r\n\r\n\t// Check Existence\r\n\tif ( typeof History.initHtml4 !== 'undefined' ) {\r\n\t\tthrow new Error('History.js HTML4 Support has already been loaded...');\r\n\t}\r\n\r\n\r\n\t// ========================================================================\r\n\t// Initialise HTML4 Support\r\n\r\n\t// Initialise HTML4 Support\r\n\tHistory.initHtml4 = function(){\r\n\t\t// Initialise\r\n\t\tif ( typeof History.initHtml4.initialized !== 'undefined' ) {\r\n\t\t\t// Already Loaded\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tHistory.initHtml4.initialized = true;\r\n\t\t}\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Properties\r\n\r\n\t\t/**\r\n\t\t * History.enabled\r\n\t\t * Is History enabled?\r\n\t\t */\r\n\t\tHistory.enabled = true;\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Hash Storage\r\n\r\n\t\t/**\r\n\t\t * History.savedHashes\r\n\t\t * Store the hashes in an array\r\n\t\t */\r\n\t\tHistory.savedHashes = [];\r\n\r\n\t\t/**\r\n\t\t * History.isLastHash(newHash)\r\n\t\t * Checks if the hash is the last hash\r\n\t\t * @param {string} newHash\r\n\t\t * @return {boolean} true\r\n\t\t */\r\n\t\tHistory.isLastHash = function(newHash){\r\n\t\t\t// Prepare\r\n\t\t\tvar oldHash = History.getHashByIndex(),\r\n\t\t\t\tisLast;\r\n\r\n\t\t\t// Check\r\n\t\t\tisLast = newHash === oldHash;\r\n\r\n\t\t\t// Return isLast\r\n\t\t\treturn isLast;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.isHashEqual(newHash, oldHash)\r\n\t\t * Checks to see if two hashes are functionally equal\r\n\t\t * @param {string} newHash\r\n\t\t * @param {string} oldHash\r\n\t\t * @return {boolean} true\r\n\t\t */\r\n\t\tHistory.isHashEqual = function(newHash, oldHash){\r\n\t\t\tnewHash = encodeURIComponent(newHash).replace(/%25/g, \"%\");\r\n\t\t\toldHash = encodeURIComponent(oldHash).replace(/%25/g, \"%\");\r\n\t\t\treturn newHash === oldHash;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.saveHash(newHash)\r\n\t\t * Push a Hash\r\n\t\t * @param {string} newHash\r\n\t\t * @return {boolean} true\r\n\t\t */\r\n\t\tHistory.saveHash = function(newHash){\r\n\t\t\t// Check Hash\r\n\t\t\tif ( History.isLastHash(newHash) ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// Push the Hash\r\n\t\t\tHistory.savedHashes.push(newHash);\r\n\r\n\t\t\t// Return true\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getHashByIndex()\r\n\t\t * Gets a hash by the index\r\n\t\t * @param {integer} index\r\n\t\t * @return {string}\r\n\t\t */\r\n\t\tHistory.getHashByIndex = function(index){\r\n\t\t\t// Prepare\r\n\t\t\tvar hash = null;\r\n\r\n\t\t\t// Handle\r\n\t\t\tif ( typeof index === 'undefined' ) {\r\n\t\t\t\t// Get the last inserted\r\n\t\t\t\thash = History.savedHashes[History.savedHashes.length-1];\r\n\t\t\t}\r\n\t\t\telse if ( index < 0 ) {\r\n\t\t\t\t// Get from the end\r\n\t\t\t\thash = History.savedHashes[History.savedHashes.length+index];\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Get from the beginning\r\n\t\t\t\thash = History.savedHashes[index];\r\n\t\t\t}\r\n\r\n\t\t\t// Return hash\r\n\t\t\treturn hash;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Discarded States\r\n\r\n\t\t/**\r\n\t\t * History.discardedHashes\r\n\t\t * A hashed array of discarded hashes\r\n\t\t */\r\n\t\tHistory.discardedHashes = {};\r\n\r\n\t\t/**\r\n\t\t * History.discardedStates\r\n\t\t * A hashed array of discarded states\r\n\t\t */\r\n\t\tHistory.discardedStates = {};\r\n\r\n\t\t/**\r\n\t\t * History.discardState(State)\r\n\t\t * Discards the state by ignoring it through History\r\n\t\t * @param {object} State\r\n\t\t * @return {true}\r\n\t\t */\r\n\t\tHistory.discardState = function(discardedState,forwardState,backState){\r\n\t\t\t//History.debug('History.discardState', arguments);\r\n\t\t\t// Prepare\r\n\t\t\tvar discardedStateHash = History.getHashByState(discardedState),\r\n\t\t\t\tdiscardObject;\r\n\r\n\t\t\t// Create Discard Object\r\n\t\t\tdiscardObject = {\r\n\t\t\t\t'discardedState': discardedState,\r\n\t\t\t\t'backState': backState,\r\n\t\t\t\t'forwardState': forwardState\r\n\t\t\t};\r\n\r\n\t\t\t// Add to DiscardedStates\r\n\t\t\tHistory.discardedStates[discardedStateHash] = discardObject;\r\n\r\n\t\t\t// Return true\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.discardHash(hash)\r\n\t\t * Discards the hash by ignoring it through History\r\n\t\t * @param {string} hash\r\n\t\t * @return {true}\r\n\t\t */\r\n\t\tHistory.discardHash = function(discardedHash,forwardState,backState){\r\n\t\t\t//History.debug('History.discardState', arguments);\r\n\t\t\t// Create Discard Object\r\n\t\t\tvar discardObject = {\r\n\t\t\t\t'discardedHash': discardedHash,\r\n\t\t\t\t'backState': backState,\r\n\t\t\t\t'forwardState': forwardState\r\n\t\t\t};\r\n\r\n\t\t\t// Add to discardedHash\r\n\t\t\tHistory.discardedHashes[discardedHash] = discardObject;\r\n\r\n\t\t\t// Return true\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.discardedState(State)\r\n\t\t * Checks to see if the state is discarded\r\n\t\t * @param {object} State\r\n\t\t * @return {bool}\r\n\t\t */\r\n\t\tHistory.discardedState = function(State){\r\n\t\t\t// Prepare\r\n\t\t\tvar StateHash = History.getHashByState(State),\r\n\t\t\t\tdiscarded;\r\n\r\n\t\t\t// Check\r\n\t\t\tdiscarded = History.discardedStates[StateHash]||false;\r\n\r\n\t\t\t// Return true\r\n\t\t\treturn discarded;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.discardedHash(hash)\r\n\t\t * Checks to see if the state is discarded\r\n\t\t * @param {string} State\r\n\t\t * @return {bool}\r\n\t\t */\r\n\t\tHistory.discardedHash = function(hash){\r\n\t\t\t// Check\r\n\t\t\tvar discarded = History.discardedHashes[hash]||false;\r\n\r\n\t\t\t// Return true\r\n\t\t\treturn discarded;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.recycleState(State)\r\n\t\t * Allows a discarded state to be used again\r\n\t\t * @param {object} data\r\n\t\t * @param {string} title\r\n\t\t * @param {string} url\r\n\t\t * @return {true}\r\n\t\t */\r\n\t\tHistory.recycleState = function(State){\r\n\t\t\t//History.debug('History.recycleState', arguments);\r\n\t\t\t// Prepare\r\n\t\t\tvar StateHash = History.getHashByState(State);\r\n\r\n\t\t\t// Remove from DiscardedStates\r\n\t\t\tif ( History.discardedState(State) ) {\r\n\t\t\t\tdelete History.discardedStates[StateHash];\r\n\t\t\t}\r\n\r\n\t\t\t// Return true\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// HTML4 HashChange Support\r\n\r\n\t\tif ( History.emulated.hashChange ) {\r\n\t\t\t/*\r\n\t\t\t * We must emulate the HTML4 HashChange Support by manually checking for hash changes\r\n\t\t\t */\r\n\r\n\t\t\t/**\r\n\t\t\t * History.hashChangeInit()\r\n\t\t\t * Init the HashChange Emulation\r\n\t\t\t */\r\n\t\t\tHistory.hashChangeInit = function(){\r\n\t\t\t\t// Define our Checker Function\r\n\t\t\t\tHistory.checkerFunction = null;\r\n\r\n\t\t\t\t// Define some variables that will help in our checker function\r\n\t\t\t\tvar lastDocumentHash = '',\r\n\t\t\t\t\tiframeId, iframe,\r\n\t\t\t\t\tlastIframeHash, checkerRunning,\r\n\t\t\t\t\tstartedWithHash = Boolean(History.getHash());\r\n\r\n\t\t\t\t// Handle depending on the browser\r\n\t\t\t\tif ( History.isInternetExplorer() ) {\r\n\t\t\t\t\t// IE6 and IE7\r\n\t\t\t\t\t// We need to use an iframe to emulate the back and forward buttons\r\n\r\n\t\t\t\t\t// Create iFrame\r\n\t\t\t\t\tiframeId = 'historyjs-iframe';\r\n\t\t\t\t\tiframe = document.createElement('iframe');\r\n\r\n\t\t\t\t\t// Adjust iFarme\r\n\t\t\t\t\t// IE 6 requires iframe to have a src on HTTPS pages, otherwise it will throw a\r\n\t\t\t\t\t// \"This page contains both secure and nonsecure items\" warning.\r\n\t\t\t\t\tiframe.setAttribute('id', iframeId);\r\n\t\t\t\t\tiframe.setAttribute('src', '#');\r\n\t\t\t\t\tiframe.style.display = 'none';\r\n\r\n\t\t\t\t\t// Append iFrame\r\n\t\t\t\t\tdocument.body.appendChild(iframe);\r\n\r\n\t\t\t\t\t// Create initial history entry\r\n\t\t\t\t\tiframe.contentWindow.document.open();\r\n\t\t\t\t\tiframe.contentWindow.document.close();\r\n\r\n\t\t\t\t\t// Define some variables that will help in our checker function\r\n\t\t\t\t\tlastIframeHash = '';\r\n\t\t\t\t\tcheckerRunning = false;\r\n\r\n\t\t\t\t\t// Define the checker function\r\n\t\t\t\t\tHistory.checkerFunction = function(){\r\n\t\t\t\t\t\t// Check Running\r\n\t\t\t\t\t\tif ( checkerRunning ) {\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Update Running\r\n\t\t\t\t\t\tcheckerRunning = true;\r\n\r\n\t\t\t\t\t\t// Fetch\r\n\t\t\t\t\t\tvar\r\n\t\t\t\t\t\t\tdocumentHash = History.getHash(),\r\n\t\t\t\t\t\t\tiframeHash = History.getHash(iframe.contentWindow.document);\r\n\r\n\t\t\t\t\t\t// The Document Hash has changed (application caused)\r\n\t\t\t\t\t\tif ( documentHash !== lastDocumentHash ) {\r\n\t\t\t\t\t\t\t// Equalise\r\n\t\t\t\t\t\t\tlastDocumentHash = documentHash;\r\n\r\n\t\t\t\t\t\t\t// Create a history entry in the iframe\r\n\t\t\t\t\t\t\tif ( iframeHash !== documentHash ) {\r\n\t\t\t\t\t\t\t\t//History.debug('hashchange.checker: iframe hash change', 'documentHash (new):', documentHash, 'iframeHash (old):', iframeHash);\r\n\r\n\t\t\t\t\t\t\t\t// Equalise\r\n\t\t\t\t\t\t\t\tlastIframeHash = iframeHash = documentHash;\r\n\r\n\t\t\t\t\t\t\t\t// Create History Entry\r\n\t\t\t\t\t\t\t\tiframe.contentWindow.document.open();\r\n\t\t\t\t\t\t\t\tiframe.contentWindow.document.close();\r\n\r\n\t\t\t\t\t\t\t\t// Update the iframe's hash\r\n\t\t\t\t\t\t\t\tiframe.contentWindow.document.location.hash = History.escapeHash(documentHash);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Trigger Hashchange Event\r\n\t\t\t\t\t\t\tHistory.Adapter.trigger(window,'hashchange');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// The iFrame Hash has changed (back button caused)\r\n\t\t\t\t\t\telse if ( iframeHash !== lastIframeHash ) {\r\n\t\t\t\t\t\t\t//History.debug('hashchange.checker: iframe hash out of sync', 'iframeHash (new):', iframeHash, 'documentHash (old):', documentHash);\r\n\r\n\t\t\t\t\t\t\t// Equalise\r\n\t\t\t\t\t\t\tlastIframeHash = iframeHash;\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t// If there is no iframe hash that means we're at the original\r\n\t\t\t\t\t\t\t// iframe state.\r\n\t\t\t\t\t\t\t// And if there was a hash on the original request, the original\r\n\t\t\t\t\t\t\t// iframe state was replaced instantly, so skip this state and take\r\n\t\t\t\t\t\t\t// the user back to where they came from.\r\n\t\t\t\t\t\t\tif (startedWithHash && iframeHash === '') {\r\n\t\t\t\t\t\t\t\tHistory.back();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t// Update the Hash\r\n\t\t\t\t\t\t\t\tHistory.setHash(iframeHash,false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Reset Running\r\n\t\t\t\t\t\tcheckerRunning = false;\r\n\r\n\t\t\t\t\t\t// Return true\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// We are not IE\r\n\t\t\t\t\t// Firefox 1 or 2, Opera\r\n\r\n\t\t\t\t\t// Define the checker function\r\n\t\t\t\t\tHistory.checkerFunction = function(){\r\n\t\t\t\t\t\t// Prepare\r\n\t\t\t\t\t\tvar documentHash = History.getHash()||'';\r\n\r\n\t\t\t\t\t\t// The Document Hash has changed (application caused)\r\n\t\t\t\t\t\tif ( documentHash !== lastDocumentHash ) {\r\n\t\t\t\t\t\t\t// Equalise\r\n\t\t\t\t\t\t\tlastDocumentHash = documentHash;\r\n\r\n\t\t\t\t\t\t\t// Trigger Hashchange Event\r\n\t\t\t\t\t\t\tHistory.Adapter.trigger(window,'hashchange');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Return true\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Apply the checker function\r\n\t\t\t\tHistory.intervalList.push(setInterval(History.checkerFunction, History.options.hashChangeInterval));\r\n\r\n\t\t\t\t// Done\r\n\t\t\t\treturn true;\r\n\t\t\t}; // History.hashChangeInit\r\n\r\n\t\t\t// Bind hashChangeInit\r\n\t\t\tHistory.Adapter.onDomLoad(History.hashChangeInit);\r\n\r\n\t\t} // History.emulated.hashChange\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// HTML5 State Support\r\n\r\n\t\t// Non-Native pushState Implementation\r\n\t\tif ( History.emulated.pushState ) {\r\n\t\t\t/*\r\n\t\t\t * We must emulate the HTML5 State Management by using HTML4 HashChange\r\n\t\t\t */\r\n\r\n\t\t\t/**\r\n\t\t\t * History.onHashChange(event)\r\n\t\t\t * Trigger HTML5's window.onpopstate via HTML4 HashChange Support\r\n\t\t\t */\r\n\t\t\tHistory.onHashChange = function(event){\r\n\t\t\t\t//History.debug('History.onHashChange', arguments);\r\n\r\n\t\t\t\t// Prepare\r\n\t\t\t\tvar currentUrl = ((event && event.newURL) || History.getLocationHref()),\r\n\t\t\t\t\tcurrentHash = History.getHashByUrl(currentUrl),\r\n\t\t\t\t\tcurrentState = null,\r\n\t\t\t\t\tcurrentStateHash = null,\r\n\t\t\t\t\tcurrentStateHashExits = null,\r\n\t\t\t\t\tdiscardObject;\r\n\r\n\t\t\t\t// Check if we are the same state\r\n\t\t\t\tif ( History.isLastHash(currentHash) ) {\r\n\t\t\t\t\t// There has been no change (just the page's hash has finally propagated)\r\n\t\t\t\t\t//History.debug('History.onHashChange: no change');\r\n\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Reset the double check\r\n\t\t\t\tHistory.doubleCheckComplete();\r\n\r\n\t\t\t\t// Store our location for use in detecting back/forward direction\r\n\t\t\t\tHistory.saveHash(currentHash);\r\n\r\n\t\t\t\t// Expand Hash\r\n\t\t\t\tif ( currentHash && History.isTraditionalAnchor(currentHash) ) {\r\n\t\t\t\t\t//History.debug('History.onHashChange: traditional anchor', currentHash);\r\n\t\t\t\t\t// Traditional Anchor Hash\r\n\t\t\t\t\tHistory.Adapter.trigger(window,'anchorchange');\r\n\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Create State\r\n\t\t\t\tcurrentState = History.extractState(History.getFullUrl(currentHash||History.getLocationHref()),true);\r\n\r\n\t\t\t\t// Check if we are the same state\r\n\t\t\t\tif ( History.isLastSavedState(currentState) ) {\r\n\t\t\t\t\t//History.debug('History.onHashChange: no change');\r\n\t\t\t\t\t// There has been no change (just the page's hash has finally propagated)\r\n\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Create the state Hash\r\n\t\t\t\tcurrentStateHash = History.getHashByState(currentState);\r\n\r\n\t\t\t\t// Check if we are DiscardedState\r\n\t\t\t\tdiscardObject = History.discardedState(currentState);\r\n\t\t\t\tif ( discardObject ) {\r\n\t\t\t\t\t// Ignore this state as it has been discarded and go back to the state before it\r\n\t\t\t\t\tif ( History.getHashByIndex(-2) === History.getHashByState(discardObject.forwardState) ) {\r\n\t\t\t\t\t\t// We are going backwards\r\n\t\t\t\t\t\t//History.debug('History.onHashChange: go backwards');\r\n\t\t\t\t\t\tHistory.back(false);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// We are going forwards\r\n\t\t\t\t\t\t//History.debug('History.onHashChange: go forwards');\r\n\t\t\t\t\t\tHistory.forward(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Push the new HTML5 State\r\n\t\t\t\t//History.debug('History.onHashChange: success hashchange');\r\n\t\t\t\tHistory.pushState(currentState.data,currentState.title,encodeURI(currentState.url),false);\r\n\r\n\t\t\t\t// End onHashChange closure\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\t\t\tHistory.Adapter.bind(window,'hashchange',History.onHashChange);\r\n\r\n\t\t\t/**\r\n\t\t\t * History.pushState(data,title,url)\r\n\t\t\t * Add a new State to the history object, become it, and trigger onpopstate\r\n\t\t\t * We have to trigger for HTML4 compatibility\r\n\t\t\t * @param {object} data\r\n\t\t\t * @param {string} title\r\n\t\t\t * @param {string} url\r\n\t\t\t * @return {true}\r\n\t\t\t */\r\n\t\t\tHistory.pushState = function(data,title,url,queue){\r\n\t\t\t\t//History.debug('History.pushState: called', arguments);\r\n\r\n\t\t\t\t// We assume that the URL passed in is URI-encoded, but this makes\r\n\t\t\t\t// sure that it's fully URI encoded; any '%'s that are encoded are\r\n\t\t\t\t// converted back into '%'s\r\n\t\t\t\turl = encodeURI(url).replace(/%25/g, \"%\");\r\n\r\n\t\t\t\t// Check the State\r\n\t\t\t\tif ( History.getHashByUrl(url) ) {\r\n\t\t\t\t\tthrow new Error('History.js does not support states with fragment-identifiers (hashes/anchors).');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Handle Queueing\r\n\t\t\t\tif ( queue !== false && History.busy() ) {\r\n\t\t\t\t\t// Wait + Push to Queue\r\n\t\t\t\t\t//History.debug('History.pushState: we must wait', arguments);\r\n\t\t\t\t\tHistory.pushQueue({\r\n\t\t\t\t\t\tscope: History,\r\n\t\t\t\t\t\tcallback: History.pushState,\r\n\t\t\t\t\t\targs: arguments,\r\n\t\t\t\t\t\tqueue: queue\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Make Busy\r\n\t\t\t\tHistory.busy(true);\r\n\r\n\t\t\t\t// Fetch the State Object\r\n\t\t\t\tvar newState = History.createStateObject(data,title,url),\r\n\t\t\t\t\tnewStateHash = History.getHashByState(newState),\r\n\t\t\t\t\toldState = History.getState(false),\r\n\t\t\t\t\toldStateHash = History.getHashByState(oldState),\r\n\t\t\t\t\thtml4Hash = History.getHash(),\r\n\t\t\t\t\twasExpected = History.expectedStateId == newState.id;\r\n\r\n\t\t\t\t// Store the newState\r\n\t\t\t\tHistory.storeState(newState);\r\n\t\t\t\tHistory.expectedStateId = newState.id;\r\n\r\n\t\t\t\t// Recycle the State\r\n\t\t\t\tHistory.recycleState(newState);\r\n\r\n\t\t\t\t// Force update of the title\r\n\t\t\t\tHistory.setTitle(newState);\r\n\r\n\t\t\t\t// Check if we are the same State\r\n\t\t\t\tif ( newStateHash === oldStateHash ) {\r\n\t\t\t\t\t//History.debug('History.pushState: no change', newStateHash);\r\n\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update HTML5 State\r\n\t\t\t\tHistory.saveState(newState);\r\n\r\n\t\t\t\t// Fire HTML5 Event\r\n\t\t\t\tif(!wasExpected)\r\n\t\t\t\t\tHistory.Adapter.trigger(window,'statechange');\r\n\r\n\t\t\t\t// Update HTML4 Hash\r\n\t\t\t\tif ( !History.isHashEqual(newStateHash, html4Hash) && !History.isHashEqual(newStateHash, History.getShortUrl(History.getLocationHref())) ) {\r\n\t\t\t\t\tHistory.setHash(newStateHash,false);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tHistory.busy(false);\r\n\r\n\t\t\t\t// End pushState closure\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\r\n\t\t\t/**\r\n\t\t\t * History.replaceState(data,title,url)\r\n\t\t\t * Replace the State and trigger onpopstate\r\n\t\t\t * We have to trigger for HTML4 compatibility\r\n\t\t\t * @param {object} data\r\n\t\t\t * @param {string} title\r\n\t\t\t * @param {string} url\r\n\t\t\t * @return {true}\r\n\t\t\t */\r\n\t\t\tHistory.replaceState = function(data,title,url,queue){\r\n\t\t\t\t//History.debug('History.replaceState: called', arguments);\r\n\r\n\t\t\t\t// We assume that the URL passed in is URI-encoded, but this makes\r\n\t\t\t\t// sure that it's fully URI encoded; any '%'s that are encoded are\r\n\t\t\t\t// converted back into '%'s\r\n\t\t\t\turl = encodeURI(url).replace(/%25/g, \"%\");\r\n\r\n\t\t\t\t// Check the State\r\n\t\t\t\tif ( History.getHashByUrl(url) ) {\r\n\t\t\t\t\tthrow new Error('History.js does not support states with fragment-identifiers (hashes/anchors).');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Handle Queueing\r\n\t\t\t\tif ( queue !== false && History.busy() ) {\r\n\t\t\t\t\t// Wait + Push to Queue\r\n\t\t\t\t\t//History.debug('History.replaceState: we must wait', arguments);\r\n\t\t\t\t\tHistory.pushQueue({\r\n\t\t\t\t\t\tscope: History,\r\n\t\t\t\t\t\tcallback: History.replaceState,\r\n\t\t\t\t\t\targs: arguments,\r\n\t\t\t\t\t\tqueue: queue\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Make Busy\r\n\t\t\t\tHistory.busy(true);\r\n\r\n\t\t\t\t// Fetch the State Objects\r\n\t\t\t\tvar newState = History.createStateObject(data,title,url),\r\n\t\t\t\t\tnewStateHash = History.getHashByState(newState),\r\n\t\t\t\t\toldState = History.getState(false),\r\n\t\t\t\t\toldStateHash = History.getHashByState(oldState),\r\n\t\t\t\t\tpreviousState = History.getStateByIndex(-2);\r\n\r\n\t\t\t\t// Discard Old State\r\n\t\t\t\tHistory.discardState(oldState,newState,previousState);\r\n\r\n\t\t\t\t// If the url hasn't changed, just store and save the state\r\n\t\t\t\t// and fire a statechange event to be consistent with the\r\n\t\t\t\t// html 5 api\r\n\t\t\t\tif ( newStateHash === oldStateHash ) {\r\n\t\t\t\t\t// Store the newState\r\n\t\t\t\t\tHistory.storeState(newState);\r\n\t\t\t\t\tHistory.expectedStateId = newState.id;\r\n\t\r\n\t\t\t\t\t// Recycle the State\r\n\t\t\t\t\tHistory.recycleState(newState);\r\n\t\r\n\t\t\t\t\t// Force update of the title\r\n\t\t\t\t\tHistory.setTitle(newState);\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Update HTML5 State\r\n\t\t\t\t\tHistory.saveState(newState);\r\n\r\n\t\t\t\t\t// Fire HTML5 Event\r\n\t\t\t\t\t//History.debug('History.pushState: trigger popstate');\r\n\t\t\t\t\tHistory.Adapter.trigger(window,'statechange');\r\n\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Alias to PushState\r\n\t\t\t\t\tHistory.pushState(newState.data,newState.title,newState.url,false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// End replaceState closure\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\r\n\t\t} // History.emulated.pushState\r\n\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Initialise\r\n\r\n\t\t// Non-Native pushState Implementation\r\n\t\tif ( History.emulated.pushState ) {\r\n\t\t\t/**\r\n\t\t\t * Ensure initial state is handled correctly\r\n\t\t\t */\r\n\t\t\tif ( History.getHash() && !History.emulated.hashChange ) {\r\n\t\t\t\tHistory.Adapter.onDomLoad(function(){\r\n\t\t\t\t\tHistory.Adapter.trigger(window,'hashchange');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t} // History.emulated.pushState\r\n\r\n\t}; // History.initHtml4\r\n\r\n\t// Try to Initialise History\r\n\tif ( typeof History.init !== 'undefined' ) {\r\n\t\tHistory.init();\r\n\t}\r\n\r\n})(window);\r\n/**\r\n * History.js Core\r\n * @author Benjamin Arthur Lupton \r\n * @copyright 2010-2011 Benjamin Arthur Lupton \r\n * @license New BSD License \r\n */\r\n\r\n(function(window,undefined){\r\n\t\"use strict\";\r\n\r\n\t// ========================================================================\r\n\t// Initialise\r\n\r\n\t// Localise Globals\r\n\tvar\r\n\t\tconsole = window.console||undefined, // Prevent a JSLint complain\r\n\t\tdocument = window.document, // Make sure we are using the correct document\r\n\t\tnavigator = window.navigator, // Make sure we are using the correct navigator\r\n\t\tsessionStorage = false, // sessionStorage\r\n\t\tsetTimeout = window.setTimeout,\r\n\t\tclearTimeout = window.clearTimeout,\r\n\t\tsetInterval = window.setInterval,\r\n\t\tclearInterval = window.clearInterval,\r\n\t\tJSON = window.JSON,\r\n\t\talert = window.alert,\r\n\t\tHistory = window.History = window.History||{}, // Public History Object\r\n\t\thistory = window.history; // Old History Object\r\n\r\n\ttry {\r\n\t\tsessionStorage = window.sessionStorage; // This will throw an exception in some browsers when cookies/localStorage are explicitly disabled (i.e. Chrome)\r\n\t\tsessionStorage.setItem('TEST', '1');\r\n\t\tsessionStorage.removeItem('TEST');\r\n\t} catch(e) {\r\n\t\tsessionStorage = false;\r\n\t}\r\n\r\n\t// MooTools Compatibility\r\n\tJSON.stringify = JSON.stringify||JSON.encode;\r\n\tJSON.parse = JSON.parse||JSON.decode;\r\n\r\n\t// Check Existence\r\n\tif ( typeof History.init !== 'undefined' ) {\r\n\t\tthrow new Error('History.js Core has already been loaded...');\r\n\t}\r\n\r\n\t// Initialise History\r\n\tHistory.init = function(options){\r\n\t\t// Check Load Status of Adapter\r\n\t\tif ( typeof History.Adapter === 'undefined' ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// Check Load Status of Core\r\n\t\tif ( typeof History.initCore !== 'undefined' ) {\r\n\t\t\tHistory.initCore();\r\n\t\t}\r\n\r\n\t\t// Check Load Status of HTML4 Support\r\n\t\tif ( typeof History.initHtml4 !== 'undefined' ) {\r\n\t\t\tHistory.initHtml4();\r\n\t\t}\r\n\r\n\t\t// Return true\r\n\t\treturn true;\r\n\t};\r\n\r\n\r\n\t// ========================================================================\r\n\t// Initialise Core\r\n\r\n\t// Initialise Core\r\n\tHistory.initCore = function(options){\r\n\t\t// Initialise\r\n\t\tif ( typeof History.initCore.initialized !== 'undefined' ) {\r\n\t\t\t// Already Loaded\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tHistory.initCore.initialized = true;\r\n\t\t}\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Options\r\n\r\n\t\t/**\r\n\t\t * History.options\r\n\t\t * Configurable options\r\n\t\t */\r\n\t\tHistory.options = History.options||{};\r\n\r\n\t\t/**\r\n\t\t * History.options.hashChangeInterval\r\n\t\t * How long should the interval be before hashchange checks\r\n\t\t */\r\n\t\tHistory.options.hashChangeInterval = History.options.hashChangeInterval || 100;\r\n\r\n\t\t/**\r\n\t\t * History.options.safariPollInterval\r\n\t\t * How long should the interval be before safari poll checks\r\n\t\t */\r\n\t\tHistory.options.safariPollInterval = History.options.safariPollInterval || 500;\r\n\r\n\t\t/**\r\n\t\t * History.options.doubleCheckInterval\r\n\t\t * How long should the interval be before we perform a double check\r\n\t\t */\r\n\t\tHistory.options.doubleCheckInterval = History.options.doubleCheckInterval || 500;\r\n\r\n\t\t/**\r\n\t\t * History.options.disableSuid\r\n\t\t * Force History not to append suid\r\n\t\t */\r\n\t\tHistory.options.disableSuid = History.options.disableSuid || false;\r\n\r\n\t\t/**\r\n\t\t * History.options.storeInterval\r\n\t\t * How long should we wait between store calls\r\n\t\t */\r\n\t\tHistory.options.storeInterval = History.options.storeInterval || 1000;\r\n\r\n\t\t/**\r\n\t\t * History.options.busyDelay\r\n\t\t * How long should we wait between busy events\r\n\t\t */\r\n\t\tHistory.options.busyDelay = History.options.busyDelay || 250;\r\n\r\n\t\t/**\r\n\t\t * History.options.debug\r\n\t\t * If true will enable debug messages to be logged\r\n\t\t */\r\n\t\tHistory.options.debug = History.options.debug || false;\r\n\r\n\t\t/**\r\n\t\t * History.options.initialTitle\r\n\t\t * What is the title of the initial state\r\n\t\t */\r\n\t\tHistory.options.initialTitle = History.options.initialTitle || document.title;\r\n\r\n\t\t/**\r\n\t\t * History.options.html4Mode\r\n\t\t * If true, will force HTMl4 mode (hashtags)\r\n\t\t */\r\n\t\tHistory.options.html4Mode = History.options.html4Mode || false;\r\n\r\n\t\t/**\r\n\t\t * History.options.delayInit\r\n\t\t * Want to override default options and call init manually.\r\n\t\t */\r\n\t\tHistory.options.delayInit = History.options.delayInit || false;\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Interval record\r\n\r\n\t\t/**\r\n\t\t * History.intervalList\r\n\t\t * List of intervals set, to be cleared when document is unloaded.\r\n\t\t */\r\n\t\tHistory.intervalList = [];\r\n\r\n\t\t/**\r\n\t\t * History.clearAllIntervals\r\n\t\t * Clears all setInterval instances.\r\n\t\t */\r\n\t\tHistory.clearAllIntervals = function(){\r\n\t\t\tvar i, il = History.intervalList;\r\n\t\t\tif (typeof il !== \"undefined\" && il !== null) {\r\n\t\t\t\tfor (i = 0; i < il.length; i++) {\r\n\t\t\t\t\tclearInterval(il[i]);\r\n\t\t\t\t}\r\n\t\t\t\tHistory.intervalList = null;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Debug\r\n\r\n\t\t/**\r\n\t\t * History.debug(message,...)\r\n\t\t * Logs the passed arguments if debug enabled\r\n\t\t */\r\n\t\tHistory.debug = function(){\r\n\t\t\tif ( (History.options.debug||false) ) {\r\n\t\t\t\tHistory.log.apply(History,arguments);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.log(message,...)\r\n\t\t * Logs the passed arguments\r\n\t\t */\r\n\t\tHistory.log = function(){\r\n\t\t\t// Prepare\r\n\t\t\tvar\r\n\t\t\t\tconsoleExists = !(typeof console === 'undefined' || typeof console.log === 'undefined' || typeof console.log.apply === 'undefined'),\r\n\t\t\t\ttextarea = document.getElementById('log'),\r\n\t\t\t\tmessage,\r\n\t\t\t\ti,n,\r\n\t\t\t\targs,arg\r\n\t\t\t\t;\r\n\r\n\t\t\t// Write to Console\r\n\t\t\tif ( consoleExists ) {\r\n\t\t\t\targs = Array.prototype.slice.call(arguments);\r\n\t\t\t\tmessage = args.shift();\r\n\t\t\t\tif ( typeof console.debug !== 'undefined' ) {\r\n\t\t\t\t\tconsole.debug.apply(console,[message,args]);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tconsole.log.apply(console,[message,args]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tmessage = (\"\\n\"+arguments[0]+\"\\n\");\r\n\t\t\t}\r\n\r\n\t\t\t// Write to log\r\n\t\t\tfor ( i=1,n=arguments.length; i\r\n\t\t * @author James Padolsey \r\n\t\t */\r\n\t\tHistory.getInternetExplorerMajorVersion = function(){\r\n\t\t\tvar result = History.getInternetExplorerMajorVersion.cached =\r\n\t\t\t\t\t(typeof History.getInternetExplorerMajorVersion.cached !== 'undefined')\r\n\t\t\t\t?\tHistory.getInternetExplorerMajorVersion.cached\r\n\t\t\t\t:\t(function(){\r\n\t\t\t\t\t\tvar v = 3,\r\n\t\t\t\t\t\t\t\tdiv = document.createElement('div'),\r\n\t\t\t\t\t\t\t\tall = div.getElementsByTagName('i');\r\n\t\t\t\t\t\twhile ( (div.innerHTML = '') && all[0] ) {}\r\n\t\t\t\t\t\treturn (v > 4) ? v : false;\r\n\t\t\t\t\t})()\r\n\t\t\t\t;\r\n\t\t\treturn result;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.isInternetExplorer()\r\n\t\t * Are we using Internet Explorer?\r\n\t\t * @return {boolean}\r\n\t\t * @license Public Domain\r\n\t\t * @author Benjamin Arthur Lupton \r\n\t\t */\r\n\t\tHistory.isInternetExplorer = function(){\r\n\t\t\tvar result =\r\n\t\t\t\tHistory.isInternetExplorer.cached =\r\n\t\t\t\t(typeof History.isInternetExplorer.cached !== 'undefined')\r\n\t\t\t\t\t?\tHistory.isInternetExplorer.cached\r\n\t\t\t\t\t:\tBoolean(History.getInternetExplorerMajorVersion())\r\n\t\t\t\t;\r\n\t\t\treturn result;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.emulated\r\n\t\t * Which features require emulating?\r\n\t\t */\r\n\r\n\t\tif (History.options.html4Mode) {\r\n\t\t\tHistory.emulated = {\r\n\t\t\t\tpushState : true,\r\n\t\t\t\thashChange: true\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\telse {\r\n\r\n\t\t\tHistory.emulated = {\r\n\t\t\t\tpushState: !Boolean(\r\n\t\t\t\t\twindow.history && window.history.pushState && window.history.replaceState\r\n\t\t\t\t\t&& !(\r\n\t\t\t\t\t\t(/ Mobile\\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent) /* disable for versions of iOS before version 4.3 (8F190) */\r\n\t\t\t\t\t\t|| (/AppleWebKit\\/5([0-2]|3[0-2])/i).test(navigator.userAgent) /* disable for the mercury iOS browser, or at least older versions of the webkit engine */\r\n\t\t\t\t\t)\r\n\t\t\t\t),\r\n\t\t\t\thashChange: Boolean(\r\n\t\t\t\t\t!(('onhashchange' in window) || ('onhashchange' in document))\r\n\t\t\t\t\t||\r\n\t\t\t\t\t(History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 8)\r\n\t\t\t\t)\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * History.enabled\r\n\t\t * Is History enabled?\r\n\t\t */\r\n\t\tHistory.enabled = !History.emulated.pushState;\r\n\r\n\t\t/**\r\n\t\t * History.bugs\r\n\t\t * Which bugs are present\r\n\t\t */\r\n\t\tHistory.bugs = {\r\n\t\t\t/**\r\n\t\t\t * Safari 5 and Safari iOS 4 fail to return to the correct state once a hash is replaced by a `replaceState` call\r\n\t\t\t * https://bugs.webkit.org/show_bug.cgi?id=56249\r\n\t\t\t */\r\n\t\t\tsetHash: Boolean(!History.emulated.pushState && navigator.vendor === 'Apple Computer, Inc.' && /AppleWebKit\\/5([0-2]|3[0-3])/.test(navigator.userAgent)),\r\n\r\n\t\t\t/**\r\n\t\t\t * Safari 5 and Safari iOS 4 sometimes fail to apply the state change under busy conditions\r\n\t\t\t * https://bugs.webkit.org/show_bug.cgi?id=42940\r\n\t\t\t */\r\n\t\t\tsafariPoll: Boolean(!History.emulated.pushState && navigator.vendor === 'Apple Computer, Inc.' && /AppleWebKit\\/5([0-2]|3[0-3])/.test(navigator.userAgent)),\r\n\r\n\t\t\t/**\r\n\t\t\t * MSIE 6 and 7 sometimes do not apply a hash even it was told to (requiring a second call to the apply function)\r\n\t\t\t */\r\n\t\t\tieDoubleCheck: Boolean(History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 8),\r\n\r\n\t\t\t/**\r\n\t\t\t * MSIE 6 requires the entire hash to be encoded for the hashes to trigger the onHashChange event\r\n\t\t\t */\r\n\t\t\thashEscape: Boolean(History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 7)\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.isEmptyObject(obj)\r\n\t\t * Checks to see if the Object is Empty\r\n\t\t * @param {Object} obj\r\n\t\t * @return {boolean}\r\n\t\t */\r\n\t\tHistory.isEmptyObject = function(obj) {\r\n\t\t\tfor ( var name in obj ) {\r\n\t\t\t\tif ( obj.hasOwnProperty(name) ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.cloneObject(obj)\r\n\t\t * Clones a object and eliminate all references to the original contexts\r\n\t\t * @param {Object} obj\r\n\t\t * @return {Object}\r\n\t\t */\r\n\t\tHistory.cloneObject = function(obj) {\r\n\t\t\tvar hash,newObj;\r\n\t\t\tif ( obj ) {\r\n\t\t\t\thash = JSON.stringify(obj);\r\n\t\t\t\tnewObj = JSON.parse(hash);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tnewObj = {};\r\n\t\t\t}\r\n\t\t\treturn newObj;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// URL Helpers\r\n\r\n\t\t/**\r\n\t\t * History.getRootUrl()\r\n\t\t * Turns \"http://mysite.com/dir/page.html?asd\" into \"http://mysite.com\"\r\n\t\t * @return {String} rootUrl\r\n\t\t */\r\n\t\tHistory.getRootUrl = function(){\r\n\t\t\t// Create\r\n\t\t\tvar rootUrl = document.location.protocol+'//'+(document.location.hostname||document.location.host);\r\n\t\t\tif ( document.location.port||false ) {\r\n\t\t\t\trootUrl += ':'+document.location.port;\r\n\t\t\t}\r\n\t\t\trootUrl += '/';\r\n\r\n\t\t\t// Return\r\n\t\t\treturn rootUrl;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getBaseHref()\r\n\t\t * Fetches the `href` attribute of the `` element if it exists\r\n\t\t * @return {String} baseHref\r\n\t\t */\r\n\t\tHistory.getBaseHref = function(){\r\n\t\t\t// Create\r\n\t\t\tvar\r\n\t\t\t\tbaseElements = document.getElementsByTagName('base'),\r\n\t\t\t\tbaseElement = null,\r\n\t\t\t\tbaseHref = '';\r\n\r\n\t\t\t// Test for Base Element\r\n\t\t\tif ( baseElements.length === 1 ) {\r\n\t\t\t\t// Prepare for Base Element\r\n\t\t\t\tbaseElement = baseElements[0];\r\n\t\t\t\tbaseHref = baseElement.href.replace(/[^\\/]+$/,'');\r\n\t\t\t}\r\n\r\n\t\t\t// Adjust trailing slash\r\n\t\t\tbaseHref = baseHref.replace(/\\/+$/,'');\r\n\t\t\tif ( baseHref ) baseHref += '/';\r\n\r\n\t\t\t// Return\r\n\t\t\treturn baseHref;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getBaseUrl()\r\n\t\t * Fetches the baseHref or basePageUrl or rootUrl (whichever one exists first)\r\n\t\t * @return {String} baseUrl\r\n\t\t */\r\n\t\tHistory.getBaseUrl = function(){\r\n\t\t\t// Create\r\n\t\t\tvar baseUrl = History.getBaseHref()||History.getBasePageUrl()||History.getRootUrl();\r\n\r\n\t\t\t// Return\r\n\t\t\treturn baseUrl;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getPageUrl()\r\n\t\t * Fetches the URL of the current page\r\n\t\t * @return {String} pageUrl\r\n\t\t */\r\n\t\tHistory.getPageUrl = function(){\r\n\t\t\t// Fetch\r\n\t\t\tvar\r\n\t\t\t\tState = History.getState(false,false),\r\n\t\t\t\tstateUrl = (State||{}).url||History.getLocationHref(),\r\n\t\t\t\tpageUrl;\r\n\r\n\t\t\t// Create\r\n\t\t\tpageUrl = stateUrl.replace(/\\/+$/,'').replace(/[^\\/]+$/,function(part,index,string){\r\n\t\t\t\treturn (/\\./).test(part) ? part : part+'/';\r\n\t\t\t});\r\n\r\n\t\t\t// Return\r\n\t\t\treturn pageUrl;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getBasePageUrl()\r\n\t\t * Fetches the Url of the directory of the current page\r\n\t\t * @return {String} basePageUrl\r\n\t\t */\r\n\t\tHistory.getBasePageUrl = function(){\r\n\t\t\t// Create\r\n\t\t\tvar basePageUrl = (History.getLocationHref()).replace(/[#\\?].*/,'').replace(/[^\\/]+$/,function(part,index,string){\r\n\t\t\t\treturn (/[^\\/]$/).test(part) ? '' : part;\r\n\t\t\t}).replace(/\\/+$/,'')+'/';\r\n\r\n\t\t\t// Return\r\n\t\t\treturn basePageUrl;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getFullUrl(url)\r\n\t\t * Ensures that we have an absolute URL and not a relative URL\r\n\t\t * @param {string} url\r\n\t\t * @param {Boolean} allowBaseHref\r\n\t\t * @return {string} fullUrl\r\n\t\t */\r\n\t\tHistory.getFullUrl = function(url,allowBaseHref){\r\n\t\t\t// Prepare\r\n\t\t\tvar fullUrl = url, firstChar = url.substring(0,1);\r\n\t\t\tallowBaseHref = (typeof allowBaseHref === 'undefined') ? true : allowBaseHref;\r\n\r\n\t\t\t// Check\r\n\t\t\tif ( /[a-z]+\\:\\/\\//.test(url) ) {\r\n\t\t\t\t// Full URL\r\n\t\t\t}\r\n\t\t\telse if ( firstChar === '/' ) {\r\n\t\t\t\t// Root URL\r\n\t\t\t\tfullUrl = History.getRootUrl()+url.replace(/^\\/+/,'');\r\n\t\t\t}\r\n\t\t\telse if ( firstChar === '#' ) {\r\n\t\t\t\t// Anchor URL\r\n\t\t\t\tfullUrl = History.getPageUrl().replace(/#.*/,'')+url;\r\n\t\t\t}\r\n\t\t\telse if ( firstChar === '?' ) {\r\n\t\t\t\t// Query URL\r\n\t\t\t\tfullUrl = History.getPageUrl().replace(/[\\?#].*/,'')+url;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Relative URL\r\n\t\t\t\tif ( allowBaseHref ) {\r\n\t\t\t\t\tfullUrl = History.getBaseUrl()+url.replace(/^(\\.\\/)+/,'');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfullUrl = History.getBasePageUrl()+url.replace(/^(\\.\\/)+/,'');\r\n\t\t\t\t}\r\n\t\t\t\t// We have an if condition above as we do not want hashes\r\n\t\t\t\t// which are relative to the baseHref in our URLs\r\n\t\t\t\t// as if the baseHref changes, then all our bookmarks\r\n\t\t\t\t// would now point to different locations\r\n\t\t\t\t// whereas the basePageUrl will always stay the same\r\n\t\t\t}\r\n\r\n\t\t\t// Return\r\n\t\t\treturn fullUrl.replace(/\\#$/,'');\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getShortUrl(url)\r\n\t\t * Ensures that we have a relative URL and not a absolute URL\r\n\t\t * @param {string} url\r\n\t\t * @return {string} url\r\n\t\t */\r\n\t\tHistory.getShortUrl = function(url){\r\n\t\t\t// Prepare\r\n\t\t\tvar shortUrl = url, baseUrl = History.getBaseUrl(), rootUrl = History.getRootUrl();\r\n\r\n\t\t\t// Trim baseUrl\r\n\t\t\tif ( History.emulated.pushState ) {\r\n\t\t\t\t// We are in a if statement as when pushState is not emulated\r\n\t\t\t\t// The actual url these short urls are relative to can change\r\n\t\t\t\t// So within the same session, we the url may end up somewhere different\r\n\t\t\t\tshortUrl = shortUrl.replace(baseUrl,'');\r\n\t\t\t}\r\n\r\n\t\t\t// Trim rootUrl\r\n\t\t\tshortUrl = shortUrl.replace(rootUrl,'/');\r\n\r\n\t\t\t// Ensure we can still detect it as a state\r\n\t\t\tif ( History.isTraditionalAnchor(shortUrl) ) {\r\n\t\t\t\tshortUrl = './'+shortUrl;\r\n\t\t\t}\r\n\r\n\t\t\t// Clean It\r\n\t\t\tshortUrl = shortUrl.replace(/^(\\.\\/)+/g,'./').replace(/\\#$/,'');\r\n\r\n\t\t\t// Return\r\n\t\t\treturn shortUrl;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getLocationHref(document)\r\n\t\t * Returns a normalized version of document.location.href\r\n\t\t * accounting for browser inconsistencies, etc.\r\n\t\t *\r\n\t\t * This URL will be URI-encoded and will include the hash\r\n\t\t *\r\n\t\t * @param {object} document\r\n\t\t * @return {string} url\r\n\t\t */\r\n\t\tHistory.getLocationHref = function(doc) {\r\n\t\t\tdoc = doc || document;\r\n\r\n\t\t\t// most of the time, this will be true\r\n\t\t\tif (doc.URL === doc.location.href)\r\n\t\t\t\treturn doc.location.href;\r\n\r\n\t\t\t// some versions of webkit URI-decode document.location.href\r\n\t\t\t// but they leave document.URL in an encoded state\r\n\t\t\tif (doc.location.href === decodeURIComponent(doc.URL))\r\n\t\t\t\treturn doc.URL;\r\n\r\n\t\t\t// FF 3.6 only updates document.URL when a page is reloaded\r\n\t\t\t// document.location.href is updated correctly\r\n\t\t\tif (doc.location.hash && decodeURIComponent(doc.location.href.replace(/^[^#]+/, \"\")) === doc.location.hash)\r\n\t\t\t\treturn doc.location.href;\r\n\r\n\t\t\tif (doc.URL.indexOf('#') == -1 && doc.location.href.indexOf('#') != -1)\r\n\t\t\t\treturn doc.location.href;\r\n\t\t\t\r\n\t\t\treturn doc.URL || doc.location.href;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// State Storage\r\n\r\n\t\t/**\r\n\t\t * History.store\r\n\t\t * The store for all session specific data\r\n\t\t */\r\n\t\tHistory.store = {};\r\n\r\n\t\t/**\r\n\t\t * History.idToState\r\n\t\t * 1-1: State ID to State Object\r\n\t\t */\r\n\t\tHistory.idToState = History.idToState||{};\r\n\r\n\t\t/**\r\n\t\t * History.stateToId\r\n\t\t * 1-1: State String to State ID\r\n\t\t */\r\n\t\tHistory.stateToId = History.stateToId||{};\r\n\r\n\t\t/**\r\n\t\t * History.urlToId\r\n\t\t * 1-1: State URL to State ID\r\n\t\t */\r\n\t\tHistory.urlToId = History.urlToId||{};\r\n\r\n\t\t/**\r\n\t\t * History.storedStates\r\n\t\t * Store the states in an array\r\n\t\t */\r\n\t\tHistory.storedStates = History.storedStates||[];\r\n\r\n\t\t/**\r\n\t\t * History.savedStates\r\n\t\t * Saved the states in an array\r\n\t\t */\r\n\t\tHistory.savedStates = History.savedStates||[];\r\n\r\n\t\t/**\r\n\t\t * History.noramlizeStore()\r\n\t\t * Noramlize the store by adding necessary values\r\n\t\t */\r\n\t\tHistory.normalizeStore = function(){\r\n\t\t\tHistory.store.idToState = History.store.idToState||{};\r\n\t\t\tHistory.store.urlToId = History.store.urlToId||{};\r\n\t\t\tHistory.store.stateToId = History.store.stateToId||{};\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getState()\r\n\t\t * Get an object containing the data, title and url of the current state\r\n\t\t * @param {Boolean} friendly\r\n\t\t * @param {Boolean} create\r\n\t\t * @return {Object} State\r\n\t\t */\r\n\t\tHistory.getState = function(friendly,create){\r\n\t\t\t// Prepare\r\n\t\t\tif ( typeof friendly === 'undefined' ) { friendly = true; }\r\n\t\t\tif ( typeof create === 'undefined' ) { create = true; }\r\n\r\n\t\t\t// Fetch\r\n\t\t\tvar State = History.getLastSavedState();\r\n\r\n\t\t\t// Create\r\n\t\t\tif ( !State && create ) {\r\n\t\t\t\tState = History.createStateObject();\r\n\t\t\t}\r\n\r\n\t\t\t// Adjust\r\n\t\t\tif ( friendly ) {\r\n\t\t\t\tState = History.cloneObject(State);\r\n\t\t\t\tState.url = State.cleanUrl||State.url;\r\n\t\t\t}\r\n\r\n\t\t\t// Return\r\n\t\t\treturn State;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getIdByState(State)\r\n\t\t * Gets a ID for a State\r\n\t\t * @param {State} newState\r\n\t\t * @return {String} id\r\n\t\t */\r\n\t\tHistory.getIdByState = function(newState){\r\n\r\n\t\t\t// Fetch ID\r\n\t\t\tvar id = History.extractId(newState.url),\r\n\t\t\t\tstr;\r\n\r\n\t\t\tif ( !id ) {\r\n\t\t\t\t// Find ID via State String\r\n\t\t\t\tstr = History.getStateString(newState);\r\n\t\t\t\tif ( typeof History.stateToId[str] !== 'undefined' ) {\r\n\t\t\t\t\tid = History.stateToId[str];\r\n\t\t\t\t}\r\n\t\t\t\telse if ( typeof History.store.stateToId[str] !== 'undefined' ) {\r\n\t\t\t\t\tid = History.store.stateToId[str];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Generate a new ID\r\n\t\t\t\t\twhile ( true ) {\r\n\t\t\t\t\t\tid = (new Date()).getTime() + String(Math.random()).replace(/\\D/g,'');\r\n\t\t\t\t\t\tif ( typeof History.idToState[id] === 'undefined' && typeof History.store.idToState[id] === 'undefined' ) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Apply the new State to the ID\r\n\t\t\t\t\tHistory.stateToId[str] = id;\r\n\t\t\t\t\tHistory.idToState[id] = newState;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Return ID\r\n\t\t\treturn id;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.normalizeState(State)\r\n\t\t * Expands a State Object\r\n\t\t * @param {object} State\r\n\t\t * @return {object}\r\n\t\t */\r\n\t\tHistory.normalizeState = function(oldState){\r\n\t\t\t// Variables\r\n\t\t\tvar newState, dataNotEmpty;\r\n\r\n\t\t\t// Prepare\r\n\t\t\tif ( !oldState || (typeof oldState !== 'object') ) {\r\n\t\t\t\toldState = {};\r\n\t\t\t}\r\n\r\n\t\t\t// Check\r\n\t\t\tif ( typeof oldState.normalized !== 'undefined' ) {\r\n\t\t\t\treturn oldState;\r\n\t\t\t}\r\n\r\n\t\t\t// Adjust\r\n\t\t\tif ( !oldState.data || (typeof oldState.data !== 'object') ) {\r\n\t\t\t\toldState.data = {};\r\n\t\t\t}\r\n\r\n\t\t\t// ----------------------------------------------------------------\r\n\r\n\t\t\t// Create\r\n\t\t\tnewState = {};\r\n\t\t\tnewState.normalized = true;\r\n\t\t\tnewState.title = oldState.title||'';\r\n\t\t\tnewState.url = History.getFullUrl(oldState.url?oldState.url:(History.getLocationHref()));\r\n\t\t\tnewState.hash = History.getShortUrl(newState.url);\r\n\t\t\tnewState.data = History.cloneObject(oldState.data);\r\n\r\n\t\t\t// Fetch ID\r\n\t\t\tnewState.id = History.getIdByState(newState);\r\n\r\n\t\t\t// ----------------------------------------------------------------\r\n\r\n\t\t\t// Clean the URL\r\n\t\t\tnewState.cleanUrl = newState.url.replace(/\\??\\&_suid.*/,'');\r\n\t\t\tnewState.url = newState.cleanUrl;\r\n\r\n\t\t\t// Check to see if we have more than just a url\r\n\t\t\tdataNotEmpty = !History.isEmptyObject(newState.data);\r\n\r\n\t\t\t// Apply\r\n\t\t\tif ( (newState.title || dataNotEmpty) && History.options.disableSuid !== true ) {\r\n\t\t\t\t// Add ID to Hash\r\n\t\t\t\tnewState.hash = History.getShortUrl(newState.url).replace(/\\??\\&_suid.*/,'');\r\n\t\t\t\tif ( !/\\?/.test(newState.hash) ) {\r\n\t\t\t\t\tnewState.hash += '?';\r\n\t\t\t\t}\r\n\t\t\t\tnewState.hash += '&_suid='+newState.id;\r\n\t\t\t}\r\n\r\n\t\t\t// Create the Hashed URL\r\n\t\t\tnewState.hashedUrl = History.getFullUrl(newState.hash);\r\n\r\n\t\t\t// ----------------------------------------------------------------\r\n\r\n\t\t\t// Update the URL if we have a duplicate\r\n\t\t\tif ( (History.emulated.pushState || History.bugs.safariPoll) && History.hasUrlDuplicate(newState) ) {\r\n\t\t\t\tnewState.url = newState.hashedUrl;\r\n\t\t\t}\r\n\r\n\t\t\t// ----------------------------------------------------------------\r\n\r\n\t\t\t// Return\r\n\t\t\treturn newState;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.createStateObject(data,title,url)\r\n\t\t * Creates a object based on the data, title and url state params\r\n\t\t * @param {object} data\r\n\t\t * @param {string} title\r\n\t\t * @param {string} url\r\n\t\t * @return {object}\r\n\t\t */\r\n\t\tHistory.createStateObject = function(data,title,url){\r\n\t\t\t// Hashify\r\n\t\t\tvar State = {\r\n\t\t\t\t'data': data,\r\n\t\t\t\t'title': title,\r\n\t\t\t\t'url': url\r\n\t\t\t};\r\n\r\n\t\t\t// Expand the State\r\n\t\t\tState = History.normalizeState(State);\r\n\r\n\t\t\t// Return object\r\n\t\t\treturn State;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getStateById(id)\r\n\t\t * Get a state by it's UID\r\n\t\t * @param {String} id\r\n\t\t */\r\n\t\tHistory.getStateById = function(id){\r\n\t\t\t// Prepare\r\n\t\t\tid = String(id);\r\n\r\n\t\t\t// Retrieve\r\n\t\t\tvar State = History.idToState[id] || History.store.idToState[id] || undefined;\r\n\r\n\t\t\t// Return State\r\n\t\t\treturn State;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Get a State's String\r\n\t\t * @param {State} passedState\r\n\t\t */\r\n\t\tHistory.getStateString = function(passedState){\r\n\t\t\t// Prepare\r\n\t\t\tvar State, cleanedState, str;\r\n\r\n\t\t\t// Fetch\r\n\t\t\tState = History.normalizeState(passedState);\r\n\r\n\t\t\t// Clean\r\n\t\t\tcleanedState = {\r\n\t\t\t\tdata: State.data,\r\n\t\t\t\ttitle: passedState.title,\r\n\t\t\t\turl: passedState.url\r\n\t\t\t};\r\n\r\n\t\t\t// Fetch\r\n\t\t\tstr = JSON.stringify(cleanedState);\r\n\r\n\t\t\t// Return\r\n\t\t\treturn str;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Get a State's ID\r\n\t\t * @param {State} passedState\r\n\t\t * @return {String} id\r\n\t\t */\r\n\t\tHistory.getStateId = function(passedState){\r\n\t\t\t// Prepare\r\n\t\t\tvar State, id;\r\n\r\n\t\t\t// Fetch\r\n\t\t\tState = History.normalizeState(passedState);\r\n\r\n\t\t\t// Fetch\r\n\t\t\tid = State.id;\r\n\r\n\t\t\t// Return\r\n\t\t\treturn id;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getHashByState(State)\r\n\t\t * Creates a Hash for the State Object\r\n\t\t * @param {State} passedState\r\n\t\t * @return {String} hash\r\n\t\t */\r\n\t\tHistory.getHashByState = function(passedState){\r\n\t\t\t// Prepare\r\n\t\t\tvar State, hash;\r\n\r\n\t\t\t// Fetch\r\n\t\t\tState = History.normalizeState(passedState);\r\n\r\n\t\t\t// Hash\r\n\t\t\thash = State.hash;\r\n\r\n\t\t\t// Return\r\n\t\t\treturn hash;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.extractId(url_or_hash)\r\n\t\t * Get a State ID by it's URL or Hash\r\n\t\t * @param {string} url_or_hash\r\n\t\t * @return {string} id\r\n\t\t */\r\n\t\tHistory.extractId = function ( url_or_hash ) {\r\n\t\t\t// Prepare\r\n\t\t\tvar id,parts,url, tmp;\r\n\r\n\t\t\t// Extract\r\n\t\t\t\r\n\t\t\t// If the URL has a #, use the id from before the #\r\n\t\t\tif (url_or_hash.indexOf('#') != -1)\r\n\t\t\t{\r\n\t\t\t\ttmp = url_or_hash.split(\"#\")[0];\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\ttmp = url_or_hash;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tparts = /(.*)\\&_suid=([0-9]+)$/.exec(tmp);\r\n\t\t\turl = parts ? (parts[1]||url_or_hash) : url_or_hash;\r\n\t\t\tid = parts ? String(parts[2]||'') : '';\r\n\r\n\t\t\t// Return\r\n\t\t\treturn id||false;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.isTraditionalAnchor\r\n\t\t * Checks to see if the url is a traditional anchor or not\r\n\t\t * @param {String} url_or_hash\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tHistory.isTraditionalAnchor = function(url_or_hash){\r\n\t\t\t// Check\r\n\t\t\tvar isTraditional = !(/[\\/\\?\\.]/.test(url_or_hash));\r\n\r\n\t\t\t// Return\r\n\t\t\treturn isTraditional;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.extractState\r\n\t\t * Get a State by it's URL or Hash\r\n\t\t * @param {String} url_or_hash\r\n\t\t * @return {State|null}\r\n\t\t */\r\n\t\tHistory.extractState = function(url_or_hash,create){\r\n\t\t\t// Prepare\r\n\t\t\tvar State = null, id, url;\r\n\t\t\tcreate = create||false;\r\n\r\n\t\t\t// Fetch SUID\r\n\t\t\tid = History.extractId(url_or_hash);\r\n\t\t\tif ( id ) {\r\n\t\t\t\tState = History.getStateById(id);\r\n\t\t\t}\r\n\r\n\t\t\t// Fetch SUID returned no State\r\n\t\t\tif ( !State ) {\r\n\t\t\t\t// Fetch URL\r\n\t\t\t\turl = History.getFullUrl(url_or_hash);\r\n\r\n\t\t\t\t// Check URL\r\n\t\t\t\tid = History.getIdByUrl(url)||false;\r\n\t\t\t\tif ( id ) {\r\n\t\t\t\t\tState = History.getStateById(id);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Create State\r\n\t\t\t\tif ( !State && create && !History.isTraditionalAnchor(url_or_hash) ) {\r\n\t\t\t\t\tState = History.createStateObject(null,null,url);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Return\r\n\t\t\treturn State;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getIdByUrl()\r\n\t\t * Get a State ID by a State URL\r\n\t\t */\r\n\t\tHistory.getIdByUrl = function(url){\r\n\t\t\t// Fetch\r\n\t\t\tvar id = History.urlToId[url] || History.store.urlToId[url] || undefined;\r\n\r\n\t\t\t// Return\r\n\t\t\treturn id;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getLastSavedState()\r\n\t\t * Get an object containing the data, title and url of the current state\r\n\t\t * @return {Object} State\r\n\t\t */\r\n\t\tHistory.getLastSavedState = function(){\r\n\t\t\treturn History.savedStates[History.savedStates.length-1]||undefined;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getLastStoredState()\r\n\t\t * Get an object containing the data, title and url of the current state\r\n\t\t * @return {Object} State\r\n\t\t */\r\n\t\tHistory.getLastStoredState = function(){\r\n\t\t\treturn History.storedStates[History.storedStates.length-1]||undefined;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.hasUrlDuplicate\r\n\t\t * Checks if a Url will have a url conflict\r\n\t\t * @param {Object} newState\r\n\t\t * @return {Boolean} hasDuplicate\r\n\t\t */\r\n\t\tHistory.hasUrlDuplicate = function(newState) {\r\n\t\t\t// Prepare\r\n\t\t\tvar hasDuplicate = false,\r\n\t\t\t\toldState;\r\n\r\n\t\t\t// Fetch\r\n\t\t\toldState = History.extractState(newState.url);\r\n\r\n\t\t\t// Check\r\n\t\t\thasDuplicate = oldState && oldState.id !== newState.id;\r\n\r\n\t\t\t// Return\r\n\t\t\treturn hasDuplicate;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.storeState\r\n\t\t * Store a State\r\n\t\t * @param {Object} newState\r\n\t\t * @return {Object} newState\r\n\t\t */\r\n\t\tHistory.storeState = function(newState){\r\n\t\t\t// Store the State\r\n\t\t\tHistory.urlToId[newState.url] = newState.id;\r\n\r\n\t\t\t// Push the State\r\n\t\t\tHistory.storedStates.push(History.cloneObject(newState));\r\n\r\n\t\t\t// Return newState\r\n\t\t\treturn newState;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.isLastSavedState(newState)\r\n\t\t * Tests to see if the state is the last state\r\n\t\t * @param {Object} newState\r\n\t\t * @return {boolean} isLast\r\n\t\t */\r\n\t\tHistory.isLastSavedState = function(newState){\r\n\t\t\t// Prepare\r\n\t\t\tvar isLast = false,\r\n\t\t\t\tnewId, oldState, oldId;\r\n\r\n\t\t\t// Check\r\n\t\t\tif ( History.savedStates.length ) {\r\n\t\t\t\tnewId = newState.id;\r\n\t\t\t\toldState = History.getLastSavedState();\r\n\t\t\t\toldId = oldState.id;\r\n\r\n\t\t\t\t// Check\r\n\t\t\t\tisLast = (newId === oldId);\r\n\t\t\t}\r\n\r\n\t\t\t// Return\r\n\t\t\treturn isLast;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.saveState\r\n\t\t * Push a State\r\n\t\t * @param {Object} newState\r\n\t\t * @return {boolean} changed\r\n\t\t */\r\n\t\tHistory.saveState = function(newState){\r\n\t\t\t// Check Hash\r\n\t\t\tif ( History.isLastSavedState(newState) ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// Push the State\r\n\t\t\tHistory.savedStates.push(History.cloneObject(newState));\r\n\r\n\t\t\t// Return true\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getStateByIndex()\r\n\t\t * Gets a state by the index\r\n\t\t * @param {integer} index\r\n\t\t * @return {Object}\r\n\t\t */\r\n\t\tHistory.getStateByIndex = function(index){\r\n\t\t\t// Prepare\r\n\t\t\tvar State = null;\r\n\r\n\t\t\t// Handle\r\n\t\t\tif ( typeof index === 'undefined' ) {\r\n\t\t\t\t// Get the last inserted\r\n\t\t\t\tState = History.savedStates[History.savedStates.length-1];\r\n\t\t\t}\r\n\t\t\telse if ( index < 0 ) {\r\n\t\t\t\t// Get from the end\r\n\t\t\t\tState = History.savedStates[History.savedStates.length+index];\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Get from the beginning\r\n\t\t\t\tState = History.savedStates[index];\r\n\t\t\t}\r\n\r\n\t\t\t// Return State\r\n\t\t\treturn State;\r\n\t\t};\r\n\t\t\r\n\t\t/**\r\n\t\t * History.getCurrentIndex()\r\n\t\t * Gets the current index\r\n\t\t * @return (integer)\r\n\t\t*/\r\n\t\tHistory.getCurrentIndex = function(){\r\n\t\t\t// Prepare\r\n\t\t\tvar index = null;\r\n\t\t\t\r\n\t\t\t// No states saved\r\n\t\t\tif(History.savedStates.length < 1) {\r\n\t\t\t\tindex = 0;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tindex = History.savedStates.length-1;\r\n\t\t\t}\r\n\t\t\treturn index;\r\n\t\t};\r\n\r\n\t\t// ====================================================================\r\n\t\t// Hash Helpers\r\n\r\n\t\t/**\r\n\t\t * History.getHash()\r\n\t\t * @param {Location=} location\r\n\t\t * Gets the current document hash\r\n\t\t * Note: unlike location.hash, this is guaranteed to return the escaped hash in all browsers\r\n\t\t * @return {string}\r\n\t\t */\r\n\t\tHistory.getHash = function(doc){\r\n\t\t\tvar url = History.getLocationHref(doc),\r\n\t\t\t\thash;\r\n\t\t\thash = History.getHashByUrl(url);\r\n\t\t\treturn hash;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.unescapeHash()\r\n\t\t * normalize and Unescape a Hash\r\n\t\t * @param {String} hash\r\n\t\t * @return {string}\r\n\t\t */\r\n\t\tHistory.unescapeHash = function(hash){\r\n\t\t\t// Prepare\r\n\t\t\tvar result = History.normalizeHash(hash);\r\n\r\n\t\t\t// Unescape hash\r\n\t\t\tresult = decodeURIComponent(result);\r\n\r\n\t\t\t// Return result\r\n\t\t\treturn result;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.normalizeHash()\r\n\t\t * normalize a hash across browsers\r\n\t\t * @return {string}\r\n\t\t */\r\n\t\tHistory.normalizeHash = function(hash){\r\n\t\t\t// Prepare\r\n\t\t\tvar result = hash.replace(/[^#]*#/,'').replace(/#.*/, '');\r\n\r\n\t\t\t// Return result\r\n\t\t\treturn result;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.setHash(hash)\r\n\t\t * Sets the document hash\r\n\t\t * @param {string} hash\r\n\t\t * @return {History}\r\n\t\t */\r\n\t\tHistory.setHash = function(hash,queue){\r\n\t\t\t// Prepare\r\n\t\t\tvar State, pageUrl;\r\n\r\n\t\t\t// Handle Queueing\r\n\t\t\tif ( queue !== false && History.busy() ) {\r\n\t\t\t\t// Wait + Push to Queue\r\n\t\t\t\t//History.debug('History.setHash: we must wait', arguments);\r\n\t\t\t\tHistory.pushQueue({\r\n\t\t\t\t\tscope: History,\r\n\t\t\t\t\tcallback: History.setHash,\r\n\t\t\t\t\targs: arguments,\r\n\t\t\t\t\tqueue: queue\r\n\t\t\t\t});\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// Log\r\n\t\t\t//History.debug('History.setHash: called',hash);\r\n\r\n\t\t\t// Make Busy + Continue\r\n\t\t\tHistory.busy(true);\r\n\r\n\t\t\t// Check if hash is a state\r\n\t\t\tState = History.extractState(hash,true);\r\n\t\t\tif ( State && !History.emulated.pushState ) {\r\n\t\t\t\t// Hash is a state so skip the setHash\r\n\t\t\t\t//History.debug('History.setHash: Hash is a state so skipping the hash set with a direct pushState call',arguments);\r\n\r\n\t\t\t\t// PushState\r\n\t\t\t\tHistory.pushState(State.data,State.title,State.url,false);\r\n\t\t\t}\r\n\t\t\telse if ( History.getHash() !== hash ) {\r\n\t\t\t\t// Hash is a proper hash, so apply it\r\n\r\n\t\t\t\t// Handle browser bugs\r\n\t\t\t\tif ( History.bugs.setHash ) {\r\n\t\t\t\t\t// Fix Safari Bug https://bugs.webkit.org/show_bug.cgi?id=56249\r\n\r\n\t\t\t\t\t// Fetch the base page\r\n\t\t\t\t\tpageUrl = History.getPageUrl();\r\n\r\n\t\t\t\t\t// Safari hash apply\r\n\t\t\t\t\tHistory.pushState(null,null,pageUrl+'#'+hash,false);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Normal hash apply\r\n\t\t\t\t\tdocument.location.hash = hash;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.escape()\r\n\t\t * normalize and Escape a Hash\r\n\t\t * @return {string}\r\n\t\t */\r\n\t\tHistory.escapeHash = function(hash){\r\n\t\t\t// Prepare\r\n\t\t\tvar result = History.normalizeHash(hash);\r\n\r\n\t\t\t// Escape hash\r\n\t\t\tresult = window.encodeURIComponent(result);\r\n\r\n\t\t\t// IE6 Escape Bug\r\n\t\t\tif ( !History.bugs.hashEscape ) {\r\n\t\t\t\t// Restore common parts\r\n\t\t\t\tresult = result\r\n\t\t\t\t\t.replace(/\\%21/g,'!')\r\n\t\t\t\t\t.replace(/\\%26/g,'&')\r\n\t\t\t\t\t.replace(/\\%3D/g,'=')\r\n\t\t\t\t\t.replace(/\\%3F/g,'?');\r\n\t\t\t}\r\n\r\n\t\t\t// Return result\r\n\t\t\treturn result;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.getHashByUrl(url)\r\n\t\t * Extracts the Hash from a URL\r\n\t\t * @param {string} url\r\n\t\t * @return {string} url\r\n\t\t */\r\n\t\tHistory.getHashByUrl = function(url){\r\n\t\t\t// Extract the hash\r\n\t\t\tvar hash = String(url)\r\n\t\t\t\t.replace(/([^#]*)#?([^#]*)#?(.*)/, '$2')\r\n\t\t\t\t;\r\n\r\n\t\t\t// Unescape hash\r\n\t\t\thash = History.unescapeHash(hash);\r\n\r\n\t\t\t// Return hash\r\n\t\t\treturn hash;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.setTitle(title)\r\n\t\t * Applies the title to the document\r\n\t\t * @param {State} newState\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tHistory.setTitle = function(newState){\r\n\t\t\t// Prepare\r\n\t\t\tvar title = newState.title,\r\n\t\t\t\tfirstState;\r\n\r\n\t\t\t// Initial\r\n\t\t\tif ( !title ) {\r\n\t\t\t\tfirstState = History.getStateByIndex(0);\r\n\t\t\t\tif ( firstState && firstState.url === newState.url ) {\r\n\t\t\t\t\ttitle = firstState.title||History.options.initialTitle;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Apply\r\n\t\t\ttry {\r\n\t\t\t\tdocument.getElementsByTagName('title')[0].innerHTML = title.replace('<','<').replace('>','>').replace(' & ',' & ');\r\n\t\t\t}\r\n\t\t\tcatch ( Exception ) { }\r\n\t\t\tdocument.title = title;\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Queueing\r\n\r\n\t\t/**\r\n\t\t * History.queues\r\n\t\t * The list of queues to use\r\n\t\t * First In, First Out\r\n\t\t */\r\n\t\tHistory.queues = [];\r\n\r\n\t\t/**\r\n\t\t * History.busy(value)\r\n\t\t * @param {boolean} value [optional]\r\n\t\t * @return {boolean} busy\r\n\t\t */\r\n\t\tHistory.busy = function(value){\r\n\t\t\t// Apply\r\n\t\t\tif ( typeof value !== 'undefined' ) {\r\n\t\t\t\t//History.debug('History.busy: changing ['+(History.busy.flag||false)+'] to ['+(value||false)+']', History.queues.length);\r\n\t\t\t\tHistory.busy.flag = value;\r\n\t\t\t}\r\n\t\t\t// Default\r\n\t\t\telse if ( typeof History.busy.flag === 'undefined' ) {\r\n\t\t\t\tHistory.busy.flag = false;\r\n\t\t\t}\r\n\r\n\t\t\t// Queue\r\n\t\t\tif ( !History.busy.flag ) {\r\n\t\t\t\t// Execute the next item in the queue\r\n\t\t\t\tclearTimeout(History.busy.timeout);\r\n\t\t\t\tvar fireNext = function(){\r\n\t\t\t\t\tvar i, queue, item;\r\n\t\t\t\t\tif ( History.busy.flag ) return;\r\n\t\t\t\t\tfor ( i=History.queues.length-1; i >= 0; --i ) {\r\n\t\t\t\t\t\tqueue = History.queues[i];\r\n\t\t\t\t\t\tif ( queue.length === 0 ) continue;\r\n\t\t\t\t\t\titem = queue.shift();\r\n\t\t\t\t\t\tHistory.fireQueueItem(item);\r\n\t\t\t\t\t\tHistory.busy.timeout = setTimeout(fireNext,History.options.busyDelay);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\tHistory.busy.timeout = setTimeout(fireNext,History.options.busyDelay);\r\n\t\t\t}\r\n\r\n\t\t\t// Return\r\n\t\t\treturn History.busy.flag;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.busy.flag\r\n\t\t */\r\n\t\tHistory.busy.flag = false;\r\n\r\n\t\t/**\r\n\t\t * History.fireQueueItem(item)\r\n\t\t * Fire a Queue Item\r\n\t\t * @param {Object} item\r\n\t\t * @return {Mixed} result\r\n\t\t */\r\n\t\tHistory.fireQueueItem = function(item){\r\n\t\t\treturn item.callback.apply(item.scope||History,item.args||[]);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.pushQueue(callback,args)\r\n\t\t * Add an item to the queue\r\n\t\t * @param {Object} item [scope,callback,args,queue]\r\n\t\t */\r\n\t\tHistory.pushQueue = function(item){\r\n\t\t\t// Prepare the queue\r\n\t\t\tHistory.queues[item.queue||0] = History.queues[item.queue||0]||[];\r\n\r\n\t\t\t// Add to the queue\r\n\t\t\tHistory.queues[item.queue||0].push(item);\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.queue (item,queue), (func,queue), (func), (item)\r\n\t\t * Either firs the item now if not busy, or adds it to the queue\r\n\t\t */\r\n\t\tHistory.queue = function(item,queue){\r\n\t\t\t// Prepare\r\n\t\t\tif ( typeof item === 'function' ) {\r\n\t\t\t\titem = {\r\n\t\t\t\t\tcallback: item\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif ( typeof queue !== 'undefined' ) {\r\n\t\t\t\titem.queue = queue;\r\n\t\t\t}\r\n\r\n\t\t\t// Handle\r\n\t\t\tif ( History.busy() ) {\r\n\t\t\t\tHistory.pushQueue(item);\r\n\t\t\t} else {\r\n\t\t\t\tHistory.fireQueueItem(item);\r\n\t\t\t}\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.clearQueue()\r\n\t\t * Clears the Queue\r\n\t\t */\r\n\t\tHistory.clearQueue = function(){\r\n\t\t\tHistory.busy.flag = false;\r\n\t\t\tHistory.queues = [];\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// IE Bug Fix\r\n\r\n\t\t/**\r\n\t\t * History.stateChanged\r\n\t\t * States whether or not the state has changed since the last double check was initialised\r\n\t\t */\r\n\t\tHistory.stateChanged = false;\r\n\r\n\t\t/**\r\n\t\t * History.doubleChecker\r\n\t\t * Contains the timeout used for the double checks\r\n\t\t */\r\n\t\tHistory.doubleChecker = false;\r\n\r\n\t\t/**\r\n\t\t * History.doubleCheckComplete()\r\n\t\t * Complete a double check\r\n\t\t * @return {History}\r\n\t\t */\r\n\t\tHistory.doubleCheckComplete = function(){\r\n\t\t\t// Update\r\n\t\t\tHistory.stateChanged = true;\r\n\r\n\t\t\t// Clear\r\n\t\t\tHistory.doubleCheckClear();\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.doubleCheckClear()\r\n\t\t * Clear a double check\r\n\t\t * @return {History}\r\n\t\t */\r\n\t\tHistory.doubleCheckClear = function(){\r\n\t\t\t// Clear\r\n\t\t\tif ( History.doubleChecker ) {\r\n\t\t\t\tclearTimeout(History.doubleChecker);\r\n\t\t\t\tHistory.doubleChecker = false;\r\n\t\t\t}\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.doubleCheck()\r\n\t\t * Create a double check\r\n\t\t * @return {History}\r\n\t\t */\r\n\t\tHistory.doubleCheck = function(tryAgain){\r\n\t\t\t// Reset\r\n\t\t\tHistory.stateChanged = false;\r\n\t\t\tHistory.doubleCheckClear();\r\n\r\n\t\t\t// Fix IE6,IE7 bug where calling history.back or history.forward does not actually change the hash (whereas doing it manually does)\r\n\t\t\t// Fix Safari 5 bug where sometimes the state does not change: https://bugs.webkit.org/show_bug.cgi?id=42940\r\n\t\t\tif ( History.bugs.ieDoubleCheck ) {\r\n\t\t\t\t// Apply Check\r\n\t\t\t\tHistory.doubleChecker = setTimeout(\r\n\t\t\t\t\tfunction(){\r\n\t\t\t\t\t\tHistory.doubleCheckClear();\r\n\t\t\t\t\t\tif ( !History.stateChanged ) {\r\n\t\t\t\t\t\t\t//History.debug('History.doubleCheck: State has not yet changed, trying again', arguments);\r\n\t\t\t\t\t\t\t// Re-Attempt\r\n\t\t\t\t\t\t\ttryAgain();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tHistory.options.doubleCheckInterval\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Safari Bug Fix\r\n\r\n\t\t/**\r\n\t\t * History.safariStatePoll()\r\n\t\t * Poll the current state\r\n\t\t * @return {History}\r\n\t\t */\r\n\t\tHistory.safariStatePoll = function(){\r\n\t\t\t// Poll the URL\r\n\r\n\t\t\t// Get the Last State which has the new URL\r\n\t\t\tvar\r\n\t\t\t\turlState = History.extractState(History.getLocationHref()),\r\n\t\t\t\tnewState;\r\n\r\n\t\t\t// Check for a difference\r\n\t\t\tif ( !History.isLastSavedState(urlState) ) {\r\n\t\t\t\tnewState = urlState;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if we have a state with that url\r\n\t\t\t// If not create it\r\n\t\t\tif ( !newState ) {\r\n\t\t\t\t//History.debug('History.safariStatePoll: new');\r\n\t\t\t\tnewState = History.createStateObject();\r\n\t\t\t}\r\n\r\n\t\t\t// Apply the New State\r\n\t\t\t//History.debug('History.safariStatePoll: trigger');\r\n\t\t\tHistory.Adapter.trigger(window,'popstate');\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// State Aliases\r\n\r\n\t\t/**\r\n\t\t * History.back(queue)\r\n\t\t * Send the browser history back one item\r\n\t\t * @param {Integer} queue [optional]\r\n\t\t */\r\n\t\tHistory.back = function(queue){\r\n\t\t\t//History.debug('History.back: called', arguments);\r\n\r\n\t\t\t// Handle Queueing\r\n\t\t\tif ( queue !== false && History.busy() ) {\r\n\t\t\t\t// Wait + Push to Queue\r\n\t\t\t\t//History.debug('History.back: we must wait', arguments);\r\n\t\t\t\tHistory.pushQueue({\r\n\t\t\t\t\tscope: History,\r\n\t\t\t\t\tcallback: History.back,\r\n\t\t\t\t\targs: arguments,\r\n\t\t\t\t\tqueue: queue\r\n\t\t\t\t});\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// Make Busy + Continue\r\n\t\t\tHistory.busy(true);\r\n\r\n\t\t\t// Fix certain browser bugs that prevent the state from changing\r\n\t\t\tHistory.doubleCheck(function(){\r\n\t\t\t\tHistory.back(false);\r\n\t\t\t});\r\n\r\n\t\t\t// Go back\r\n\t\t\thistory.go(-1);\r\n\r\n\t\t\t// End back closure\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.forward(queue)\r\n\t\t * Send the browser history forward one item\r\n\t\t * @param {Integer} queue [optional]\r\n\t\t */\r\n\t\tHistory.forward = function(queue){\r\n\t\t\t//History.debug('History.forward: called', arguments);\r\n\r\n\t\t\t// Handle Queueing\r\n\t\t\tif ( queue !== false && History.busy() ) {\r\n\t\t\t\t// Wait + Push to Queue\r\n\t\t\t\t//History.debug('History.forward: we must wait', arguments);\r\n\t\t\t\tHistory.pushQueue({\r\n\t\t\t\t\tscope: History,\r\n\t\t\t\t\tcallback: History.forward,\r\n\t\t\t\t\targs: arguments,\r\n\t\t\t\t\tqueue: queue\r\n\t\t\t\t});\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// Make Busy + Continue\r\n\t\t\tHistory.busy(true);\r\n\r\n\t\t\t// Fix certain browser bugs that prevent the state from changing\r\n\t\t\tHistory.doubleCheck(function(){\r\n\t\t\t\tHistory.forward(false);\r\n\t\t\t});\r\n\r\n\t\t\t// Go forward\r\n\t\t\thistory.go(1);\r\n\r\n\t\t\t// End forward closure\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * History.go(index,queue)\r\n\t\t * Send the browser history back or forward index times\r\n\t\t * @param {Integer} queue [optional]\r\n\t\t */\r\n\t\tHistory.go = function(index,queue){\r\n\t\t\t//History.debug('History.go: called', arguments);\r\n\r\n\t\t\t// Prepare\r\n\t\t\tvar i;\r\n\r\n\t\t\t// Handle\r\n\t\t\tif ( index > 0 ) {\r\n\t\t\t\t// Forward\r\n\t\t\t\tfor ( i=1; i<=index; ++i ) {\r\n\t\t\t\t\tHistory.forward(queue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if ( index < 0 ) {\r\n\t\t\t\t// Backward\r\n\t\t\t\tfor ( i=-1; i>=index; --i ) {\r\n\t\t\t\t\tHistory.back(queue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthrow new Error('History.go: History.go requires a positive or negative integer passed.');\r\n\t\t\t}\r\n\r\n\t\t\t// Chain\r\n\t\t\treturn History;\r\n\t\t};\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// HTML5 State Support\r\n\r\n\t\t// Non-Native pushState Implementation\r\n\t\tif ( History.emulated.pushState ) {\r\n\t\t\t/*\r\n\t\t\t * Provide Skeleton for HTML4 Browsers\r\n\t\t\t */\r\n\r\n\t\t\t// Prepare\r\n\t\t\tvar emptyFunction = function(){};\r\n\t\t\tHistory.pushState = History.pushState||emptyFunction;\r\n\t\t\tHistory.replaceState = History.replaceState||emptyFunction;\r\n\t\t} // History.emulated.pushState\r\n\r\n\t\t// Native pushState Implementation\r\n\t\telse {\r\n\t\t\t/*\r\n\t\t\t * Use native HTML5 History API Implementation\r\n\t\t\t */\r\n\r\n\t\t\t/**\r\n\t\t\t * History.onPopState(event,extra)\r\n\t\t\t * Refresh the Current State\r\n\t\t\t */\r\n\t\t\tHistory.onPopState = function(event,extra){\r\n\t\t\t\t// Prepare\r\n\t\t\t\tvar stateId = false, newState = false, currentHash, currentState;\r\n\r\n\t\t\t\t// Reset the double check\r\n\t\t\t\tHistory.doubleCheckComplete();\r\n\r\n\t\t\t\t// Check for a Hash, and handle apporiatly\r\n\t\t\t\tcurrentHash = History.getHash();\r\n\t\t\t\tif ( currentHash ) {\r\n\t\t\t\t\t// Expand Hash\r\n\t\t\t\t\tcurrentState = History.extractState(currentHash||History.getLocationHref(),true);\r\n\t\t\t\t\tif ( currentState ) {\r\n\t\t\t\t\t\t// We were able to parse it, it must be a State!\r\n\t\t\t\t\t\t// Let's forward to replaceState\r\n\t\t\t\t\t\t//History.debug('History.onPopState: state anchor', currentHash, currentState);\r\n\t\t\t\t\t\tHistory.replaceState(currentState.data, currentState.title, currentState.url, false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// Traditional Anchor\r\n\t\t\t\t\t\t//History.debug('History.onPopState: traditional anchor', currentHash);\r\n\t\t\t\t\t\tHistory.Adapter.trigger(window,'anchorchange');\r\n\t\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// We don't care for hashes\r\n\t\t\t\t\tHistory.expectedStateId = false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Ensure\r\n\t\t\t\tstateId = History.Adapter.extractEventData('state',event,extra) || false;\r\n\r\n\t\t\t\t// Fetch State\r\n\t\t\t\tif ( stateId ) {\r\n\t\t\t\t\t// Vanilla: Back/forward button was used\r\n\t\t\t\t\tnewState = History.getStateById(stateId);\r\n\t\t\t\t}\r\n\t\t\t\telse if ( History.expectedStateId ) {\r\n\t\t\t\t\t// Vanilla: A new state was pushed, and popstate was called manually\r\n\t\t\t\t\tnewState = History.getStateById(History.expectedStateId);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Initial State\r\n\t\t\t\t\tnewState = History.extractState(History.getLocationHref());\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// The State did not exist in our store\r\n\t\t\t\tif ( !newState ) {\r\n\t\t\t\t\t// Regenerate the State\r\n\t\t\t\t\tnewState = History.createStateObject(null,null,History.getLocationHref());\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Clean\r\n\t\t\t\tHistory.expectedStateId = false;\r\n\r\n\t\t\t\t// Check if we are the same state\r\n\t\t\t\tif ( History.isLastSavedState(newState) ) {\r\n\t\t\t\t\t// There has been no change (just the page's hash has finally propagated)\r\n\t\t\t\t\t//History.debug('History.onPopState: no change', newState, History.savedStates);\r\n\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Store the State\r\n\t\t\t\tHistory.storeState(newState);\r\n\t\t\t\tHistory.saveState(newState);\r\n\r\n\t\t\t\t// Force update of the title\r\n\t\t\t\tHistory.setTitle(newState);\r\n\r\n\t\t\t\t// Fire Our Event\r\n\t\t\t\tHistory.Adapter.trigger(window,'statechange');\r\n\t\t\t\tHistory.busy(false);\r\n\r\n\t\t\t\t// Return true\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\t\t\tHistory.Adapter.bind(window,'popstate',History.onPopState);\r\n\r\n\t\t\t/**\r\n\t\t\t * History.pushState(data,title,url)\r\n\t\t\t * Add a new State to the history object, become it, and trigger onpopstate\r\n\t\t\t * We have to trigger for HTML4 compatibility\r\n\t\t\t * @param {object} data\r\n\t\t\t * @param {string} title\r\n\t\t\t * @param {string} url\r\n\t\t\t * @return {true}\r\n\t\t\t */\r\n\t\t\tHistory.pushState = function(data,title,url,queue){\r\n\t\t\t\t//History.debug('History.pushState: called', arguments);\r\n\r\n\t\t\t\t// Check the State\r\n\t\t\t\tif ( History.getHashByUrl(url) && History.emulated.pushState ) {\r\n\t\t\t\t\tthrow new Error('History.js does not support states with fragement-identifiers (hashes/anchors).');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Handle Queueing\r\n\t\t\t\tif ( queue !== false && History.busy() ) {\r\n\t\t\t\t\t// Wait + Push to Queue\r\n\t\t\t\t\t//History.debug('History.pushState: we must wait', arguments);\r\n\t\t\t\t\tHistory.pushQueue({\r\n\t\t\t\t\t\tscope: History,\r\n\t\t\t\t\t\tcallback: History.pushState,\r\n\t\t\t\t\t\targs: arguments,\r\n\t\t\t\t\t\tqueue: queue\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Make Busy + Continue\r\n\t\t\t\tHistory.busy(true);\r\n\r\n\t\t\t\t// Create the newState\r\n\t\t\t\tvar newState = History.createStateObject(data,title,url);\r\n\r\n\t\t\t\t// Check it\r\n\t\t\t\tif ( History.isLastSavedState(newState) ) {\r\n\t\t\t\t\t// Won't be a change\r\n\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Store the newState\r\n\t\t\t\t\tHistory.storeState(newState);\r\n\t\t\t\t\tHistory.expectedStateId = newState.id;\r\n\r\n\t\t\t\t\t// Push the newState\r\n\t\t\t\t\thistory.pushState(newState.id,newState.title,newState.url);\r\n\r\n\t\t\t\t\t// Fire HTML5 Event\r\n\t\t\t\t\tHistory.Adapter.trigger(window,'popstate');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// End pushState closure\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\r\n\t\t\t/**\r\n\t\t\t * History.replaceState(data,title,url)\r\n\t\t\t * Replace the State and trigger onpopstate\r\n\t\t\t * We have to trigger for HTML4 compatibility\r\n\t\t\t * @param {object} data\r\n\t\t\t * @param {string} title\r\n\t\t\t * @param {string} url\r\n\t\t\t * @return {true}\r\n\t\t\t */\r\n\t\t\tHistory.replaceState = function(data,title,url,queue){\r\n\t\t\t\t//History.debug('History.replaceState: called', arguments);\r\n\r\n\t\t\t\t// Check the State\r\n\t\t\t\tif ( History.getHashByUrl(url) && History.emulated.pushState ) {\r\n\t\t\t\t\tthrow new Error('History.js does not support states with fragement-identifiers (hashes/anchors).');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Handle Queueing\r\n\t\t\t\tif ( queue !== false && History.busy() ) {\r\n\t\t\t\t\t// Wait + Push to Queue\r\n\t\t\t\t\t//History.debug('History.replaceState: we must wait', arguments);\r\n\t\t\t\t\tHistory.pushQueue({\r\n\t\t\t\t\t\tscope: History,\r\n\t\t\t\t\t\tcallback: History.replaceState,\r\n\t\t\t\t\t\targs: arguments,\r\n\t\t\t\t\t\tqueue: queue\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Make Busy + Continue\r\n\t\t\t\tHistory.busy(true);\r\n\r\n\t\t\t\t// Create the newState\r\n\t\t\t\tvar newState = History.createStateObject(data,title,url);\r\n\r\n\t\t\t\t// Check it\r\n\t\t\t\tif ( History.isLastSavedState(newState) ) {\r\n\t\t\t\t\t// Won't be a change\r\n\t\t\t\t\tHistory.busy(false);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t// Store the newState\r\n\t\t\t\t\tHistory.storeState(newState);\r\n\t\t\t\t\tHistory.expectedStateId = newState.id;\r\n\r\n\t\t\t\t\t// Push the newState\r\n\t\t\t\t\thistory.replaceState(newState.id,newState.title,newState.url);\r\n\r\n\t\t\t\t\t// Fire HTML5 Event\r\n\t\t\t\t\tHistory.Adapter.trigger(window,'popstate');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// End replaceState closure\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\r\n\t\t} // !History.emulated.pushState\r\n\r\n\r\n\t\t// ====================================================================\r\n\t\t// Initialise\r\n\r\n\t\t/**\r\n\t\t * Load the Store\r\n\t\t */\r\n\t\tif ( sessionStorage ) {\r\n\t\t\t// Fetch\r\n\t\t\ttry {\r\n\t\t\t\tHistory.store = JSON.parse(sessionStorage.getItem('History.store'))||{};\r\n\t\t\t}\r\n\t\t\tcatch ( err ) {\r\n\t\t\t\tHistory.store = {};\r\n\t\t\t}\r\n\r\n\t\t\t// Normalize\r\n\t\t\tHistory.normalizeStore();\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Default Load\r\n\t\t\tHistory.store = {};\r\n\t\t\tHistory.normalizeStore();\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Clear Intervals on exit to prevent memory leaks\r\n\t\t */\r\n\t\tHistory.Adapter.bind(window,\"unload\",History.clearAllIntervals);\r\n\r\n\t\t/**\r\n\t\t * Create the initial State\r\n\t\t */\r\n\t\tHistory.saveState(History.storeState(History.extractState(History.getLocationHref(),true)));\r\n\r\n\t\t/**\r\n\t\t * Bind for Saving Store\r\n\t\t */\r\n\t\tif ( sessionStorage ) {\r\n\t\t\t// When the page is closed\r\n\t\t\tHistory.onUnload = function(){\r\n\t\t\t\t// Prepare\r\n\t\t\t\tvar\tcurrentStore, item, currentStoreString;\r\n\r\n\t\t\t\t// Fetch\r\n\t\t\t\ttry {\r\n\t\t\t\t\tcurrentStore = JSON.parse(sessionStorage.getItem('History.store'))||{};\r\n\t\t\t\t}\r\n\t\t\t\tcatch ( err ) {\r\n\t\t\t\t\tcurrentStore = {};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Ensure\r\n\t\t\t\tcurrentStore.idToState = currentStore.idToState || {};\r\n\t\t\t\tcurrentStore.urlToId = currentStore.urlToId || {};\r\n\t\t\t\tcurrentStore.stateToId = currentStore.stateToId || {};\r\n\r\n\t\t\t\t// Sync\r\n\t\t\t\tfor ( item in History.idToState ) {\r\n\t\t\t\t\tif ( !History.idToState.hasOwnProperty(item) ) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcurrentStore.idToState[item] = History.idToState[item];\r\n\t\t\t\t}\r\n\t\t\t\tfor ( item in History.urlToId ) {\r\n\t\t\t\t\tif ( !History.urlToId.hasOwnProperty(item) ) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcurrentStore.urlToId[item] = History.urlToId[item];\r\n\t\t\t\t}\r\n\t\t\t\tfor ( item in History.stateToId ) {\r\n\t\t\t\t\tif ( !History.stateToId.hasOwnProperty(item) ) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcurrentStore.stateToId[item] = History.stateToId[item];\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update\r\n\t\t\t\tHistory.store = currentStore;\r\n\t\t\t\tHistory.normalizeStore();\r\n\r\n\t\t\t\t// In Safari, going into Private Browsing mode causes the\r\n\t\t\t\t// Session Storage object to still exist but if you try and use\r\n\t\t\t\t// or set any property/function of it it throws the exception\r\n\t\t\t\t// \"QUOTA_EXCEEDED_ERR: DOM Exception 22: An attempt was made to\r\n\t\t\t\t// add something to storage that exceeded the quota.\" infinitely\r\n\t\t\t\t// every second.\r\n\t\t\t\tcurrentStoreString = JSON.stringify(currentStore);\r\n\t\t\t\ttry {\r\n\t\t\t\t\t// Store\r\n\t\t\t\t\tsessionStorage.setItem('History.store', currentStoreString);\r\n\t\t\t\t}\r\n\t\t\t\tcatch (e) {\r\n\t\t\t\t\tif (e.code === DOMException.QUOTA_EXCEEDED_ERR) {\r\n\t\t\t\t\t\tif (sessionStorage.length) {\r\n\t\t\t\t\t\t\t// Workaround for a bug seen on iPads. Sometimes the quota exceeded error comes up and simply\r\n\t\t\t\t\t\t\t// removing/resetting the storage can work.\r\n\t\t\t\t\t\t\tsessionStorage.removeItem('History.store');\r\n\t\t\t\t\t\t\tsessionStorage.setItem('History.store', currentStoreString);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Otherwise, we're probably private browsing in Safari, so we'll ignore the exception.\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow e;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t// For Internet Explorer\r\n\t\t\tHistory.intervalList.push(setInterval(History.onUnload,History.options.storeInterval));\r\n\r\n\t\t\t// For Other Browsers\r\n\t\t\tHistory.Adapter.bind(window,'beforeunload',History.onUnload);\r\n\t\t\tHistory.Adapter.bind(window,'unload',History.onUnload);\r\n\r\n\t\t\t// Both are enabled for consistency\r\n\t\t}\r\n\r\n\t\t// Non-Native pushState Implementation\r\n\t\tif ( !History.emulated.pushState ) {\r\n\t\t\t// Be aware, the following is only for native pushState implementations\r\n\t\t\t// If you are wanting to include something for all browsers\r\n\t\t\t// Then include it above this if block\r\n\r\n\t\t\t/**\r\n\t\t\t * Setup Safari Fix\r\n\t\t\t */\r\n\t\t\tif ( History.bugs.safariPoll ) {\r\n\t\t\t\tHistory.intervalList.push(setInterval(History.safariStatePoll, History.options.safariPollInterval));\r\n\t\t\t}\r\n\r\n\t\t\t/**\r\n\t\t\t * Ensure Cross Browser Compatibility\r\n\t\t\t */\r\n\t\t\tif ( navigator.vendor === 'Apple Computer, Inc.' || (navigator.appCodeName||'') === 'Mozilla' ) {\r\n\t\t\t\t/**\r\n\t\t\t\t * Fix Safari HashChange Issue\r\n\t\t\t\t */\r\n\r\n\t\t\t\t// Setup Alias\r\n\t\t\t\tHistory.Adapter.bind(window,'hashchange',function(){\r\n\t\t\t\t\tHistory.Adapter.trigger(window,'popstate');\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Initialise Alias\r\n\t\t\t\tif ( History.getHash() ) {\r\n\t\t\t\t\tHistory.Adapter.onDomLoad(function(){\r\n\t\t\t\t\t\tHistory.Adapter.trigger(window,'hashchange');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} // !History.emulated.pushState\r\n\r\n\r\n\t}; // History.initCore\r\n\r\n\t// Try to Initialise History\r\n\tif (!History.options || !History.options.delayInit) {\r\n\t\tHistory.init();\r\n\t}\r\n\r\n})(window);","/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20170427\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in window.self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\t// adding undefined to fight this issue https://github.com/eligrey/classList.js/issues/36\n\t\t// modernie IE8-MSW7 machine has IE8 8.0.6001.18702 and is affected\n\t\tif (ex.number === undefined || ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(window.self));\n\n}\n\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","var 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 $TypeError(tryToString(argument) + ' is not a function');\n};\n","var 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 $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var 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 $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var 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","var 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 $TypeError('Incorrect invocation');\n};\n","var 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 $TypeError($String(argument) + ' is not an object');\n};\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","var 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","var 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","var 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 $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var 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 for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var 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","var 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","var 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","var 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","var 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 if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\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","var 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","var 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 create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var 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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var 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","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var 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","module.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 anObject = require('../internals/an-object');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\n\nvar $TypeError = TypeError;\n\n// `Date.prototype[@@toPrimitive](hint)` method implementation\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nmodule.exports = function (hint) {\n anObject(this);\n if (hint === 'string' || hint === 'default') hint = 'string';\n else if (hint !== 'number') throw $TypeError('Incorrect hint');\n return ordinaryToPrimitive(this, hint);\n};\n","var 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","var 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","var 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","var 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 $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var 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","var 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","var 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","var $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","module.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\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","// 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","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var 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","/* global Bun -- Deno case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","var 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","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var 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","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\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","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","var createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","var fails = require('../internals/fails');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = !fails(function () {\n var error = Error('a');\n if (!('stack' in error)) return true;\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n var object = create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","var 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","module.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 () { execCalled = true; return null; };\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","var 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","var 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","var 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","var 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","var 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","var 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","var 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","var 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","var 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","var 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","var 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","var 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 $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var 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","var 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","var 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","var 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","var 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","module.exports = {};\n","module.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","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var 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","var 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","var 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","var 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","var isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\n// `InstallErrorCause` abstract operation\n// https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause\nmodule.exports = function (O, options) {\n if (isObject(options) && 'cause' in options) {\n createNonEnumerableProperty(O, 'cause', options.cause);\n }\n};\n","var $ = 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","var 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 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 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 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","var 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","var 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","var $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","var 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.exec(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","var 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","// 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","var 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","module.exports = false;\n","var 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","var 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","var 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 $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","var 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 in IterablePrototype) return IterablePrototype[KIND];\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 } 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","module.exports = {};\n","var 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","var 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","var 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","var 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 $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","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\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();\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","/* 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","var 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","var 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 $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var 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","/* 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","var 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","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var 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","var 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","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var 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","var 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","/* 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","var 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 $TypeError(\"Can't convert object to primitive value\");\n};\n","var 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","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var 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","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var 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","var 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","var 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","var 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","var 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 $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","var 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","var 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","var 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.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","var 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 $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] == 0 && (version[1] < 3 || version[1] == 3 && version[2] == 0);\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\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","var 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","var 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","var 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","var 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.30.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var 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","var 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","// 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 state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw $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 $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 toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var 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","var 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","/* 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();\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","var 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","var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","var 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","var 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","var 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","// 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","var 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","var 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","var 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","var 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 $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var 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","var 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","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var 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","var 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 searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || (!searchParams.size && (IS_PURE || !DESCRIPTORS))\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[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","/* 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","var 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","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var 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","var 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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var 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","// 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 getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar proxyAccessor = require('../internals/proxy-accessor');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nmodule.exports = function (FULL_NAME, wrapper, FORCED, IS_AGGREGATE_ERROR) {\n var STACK_TRACE_LIMIT = 'stackTraceLimit';\n var OPTIONS_POSITION = IS_AGGREGATE_ERROR ? 2 : 1;\n var path = FULL_NAME.split('.');\n var ERROR_NAME = path[path.length - 1];\n var OriginalError = getBuiltIn.apply(null, path);\n\n if (!OriginalError) return;\n\n var OriginalErrorPrototype = OriginalError.prototype;\n\n // V8 9.3- bug https://bugs.chromium.org/p/v8/issues/detail?id=12006\n if (!IS_PURE && hasOwn(OriginalErrorPrototype, 'cause')) delete OriginalErrorPrototype.cause;\n\n if (!FORCED) return OriginalError;\n\n var BaseError = getBuiltIn('Error');\n\n var WrappedError = wrapper(function (a, b) {\n var message = normalizeStringArgument(IS_AGGREGATE_ERROR ? b : a, undefined);\n var result = IS_AGGREGATE_ERROR ? new OriginalError(a) : new OriginalError();\n if (message !== undefined) createNonEnumerableProperty(result, 'message', message);\n installErrorStack(result, WrappedError, result.stack, 2);\n if (this && isPrototypeOf(OriginalErrorPrototype, this)) inheritIfRequired(result, this, WrappedError);\n if (arguments.length > OPTIONS_POSITION) installErrorCause(result, arguments[OPTIONS_POSITION]);\n return result;\n });\n\n WrappedError.prototype = OriginalErrorPrototype;\n\n if (ERROR_NAME !== 'Error') {\n if (setPrototypeOf) setPrototypeOf(WrappedError, BaseError);\n else copyConstructorProperties(WrappedError, BaseError, { name: true });\n } else if (DESCRIPTORS && STACK_TRACE_LIMIT in OriginalError) {\n proxyAccessor(WrappedError, OriginalError, STACK_TRACE_LIMIT);\n proxyAccessor(WrappedError, OriginalError, 'prepareStackTrace');\n }\n\n copyConstructorProperties(WrappedError, OriginalError);\n\n if (!IS_PURE) try {\n // Safari 13- bug: WebAssembly errors does not have a proper `.name`\n if (OriginalErrorPrototype.name !== ERROR_NAME) {\n createNonEnumerableProperty(OriginalErrorPrototype, 'name', ERROR_NAME);\n }\n OriginalErrorPrototype.constructor = WrappedError;\n } catch (error) { /* empty */ }\n\n return WrappedError;\n};\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 $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\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","var $ = 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 $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\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 if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == '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 toObject = require('../internals/to-object');\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 fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\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 uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar FORCED = fails(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n});\n\n// `Date.prototype.toJSON` method\n// https://tc39.es/ecma262/#sec-date.prototype.tojson\n$({ target: 'Date', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O, 'number');\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","var hasOwn = require('../internals/has-own-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar dateToPrimitive = require('../internals/date-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar DatePrototype = Date.prototype;\n\n// `Date.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-date.prototype-@@toprimitive\nif (!hasOwn(DatePrototype, TO_PRIMITIVE)) {\n defineBuiltIn(DatePrototype, TO_PRIMITIVE, dateToPrimitive);\n}\n","/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = global[WEB_ASSEMBLY];\n\nvar FORCED = Error('e', { cause: 7 }).cause !== 7;\n\nvar exportGlobalErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(ERROR_NAME, wrapper, FORCED);\n $({ global: true, constructor: true, arity: 1, forced: FORCED }, O);\n};\n\nvar exportWebAssemblyErrorCauseWrapper = function (ERROR_NAME, wrapper) {\n if (WebAssembly && WebAssembly[ERROR_NAME]) {\n var O = {};\n O[ERROR_NAME] = wrapErrorConstructorWithCause(WEB_ASSEMBLY + '.' + ERROR_NAME, wrapper, FORCED);\n $({ target: WEB_ASSEMBLY, stat: true, constructor: true, arity: 1, forced: FORCED }, O);\n }\n};\n\n// https://tc39.es/ecma262/#sec-nativeerror\n// https://github.com/tc39/proposal-error-cause\nexportGlobalErrorCauseWrapper('Error', function (init) {\n return function Error(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('EvalError', function (init) {\n return function EvalError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('RangeError', function (init) {\n return function RangeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('ReferenceError', function (init) {\n return function ReferenceError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('SyntaxError', function (init) {\n return function SyntaxError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('TypeError', function (init) {\n return function TypeError(message) { return apply(init, this, arguments); };\n});\nexportGlobalErrorCauseWrapper('URIError', function (init) {\n return function URIError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('CompileError', function (init) {\n return function CompileError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('LinkError', function (init) {\n return function LinkError(message) { return apply(init, this, arguments); };\n});\nexportWebAssemblyErrorCauseWrapper('RuntimeError', function (init) {\n return function RuntimeError(message) { return apply(init, this, arguments); };\n});\n","var 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","var $ = 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')();\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","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\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 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 case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: 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');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = 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","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = 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 DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nvar getPrototypeOf = Object.getPrototypeOf;\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nvar setPrototypeOf = Object.setPrototypeOf;\nvar ObjectPrototype = Object.prototype;\nvar PROTO = '__proto__';\n\n// `Object.prototype.__proto__` accessor\n// https://tc39.es/ecma262/#sec-object.prototype.__proto__\nif (DESCRIPTORS && getPrototypeOf && setPrototypeOf && !(PROTO in ObjectPrototype)) try {\n defineBuiltInAccessor(ObjectPrototype, PROTO, {\n configurable: true,\n get: function __proto__() {\n return getPrototypeOf(toObject(this));\n },\n set: function __proto__(proto) {\n var O = requireObjectCoercible(this);\n if (!isObject(proto) && proto !== null || !isObject(O)) return;\n setPrototypeOf(O, proto);\n }\n });\n} catch (error) { /* empty */ }\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var 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(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 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","// 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 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';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar toString = require('../internals/to-string');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (S) {\n var R = anObject(this);\n var string = toString(S);\n var exec = R.exec;\n if (!isCallable(exec)) return call(nativeTest, R, string);\n var result = call(exec, R, string);\n if (result === null) return false;\n anObject(result);\n return true;\n }\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 collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\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, '$') !== '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 if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var 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 // 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 var 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 return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\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 requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\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","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\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 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 setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? 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} : 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 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 setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\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('test')) == 'Symbol(test)';\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","var $ = 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","var 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","// 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","var $ = 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 TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","var getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","var 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","var 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';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n // `DOMException.prototype.code` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n // `DOMException.prototype.message` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n // `DOMException.prototype.name` getter\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\n// `DOMException` constants\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","var getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\n// `DOMException.prototype[@@toStringTag]` property\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(global.setInterval, true);\n\n// Bun / IE9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: global.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(global.setTimeout, true);\n\n// Bun / IE9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.set-interval');\nrequire('../modules/web.set-timeout');\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 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.length = 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 validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\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) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n if (!DESCRIPTORS) this.length = 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 validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\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 validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\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) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) 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 validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\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.length = 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","// 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 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 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 if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\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 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","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return call(URL.prototype.toString, this);\n }\n});\n","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '"',\n\t\t'&': '&',\n\t\t'\\'': ''',\n\t\t'<': '<',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '>',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '`'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t\t.replace(/<\\u20D2/g, '<⃒')\n\t\t\t\t\t.replace(/fj/g, 'fj');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/>\\u20D2/g, '>⃒')\n\t\t\t\t.replace(/<\\u20D2/g, '<⃒');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `𝌆`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `𝌆`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","/*! Image Map Resizer (imageMapResizer.min.js ) - v1.0.10 - 2019-04-10\n * Desc: Resize HTML imageMap to scaled image.\n * Copyright: (c) 2019 David J. Bradshaw - dave@bradshaw.net\n * License: MIT\n */\n\n!function(){\"use strict\";function r(){function e(){var r={width:u.width/u.naturalWidth,height:u.height/u.naturalHeight},a={width:parseInt(window.getComputedStyle(u,null).getPropertyValue(\"padding-left\"),10),height:parseInt(window.getComputedStyle(u,null).getPropertyValue(\"padding-top\"),10)};i.forEach(function(e,t){var n=0;o[t].coords=e.split(\",\").map(function(e){var t=1==(n=1-n)?\"width\":\"height\";return a[t]+Math.floor(Number(e)*r[t])}).join(\",\")})}function t(e){return e.coords.replace(/ *, */g,\",\").replace(/ +/g,\",\")}function n(){clearTimeout(d),d=setTimeout(e,250)}function r(e){return document.querySelector('img[usemap=\"'+e+'\"]')}var a=this,o=null,i=null,u=null,d=null;\"function\"!=typeof a._resize?(o=a.getElementsByTagName(\"area\"),i=Array.prototype.map.call(o,t),u=r(\"#\"+a.name)||r(a.name),a._resize=e,u.addEventListener(\"load\",e,!1),window.addEventListener(\"focus\",e,!1),window.addEventListener(\"resize\",n,!1),window.addEventListener(\"readystatechange\",e,!1),document.addEventListener(\"fullscreenchange\",e,!1),u.width===u.naturalWidth&&u.height===u.naturalHeight||e()):a._resize()}function e(){function t(e){e&&(!function(e){if(!e.tagName)throw new TypeError(\"Object is not a valid DOM element\");if(\"MAP\"!==e.tagName.toUpperCase())throw new TypeError(\"Expected tag, found <\"+e.tagName+\">.\")}(e),r.call(e),n.push(e))}var n;return function(e){switch(n=[],typeof e){case\"undefined\":case\"string\":Array.prototype.forEach.call(document.querySelectorAll(e||\"map\"),t);break;case\"object\":t(e);break;default:throw new TypeError(\"Unexpected data type (\"+typeof e+\").\")}return n}}\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e():window.imageMapResize=e(),\"jQuery\"in window&&(window.jQuery.fn.imageMapResize=function(){return this.filter(\"map\").each(r).end()})}();\n//# sourceMappingURL=imageMapResizer.map","\n\n\n/**\n * UTM zones are grouped, and assigned to one of a group of 6\n * sets.\n *\n * {int} @private\n */\nvar NUM_100K_SETS = 6;\n\n/**\n * The column letters (for easting) of the lower left value, per\n * set.\n *\n * {string} @private\n */\nvar SET_ORIGIN_COLUMN_LETTERS = 'AJSAJS';\n\n/**\n * The row letters (for northing) of the lower left value, per\n * set.\n *\n * {string} @private\n */\nvar SET_ORIGIN_ROW_LETTERS = 'AFAFAF';\n\nvar A = 65; // A\nvar I = 73; // I\nvar O = 79; // O\nvar V = 86; // V\nvar Z = 90; // Z\nexport default {\n forward: forward,\n inverse: inverse,\n toPoint: toPoint\n};\n/**\n * Conversion of lat/lon to MGRS.\n *\n * @param {object} ll Object literal with lat and lon properties on a\n * WGS84 ellipsoid.\n * @param {int} accuracy Accuracy in digits (5 for 1 m, 4 for 10 m, 3 for\n * 100 m, 2 for 1000 m or 1 for 10000 m). Optional, default is 5.\n * @return {string} the MGRS string for the given location and accuracy.\n */\nexport function forward(ll, accuracy) {\n accuracy = accuracy || 5; // default accuracy 1m\n return encode(LLtoUTM({\n lat: ll[1],\n lon: ll[0]\n }), accuracy);\n};\n\n/**\n * Conversion of MGRS to lat/lon.\n *\n * @param {string} mgrs MGRS string.\n * @return {array} An array with left (longitude), bottom (latitude), right\n * (longitude) and top (latitude) values in WGS84, representing the\n * bounding box for the provided MGRS reference.\n */\nexport function inverse(mgrs) {\n var bbox = UTMtoLL(decode(mgrs.toUpperCase()));\n if (bbox.lat && bbox.lon) {\n return [bbox.lon, bbox.lat, bbox.lon, bbox.lat];\n }\n return [bbox.left, bbox.bottom, bbox.right, bbox.top];\n};\n\nexport function toPoint(mgrs) {\n var bbox = UTMtoLL(decode(mgrs.toUpperCase()));\n if (bbox.lat && bbox.lon) {\n return [bbox.lon, bbox.lat];\n }\n return [(bbox.left + bbox.right) / 2, (bbox.top + bbox.bottom) / 2];\n};\n/**\n * Conversion from degrees to radians.\n *\n * @private\n * @param {number} deg the angle in degrees.\n * @return {number} the angle in radians.\n */\nfunction degToRad(deg) {\n return (deg * (Math.PI / 180.0));\n}\n\n/**\n * Conversion from radians to degrees.\n *\n * @private\n * @param {number} rad the angle in radians.\n * @return {number} the angle in degrees.\n */\nfunction radToDeg(rad) {\n return (180.0 * (rad / Math.PI));\n}\n\n/**\n * Converts a set of Longitude and Latitude co-ordinates to UTM\n * using the WGS84 ellipsoid.\n *\n * @private\n * @param {object} ll Object literal with lat and lon properties\n * representing the WGS84 coordinate to be converted.\n * @return {object} Object literal containing the UTM value with easting,\n * northing, zoneNumber and zoneLetter properties, and an optional\n * accuracy property in digits. Returns null if the conversion failed.\n */\nfunction LLtoUTM(ll) {\n var Lat = ll.lat;\n var Long = ll.lon;\n var a = 6378137.0; //ellip.radius;\n var eccSquared = 0.00669438; //ellip.eccsq;\n var k0 = 0.9996;\n var LongOrigin;\n var eccPrimeSquared;\n var N, T, C, A, M;\n var LatRad = degToRad(Lat);\n var LongRad = degToRad(Long);\n var LongOriginRad;\n var ZoneNumber;\n // (int)\n ZoneNumber = Math.floor((Long + 180) / 6) + 1;\n\n //Make sure the longitude 180.00 is in Zone 60\n if (Long === 180) {\n ZoneNumber = 60;\n }\n\n // Special zone for Norway\n if (Lat >= 56.0 && Lat < 64.0 && Long >= 3.0 && Long < 12.0) {\n ZoneNumber = 32;\n }\n\n // Special zones for Svalbard\n if (Lat >= 72.0 && Lat < 84.0) {\n if (Long >= 0.0 && Long < 9.0) {\n ZoneNumber = 31;\n }\n else if (Long >= 9.0 && Long < 21.0) {\n ZoneNumber = 33;\n }\n else if (Long >= 21.0 && Long < 33.0) {\n ZoneNumber = 35;\n }\n else if (Long >= 33.0 && Long < 42.0) {\n ZoneNumber = 37;\n }\n }\n\n LongOrigin = (ZoneNumber - 1) * 6 - 180 + 3; //+3 puts origin\n // in middle of\n // zone\n LongOriginRad = degToRad(LongOrigin);\n\n eccPrimeSquared = (eccSquared) / (1 - eccSquared);\n\n N = a / Math.sqrt(1 - eccSquared * Math.sin(LatRad) * Math.sin(LatRad));\n T = Math.tan(LatRad) * Math.tan(LatRad);\n C = eccPrimeSquared * Math.cos(LatRad) * Math.cos(LatRad);\n A = Math.cos(LatRad) * (LongRad - LongOriginRad);\n\n M = a * ((1 - eccSquared / 4 - 3 * eccSquared * eccSquared / 64 - 5 * eccSquared * eccSquared * eccSquared / 256) * LatRad - (3 * eccSquared / 8 + 3 * eccSquared * eccSquared / 32 + 45 * eccSquared * eccSquared * eccSquared / 1024) * Math.sin(2 * LatRad) + (15 * eccSquared * eccSquared / 256 + 45 * eccSquared * eccSquared * eccSquared / 1024) * Math.sin(4 * LatRad) - (35 * eccSquared * eccSquared * eccSquared / 3072) * Math.sin(6 * LatRad));\n\n var UTMEasting = (k0 * N * (A + (1 - T + C) * A * A * A / 6.0 + (5 - 18 * T + T * T + 72 * C - 58 * eccPrimeSquared) * A * A * A * A * A / 120.0) + 500000.0);\n\n var UTMNorthing = (k0 * (M + N * Math.tan(LatRad) * (A * A / 2 + (5 - T + 9 * C + 4 * C * C) * A * A * A * A / 24.0 + (61 - 58 * T + T * T + 600 * C - 330 * eccPrimeSquared) * A * A * A * A * A * A / 720.0)));\n if (Lat < 0.0) {\n UTMNorthing += 10000000.0; //10000000 meter offset for\n // southern hemisphere\n }\n\n return {\n northing: Math.round(UTMNorthing),\n easting: Math.round(UTMEasting),\n zoneNumber: ZoneNumber,\n zoneLetter: getLetterDesignator(Lat)\n };\n}\n\n/**\n * Converts UTM coords to lat/long, using the WGS84 ellipsoid. This is a convenience\n * class where the Zone can be specified as a single string eg.\"60N\" which\n * is then broken down into the ZoneNumber and ZoneLetter.\n *\n * @private\n * @param {object} utm An object literal with northing, easting, zoneNumber\n * and zoneLetter properties. If an optional accuracy property is\n * provided (in meters), a bounding box will be returned instead of\n * latitude and longitude.\n * @return {object} An object literal containing either lat and lon values\n * (if no accuracy was provided), or top, right, bottom and left values\n * for the bounding box calculated according to the provided accuracy.\n * Returns null if the conversion failed.\n */\nfunction UTMtoLL(utm) {\n\n var UTMNorthing = utm.northing;\n var UTMEasting = utm.easting;\n var zoneLetter = utm.zoneLetter;\n var zoneNumber = utm.zoneNumber;\n // check the ZoneNummber is valid\n if (zoneNumber < 0 || zoneNumber > 60) {\n return null;\n }\n\n var k0 = 0.9996;\n var a = 6378137.0; //ellip.radius;\n var eccSquared = 0.00669438; //ellip.eccsq;\n var eccPrimeSquared;\n var e1 = (1 - Math.sqrt(1 - eccSquared)) / (1 + Math.sqrt(1 - eccSquared));\n var N1, T1, C1, R1, D, M;\n var LongOrigin;\n var mu, phi1Rad;\n\n // remove 500,000 meter offset for longitude\n var x = UTMEasting - 500000.0;\n var y = UTMNorthing;\n\n // We must know somehow if we are in the Northern or Southern\n // hemisphere, this is the only time we use the letter So even\n // if the Zone letter isn't exactly correct it should indicate\n // the hemisphere correctly\n if (zoneLetter < 'N') {\n y -= 10000000.0; // remove 10,000,000 meter offset used\n // for southern hemisphere\n }\n\n // There are 60 zones with zone 1 being at West -180 to -174\n LongOrigin = (zoneNumber - 1) * 6 - 180 + 3; // +3 puts origin\n // in middle of\n // zone\n\n eccPrimeSquared = (eccSquared) / (1 - eccSquared);\n\n M = y / k0;\n mu = M / (a * (1 - eccSquared / 4 - 3 * eccSquared * eccSquared / 64 - 5 * eccSquared * eccSquared * eccSquared / 256));\n\n phi1Rad = mu + (3 * e1 / 2 - 27 * e1 * e1 * e1 / 32) * Math.sin(2 * mu) + (21 * e1 * e1 / 16 - 55 * e1 * e1 * e1 * e1 / 32) * Math.sin(4 * mu) + (151 * e1 * e1 * e1 / 96) * Math.sin(6 * mu);\n // double phi1 = ProjMath.radToDeg(phi1Rad);\n\n N1 = a / Math.sqrt(1 - eccSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad));\n T1 = Math.tan(phi1Rad) * Math.tan(phi1Rad);\n C1 = eccPrimeSquared * Math.cos(phi1Rad) * Math.cos(phi1Rad);\n R1 = a * (1 - eccSquared) / Math.pow(1 - eccSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad), 1.5);\n D = x / (N1 * k0);\n\n var lat = phi1Rad - (N1 * Math.tan(phi1Rad) / R1) * (D * D / 2 - (5 + 3 * T1 + 10 * C1 - 4 * C1 * C1 - 9 * eccPrimeSquared) * D * D * D * D / 24 + (61 + 90 * T1 + 298 * C1 + 45 * T1 * T1 - 252 * eccPrimeSquared - 3 * C1 * C1) * D * D * D * D * D * D / 720);\n lat = radToDeg(lat);\n\n var lon = (D - (1 + 2 * T1 + C1) * D * D * D / 6 + (5 - 2 * C1 + 28 * T1 - 3 * C1 * C1 + 8 * eccPrimeSquared + 24 * T1 * T1) * D * D * D * D * D / 120) / Math.cos(phi1Rad);\n lon = LongOrigin + radToDeg(lon);\n\n var result;\n if (utm.accuracy) {\n var topRight = UTMtoLL({\n northing: utm.northing + utm.accuracy,\n easting: utm.easting + utm.accuracy,\n zoneLetter: utm.zoneLetter,\n zoneNumber: utm.zoneNumber\n });\n result = {\n top: topRight.lat,\n right: topRight.lon,\n bottom: lat,\n left: lon\n };\n }\n else {\n result = {\n lat: lat,\n lon: lon\n };\n }\n return result;\n}\n\n/**\n * Calculates the MGRS letter designator for the given latitude.\n *\n * @private\n * @param {number} lat The latitude in WGS84 to get the letter designator\n * for.\n * @return {char} The letter designator.\n */\nfunction getLetterDesignator(lat) {\n //This is here as an error flag to show that the Latitude is\n //outside MGRS limits\n var LetterDesignator = 'Z';\n\n if ((84 >= lat) && (lat >= 72)) {\n LetterDesignator = 'X';\n }\n else if ((72 > lat) && (lat >= 64)) {\n LetterDesignator = 'W';\n }\n else if ((64 > lat) && (lat >= 56)) {\n LetterDesignator = 'V';\n }\n else if ((56 > lat) && (lat >= 48)) {\n LetterDesignator = 'U';\n }\n else if ((48 > lat) && (lat >= 40)) {\n LetterDesignator = 'T';\n }\n else if ((40 > lat) && (lat >= 32)) {\n LetterDesignator = 'S';\n }\n else if ((32 > lat) && (lat >= 24)) {\n LetterDesignator = 'R';\n }\n else if ((24 > lat) && (lat >= 16)) {\n LetterDesignator = 'Q';\n }\n else if ((16 > lat) && (lat >= 8)) {\n LetterDesignator = 'P';\n }\n else if ((8 > lat) && (lat >= 0)) {\n LetterDesignator = 'N';\n }\n else if ((0 > lat) && (lat >= -8)) {\n LetterDesignator = 'M';\n }\n else if ((-8 > lat) && (lat >= -16)) {\n LetterDesignator = 'L';\n }\n else if ((-16 > lat) && (lat >= -24)) {\n LetterDesignator = 'K';\n }\n else if ((-24 > lat) && (lat >= -32)) {\n LetterDesignator = 'J';\n }\n else if ((-32 > lat) && (lat >= -40)) {\n LetterDesignator = 'H';\n }\n else if ((-40 > lat) && (lat >= -48)) {\n LetterDesignator = 'G';\n }\n else if ((-48 > lat) && (lat >= -56)) {\n LetterDesignator = 'F';\n }\n else if ((-56 > lat) && (lat >= -64)) {\n LetterDesignator = 'E';\n }\n else if ((-64 > lat) && (lat >= -72)) {\n LetterDesignator = 'D';\n }\n else if ((-72 > lat) && (lat >= -80)) {\n LetterDesignator = 'C';\n }\n return LetterDesignator;\n}\n\n/**\n * Encodes a UTM location as MGRS string.\n *\n * @private\n * @param {object} utm An object literal with easting, northing,\n * zoneLetter, zoneNumber\n * @param {number} accuracy Accuracy in digits (1-5).\n * @return {string} MGRS string for the given UTM location.\n */\nfunction encode(utm, accuracy) {\n // prepend with leading zeroes\n var seasting = \"00000\" + utm.easting,\n snorthing = \"00000\" + utm.northing;\n\n return utm.zoneNumber + utm.zoneLetter + get100kID(utm.easting, utm.northing, utm.zoneNumber) + seasting.substr(seasting.length - 5, accuracy) + snorthing.substr(snorthing.length - 5, accuracy);\n}\n\n/**\n * Get the two letter 100k designator for a given UTM easting,\n * northing and zone number value.\n *\n * @private\n * @param {number} easting\n * @param {number} northing\n * @param {number} zoneNumber\n * @return the two letter 100k designator for the given UTM location.\n */\nfunction get100kID(easting, northing, zoneNumber) {\n var setParm = get100kSetForZone(zoneNumber);\n var setColumn = Math.floor(easting / 100000);\n var setRow = Math.floor(northing / 100000) % 20;\n return getLetter100kID(setColumn, setRow, setParm);\n}\n\n/**\n * Given a UTM zone number, figure out the MGRS 100K set it is in.\n *\n * @private\n * @param {number} i An UTM zone number.\n * @return {number} the 100k set the UTM zone is in.\n */\nfunction get100kSetForZone(i) {\n var setParm = i % NUM_100K_SETS;\n if (setParm === 0) {\n setParm = NUM_100K_SETS;\n }\n\n return setParm;\n}\n\n/**\n * Get the two-letter MGRS 100k designator given information\n * translated from the UTM northing, easting and zone number.\n *\n * @private\n * @param {number} column the column index as it relates to the MGRS\n * 100k set spreadsheet, created from the UTM easting.\n * Values are 1-8.\n * @param {number} row the row index as it relates to the MGRS 100k set\n * spreadsheet, created from the UTM northing value. Values\n * are from 0-19.\n * @param {number} parm the set block, as it relates to the MGRS 100k set\n * spreadsheet, created from the UTM zone. Values are from\n * 1-60.\n * @return two letter MGRS 100k code.\n */\nfunction getLetter100kID(column, row, parm) {\n // colOrigin and rowOrigin are the letters at the origin of the set\n var index = parm - 1;\n var colOrigin = SET_ORIGIN_COLUMN_LETTERS.charCodeAt(index);\n var rowOrigin = SET_ORIGIN_ROW_LETTERS.charCodeAt(index);\n\n // colInt and rowInt are the letters to build to return\n var colInt = colOrigin + column - 1;\n var rowInt = rowOrigin + row;\n var rollover = false;\n\n if (colInt > Z) {\n colInt = colInt - Z + A - 1;\n rollover = true;\n }\n\n if (colInt === I || (colOrigin < I && colInt > I) || ((colInt > I || colOrigin < I) && rollover)) {\n colInt++;\n }\n\n if (colInt === O || (colOrigin < O && colInt > O) || ((colInt > O || colOrigin < O) && rollover)) {\n colInt++;\n\n if (colInt === I) {\n colInt++;\n }\n }\n\n if (colInt > Z) {\n colInt = colInt - Z + A - 1;\n }\n\n if (rowInt > V) {\n rowInt = rowInt - V + A - 1;\n rollover = true;\n }\n else {\n rollover = false;\n }\n\n if (((rowInt === I) || ((rowOrigin < I) && (rowInt > I))) || (((rowInt > I) || (rowOrigin < I)) && rollover)) {\n rowInt++;\n }\n\n if (((rowInt === O) || ((rowOrigin < O) && (rowInt > O))) || (((rowInt > O) || (rowOrigin < O)) && rollover)) {\n rowInt++;\n\n if (rowInt === I) {\n rowInt++;\n }\n }\n\n if (rowInt > V) {\n rowInt = rowInt - V + A - 1;\n }\n\n var twoLetter = String.fromCharCode(colInt) + String.fromCharCode(rowInt);\n return twoLetter;\n}\n\n/**\n * Decode the UTM parameters from a MGRS string.\n *\n * @private\n * @param {string} mgrsString an UPPERCASE coordinate string is expected.\n * @return {object} An object literal with easting, northing, zoneLetter,\n * zoneNumber and accuracy (in meters) properties.\n */\nfunction decode(mgrsString) {\n\n if (mgrsString && mgrsString.length === 0) {\n throw (\"MGRSPoint coverting from nothing\");\n }\n\n var length = mgrsString.length;\n\n var hunK = null;\n var sb = \"\";\n var testChar;\n var i = 0;\n\n // get Zone number\n while (!(/[A-Z]/).test(testChar = mgrsString.charAt(i))) {\n if (i >= 2) {\n throw (\"MGRSPoint bad conversion from: \" + mgrsString);\n }\n sb += testChar;\n i++;\n }\n\n var zoneNumber = parseInt(sb, 10);\n\n if (i === 0 || i + 3 > length) {\n // A good MGRS string has to be 4-5 digits long,\n // ##AAA/#AAA at least.\n throw (\"MGRSPoint bad conversion from: \" + mgrsString);\n }\n\n var zoneLetter = mgrsString.charAt(i++);\n\n // Should we check the zone letter here? Why not.\n if (zoneLetter <= 'A' || zoneLetter === 'B' || zoneLetter === 'Y' || zoneLetter >= 'Z' || zoneLetter === 'I' || zoneLetter === 'O') {\n throw (\"MGRSPoint zone letter \" + zoneLetter + \" not handled: \" + mgrsString);\n }\n\n hunK = mgrsString.substring(i, i += 2);\n\n var set = get100kSetForZone(zoneNumber);\n\n var east100k = getEastingFromChar(hunK.charAt(0), set);\n var north100k = getNorthingFromChar(hunK.charAt(1), set);\n\n // We have a bug where the northing may be 2000000 too low.\n // How\n // do we know when to roll over?\n\n while (north100k < getMinNorthing(zoneLetter)) {\n north100k += 2000000;\n }\n\n // calculate the char index for easting/northing separator\n var remainder = length - i;\n\n if (remainder % 2 !== 0) {\n throw (\"MGRSPoint has to have an even number \\nof digits after the zone letter and two 100km letters - front \\nhalf for easting meters, second half for \\nnorthing meters\" + mgrsString);\n }\n\n var sep = remainder / 2;\n\n var sepEasting = 0.0;\n var sepNorthing = 0.0;\n var accuracyBonus, sepEastingString, sepNorthingString, easting, northing;\n if (sep > 0) {\n accuracyBonus = 100000.0 / Math.pow(10, sep);\n sepEastingString = mgrsString.substring(i, i + sep);\n sepEasting = parseFloat(sepEastingString) * accuracyBonus;\n sepNorthingString = mgrsString.substring(i + sep);\n sepNorthing = parseFloat(sepNorthingString) * accuracyBonus;\n }\n\n easting = sepEasting + east100k;\n northing = sepNorthing + north100k;\n\n return {\n easting: easting,\n northing: northing,\n zoneLetter: zoneLetter,\n zoneNumber: zoneNumber,\n accuracy: accuracyBonus\n };\n}\n\n/**\n * Given the first letter from a two-letter MGRS 100k zone, and given the\n * MGRS table set for the zone number, figure out the easting value that\n * should be added to the other, secondary easting value.\n *\n * @private\n * @param {char} e The first letter from a two-letter MGRS 100´k zone.\n * @param {number} set The MGRS table set for the zone number.\n * @return {number} The easting value for the given letter and set.\n */\nfunction getEastingFromChar(e, set) {\n // colOrigin is the letter at the origin of the set for the\n // column\n var curCol = SET_ORIGIN_COLUMN_LETTERS.charCodeAt(set - 1);\n var eastingValue = 100000.0;\n var rewindMarker = false;\n\n while (curCol !== e.charCodeAt(0)) {\n curCol++;\n if (curCol === I) {\n curCol++;\n }\n if (curCol === O) {\n curCol++;\n }\n if (curCol > Z) {\n if (rewindMarker) {\n throw (\"Bad character: \" + e);\n }\n curCol = A;\n rewindMarker = true;\n }\n eastingValue += 100000.0;\n }\n\n return eastingValue;\n}\n\n/**\n * Given the second letter from a two-letter MGRS 100k zone, and given the\n * MGRS table set for the zone number, figure out the northing value that\n * should be added to the other, secondary northing value. You have to\n * remember that Northings are determined from the equator, and the vertical\n * cycle of letters mean a 2000000 additional northing meters. This happens\n * approx. every 18 degrees of latitude. This method does *NOT* count any\n * additional northings. You have to figure out how many 2000000 meters need\n * to be added for the zone letter of the MGRS coordinate.\n *\n * @private\n * @param {char} n Second letter of the MGRS 100k zone\n * @param {number} set The MGRS table set number, which is dependent on the\n * UTM zone number.\n * @return {number} The northing value for the given letter and set.\n */\nfunction getNorthingFromChar(n, set) {\n\n if (n > 'V') {\n throw (\"MGRSPoint given invalid Northing \" + n);\n }\n\n // rowOrigin is the letter at the origin of the set for the\n // column\n var curRow = SET_ORIGIN_ROW_LETTERS.charCodeAt(set - 1);\n var northingValue = 0.0;\n var rewindMarker = false;\n\n while (curRow !== n.charCodeAt(0)) {\n curRow++;\n if (curRow === I) {\n curRow++;\n }\n if (curRow === O) {\n curRow++;\n }\n // fixing a bug making whole application hang in this loop\n // when 'n' is a wrong character\n if (curRow > V) {\n if (rewindMarker) { // making sure that this loop ends\n throw (\"Bad character: \" + n);\n }\n curRow = A;\n rewindMarker = true;\n }\n northingValue += 100000.0;\n }\n\n return northingValue;\n}\n\n/**\n * The function getMinNorthing returns the minimum northing value of a MGRS\n * zone.\n *\n * Ported from Geotrans' c Lattitude_Band_Value structure table.\n *\n * @private\n * @param {char} zoneLetter The MGRS zone to get the min northing for.\n * @return {number}\n */\nfunction getMinNorthing(zoneLetter) {\n var northing;\n switch (zoneLetter) {\n case 'C':\n northing = 1100000.0;\n break;\n case 'D':\n northing = 2000000.0;\n break;\n case 'E':\n northing = 2800000.0;\n break;\n case 'F':\n northing = 3700000.0;\n break;\n case 'G':\n northing = 4600000.0;\n break;\n case 'H':\n northing = 5500000.0;\n break;\n case 'J':\n northing = 6400000.0;\n break;\n case 'K':\n northing = 7300000.0;\n break;\n case 'L':\n northing = 8200000.0;\n break;\n case 'M':\n northing = 9100000.0;\n break;\n case 'N':\n northing = 0.0;\n break;\n case 'P':\n northing = 800000.0;\n break;\n case 'Q':\n northing = 1700000.0;\n break;\n case 'R':\n northing = 2600000.0;\n break;\n case 'S':\n northing = 3500000.0;\n break;\n case 'T':\n northing = 4400000.0;\n break;\n case 'U':\n northing = 5300000.0;\n break;\n case 'V':\n northing = 6200000.0;\n break;\n case 'W':\n northing = 7000000.0;\n break;\n case 'X':\n northing = 7900000.0;\n break;\n default:\n northing = -1.0;\n }\n if (northing >= 0.0) {\n return northing;\n }\n else {\n throw (\"Invalid zone letter: \" + zoneLetter);\n }\n\n}\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n standalone:\n 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var trim = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '');\n}\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n var headersArr = trim(headers).split('\\n')\n\n for (var i = 0; i < headersArr.length; i++) {\n var row = headersArr[i]\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n\n return result\n}\n","/*!\n * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday\n */\n\n(function (root, factory)\n{\n 'use strict';\n\n var moment;\n if (typeof exports === 'object') {\n // CommonJS module\n // Load moment.js as an optional dependency\n try { moment = require('moment'); } catch (e) {}\n module.exports = factory(moment);\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function (req)\n {\n // Load moment.js as an optional dependency\n var id = 'moment';\n try { moment = req(id); } catch (e) {}\n return factory(moment);\n });\n } else {\n root.Pikaday = factory(root.moment);\n }\n}(this, function (moment)\n{\n 'use strict';\n\n /**\n * feature detection and helper functions\n */\n var hasMoment = typeof moment === 'function',\n\n hasEventListeners = !!window.addEventListener,\n\n document = window.document,\n\n sto = window.setTimeout,\n\n addEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.addEventListener(e, callback, !!capture);\n } else {\n el.attachEvent('on' + e, callback);\n }\n },\n\n removeEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.removeEventListener(e, callback, !!capture);\n } else {\n el.detachEvent('on' + e, callback);\n }\n },\n\n trim = function(str)\n {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n },\n\n hasClass = function(el, cn)\n {\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\n },\n\n addClass = function(el, cn)\n {\n if (!hasClass(el, cn)) {\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\n }\n },\n\n removeClass = function(el, cn)\n {\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\n },\n\n isArray = function(obj)\n {\n return (/Array/).test(Object.prototype.toString.call(obj));\n },\n\n isDate = function(obj)\n {\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n },\n\n isWeekend = function(date)\n {\n var day = date.getDay();\n return day === 0 || day === 6;\n },\n\n isLeapYear = function(year)\n {\n // solution lifted from date.js (MIT license): https://github.com/datejs/Datejs\n return ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);\n },\n\n getDaysInMonth = function(year, month)\n {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n },\n\n setToStartOfDay = function(date)\n {\n if (isDate(date)) date.setHours(0,0,0,0);\n },\n\n compareDates = function(a,b)\n {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n },\n\n extend = function(to, from, overwrite)\n {\n var prop, hasProp;\n for (prop in from) {\n hasProp = to[prop] !== undefined;\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\n if (isDate(from[prop])) {\n if (overwrite) {\n to[prop] = new Date(from[prop].getTime());\n }\n }\n else if (isArray(from[prop])) {\n if (overwrite) {\n to[prop] = from[prop].slice(0);\n }\n } else {\n to[prop] = extend({}, from[prop], overwrite);\n }\n } else if (overwrite || !hasProp) {\n to[prop] = from[prop];\n }\n }\n return to;\n },\n\n fireEvent = function(el, eventName, data)\n {\n var ev;\n\n if (document.createEvent) {\n ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, true, false);\n ev = extend(ev, data);\n el.dispatchEvent(ev);\n } else if (document.createEventObject) {\n ev = document.createEventObject();\n ev = extend(ev, data);\n el.fireEvent('on' + eventName, ev);\n }\n },\n\n adjustCalendar = function(calendar) {\n if (calendar.month < 0) {\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\n calendar.month += 12;\n }\n if (calendar.month > 11) {\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\n calendar.month -= 12;\n }\n return calendar;\n },\n\n /**\n * defaults and localisation\n */\n defaults = {\n\n // bind the picker to a form field\n field: null,\n\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n bound: undefined,\n\n // data-attribute on the input field with an aria assistance text (only applied when `bound` is set)\n ariaLabel: 'Use the arrow keys to pick a date',\n\n // position of the datepicker, relative to the field (default to bottom & left)\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n position: 'bottom left',\n\n // automatically fit in the viewport even if it means repositioning from the position option\n reposition: true,\n\n // the default output format for `.toString()` and `field` value\n format: 'YYYY-MM-DD',\n\n // the toString function which gets passed a current date object and format\n // and returns a string\n toString: null,\n\n // used to create date object from current input string\n parse: null,\n\n // the initial date to view when first opened\n defaultDate: null,\n\n // make the `defaultDate` the initial selected value\n setDefaultDate: false,\n\n // first day of week (0: Sunday, 1: Monday etc)\n firstDay: 0,\n\n // minimum number of days in the week that gets week number one\n // default ISO 8601, week 01 is the week with the first Thursday (4)\n firstWeekOfYearMinDays: 4,\n\n // the default flag for moment's strict date parsing\n formatStrict: false,\n\n // the minimum/earliest date that can be selected\n minDate: null,\n // the maximum/latest date that can be selected\n maxDate: null,\n\n // number of years either side, or array of upper/lower range\n yearRange: 10,\n\n // show week numbers at head of row\n showWeekNumber: false,\n\n // Week picker mode\n pickWholeWeek: false,\n\n // used internally (don't config outside)\n minYear: 0,\n maxYear: 9999,\n minMonth: undefined,\n maxMonth: undefined,\n\n startRange: null,\n endRange: null,\n\n isRTL: false,\n\n // Additional text to append to the year in the calendar title\n yearSuffix: '',\n\n // Render the month after year in the calendar title\n showMonthAfterYear: false,\n\n // Render days of the calendar grid that fall in the next or previous month\n showDaysInNextAndPreviousMonths: false,\n\n // Allows user to select days that fall in the next or previous month\n enableSelectionDaysInNextAndPreviousMonths: false,\n\n // how many months are visible\n numberOfMonths: 1,\n\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n // only used for the first display or when a selected date is not visible\n mainCalendar: 'left',\n\n // Specify a DOM element to render the calendar in\n container: undefined,\n\n // Blur field when date is selected\n blurFieldOnSelect : true,\n\n // internationalization\n i18n: {\n previousMonth : 'Previous Month',\n nextMonth : 'Next Month',\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\n },\n\n // Theme Classname\n theme: null,\n\n // events array\n events: [],\n\n // callback function\n onSelect: null,\n onOpen: null,\n onClose: null,\n onDraw: null,\n\n // Enable keyboard input\n keyboardInput: true\n },\n\n\n /**\n * templating functions to abstract HTML rendering\n */\n renderDayName = function(opts, day, abbr)\n {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n },\n\n renderDay = function(opts)\n {\n var arr = [];\n var ariaSelected = 'false';\n if (opts.isEmpty) {\n if (opts.showDaysInNextAndPreviousMonths) {\n arr.push('is-outside-current-month');\n\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\n arr.push('is-selection-disabled');\n }\n\n } else {\n return '';\n }\n }\n if (opts.isDisabled) {\n arr.push('is-disabled');\n }\n if (opts.isToday) {\n arr.push('is-today');\n }\n if (opts.isSelected) {\n arr.push('is-selected');\n ariaSelected = 'true';\n }\n if (opts.hasEvent) {\n arr.push('has-event');\n }\n if (opts.isInRange) {\n arr.push('is-inrange');\n }\n if (opts.isStartRange) {\n arr.push('is-startrange');\n }\n if (opts.isEndRange) {\n arr.push('is-endrange');\n }\n return '' +\n '' +\n '';\n },\n\n isoWeek = function(date, firstWeekOfYearMinDays) {\n // Ensure we're at the start of the day.\n date.setHours(0, 0, 0, 0);\n\n // Thursday in current week decides the year because January 4th\n // is always in the first week according to ISO8601.\n var yearDay = date.getDate(),\n weekDay = date.getDay(),\n dayInFirstWeek = firstWeekOfYearMinDays,\n dayShift = dayInFirstWeek - 1, // counting starts at 0\n daysPerWeek = 7,\n prevWeekDay = function(day) { return (day + daysPerWeek - 1) % daysPerWeek; };\n\n // Adjust to Thursday in week 1 and count number of weeks from date to week 1.\n date.setDate(yearDay + dayShift - prevWeekDay(weekDay));\n\n var jan4th = new Date(date.getFullYear(), 0, dayInFirstWeek),\n msPerDay = 24 * 60 * 60 * 1000,\n daysBetween = (date.getTime() - jan4th.getTime()) / msPerDay,\n weekNum = 1 + Math.round((daysBetween - dayShift + prevWeekDay(jan4th.getDay())) / daysPerWeek);\n\n return weekNum;\n },\n\n renderWeek = function (d, m, y, firstWeekOfYearMinDays) {\n var date = new Date(y, m, d),\n week = hasMoment ? moment(date).isoWeek() : isoWeek(date, firstWeekOfYearMinDays);\n\n return '' + week + '';\n },\n\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\n {\n return '' + (isRTL ? days.reverse() : days).join('') + '';\n },\n\n renderBody = function(rows)\n {\n return '' + rows.join('') + '';\n },\n\n renderHead = function(opts)\n {\n var i, arr = [];\n if (opts.showWeekNumber) {\n arr.push('');\n }\n for (i = 0; i < 7; i++) {\n arr.push('' + renderDayName(opts, i, true) + '');\n }\n return '' + (opts.isRTL ? arr.reverse() : arr).join('') + '';\n },\n\n renderTitle = function(instance, c, year, month, refYear, randId)\n {\n var i, j, arr,\n opts = instance._o,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear,\n html = '
    ',\n monthHtml,\n yearHtml,\n prev = true,\n next = true;\n\n for (arr = [], i = 0; i < 12; i++) {\n arr.push('');\n }\n\n monthHtml = '
    ' + opts.i18n.months[month] + '
    ';\n\n if (isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push('');\n }\n }\n yearHtml = '
    ' + year + opts.yearSuffix + '
    ';\n\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n prev = false;\n }\n\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n next = false;\n }\n\n if (c === 0) {\n html += '';\n }\n if (c === (instance._o.numberOfMonths - 1) ) {\n html += '';\n }\n\n return html += '
    ';\n },\n\n renderTable = function(opts, data, randId)\n {\n return '' + renderHead(opts) + renderBody(data) + '
    ';\n },\n\n\n /**\n * Pikaday constructor\n */\n Pikaday = function(options)\n {\n var self = this,\n opts = self.config(options);\n\n self._onMouseDown = function(e)\n {\n if (!self._v) {\n return;\n }\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n\n if (!hasClass(target, 'is-disabled')) {\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\n if (opts.bound) {\n sto(function() {\n self.hide();\n if (opts.blurFieldOnSelect && opts.field) {\n opts.field.blur();\n }\n }, 100);\n }\n }\n else if (hasClass(target, 'pika-prev')) {\n self.prevMonth();\n }\n else if (hasClass(target, 'pika-next')) {\n self.nextMonth();\n }\n }\n if (!hasClass(target, 'pika-select')) {\n // if this is touch event prevent mouse events emulation\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n return false;\n }\n } else {\n self._c = true;\n }\n };\n\n self._onChange = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n if (hasClass(target, 'pika-select-month')) {\n self.gotoMonth(target.value);\n }\n else if (hasClass(target, 'pika-select-year')) {\n self.gotoYear(target.value);\n }\n };\n\n self._onKeyChange = function(e)\n {\n e = e || window.event;\n\n if (self.isVisible()) {\n\n switch(e.keyCode){\n case 13:\n case 27:\n if (opts.field) {\n opts.field.blur();\n }\n break;\n case 37:\n self.adjustDate('subtract', 1);\n break;\n case 38:\n self.adjustDate('subtract', 7);\n break;\n case 39:\n self.adjustDate('add', 1);\n break;\n case 40:\n self.adjustDate('add', 7);\n break;\n case 8:\n case 46:\n self.setDate(null);\n break;\n }\n }\n };\n\n self._parseFieldValue = function()\n {\n if (opts.parse) {\n return opts.parse(opts.field.value, opts.format);\n } else if (hasMoment) {\n var date = moment(opts.field.value, opts.format, opts.formatStrict);\n return (date && date.isValid()) ? date.toDate() : null;\n } else {\n return new Date(Date.parse(opts.field.value));\n }\n };\n\n self._onInputChange = function(e)\n {\n var date;\n\n if (e.firedBy === self) {\n return;\n }\n date = self._parseFieldValue();\n if (isDate(date)) {\n self.setDate(date);\n }\n if (!self._v) {\n self.show();\n }\n };\n\n self._onInputFocus = function()\n {\n self.show();\n };\n\n self._onInputClick = function()\n {\n self.show();\n };\n\n self._onInputBlur = function()\n {\n // IE allows pika div to gain focus; catch blur the input field\n var pEl = document.activeElement;\n do {\n if (hasClass(pEl, 'pika-single')) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n\n if (!self._c) {\n self._b = sto(function() {\n self.hide();\n }, 50);\n }\n self._c = false;\n };\n\n self._onClick = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement,\n pEl = target;\n if (!target) {\n return;\n }\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\n if (!target.onchange) {\n target.setAttribute('onchange', 'return;');\n addEvent(target, 'change', self._onChange);\n }\n }\n do {\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n self.hide();\n }\n };\n\n self.el = document.createElement('div');\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\n\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\n addEvent(self.el, 'touchend', self._onMouseDown, true);\n addEvent(self.el, 'change', self._onChange);\n\n if (opts.keyboardInput) {\n addEvent(document, 'keydown', self._onKeyChange);\n }\n\n if (opts.field) {\n if (opts.container) {\n opts.container.appendChild(self.el);\n } else if (opts.bound) {\n document.body.appendChild(self.el);\n } else {\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\n }\n addEvent(opts.field, 'change', self._onInputChange);\n\n if (!opts.defaultDate) {\n opts.defaultDate = self._parseFieldValue();\n opts.setDefaultDate = true;\n }\n }\n\n var defDate = opts.defaultDate;\n\n if (isDate(defDate)) {\n if (opts.setDefaultDate) {\n self.setDate(defDate, true);\n } else {\n self.gotoDate(defDate);\n }\n } else {\n self.gotoDate(new Date());\n }\n\n if (opts.bound) {\n this.hide();\n self.el.className += ' is-bound';\n addEvent(opts.trigger, 'click', self._onInputClick);\n addEvent(opts.trigger, 'focus', self._onInputFocus);\n addEvent(opts.trigger, 'blur', self._onInputBlur);\n } else {\n this.show();\n }\n };\n\n\n /**\n * public Pikaday API\n */\n Pikaday.prototype = {\n\n\n /**\n * configure functionality\n */\n config: function(options)\n {\n if (!this._o) {\n this._o = extend({}, defaults, true);\n }\n\n var opts = extend(this._o, options, true);\n\n opts.isRTL = !!opts.isRTL;\n\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\n\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\n\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\n\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\n\n opts.disableWeekends = !!opts.disableWeekends;\n\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\n\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\n opts.numberOfMonths = nom > 4 ? 4 : nom;\n\n if (!isDate(opts.minDate)) {\n opts.minDate = false;\n }\n if (!isDate(opts.maxDate)) {\n opts.maxDate = false;\n }\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\n opts.maxDate = opts.minDate = false;\n }\n if (opts.minDate) {\n this.setMinDate(opts.minDate);\n }\n if (opts.maxDate) {\n this.setMaxDate(opts.maxDate);\n }\n\n if (isArray(opts.yearRange)) {\n var fallback = new Date().getFullYear() - 10;\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n } else {\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n if (opts.yearRange > 100) {\n opts.yearRange = 100;\n }\n }\n\n return opts;\n },\n\n /**\n * return a formatted string of the current selection (using Moment.js if available)\n */\n toString: function(format)\n {\n format = format || this._o.format;\n if (!isDate(this._d)) {\n return '';\n }\n if (this._o.toString) {\n return this._o.toString(this._d, format);\n }\n if (hasMoment) {\n return moment(this._d).format(format);\n }\n return this._d.toDateString();\n },\n\n /**\n * return a Moment.js object of the current selection (if available)\n */\n getMoment: function()\n {\n return hasMoment ? moment(this._d) : null;\n },\n\n /**\n * set the current selection from a Moment.js object (if available)\n */\n setMoment: function(date, preventOnSelect)\n {\n if (hasMoment && moment.isMoment(date)) {\n this.setDate(date.toDate(), preventOnSelect);\n }\n },\n\n /**\n * return a Date object of the current selection\n */\n getDate: function()\n {\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\n },\n\n /**\n * set the current selection\n */\n setDate: function(date, preventOnSelect)\n {\n if (!date) {\n this._d = null;\n\n if (this._o.field) {\n this._o.field.value = '';\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n\n return this.draw();\n }\n if (typeof date === 'string') {\n date = new Date(Date.parse(date));\n }\n if (!isDate(date)) {\n return;\n }\n\n var min = this._o.minDate,\n max = this._o.maxDate;\n\n if (isDate(min) && date < min) {\n date = min;\n } else if (isDate(max) && date > max) {\n date = max;\n }\n\n this._d = new Date(date.getTime());\n setToStartOfDay(this._d);\n this.gotoDate(this._d);\n\n if (this._o.field) {\n this._o.field.value = this.toString();\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\n this._o.onSelect.call(this, this.getDate());\n }\n },\n\n /**\n * clear and reset the date\n */\n clear: function()\n {\n this.setDate(null);\n },\n\n /**\n * change view to a specific date\n */\n gotoDate: function(date)\n {\n var newCalendar = true;\n\n if (!isDate(date)) {\n return;\n }\n\n if (this.calendars) {\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\n visibleDate = date.getTime();\n // get the end of the month\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\n }\n\n if (newCalendar) {\n this.calendars = [{\n month: date.getMonth(),\n year: date.getFullYear()\n }];\n if (this._o.mainCalendar === 'right') {\n this.calendars[0].month += 1 - this._o.numberOfMonths;\n }\n }\n\n this.adjustCalendars();\n },\n\n adjustDate: function(sign, days) {\n\n var day = this.getDate() || new Date();\n var difference = parseInt(days)*24*60*60*1000;\n\n var newDay;\n\n if (sign === 'add') {\n newDay = new Date(day.valueOf() + difference);\n } else if (sign === 'subtract') {\n newDay = new Date(day.valueOf() - difference);\n }\n\n this.setDate(newDay);\n },\n\n adjustCalendars: function() {\n this.calendars[0] = adjustCalendar(this.calendars[0]);\n for (var c = 1; c < this._o.numberOfMonths; c++) {\n this.calendars[c] = adjustCalendar({\n month: this.calendars[0].month + c,\n year: this.calendars[0].year\n });\n }\n this.draw();\n },\n\n gotoToday: function()\n {\n this.gotoDate(new Date());\n },\n\n /**\n * change view to a specific month (zero-index, e.g. 0: January)\n */\n gotoMonth: function(month)\n {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n },\n\n nextMonth: function()\n {\n this.calendars[0].month++;\n this.adjustCalendars();\n },\n\n prevMonth: function()\n {\n this.calendars[0].month--;\n this.adjustCalendars();\n },\n\n /**\n * change view to a specific full year (e.g. \"2012\")\n */\n gotoYear: function(year)\n {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n },\n\n /**\n * change the minDate\n */\n setMinDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.minDate = value;\n this._o.minYear = value.getFullYear();\n this._o.minMonth = value.getMonth();\n } else {\n this._o.minDate = defaults.minDate;\n this._o.minYear = defaults.minYear;\n this._o.minMonth = defaults.minMonth;\n this._o.startRange = defaults.startRange;\n }\n\n this.draw();\n },\n\n /**\n * change the maxDate\n */\n setMaxDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.maxDate = value;\n this._o.maxYear = value.getFullYear();\n this._o.maxMonth = value.getMonth();\n } else {\n this._o.maxDate = defaults.maxDate;\n this._o.maxYear = defaults.maxYear;\n this._o.maxMonth = defaults.maxMonth;\n this._o.endRange = defaults.endRange;\n }\n\n this.draw();\n },\n\n setStartRange: function(value)\n {\n this._o.startRange = value;\n },\n\n setEndRange: function(value)\n {\n this._o.endRange = value;\n },\n\n /**\n * refresh the HTML\n */\n draw: function(force)\n {\n if (!this._v && !force) {\n return;\n }\n var opts = this._o,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth,\n html = '',\n randId;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n for (var c = 0; c < opts.numberOfMonths; c++) {\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n html += '
    ' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
    ';\n }\n\n this.el.innerHTML = html;\n\n if (opts.bound) {\n if(opts.field.type !== 'hidden') {\n sto(function() {\n opts.trigger.focus();\n }, 1);\n }\n }\n\n if (typeof this._o.onDraw === 'function') {\n this._o.onDraw(this);\n }\n\n if (opts.bound) {\n // let the screen reader user know to use arrow keys\n opts.field.setAttribute('aria-label', opts.ariaLabel);\n }\n },\n\n adjustPosition: function()\n {\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\n\n if (this._o.container) return;\n\n this.el.style.position = 'absolute';\n\n field = this._o.trigger;\n pEl = field;\n width = this.el.offsetWidth;\n height = this.el.offsetHeight;\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n leftAligned = true;\n bottomAligned = true;\n\n if (typeof field.getBoundingClientRect === 'function') {\n clientRect = field.getBoundingClientRect();\n left = clientRect.left + window.pageXOffset;\n top = clientRect.bottom + window.pageYOffset;\n } else {\n left = pEl.offsetLeft;\n top = pEl.offsetTop + pEl.offsetHeight;\n while((pEl = pEl.offsetParent)) {\n left += pEl.offsetLeft;\n top += pEl.offsetTop;\n }\n }\n\n // default position is bottom & left\n if ((this._o.reposition && left + width > viewportWidth) ||\n (\n this._o.position.indexOf('right') > -1 &&\n left - width + field.offsetWidth > 0\n )\n ) {\n left = left - width + field.offsetWidth;\n leftAligned = false;\n }\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\n (\n this._o.position.indexOf('top') > -1 &&\n top - height - field.offsetHeight > 0\n )\n ) {\n top = top - height - field.offsetHeight;\n bottomAligned = false;\n }\n\n this.el.style.left = left + 'px';\n this.el.style.top = top + 'px';\n\n addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned');\n addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned');\n removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned');\n removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned');\n },\n\n /**\n * render HTML for a particular month\n */\n render: function(year, month, randId)\n {\n var opts = this._o,\n now = new Date(),\n days = getDaysInMonth(year, month),\n before = new Date(year, month, 1).getDay(),\n data = [],\n row = [];\n setToStartOfDay(now);\n if (opts.firstDay > 0) {\n before -= opts.firstDay;\n if (before < 0) {\n before += 7;\n }\n }\n var previousMonth = month === 0 ? 11 : month - 1,\n nextMonth = month === 11 ? 0 : month + 1,\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\n yearOfNextMonth = month === 11 ? year + 1 : year,\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n var cells = days + before,\n after = cells;\n while(after > 7) {\n after -= 7;\n }\n cells += 7 - after;\n var isWeekSelected = false;\n for (var i = 0, r = 0; i < cells; i++)\n {\n var day = new Date(year, month, 1 + (i - before)),\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\n isToday = compareDates(day, now),\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\n isEmpty = i < before || i >= (days + before),\n dayNumber = 1 + (i - before),\n monthNumber = month,\n yearNumber = year,\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\n isDisabled = (opts.minDate && day < opts.minDate) ||\n (opts.maxDate && day > opts.maxDate) ||\n (opts.disableWeekends && isWeekend(day)) ||\n (opts.disableDayFn && opts.disableDayFn(day));\n\n if (isEmpty) {\n if (i < before) {\n dayNumber = daysInPreviousMonth + dayNumber;\n monthNumber = previousMonth;\n yearNumber = yearOfPreviousMonth;\n } else {\n dayNumber = dayNumber - days;\n monthNumber = nextMonth;\n yearNumber = yearOfNextMonth;\n }\n }\n\n var dayConfig = {\n day: dayNumber,\n month: monthNumber,\n year: yearNumber,\n hasEvent: hasEvent,\n isSelected: isSelected,\n isToday: isToday,\n isDisabled: isDisabled,\n isEmpty: isEmpty,\n isStartRange: isStartRange,\n isEndRange: isEndRange,\n isInRange: isInRange,\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n };\n\n if (opts.pickWholeWeek && isSelected) {\n isWeekSelected = true;\n }\n\n row.push(renderDay(dayConfig));\n\n if (++r === 7) {\n if (opts.showWeekNumber) {\n row.unshift(renderWeek(i - before, month, year, opts.firstWeekOfYearMinDays));\n }\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n row = [];\n r = 0;\n isWeekSelected = false;\n }\n }\n return renderTable(opts, data, randId);\n },\n\n isVisible: function()\n {\n return this._v;\n },\n\n show: function()\n {\n if (!this.isVisible()) {\n this._v = true;\n this.draw();\n removeClass(this.el, 'is-hidden');\n if (this._o.bound) {\n addEvent(document, 'click', this._onClick);\n this.adjustPosition();\n }\n if (typeof this._o.onOpen === 'function') {\n this._o.onOpen.call(this);\n }\n }\n },\n\n hide: function()\n {\n var v = this._v;\n if (v !== false) {\n if (this._o.bound) {\n removeEvent(document, 'click', this._onClick);\n }\n\n if (!this._o.container) {\n this.el.style.position = 'static'; // reset\n this.el.style.left = 'auto';\n this.el.style.top = 'auto';\n }\n addClass(this.el, 'is-hidden');\n this._v = false;\n if (v !== undefined && typeof this._o.onClose === 'function') {\n this._o.onClose.call(this);\n }\n }\n },\n\n /**\n * GAME OVER\n */\n destroy: function()\n {\n var opts = this._o;\n\n this.hide();\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\n removeEvent(this.el, 'change', this._onChange);\n if (opts.keyboardInput) {\n removeEvent(document, 'keydown', this._onKeyChange);\n }\n if (opts.field) {\n removeEvent(opts.field, 'change', this._onInputChange);\n if (opts.bound) {\n removeEvent(opts.trigger, 'click', this._onInputClick);\n removeEvent(opts.trigger, 'focus', this._onInputFocus);\n removeEvent(opts.trigger, 'blur', this._onInputBlur);\n }\n }\n if (this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n }\n\n };\n\n return Pikaday;\n}));\n","\"use strict\";\n\nvar Iteration = require(\"./iteration\");\n\nmodule.exports = ArrayIterator;\nfunction ArrayIterator(iterable, start, stop, step) {\n this.array = iterable;\n this.start = start || 0;\n this.stop = stop || Infinity;\n this.step = step || 1;\n}\n\nArrayIterator.prototype.next = function () {\n var iteration;\n if (this.start < Math.min(this.array.length, this.stop)) {\n iteration = new Iteration(this.array[this.start], false, this.start);\n this.start += this.step;\n } else {\n iteration = new Iteration(undefined, true);\n }\n return iteration;\n};\n\n","\"use strict\";\n\nmodule.exports = Iteration;\nfunction Iteration(value, done, index) {\n this.value = value;\n this.done = done;\n this.index = index;\n}\n\nIteration.prototype.equals = function (other) {\n return (\n typeof other == 'object' &&\n other.value === this.value &&\n other.done === this.done &&\n other.index === this.index\n );\n};\n\n","\"use strict\";\n\nvar Iteration = require(\"./iteration\");\nvar ArrayIterator = require(\"./array-iterator\");\n\nmodule.exports = ObjectIterator;\nfunction ObjectIterator(iterable, start, stop, step) {\n this.object = iterable;\n this.keysIterator = new ArrayIterator(Object.keys(iterable), start, stop, step);\n}\n\nObjectIterator.prototype.next = function () {\n var iteration = this.keysIterator.next();\n if (iteration.done) {\n return iteration;\n }\n var key = iteration.value;\n return new Iteration(this.object[key], false, key);\n};\n\n","\"use strict\";\n\nvar ArrayIterator = require(\"./array-iterator\");\nvar ObjectIterator = require(\"./object-iterator\");\n\nmodule.exports = iterate;\nfunction iterate(iterable, start, stop, step) {\n if (!iterable) {\n return empty;\n } else if (Array.isArray(iterable)) {\n return new ArrayIterator(iterable, start, stop, step);\n } else if (typeof iterable.next === \"function\") {\n return iterable;\n } else if (typeof iterable.iterate === \"function\") {\n return iterable.iterate(start, stop, step);\n } else if (typeof iterable === \"object\") {\n return new ObjectIterator(iterable);\n } else {\n throw new TypeError(\"Can't iterate \" + iterable);\n }\n}\n\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function 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, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
    \n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
    \n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
    \n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
    \n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
    \n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
    \n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
    \n * It will read the variation of the `placement` property.
    \n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
    \n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
    \n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
    \n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
    \n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
    \n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
    \n * These can be overridden using the `options` argument of Popper.js.
    \n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
    \n * By default, it is set to no-op.
    \n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
    \n * By default, it is set to no-op.
    \n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
    \n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import {toPoint, forward} from 'mgrs';\n\nfunction Point(x, y, z) {\n if (!(this instanceof Point)) {\n return new Point(x, y, z);\n }\n if (Array.isArray(x)) {\n this.x = x[0];\n this.y = x[1];\n this.z = x[2] || 0.0;\n } else if(typeof x === 'object') {\n this.x = x.x;\n this.y = x.y;\n this.z = x.z || 0.0;\n } else if (typeof x === 'string' && typeof y === 'undefined') {\n var coords = x.split(',');\n this.x = parseFloat(coords[0], 10);\n this.y = parseFloat(coords[1], 10);\n this.z = parseFloat(coords[2], 10) || 0.0;\n } else {\n this.x = x;\n this.y = y;\n this.z = z || 0.0;\n }\n console.warn('proj4.Point will be removed in version 3, use proj4.toPoint');\n}\n\nPoint.fromMGRS = function(mgrsStr) {\n return new Point(toPoint(mgrsStr));\n};\nPoint.prototype.toMGRS = function(accuracy) {\n return forward([this.x, this.y], accuracy);\n};\nexport default Point;\n","import parseCode from './parseCode';\nimport extend from './extend';\nimport projections from './projections';\nimport {sphere as dc_sphere, eccentricity as dc_eccentricity} from './deriveConstants';\nimport Datum from './constants/Datum';\nimport datum from './datum';\nimport match from './match';\nimport {getNadgrids} from \"./nadgrid\";\n\nfunction Projection(srsCode,callback) {\n if (!(this instanceof Projection)) {\n return new Projection(srsCode);\n }\n callback = callback || function(error){\n if(error){\n throw error;\n }\n };\n var json = parseCode(srsCode);\n if(typeof json !== 'object'){\n callback(srsCode);\n return;\n }\n var ourProj = Projection.projections.get(json.projName);\n if(!ourProj){\n callback(srsCode);\n return;\n }\n if (json.datumCode && json.datumCode !== 'none') {\n var datumDef = match(Datum, json.datumCode);\n if (datumDef) {\n json.datum_params = json.datum_params || (datumDef.towgs84 ? datumDef.towgs84.split(',') : null);\n json.ellps = datumDef.ellipse;\n json.datumName = datumDef.datumName ? datumDef.datumName : json.datumCode;\n }\n }\n json.k0 = json.k0 || 1.0;\n json.axis = json.axis || 'enu';\n json.ellps = json.ellps || 'wgs84';\n json.lat1 = json.lat1 || json.lat0; // Lambert_Conformal_Conic_1SP, for example, needs this\n\n var sphere_ = dc_sphere(json.a, json.b, json.rf, json.ellps, json.sphere);\n var ecc = dc_eccentricity(sphere_.a, sphere_.b, sphere_.rf, json.R_A);\n var nadgrids = getNadgrids(json.nadgrids);\n var datumObj = json.datum || datum(json.datumCode, json.datum_params, sphere_.a, sphere_.b, ecc.es, ecc.ep2,\n nadgrids);\n\n extend(this, json); // transfer everything over from the projection because we don't know what we'll need\n extend(this, ourProj); // transfer all the methods from the projection\n\n // copy the 4 things over we calculated in deriveConstants.sphere\n this.a = sphere_.a;\n this.b = sphere_.b;\n this.rf = sphere_.rf;\n this.sphere = sphere_.sphere;\n\n // copy the 3 things we calculated in deriveConstants.eccentricity\n this.es = ecc.es;\n this.e = ecc.e;\n this.ep2 = ecc.ep2;\n\n // add in the datum object\n this.datum = datumObj;\n\n // init the projection\n this.init();\n\n // legecy callback from back in the day when it went to spatialreference.org\n callback(null, this);\n\n}\nProjection.projections = projections;\nProjection.projections.start();\nexport default Projection;\n","export default function(crs, denorm, point) {\n var xin = point.x,\n yin = point.y,\n zin = point.z || 0.0;\n var v, t, i;\n var out = {};\n for (i = 0; i < 3; i++) {\n if (denorm && i === 2 && point.z === undefined) {\n continue;\n }\n if (i === 0) {\n v = xin;\n if (\"ew\".indexOf(crs.axis[i]) !== -1) {\n t = 'x';\n } else {\n t = 'y';\n }\n\n }\n else if (i === 1) {\n v = yin;\n if (\"ns\".indexOf(crs.axis[i]) !== -1) {\n t = 'y';\n } else {\n t = 'x';\n }\n }\n else {\n v = zin;\n t = 'z';\n }\n switch (crs.axis[i]) {\n case 'e':\n out[t] = v;\n break;\n case 'w':\n out[t] = -v;\n break;\n case 'n':\n out[t] = v;\n break;\n case 's':\n out[t] = -v;\n break;\n case 'u':\n if (point[t] !== undefined) {\n out.z = v;\n }\n break;\n case 'd':\n if (point[t] !== undefined) {\n out.z = -v;\n }\n break;\n default:\n //console.log(\"ERROR: unknow axis (\"+crs.axis[i]+\") - check definition of \"+crs.projName);\n return null;\n }\n }\n return out;\n}\n","export default function (point) {\n checkCoord(point.x);\n checkCoord(point.y);\n}\nfunction checkCoord(num) {\n if (typeof Number.isFinite === 'function') {\n if (Number.isFinite(num)) {\n return;\n }\n throw new TypeError('coordinates must be finite numbers');\n }\n if (typeof num !== 'number' || num !== num || !isFinite(num)) {\n throw new TypeError('coordinates must be finite numbers');\n }\n}\n","import {HALF_PI} from '../constants/values';\nimport sign from './sign';\n\nexport default function(x) {\n return (Math.abs(x) < HALF_PI) ? x : (x - (sign(x) * Math.PI));\n}\n","\nimport {TWO_PI, SPI} from '../constants/values';\nimport sign from './sign';\n\nexport default function(x) {\n return (Math.abs(x) <= SPI) ? x : (x - (sign(x) * TWO_PI));\n}\n","import adjust_lon from './adjust_lon';\n\nexport default function(zone, lon) {\n if (zone === undefined) {\n zone = Math.floor((adjust_lon(lon) + Math.PI) * 30 / Math.PI) + 1;\n\n if (zone < 0) {\n return 0;\n } else if (zone > 60) {\n return 60;\n }\n }\n return zone;\n}\n","import hypot from './hypot';\nimport log1py from './log1py';\n\nexport default function(x) {\n var y = Math.abs(x);\n y = log1py(y * (1 + y / (hypot(1, y) + 1)));\n\n return x < 0 ? -y : y;\n}\n","export default function(x) {\n if (Math.abs(x) > 1) {\n x = (x > 1) ? 1 : -1;\n }\n return Math.asin(x);\n}","export default function(pp, arg_r) {\n var r = 2 * Math.cos(arg_r);\n var i = pp.length - 1;\n var hr1 = pp[i];\n var hr2 = 0;\n var hr;\n\n while (--i >= 0) {\n hr = -hr2 + r * hr1 + pp[i];\n hr2 = hr1;\n hr1 = hr;\n }\n\n return Math.sin(arg_r) * hr;\n}\n","import sinh from './sinh';\nimport cosh from './cosh';\n\nexport default function(pp, arg_r, arg_i) {\n var sin_arg_r = Math.sin(arg_r);\n var cos_arg_r = Math.cos(arg_r);\n var sinh_arg_i = sinh(arg_i);\n var cosh_arg_i = cosh(arg_i);\n var r = 2 * cos_arg_r * cosh_arg_i;\n var i = -2 * sin_arg_r * sinh_arg_i;\n var j = pp.length - 1;\n var hr = pp[j];\n var hi1 = 0;\n var hr1 = 0;\n var hi = 0;\n var hr2;\n var hi2;\n\n while (--j >= 0) {\n hr2 = hr1;\n hi2 = hi1;\n hr1 = hr;\n hi1 = hi;\n hr = -hr2 + r * hr1 - i * hi1 + pp[j];\n hi = -hi2 + i * hr1 + r * hi1;\n }\n\n r = sin_arg_r * cosh_arg_i;\n i = cos_arg_r * sinh_arg_i;\n\n return [r * hr - i * hi, r * hi + i * hr];\n}\n","export default function(x) {\n var r = Math.exp(x);\n r = (r + 1 / r) / 2;\n return r;\n}","export default function(x) {\n return (1 - 0.25 * x * (1 + x / 16 * (3 + 1.25 * x)));\n}","export default function(x) {\n return (0.375 * x * (1 + 0.25 * x * (1 + 0.46875 * x)));\n}","export default function(x) {\n return (0.05859375 * x * x * (1 + 0.75 * x));\n}","export default function(x) {\n return (x * x * x * (35 / 3072));\n}","export default function(a, e, sinphi) {\n var temp = e * sinphi;\n return a / Math.sqrt(1 - temp * temp);\n}","export default function(pp, B) {\n var cos_2B = 2 * Math.cos(2 * B);\n var i = pp.length - 1;\n var h1 = pp[i];\n var h2 = 0;\n var h;\n\n while (--i >= 0) {\n h = -h2 + cos_2B * h1 + pp[i];\n h2 = h1;\n h1 = h;\n }\n\n return (B + h * Math.sin(2 * B));\n}\n","export default function(x, y) {\n x = Math.abs(x);\n y = Math.abs(y);\n var a = Math.max(x, y);\n var b = Math.min(x, y) / (a ? a : 1);\n\n return a * Math.sqrt(1 + Math.pow(b, 2));\n}\n","export default function(ml, e0, e1, e2, e3) {\n var phi;\n var dphi;\n\n phi = ml / e0;\n for (var i = 0; i < 15; i++) {\n dphi = (ml - (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi))) / (e0 - 2 * e1 * Math.cos(2 * phi) + 4 * e2 * Math.cos(4 * phi) - 6 * e3 * Math.cos(6 * phi));\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n\n //..reportError(\"IMLFN-CONV:Latitude failed to converge after 15 iterations\");\n return NaN;\n}","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, q) {\n var temp = 1 - (1 - eccent * eccent) / (2 * eccent) * Math.log((1 - eccent) / (1 + eccent));\n if (Math.abs(Math.abs(q) - temp) < 1.0E-6) {\n if (q < 0) {\n return (-1 * HALF_PI);\n }\n else {\n return HALF_PI;\n }\n }\n //var phi = 0.5* q/(1-eccent*eccent);\n var phi = Math.asin(0.5 * q);\n var dphi;\n var sin_phi;\n var cos_phi;\n var con;\n for (var i = 0; i < 30; i++) {\n sin_phi = Math.sin(phi);\n cos_phi = Math.cos(phi);\n con = eccent * sin_phi;\n dphi = Math.pow(1 - con * con, 2) / (2 * cos_phi) * (q / (1 - eccent * eccent) - sin_phi / (1 - con * con) + 0.5 / eccent * Math.log((1 - con) / (1 + con)));\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n\n //console.log(\"IQSFN-CONV:Latitude failed to converge after 30 iterations\");\n return NaN;\n}\n","export default function(x) {\n var y = 1 + x;\n var z = y - 1;\n\n return z === 0 ? x : x * Math.log(y) / z;\n}\n","export default function(e0, e1, e2, e3, phi) {\n return (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi));\n}","export default function(eccent, sinphi, cosphi) {\n var con = eccent * sinphi;\n return cosphi / (Math.sqrt(1 - con * con));\n}","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, ts) {\n var eccnth = 0.5 * eccent;\n var con, dphi;\n var phi = HALF_PI - 2 * Math.atan(ts);\n for (var i = 0; i <= 15; i++) {\n con = eccent * Math.sin(phi);\n dphi = HALF_PI - 2 * Math.atan(ts * (Math.pow(((1 - con) / (1 + con)), eccnth))) - phi;\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n //console.log(\"phi2z has NoConvergence\");\n return -9999;\n}\n","var C00 = 1;\nvar C02 = 0.25;\nvar C04 = 0.046875;\nvar C06 = 0.01953125;\nvar C08 = 0.01068115234375;\nvar C22 = 0.75;\nvar C44 = 0.46875;\nvar C46 = 0.01302083333333333333;\nvar C48 = 0.00712076822916666666;\nvar C66 = 0.36458333333333333333;\nvar C68 = 0.00569661458333333333;\nvar C88 = 0.3076171875;\n\nexport default function(es) {\n var en = [];\n en[0] = C00 - es * (C02 + es * (C04 + es * (C06 + es * C08)));\n en[1] = es * (C22 - es * (C04 + es * (C06 + es * C08)));\n var t = es * es;\n en[2] = t * (C44 - es * (C46 + es * C48));\n t *= es;\n en[3] = t * (C66 - es * C68);\n en[4] = t * es * C88;\n return en;\n}","import pj_mlfn from \"./pj_mlfn\";\nimport {EPSLN} from '../constants/values';\n\nvar MAX_ITER = 20;\n\nexport default function(arg, es, en) {\n var k = 1 / (1 - es);\n var phi = arg;\n for (var i = MAX_ITER; i; --i) { /* rarely goes over 2 iterations */\n var s = Math.sin(phi);\n var t = 1 - es * s * s;\n //t = this.pj_mlfn(phi, s, Math.cos(phi), en) - arg;\n //phi -= t * (t * Math.sqrt(t)) * k;\n t = (pj_mlfn(phi, s, Math.cos(phi), en) - arg) * (t * Math.sqrt(t)) * k;\n phi -= t;\n if (Math.abs(t) < EPSLN) {\n return phi;\n }\n }\n //..reportError(\"cass:pj_inv_mlfn: Convergence error\");\n return phi;\n}\n","export default function(phi, sphi, cphi, en) {\n cphi *= sphi;\n sphi *= sphi;\n return (en[0] * phi - cphi * (en[1] + sphi * (en[2] + sphi * (en[3] + sphi * en[4]))));\n}","export default function(eccent, sinphi) {\n var con;\n if (eccent > 1.0e-7) {\n con = eccent * sinphi;\n return ((1 - eccent * eccent) * (sinphi / (1 - con * con) - (0.5 / eccent) * Math.log((1 - con) / (1 + con))));\n }\n else {\n return (2 * sinphi);\n }\n}","export default function(x) {\n return x<0 ? -1 : 1;\n}","export default function(x) {\n var r = Math.exp(x);\n r = (r - 1 / r) / 2;\n return r;\n}","export default function(esinp, exp) {\n return (Math.pow((1 - esinp) / (1 + esinp), exp));\n}","export default function (array){\n var out = {\n x: array[0],\n y: array[1]\n };\n if (array.length>2) {\n out.z = array[2];\n }\n if (array.length>3) {\n out.m = array[3];\n }\n return out;\n}","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, phi, sinphi) {\n var con = eccent * sinphi;\n var com = 0.5 * eccent;\n con = Math.pow(((1 - con) / (1 + con)), com);\n return (Math.tan(0.5 * (HALF_PI - phi)) / con);\n}\n","var exports = {};\nexport {exports as default};\nexports.wgs84 = {\n towgs84: \"0,0,0\",\n ellipse: \"WGS84\",\n datumName: \"WGS84\"\n};\n\nexports.ch1903 = {\n towgs84: \"674.374,15.056,405.346\",\n ellipse: \"bessel\",\n datumName: \"swiss\"\n};\n\nexports.ggrs87 = {\n towgs84: \"-199.87,74.79,246.62\",\n ellipse: \"GRS80\",\n datumName: \"Greek_Geodetic_Reference_System_1987\"\n};\n\nexports.nad83 = {\n towgs84: \"0,0,0\",\n ellipse: \"GRS80\",\n datumName: \"North_American_Datum_1983\"\n};\n\nexports.nad27 = {\n nadgrids: \"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat\",\n ellipse: \"clrk66\",\n datumName: \"North_American_Datum_1927\"\n};\n\nexports.potsdam = {\n towgs84: \"598.1,73.7,418.2,0.202,0.045,-2.455,6.7\",\n ellipse: \"bessel\",\n datumName: \"Potsdam Rauenberg 1950 DHDN\"\n};\n\nexports.carthage = {\n towgs84: \"-263.0,6.0,431.0\",\n ellipse: \"clark80\",\n datumName: \"Carthage 1934 Tunisia\"\n};\n\nexports.hermannskogel = {\n towgs84: \"577.326,90.129,463.919,5.137,1.474,5.297,2.4232\",\n ellipse: \"bessel\",\n datumName: \"Hermannskogel\"\n};\n\nexports.osni52 = {\n towgs84: \"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\",\n ellipse: \"airy\",\n datumName: \"Irish National\"\n};\n\nexports.ire65 = {\n towgs84: \"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\",\n ellipse: \"mod_airy\",\n datumName: \"Ireland 1965\"\n};\n\nexports.rassadiran = {\n towgs84: \"-133.63,-157.5,-158.62\",\n ellipse: \"intl\",\n datumName: \"Rassadiran\"\n};\n\nexports.nzgd49 = {\n towgs84: \"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993\",\n ellipse: \"intl\",\n datumName: \"New Zealand Geodetic Datum 1949\"\n};\n\nexports.osgb36 = {\n towgs84: \"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894\",\n ellipse: \"airy\",\n datumName: \"Airy 1830\"\n};\n\nexports.s_jtsk = {\n towgs84: \"589,76,480\",\n ellipse: 'bessel',\n datumName: 'S-JTSK (Ferro)'\n};\n\nexports.beduaram = {\n towgs84: '-106,-87,188',\n ellipse: 'clrk80',\n datumName: 'Beduaram'\n};\n\nexports.gunung_segara = {\n towgs84: '-403,684,41',\n ellipse: 'bessel',\n datumName: 'Gunung Segara Jakarta'\n};\n\nexports.rnb72 = {\n towgs84: \"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1\",\n ellipse: \"intl\",\n datumName: \"Reseau National Belge 1972\"\n};\n","var exports = {};\nexport {exports as default};\nexports.MERIT = {\n a: 6378137.0,\n rf: 298.257,\n ellipseName: \"MERIT 1983\"\n};\n\nexports.SGS85 = {\n a: 6378136.0,\n rf: 298.257,\n ellipseName: \"Soviet Geodetic System 85\"\n};\n\nexports.GRS80 = {\n a: 6378137.0,\n rf: 298.257222101,\n ellipseName: \"GRS 1980(IUGG, 1980)\"\n};\n\nexports.IAU76 = {\n a: 6378140.0,\n rf: 298.257,\n ellipseName: \"IAU 1976\"\n};\n\nexports.airy = {\n a: 6377563.396,\n b: 6356256.910,\n ellipseName: \"Airy 1830\"\n};\n\nexports.APL4 = {\n a: 6378137,\n rf: 298.25,\n ellipseName: \"Appl. Physics. 1965\"\n};\n\nexports.NWL9D = {\n a: 6378145.0,\n rf: 298.25,\n ellipseName: \"Naval Weapons Lab., 1965\"\n};\n\nexports.mod_airy = {\n a: 6377340.189,\n b: 6356034.446,\n ellipseName: \"Modified Airy\"\n};\n\nexports.andrae = {\n a: 6377104.43,\n rf: 300.0,\n ellipseName: \"Andrae 1876 (Den., Iclnd.)\"\n};\n\nexports.aust_SA = {\n a: 6378160.0,\n rf: 298.25,\n ellipseName: \"Australian Natl & S. Amer. 1969\"\n};\n\nexports.GRS67 = {\n a: 6378160.0,\n rf: 298.2471674270,\n ellipseName: \"GRS 67(IUGG 1967)\"\n};\n\nexports.bessel = {\n a: 6377397.155,\n rf: 299.1528128,\n ellipseName: \"Bessel 1841\"\n};\n\nexports.bess_nam = {\n a: 6377483.865,\n rf: 299.1528128,\n ellipseName: \"Bessel 1841 (Namibia)\"\n};\n\nexports.clrk66 = {\n a: 6378206.4,\n b: 6356583.8,\n ellipseName: \"Clarke 1866\"\n};\n\nexports.clrk80 = {\n a: 6378249.145,\n rf: 293.4663,\n ellipseName: \"Clarke 1880 mod.\"\n};\n\nexports.clrk80ign = {\n a: 6378249.2,\n b: 6356515,\n rf: 293.4660213,\n ellipseName: \"Clarke 1880 (IGN)\"\n};\n\nexports.clrk58 = {\n a: 6378293.645208759,\n rf: 294.2606763692654,\n ellipseName: \"Clarke 1858\"\n};\n\nexports.CPM = {\n a: 6375738.7,\n rf: 334.29,\n ellipseName: \"Comm. des Poids et Mesures 1799\"\n};\n\nexports.delmbr = {\n a: 6376428.0,\n rf: 311.5,\n ellipseName: \"Delambre 1810 (Belgium)\"\n};\n\nexports.engelis = {\n a: 6378136.05,\n rf: 298.2566,\n ellipseName: \"Engelis 1985\"\n};\n\nexports.evrst30 = {\n a: 6377276.345,\n rf: 300.8017,\n ellipseName: \"Everest 1830\"\n};\n\nexports.evrst48 = {\n a: 6377304.063,\n rf: 300.8017,\n ellipseName: \"Everest 1948\"\n};\n\nexports.evrst56 = {\n a: 6377301.243,\n rf: 300.8017,\n ellipseName: \"Everest 1956\"\n};\n\nexports.evrst69 = {\n a: 6377295.664,\n rf: 300.8017,\n ellipseName: \"Everest 1969\"\n};\n\nexports.evrstSS = {\n a: 6377298.556,\n rf: 300.8017,\n ellipseName: \"Everest (Sabah & Sarawak)\"\n};\n\nexports.fschr60 = {\n a: 6378166.0,\n rf: 298.3,\n ellipseName: \"Fischer (Mercury Datum) 1960\"\n};\n\nexports.fschr60m = {\n a: 6378155.0,\n rf: 298.3,\n ellipseName: \"Fischer 1960\"\n};\n\nexports.fschr68 = {\n a: 6378150.0,\n rf: 298.3,\n ellipseName: \"Fischer 1968\"\n};\n\nexports.helmert = {\n a: 6378200.0,\n rf: 298.3,\n ellipseName: \"Helmert 1906\"\n};\n\nexports.hough = {\n a: 6378270.0,\n rf: 297.0,\n ellipseName: \"Hough\"\n};\n\nexports.intl = {\n a: 6378388.0,\n rf: 297.0,\n ellipseName: \"International 1909 (Hayford)\"\n};\n\nexports.kaula = {\n a: 6378163.0,\n rf: 298.24,\n ellipseName: \"Kaula 1961\"\n};\n\nexports.lerch = {\n a: 6378139.0,\n rf: 298.257,\n ellipseName: \"Lerch 1979\"\n};\n\nexports.mprts = {\n a: 6397300.0,\n rf: 191.0,\n ellipseName: \"Maupertius 1738\"\n};\n\nexports.new_intl = {\n a: 6378157.5,\n b: 6356772.2,\n ellipseName: \"New International 1967\"\n};\n\nexports.plessis = {\n a: 6376523.0,\n rf: 6355863.0,\n ellipseName: \"Plessis 1817 (France)\"\n};\n\nexports.krass = {\n a: 6378245.0,\n rf: 298.3,\n ellipseName: \"Krassovsky, 1942\"\n};\n\nexports.SEasia = {\n a: 6378155.0,\n b: 6356773.3205,\n ellipseName: \"Southeast Asia\"\n};\n\nexports.walbeck = {\n a: 6376896.0,\n b: 6355834.8467,\n ellipseName: \"Walbeck\"\n};\n\nexports.WGS60 = {\n a: 6378165.0,\n rf: 298.3,\n ellipseName: \"WGS 60\"\n};\n\nexports.WGS66 = {\n a: 6378145.0,\n rf: 298.25,\n ellipseName: \"WGS 66\"\n};\n\nexports.WGS7 = {\n a: 6378135.0,\n rf: 298.26,\n ellipseName: \"WGS 72\"\n};\n\nexport var WGS84 = exports.WGS84 = {\n a: 6378137.0,\n rf: 298.257223563,\n ellipseName: \"WGS 84\"\n};\n\nexports.sphere = {\n a: 6370997.0,\n b: 6370997.0,\n ellipseName: \"Normal Sphere (r=6370997)\"\n};\n","var exports = {};\nexport {exports as default};\n\nexports.greenwich = 0.0; //\"0dE\",\nexports.lisbon = -9.131906111111; //\"9d07'54.862\\\"W\",\nexports.paris = 2.337229166667; //\"2d20'14.025\\\"E\",\nexports.bogota = -74.080916666667; //\"74d04'51.3\\\"W\",\nexports.madrid = -3.687938888889; //\"3d41'16.58\\\"W\",\nexports.rome = 12.452333333333; //\"12d27'8.4\\\"E\",\nexports.bern = 7.439583333333; //\"7d26'22.5\\\"E\",\nexports.jakarta = 106.807719444444; //\"106d48'27.79\\\"E\",\nexports.ferro = -17.666666666667; //\"17d40'W\",\nexports.brussels = 4.367975; //\"4d22'4.71\\\"E\",\nexports.stockholm = 18.058277777778; //\"18d3'29.8\\\"E\",\nexports.athens = 23.7163375; //\"23d42'58.815\\\"E\",\nexports.oslo = 10.722916666667; //\"10d43'22.5\\\"E\"\n","export default {\n ft: {to_meter: 0.3048},\n 'us-ft': {to_meter: 1200 / 3937}\n};\n","export var PJD_3PARAM = 1;\nexport var PJD_7PARAM = 2;\nexport var PJD_GRIDSHIFT = 3;\nexport var PJD_WGS84 = 4; // WGS84 or equivalent\nexport var PJD_NODATUM = 5; // WGS84 or equivalent\nexport var SRS_WGS84_SEMIMAJOR = 6378137.0; // only used in grid shift transforms\nexport var SRS_WGS84_SEMIMINOR = 6356752.314; // only used in grid shift transforms\nexport var SRS_WGS84_ESQUARED = 0.0066943799901413165; // only used in grid shift transforms\nexport var SEC_TO_RAD = 4.84813681109535993589914102357e-6;\nexport var HALF_PI = Math.PI/2;\n// ellipoid pj_set_ell.c\nexport var SIXTH = 0.1666666666666666667;\n/* 1/6 */\nexport var RA4 = 0.04722222222222222222;\n/* 17/360 */\nexport var RA6 = 0.02215608465608465608;\nexport var EPSLN = 1.0e-10;\n// you'd think you could use Number.EPSILON above but that makes\n// Mollweide get into an infinate loop.\n\nexport var D2R = 0.01745329251994329577;\nexport var R2D = 57.29577951308232088;\nexport var FORTPI = Math.PI/4;\nexport var TWO_PI = Math.PI * 2;\n// SPI is slightly greater than Math.PI, so values that exceed the -180..180\n// degree range by a tiny amount don't get wrapped. This prevents points that\n// have drifted from their original location along the 180th meridian (due to\n// floating point error) from changing their sign.\nexport var SPI = 3.14159265359;\n","import proj from './Proj';\nimport transform from './transform';\nvar wgs84 = proj('WGS84');\n\nfunction transformer(from, to, coords, enforceAxis) {\n var transformedArray, out, keys;\n if (Array.isArray(coords)) {\n transformedArray = transform(from, to, coords, enforceAxis) || {x: NaN, y: NaN};\n if (coords.length > 2) {\n if ((typeof from.name !== 'undefined' && from.name === 'geocent') || (typeof to.name !== 'undefined' && to.name === 'geocent')) {\n if (typeof transformedArray.z === 'number') {\n return [transformedArray.x, transformedArray.y, transformedArray.z].concat(coords.splice(3));\n } else {\n return [transformedArray.x, transformedArray.y, coords[2]].concat(coords.splice(3));\n }\n } else {\n return [transformedArray.x, transformedArray.y].concat(coords.splice(2));\n }\n } else {\n return [transformedArray.x, transformedArray.y];\n }\n } else {\n out = transform(from, to, coords, enforceAxis);\n keys = Object.keys(coords);\n if (keys.length === 2) {\n return out;\n }\n keys.forEach(function (key) {\n if ((typeof from.name !== 'undefined' && from.name === 'geocent') || (typeof to.name !== 'undefined' && to.name === 'geocent')) {\n if (key === 'x' || key === 'y' || key === 'z') {\n return;\n }\n } else {\n if (key === 'x' || key === 'y') {\n return;\n }\n }\n out[key] = coords[key];\n });\n return out;\n }\n}\n\nfunction checkProj(item) {\n if (item instanceof proj) {\n return item;\n }\n if (item.oProj) {\n return item.oProj;\n }\n return proj(item);\n}\n\nfunction proj4(fromProj, toProj, coord) {\n fromProj = checkProj(fromProj);\n var single = false;\n var obj;\n if (typeof toProj === 'undefined') {\n toProj = fromProj;\n fromProj = wgs84;\n single = true;\n } else if (typeof toProj.x !== 'undefined' || Array.isArray(toProj)) {\n coord = toProj;\n toProj = fromProj;\n fromProj = wgs84;\n single = true;\n }\n toProj = checkProj(toProj);\n if (coord) {\n return transformer(fromProj, toProj, coord);\n } else {\n obj = {\n forward: function (coords, enforceAxis) {\n return transformer(fromProj, toProj, coords, enforceAxis);\n },\n inverse: function (coords, enforceAxis) {\n return transformer(toProj, fromProj, coords, enforceAxis);\n }\n };\n if (single) {\n obj.oProj = toProj;\n }\n return obj;\n }\n}\nexport default proj4;","import {PJD_3PARAM, PJD_7PARAM, PJD_GRIDSHIFT, PJD_WGS84, PJD_NODATUM, SEC_TO_RAD} from './constants/values';\n\nfunction datum(datumCode, datum_params, a, b, es, ep2, nadgrids) {\n var out = {};\n\n if (datumCode === undefined || datumCode === 'none') {\n out.datum_type = PJD_NODATUM;\n } else {\n out.datum_type = PJD_WGS84;\n }\n\n if (datum_params) {\n out.datum_params = datum_params.map(parseFloat);\n if (out.datum_params[0] !== 0 || out.datum_params[1] !== 0 || out.datum_params[2] !== 0) {\n out.datum_type = PJD_3PARAM;\n }\n if (out.datum_params.length > 3) {\n if (out.datum_params[3] !== 0 || out.datum_params[4] !== 0 || out.datum_params[5] !== 0 || out.datum_params[6] !== 0) {\n out.datum_type = PJD_7PARAM;\n out.datum_params[3] *= SEC_TO_RAD;\n out.datum_params[4] *= SEC_TO_RAD;\n out.datum_params[5] *= SEC_TO_RAD;\n out.datum_params[6] = (out.datum_params[6] / 1000000.0) + 1.0;\n }\n }\n }\n\n if (nadgrids) {\n out.datum_type = PJD_GRIDSHIFT;\n out.grids = nadgrids;\n }\n out.a = a; //datum object also uses these values\n out.b = b;\n out.es = es;\n out.ep2 = ep2;\n return out;\n}\n\nexport default datum;\n","'use strict';\nimport {PJD_3PARAM, PJD_7PARAM, HALF_PI} from './constants/values';\nexport function compareDatums(source, dest) {\n if (source.datum_type !== dest.datum_type) {\n return false; // false, datums are not equal\n } else if (source.a !== dest.a || Math.abs(source.es - dest.es) > 0.000000000050) {\n // the tolerance for es is to ensure that GRS80 and WGS84\n // are considered identical\n return false;\n } else if (source.datum_type === PJD_3PARAM) {\n return (source.datum_params[0] === dest.datum_params[0] && source.datum_params[1] === dest.datum_params[1] && source.datum_params[2] === dest.datum_params[2]);\n } else if (source.datum_type === PJD_7PARAM) {\n return (source.datum_params[0] === dest.datum_params[0] && source.datum_params[1] === dest.datum_params[1] && source.datum_params[2] === dest.datum_params[2] && source.datum_params[3] === dest.datum_params[3] && source.datum_params[4] === dest.datum_params[4] && source.datum_params[5] === dest.datum_params[5] && source.datum_params[6] === dest.datum_params[6]);\n } else {\n return true; // datums are equal\n }\n} // cs_compare_datums()\n\n/*\n * The function Convert_Geodetic_To_Geocentric converts geodetic coordinates\n * (latitude, longitude, and height) to geocentric coordinates (X, Y, Z),\n * according to the current ellipsoid parameters.\n *\n * Latitude : Geodetic latitude in radians (input)\n * Longitude : Geodetic longitude in radians (input)\n * Height : Geodetic height, in meters (input)\n * X : Calculated Geocentric X coordinate, in meters (output)\n * Y : Calculated Geocentric Y coordinate, in meters (output)\n * Z : Calculated Geocentric Z coordinate, in meters (output)\n *\n */\nexport function geodeticToGeocentric(p, es, a) {\n var Longitude = p.x;\n var Latitude = p.y;\n var Height = p.z ? p.z : 0; //Z value not always supplied\n\n var Rn; /* Earth radius at location */\n var Sin_Lat; /* Math.sin(Latitude) */\n var Sin2_Lat; /* Square of Math.sin(Latitude) */\n var Cos_Lat; /* Math.cos(Latitude) */\n\n /*\n ** Don't blow up if Latitude is just a little out of the value\n ** range as it may just be a rounding issue. Also removed longitude\n ** test, it should be wrapped by Math.cos() and Math.sin(). NFW for PROJ.4, Sep/2001.\n */\n if (Latitude < -HALF_PI && Latitude > -1.001 * HALF_PI) {\n Latitude = -HALF_PI;\n } else if (Latitude > HALF_PI && Latitude < 1.001 * HALF_PI) {\n Latitude = HALF_PI;\n } else if (Latitude < -HALF_PI) {\n /* Latitude out of range */\n //..reportError('geocent:lat out of range:' + Latitude);\n return { x: -Infinity, y: -Infinity, z: p.z };\n } else if (Latitude > HALF_PI) {\n /* Latitude out of range */\n return { x: Infinity, y: Infinity, z: p.z };\n }\n\n if (Longitude > Math.PI) {\n Longitude -= (2 * Math.PI);\n }\n Sin_Lat = Math.sin(Latitude);\n Cos_Lat = Math.cos(Latitude);\n Sin2_Lat = Sin_Lat * Sin_Lat;\n Rn = a / (Math.sqrt(1.0e0 - es * Sin2_Lat));\n return {\n x: (Rn + Height) * Cos_Lat * Math.cos(Longitude),\n y: (Rn + Height) * Cos_Lat * Math.sin(Longitude),\n z: ((Rn * (1 - es)) + Height) * Sin_Lat\n };\n} // cs_geodetic_to_geocentric()\n\nexport function geocentricToGeodetic(p, es, a, b) {\n /* local defintions and variables */\n /* end-criterium of loop, accuracy of sin(Latitude) */\n var genau = 1e-12;\n var genau2 = (genau * genau);\n var maxiter = 30;\n\n var P; /* distance between semi-minor axis and location */\n var RR; /* distance between center and location */\n var CT; /* sin of geocentric latitude */\n var ST; /* cos of geocentric latitude */\n var RX;\n var RK;\n var RN; /* Earth radius at location */\n var CPHI0; /* cos of start or old geodetic latitude in iterations */\n var SPHI0; /* sin of start or old geodetic latitude in iterations */\n var CPHI; /* cos of searched geodetic latitude */\n var SPHI; /* sin of searched geodetic latitude */\n var SDPHI; /* end-criterium: addition-theorem of sin(Latitude(iter)-Latitude(iter-1)) */\n var iter; /* # of continous iteration, max. 30 is always enough (s.a.) */\n\n var X = p.x;\n var Y = p.y;\n var Z = p.z ? p.z : 0.0; //Z value not always supplied\n var Longitude;\n var Latitude;\n var Height;\n\n P = Math.sqrt(X * X + Y * Y);\n RR = Math.sqrt(X * X + Y * Y + Z * Z);\n\n /* special cases for latitude and longitude */\n if (P / a < genau) {\n\n /* special case, if P=0. (X=0., Y=0.) */\n Longitude = 0.0;\n\n /* if (X,Y,Z)=(0.,0.,0.) then Height becomes semi-minor axis\n * of ellipsoid (=center of mass), Latitude becomes PI/2 */\n if (RR / a < genau) {\n Latitude = HALF_PI;\n Height = -b;\n return {\n x: p.x,\n y: p.y,\n z: p.z\n };\n }\n } else {\n /* ellipsoidal (geodetic) longitude\n * interval: -PI < Longitude <= +PI */\n Longitude = Math.atan2(Y, X);\n }\n\n /* --------------------------------------------------------------\n * Following iterative algorithm was developped by\n * \"Institut for Erdmessung\", University of Hannover, July 1988.\n * Internet: www.ife.uni-hannover.de\n * Iterative computation of CPHI,SPHI and Height.\n * Iteration of CPHI and SPHI to 10**-12 radian resp.\n * 2*10**-7 arcsec.\n * --------------------------------------------------------------\n */\n CT = Z / RR;\n ST = P / RR;\n RX = 1.0 / Math.sqrt(1.0 - es * (2.0 - es) * ST * ST);\n CPHI0 = ST * (1.0 - es) * RX;\n SPHI0 = CT * RX;\n iter = 0;\n\n /* loop to find sin(Latitude) resp. Latitude\n * until |sin(Latitude(iter)-Latitude(iter-1))| < genau */\n do {\n iter++;\n RN = a / Math.sqrt(1.0 - es * SPHI0 * SPHI0);\n\n /* ellipsoidal (geodetic) height */\n Height = P * CPHI0 + Z * SPHI0 - RN * (1.0 - es * SPHI0 * SPHI0);\n\n RK = es * RN / (RN + Height);\n RX = 1.0 / Math.sqrt(1.0 - RK * (2.0 - RK) * ST * ST);\n CPHI = ST * (1.0 - RK) * RX;\n SPHI = CT * RX;\n SDPHI = SPHI * CPHI0 - CPHI * SPHI0;\n CPHI0 = CPHI;\n SPHI0 = SPHI;\n }\n while (SDPHI * SDPHI > genau2 && iter < maxiter);\n\n /* ellipsoidal (geodetic) latitude */\n Latitude = Math.atan(SPHI / Math.abs(CPHI));\n return {\n x: Longitude,\n y: Latitude,\n z: Height\n };\n} // cs_geocentric_to_geodetic()\n\n/****************************************************************/\n// pj_geocentic_to_wgs84( p )\n// p = point to transform in geocentric coordinates (x,y,z)\n\n\n/** point object, nothing fancy, just allows values to be\n passed back and forth by reference rather than by value.\n Other point classes may be used as long as they have\n x and y properties, which will get modified in the transform method.\n*/\nexport function geocentricToWgs84(p, datum_type, datum_params) {\n\n if (datum_type === PJD_3PARAM) {\n // if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: p.x + datum_params[0],\n y: p.y + datum_params[1],\n z: p.z + datum_params[2],\n };\n } else if (datum_type === PJD_7PARAM) {\n var Dx_BF = datum_params[0];\n var Dy_BF = datum_params[1];\n var Dz_BF = datum_params[2];\n var Rx_BF = datum_params[3];\n var Ry_BF = datum_params[4];\n var Rz_BF = datum_params[5];\n var M_BF = datum_params[6];\n // if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: M_BF * (p.x - Rz_BF * p.y + Ry_BF * p.z) + Dx_BF,\n y: M_BF * (Rz_BF * p.x + p.y - Rx_BF * p.z) + Dy_BF,\n z: M_BF * (-Ry_BF * p.x + Rx_BF * p.y + p.z) + Dz_BF\n };\n }\n} // cs_geocentric_to_wgs84\n\n/****************************************************************/\n// pj_geocentic_from_wgs84()\n// coordinate system definition,\n// point to transform in geocentric coordinates (x,y,z)\nexport function geocentricFromWgs84(p, datum_type, datum_params) {\n\n if (datum_type === PJD_3PARAM) {\n //if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: p.x - datum_params[0],\n y: p.y - datum_params[1],\n z: p.z - datum_params[2],\n };\n\n } else if (datum_type === PJD_7PARAM) {\n var Dx_BF = datum_params[0];\n var Dy_BF = datum_params[1];\n var Dz_BF = datum_params[2];\n var Rx_BF = datum_params[3];\n var Ry_BF = datum_params[4];\n var Rz_BF = datum_params[5];\n var M_BF = datum_params[6];\n var x_tmp = (p.x - Dx_BF) / M_BF;\n var y_tmp = (p.y - Dy_BF) / M_BF;\n var z_tmp = (p.z - Dz_BF) / M_BF;\n //if( x[io] === HUGE_VAL )\n // continue;\n\n return {\n x: x_tmp + Rz_BF * y_tmp - Ry_BF * z_tmp,\n y: -Rz_BF * x_tmp + y_tmp + Rx_BF * z_tmp,\n z: Ry_BF * x_tmp - Rx_BF * y_tmp + z_tmp\n };\n } //cs_geocentric_from_wgs84()\n}\n","import {\n PJD_3PARAM,\n PJD_7PARAM,\n PJD_GRIDSHIFT,\n PJD_NODATUM,\n R2D,\n SRS_WGS84_ESQUARED,\n SRS_WGS84_SEMIMAJOR, SRS_WGS84_SEMIMINOR\n} from './constants/values';\n\nimport {geodeticToGeocentric, geocentricToGeodetic, geocentricToWgs84, geocentricFromWgs84, compareDatums} from './datumUtils';\nimport adjust_lon from \"./common/adjust_lon\";\nfunction checkParams(type) {\n return (type === PJD_3PARAM || type === PJD_7PARAM);\n}\n\nexport default function(source, dest, point) {\n // Short cut if the datums are identical.\n if (compareDatums(source, dest)) {\n return point; // in this case, zero is sucess,\n // whereas cs_compare_datums returns 1 to indicate TRUE\n // confusing, should fix this\n }\n\n // Explicitly skip datum transform by setting 'datum=none' as parameter for either source or dest\n if (source.datum_type === PJD_NODATUM || dest.datum_type === PJD_NODATUM) {\n return point;\n }\n\n // If this datum requires grid shifts, then apply it to geodetic coordinates.\n var source_a = source.a;\n var source_es = source.es;\n if (source.datum_type === PJD_GRIDSHIFT) {\n var gridShiftCode = applyGridShift(source, false, point);\n if (gridShiftCode !== 0) {\n return undefined;\n }\n source_a = SRS_WGS84_SEMIMAJOR;\n source_es = SRS_WGS84_ESQUARED;\n }\n\n var dest_a = dest.a;\n var dest_b = dest.b;\n var dest_es = dest.es;\n if (dest.datum_type === PJD_GRIDSHIFT) {\n dest_a = SRS_WGS84_SEMIMAJOR;\n dest_b = SRS_WGS84_SEMIMINOR;\n dest_es = SRS_WGS84_ESQUARED;\n }\n\n // Do we need to go through geocentric coordinates?\n if (source_es === dest_es && source_a === dest_a && !checkParams(source.datum_type) && !checkParams(dest.datum_type)) {\n return point;\n }\n\n // Convert to geocentric coordinates.\n point = geodeticToGeocentric(point, source_es, source_a);\n // Convert between datums\n if (checkParams(source.datum_type)) {\n point = geocentricToWgs84(point, source.datum_type, source.datum_params);\n }\n if (checkParams(dest.datum_type)) {\n point = geocentricFromWgs84(point, dest.datum_type, dest.datum_params);\n }\n point = geocentricToGeodetic(point, dest_es, dest_a, dest_b);\n\n if (dest.datum_type === PJD_GRIDSHIFT) {\n var destGridShiftResult = applyGridShift(dest, true, point);\n if (destGridShiftResult !== 0) {\n return undefined;\n }\n }\n\n return point;\n}\n\nexport function applyGridShift(source, inverse, point) {\n if (source.grids === null || source.grids.length === 0) {\n console.log('Grid shift grids not found');\n return -1;\n }\n var input = {x: -point.x, y: point.y};\n var output = {x: Number.NaN, y: Number.NaN};\n var onlyMandatoryGrids = false;\n var attemptedGrids = [];\n for (var i = 0; i < source.grids.length; i++) {\n var grid = source.grids[i];\n attemptedGrids.push(grid.name);\n if (grid.isNull) {\n output = input;\n break;\n }\n onlyMandatoryGrids = grid.mandatory;\n if (grid.grid === null) {\n if (grid.mandatory) {\n console.log(\"Unable to find mandatory grid '\" + grid.name + \"'\");\n return -1;\n }\n continue;\n }\n var subgrid = grid.grid.subgrids[0];\n // skip tables that don't match our point at all\n var epsilon = (Math.abs(subgrid.del[1]) + Math.abs(subgrid.del[0])) / 10000.0;\n var minX = subgrid.ll[0] - epsilon;\n var minY = subgrid.ll[1] - epsilon;\n var maxX = subgrid.ll[0] + (subgrid.lim[0] - 1) * subgrid.del[0] + epsilon;\n var maxY = subgrid.ll[1] + (subgrid.lim[1] - 1) * subgrid.del[1] + epsilon;\n if (minY > input.y || minX > input.x || maxY < input.y || maxX < input.x ) {\n continue;\n }\n output = applySubgridShift(input, inverse, subgrid);\n if (!isNaN(output.x)) {\n break;\n }\n }\n if (isNaN(output.x)) {\n console.log(\"Failed to find a grid shift table for location '\"+\n -input.x * R2D + \" \" + input.y * R2D + \" tried: '\" + attemptedGrids + \"'\");\n return -1;\n }\n point.x = -output.x;\n point.y = output.y;\n return 0;\n}\n\nfunction applySubgridShift(pin, inverse, ct) {\n var val = {x: Number.NaN, y: Number.NaN};\n if (isNaN(pin.x)) { return val; }\n var tb = {x: pin.x, y: pin.y};\n tb.x -= ct.ll[0];\n tb.y -= ct.ll[1];\n tb.x = adjust_lon(tb.x - Math.PI) + Math.PI;\n var t = nadInterpolate(tb, ct);\n if (inverse) {\n if (isNaN(t.x)) {\n return val;\n }\n t.x = tb.x - t.x;\n t.y = tb.y - t.y;\n var i = 9, tol = 1e-12;\n var dif, del;\n do {\n del = nadInterpolate(t, ct);\n if (isNaN(del.x)) {\n console.log(\"Inverse grid shift iteration failed, presumably at grid edge. Using first approximation.\");\n break;\n }\n dif = {x: tb.x - (del.x + t.x), y: tb.y - (del.y + t.y)};\n t.x += dif.x;\n t.y += dif.y;\n } while (i-- && Math.abs(dif.x) > tol && Math.abs(dif.y) > tol);\n if (i < 0) {\n console.log(\"Inverse grid shift iterator failed to converge.\");\n return val;\n }\n val.x = adjust_lon(t.x + ct.ll[0]);\n val.y = t.y + ct.ll[1];\n } else {\n if (!isNaN(t.x)) {\n val.x = pin.x + t.x;\n val.y = pin.y + t.y;\n }\n }\n return val;\n}\n\nfunction nadInterpolate(pin, ct) {\n var t = {x: pin.x / ct.del[0], y: pin.y / ct.del[1]};\n var indx = {x: Math.floor(t.x), y: Math.floor(t.y)};\n var frct = {x: t.x - 1.0 * indx.x, y: t.y - 1.0 * indx.y};\n var val= {x: Number.NaN, y: Number.NaN};\n var inx;\n if (indx.x < 0 || indx.x >= ct.lim[0]) {\n return val;\n }\n if (indx.y < 0 || indx.y >= ct.lim[1]) {\n return val;\n }\n inx = (indx.y * ct.lim[0]) + indx.x;\n var f00 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx++;\n var f10= {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx += ct.lim[0];\n var f11 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx--;\n var f01 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n var m11 = frct.x * frct.y, m10 = frct.x * (1.0 - frct.y),\n m00 = (1.0 - frct.x) * (1.0 - frct.y), m01 = (1.0 - frct.x) * frct.y;\n val.x = (m00 * f00.x + m10 * f10.x + m01 * f01.x + m11 * f11.x);\n val.y = (m00 * f00.y + m10 * f10.y + m01 * f01.y + m11 * f11.y);\n return val;\n}\n","import globals from './global';\nimport parseProj from './projString';\nimport wkt from 'wkt-parser';\n\nfunction defs(name) {\n /*global console*/\n var that = this;\n if (arguments.length === 2) {\n var def = arguments[1];\n if (typeof def === 'string') {\n if (def.charAt(0) === '+') {\n defs[name] = parseProj(arguments[1]);\n }\n else {\n defs[name] = wkt(arguments[1]);\n }\n } else {\n defs[name] = def;\n }\n }\n else if (arguments.length === 1) {\n if (Array.isArray(name)) {\n return name.map(function(v) {\n if (Array.isArray(v)) {\n defs.apply(that, v);\n }\n else {\n defs(v);\n }\n });\n }\n else if (typeof name === 'string') {\n if (name in defs) {\n return defs[name];\n }\n }\n else if ('EPSG' in name) {\n defs['EPSG:' + name.EPSG] = name;\n }\n else if ('ESRI' in name) {\n defs['ESRI:' + name.ESRI] = name;\n }\n else if ('IAU2000' in name) {\n defs['IAU2000:' + name.IAU2000] = name;\n }\n else {\n console.log(name);\n }\n return;\n }\n\n\n}\nglobals(defs);\nexport default defs;\n","import {SIXTH, RA4, RA6, EPSLN} from './constants/values';\nimport {default as Ellipsoid, WGS84} from './constants/Ellipsoid';\nimport match from './match';\n\nexport function eccentricity(a, b, rf, R_A) {\n var a2 = a * a; // used in geocentric\n var b2 = b * b; // used in geocentric\n var es = (a2 - b2) / a2; // e ^ 2\n var e = 0;\n if (R_A) {\n a *= 1 - es * (SIXTH + es * (RA4 + es * RA6));\n a2 = a * a;\n es = 0;\n } else {\n e = Math.sqrt(es); // eccentricity\n }\n var ep2 = (a2 - b2) / b2; // used in geocentric\n return {\n es: es,\n e: e,\n ep2: ep2\n };\n}\nexport function sphere(a, b, rf, ellps, sphere) {\n if (!a) { // do we have an ellipsoid?\n var ellipse = match(Ellipsoid, ellps);\n if (!ellipse) {\n ellipse = WGS84;\n }\n a = ellipse.a;\n b = ellipse.b;\n rf = ellipse.rf;\n }\n\n if (rf && !b) {\n b = (1.0 - 1.0 / rf) * a;\n }\n if (rf === 0 || Math.abs(a - b) < EPSLN) {\n sphere = true;\n b = a;\n }\n return {\n a: a,\n b: b,\n rf: rf,\n sphere: sphere\n };\n}\n","export default function(destination, source) {\n destination = destination || {};\n var value, property;\n if (!source) {\n return destination;\n }\n for (property in source) {\n value = source[property];\n if (value !== undefined) {\n destination[property] = value;\n }\n }\n return destination;\n}\n","export default function(defs) {\n defs('EPSG:4326', \"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\");\n defs('EPSG:4269', \"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\");\n defs('EPSG:3857', \"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\");\n\n defs.WGS84 = defs['EPSG:4326'];\n defs['EPSG:3785'] = defs['EPSG:3857']; // maintain backward compat, official code is 3857\n defs.GOOGLE = defs['EPSG:3857'];\n defs['EPSG:900913'] = defs['EPSG:3857'];\n defs['EPSG:102113'] = defs['EPSG:3857'];\n}\n","import proj4 from './core';\nimport Proj from \"./Proj\";\nimport Point from \"./Point\";\nimport common from \"./common/toPoint\";\nimport defs from \"./defs\";\nimport nadgrid from \"./nadgrid\";\nimport transform from \"./transform\";\nimport mgrs from \"mgrs\";\nimport includedProjections from \"../projs\";\n\nproj4.defaultDatum = 'WGS84'; //default datum\nproj4.Proj = Proj;\nproj4.WGS84 = new proj4.Proj('WGS84');\nproj4.Point = Point;\nproj4.toPoint = common;\nproj4.defs = defs;\nproj4.nadgrid = nadgrid;\nproj4.transform = transform;\nproj4.mgrs = mgrs;\nproj4.version = '__VERSION__';\nincludedProjections(proj4);\nexport default proj4;\n","var ignoredChar = /[\\s_\\-\\/\\(\\)]/g;\nexport default function match(obj, key) {\n if (obj[key]) {\n return obj[key];\n }\n var keys = Object.keys(obj);\n var lkey = key.toLowerCase().replace(ignoredChar, '');\n var i = -1;\n var testkey, processedKey;\n while (++i < keys.length) {\n testkey = keys[i];\n processedKey = testkey.toLowerCase().replace(ignoredChar, '');\n if (processedKey === lkey) {\n return obj[testkey];\n }\n }\n}\n","/**\n * Resources for details of NTv2 file formats:\n * - https://web.archive.org/web/20140127204822if_/http://www.mgs.gov.on.ca:80/stdprodconsume/groups/content/@mgs/@iandit/documents/resourcelist/stel02_047447.pdf\n * - http://mimaka.com/help/gs/html/004_NTV2%20Data%20Format.htm\n */\n\nvar loadedNadgrids = {};\n\n/**\n * Load a binary NTv2 file (.gsb) to a key that can be used in a proj string like +nadgrids=. Pass the NTv2 file\n * as an ArrayBuffer.\n */\nexport default function nadgrid(key, data) {\n var view = new DataView(data);\n var isLittleEndian = detectLittleEndian(view);\n var header = readHeader(view, isLittleEndian);\n if (header.nSubgrids > 1) {\n console.log('Only single NTv2 subgrids are currently supported, subsequent sub grids are ignored');\n }\n var subgrids = readSubgrids(view, header, isLittleEndian);\n var nadgrid = {header: header, subgrids: subgrids};\n loadedNadgrids[key] = nadgrid;\n return nadgrid;\n}\n\n/**\n * Given a proj4 value for nadgrids, return an array of loaded grids\n */\nexport function getNadgrids(nadgrids) {\n // Format details: http://proj.maptools.org/gen_parms.html\n if (nadgrids === undefined) { return null; }\n var grids = nadgrids.split(',');\n return grids.map(parseNadgridString);\n}\n\nfunction parseNadgridString(value) {\n if (value.length === 0) {\n return null;\n }\n var optional = value[0] === '@';\n if (optional) {\n value = value.slice(1);\n }\n if (value === 'null') {\n return {name: 'null', mandatory: !optional, grid: null, isNull: true};\n }\n return {\n name: value,\n mandatory: !optional,\n grid: loadedNadgrids[value] || null,\n isNull: false\n };\n}\n\nfunction secondsToRadians(seconds) {\n return (seconds / 3600) * Math.PI / 180;\n}\n\nfunction detectLittleEndian(view) {\n var nFields = view.getInt32(8, false);\n if (nFields === 11) {\n return false;\n }\n nFields = view.getInt32(8, true);\n if (nFields !== 11) {\n console.warn('Failed to detect nadgrid endian-ness, defaulting to little-endian');\n }\n return true;\n}\n\nfunction readHeader(view, isLittleEndian) {\n return {\n nFields: view.getInt32(8, isLittleEndian),\n nSubgridFields: view.getInt32(24, isLittleEndian),\n nSubgrids: view.getInt32(40, isLittleEndian),\n shiftType: decodeString(view, 56, 56 + 8).trim(),\n fromSemiMajorAxis: view.getFloat64(120, isLittleEndian),\n fromSemiMinorAxis: view.getFloat64(136, isLittleEndian),\n toSemiMajorAxis: view.getFloat64(152, isLittleEndian),\n toSemiMinorAxis: view.getFloat64(168, isLittleEndian),\n };\n}\n\nfunction decodeString(view, start, end) {\n return String.fromCharCode.apply(null, new Uint8Array(view.buffer.slice(start, end)));\n}\n\nfunction readSubgrids(view, header, isLittleEndian) {\n var gridOffset = 176;\n var grids = [];\n for (var i = 0; i < header.nSubgrids; i++) {\n var subHeader = readGridHeader(view, gridOffset, isLittleEndian);\n var nodes = readGridNodes(view, gridOffset, subHeader, isLittleEndian);\n var lngColumnCount = Math.round(\n 1 + (subHeader.upperLongitude - subHeader.lowerLongitude) / subHeader.longitudeInterval);\n var latColumnCount = Math.round(\n 1 + (subHeader.upperLatitude - subHeader.lowerLatitude) / subHeader.latitudeInterval);\n // Proj4 operates on radians whereas the coordinates are in seconds in the grid\n grids.push({\n ll: [secondsToRadians(subHeader.lowerLongitude), secondsToRadians(subHeader.lowerLatitude)],\n del: [secondsToRadians(subHeader.longitudeInterval), secondsToRadians(subHeader.latitudeInterval)],\n lim: [lngColumnCount, latColumnCount],\n count: subHeader.gridNodeCount,\n cvs: mapNodes(nodes)\n });\n }\n return grids;\n}\n\nfunction mapNodes(nodes) {\n return nodes.map(function (r) {return [secondsToRadians(r.longitudeShift), secondsToRadians(r.latitudeShift)];});\n}\n\nfunction readGridHeader(view, offset, isLittleEndian) {\n return {\n name: decodeString(view, offset + 8, offset + 16).trim(),\n parent: decodeString(view, offset + 24, offset + 24 + 8).trim(),\n lowerLatitude: view.getFloat64(offset + 72, isLittleEndian),\n upperLatitude: view.getFloat64(offset + 88, isLittleEndian),\n lowerLongitude: view.getFloat64(offset + 104, isLittleEndian),\n upperLongitude: view.getFloat64(offset + 120, isLittleEndian),\n latitudeInterval: view.getFloat64(offset + 136, isLittleEndian),\n longitudeInterval: view.getFloat64(offset + 152, isLittleEndian),\n gridNodeCount: view.getInt32(offset + 168, isLittleEndian)\n };\n}\n\nfunction readGridNodes(view, offset, gridHeader, isLittleEndian) {\n var nodesOffset = offset + 176;\n var gridRecordLength = 16;\n var gridShiftRecords = [];\n for (var i = 0; i < gridHeader.gridNodeCount; i++) {\n var record = {\n latitudeShift: view.getFloat32(nodesOffset + i * gridRecordLength, isLittleEndian),\n longitudeShift: view.getFloat32(nodesOffset + i * gridRecordLength + 4, isLittleEndian),\n latitudeAccuracy: view.getFloat32(nodesOffset + i * gridRecordLength + 8, isLittleEndian),\n longitudeAccuracy: view.getFloat32(nodesOffset + i * gridRecordLength + 12, isLittleEndian),\n };\n gridShiftRecords.push(record);\n }\n return gridShiftRecords;\n}\n","import defs from './defs';\nimport wkt from 'wkt-parser';\nimport projStr from './projString';\nimport match from './match';\nfunction testObj(code){\n return typeof code === 'string';\n}\nfunction testDef(code){\n return code in defs;\n}\nvar codeWords = ['PROJECTEDCRS', 'PROJCRS', 'GEOGCS','GEOCCS','PROJCS','LOCAL_CS', 'GEODCRS', 'GEODETICCRS', 'GEODETICDATUM', 'ENGCRS', 'ENGINEERINGCRS'];\nfunction testWKT(code){\n return codeWords.some(function (word) {\n return code.indexOf(word) > -1;\n });\n}\nvar codes = ['3857', '900913', '3785', '102113'];\nfunction checkMercator(item) {\n var auth = match(item, 'authority');\n if (!auth) {\n return;\n }\n var code = match(auth, 'epsg');\n return code && codes.indexOf(code) > -1;\n}\nfunction checkProjStr(item) {\n var ext = match(item, 'extension');\n if (!ext) {\n return;\n }\n return match(ext, 'proj4');\n}\nfunction testProj(code){\n return code[0] === '+';\n}\nfunction parse(code){\n if (testObj(code)) {\n //check to see if this is a WKT string\n if (testDef(code)) {\n return defs[code];\n }\n if (testWKT(code)) {\n var out = wkt(code);\n // test of spetial case, due to this being a very common and often malformed\n if (checkMercator(out)) {\n return defs['EPSG:3857'];\n }\n var maybeProjStr = checkProjStr(out);\n if (maybeProjStr) {\n return projStr(maybeProjStr);\n }\n return out;\n }\n if (testProj(code)) {\n return projStr(code);\n }\n }else{\n return code;\n }\n}\n\nexport default parse;\n","import {D2R} from './constants/values';\nimport PrimeMeridian from './constants/PrimeMeridian';\nimport units from './constants/units';\nimport match from './match';\n\nexport default function(defData) {\n var self = {};\n var paramObj = defData.split('+').map(function(v) {\n return v.trim();\n }).filter(function(a) {\n return a;\n }).reduce(function(p, a) {\n var split = a.split('=');\n split.push(true);\n p[split[0].toLowerCase()] = split[1];\n return p;\n }, {});\n var paramName, paramVal, paramOutname;\n var params = {\n proj: 'projName',\n datum: 'datumCode',\n rf: function(v) {\n self.rf = parseFloat(v);\n },\n lat_0: function(v) {\n self.lat0 = v * D2R;\n },\n lat_1: function(v) {\n self.lat1 = v * D2R;\n },\n lat_2: function(v) {\n self.lat2 = v * D2R;\n },\n lat_ts: function(v) {\n self.lat_ts = v * D2R;\n },\n lon_0: function(v) {\n self.long0 = v * D2R;\n },\n lon_1: function(v) {\n self.long1 = v * D2R;\n },\n lon_2: function(v) {\n self.long2 = v * D2R;\n },\n alpha: function(v) {\n self.alpha = parseFloat(v) * D2R;\n },\n gamma: function(v) {\n self.rectified_grid_angle = parseFloat(v);\n },\n lonc: function(v) {\n self.longc = v * D2R;\n },\n x_0: function(v) {\n self.x0 = parseFloat(v);\n },\n y_0: function(v) {\n self.y0 = parseFloat(v);\n },\n k_0: function(v) {\n self.k0 = parseFloat(v);\n },\n k: function(v) {\n self.k0 = parseFloat(v);\n },\n a: function(v) {\n self.a = parseFloat(v);\n },\n b: function(v) {\n self.b = parseFloat(v);\n },\n r_a: function() {\n self.R_A = true;\n },\n zone: function(v) {\n self.zone = parseInt(v, 10);\n },\n south: function() {\n self.utmSouth = true;\n },\n towgs84: function(v) {\n self.datum_params = v.split(\",\").map(function(a) {\n return parseFloat(a);\n });\n },\n to_meter: function(v) {\n self.to_meter = parseFloat(v);\n },\n units: function(v) {\n self.units = v;\n var unit = match(units, v);\n if (unit) {\n self.to_meter = unit.to_meter;\n }\n },\n from_greenwich: function(v) {\n self.from_greenwich = v * D2R;\n },\n pm: function(v) {\n var pm = match(PrimeMeridian, v);\n self.from_greenwich = (pm ? pm : parseFloat(v)) * D2R;\n },\n nadgrids: function(v) {\n if (v === '@null') {\n self.datumCode = 'none';\n }\n else {\n self.nadgrids = v;\n }\n },\n axis: function(v) {\n var legalAxis = \"ewnsud\";\n if (v.length === 3 && legalAxis.indexOf(v.substr(0, 1)) !== -1 && legalAxis.indexOf(v.substr(1, 1)) !== -1 && legalAxis.indexOf(v.substr(2, 1)) !== -1) {\n self.axis = v;\n }\n },\n approx: function() {\n self.approx = true;\n }\n };\n for (paramName in paramObj) {\n paramVal = paramObj[paramName];\n if (paramName in params) {\n paramOutname = params[paramName];\n if (typeof paramOutname === 'function') {\n paramOutname(paramVal);\n }\n else {\n self[paramOutname] = paramVal;\n }\n }\n else {\n self[paramName] = paramVal;\n }\n }\n if(typeof self.datumCode === 'string' && self.datumCode !== \"WGS84\"){\n self.datumCode = self.datumCode.toLowerCase();\n }\n return self;\n}\n","import merc from \"./projections/merc\";\nimport longlat from \"./projections/longlat\";\nvar projs = [merc, longlat];\nvar names = {};\nvar projStore = [];\n\nfunction add(proj, i) {\n var len = projStore.length;\n if (!proj.names) {\n console.log(i);\n return true;\n }\n projStore[len] = proj;\n proj.names.forEach(function(n) {\n names[n.toLowerCase()] = len;\n });\n return this;\n}\n\nexport {add};\n\nexport function get(name) {\n if (!name) {\n return false;\n }\n var n = name.toLowerCase();\n if (typeof names[n] !== 'undefined' && projStore[names[n]]) {\n return projStore[names[n]];\n }\n}\n\nexport function start() {\n projs.forEach(add);\n}\nexport default {\n start: start,\n add: add,\n get: get\n};\n","import msfnz from '../common/msfnz';\nimport qsfnz from '../common/qsfnz';\nimport adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN} from '../constants/values';\n\nexport function init() {\n\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2);\n this.e3 = Math.sqrt(this.es);\n\n this.sin_po = Math.sin(this.lat1);\n this.cos_po = Math.cos(this.lat1);\n this.t1 = this.sin_po;\n this.con = this.sin_po;\n this.ms1 = msfnz(this.e3, this.sin_po, this.cos_po);\n this.qs1 = qsfnz(this.e3, this.sin_po);\n\n this.sin_po = Math.sin(this.lat2);\n this.cos_po = Math.cos(this.lat2);\n this.t2 = this.sin_po;\n this.ms2 = msfnz(this.e3, this.sin_po, this.cos_po);\n this.qs2 = qsfnz(this.e3, this.sin_po);\n\n this.sin_po = Math.sin(this.lat0);\n this.cos_po = Math.cos(this.lat0);\n this.t3 = this.sin_po;\n this.qs0 = qsfnz(this.e3, this.sin_po);\n\n if (Math.abs(this.lat1 - this.lat2) > EPSLN) {\n this.ns0 = (this.ms1 * this.ms1 - this.ms2 * this.ms2) / (this.qs2 - this.qs1);\n }\n else {\n this.ns0 = this.con;\n }\n this.c = this.ms1 * this.ms1 + this.ns0 * this.qs1;\n this.rh = this.a * Math.sqrt(this.c - this.ns0 * this.qs0) / this.ns0;\n}\n\n/* Albers Conical Equal Area forward equations--mapping lat,long to x,y\n -------------------------------------------------------------------*/\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n this.sin_phi = Math.sin(lat);\n this.cos_phi = Math.cos(lat);\n\n var qs = qsfnz(this.e3, this.sin_phi);\n var rh1 = this.a * Math.sqrt(this.c - this.ns0 * qs) / this.ns0;\n var theta = this.ns0 * adjust_lon(lon - this.long0);\n var x = rh1 * Math.sin(theta) + this.x0;\n var y = this.rh - rh1 * Math.cos(theta) + this.y0;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh1, qs, con, theta, lon, lat;\n\n p.x -= this.x0;\n p.y = this.rh - p.y + this.y0;\n if (this.ns0 >= 0) {\n rh1 = Math.sqrt(p.x * p.x + p.y * p.y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(p.x * p.x + p.y * p.y);\n con = -1;\n }\n theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2(con * p.x, con * p.y);\n }\n con = rh1 * this.ns0 / this.a;\n if (this.sphere) {\n lat = Math.asin((this.c - con * con) / (2 * this.ns0));\n }\n else {\n qs = (this.c - con * con) / this.ns0;\n lat = this.phi1z(this.e3, qs);\n }\n\n lon = adjust_lon(theta / this.ns0 + this.long0);\n p.x = lon;\n p.y = lat;\n return p;\n}\n\n/* Function to compute phi1, the latitude for the inverse of the\n Albers Conical Equal-Area projection.\n-------------------------------------------*/\nexport function phi1z(eccent, qs) {\n var sinphi, cosphi, con, com, dphi;\n var phi = asinz(0.5 * qs);\n if (eccent < EPSLN) {\n return phi;\n }\n\n var eccnts = eccent * eccent;\n for (var i = 1; i <= 25; i++) {\n sinphi = Math.sin(phi);\n cosphi = Math.cos(phi);\n con = eccent * sinphi;\n com = 1 - con * con;\n dphi = 0.5 * com * com / cosphi * (qs / (1 - eccnts) - sinphi / com + 0.5 / eccent * Math.log((1 - con) / (1 + con)));\n phi = phi + dphi;\n if (Math.abs(dphi) <= 1e-7) {\n return phi;\n }\n }\n return null;\n}\n\nexport var names = [\"Albers_Conic_Equal_Area\", \"Albers\", \"aea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n phi1z: phi1z\n};\n","import adjust_lon from '../common/adjust_lon';\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nimport mlfn from '../common/mlfn';\nimport e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport gN from '../common/gN';\nimport asinz from '../common/asinz';\nimport imlfn from '../common/imlfn';\n\n\n\nexport function init() {\n this.sin_p12 = Math.sin(this.lat0);\n this.cos_p12 = Math.cos(this.lat0);\n}\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var sinphi = Math.sin(p.y);\n var cosphi = Math.cos(p.y);\n var dlon = adjust_lon(lon - this.long0);\n var e0, e1, e2, e3, Mlp, Ml, tanphi, Nl1, Nl, psi, Az, G, H, GH, Hs, c, kp, cos_c, s, s2, s3, s4, s5;\n if (this.sphere) {\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North Pole case\n p.x = this.x0 + this.a * (HALF_PI - lat) * Math.sin(dlon);\n p.y = this.y0 - this.a * (HALF_PI - lat) * Math.cos(dlon);\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South Pole case\n p.x = this.x0 + this.a * (HALF_PI + lat) * Math.sin(dlon);\n p.y = this.y0 + this.a * (HALF_PI + lat) * Math.cos(dlon);\n return p;\n }\n else {\n //default case\n cos_c = this.sin_p12 * sinphi + this.cos_p12 * cosphi * Math.cos(dlon);\n c = Math.acos(cos_c);\n kp = c ? c / Math.sin(c) : 1;\n p.x = this.x0 + this.a * kp * cosphi * Math.sin(dlon);\n p.y = this.y0 + this.a * kp * (this.cos_p12 * sinphi - this.sin_p12 * cosphi * Math.cos(dlon));\n return p;\n }\n }\n else {\n e0 = e0fn(this.es);\n e1 = e1fn(this.es);\n e2 = e2fn(this.es);\n e3 = e3fn(this.es);\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North Pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n Ml = this.a * mlfn(e0, e1, e2, e3, lat);\n p.x = this.x0 + (Mlp - Ml) * Math.sin(dlon);\n p.y = this.y0 - (Mlp - Ml) * Math.cos(dlon);\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South Pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n Ml = this.a * mlfn(e0, e1, e2, e3, lat);\n p.x = this.x0 + (Mlp + Ml) * Math.sin(dlon);\n p.y = this.y0 + (Mlp + Ml) * Math.cos(dlon);\n return p;\n }\n else {\n //Default case\n tanphi = sinphi / cosphi;\n Nl1 = gN(this.a, this.e, this.sin_p12);\n Nl = gN(this.a, this.e, sinphi);\n psi = Math.atan((1 - this.es) * tanphi + this.es * Nl1 * this.sin_p12 / (Nl * cosphi));\n Az = Math.atan2(Math.sin(dlon), this.cos_p12 * Math.tan(psi) - this.sin_p12 * Math.cos(dlon));\n if (Az === 0) {\n s = Math.asin(this.cos_p12 * Math.sin(psi) - this.sin_p12 * Math.cos(psi));\n }\n else if (Math.abs(Math.abs(Az) - Math.PI) <= EPSLN) {\n s = -Math.asin(this.cos_p12 * Math.sin(psi) - this.sin_p12 * Math.cos(psi));\n }\n else {\n s = Math.asin(Math.sin(dlon) * Math.cos(psi) / Math.sin(Az));\n }\n G = this.e * this.sin_p12 / Math.sqrt(1 - this.es);\n H = this.e * this.cos_p12 * Math.cos(Az) / Math.sqrt(1 - this.es);\n GH = G * H;\n Hs = H * H;\n s2 = s * s;\n s3 = s2 * s;\n s4 = s3 * s;\n s5 = s4 * s;\n c = Nl1 * s * (1 - s2 * Hs * (1 - Hs) / 6 + s3 / 8 * GH * (1 - 2 * Hs) + s4 / 120 * (Hs * (4 - 7 * Hs) - 3 * G * G * (1 - 7 * Hs)) - s5 / 48 * GH);\n p.x = this.x0 + c * Math.sin(Az);\n p.y = this.y0 + c * Math.cos(Az);\n return p;\n }\n }\n\n\n}\n\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var rh, z, sinz, cosz, lon, lat, con, e0, e1, e2, e3, Mlp, M, N1, psi, Az, cosAz, tmp, A, B, D, Ee, F, sinpsi;\n if (this.sphere) {\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n if (rh > (2 * HALF_PI * this.a)) {\n return;\n }\n z = rh / this.a;\n\n sinz = Math.sin(z);\n cosz = Math.cos(z);\n\n lon = this.long0;\n if (Math.abs(rh) <= EPSLN) {\n lat = this.lat0;\n }\n else {\n lat = asinz(cosz * this.sin_p12 + (p.y * sinz * this.cos_p12) / rh);\n con = Math.abs(this.lat0) - HALF_PI;\n if (Math.abs(con) <= EPSLN) {\n if (this.lat0 >= 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - p.y));\n }\n else {\n lon = adjust_lon(this.long0 - Math.atan2(-p.x, p.y));\n }\n }\n else {\n /*con = cosz - this.sin_p12 * Math.sin(lat);\n if ((Math.abs(con) < EPSLN) && (Math.abs(p.x) < EPSLN)) {\n //no-op, just keep the lon value as is\n } else {\n var temp = Math.atan2((p.x * sinz * this.cos_p12), (con * rh));\n lon = adjust_lon(this.long0 + Math.atan2((p.x * sinz * this.cos_p12), (con * rh)));\n }*/\n lon = adjust_lon(this.long0 + Math.atan2(p.x * sinz, rh * this.cos_p12 * cosz - p.y * this.sin_p12 * sinz));\n }\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n e0 = e0fn(this.es);\n e1 = e1fn(this.es);\n e2 = e2fn(this.es);\n e3 = e3fn(this.es);\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n M = Mlp - rh;\n lat = imlfn(M / this.a, e0, e1, e2, e3);\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - 1 * p.y));\n p.x = lon;\n p.y = lat;\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n M = rh - Mlp;\n\n lat = imlfn(M / this.a, e0, e1, e2, e3);\n lon = adjust_lon(this.long0 + Math.atan2(p.x, p.y));\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n //default case\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n Az = Math.atan2(p.x, p.y);\n N1 = gN(this.a, this.e, this.sin_p12);\n cosAz = Math.cos(Az);\n tmp = this.e * this.cos_p12 * cosAz;\n A = -tmp * tmp / (1 - this.es);\n B = 3 * this.es * (1 - A) * this.sin_p12 * this.cos_p12 * cosAz / (1 - this.es);\n D = rh / N1;\n Ee = D - A * (1 + A) * Math.pow(D, 3) / 6 - B * (1 + 3 * A) * Math.pow(D, 4) / 24;\n F = 1 - A * Ee * Ee / 2 - D * Ee * Ee * Ee / 6;\n psi = Math.asin(this.sin_p12 * Math.cos(Ee) + this.cos_p12 * Math.sin(Ee) * cosAz);\n lon = adjust_lon(this.long0 + Math.asin(Math.sin(Az) * Math.sin(Ee) / Math.cos(psi)));\n sinpsi = Math.sin(psi);\n lat = Math.atan2((sinpsi - this.es * F * this.sin_p12) * Math.tan(psi), sinpsi * (1 - this.es));\n p.x = lon;\n p.y = lat;\n return p;\n }\n }\n\n}\n\nexport var names = [\"Azimuthal_Equidistant\", \"aeqd\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import mlfn from '../common/mlfn';\nimport e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport gN from '../common/gN';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport imlfn from '../common/imlfn';\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nexport function init() {\n if (!this.sphere) {\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n this.ml0 = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\n }\n}\n\n/* Cassini forward equations--mapping lat,long to x,y\n -----------------------------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var x, y;\n var lam = p.x;\n var phi = p.y;\n lam = adjust_lon(lam - this.long0);\n\n if (this.sphere) {\n x = this.a * Math.asin(Math.cos(phi) * Math.sin(lam));\n y = this.a * (Math.atan2(Math.tan(phi), Math.cos(lam)) - this.lat0);\n }\n else {\n //ellipsoid\n var sinphi = Math.sin(phi);\n var cosphi = Math.cos(phi);\n var nl = gN(this.a, this.e, sinphi);\n var tl = Math.tan(phi) * Math.tan(phi);\n var al = lam * Math.cos(phi);\n var asq = al * al;\n var cl = this.es * cosphi * cosphi / (1 - this.es);\n var ml = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, phi);\n\n x = nl * al * (1 - asq * tl * (1 / 6 - (8 - tl + 8 * cl) * asq / 120));\n y = ml - this.ml0 + nl * sinphi / cosphi * asq * (0.5 + (5 - tl + 6 * cl) * asq / 24);\n\n\n }\n\n p.x = x + this.x0;\n p.y = y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var x = p.x / this.a;\n var y = p.y / this.a;\n var phi, lam;\n\n if (this.sphere) {\n var dd = y + this.lat0;\n phi = Math.asin(Math.sin(dd) * Math.cos(x));\n lam = Math.atan2(Math.tan(x), Math.cos(dd));\n }\n else {\n /* ellipsoid */\n var ml1 = this.ml0 / this.a + y;\n var phi1 = imlfn(ml1, this.e0, this.e1, this.e2, this.e3);\n if (Math.abs(Math.abs(phi1) - HALF_PI) <= EPSLN) {\n p.x = this.long0;\n p.y = HALF_PI;\n if (y < 0) {\n p.y *= -1;\n }\n return p;\n }\n var nl1 = gN(this.a, this.e, Math.sin(phi1));\n\n var rl1 = nl1 * nl1 * nl1 / this.a / this.a * (1 - this.es);\n var tl1 = Math.pow(Math.tan(phi1), 2);\n var dl = x * this.a / nl1;\n var dsq = dl * dl;\n phi = phi1 - nl1 * Math.tan(phi1) / rl1 * dl * dl * (0.5 - (1 + 3 * tl1) * dl * dl / 24);\n lam = dl * (1 - dsq * (tl1 / 3 + (1 + 3 * tl1) * tl1 * dsq / 15)) / Math.cos(phi1);\n\n }\n\n p.x = adjust_lon(lam + this.long0);\n p.y = adjust_lat(phi);\n return p;\n\n}\n\nexport var names = [\"Cassini\", \"Cassini_Soldner\", \"cass\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport qsfnz from '../common/qsfnz';\nimport msfnz from '../common/msfnz';\nimport iqsfnz from '../common/iqsfnz';\n\n/*\n reference:\n \"Cartographic Projection Procedures for the UNIX Environment-\n A User's Manual\" by Gerald I. Evenden,\n USGS Open File Report 90-284and Release 4 Interim Reports (2003)\n*/\nexport function init() {\n //no-op\n if (!this.sphere) {\n this.k0 = msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts));\n }\n}\n\n/* Cylindrical Equal Area forward equations--mapping lat,long to x,y\n ------------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var x, y;\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n if (this.sphere) {\n x = this.x0 + this.a * dlon * Math.cos(this.lat_ts);\n y = this.y0 + this.a * Math.sin(lat) / Math.cos(this.lat_ts);\n }\n else {\n var qs = qsfnz(this.e, Math.sin(lat));\n x = this.x0 + this.a * this.k0 * dlon;\n y = this.y0 + this.a * qs * 0.5 / this.k0;\n }\n\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Cylindrical Equal Area inverse equations--mapping x,y to lat/long\n ------------------------------------------------------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var lon, lat;\n\n if (this.sphere) {\n lon = adjust_lon(this.long0 + (p.x / this.a) / Math.cos(this.lat_ts));\n lat = Math.asin((p.y / this.a) * Math.cos(this.lat_ts));\n }\n else {\n lat = iqsfnz(this.e, 2 * p.y * this.k0 / this.a);\n lon = adjust_lon(this.long0 + p.x / (this.a * this.k0));\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"cea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\n\nexport function init() {\n\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.lat0 = this.lat0 || 0;\n this.long0 = this.long0 || 0;\n this.lat_ts = this.lat_ts || 0;\n this.title = this.title || \"Equidistant Cylindrical (Plate Carre)\";\n\n this.rc = Math.cos(this.lat_ts);\n}\n\n// forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n var dlon = adjust_lon(lon - this.long0);\n var dlat = adjust_lat(lat - this.lat0);\n p.x = this.x0 + (this.a * dlon * this.rc);\n p.y = this.y0 + (this.a * dlat);\n return p;\n}\n\n// inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n\n var x = p.x;\n var y = p.y;\n\n p.x = adjust_lon(this.long0 + ((x - this.x0) / (this.a * this.rc)));\n p.y = adjust_lat(this.lat0 + ((y - this.y0) / (this.a)));\n return p;\n}\n\nexport var names = [\"Equirectangular\", \"Equidistant_Cylindrical\", \"eqc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport msfnz from '../common/msfnz';\nimport mlfn from '../common/mlfn';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport imlfn from '../common/imlfn';\nimport {EPSLN} from '../constants/values';\n\nexport function init() {\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n // Standard Parallels cannot be equal and on opposite sides of the equator\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n this.lat2 = this.lat2 || this.lat1;\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2);\n this.e = Math.sqrt(this.es);\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n\n this.sinphi = Math.sin(this.lat1);\n this.cosphi = Math.cos(this.lat1);\n\n this.ms1 = msfnz(this.e, this.sinphi, this.cosphi);\n this.ml1 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat1);\n\n if (Math.abs(this.lat1 - this.lat2) < EPSLN) {\n this.ns = this.sinphi;\n }\n else {\n this.sinphi = Math.sin(this.lat2);\n this.cosphi = Math.cos(this.lat2);\n this.ms2 = msfnz(this.e, this.sinphi, this.cosphi);\n this.ml2 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat2);\n this.ns = (this.ms1 - this.ms2) / (this.ml2 - this.ml1);\n }\n this.g = this.ml1 + this.ms1 / this.ns;\n this.ml0 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\n this.rh = this.a * (this.g - this.ml0);\n}\n\n/* Equidistant Conic forward equations--mapping lat,long to x,y\n -----------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var rh1;\n\n /* Forward equations\n -----------------*/\n if (this.sphere) {\n rh1 = this.a * (this.g - lat);\n }\n else {\n var ml = mlfn(this.e0, this.e1, this.e2, this.e3, lat);\n rh1 = this.a * (this.g - ml);\n }\n var theta = this.ns * adjust_lon(lon - this.long0);\n var x = this.x0 + rh1 * Math.sin(theta);\n var y = this.y0 + this.rh - rh1 * Math.cos(theta);\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y = this.rh - p.y + this.y0;\n var con, rh1, lat, lon;\n if (this.ns >= 0) {\n rh1 = Math.sqrt(p.x * p.x + p.y * p.y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(p.x * p.x + p.y * p.y);\n con = -1;\n }\n var theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2(con * p.x, con * p.y);\n }\n\n if (this.sphere) {\n lon = adjust_lon(this.long0 + theta / this.ns);\n lat = adjust_lat(this.g - rh1 / this.a);\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n var ml = this.g - rh1 / this.a;\n lat = imlfn(ml, this.e0, this.e1, this.e2, this.e3);\n lon = adjust_lon(this.long0 + theta / this.ns);\n p.x = lon;\n p.y = lat;\n return p;\n }\n\n}\n\nexport var names = [\"Equidistant_Conic\", \"eqdc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","// Heavily based on this etmerc projection implementation\n// https://github.com/mbloch/mapshaper-proj/blob/master/src/projections/etmerc.js\n\nimport tmerc from '../projections/tmerc';\nimport sinh from '../common/sinh';\nimport hypot from '../common/hypot';\nimport asinhy from '../common/asinhy';\nimport gatg from '../common/gatg';\nimport clens from '../common/clens';\nimport clens_cmplx from '../common/clens_cmplx';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n if (!this.approx && (isNaN(this.es) || this.es <= 0)) {\n throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION[\"Fast_Transverse_Mercator\"] in the WKT.');\n }\n if (this.approx) {\n // When '+approx' is set, use tmerc instead\n tmerc.init.apply(this);\n this.forward = tmerc.forward;\n this.inverse = tmerc.inverse;\n }\n\n this.x0 = this.x0 !== undefined ? this.x0 : 0;\n this.y0 = this.y0 !== undefined ? this.y0 : 0;\n this.long0 = this.long0 !== undefined ? this.long0 : 0;\n this.lat0 = this.lat0 !== undefined ? this.lat0 : 0;\n\n this.cgb = [];\n this.cbg = [];\n this.utg = [];\n this.gtu = [];\n\n var f = this.es / (1 + Math.sqrt(1 - this.es));\n var n = f / (2 - f);\n var np = n;\n\n this.cgb[0] = n * (2 + n * (-2 / 3 + n * (-2 + n * (116 / 45 + n * (26 / 45 + n * (-2854 / 675 ))))));\n this.cbg[0] = n * (-2 + n * ( 2 / 3 + n * ( 4 / 3 + n * (-82 / 45 + n * (32 / 45 + n * (4642 / 4725))))));\n\n np = np * n;\n this.cgb[1] = np * (7 / 3 + n * (-8 / 5 + n * (-227 / 45 + n * (2704 / 315 + n * (2323 / 945)))));\n this.cbg[1] = np * (5 / 3 + n * (-16 / 15 + n * ( -13 / 9 + n * (904 / 315 + n * (-1522 / 945)))));\n\n np = np * n;\n this.cgb[2] = np * (56 / 15 + n * (-136 / 35 + n * (-1262 / 105 + n * (73814 / 2835))));\n this.cbg[2] = np * (-26 / 15 + n * (34 / 21 + n * (8 / 5 + n * (-12686 / 2835))));\n\n np = np * n;\n this.cgb[3] = np * (4279 / 630 + n * (-332 / 35 + n * (-399572 / 14175)));\n this.cbg[3] = np * (1237 / 630 + n * (-12 / 5 + n * ( -24832 / 14175)));\n\n np = np * n;\n this.cgb[4] = np * (4174 / 315 + n * (-144838 / 6237));\n this.cbg[4] = np * (-734 / 315 + n * (109598 / 31185));\n\n np = np * n;\n this.cgb[5] = np * (601676 / 22275);\n this.cbg[5] = np * (444337 / 155925);\n\n np = Math.pow(n, 2);\n this.Qn = this.k0 / (1 + n) * (1 + np * (1 / 4 + np * (1 / 64 + np / 256)));\n\n this.utg[0] = n * (-0.5 + n * ( 2 / 3 + n * (-37 / 96 + n * ( 1 / 360 + n * (81 / 512 + n * (-96199 / 604800))))));\n this.gtu[0] = n * (0.5 + n * (-2 / 3 + n * (5 / 16 + n * (41 / 180 + n * (-127 / 288 + n * (7891 / 37800))))));\n\n this.utg[1] = np * (-1 / 48 + n * (-1 / 15 + n * (437 / 1440 + n * (-46 / 105 + n * (1118711 / 3870720)))));\n this.gtu[1] = np * (13 / 48 + n * (-3 / 5 + n * (557 / 1440 + n * (281 / 630 + n * (-1983433 / 1935360)))));\n\n np = np * n;\n this.utg[2] = np * (-17 / 480 + n * (37 / 840 + n * (209 / 4480 + n * (-5569 / 90720 ))));\n this.gtu[2] = np * (61 / 240 + n * (-103 / 140 + n * (15061 / 26880 + n * (167603 / 181440))));\n\n np = np * n;\n this.utg[3] = np * (-4397 / 161280 + n * (11 / 504 + n * (830251 / 7257600)));\n this.gtu[3] = np * (49561 / 161280 + n * (-179 / 168 + n * (6601661 / 7257600)));\n\n np = np * n;\n this.utg[4] = np * (-4583 / 161280 + n * (108847 / 3991680));\n this.gtu[4] = np * (34729 / 80640 + n * (-3418889 / 1995840));\n\n np = np * n;\n this.utg[5] = np * (-20648693 / 638668800);\n this.gtu[5] = np * (212378941 / 319334400);\n\n var Z = gatg(this.cbg, this.lat0);\n this.Zb = -this.Qn * (Z + clens(this.gtu, 2 * Z));\n}\n\nexport function forward(p) {\n var Ce = adjust_lon(p.x - this.long0);\n var Cn = p.y;\n\n Cn = gatg(this.cbg, Cn);\n var sin_Cn = Math.sin(Cn);\n var cos_Cn = Math.cos(Cn);\n var sin_Ce = Math.sin(Ce);\n var cos_Ce = Math.cos(Ce);\n\n Cn = Math.atan2(sin_Cn, cos_Ce * cos_Cn);\n Ce = Math.atan2(sin_Ce * cos_Cn, hypot(sin_Cn, cos_Cn * cos_Ce));\n Ce = asinhy(Math.tan(Ce));\n\n var tmp = clens_cmplx(this.gtu, 2 * Cn, 2 * Ce);\n\n Cn = Cn + tmp[0];\n Ce = Ce + tmp[1];\n\n var x;\n var y;\n\n if (Math.abs(Ce) <= 2.623395162778) {\n x = this.a * (this.Qn * Ce) + this.x0;\n y = this.a * (this.Qn * Cn + this.Zb) + this.y0;\n }\n else {\n x = Infinity;\n y = Infinity;\n }\n\n p.x = x;\n p.y = y;\n\n return p;\n}\n\nexport function inverse(p) {\n var Ce = (p.x - this.x0) * (1 / this.a);\n var Cn = (p.y - this.y0) * (1 / this.a);\n\n Cn = (Cn - this.Zb) / this.Qn;\n Ce = Ce / this.Qn;\n\n var lon;\n var lat;\n\n if (Math.abs(Ce) <= 2.623395162778) {\n var tmp = clens_cmplx(this.utg, 2 * Cn, 2 * Ce);\n\n Cn = Cn + tmp[0];\n Ce = Ce + tmp[1];\n Ce = Math.atan(sinh(Ce));\n\n var sin_Cn = Math.sin(Cn);\n var cos_Cn = Math.cos(Cn);\n var sin_Ce = Math.sin(Ce);\n var cos_Ce = Math.cos(Ce);\n\n Cn = Math.atan2(sin_Cn * cos_Ce, hypot(sin_Ce, cos_Ce * cos_Cn));\n Ce = Math.atan2(sin_Ce, cos_Ce * cos_Cn);\n\n lon = adjust_lon(Ce + this.long0);\n lat = gatg(this.cgb, Cn);\n }\n else {\n lon = Infinity;\n lat = Infinity;\n }\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"Extended_Transverse_Mercator\", \"Extended Transverse Mercator\", \"etmerc\", \"Transverse_Mercator\", \"Transverse Mercator\", \"tmerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import srat from '../common/srat';\nvar MAX_ITER = 20;\nimport {HALF_PI, FORTPI} from '../constants/values';\n\nexport function init() {\n var sphi = Math.sin(this.lat0);\n var cphi = Math.cos(this.lat0);\n cphi *= cphi;\n this.rc = Math.sqrt(1 - this.es) / (1 - this.es * sphi * sphi);\n this.C = Math.sqrt(1 + this.es * cphi * cphi / (1 - this.es));\n this.phic0 = Math.asin(sphi / this.C);\n this.ratexp = 0.5 * this.C * this.e;\n this.K = Math.tan(0.5 * this.phic0 + FORTPI) / (Math.pow(Math.tan(0.5 * this.lat0 + FORTPI), this.C) * srat(this.e * sphi, this.ratexp));\n}\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n p.y = 2 * Math.atan(this.K * Math.pow(Math.tan(0.5 * lat + FORTPI), this.C) * srat(this.e * Math.sin(lat), this.ratexp)) - HALF_PI;\n p.x = this.C * lon;\n return p;\n}\n\nexport function inverse(p) {\n var DEL_TOL = 1e-14;\n var lon = p.x / this.C;\n var lat = p.y;\n var num = Math.pow(Math.tan(0.5 * lat + FORTPI) / this.K, 1 / this.C);\n for (var i = MAX_ITER; i > 0; --i) {\n lat = 2 * Math.atan(num * srat(this.e * Math.sin(p.y), - 0.5 * this.e)) - HALF_PI;\n if (Math.abs(lat - p.y) < DEL_TOL) {\n break;\n }\n p.y = lat;\n }\n /* convergence failed */\n if (!i) {\n return null;\n }\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"gauss\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {\n geodeticToGeocentric,\n geocentricToGeodetic\n} from '../datumUtils';\n\nexport function init() {\n this.name = 'geocent';\n\n}\n\nexport function forward(p) {\n var point = geodeticToGeocentric(p, this.es, this.a);\n return point;\n}\n\nexport function inverse(p) {\n var point = geocentricToGeodetic(p, this.es, this.a, this.b);\n return point;\n}\n\nexport var names = [\"Geocentric\", 'geocentric', \"geocent\", \"Geocent\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};","import hypot from '../common/hypot';\n\nexport function init() {\n this.flip_axis = (this.sweep === 'x' ? 1 : 0);\n this.h = Number(this.h);\n this.radius_g_1 = this.h / this.a;\n\n if (this.radius_g_1 <= 0 || this.radius_g_1 > 1e10) {\n throw new Error();\n }\n\n this.radius_g = 1.0 + this.radius_g_1;\n this.C = this.radius_g * this.radius_g - 1.0;\n\n if (this.es !== 0.0) {\n var one_es = 1.0 - this.es;\n var rone_es = 1 / one_es;\n\n this.radius_p = Math.sqrt(one_es);\n this.radius_p2 = one_es;\n this.radius_p_inv2 = rone_es;\n\n this.shape = 'ellipse'; // Use as a condition in the forward and inverse functions.\n } else {\n this.radius_p = 1.0;\n this.radius_p2 = 1.0;\n this.radius_p_inv2 = 1.0;\n\n this.shape = 'sphere'; // Use as a condition in the forward and inverse functions.\n }\n\n if (!this.title) {\n this.title = \"Geostationary Satellite View\";\n }\n}\n\nfunction forward(p) {\n var lon = p.x;\n var lat = p.y;\n var tmp, v_x, v_y, v_z;\n lon = lon - this.long0;\n\n if (this.shape === 'ellipse') {\n lat = Math.atan(this.radius_p2 * Math.tan(lat));\n var r = this.radius_p / hypot(this.radius_p * Math.cos(lat), Math.sin(lat));\n\n v_x = r * Math.cos(lon) * Math.cos(lat);\n v_y = r * Math.sin(lon) * Math.cos(lat);\n v_z = r * Math.sin(lat);\n\n if (((this.radius_g - v_x) * v_x - v_y * v_y - v_z * v_z * this.radius_p_inv2) < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n tmp = this.radius_g - v_x;\n if (this.flip_axis) {\n p.x = this.radius_g_1 * Math.atan(v_y / hypot(v_z, tmp));\n p.y = this.radius_g_1 * Math.atan(v_z / tmp);\n } else {\n p.x = this.radius_g_1 * Math.atan(v_y / tmp);\n p.y = this.radius_g_1 * Math.atan(v_z / hypot(v_y, tmp));\n }\n } else if (this.shape === 'sphere') {\n tmp = Math.cos(lat);\n v_x = Math.cos(lon) * tmp;\n v_y = Math.sin(lon) * tmp;\n v_z = Math.sin(lat);\n tmp = this.radius_g - v_x;\n\n if (this.flip_axis) {\n p.x = this.radius_g_1 * Math.atan(v_y / hypot(v_z, tmp));\n p.y = this.radius_g_1 * Math.atan(v_z / tmp);\n } else {\n p.x = this.radius_g_1 * Math.atan(v_y / tmp);\n p.y = this.radius_g_1 * Math.atan(v_z / hypot(v_y, tmp));\n }\n }\n p.x = p.x * this.a;\n p.y = p.y * this.a;\n return p;\n}\n\nfunction inverse(p) {\n var v_x = -1.0;\n var v_y = 0.0;\n var v_z = 0.0;\n var a, b, det, k;\n\n p.x = p.x / this.a;\n p.y = p.y / this.a;\n\n if (this.shape === 'ellipse') {\n if (this.flip_axis) {\n v_z = Math.tan(p.y / this.radius_g_1);\n v_y = Math.tan(p.x / this.radius_g_1) * hypot(1.0, v_z);\n } else {\n v_y = Math.tan(p.x / this.radius_g_1);\n v_z = Math.tan(p.y / this.radius_g_1) * hypot(1.0, v_y);\n }\n\n var v_zp = v_z / this.radius_p;\n a = v_y * v_y + v_zp * v_zp + v_x * v_x;\n b = 2 * this.radius_g * v_x;\n det = (b * b) - 4 * a * this.C;\n\n if (det < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n k = (-b - Math.sqrt(det)) / (2.0 * a);\n v_x = this.radius_g + k * v_x;\n v_y *= k;\n v_z *= k;\n\n p.x = Math.atan2(v_y, v_x);\n p.y = Math.atan(v_z * Math.cos(p.x) / v_x);\n p.y = Math.atan(this.radius_p_inv2 * Math.tan(p.y));\n } else if (this.shape === 'sphere') {\n if (this.flip_axis) {\n v_z = Math.tan(p.y / this.radius_g_1);\n v_y = Math.tan(p.x / this.radius_g_1) * Math.sqrt(1.0 + v_z * v_z);\n } else {\n v_y = Math.tan(p.x / this.radius_g_1);\n v_z = Math.tan(p.y / this.radius_g_1) * Math.sqrt(1.0 + v_y * v_y);\n }\n\n a = v_y * v_y + v_z * v_z + v_x * v_x;\n b = 2 * this.radius_g * v_x;\n det = (b * b) - 4 * a * this.C;\n if (det < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n k = (-b - Math.sqrt(det)) / (2.0 * a);\n v_x = this.radius_g + k * v_x;\n v_y *= k;\n v_z *= k;\n\n p.x = Math.atan2(v_y, v_x);\n p.y = Math.atan(v_z * Math.cos(p.x) / v_x);\n }\n p.x = p.x + this.long0;\n return p;\n}\n\nexport var names = [\"Geostationary Satellite View\", \"Geostationary_Satellite\", \"geos\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n};\n\n","import adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN} from '../constants/values';\n\n/*\n reference:\n Wolfram Mathworld \"Gnomonic Projection\"\n http://mathworld.wolfram.com/GnomonicProjection.html\n Accessed: 12th November 2009\n */\nexport function init() {\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.sin_p14 = Math.sin(this.lat0);\n this.cos_p14 = Math.cos(this.lat0);\n // Approximation for projecting points to the horizon (infinity)\n this.infinity_dist = 1000 * this.a;\n this.rc = 1;\n}\n\n/* Gnomonic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var sinphi, cosphi; /* sin and cos value */\n var dlon; /* delta longitude value */\n var coslon; /* cos of longitude */\n var ksp; /* scale factor */\n var g;\n var x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n dlon = adjust_lon(lon - this.long0);\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n coslon = Math.cos(dlon);\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\n ksp = 1;\n if ((g > 0) || (Math.abs(g) <= EPSLN)) {\n x = this.x0 + this.a * ksp * cosphi * Math.sin(dlon) / g;\n y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon) / g;\n }\n else {\n\n // Point is in the opposing hemisphere and is unprojectable\n // We still need to return a reasonable point, so we project\n // to infinity, on a bearing\n // equivalent to the northern hemisphere equivalent\n // This is a reasonable approximation for short shapes and lines that\n // straddle the horizon.\n\n x = this.x0 + this.infinity_dist * cosphi * Math.sin(dlon);\n y = this.y0 + this.infinity_dist * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\n\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh; /* Rho */\n var sinc, cosc;\n var c;\n var lon, lat;\n\n /* Inverse equations\n -----------------*/\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n p.x /= this.k0;\n p.y /= this.k0;\n\n if ((rh = Math.sqrt(p.x * p.x + p.y * p.y))) {\n c = Math.atan2(rh, this.rc);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n\n lat = asinz(cosc * this.sin_p14 + (p.y * sinc * this.cos_p14) / rh);\n lon = Math.atan2(p.x * sinc, rh * this.cos_p14 * cosc - p.y * this.sin_p14 * sinc);\n lon = adjust_lon(this.long0 + lon);\n }\n else {\n lat = this.phic0;\n lon = 0;\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"gnom\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n this.a = 6377397.155;\n this.es = 0.006674372230614;\n this.e = Math.sqrt(this.es);\n if (!this.lat0) {\n this.lat0 = 0.863937979737193;\n }\n if (!this.long0) {\n this.long0 = 0.7417649320975901 - 0.308341501185665;\n }\n /* if scale not set default to 0.9999 */\n if (!this.k0) {\n this.k0 = 0.9999;\n }\n this.s45 = 0.785398163397448; /* 45 */\n this.s90 = 2 * this.s45;\n this.fi0 = this.lat0;\n this.e2 = this.es;\n this.e = Math.sqrt(this.e2);\n this.alfa = Math.sqrt(1 + (this.e2 * Math.pow(Math.cos(this.fi0), 4)) / (1 - this.e2));\n this.uq = 1.04216856380474;\n this.u0 = Math.asin(Math.sin(this.fi0) / this.alfa);\n this.g = Math.pow((1 + this.e * Math.sin(this.fi0)) / (1 - this.e * Math.sin(this.fi0)), this.alfa * this.e / 2);\n this.k = Math.tan(this.u0 / 2 + this.s45) / Math.pow(Math.tan(this.fi0 / 2 + this.s45), this.alfa) * this.g;\n this.k1 = this.k0;\n this.n0 = this.a * Math.sqrt(1 - this.e2) / (1 - this.e2 * Math.pow(Math.sin(this.fi0), 2));\n this.s0 = 1.37008346281555;\n this.n = Math.sin(this.s0);\n this.ro0 = this.k1 * this.n0 / Math.tan(this.s0);\n this.ad = this.s90 - this.uq;\n}\n\n/* ellipsoid */\n/* calculate xy from lat/lon */\n/* Constants, identical to inverse transform function */\nexport function forward(p) {\n var gfi, u, deltav, s, d, eps, ro;\n var lon = p.x;\n var lat = p.y;\n var delta_lon = adjust_lon(lon - this.long0);\n /* Transformation */\n gfi = Math.pow(((1 + this.e * Math.sin(lat)) / (1 - this.e * Math.sin(lat))), (this.alfa * this.e / 2));\n u = 2 * (Math.atan(this.k * Math.pow(Math.tan(lat / 2 + this.s45), this.alfa) / gfi) - this.s45);\n deltav = -delta_lon * this.alfa;\n s = Math.asin(Math.cos(this.ad) * Math.sin(u) + Math.sin(this.ad) * Math.cos(u) * Math.cos(deltav));\n d = Math.asin(Math.cos(u) * Math.sin(deltav) / Math.cos(s));\n eps = this.n * d;\n ro = this.ro0 * Math.pow(Math.tan(this.s0 / 2 + this.s45), this.n) / Math.pow(Math.tan(s / 2 + this.s45), this.n);\n p.y = ro * Math.cos(eps) / 1;\n p.x = ro * Math.sin(eps) / 1;\n\n if (!this.czech) {\n p.y *= -1;\n p.x *= -1;\n }\n return (p);\n}\n\n/* calculate lat/lon from xy */\nexport function inverse(p) {\n var u, deltav, s, d, eps, ro, fi1;\n var ok;\n\n /* Transformation */\n /* revert y, x*/\n var tmp = p.x;\n p.x = p.y;\n p.y = tmp;\n if (!this.czech) {\n p.y *= -1;\n p.x *= -1;\n }\n ro = Math.sqrt(p.x * p.x + p.y * p.y);\n eps = Math.atan2(p.y, p.x);\n d = eps / Math.sin(this.s0);\n s = 2 * (Math.atan(Math.pow(this.ro0 / ro, 1 / this.n) * Math.tan(this.s0 / 2 + this.s45)) - this.s45);\n u = Math.asin(Math.cos(this.ad) * Math.sin(s) - Math.sin(this.ad) * Math.cos(s) * Math.cos(d));\n deltav = Math.asin(Math.cos(s) * Math.sin(d) / Math.cos(u));\n p.x = this.long0 - deltav / this.alfa;\n fi1 = u;\n ok = 0;\n var iter = 0;\n do {\n p.y = 2 * (Math.atan(Math.pow(this.k, - 1 / this.alfa) * Math.pow(Math.tan(u / 2 + this.s45), 1 / this.alfa) * Math.pow((1 + this.e * Math.sin(fi1)) / (1 - this.e * Math.sin(fi1)), this.e / 2)) - this.s45);\n if (Math.abs(fi1 - p.y) < 0.0000000001) {\n ok = 1;\n }\n fi1 = p.y;\n iter += 1;\n } while (ok === 0 && iter < 15);\n if (iter >= 15) {\n return null;\n }\n\n return (p);\n}\n\nexport var names = [\"Krovak\", \"krovak\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","\nimport {HALF_PI, EPSLN, FORTPI} from '../constants/values';\n\nimport qsfnz from '../common/qsfnz';\nimport adjust_lon from '../common/adjust_lon';\n\n/*\n reference\n \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\n */\n\nexport var S_POLE = 1;\n\nexport var N_POLE = 2;\nexport var EQUIT = 3;\nexport var OBLIQ = 4;\n\n/* Initialize the Lambert Azimuthal Equal Area projection\n ------------------------------------------------------*/\nexport function init() {\n var t = Math.abs(this.lat0);\n if (Math.abs(t - HALF_PI) < EPSLN) {\n this.mode = this.lat0 < 0 ? this.S_POLE : this.N_POLE;\n }\n else if (Math.abs(t) < EPSLN) {\n this.mode = this.EQUIT;\n }\n else {\n this.mode = this.OBLIQ;\n }\n if (this.es > 0) {\n var sinphi;\n\n this.qp = qsfnz(this.e, 1);\n this.mmf = 0.5 / (1 - this.es);\n this.apa = authset(this.es);\n switch (this.mode) {\n case this.N_POLE:\n this.dd = 1;\n break;\n case this.S_POLE:\n this.dd = 1;\n break;\n case this.EQUIT:\n this.rq = Math.sqrt(0.5 * this.qp);\n this.dd = 1 / this.rq;\n this.xmf = 1;\n this.ymf = 0.5 * this.qp;\n break;\n case this.OBLIQ:\n this.rq = Math.sqrt(0.5 * this.qp);\n sinphi = Math.sin(this.lat0);\n this.sinb1 = qsfnz(this.e, sinphi) / this.qp;\n this.cosb1 = Math.sqrt(1 - this.sinb1 * this.sinb1);\n this.dd = Math.cos(this.lat0) / (Math.sqrt(1 - this.es * sinphi * sinphi) * this.rq * this.cosb1);\n this.ymf = (this.xmf = this.rq) / this.dd;\n this.xmf *= this.dd;\n break;\n }\n }\n else {\n if (this.mode === this.OBLIQ) {\n this.sinph0 = Math.sin(this.lat0);\n this.cosph0 = Math.cos(this.lat0);\n }\n }\n}\n\n/* Lambert Azimuthal Equal Area forward equations--mapping lat,long to x,y\n -----------------------------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var x, y, coslam, sinlam, sinphi, q, sinb, cosb, b, cosphi;\n var lam = p.x;\n var phi = p.y;\n\n lam = adjust_lon(lam - this.long0);\n if (this.sphere) {\n sinphi = Math.sin(phi);\n cosphi = Math.cos(phi);\n coslam = Math.cos(lam);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n y = (this.mode === this.EQUIT) ? 1 + cosphi * coslam : 1 + this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\n if (y <= EPSLN) {\n return null;\n }\n y = Math.sqrt(2 / y);\n x = y * cosphi * Math.sin(lam);\n y *= (this.mode === this.EQUIT) ? sinphi : this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\n }\n else if (this.mode === this.N_POLE || this.mode === this.S_POLE) {\n if (this.mode === this.N_POLE) {\n coslam = -coslam;\n }\n if (Math.abs(phi + this.lat0) < EPSLN) {\n return null;\n }\n y = FORTPI - phi * 0.5;\n y = 2 * ((this.mode === this.S_POLE) ? Math.cos(y) : Math.sin(y));\n x = y * Math.sin(lam);\n y *= coslam;\n }\n }\n else {\n sinb = 0;\n cosb = 0;\n b = 0;\n coslam = Math.cos(lam);\n sinlam = Math.sin(lam);\n sinphi = Math.sin(phi);\n q = qsfnz(this.e, sinphi);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n sinb = q / this.qp;\n cosb = Math.sqrt(1 - sinb * sinb);\n }\n switch (this.mode) {\n case this.OBLIQ:\n b = 1 + this.sinb1 * sinb + this.cosb1 * cosb * coslam;\n break;\n case this.EQUIT:\n b = 1 + cosb * coslam;\n break;\n case this.N_POLE:\n b = HALF_PI + phi;\n q = this.qp - q;\n break;\n case this.S_POLE:\n b = phi - HALF_PI;\n q = this.qp + q;\n break;\n }\n if (Math.abs(b) < EPSLN) {\n return null;\n }\n switch (this.mode) {\n case this.OBLIQ:\n case this.EQUIT:\n b = Math.sqrt(2 / b);\n if (this.mode === this.OBLIQ) {\n y = this.ymf * b * (this.cosb1 * sinb - this.sinb1 * cosb * coslam);\n }\n else {\n y = (b = Math.sqrt(2 / (1 + cosb * coslam))) * sinb * this.ymf;\n }\n x = this.xmf * b * cosb * sinlam;\n break;\n case this.N_POLE:\n case this.S_POLE:\n if (q >= 0) {\n x = (b = Math.sqrt(q)) * sinlam;\n y = coslam * ((this.mode === this.S_POLE) ? b : -b);\n }\n else {\n x = y = 0;\n }\n break;\n }\n }\n\n p.x = this.a * x + this.x0;\n p.y = this.a * y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var x = p.x / this.a;\n var y = p.y / this.a;\n var lam, phi, cCe, sCe, q, rho, ab;\n if (this.sphere) {\n var cosz = 0,\n rh, sinz = 0;\n\n rh = Math.sqrt(x * x + y * y);\n phi = rh * 0.5;\n if (phi > 1) {\n return null;\n }\n phi = 2 * Math.asin(phi);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n sinz = Math.sin(phi);\n cosz = Math.cos(phi);\n }\n switch (this.mode) {\n case this.EQUIT:\n phi = (Math.abs(rh) <= EPSLN) ? 0 : Math.asin(y * sinz / rh);\n x *= sinz;\n y = cosz * rh;\n break;\n case this.OBLIQ:\n phi = (Math.abs(rh) <= EPSLN) ? this.lat0 : Math.asin(cosz * this.sinph0 + y * sinz * this.cosph0 / rh);\n x *= sinz * this.cosph0;\n y = (cosz - Math.sin(phi) * this.sinph0) * rh;\n break;\n case this.N_POLE:\n y = -y;\n phi = HALF_PI - phi;\n break;\n case this.S_POLE:\n phi -= HALF_PI;\n break;\n }\n lam = (y === 0 && (this.mode === this.EQUIT || this.mode === this.OBLIQ)) ? 0 : Math.atan2(x, y);\n }\n else {\n ab = 0;\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n x /= this.dd;\n y *= this.dd;\n rho = Math.sqrt(x * x + y * y);\n if (rho < EPSLN) {\n p.x = this.long0;\n p.y = this.lat0;\n return p;\n }\n sCe = 2 * Math.asin(0.5 * rho / this.rq);\n cCe = Math.cos(sCe);\n x *= (sCe = Math.sin(sCe));\n if (this.mode === this.OBLIQ) {\n ab = cCe * this.sinb1 + y * sCe * this.cosb1 / rho;\n q = this.qp * ab;\n y = rho * this.cosb1 * cCe - y * this.sinb1 * sCe;\n }\n else {\n ab = y * sCe / rho;\n q = this.qp * ab;\n y = rho * cCe;\n }\n }\n else if (this.mode === this.N_POLE || this.mode === this.S_POLE) {\n if (this.mode === this.N_POLE) {\n y = -y;\n }\n q = (x * x + y * y);\n if (!q) {\n p.x = this.long0;\n p.y = this.lat0;\n return p;\n }\n ab = 1 - q / this.qp;\n if (this.mode === this.S_POLE) {\n ab = -ab;\n }\n }\n lam = Math.atan2(x, y);\n phi = authlat(Math.asin(ab), this.apa);\n }\n\n p.x = adjust_lon(this.long0 + lam);\n p.y = phi;\n return p;\n}\n\n/* determine latitude from authalic latitude */\nvar P00 = 0.33333333333333333333;\n\nvar P01 = 0.17222222222222222222;\nvar P02 = 0.10257936507936507936;\nvar P10 = 0.06388888888888888888;\nvar P11 = 0.06640211640211640211;\nvar P20 = 0.01641501294219154443;\n\nfunction authset(es) {\n var t;\n var APA = [];\n APA[0] = es * P00;\n t = es * es;\n APA[0] += t * P01;\n APA[1] = t * P10;\n t *= es;\n APA[0] += t * P02;\n APA[1] += t * P11;\n APA[2] = t * P20;\n return APA;\n}\n\nfunction authlat(beta, APA) {\n var t = beta + beta;\n return (beta + APA[0] * Math.sin(t) + APA[1] * Math.sin(t + t) + APA[2] * Math.sin(t + t + t));\n}\n\nexport var names = [\"Lambert Azimuthal Equal Area\", \"Lambert_Azimuthal_Equal_Area\", \"laea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n S_POLE: S_POLE,\n N_POLE: N_POLE,\n EQUIT: EQUIT,\n OBLIQ: OBLIQ\n};\n","import msfnz from '../common/msfnz';\nimport tsfnz from '../common/tsfnz';\nimport sign from '../common/sign';\nimport adjust_lon from '../common/adjust_lon';\nimport phi2z from '../common/phi2z';\nimport {HALF_PI, EPSLN} from '../constants/values';\nexport function init() {\n \n //double lat0; /* the reference latitude */\n //double long0; /* the reference longitude */\n //double lat1; /* first standard parallel */\n //double lat2; /* second standard parallel */\n //double r_maj; /* major axis */\n //double r_min; /* minor axis */\n //double false_east; /* x offset in meters */\n //double false_north; /* y offset in meters */\n \n //the above value can be set with proj4.defs\n //example: proj4.defs(\"EPSG:2154\",\"+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs\");\n\n if (!this.lat2) {\n this.lat2 = this.lat1;\n } //if lat2 is not defined\n if (!this.k0) {\n this.k0 = 1;\n }\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n // Standard Parallels cannot be equal and on opposite sides of the equator\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n\n var temp = this.b / this.a;\n this.e = Math.sqrt(1 - temp * temp);\n\n var sin1 = Math.sin(this.lat1);\n var cos1 = Math.cos(this.lat1);\n var ms1 = msfnz(this.e, sin1, cos1);\n var ts1 = tsfnz(this.e, this.lat1, sin1);\n\n var sin2 = Math.sin(this.lat2);\n var cos2 = Math.cos(this.lat2);\n var ms2 = msfnz(this.e, sin2, cos2);\n var ts2 = tsfnz(this.e, this.lat2, sin2);\n\n var ts0 = tsfnz(this.e, this.lat0, Math.sin(this.lat0));\n\n if (Math.abs(this.lat1 - this.lat2) > EPSLN) {\n this.ns = Math.log(ms1 / ms2) / Math.log(ts1 / ts2);\n }\n else {\n this.ns = sin1;\n }\n if (isNaN(this.ns)) {\n this.ns = sin1;\n }\n this.f0 = ms1 / (this.ns * Math.pow(ts1, this.ns));\n this.rh = this.a * this.f0 * Math.pow(ts0, this.ns);\n if (!this.title) {\n this.title = \"Lambert Conformal Conic\";\n }\n}\n\n// Lambert Conformal conic forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n // singular cases :\n if (Math.abs(2 * Math.abs(lat) - Math.PI) <= EPSLN) {\n lat = sign(lat) * (HALF_PI - 2 * EPSLN);\n }\n\n var con = Math.abs(Math.abs(lat) - HALF_PI);\n var ts, rh1;\n if (con > EPSLN) {\n ts = tsfnz(this.e, lat, Math.sin(lat));\n rh1 = this.a * this.f0 * Math.pow(ts, this.ns);\n }\n else {\n con = lat * this.ns;\n if (con <= 0) {\n return null;\n }\n rh1 = 0;\n }\n var theta = this.ns * adjust_lon(lon - this.long0);\n p.x = this.k0 * (rh1 * Math.sin(theta)) + this.x0;\n p.y = this.k0 * (this.rh - rh1 * Math.cos(theta)) + this.y0;\n\n return p;\n}\n\n// Lambert Conformal Conic inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n\n var rh1, con, ts;\n var lat, lon;\n var x = (p.x - this.x0) / this.k0;\n var y = (this.rh - (p.y - this.y0) / this.k0);\n if (this.ns > 0) {\n rh1 = Math.sqrt(x * x + y * y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(x * x + y * y);\n con = -1;\n }\n var theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2((con * x), (con * y));\n }\n if ((rh1 !== 0) || (this.ns > 0)) {\n con = 1 / this.ns;\n ts = Math.pow((rh1 / (this.a * this.f0)), con);\n lat = phi2z(this.e, ts);\n if (lat === -9999) {\n return null;\n }\n }\n else {\n lat = -HALF_PI;\n }\n lon = adjust_lon(theta / this.ns + this.long0);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\n \"Lambert Tangential Conformal Conic Projection\",\n \"Lambert_Conformal_Conic\",\n \"Lambert_Conformal_Conic_1SP\",\n \"Lambert_Conformal_Conic_2SP\",\n \"lcc\",\n \"Lambert Conic Conformal (1SP)\",\n \"Lambert Conic Conformal (2SP)\"\n];\n\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export function init() {\n //no-op for longlat\n}\n\nfunction identity(pt) {\n return pt;\n}\nexport {identity as forward};\nexport {identity as inverse};\nexport var names = [\"longlat\", \"identity\"];\nexport default {\n init: init,\n forward: identity,\n inverse: identity,\n names: names\n};\n","import msfnz from '../common/msfnz';\n\nimport adjust_lon from '../common/adjust_lon';\nimport tsfnz from '../common/tsfnz';\nimport phi2z from '../common/phi2z';\nimport {FORTPI, R2D, EPSLN, HALF_PI} from '../constants/values';\nexport function init() {\n var con = this.b / this.a;\n this.es = 1 - con * con;\n if(!('x0' in this)){\n this.x0 = 0;\n }\n if(!('y0' in this)){\n this.y0 = 0;\n }\n this.e = Math.sqrt(this.es);\n if (this.lat_ts) {\n if (this.sphere) {\n this.k0 = Math.cos(this.lat_ts);\n }\n else {\n this.k0 = msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts));\n }\n }\n else {\n if (!this.k0) {\n if (this.k) {\n this.k0 = this.k;\n }\n else {\n this.k0 = 1;\n }\n }\n }\n}\n\n/* Mercator forward equations--mapping lat,long to x,y\n --------------------------------------------------*/\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n // convert to radians\n if (lat * R2D > 90 && lat * R2D < -90 && lon * R2D > 180 && lon * R2D < -180) {\n return null;\n }\n\n var x, y;\n if (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN) {\n return null;\n }\n else {\n if (this.sphere) {\n x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);\n y = this.y0 + this.a * this.k0 * Math.log(Math.tan(FORTPI + 0.5 * lat));\n }\n else {\n var sinphi = Math.sin(lat);\n var ts = tsfnz(this.e, lat, sinphi);\n x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);\n y = this.y0 - this.a * this.k0 * Math.log(ts);\n }\n p.x = x;\n p.y = y;\n return p;\n }\n}\n\n/* Mercator inverse equations--mapping x,y to lat/long\n --------------------------------------------------*/\nexport function inverse(p) {\n\n var x = p.x - this.x0;\n var y = p.y - this.y0;\n var lon, lat;\n\n if (this.sphere) {\n lat = HALF_PI - 2 * Math.atan(Math.exp(-y / (this.a * this.k0)));\n }\n else {\n var ts = Math.exp(-y / (this.a * this.k0));\n lat = phi2z(this.e, ts);\n if (lat === -9999) {\n return null;\n }\n }\n lon = adjust_lon(this.long0 + x / (this.a * this.k0));\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Mercator\", \"Popular Visualisation Pseudo Mercator\", \"Mercator_1SP\", \"Mercator_Auxiliary_Sphere\", \"merc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\n\n/*\n reference\n \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\n */\n\n\n/* Initialize the Miller Cylindrical projection\n -------------------------------------------*/\nexport function init() {\n //no-op\n}\n\n/* Miller Cylindrical forward equations--mapping lat,long to x,y\n ------------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n var x = this.x0 + this.a * dlon;\n var y = this.y0 + this.a * Math.log(Math.tan((Math.PI / 4) + (lat / 2.5))) * 1.25;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Miller Cylindrical inverse equations--mapping x,y to lat/long\n ------------------------------------------------------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n\n var lon = adjust_lon(this.long0 + p.x / this.a);\n var lat = 2.5 * (Math.atan(Math.exp(0.8 * p.y / this.a)) - Math.PI / 4);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Miller_Cylindrical\", \"mill\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nexport function init() {}\nimport {EPSLN} from '../constants/values';\n/* Mollweide forward equations--mapping lat,long to x,y\n ----------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var lon = p.x;\n var lat = p.y;\n\n var delta_lon = adjust_lon(lon - this.long0);\n var theta = lat;\n var con = Math.PI * Math.sin(lat);\n\n /* Iterate using the Newton-Raphson method to find theta\n -----------------------------------------------------*/\n while (true) {\n var delta_theta = -(theta + Math.sin(theta) - con) / (1 + Math.cos(theta));\n theta += delta_theta;\n if (Math.abs(delta_theta) < EPSLN) {\n break;\n }\n }\n theta /= 2;\n\n /* If the latitude is 90 deg, force the x coordinate to be \"0 + false easting\"\n this is done here because of precision problems with \"cos(theta)\"\n --------------------------------------------------------------------------*/\n if (Math.PI / 2 - Math.abs(lat) < EPSLN) {\n delta_lon = 0;\n }\n var x = 0.900316316158 * this.a * delta_lon * Math.cos(theta) + this.x0;\n var y = 1.4142135623731 * this.a * Math.sin(theta) + this.y0;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var theta;\n var arg;\n\n /* Inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n arg = p.y / (1.4142135623731 * this.a);\n\n /* Because of division by zero problems, 'arg' can not be 1. Therefore\n a number very close to one is used instead.\n -------------------------------------------------------------------*/\n if (Math.abs(arg) > 0.999999999999) {\n arg = 0.999999999999;\n }\n theta = Math.asin(arg);\n var lon = adjust_lon(this.long0 + (p.x / (0.900316316158 * this.a * Math.cos(theta))));\n if (lon < (-Math.PI)) {\n lon = -Math.PI;\n }\n if (lon > Math.PI) {\n lon = Math.PI;\n }\n arg = (2 * theta + Math.sin(2 * theta)) / Math.PI;\n if (Math.abs(arg) > 1) {\n arg = 1;\n }\n var lat = Math.asin(arg);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Mollweide\", \"moll\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {SEC_TO_RAD} from '../constants/values';\n\n/*\n reference\n Department of Land and Survey Technical Circular 1973/32\n http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf\n OSG Technical Report 4.1\n http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf\n */\n\n/**\n * iterations: Number of iterations to refine inverse transform.\n * 0 -> km accuracy\n * 1 -> m accuracy -- suitable for most mapping applications\n * 2 -> mm accuracy\n */\nexport var iterations = 1;\n\nexport function init() {\n this.A = [];\n this.A[1] = 0.6399175073;\n this.A[2] = -0.1358797613;\n this.A[3] = 0.063294409;\n this.A[4] = -0.02526853;\n this.A[5] = 0.0117879;\n this.A[6] = -0.0055161;\n this.A[7] = 0.0026906;\n this.A[8] = -0.001333;\n this.A[9] = 0.00067;\n this.A[10] = -0.00034;\n\n this.B_re = [];\n this.B_im = [];\n this.B_re[1] = 0.7557853228;\n this.B_im[1] = 0;\n this.B_re[2] = 0.249204646;\n this.B_im[2] = 0.003371507;\n this.B_re[3] = -0.001541739;\n this.B_im[3] = 0.041058560;\n this.B_re[4] = -0.10162907;\n this.B_im[4] = 0.01727609;\n this.B_re[5] = -0.26623489;\n this.B_im[5] = -0.36249218;\n this.B_re[6] = -0.6870983;\n this.B_im[6] = -1.1651967;\n\n this.C_re = [];\n this.C_im = [];\n this.C_re[1] = 1.3231270439;\n this.C_im[1] = 0;\n this.C_re[2] = -0.577245789;\n this.C_im[2] = -0.007809598;\n this.C_re[3] = 0.508307513;\n this.C_im[3] = -0.112208952;\n this.C_re[4] = -0.15094762;\n this.C_im[4] = 0.18200602;\n this.C_re[5] = 1.01418179;\n this.C_im[5] = 1.64497696;\n this.C_re[6] = 1.9660549;\n this.C_im[6] = 2.5127645;\n\n this.D = [];\n this.D[1] = 1.5627014243;\n this.D[2] = 0.5185406398;\n this.D[3] = -0.03333098;\n this.D[4] = -0.1052906;\n this.D[5] = -0.0368594;\n this.D[6] = 0.007317;\n this.D[7] = 0.01220;\n this.D[8] = 0.00394;\n this.D[9] = -0.0013;\n}\n\n/**\n New Zealand Map Grid Forward - long/lat to x/y\n long/lat in radians\n */\nexport function forward(p) {\n var n;\n var lon = p.x;\n var lat = p.y;\n\n var delta_lat = lat - this.lat0;\n var delta_lon = lon - this.long0;\n\n // 1. Calculate d_phi and d_psi ... // and d_lambda\n // For this algorithm, delta_latitude is in seconds of arc x 10-5, so we need to scale to those units. Longitude is radians.\n var d_phi = delta_lat / SEC_TO_RAD * 1E-5;\n var d_lambda = delta_lon;\n var d_phi_n = 1; // d_phi^0\n\n var d_psi = 0;\n for (n = 1; n <= 10; n++) {\n d_phi_n = d_phi_n * d_phi;\n d_psi = d_psi + this.A[n] * d_phi_n;\n }\n\n // 2. Calculate theta\n var th_re = d_psi;\n var th_im = d_lambda;\n\n // 3. Calculate z\n var th_n_re = 1;\n var th_n_im = 0; // theta^0\n var th_n_re1;\n var th_n_im1;\n\n var z_re = 0;\n var z_im = 0;\n for (n = 1; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n z_re = z_re + this.B_re[n] * th_n_re - this.B_im[n] * th_n_im;\n z_im = z_im + this.B_im[n] * th_n_re + this.B_re[n] * th_n_im;\n }\n\n // 4. Calculate easting and northing\n p.x = (z_im * this.a) + this.x0;\n p.y = (z_re * this.a) + this.y0;\n\n return p;\n}\n\n/**\n New Zealand Map Grid Inverse - x/y to long/lat\n */\nexport function inverse(p) {\n var n;\n var x = p.x;\n var y = p.y;\n\n var delta_x = x - this.x0;\n var delta_y = y - this.y0;\n\n // 1. Calculate z\n var z_re = delta_y / this.a;\n var z_im = delta_x / this.a;\n\n // 2a. Calculate theta - first approximation gives km accuracy\n var z_n_re = 1;\n var z_n_im = 0; // z^0\n var z_n_re1;\n var z_n_im1;\n\n var th_re = 0;\n var th_im = 0;\n for (n = 1; n <= 6; n++) {\n z_n_re1 = z_n_re * z_re - z_n_im * z_im;\n z_n_im1 = z_n_im * z_re + z_n_re * z_im;\n z_n_re = z_n_re1;\n z_n_im = z_n_im1;\n th_re = th_re + this.C_re[n] * z_n_re - this.C_im[n] * z_n_im;\n th_im = th_im + this.C_im[n] * z_n_re + this.C_re[n] * z_n_im;\n }\n\n // 2b. Iterate to refine the accuracy of the calculation\n // 0 iterations gives km accuracy\n // 1 iteration gives m accuracy -- good enough for most mapping applications\n // 2 iterations bives mm accuracy\n for (var i = 0; i < this.iterations; i++) {\n var th_n_re = th_re;\n var th_n_im = th_im;\n var th_n_re1;\n var th_n_im1;\n\n var num_re = z_re;\n var num_im = z_im;\n for (n = 2; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n num_re = num_re + (n - 1) * (this.B_re[n] * th_n_re - this.B_im[n] * th_n_im);\n num_im = num_im + (n - 1) * (this.B_im[n] * th_n_re + this.B_re[n] * th_n_im);\n }\n\n th_n_re = 1;\n th_n_im = 0;\n var den_re = this.B_re[1];\n var den_im = this.B_im[1];\n for (n = 2; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n den_re = den_re + n * (this.B_re[n] * th_n_re - this.B_im[n] * th_n_im);\n den_im = den_im + n * (this.B_im[n] * th_n_re + this.B_re[n] * th_n_im);\n }\n\n // Complex division\n var den2 = den_re * den_re + den_im * den_im;\n th_re = (num_re * den_re + num_im * den_im) / den2;\n th_im = (num_im * den_re - num_re * den_im) / den2;\n }\n\n // 3. Calculate d_phi ... // and d_lambda\n var d_psi = th_re;\n var d_lambda = th_im;\n var d_psi_n = 1; // d_psi^0\n\n var d_phi = 0;\n for (n = 1; n <= 9; n++) {\n d_psi_n = d_psi_n * d_psi;\n d_phi = d_phi + this.D[n] * d_psi_n;\n }\n\n // 4. Calculate latitude and longitude\n // d_phi is calcuated in second of arc * 10^-5, so we need to scale back to radians. d_lambda is in radians.\n var lat = this.lat0 + (d_phi * SEC_TO_RAD * 1E5);\n var lon = this.long0 + d_lambda;\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"New_Zealand_Map_Grid\", \"nzmg\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import tsfnz from '../common/tsfnz';\nimport adjust_lon from '../common/adjust_lon';\nimport phi2z from '../common/phi2z';\nimport { D2R, EPSLN, HALF_PI, TWO_PI, FORTPI } from '../constants/values';\n\nvar TOL = 1e-7;\n\nfunction isTypeA(P) {\n var typeAProjections = ['Hotine_Oblique_Mercator','Hotine_Oblique_Mercator_Azimuth_Natural_Origin'];\n var projectionName = typeof P.PROJECTION === \"object\" ? Object.keys(P.PROJECTION)[0] : P.PROJECTION;\n \n return 'no_uoff' in P || 'no_off' in P || typeAProjections.indexOf(projectionName) !== -1;\n}\n\n\n/* Initialize the Oblique Mercator projection\n ------------------------------------------*/\nexport function init() { \n var con, com, cosph0, D, F, H, L, sinph0, p, J, gamma = 0,\n gamma0, lamc = 0, lam1 = 0, lam2 = 0, phi1 = 0, phi2 = 0, alpha_c = 0, AB;\n \n // only Type A uses the no_off or no_uoff property\n // https://github.com/OSGeo/proj.4/issues/104\n this.no_off = isTypeA(this);\n this.no_rot = 'no_rot' in this;\n \n var alp = false;\n if (\"alpha\" in this) {\n alp = true;\n }\n\n var gam = false;\n if (\"rectified_grid_angle\" in this) {\n gam = true;\n }\n\n if (alp) {\n alpha_c = this.alpha;\n }\n \n if (gam) {\n gamma = (this.rectified_grid_angle * D2R);\n }\n \n if (alp || gam) {\n lamc = this.longc;\n } else {\n lam1 = this.long1;\n phi1 = this.lat1;\n lam2 = this.long2;\n phi2 = this.lat2;\n \n if (Math.abs(phi1 - phi2) <= TOL || (con = Math.abs(phi1)) <= TOL ||\n Math.abs(con - HALF_PI) <= TOL || Math.abs(Math.abs(this.lat0) - HALF_PI) <= TOL ||\n Math.abs(Math.abs(phi2) - HALF_PI) <= TOL) {\n throw new Error();\n }\n }\n \n var one_es = 1.0 - this.es;\n com = Math.sqrt(one_es);\n \n if (Math.abs(this.lat0) > EPSLN) {\n sinph0 = Math.sin(this.lat0);\n cosph0 = Math.cos(this.lat0);\n con = 1 - this.es * sinph0 * sinph0;\n this.B = cosph0 * cosph0;\n this.B = Math.sqrt(1 + this.es * this.B * this.B / one_es);\n this.A = this.B * this.k0 * com / con;\n D = this.B * com / (cosph0 * Math.sqrt(con));\n F = D * D -1;\n \n if (F <= 0) {\n F = 0;\n } else {\n F = Math.sqrt(F);\n if (this.lat0 < 0) {\n F = -F;\n }\n }\n \n this.E = F += D;\n this.E *= Math.pow(tsfnz(this.e, this.lat0, sinph0), this.B);\n } else {\n this.B = 1 / com;\n this.A = this.k0;\n this.E = D = F = 1;\n }\n \n if (alp || gam) {\n if (alp) {\n gamma0 = Math.asin(Math.sin(alpha_c) / D);\n if (!gam) {\n gamma = alpha_c;\n }\n } else {\n gamma0 = gamma;\n alpha_c = Math.asin(D * Math.sin(gamma0));\n }\n this.lam0 = lamc - Math.asin(0.5 * (F - 1 / F) * Math.tan(gamma0)) / this.B;\n } else {\n H = Math.pow(tsfnz(this.e, phi1, Math.sin(phi1)), this.B);\n L = Math.pow(tsfnz(this.e, phi2, Math.sin(phi2)), this.B);\n F = this.E / H;\n p = (L - H) / (L + H);\n J = this.E * this.E;\n J = (J - L * H) / (J + L * H);\n con = lam1 - lam2;\n \n if (con < -Math.pi) {\n lam2 -=TWO_PI;\n } else if (con > Math.pi) {\n lam2 += TWO_PI;\n }\n \n this.lam0 = adjust_lon(0.5 * (lam1 + lam2) - Math.atan(J * Math.tan(0.5 * this.B * (lam1 - lam2)) / p) / this.B);\n gamma0 = Math.atan(2 * Math.sin(this.B * adjust_lon(lam1 - this.lam0)) / (F - 1 / F));\n gamma = alpha_c = Math.asin(D * Math.sin(gamma0));\n }\n \n this.singam = Math.sin(gamma0);\n this.cosgam = Math.cos(gamma0);\n this.sinrot = Math.sin(gamma);\n this.cosrot = Math.cos(gamma);\n \n this.rB = 1 / this.B;\n this.ArB = this.A * this.rB;\n this.BrA = 1 / this.ArB;\n AB = this.A * this.B;\n \n if (this.no_off) {\n this.u_0 = 0;\n } else {\n this.u_0 = Math.abs(this.ArB * Math.atan(Math.sqrt(D * D - 1) / Math.cos(alpha_c)));\n \n if (this.lat0 < 0) {\n this.u_0 = - this.u_0;\n } \n }\n \n F = 0.5 * gamma0;\n this.v_pole_n = this.ArB * Math.log(Math.tan(FORTPI - F));\n this.v_pole_s = this.ArB * Math.log(Math.tan(FORTPI + F));\n}\n\n\n/* Oblique Mercator forward equations--mapping lat,long to x,y\n ----------------------------------------------------------*/\nexport function forward(p) {\n var coords = {};\n var S, T, U, V, W, temp, u, v;\n p.x = p.x - this.lam0;\n \n if (Math.abs(Math.abs(p.y) - HALF_PI) > EPSLN) {\n W = this.E / Math.pow(tsfnz(this.e, p.y, Math.sin(p.y)), this.B);\n \n temp = 1 / W;\n S = 0.5 * (W - temp);\n T = 0.5 * (W + temp);\n V = Math.sin(this.B * p.x);\n U = (S * this.singam - V * this.cosgam) / T;\n \n if (Math.abs(Math.abs(U) - 1.0) < EPSLN) {\n throw new Error();\n }\n \n v = 0.5 * this.ArB * Math.log((1 - U)/(1 + U));\n temp = Math.cos(this.B * p.x);\n \n if (Math.abs(temp) < TOL) {\n u = this.A * p.x;\n } else {\n u = this.ArB * Math.atan2((S * this.cosgam + V * this.singam), temp);\n } \n } else {\n v = p.y > 0 ? this.v_pole_n : this.v_pole_s;\n u = this.ArB * p.y;\n }\n \n if (this.no_rot) {\n coords.x = u;\n coords.y = v;\n } else {\n u -= this.u_0;\n coords.x = v * this.cosrot + u * this.sinrot;\n coords.y = u * this.cosrot - v * this.sinrot;\n }\n \n coords.x = (this.a * coords.x + this.x0);\n coords.y = (this.a * coords.y + this.y0);\n \n return coords;\n}\n\nexport function inverse(p) {\n var u, v, Qp, Sp, Tp, Vp, Up;\n var coords = {};\n \n p.x = (p.x - this.x0) * (1.0 / this.a);\n p.y = (p.y - this.y0) * (1.0 / this.a);\n\n if (this.no_rot) {\n v = p.y;\n u = p.x;\n } else {\n v = p.x * this.cosrot - p.y * this.sinrot;\n u = p.y * this.cosrot + p.x * this.sinrot + this.u_0;\n }\n \n Qp = Math.exp(-this.BrA * v);\n Sp = 0.5 * (Qp - 1 / Qp);\n Tp = 0.5 * (Qp + 1 / Qp);\n Vp = Math.sin(this.BrA * u);\n Up = (Vp * this.cosgam + Sp * this.singam) / Tp;\n \n if (Math.abs(Math.abs(Up) - 1) < EPSLN) {\n coords.x = 0;\n coords.y = Up < 0 ? -HALF_PI : HALF_PI;\n } else {\n coords.y = this.E / Math.sqrt((1 + Up) / (1 - Up));\n coords.y = phi2z(this.e, Math.pow(coords.y, 1 / this.B));\n \n if (coords.y === Infinity) {\n throw new Error();\n }\n \n coords.x = -this.rB * Math.atan2((Sp * this.cosgam - Vp * this.singam), Math.cos(this.BrA * u));\n }\n \n coords.x += this.lam0;\n \n return coords;\n}\n\nexport var names = [\"Hotine_Oblique_Mercator\", \"Hotine Oblique Mercator\", \"Hotine_Oblique_Mercator_Azimuth_Natural_Origin\", \"Hotine_Oblique_Mercator_Two_Point_Natural_Origin\", \"Hotine_Oblique_Mercator_Azimuth_Center\", \"Oblique_Mercator\", \"omerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN, HALF_PI} from '../constants/values';\n\nexport function init() {\n //double temp; /* temporary variable */\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.sin_p14 = Math.sin(this.lat0);\n this.cos_p14 = Math.cos(this.lat0);\n}\n\n/* Orthographic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var sinphi, cosphi; /* sin and cos value */\n var dlon; /* delta longitude value */\n var coslon; /* cos of longitude */\n var ksp; /* scale factor */\n var g, x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n dlon = adjust_lon(lon - this.long0);\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n coslon = Math.cos(dlon);\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\n ksp = 1;\n if ((g > 0) || (Math.abs(g) <= EPSLN)) {\n x = this.a * ksp * cosphi * Math.sin(dlon);\n y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh; /* height above ellipsoid */\n var z; /* angle */\n var sinz, cosz; /* sin of z and cos of z */\n var con;\n var lon, lat;\n /* Inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n z = asinz(rh / this.a);\n\n sinz = Math.sin(z);\n cosz = Math.cos(z);\n\n lon = this.long0;\n if (Math.abs(rh) <= EPSLN) {\n lat = this.lat0;\n p.x = lon;\n p.y = lat;\n return p;\n }\n lat = asinz(cosz * this.sin_p14 + (p.y * sinz * this.cos_p14) / rh);\n con = Math.abs(this.lat0) - HALF_PI;\n if (Math.abs(con) <= EPSLN) {\n if (this.lat0 >= 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - p.y));\n }\n else {\n lon = adjust_lon(this.long0 - Math.atan2(-p.x, p.y));\n }\n p.x = lon;\n p.y = lat;\n return p;\n }\n lon = adjust_lon(this.long0 + Math.atan2((p.x * sinz), rh * this.cos_p14 * cosz - p.y * this.sin_p14 * sinz));\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"ortho\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport mlfn from '../common/mlfn';\nimport {EPSLN} from '../constants/values';\n\nimport gN from '../common/gN';\nvar MAX_ITER = 20;\n\nexport function init() {\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2); // devait etre dans tmerc.js mais n y est pas donc je commente sinon retour de valeurs nulles\n this.e = Math.sqrt(this.es);\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n this.ml0 = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0); //si que des zeros le calcul ne se fait pas\n}\n\n/* Polyconic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var x, y, el;\n var dlon = adjust_lon(lon - this.long0);\n el = dlon * Math.sin(lat);\n if (this.sphere) {\n if (Math.abs(lat) <= EPSLN) {\n x = this.a * dlon;\n y = -1 * this.a * this.lat0;\n }\n else {\n x = this.a * Math.sin(el) / Math.tan(lat);\n y = this.a * (adjust_lat(lat - this.lat0) + (1 - Math.cos(el)) / Math.tan(lat));\n }\n }\n else {\n if (Math.abs(lat) <= EPSLN) {\n x = this.a * dlon;\n y = -1 * this.ml0;\n }\n else {\n var nl = gN(this.a, this.e, Math.sin(lat)) / Math.tan(lat);\n x = nl * Math.sin(el);\n y = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, lat) - this.ml0 + nl * (1 - Math.cos(el));\n }\n\n }\n p.x = x + this.x0;\n p.y = y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n var lon, lat, x, y, i;\n var al, bl;\n var phi, dphi;\n x = p.x - this.x0;\n y = p.y - this.y0;\n\n if (this.sphere) {\n if (Math.abs(y + this.a * this.lat0) <= EPSLN) {\n lon = adjust_lon(x / this.a + this.long0);\n lat = 0;\n }\n else {\n al = this.lat0 + y / this.a;\n bl = x * x / this.a / this.a + al * al;\n phi = al;\n var tanphi;\n for (i = MAX_ITER; i; --i) {\n tanphi = Math.tan(phi);\n dphi = -1 * (al * (phi * tanphi + 1) - phi - 0.5 * (phi * phi + bl) * tanphi) / ((phi - al) / tanphi - 1);\n phi += dphi;\n if (Math.abs(dphi) <= EPSLN) {\n lat = phi;\n break;\n }\n }\n lon = adjust_lon(this.long0 + (Math.asin(x * Math.tan(phi) / this.a)) / Math.sin(lat));\n }\n }\n else {\n if (Math.abs(y + this.ml0) <= EPSLN) {\n lat = 0;\n lon = adjust_lon(this.long0 + x / this.a);\n }\n else {\n\n al = (this.ml0 + y) / this.a;\n bl = x * x / this.a / this.a + al * al;\n phi = al;\n var cl, mln, mlnp, ma;\n var con;\n for (i = MAX_ITER; i; --i) {\n con = this.e * Math.sin(phi);\n cl = Math.sqrt(1 - con * con) * Math.tan(phi);\n mln = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, phi);\n mlnp = this.e0 - 2 * this.e1 * Math.cos(2 * phi) + 4 * this.e2 * Math.cos(4 * phi) - 6 * this.e3 * Math.cos(6 * phi);\n ma = mln / this.a;\n dphi = (al * (cl * ma + 1) - ma - 0.5 * cl * (ma * ma + bl)) / (this.es * Math.sin(2 * phi) * (ma * ma + bl - 2 * al * ma) / (4 * cl) + (al - ma) * (cl * mlnp - 2 / Math.sin(2 * phi)) - mlnp);\n phi -= dphi;\n if (Math.abs(dphi) <= EPSLN) {\n lat = phi;\n break;\n }\n }\n\n //lat=phi4z(this.e,this.e0,this.e1,this.e2,this.e3,al,bl,0,0);\n cl = Math.sqrt(1 - this.es * Math.pow(Math.sin(lat), 2)) * Math.tan(lat);\n lon = adjust_lon(this.long0 + Math.asin(x * cl / this.a) / Math.sin(lat));\n }\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Polyconic\", \"poly\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","// QSC projection rewritten from the original PROJ4\n// https://github.com/OSGeo/proj.4/blob/master/src/PJ_qsc.c\n\nimport {EPSLN, TWO_PI, SPI, HALF_PI, FORTPI} from '../constants/values';\n\n/* constants */\nvar FACE_ENUM = {\n FRONT: 1,\n RIGHT: 2,\n BACK: 3,\n LEFT: 4,\n TOP: 5,\n BOTTOM: 6\n};\n\nvar AREA_ENUM = {\n AREA_0: 1,\n AREA_1: 2,\n AREA_2: 3,\n AREA_3: 4\n};\n\nexport function init() {\n\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.lat0 = this.lat0 || 0;\n this.long0 = this.long0 || 0;\n this.lat_ts = this.lat_ts || 0;\n this.title = this.title || \"Quadrilateralized Spherical Cube\";\n\n /* Determine the cube face from the center of projection. */\n if (this.lat0 >= HALF_PI - FORTPI / 2.0) {\n this.face = FACE_ENUM.TOP;\n } else if (this.lat0 <= -(HALF_PI - FORTPI / 2.0)) {\n this.face = FACE_ENUM.BOTTOM;\n } else if (Math.abs(this.long0) <= FORTPI) {\n this.face = FACE_ENUM.FRONT;\n } else if (Math.abs(this.long0) <= HALF_PI + FORTPI) {\n this.face = this.long0 > 0.0 ? FACE_ENUM.RIGHT : FACE_ENUM.LEFT;\n } else {\n this.face = FACE_ENUM.BACK;\n }\n\n /* Fill in useful values for the ellipsoid <-> sphere shift\n * described in [LK12]. */\n if (this.es !== 0) {\n this.one_minus_f = 1 - (this.a - this.b) / this.a;\n this.one_minus_f_squared = this.one_minus_f * this.one_minus_f;\n }\n}\n\n// QSC forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n var xy = {x: 0, y: 0};\n var lat, lon;\n var theta, phi;\n var t, mu;\n /* nu; */\n var area = {value: 0};\n\n // move lon according to projection's lon\n p.x -= this.long0;\n\n /* Convert the geodetic latitude to a geocentric latitude.\n * This corresponds to the shift from the ellipsoid to the sphere\n * described in [LK12]. */\n if (this.es !== 0) {//if (P->es != 0) {\n lat = Math.atan(this.one_minus_f_squared * Math.tan(p.y));\n } else {\n lat = p.y;\n }\n\n /* Convert the input lat, lon into theta, phi as used by QSC.\n * This depends on the cube face and the area on it.\n * For the top and bottom face, we can compute theta and phi\n * directly from phi, lam. For the other faces, we must use\n * unit sphere cartesian coordinates as an intermediate step. */\n lon = p.x; //lon = lp.lam;\n if (this.face === FACE_ENUM.TOP) {\n phi = HALF_PI - lat;\n if (lon >= FORTPI && lon <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n theta = lon - HALF_PI;\n } else if (lon > HALF_PI + FORTPI || lon <= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_1;\n theta = (lon > 0.0 ? lon - SPI : lon + SPI);\n } else if (lon > -(HALF_PI + FORTPI) && lon <= -FORTPI) {\n area.value = AREA_ENUM.AREA_2;\n theta = lon + HALF_PI;\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta = lon;\n }\n } else if (this.face === FACE_ENUM.BOTTOM) {\n phi = HALF_PI + lat;\n if (lon >= FORTPI && lon <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n theta = -lon + HALF_PI;\n } else if (lon < FORTPI && lon >= -FORTPI) {\n area.value = AREA_ENUM.AREA_1;\n theta = -lon;\n } else if (lon < -FORTPI && lon >= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_2;\n theta = -lon - HALF_PI;\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta = (lon > 0.0 ? -lon + SPI : -lon - SPI);\n }\n } else {\n var q, r, s;\n var sinlat, coslat;\n var sinlon, coslon;\n\n if (this.face === FACE_ENUM.RIGHT) {\n lon = qsc_shift_lon_origin(lon, +HALF_PI);\n } else if (this.face === FACE_ENUM.BACK) {\n lon = qsc_shift_lon_origin(lon, +SPI);\n } else if (this.face === FACE_ENUM.LEFT) {\n lon = qsc_shift_lon_origin(lon, -HALF_PI);\n }\n sinlat = Math.sin(lat);\n coslat = Math.cos(lat);\n sinlon = Math.sin(lon);\n coslon = Math.cos(lon);\n q = coslat * coslon;\n r = coslat * sinlon;\n s = sinlat;\n\n if (this.face === FACE_ENUM.FRONT) {\n phi = Math.acos(q);\n theta = qsc_fwd_equat_face_theta(phi, s, r, area);\n } else if (this.face === FACE_ENUM.RIGHT) {\n phi = Math.acos(r);\n theta = qsc_fwd_equat_face_theta(phi, s, -q, area);\n } else if (this.face === FACE_ENUM.BACK) {\n phi = Math.acos(-q);\n theta = qsc_fwd_equat_face_theta(phi, s, -r, area);\n } else if (this.face === FACE_ENUM.LEFT) {\n phi = Math.acos(-r);\n theta = qsc_fwd_equat_face_theta(phi, s, q, area);\n } else {\n /* Impossible */\n phi = theta = 0;\n area.value = AREA_ENUM.AREA_0;\n }\n }\n\n /* Compute mu and nu for the area of definition.\n * For mu, see Eq. (3-21) in [OL76], but note the typos:\n * compare with Eq. (3-14). For nu, see Eq. (3-38). */\n mu = Math.atan((12 / SPI) * (theta + Math.acos(Math.sin(theta) * Math.cos(FORTPI)) - HALF_PI));\n t = Math.sqrt((1 - Math.cos(phi)) / (Math.cos(mu) * Math.cos(mu)) / (1 - Math.cos(Math.atan(1 / Math.cos(theta)))));\n\n /* Apply the result to the real area. */\n if (area.value === AREA_ENUM.AREA_1) {\n mu += HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_2) {\n mu += SPI;\n } else if (area.value === AREA_ENUM.AREA_3) {\n mu += 1.5 * SPI;\n }\n\n /* Now compute x, y from mu and nu */\n xy.x = t * Math.cos(mu);\n xy.y = t * Math.sin(mu);\n xy.x = xy.x * this.a + this.x0;\n xy.y = xy.y * this.a + this.y0;\n\n p.x = xy.x;\n p.y = xy.y;\n return p;\n}\n\n// QSC inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n var lp = {lam: 0, phi: 0};\n var mu, nu, cosmu, tannu;\n var tantheta, theta, cosphi, phi;\n var t;\n var area = {value: 0};\n\n /* de-offset */\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n /* Convert the input x, y to the mu and nu angles as used by QSC.\n * This depends on the area of the cube face. */\n nu = Math.atan(Math.sqrt(p.x * p.x + p.y * p.y));\n mu = Math.atan2(p.y, p.x);\n if (p.x >= 0.0 && p.x >= Math.abs(p.y)) {\n area.value = AREA_ENUM.AREA_0;\n } else if (p.y >= 0.0 && p.y >= Math.abs(p.x)) {\n area.value = AREA_ENUM.AREA_1;\n mu -= HALF_PI;\n } else if (p.x < 0.0 && -p.x >= Math.abs(p.y)) {\n area.value = AREA_ENUM.AREA_2;\n mu = (mu < 0.0 ? mu + SPI : mu - SPI);\n } else {\n area.value = AREA_ENUM.AREA_3;\n mu += HALF_PI;\n }\n\n /* Compute phi and theta for the area of definition.\n * The inverse projection is not described in the original paper, but some\n * good hints can be found here (as of 2011-12-14):\n * http://fits.gsfc.nasa.gov/fitsbits/saf.93/saf.9302\n * (search for \"Message-Id: <9302181759.AA25477 at fits.cv.nrao.edu>\") */\n t = (SPI / 12) * Math.tan(mu);\n tantheta = Math.sin(t) / (Math.cos(t) - (1 / Math.sqrt(2)));\n theta = Math.atan(tantheta);\n cosmu = Math.cos(mu);\n tannu = Math.tan(nu);\n cosphi = 1 - cosmu * cosmu * tannu * tannu * (1 - Math.cos(Math.atan(1 / Math.cos(theta))));\n if (cosphi < -1) {\n cosphi = -1;\n } else if (cosphi > +1) {\n cosphi = +1;\n }\n\n /* Apply the result to the real area on the cube face.\n * For the top and bottom face, we can compute phi and lam directly.\n * For the other faces, we must use unit sphere cartesian coordinates\n * as an intermediate step. */\n if (this.face === FACE_ENUM.TOP) {\n phi = Math.acos(cosphi);\n lp.phi = HALF_PI - phi;\n if (area.value === AREA_ENUM.AREA_0) {\n lp.lam = theta + HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_1) {\n lp.lam = (theta < 0.0 ? theta + SPI : theta - SPI);\n } else if (area.value === AREA_ENUM.AREA_2) {\n lp.lam = theta - HALF_PI;\n } else /* area.value == AREA_ENUM.AREA_3 */ {\n lp.lam = theta;\n }\n } else if (this.face === FACE_ENUM.BOTTOM) {\n phi = Math.acos(cosphi);\n lp.phi = phi - HALF_PI;\n if (area.value === AREA_ENUM.AREA_0) {\n lp.lam = -theta + HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_1) {\n lp.lam = -theta;\n } else if (area.value === AREA_ENUM.AREA_2) {\n lp.lam = -theta - HALF_PI;\n } else /* area.value == AREA_ENUM.AREA_3 */ {\n lp.lam = (theta < 0.0 ? -theta - SPI : -theta + SPI);\n }\n } else {\n /* Compute phi and lam via cartesian unit sphere coordinates. */\n var q, r, s;\n q = cosphi;\n t = q * q;\n if (t >= 1) {\n s = 0;\n } else {\n s = Math.sqrt(1 - t) * Math.sin(theta);\n }\n t += s * s;\n if (t >= 1) {\n r = 0;\n } else {\n r = Math.sqrt(1 - t);\n }\n /* Rotate q,r,s into the correct area. */\n if (area.value === AREA_ENUM.AREA_1) {\n t = r;\n r = -s;\n s = t;\n } else if (area.value === AREA_ENUM.AREA_2) {\n r = -r;\n s = -s;\n } else if (area.value === AREA_ENUM.AREA_3) {\n t = r;\n r = s;\n s = -t;\n }\n /* Rotate q,r,s into the correct cube face. */\n if (this.face === FACE_ENUM.RIGHT) {\n t = q;\n q = -r;\n r = t;\n } else if (this.face === FACE_ENUM.BACK) {\n q = -q;\n r = -r;\n } else if (this.face === FACE_ENUM.LEFT) {\n t = q;\n q = r;\n r = -t;\n }\n /* Now compute phi and lam from the unit sphere coordinates. */\n lp.phi = Math.acos(-s) - HALF_PI;\n lp.lam = Math.atan2(r, q);\n if (this.face === FACE_ENUM.RIGHT) {\n lp.lam = qsc_shift_lon_origin(lp.lam, -HALF_PI);\n } else if (this.face === FACE_ENUM.BACK) {\n lp.lam = qsc_shift_lon_origin(lp.lam, -SPI);\n } else if (this.face === FACE_ENUM.LEFT) {\n lp.lam = qsc_shift_lon_origin(lp.lam, +HALF_PI);\n }\n }\n\n /* Apply the shift from the sphere to the ellipsoid as described\n * in [LK12]. */\n if (this.es !== 0) {\n var invert_sign;\n var tanphi, xa;\n invert_sign = (lp.phi < 0 ? 1 : 0);\n tanphi = Math.tan(lp.phi);\n xa = this.b / Math.sqrt(tanphi * tanphi + this.one_minus_f_squared);\n lp.phi = Math.atan(Math.sqrt(this.a * this.a - xa * xa) / (this.one_minus_f * xa));\n if (invert_sign) {\n lp.phi = -lp.phi;\n }\n }\n\n lp.lam += this.long0;\n p.x = lp.lam;\n p.y = lp.phi;\n return p;\n}\n\n/* Helper function for forward projection: compute the theta angle\n * and determine the area number. */\nfunction qsc_fwd_equat_face_theta(phi, y, x, area) {\n var theta;\n if (phi < EPSLN) {\n area.value = AREA_ENUM.AREA_0;\n theta = 0.0;\n } else {\n theta = Math.atan2(y, x);\n if (Math.abs(theta) <= FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n } else if (theta > FORTPI && theta <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_1;\n theta -= HALF_PI;\n } else if (theta > HALF_PI + FORTPI || theta <= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_2;\n theta = (theta >= 0.0 ? theta - SPI : theta + SPI);\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta += HALF_PI;\n }\n }\n return theta;\n}\n\n/* Helper function: shift the longitude. */\nfunction qsc_shift_lon_origin(lon, offset) {\n var slon = lon + offset;\n if (slon < -SPI) {\n slon += TWO_PI;\n } else if (slon > +SPI) {\n slon -= TWO_PI;\n }\n return slon;\n}\n\nexport var names = [\"Quadrilateralized Spherical Cube\", \"Quadrilateralized_Spherical_Cube\", \"qsc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n\n","// Robinson projection\n// Based on https://github.com/OSGeo/proj.4/blob/master/src/PJ_robin.c\n// Polynomial coeficients from http://article.gmane.org/gmane.comp.gis.proj-4.devel/6039\n\nimport {HALF_PI, D2R, R2D, EPSLN} from '../constants/values';\nimport adjust_lon from '../common/adjust_lon';\n\nvar COEFS_X = [\n [1.0000, 2.2199e-17, -7.15515e-05, 3.1103e-06],\n [0.9986, -0.000482243, -2.4897e-05, -1.3309e-06],\n [0.9954, -0.00083103, -4.48605e-05, -9.86701e-07],\n [0.9900, -0.00135364, -5.9661e-05, 3.6777e-06],\n [0.9822, -0.00167442, -4.49547e-06, -5.72411e-06],\n [0.9730, -0.00214868, -9.03571e-05, 1.8736e-08],\n [0.9600, -0.00305085, -9.00761e-05, 1.64917e-06],\n [0.9427, -0.00382792, -6.53386e-05, -2.6154e-06],\n [0.9216, -0.00467746, -0.00010457, 4.81243e-06],\n [0.8962, -0.00536223, -3.23831e-05, -5.43432e-06],\n [0.8679, -0.00609363, -0.000113898, 3.32484e-06],\n [0.8350, -0.00698325, -6.40253e-05, 9.34959e-07],\n [0.7986, -0.00755338, -5.00009e-05, 9.35324e-07],\n [0.7597, -0.00798324, -3.5971e-05, -2.27626e-06],\n [0.7186, -0.00851367, -7.01149e-05, -8.6303e-06],\n [0.6732, -0.00986209, -0.000199569, 1.91974e-05],\n [0.6213, -0.010418, 8.83923e-05, 6.24051e-06],\n [0.5722, -0.00906601, 0.000182, 6.24051e-06],\n [0.5322, -0.00677797, 0.000275608, 6.24051e-06]\n];\n\nvar COEFS_Y = [\n [-5.20417e-18, 0.0124, 1.21431e-18, -8.45284e-11],\n [0.0620, 0.0124, -1.26793e-09, 4.22642e-10],\n [0.1240, 0.0124, 5.07171e-09, -1.60604e-09],\n [0.1860, 0.0123999, -1.90189e-08, 6.00152e-09],\n [0.2480, 0.0124002, 7.10039e-08, -2.24e-08],\n [0.3100, 0.0123992, -2.64997e-07, 8.35986e-08],\n [0.3720, 0.0124029, 9.88983e-07, -3.11994e-07],\n [0.4340, 0.0123893, -3.69093e-06, -4.35621e-07],\n [0.4958, 0.0123198, -1.02252e-05, -3.45523e-07],\n [0.5571, 0.0121916, -1.54081e-05, -5.82288e-07],\n [0.6176, 0.0119938, -2.41424e-05, -5.25327e-07],\n [0.6769, 0.011713, -3.20223e-05, -5.16405e-07],\n [0.7346, 0.0113541, -3.97684e-05, -6.09052e-07],\n [0.7903, 0.0109107, -4.89042e-05, -1.04739e-06],\n [0.8435, 0.0103431, -6.4615e-05, -1.40374e-09],\n [0.8936, 0.00969686, -6.4636e-05, -8.547e-06],\n [0.9394, 0.00840947, -0.000192841, -4.2106e-06],\n [0.9761, 0.00616527, -0.000256, -4.2106e-06],\n [1.0000, 0.00328947, -0.000319159, -4.2106e-06]\n];\n\nvar FXC = 0.8487;\nvar FYC = 1.3523;\nvar C1 = R2D/5; // rad to 5-degree interval\nvar RC1 = 1/C1;\nvar NODES = 18;\n\nvar poly3_val = function(coefs, x) {\n return coefs[0] + x * (coefs[1] + x * (coefs[2] + x * coefs[3]));\n};\n\nvar poly3_der = function(coefs, x) {\n return coefs[1] + x * (2 * coefs[2] + x * 3 * coefs[3]);\n};\n\nfunction newton_rapshon(f_df, start, max_err, iters) {\n var x = start;\n for (; iters; --iters) {\n var upd = f_df(x);\n x -= upd;\n if (Math.abs(upd) < max_err) {\n break;\n }\n }\n return x;\n}\n\nexport function init() {\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.long0 = this.long0 || 0;\n this.es = 0;\n this.title = this.title || \"Robinson\";\n}\n\nexport function forward(ll) {\n var lon = adjust_lon(ll.x - this.long0);\n\n var dphi = Math.abs(ll.y);\n var i = Math.floor(dphi * C1);\n if (i < 0) {\n i = 0;\n } else if (i >= NODES) {\n i = NODES - 1;\n }\n dphi = R2D * (dphi - RC1 * i);\n var xy = {\n x: poly3_val(COEFS_X[i], dphi) * lon,\n y: poly3_val(COEFS_Y[i], dphi)\n };\n if (ll.y < 0) {\n xy.y = -xy.y;\n }\n\n xy.x = xy.x * this.a * FXC + this.x0;\n xy.y = xy.y * this.a * FYC + this.y0;\n return xy;\n}\n\nexport function inverse(xy) {\n var ll = {\n x: (xy.x - this.x0) / (this.a * FXC),\n y: Math.abs(xy.y - this.y0) / (this.a * FYC)\n };\n\n if (ll.y >= 1) { // pathologic case\n ll.x /= COEFS_X[NODES][0];\n ll.y = xy.y < 0 ? -HALF_PI : HALF_PI;\n } else {\n // find table interval\n var i = Math.floor(ll.y * NODES);\n if (i < 0) {\n i = 0;\n } else if (i >= NODES) {\n i = NODES - 1;\n }\n for (;;) {\n if (COEFS_Y[i][0] > ll.y) {\n --i;\n } else if (COEFS_Y[i+1][0] <= ll.y) {\n ++i;\n } else {\n break;\n }\n }\n // linear interpolation in 5 degree interval\n var coefs = COEFS_Y[i];\n var t = 5 * (ll.y - coefs[0]) / (COEFS_Y[i+1][0] - coefs[0]);\n // find t so that poly3_val(coefs, t) = ll.y\n t = newton_rapshon(function(x) {\n return (poly3_val(coefs, x) - ll.y) / poly3_der(coefs, x);\n }, t, EPSLN, 100);\n\n ll.x /= poly3_val(COEFS_X[i], t);\n ll.y = (5 * i + t) * D2R;\n if (xy.y < 0) {\n ll.y = -ll.y;\n }\n }\n\n ll.x = adjust_lon(ll.x + this.long0);\n return ll;\n}\n\nexport var names = [\"Robinson\", \"robin\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport pj_enfn from '../common/pj_enfn';\nvar MAX_ITER = 20;\nimport pj_mlfn from '../common/pj_mlfn';\nimport pj_inv_mlfn from '../common/pj_inv_mlfn';\nimport {EPSLN, HALF_PI} from '../constants/values';\n\nimport asinz from '../common/asinz';\n\n\nexport function init() {\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n\n\n if (!this.sphere) {\n this.en = pj_enfn(this.es);\n }\n else {\n this.n = 1;\n this.m = 0;\n this.es = 0;\n this.C_y = Math.sqrt((this.m + 1) / this.n);\n this.C_x = this.C_y / (this.m + 1);\n }\n\n}\n\n/* Sinusoidal forward equations--mapping lat,long to x,y\n -----------------------------------------------------*/\nexport function forward(p) {\n var x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n lon = adjust_lon(lon - this.long0);\n\n if (this.sphere) {\n if (!this.m) {\n lat = this.n !== 1 ? Math.asin(this.n * Math.sin(lat)) : lat;\n }\n else {\n var k = this.n * Math.sin(lat);\n for (var i = MAX_ITER; i; --i) {\n var V = (this.m * lat + Math.sin(lat) - k) / (this.m + Math.cos(lat));\n lat -= V;\n if (Math.abs(V) < EPSLN) {\n break;\n }\n }\n }\n x = this.a * this.C_x * lon * (this.m + Math.cos(lat));\n y = this.a * this.C_y * lat;\n\n }\n else {\n\n var s = Math.sin(lat);\n var c = Math.cos(lat);\n y = this.a * pj_mlfn(lat, s, c, this.en);\n x = this.a * lon * c / Math.sqrt(1 - this.es * s * s);\n }\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var lat, temp, lon, s;\n\n p.x -= this.x0;\n lon = p.x / this.a;\n p.y -= this.y0;\n lat = p.y / this.a;\n\n if (this.sphere) {\n lat /= this.C_y;\n lon = lon / (this.C_x * (this.m + Math.cos(lat)));\n if (this.m) {\n lat = asinz((this.m * lat + Math.sin(lat)) / this.n);\n }\n else if (this.n !== 1) {\n lat = asinz(Math.sin(lat) / this.n);\n }\n lon = adjust_lon(lon + this.long0);\n lat = adjust_lat(lat);\n }\n else {\n lat = pj_inv_mlfn(p.y / this.a, this.es, this.en);\n s = Math.abs(lat);\n if (s < HALF_PI) {\n s = Math.sin(lat);\n temp = this.long0 + p.x * Math.sqrt(1 - this.es * s * s) / (this.a * Math.cos(lat));\n //temp = this.long0 + p.x / (this.a * Math.cos(lat));\n lon = adjust_lon(temp);\n }\n else if ((s - EPSLN) < HALF_PI) {\n lon = this.long0;\n }\n }\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Sinusoidal\", \"sinu\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","/*\n references:\n Formules et constantes pour le Calcul pour la\n projection cylindrique conforme à axe oblique et pour la transformation entre\n des systèmes de référence.\n http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf\n */\n\nexport function init() {\n var phy0 = this.lat0;\n this.lambda0 = this.long0;\n var sinPhy0 = Math.sin(phy0);\n var semiMajorAxis = this.a;\n var invF = this.rf;\n var flattening = 1 / invF;\n var e2 = 2 * flattening - Math.pow(flattening, 2);\n var e = this.e = Math.sqrt(e2);\n this.R = this.k0 * semiMajorAxis * Math.sqrt(1 - e2) / (1 - e2 * Math.pow(sinPhy0, 2));\n this.alpha = Math.sqrt(1 + e2 / (1 - e2) * Math.pow(Math.cos(phy0), 4));\n this.b0 = Math.asin(sinPhy0 / this.alpha);\n var k1 = Math.log(Math.tan(Math.PI / 4 + this.b0 / 2));\n var k2 = Math.log(Math.tan(Math.PI / 4 + phy0 / 2));\n var k3 = Math.log((1 + e * sinPhy0) / (1 - e * sinPhy0));\n this.K = k1 - this.alpha * k2 + this.alpha * e / 2 * k3;\n}\n\nexport function forward(p) {\n var Sa1 = Math.log(Math.tan(Math.PI / 4 - p.y / 2));\n var Sa2 = this.e / 2 * Math.log((1 + this.e * Math.sin(p.y)) / (1 - this.e * Math.sin(p.y)));\n var S = -this.alpha * (Sa1 + Sa2) + this.K;\n\n // spheric latitude\n var b = 2 * (Math.atan(Math.exp(S)) - Math.PI / 4);\n\n // spheric longitude\n var I = this.alpha * (p.x - this.lambda0);\n\n // psoeudo equatorial rotation\n var rotI = Math.atan(Math.sin(I) / (Math.sin(this.b0) * Math.tan(b) + Math.cos(this.b0) * Math.cos(I)));\n\n var rotB = Math.asin(Math.cos(this.b0) * Math.sin(b) - Math.sin(this.b0) * Math.cos(b) * Math.cos(I));\n\n p.y = this.R / 2 * Math.log((1 + Math.sin(rotB)) / (1 - Math.sin(rotB))) + this.y0;\n p.x = this.R * rotI + this.x0;\n return p;\n}\n\nexport function inverse(p) {\n var Y = p.x - this.x0;\n var X = p.y - this.y0;\n\n var rotI = Y / this.R;\n var rotB = 2 * (Math.atan(Math.exp(X / this.R)) - Math.PI / 4);\n\n var b = Math.asin(Math.cos(this.b0) * Math.sin(rotB) + Math.sin(this.b0) * Math.cos(rotB) * Math.cos(rotI));\n var I = Math.atan(Math.sin(rotI) / (Math.cos(this.b0) * Math.cos(rotI) - Math.sin(this.b0) * Math.tan(rotB)));\n\n var lambda = this.lambda0 + I / this.alpha;\n\n var S = 0;\n var phy = b;\n var prevPhy = -1000;\n var iteration = 0;\n while (Math.abs(phy - prevPhy) > 0.0000001) {\n if (++iteration > 20) {\n //...reportError(\"omercFwdInfinity\");\n return;\n }\n //S = Math.log(Math.tan(Math.PI / 4 + phy / 2));\n S = 1 / this.alpha * (Math.log(Math.tan(Math.PI / 4 + b / 2)) - this.K) + this.e * Math.log(Math.tan(Math.PI / 4 + Math.asin(this.e * Math.sin(phy)) / 2));\n prevPhy = phy;\n phy = 2 * Math.atan(Math.exp(S)) - Math.PI / 2;\n }\n\n p.x = lambda;\n p.y = phy;\n return p;\n}\n\nexport var names = [\"somerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {EPSLN, HALF_PI} from '../constants/values';\n\nimport sign from '../common/sign';\nimport msfnz from '../common/msfnz';\nimport tsfnz from '../common/tsfnz';\nimport phi2z from '../common/phi2z';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function ssfn_(phit, sinphi, eccen) {\n sinphi *= eccen;\n return (Math.tan(0.5 * (HALF_PI + phit)) * Math.pow((1 - sinphi) / (1 + sinphi), 0.5 * eccen));\n}\n\nexport function init() {\n this.coslat0 = Math.cos(this.lat0);\n this.sinlat0 = Math.sin(this.lat0);\n if (this.sphere) {\n if (this.k0 === 1 && !isNaN(this.lat_ts) && Math.abs(this.coslat0) <= EPSLN) {\n this.k0 = 0.5 * (1 + sign(this.lat0) * Math.sin(this.lat_ts));\n }\n }\n else {\n if (Math.abs(this.coslat0) <= EPSLN) {\n if (this.lat0 > 0) {\n //North pole\n //trace('stere:north pole');\n this.con = 1;\n }\n else {\n //South pole\n //trace('stere:south pole');\n this.con = -1;\n }\n }\n this.cons = Math.sqrt(Math.pow(1 + this.e, 1 + this.e) * Math.pow(1 - this.e, 1 - this.e));\n if (this.k0 === 1 && !isNaN(this.lat_ts) && Math.abs(this.coslat0) <= EPSLN) {\n this.k0 = 0.5 * this.cons * msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts)) / tsfnz(this.e, this.con * this.lat_ts, this.con * Math.sin(this.lat_ts));\n }\n this.ms1 = msfnz(this.e, this.sinlat0, this.coslat0);\n this.X0 = 2 * Math.atan(this.ssfn_(this.lat0, this.sinlat0, this.e)) - HALF_PI;\n this.cosX0 = Math.cos(this.X0);\n this.sinX0 = Math.sin(this.X0);\n }\n}\n\n// Stereographic forward equations--mapping lat,long to x,y\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var sinlat = Math.sin(lat);\n var coslat = Math.cos(lat);\n var A, X, sinX, cosX, ts, rh;\n var dlon = adjust_lon(lon - this.long0);\n\n if (Math.abs(Math.abs(lon - this.long0) - Math.PI) <= EPSLN && Math.abs(lat + this.lat0) <= EPSLN) {\n //case of the origine point\n //trace('stere:this is the origin point');\n p.x = NaN;\n p.y = NaN;\n return p;\n }\n if (this.sphere) {\n //trace('stere:sphere case');\n A = 2 * this.k0 / (1 + this.sinlat0 * sinlat + this.coslat0 * coslat * Math.cos(dlon));\n p.x = this.a * A * coslat * Math.sin(dlon) + this.x0;\n p.y = this.a * A * (this.coslat0 * sinlat - this.sinlat0 * coslat * Math.cos(dlon)) + this.y0;\n return p;\n }\n else {\n X = 2 * Math.atan(this.ssfn_(lat, sinlat, this.e)) - HALF_PI;\n cosX = Math.cos(X);\n sinX = Math.sin(X);\n if (Math.abs(this.coslat0) <= EPSLN) {\n ts = tsfnz(this.e, lat * this.con, this.con * sinlat);\n rh = 2 * this.a * this.k0 * ts / this.cons;\n p.x = this.x0 + rh * Math.sin(lon - this.long0);\n p.y = this.y0 - this.con * rh * Math.cos(lon - this.long0);\n //trace(p.toString());\n return p;\n }\n else if (Math.abs(this.sinlat0) < EPSLN) {\n //Eq\n //trace('stere:equateur');\n A = 2 * this.a * this.k0 / (1 + cosX * Math.cos(dlon));\n p.y = A * sinX;\n }\n else {\n //other case\n //trace('stere:normal case');\n A = 2 * this.a * this.k0 * this.ms1 / (this.cosX0 * (1 + this.sinX0 * sinX + this.cosX0 * cosX * Math.cos(dlon)));\n p.y = A * (this.cosX0 * sinX - this.sinX0 * cosX * Math.cos(dlon)) + this.y0;\n }\n p.x = A * cosX * Math.sin(dlon) + this.x0;\n }\n //trace(p.toString());\n return p;\n}\n\n//* Stereographic inverse equations--mapping x,y to lat/long\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var lon, lat, ts, ce, Chi;\n var rh = Math.sqrt(p.x * p.x + p.y * p.y);\n if (this.sphere) {\n var c = 2 * Math.atan(rh / (2 * this.a * this.k0));\n lon = this.long0;\n lat = this.lat0;\n if (rh <= EPSLN) {\n p.x = lon;\n p.y = lat;\n return p;\n }\n lat = Math.asin(Math.cos(c) * this.sinlat0 + p.y * Math.sin(c) * this.coslat0 / rh);\n if (Math.abs(this.coslat0) < EPSLN) {\n if (this.lat0 > 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - 1 * p.y));\n }\n else {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, p.y));\n }\n }\n else {\n lon = adjust_lon(this.long0 + Math.atan2(p.x * Math.sin(c), rh * this.coslat0 * Math.cos(c) - p.y * this.sinlat0 * Math.sin(c)));\n }\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n if (Math.abs(this.coslat0) <= EPSLN) {\n if (rh <= EPSLN) {\n lat = this.lat0;\n lon = this.long0;\n p.x = lon;\n p.y = lat;\n //trace(p.toString());\n return p;\n }\n p.x *= this.con;\n p.y *= this.con;\n ts = rh * this.cons / (2 * this.a * this.k0);\n lat = this.con * phi2z(this.e, ts);\n lon = this.con * adjust_lon(this.con * this.long0 + Math.atan2(p.x, - 1 * p.y));\n }\n else {\n ce = 2 * Math.atan(rh * this.cosX0 / (2 * this.a * this.k0 * this.ms1));\n lon = this.long0;\n if (rh <= EPSLN) {\n Chi = this.X0;\n }\n else {\n Chi = Math.asin(Math.cos(ce) * this.sinX0 + p.y * Math.sin(ce) * this.cosX0 / rh);\n lon = adjust_lon(this.long0 + Math.atan2(p.x * Math.sin(ce), rh * this.cosX0 * Math.cos(ce) - p.y * this.sinX0 * Math.sin(ce)));\n }\n lat = -1 * phi2z(this.e, Math.tan(0.5 * (HALF_PI + Chi)));\n }\n }\n p.x = lon;\n p.y = lat;\n\n //trace(p.toString());\n return p;\n\n}\n\nexport var names = [\"stere\", \"Stereographic_South_Pole\", \"Polar Stereographic (variant B)\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n ssfn_: ssfn_\n};\n","import gauss from './gauss';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n gauss.init.apply(this);\n if (!this.rc) {\n return;\n }\n this.sinc0 = Math.sin(this.phic0);\n this.cosc0 = Math.cos(this.phic0);\n this.R2 = 2 * this.rc;\n if (!this.title) {\n this.title = \"Oblique Stereographic Alternative\";\n }\n}\n\nexport function forward(p) {\n var sinc, cosc, cosl, k;\n p.x = adjust_lon(p.x - this.long0);\n gauss.forward.apply(this, [p]);\n sinc = Math.sin(p.y);\n cosc = Math.cos(p.y);\n cosl = Math.cos(p.x);\n k = this.k0 * this.R2 / (1 + this.sinc0 * sinc + this.cosc0 * cosc * cosl);\n p.x = k * cosc * Math.sin(p.x);\n p.y = k * (this.cosc0 * sinc - this.sinc0 * cosc * cosl);\n p.x = this.a * p.x + this.x0;\n p.y = this.a * p.y + this.y0;\n return p;\n}\n\nexport function inverse(p) {\n var sinc, cosc, lon, lat, rho;\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n p.x /= this.k0;\n p.y /= this.k0;\n if ((rho = Math.sqrt(p.x * p.x + p.y * p.y))) {\n var c = 2 * Math.atan2(rho, this.R2);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n lat = Math.asin(cosc * this.sinc0 + p.y * sinc * this.cosc0 / rho);\n lon = Math.atan2(p.x * sinc, rho * this.cosc0 * cosc - p.y * this.sinc0 * sinc);\n }\n else {\n lat = this.phic0;\n lon = 0;\n }\n\n p.x = lon;\n p.y = lat;\n gauss.inverse.apply(this, [p]);\n p.x = adjust_lon(p.x + this.long0);\n return p;\n}\n\nexport var names = [\"Stereographic_North_Pole\", \"Oblique_Stereographic\", \"Polar_Stereographic\", \"sterea\",\"Oblique Stereographic Alternative\",\"Double_Stereographic\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","// Heavily based on this tmerc projection implementation\n// https://github.com/mbloch/mapshaper-proj/blob/master/src/projections/tmerc.js\n\nimport pj_enfn from '../common/pj_enfn';\nimport pj_mlfn from '../common/pj_mlfn';\nimport pj_inv_mlfn from '../common/pj_inv_mlfn';\nimport adjust_lon from '../common/adjust_lon';\n\nimport {EPSLN, HALF_PI} from '../constants/values';\nimport sign from '../common/sign';\n\nexport function init() {\n this.x0 = this.x0 !== undefined ? this.x0 : 0;\n this.y0 = this.y0 !== undefined ? this.y0 : 0;\n this.long0 = this.long0 !== undefined ? this.long0 : 0;\n this.lat0 = this.lat0 !== undefined ? this.lat0 : 0;\n\n if (this.es) {\n this.en = pj_enfn(this.es);\n this.ml0 = pj_mlfn(this.lat0, Math.sin(this.lat0), Math.cos(this.lat0), this.en);\n }\n}\n\n/**\n Transverse Mercator Forward - long/lat to x/y\n long/lat in radians\n */\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n var delta_lon = adjust_lon(lon - this.long0);\n var con;\n var x, y;\n var sin_phi = Math.sin(lat);\n var cos_phi = Math.cos(lat);\n\n if (!this.es) {\n var b = cos_phi * Math.sin(delta_lon);\n\n if ((Math.abs(Math.abs(b) - 1)) < EPSLN) {\n return (93);\n }\n else {\n x = 0.5 * this.a * this.k0 * Math.log((1 + b) / (1 - b)) + this.x0;\n y = cos_phi * Math.cos(delta_lon) / Math.sqrt(1 - Math.pow(b, 2));\n b = Math.abs(y);\n\n if (b >= 1) {\n if ((b - 1) > EPSLN) {\n return (93);\n }\n else {\n y = 0;\n }\n }\n else {\n y = Math.acos(y);\n }\n\n if (lat < 0) {\n y = -y;\n }\n\n y = this.a * this.k0 * (y - this.lat0) + this.y0;\n }\n }\n else {\n var al = cos_phi * delta_lon;\n var als = Math.pow(al, 2);\n var c = this.ep2 * Math.pow(cos_phi, 2);\n var cs = Math.pow(c, 2);\n var tq = Math.abs(cos_phi) > EPSLN ? Math.tan(lat) : 0;\n var t = Math.pow(tq, 2);\n var ts = Math.pow(t, 2);\n con = 1 - this.es * Math.pow(sin_phi, 2);\n al = al / Math.sqrt(con);\n var ml = pj_mlfn(lat, sin_phi, cos_phi, this.en);\n\n x = this.a * (this.k0 * al * (1 +\n als / 6 * (1 - t + c +\n als / 20 * (5 - 18 * t + ts + 14 * c - 58 * t * c +\n als / 42 * (61 + 179 * ts - ts * t - 479 * t))))) +\n this.x0;\n\n y = this.a * (this.k0 * (ml - this.ml0 +\n sin_phi * delta_lon * al / 2 * (1 +\n als / 12 * (5 - t + 9 * c + 4 * cs +\n als / 30 * (61 + ts - 58 * t + 270 * c - 330 * t * c +\n als / 56 * (1385 + 543 * ts - ts * t - 3111 * t)))))) +\n this.y0;\n }\n\n p.x = x;\n p.y = y;\n\n return p;\n}\n\n/**\n Transverse Mercator Inverse - x/y to long/lat\n */\nexport function inverse(p) {\n var con, phi;\n var lat, lon;\n var x = (p.x - this.x0) * (1 / this.a);\n var y = (p.y - this.y0) * (1 / this.a);\n\n if (!this.es) {\n var f = Math.exp(x / this.k0);\n var g = 0.5 * (f - 1 / f);\n var temp = this.lat0 + y / this.k0;\n var h = Math.cos(temp);\n con = Math.sqrt((1 - Math.pow(h, 2)) / (1 + Math.pow(g, 2)));\n lat = Math.asin(con);\n\n if (y < 0) {\n lat = -lat;\n }\n\n if ((g === 0) && (h === 0)) {\n lon = 0;\n }\n else {\n lon = adjust_lon(Math.atan2(g, h) + this.long0);\n }\n }\n else { // ellipsoidal form\n con = this.ml0 + y / this.k0;\n phi = pj_inv_mlfn(con, this.es, this.en);\n\n if (Math.abs(phi) < HALF_PI) {\n var sin_phi = Math.sin(phi);\n var cos_phi = Math.cos(phi);\n var tan_phi = Math.abs(cos_phi) > EPSLN ? Math.tan(phi) : 0;\n var c = this.ep2 * Math.pow(cos_phi, 2);\n var cs = Math.pow(c, 2);\n var t = Math.pow(tan_phi, 2);\n var ts = Math.pow(t, 2);\n con = 1 - this.es * Math.pow(sin_phi, 2);\n var d = x * Math.sqrt(con) / this.k0;\n var ds = Math.pow(d, 2);\n con = con * tan_phi;\n\n lat = phi - (con * ds / (1 - this.es)) * 0.5 * (1 -\n ds / 12 * (5 + 3 * t - 9 * c * t + c - 4 * cs -\n ds / 30 * (61 + 90 * t - 252 * c * t + 45 * ts + 46 * c -\n ds / 56 * (1385 + 3633 * t + 4095 * ts + 1574 * ts * t))));\n\n lon = adjust_lon(this.long0 + (d * (1 -\n ds / 6 * (1 + 2 * t + c -\n ds / 20 * (5 + 28 * t + 24 * ts + 8 * c * t + 6 * c -\n ds / 42 * (61 + 662 * t + 1320 * ts + 720 * ts * t)))) / cos_phi));\n }\n else {\n lat = HALF_PI * sign(y);\n lon = 0;\n }\n }\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"Fast_Transverse_Mercator\", \"Fast Transverse Mercator\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","\nvar mode = {\n N_POLE: 0,\n S_POLE: 1,\n EQUIT: 2,\n OBLIQ: 3\n};\n\nimport { D2R, HALF_PI, EPSLN } from \"../constants/values\";\nimport hypot from \"../common/hypot\";\n\nvar params = {\n h: { def: 100000, num: true }, // default is Karman line, no default in PROJ.7\n azi: { def: 0, num: true, degrees: true }, // default is North\n tilt: { def: 0, num: true, degrees: true }, // default is Nadir\n long0: { def: 0, num: true }, // default is Greenwich, conversion to rad is automatic\n lat0: { def: 0, num: true } // default is Equator, conversion to rad is automatic\n};\n\nexport function init() {\n Object.keys(params).forEach(function (p) {\n if (typeof this[p] === \"undefined\") {\n this[p] = params[p].def;\n } else if (params[p].num && isNaN(this[p])) {\n throw new Error(\"Invalid parameter value, must be numeric \" + p + \" = \" + this[p]);\n } else if (params[p].num) {\n this[p] = parseFloat(this[p]);\n }\n if (params[p].degrees) {\n this[p] = this[p] * D2R;\n }\n }.bind(this));\n\n if (Math.abs((Math.abs(this.lat0) - HALF_PI)) < EPSLN) {\n this.mode = this.lat0 < 0 ? mode.S_POLE : mode.N_POLE;\n } else if (Math.abs(this.lat0) < EPSLN) {\n this.mode = mode.EQUIT;\n } else {\n this.mode = mode.OBLIQ;\n this.sinph0 = Math.sin(this.lat0);\n this.cosph0 = Math.cos(this.lat0);\n }\n\n this.pn1 = this.h / this.a; // Normalize relative to the Earth's radius\n\n if (this.pn1 <= 0 || this.pn1 > 1e10) {\n throw new Error(\"Invalid height\");\n }\n \n this.p = 1 + this.pn1;\n this.rp = 1 / this.p;\n this.h1 = 1 / this.pn1;\n this.pfact = (this.p + 1) * this.h1;\n this.es = 0;\n\n var omega = this.tilt;\n var gamma = this.azi;\n this.cg = Math.cos(gamma);\n this.sg = Math.sin(gamma);\n this.cw = Math.cos(omega);\n this.sw = Math.sin(omega);\n}\n\nexport function forward(p) {\n p.x -= this.long0;\n var sinphi = Math.sin(p.y);\n var cosphi = Math.cos(p.y);\n var coslam = Math.cos(p.x);\n var x, y;\n switch (this.mode) {\n case mode.OBLIQ:\n y = this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\n break;\n case mode.EQUIT:\n y = cosphi * coslam;\n break;\n case mode.S_POLE:\n y = -sinphi;\n break;\n case mode.N_POLE:\n y = sinphi;\n break;\n }\n y = this.pn1 / (this.p - y);\n x = y * cosphi * Math.sin(p.x);\n\n switch (this.mode) {\n case mode.OBLIQ:\n y *= this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\n break;\n case mode.EQUIT:\n y *= sinphi;\n break;\n case mode.N_POLE:\n y *= -(cosphi * coslam);\n break;\n case mode.S_POLE:\n y *= cosphi * coslam;\n break;\n }\n\n // Tilt \n var yt, ba;\n yt = y * this.cg + x * this.sg;\n ba = 1 / (yt * this.sw * this.h1 + this.cw);\n x = (x * this.cg - y * this.sg) * this.cw * ba;\n y = yt * ba;\n\n p.x = x * this.a;\n p.y = y * this.a;\n return p;\n}\n\nexport function inverse(p) {\n p.x /= this.a;\n p.y /= this.a;\n var r = { x: p.x, y: p.y };\n\n // Un-Tilt\n var bm, bq, yt;\n yt = 1 / (this.pn1 - p.y * this.sw);\n bm = this.pn1 * p.x * yt;\n bq = this.pn1 * p.y * this.cw * yt;\n p.x = bm * this.cg + bq * this.sg;\n p.y = bq * this.cg - bm * this.sg;\n\n var rh = hypot(p.x, p.y);\n if (Math.abs(rh) < EPSLN) {\n r.x = 0;\n r.y = p.y;\n } else {\n var cosz, sinz;\n sinz = 1 - rh * rh * this.pfact;\n sinz = (this.p - Math.sqrt(sinz)) / (this.pn1 / rh + rh / this.pn1);\n cosz = Math.sqrt(1 - sinz * sinz);\n switch (this.mode) {\n case mode.OBLIQ:\n r.y = Math.asin(cosz * this.sinph0 + p.y * sinz * this.cosph0 / rh);\n p.y = (cosz - this.sinph0 * Math.sin(r.y)) * rh;\n p.x *= sinz * this.cosph0;\n break;\n case mode.EQUIT:\n r.y = Math.asin(p.y * sinz / rh);\n p.y = cosz * rh;\n p.x *= sinz;\n break;\n case mode.N_POLE:\n r.y = Math.asin(cosz);\n p.y = -p.y;\n break;\n case mode.S_POLE:\n r.y = -Math.asin(cosz);\n break;\n }\n r.x = Math.atan2(p.x, p.y);\n }\n\n p.x = r.x + this.long0;\n p.y = r.y;\n return p;\n}\n\nexport var names = [\"Tilted_Perspective\", \"tpers\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_zone from '../common/adjust_zone';\nimport etmerc from './etmerc';\nexport var dependsOn = 'etmerc';\nimport {D2R} from '../constants/values';\n\n\nexport function init() {\n var zone = adjust_zone(this.zone, this.long0);\n if (zone === undefined) {\n throw new Error('unknown utm zone');\n }\n this.lat0 = 0;\n this.long0 = ((6 * Math.abs(zone)) - 183) * D2R;\n this.x0 = 500000;\n this.y0 = this.utmSouth ? 10000000 : 0;\n this.k0 = 0.9996;\n\n etmerc.init.apply(this);\n this.forward = etmerc.forward;\n this.inverse = etmerc.inverse;\n}\n\nexport var names = [\"Universal Transverse Mercator System\", \"utm\"];\nexport default {\n init: init,\n names: names,\n dependsOn: dependsOn\n};\n","import adjust_lon from '../common/adjust_lon';\n\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nimport asinz from '../common/asinz';\n\n/* Initialize the Van Der Grinten projection\n ----------------------------------------*/\nexport function init() {\n //this.R = 6370997; //Radius of earth\n this.R = this.a;\n}\n\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n var x, y;\n\n if (Math.abs(lat) <= EPSLN) {\n x = this.x0 + this.R * dlon;\n y = this.y0;\n }\n var theta = asinz(2 * Math.abs(lat / Math.PI));\n if ((Math.abs(dlon) <= EPSLN) || (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN)) {\n x = this.x0;\n if (lat >= 0) {\n y = this.y0 + Math.PI * this.R * Math.tan(0.5 * theta);\n }\n else {\n y = this.y0 + Math.PI * this.R * -Math.tan(0.5 * theta);\n }\n // return(OK);\n }\n var al = 0.5 * Math.abs((Math.PI / dlon) - (dlon / Math.PI));\n var asq = al * al;\n var sinth = Math.sin(theta);\n var costh = Math.cos(theta);\n\n var g = costh / (sinth + costh - 1);\n var gsq = g * g;\n var m = g * (2 / sinth - 1);\n var msq = m * m;\n var con = Math.PI * this.R * (al * (g - msq) + Math.sqrt(asq * (g - msq) * (g - msq) - (msq + asq) * (gsq - msq))) / (msq + asq);\n if (dlon < 0) {\n con = -con;\n }\n x = this.x0 + con;\n //con = Math.abs(con / (Math.PI * this.R));\n var q = asq + g;\n con = Math.PI * this.R * (m * q - al * Math.sqrt((msq + asq) * (asq + 1) - q * q)) / (msq + asq);\n if (lat >= 0) {\n //y = this.y0 + Math.PI * this.R * Math.sqrt(1 - con * con - 2 * al * con);\n y = this.y0 + con;\n }\n else {\n //y = this.y0 - Math.PI * this.R * Math.sqrt(1 - con * con - 2 * al * con);\n y = this.y0 - con;\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Van Der Grinten inverse equations--mapping x,y to lat/long\n ---------------------------------------------------------*/\nexport function inverse(p) {\n var lon, lat;\n var xx, yy, xys, c1, c2, c3;\n var a1;\n var m1;\n var con;\n var th1;\n var d;\n\n /* inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n con = Math.PI * this.R;\n xx = p.x / con;\n yy = p.y / con;\n xys = xx * xx + yy * yy;\n c1 = -Math.abs(yy) * (1 + xys);\n c2 = c1 - 2 * yy * yy + xx * xx;\n c3 = -2 * c1 + 1 + 2 * yy * yy + xys * xys;\n d = yy * yy / c3 + (2 * c2 * c2 * c2 / c3 / c3 / c3 - 9 * c1 * c2 / c3 / c3) / 27;\n a1 = (c1 - c2 * c2 / 3 / c3) / c3;\n m1 = 2 * Math.sqrt(-a1 / 3);\n con = ((3 * d) / a1) / m1;\n if (Math.abs(con) > 1) {\n if (con >= 0) {\n con = 1;\n }\n else {\n con = -1;\n }\n }\n th1 = Math.acos(con) / 3;\n if (p.y >= 0) {\n lat = (-m1 * Math.cos(th1 + Math.PI / 3) - c2 / 3 / c3) * Math.PI;\n }\n else {\n lat = -(-m1 * Math.cos(th1 + Math.PI / 3) - c2 / 3 / c3) * Math.PI;\n }\n\n if (Math.abs(xx) < EPSLN) {\n lon = this.long0;\n }\n else {\n lon = adjust_lon(this.long0 + Math.PI * (xys - 1 + Math.sqrt(1 + 2 * (xx * xx - yy * yy) + xys * xys)) / 2 / xx);\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Van_der_Grinten_I\", \"VanDerGrinten\", \"vandg\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {D2R, R2D, PJD_3PARAM, PJD_7PARAM, PJD_GRIDSHIFT} from './constants/values';\nimport datum_transform from './datum_transform';\nimport adjust_axis from './adjust_axis';\nimport proj from './Proj';\nimport toPoint from './common/toPoint';\nimport checkSanity from './checkSanity';\n\nfunction checkNotWGS(source, dest) {\n return (\n (source.datum.datum_type === PJD_3PARAM || source.datum.datum_type === PJD_7PARAM || source.datum.datum_type === PJD_GRIDSHIFT) && dest.datumCode !== 'WGS84') ||\n ((dest.datum.datum_type === PJD_3PARAM || dest.datum.datum_type === PJD_7PARAM || dest.datum.datum_type === PJD_GRIDSHIFT) && source.datumCode !== 'WGS84');\n}\n\nexport default function transform(source, dest, point, enforceAxis) {\n var wgs84;\n if (Array.isArray(point)) {\n point = toPoint(point);\n } else {\n // Clone the point object so inputs don't get modified\n point = {\n x: point.x,\n y: point.y,\n z: point.z,\n m: point.m\n };\n }\n var hasZ = point.z !== undefined;\n checkSanity(point);\n // Workaround for datum shifts towgs84, if either source or destination projection is not wgs84\n if (source.datum && dest.datum && checkNotWGS(source, dest)) {\n wgs84 = new proj('WGS84');\n point = transform(source, wgs84, point, enforceAxis);\n source = wgs84;\n }\n // DGR, 2010/11/12\n if (enforceAxis && source.axis !== 'enu') {\n point = adjust_axis(source, false, point);\n }\n // Transform source points to long/lat, if they aren't already.\n if (source.projName === 'longlat') {\n point = {\n x: point.x * D2R,\n y: point.y * D2R,\n z: point.z || 0\n };\n } else {\n if (source.to_meter) {\n point = {\n x: point.x * source.to_meter,\n y: point.y * source.to_meter,\n z: point.z || 0\n };\n }\n point = source.inverse(point); // Convert Cartesian to longlat\n if (!point) {\n return;\n }\n }\n // Adjust for the prime meridian if necessary\n if (source.from_greenwich) {\n point.x += source.from_greenwich;\n }\n\n // Convert datums if needed, and if possible.\n point = datum_transform(source.datum, dest.datum, point);\n if (!point) {\n return;\n }\n\n // Adjust for the prime meridian if necessary\n if (dest.from_greenwich) {\n point = {\n x: point.x - dest.from_greenwich,\n y: point.y,\n z: point.z || 0\n };\n }\n\n if (dest.projName === 'longlat') {\n // convert radians to decimal degrees\n point = {\n x: point.x * R2D,\n y: point.y * R2D,\n z: point.z || 0\n };\n } else { // else project\n point = dest.forward(point);\n if (dest.to_meter) {\n point = {\n x: point.x / dest.to_meter,\n y: point.y / dest.to_meter,\n z: point.z || 0\n };\n }\n }\n\n // DGR, 2010/11/12\n if (enforceAxis && dest.axis !== 'enu') {\n return adjust_axis(dest, true, point);\n }\n\n if (!hasZ) {\n delete point.z;\n }\n return point;\n}\n","import tmerc from './lib/projections/tmerc';\nimport etmerc from './lib/projections/etmerc';\nimport utm from './lib/projections/utm';\nimport sterea from './lib/projections/sterea';\nimport stere from './lib/projections/stere';\nimport somerc from './lib/projections/somerc';\nimport omerc from './lib/projections/omerc';\nimport lcc from './lib/projections/lcc';\nimport krovak from './lib/projections/krovak';\nimport cass from './lib/projections/cass';\nimport laea from './lib/projections/laea';\nimport aea from './lib/projections/aea';\nimport gnom from './lib/projections/gnom';\nimport cea from './lib/projections/cea';\nimport eqc from './lib/projections/eqc';\nimport poly from './lib/projections/poly';\nimport nzmg from './lib/projections/nzmg';\nimport mill from './lib/projections/mill';\nimport sinu from './lib/projections/sinu';\nimport moll from './lib/projections/moll';\nimport eqdc from './lib/projections/eqdc';\nimport vandg from './lib/projections/vandg';\nimport aeqd from './lib/projections/aeqd';\nimport ortho from './lib/projections/ortho';\nimport qsc from './lib/projections/qsc';\nimport robin from './lib/projections/robin';\nimport geocent from './lib/projections/geocent';\nimport tpers from './lib/projections/tpers';\nimport geos from './lib/projections/geos';\nexport default function(proj4){\n proj4.Proj.projections.add(tmerc);\n proj4.Proj.projections.add(etmerc);\n proj4.Proj.projections.add(utm);\n proj4.Proj.projections.add(sterea);\n proj4.Proj.projections.add(stere);\n proj4.Proj.projections.add(somerc);\n proj4.Proj.projections.add(omerc);\n proj4.Proj.projections.add(lcc);\n proj4.Proj.projections.add(krovak);\n proj4.Proj.projections.add(cass);\n proj4.Proj.projections.add(laea);\n proj4.Proj.projections.add(aea);\n proj4.Proj.projections.add(gnom);\n proj4.Proj.projections.add(cea);\n proj4.Proj.projections.add(eqc);\n proj4.Proj.projections.add(poly);\n proj4.Proj.projections.add(nzmg);\n proj4.Proj.projections.add(mill);\n proj4.Proj.projections.add(sinu);\n proj4.Proj.projections.add(moll);\n proj4.Proj.projections.add(eqdc);\n proj4.Proj.projections.add(vandg);\n proj4.Proj.projections.add(aeqd);\n proj4.Proj.projections.add(ortho);\n proj4.Proj.projections.add(qsc);\n proj4.Proj.projections.add(robin);\n proj4.Proj.projections.add(geocent);\n proj4.Proj.projections.add(tpers);\n proj4.Proj.projections.add(geos);\n}","/* vim:ts=4:sts=4:sw=4: */\n/*!\n *\n * Copyright 2009-2013 Kris Kowal under the terms of the MIT\n * license found at http://github.com/kriskowal/q/raw/master/LICENSE\n *\n * With parts by Tyler Close\n * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found\n * at http://www.opensource.org/licenses/mit-license.html\n * Forked at ref_send.js version: 2009-05-11\n *\n * With parts by Mark Miller\n * Copyright (C) 2011 Google Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n/*global -WeakMap */\n\"use strict\";\n\nvar hasStacks = false;\ntry {\n throw new Error();\n} catch (e) {\n hasStacks = !!e.stack;\n}\n\n// All code after this point will be filtered from stack traces reported\n// by Q.\nvar qStartingLine = captureLine();\nvar qFileName;\n\nvar WeakMap = require(\"weak-map\");\nvar iterate = require(\"pop-iterate\");\nvar asap = require(\"asap\");\n\nfunction isObject(value) {\n return value === Object(value);\n}\n\n// long stack traces\n\nvar STACK_JUMP_SEPARATOR = \"From previous event:\";\n\nfunction makeStackTraceLong(error, promise) {\n // If possible, transform the error stack trace by removing Node and Q\n // cruft, then concatenating with the stack trace of `promise`. See #57.\n if (hasStacks &&\n promise.stack &&\n typeof error === \"object\" &&\n error !== null &&\n error.stack &&\n error.stack.indexOf(STACK_JUMP_SEPARATOR) === -1\n ) {\n var stacks = [];\n for (var p = promise; !!p && handlers.get(p); p = handlers.get(p).became) {\n if (p.stack) {\n stacks.unshift(p.stack);\n }\n }\n stacks.unshift(error.stack);\n\n var concatedStacks = stacks.join(\"\\n\" + STACK_JUMP_SEPARATOR + \"\\n\");\n error.stack = filterStackString(concatedStacks);\n }\n}\n\nfunction filterStackString(stackString) {\n if (Q.isIntrospective) {\n return stackString;\n }\n var lines = stackString.split(\"\\n\");\n var desiredLines = [];\n for (var i = 0; i < lines.length; ++i) {\n var line = lines[i];\n\n if (!isInternalFrame(line) && !isNodeFrame(line) && line) {\n desiredLines.push(line);\n }\n }\n return desiredLines.join(\"\\n\");\n}\n\nfunction isNodeFrame(stackLine) {\n return stackLine.indexOf(\"(module.js:\") !== -1 ||\n stackLine.indexOf(\"(node.js:\") !== -1;\n}\n\nfunction getFileNameAndLineNumber(stackLine) {\n // Named functions: \"at functionName (filename:lineNumber:columnNumber)\"\n // In IE10 function name can have spaces (\"Anonymous function\") O_o\n var attempt1 = /at .+ \\((.+):(\\d+):(?:\\d+)\\)$/.exec(stackLine);\n if (attempt1) {\n return [attempt1[1], Number(attempt1[2])];\n }\n\n // Anonymous functions: \"at filename:lineNumber:columnNumber\"\n var attempt2 = /at ([^ ]+):(\\d+):(?:\\d+)$/.exec(stackLine);\n if (attempt2) {\n return [attempt2[1], Number(attempt2[2])];\n }\n\n // Firefox style: \"function@filename:lineNumber or @filename:lineNumber\"\n var attempt3 = /.*@(.+):(\\d+)$/.exec(stackLine);\n if (attempt3) {\n return [attempt3[1], Number(attempt3[2])];\n }\n}\n\nfunction isInternalFrame(stackLine) {\n var fileNameAndLineNumber = getFileNameAndLineNumber(stackLine);\n\n if (!fileNameAndLineNumber) {\n return false;\n }\n\n var fileName = fileNameAndLineNumber[0];\n var lineNumber = fileNameAndLineNumber[1];\n\n return fileName === qFileName &&\n lineNumber >= qStartingLine &&\n lineNumber <= qEndingLine;\n}\n\n// discover own file name and line number range for filtering stack\n// traces\nfunction captureLine() {\n if (!hasStacks) {\n return;\n }\n\n try {\n throw new Error();\n } catch (e) {\n var lines = e.stack.split(\"\\n\");\n var firstLine = lines[0].indexOf(\"@\") > 0 ? lines[1] : lines[2];\n var fileNameAndLineNumber = getFileNameAndLineNumber(firstLine);\n if (!fileNameAndLineNumber) {\n return;\n }\n\n qFileName = fileNameAndLineNumber[0];\n return fileNameAndLineNumber[1];\n }\n}\n\nfunction deprecate(callback, name, alternative) {\n return function Q_deprecate() {\n if (\n typeof console !== \"undefined\" &&\n typeof console.warn === \"function\"\n ) {\n if (alternative) {\n console.warn(\n name + \" is deprecated, use \" + alternative + \" instead.\",\n new Error(\"\").stack\n );\n } else {\n console.warn(\n name + \" is deprecated.\",\n new Error(\"\").stack\n );\n }\n }\n return callback.apply(this, arguments);\n };\n}\n\n// end of long stack traces\n\nvar handlers = new WeakMap();\n\nfunction Q_getHandler(promise) {\n var handler = handlers.get(promise);\n if (!handler || !handler.became) {\n return handler;\n }\n handler = follow(handler);\n handlers.set(promise, handler);\n return handler;\n}\n\nfunction follow(handler) {\n if (!handler.became) {\n return handler;\n } else {\n handler.became = follow(handler.became);\n return handler.became;\n }\n}\n\nvar theViciousCycleError = new Error(\"Can't resolve a promise with itself\");\nvar theViciousCycleRejection = Q_reject(theViciousCycleError);\nvar theViciousCycle = Q_getHandler(theViciousCycleRejection);\n\nvar thenables = new WeakMap();\n\n/**\n * Coerces a value to a promise. If the value is a promise, pass it through\n * unaltered. If the value has a `then` method, it is presumed to be a promise\n * but not one of our own, so it is treated as a “thenable” promise and this\n * returns a promise that stands for it. Otherwise, this returns a promise that\n * has already been fulfilled with the value.\n * @param value promise, object with a then method, or a fulfillment value\n * @returns {Promise} the same promise as given, or a promise for the given\n * value\n */\nmodule.exports = Q;\nfunction Q(value) {\n // If the object is already a Promise, return it directly. This enables\n // the resolve function to both be used to created references from objects,\n // but to tolerably coerce non-promises to promises.\n if (Q_isPromise(value)) {\n return value;\n } else if (isThenable(value)) {\n if (!thenables.has(value)) {\n thenables.set(value, new Promise(new Thenable(value)));\n }\n return thenables.get(value);\n } else {\n return new Promise(new Fulfilled(value));\n }\n}\n\n/**\n * Controls whether or not long stack traces will be on\n * @type {boolean}\n */\nQ.longStackSupport = false;\n\n/**\n * Returns a promise that has been rejected with a reason, which should be an\n * instance of `Error`.\n * @param {Error} error reason for the failure.\n * @returns {Promise} rejection\n */\nQ.reject = Q_reject;\nfunction Q_reject(error) {\n return new Promise(new Rejected(error));\n}\n\n/**\n * Constructs a {promise, resolve, reject} object.\n *\n * `resolve` is a callback to invoke with a more resolved value for the\n * promise. To fulfill the promise, invoke `resolve` with any value that is\n * not a thenable. To reject the promise, invoke `resolve` with a rejected\n * thenable, or invoke `reject` with the reason directly. To resolve the\n * promise to another thenable, thus putting it in the same state, invoke\n * `resolve` with that other thenable.\n *\n * @returns {{promise, resolve, reject}} a deferred\n */\nQ.defer = defer;\nfunction defer() {\n\n var handler = new Pending();\n var promise = new Promise(handler);\n var deferred = new Deferred(promise);\n\n if (Q.longStackSupport && hasStacks) {\n try {\n throw new Error();\n } catch (e) {\n // NOTE: don't try to use `Error.captureStackTrace` or transfer the\n // accessor around; that causes memory leaks as per GH-111. Just\n // reify the stack trace as a string ASAP.\n //\n // At the same time, cut off the first line; it's always just\n // \"[object Promise]\\n\", as per the `toString`.\n promise.stack = e.stack.substring(e.stack.indexOf(\"\\n\") + 1);\n }\n }\n\n return deferred;\n}\n\n// TODO\n/**\n */\nQ.when = function Q_when(value, fulfilled, rejected, ms) {\n return Q(value).then(fulfilled, rejected, ms);\n};\n\n/**\n * Turns an array of promises into a promise for an array. If any of the\n * promises gets rejected, the whole array is rejected immediately.\n * @param {Array.} an array (or promise for an array) of values (or\n * promises for values)\n * @returns {Promise.} a promise for an array of the corresponding values\n */\n// By Mark Miller\n// http://wiki.ecmascript.org/doku.php?id=strawman:concurrency&rev=1308776521#allfulfilled\nQ.all = Q_all;\nfunction Q_all(questions) {\n // XXX deprecated behavior\n if (Q_isPromise(questions)) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.warn === \"function\"\n ) {\n console.warn(\"Q.all no longer directly unwraps a promise. Use Q(array).all()\");\n }\n return Q(questions).all();\n }\n var countDown = 0;\n var deferred = defer();\n var answers = Array(questions.length);\n var estimates = [];\n var estimate = -Infinity;\n var setEstimate;\n Array.prototype.forEach.call(questions, function Q_all_each(promise, index) {\n var handler;\n if (\n Q_isPromise(promise) &&\n (handler = Q_getHandler(promise)).state === \"fulfilled\"\n ) {\n answers[index] = handler.value;\n } else {\n ++countDown;\n promise = Q(promise);\n promise.then(\n function Q_all_eachFulfilled(value) {\n answers[index] = value;\n if (--countDown === 0) {\n deferred.resolve(answers);\n }\n },\n deferred.reject\n );\n\n promise.observeEstimate(function Q_all_eachEstimate(newEstimate) {\n var oldEstimate = estimates[index];\n estimates[index] = newEstimate;\n if (newEstimate > estimate) {\n estimate = newEstimate;\n } else if (oldEstimate === estimate && newEstimate <= estimate) {\n // There is a 1/length chance that we will need to perform\n // this O(length) walk, so amortized O(1)\n computeEstimate();\n }\n if (estimates.length === questions.length && estimate !== setEstimate) {\n deferred.setEstimate(estimate);\n setEstimate = estimate;\n }\n });\n\n }\n });\n\n function computeEstimate() {\n estimate = -Infinity;\n for (var index = 0; index < estimates.length; index++) {\n if (estimates[index] > estimate) {\n estimate = estimates[index];\n }\n }\n }\n\n if (countDown === 0) {\n deferred.resolve(answers);\n }\n\n return deferred.promise;\n}\n\n/**\n * @see Promise#allSettled\n */\nQ.allSettled = Q_allSettled;\nfunction Q_allSettled(questions) {\n // XXX deprecated behavior\n if (Q_isPromise(questions)) {\n if (\n typeof console !== \"undefined\" &&\n typeof console.warn === \"function\"\n ) {\n console.warn(\"Q.allSettled no longer directly unwraps a promise. Use Q(array).allSettled()\");\n }\n return Q(questions).allSettled();\n }\n return Q_all(questions.map(function Q_allSettled_each(promise) {\n promise = Q(promise);\n function regardless() {\n return promise.inspect();\n }\n return promise.then(regardless, regardless);\n }));\n}\n\n/**\n * Returns a promise for the given value (or promised value), some\n * milliseconds after it resolved. Passes rejections immediately.\n * @param {Any*} promise\n * @param {Number} milliseconds\n * @returns a promise for the resolution of the given promise after milliseconds\n * time has elapsed since the resolution of the given promise.\n * If the given promise rejects, that is passed immediately.\n */\nQ.delay = function Q_delay(object, timeout) {\n if (timeout === void 0) {\n timeout = object;\n object = void 0;\n }\n return Q(object).delay(timeout);\n};\n\n/**\n * Causes a promise to be rejected if it does not get fulfilled before\n * some milliseconds time out.\n * @param {Any*} promise\n * @param {Number} milliseconds timeout\n * @param {String} custom error message (optional)\n * @returns a promise for the resolution of the given promise if it is\n * fulfilled before the timeout, otherwise rejected.\n */\nQ.timeout = function Q_timeout(object, ms, message) {\n return Q(object).timeout(ms, message);\n};\n\n/**\n * Spreads the values of a promised array of arguments into the\n * fulfillment callback.\n * @param fulfilled callback that receives variadic arguments from the\n * promised array\n * @param rejected callback that receives the exception if the promise\n * is rejected.\n * @returns a promise for the return value or thrown exception of\n * either callback.\n */\nQ.spread = Q_spread;\nfunction Q_spread(value, fulfilled, rejected) {\n return Q(value).spread(fulfilled, rejected);\n}\n\n/**\n * If two promises eventually fulfill to the same value, promises that value,\n * but otherwise rejects.\n * @param x {Any*}\n * @param y {Any*}\n * @returns {Any*} a promise for x and y if they are the same, but a rejection\n * otherwise.\n *\n */\nQ.join = function Q_join(x, y) {\n return Q.spread([x, y], function Q_joined(x, y) {\n if (x === y) {\n // TODO: \"===\" should be Object.is or equiv\n return x;\n } else {\n throw new Error(\"Can't join: not the same: \" + x + \" \" + y);\n }\n });\n};\n\n/**\n * Returns a promise for the first of an array of promises to become fulfilled.\n * @param answers {Array} promises to race\n * @returns {Promise} the first promise to be fulfilled\n */\nQ.race = Q_race;\nfunction Q_race(answerPs) {\n return new Promise(function(deferred) {\n answerPs.forEach(function(answerP) {\n Q(answerP).then(deferred.resolve, deferred.reject);\n });\n });\n}\n\n/**\n * Calls the promised function in a future turn.\n * @param object promise or immediate reference for target function\n * @param ...args array of application arguments\n */\nQ.try = function Q_try(callback) {\n return Q(callback).dispatch(\"call\", [[]]);\n};\n\n/**\n * TODO\n */\nQ.function = Promise_function;\nfunction Promise_function(wrapped) {\n return function promiseFunctionWrapper() {\n var args = new Array(arguments.length);\n for (var index = 0; index < arguments.length; index++) {\n args[index] = arguments[index];\n }\n return Q(wrapped).apply(this, args);\n };\n}\n\n/**\n * The promised function decorator ensures that any promise arguments\n * are settled and passed as values (`this` is also settled and passed\n * as a value). It will also ensure that the result of a function is\n * always a promise.\n *\n * @example\n * var add = Q.promised(function (a, b) {\n * return a + b;\n * });\n * add(Q(a), Q(B));\n *\n * @param {function} callback The function to decorate\n * @returns {function} a function that has been decorated.\n */\nQ.promised = function Q_promised(callback) {\n return function promisedMethod() {\n var args = new Array(arguments.length);\n for (var index = 0; index < arguments.length; index++) {\n args[index] = arguments[index];\n }\n return Q_spread(\n [this, Q_all(args)],\n function Q_promised_spread(self, args) {\n return callback.apply(self, args);\n }\n );\n };\n};\n\n/**\n */\nQ.passByCopy = // TODO XXX experimental\nQ.push = function (value) {\n if (Object(value) === value && !Q_isPromise(value)) {\n passByCopies.set(value, true);\n }\n return value;\n};\n\nQ.isPortable = function (value) {\n return Object(value) === value && passByCopies.has(value);\n};\n\nvar passByCopies = new WeakMap();\n\n/**\n * The async function is a decorator for generator functions, turning\n * them into asynchronous generators. Although generators are only\n * part of the newest ECMAScript 6 drafts, this code does not cause\n * syntax errors in older engines. This code should continue to work\n * and will in fact improve over time as the language improves.\n *\n * ES6 generators are currently part of V8 version 3.19 with the\n * `--harmony-generators` runtime flag enabled. This function does not\n * support the former, Pythonic generators that were only implemented\n * by SpiderMonkey.\n *\n * Decorates a generator function such that:\n * - it may yield promises\n * - execution will continue when that promise is fulfilled\n * - the value of the yield expression will be the fulfilled value\n * - it returns a promise for the return value (when the generator\n * stops iterating)\n * - the decorated function returns a promise for the return value\n * of the generator or the first rejected promise among those\n * yielded.\n * - if an error is thrown in the generator, it propagates through\n * every following yield until it is caught, or until it escapes\n * the generator function altogether, and is translated into a\n * rejection for the promise returned by the decorated generator.\n */\nQ.async = Q_async;\nfunction Q_async(makeGenerator) {\n return function spawn() {\n // when verb is \"send\", arg is a value\n // when verb is \"throw\", arg is an exception\n function continuer(verb, arg) {\n var iteration;\n try {\n iteration = generator[verb](arg);\n } catch (exception) {\n return Q_reject(exception);\n }\n if (iteration.done) {\n return Q(iteration.value);\n } else {\n return Q(iteration.value).then(callback, errback);\n }\n }\n var generator = makeGenerator.apply(this, arguments);\n var callback = continuer.bind(continuer, \"next\");\n var errback = continuer.bind(continuer, \"throw\");\n return callback();\n };\n}\n\n/**\n * The spawn function is a small wrapper around async that immediately\n * calls the generator and also ends the promise chain, so that any\n * unhandled errors are thrown instead of forwarded to the error\n * handler. This is useful because it's extremely common to run\n * generators at the top-level to work with libraries.\n */\nQ.spawn = Q_spawn;\nfunction Q_spawn(makeGenerator) {\n Q_async(makeGenerator)().done();\n}\n\n\n// Thus begins the section dedicated to the Promise\n\n/**\n * TODO\n */\nQ.Promise = Promise;\nfunction Promise(handler) {\n if (!(this instanceof Promise)) {\n return new Promise(handler);\n }\n if (typeof handler === \"function\") {\n var setup = handler;\n var deferred = defer();\n handler = Q_getHandler(deferred.promise);\n try {\n setup(deferred.resolve, deferred.reject, deferred.setEstimate);\n } catch (error) {\n deferred.reject(error);\n }\n }\n handlers.set(this, handler);\n}\n\n/**\n * Turns an array of promises into a promise for an array. If any of the\n * promises gets rejected, the whole array is rejected immediately.\n * @param {Array.} an array (or promise for an array) of values (or\n * promises for values)\n * @returns {Promise.} a promise for an array of the corresponding values\n */\nPromise.all = Q_all;\n\n/**\n * Returns a promise for the first of an array of promises to become fulfilled.\n * @param answers {Array} promises to race\n * @returns {Promise} the first promise to be fulfilled\n */\nPromise.race = Q_race;\n\n/**\n * Coerces a value to a promise. If the value is a promise, pass it through\n * unaltered. If the value has a `then` method, it is presumed to be a promise\n * but not one of our own, so it is treated as a “thenable” promise and this\n * returns a promise that stands for it. Otherwise, this returns a promise that\n * has already been fulfilled with the value.\n * @param value promise, object with a then method, or a fulfillment value\n * @returns {Promise} the same promise as given, or a promise for the given\n * value\n */\nPromise.resolve = Promise_resolve;\nfunction Promise_resolve(value) {\n return Q(value);\n}\n\n/**\n * Returns a promise that has been rejected with a reason, which should be an\n * instance of `Error`.\n * @param reason value describing the failure\n * @returns {Promise} rejection\n */\nPromise.reject = Q_reject;\n\n/**\n * @returns {boolean} whether the given value is a promise.\n */\nQ.isPromise = Q_isPromise;\nfunction Q_isPromise(object) {\n return isObject(object) && !!handlers.get(object);\n}\n\n/**\n * @returns {boolean} whether the given value is an object with a then method.\n * @private\n */\nfunction isThenable(object) {\n return isObject(object) && typeof object.then === \"function\";\n}\n\n/**\n * Synchronously produces a snapshot of the internal state of the promise. The\n * object will have a `state` property. If the `state` is `\"pending\"`, there\n * will be no further information. If the `state` is `\"fulfilled\"`, there will\n * be a `value` property. If the state is `\"rejected\"` there will be a `reason`\n * property. If the promise was constructed from a “thenable” and `then` nor\n * any other method has been dispatched on the promise has been called, the\n * state will be `\"pending\"`. The state object will not be updated if the\n * state changes and changing it will have no effect on the promise. Every\n * call to `inspect` produces a unique object.\n * @returns {{state: string, value?, reason?}}\n */\nPromise.prototype.inspect = function Promise_inspect() {\n // the second layer captures only the relevant \"state\" properties of the\n // handler to prevent leaking the capability to access or alter the\n // handler.\n return Q_getHandler(this).inspect();\n};\n\n/**\n * @returns {boolean} whether the promise is waiting for a result.\n */\nPromise.prototype.isPending = function Promise_isPending() {\n return Q_getHandler(this).state === \"pending\";\n};\n\n/**\n * @returns {boolean} whether the promise has ended in a result and has a\n * fulfillment value.\n */\nPromise.prototype.isFulfilled = function Promise_isFulfilled() {\n return Q_getHandler(this).state === \"fulfilled\";\n};\n\n/**\n * @returns {boolean} whether the promise has ended poorly and has a reason for\n * its rejection.\n */\nPromise.prototype.isRejected = function Promise_isRejected() {\n return Q_getHandler(this).state === \"rejected\";\n};\n\n/**\n * TODO\n */\nPromise.prototype.toBePassed = function Promise_toBePassed() {\n return Q_getHandler(this).state === \"passed\";\n};\n\n/**\n * @returns {string} merely `\"[object Promise]\"`\n */\nPromise.prototype.toString = function Promise_toString() {\n return \"[object Promise]\";\n};\n\n/**\n * Creates a new promise, waits for this promise to be resolved, and informs\n * either the fullfilled or rejected handler of the result. Whatever result\n * comes of the fulfilled or rejected handler, a value returned, a promise\n * returned, or an error thrown, becomes the resolution for the promise\n * returned by `then`.\n *\n * @param fulfilled\n * @param rejected\n * @returns {Promise} for the result of `fulfilled` or `rejected`.\n */\nPromise.prototype.then = function Promise_then(fulfilled, rejected, ms) {\n var self = this;\n var deferred = defer();\n\n var _fulfilled;\n if (typeof fulfilled === \"function\") {\n _fulfilled = function Promise_then_fulfilled(value) {\n try {\n deferred.resolve(fulfilled.call(void 0, value));\n } catch (error) {\n deferred.reject(error);\n }\n };\n } else {\n _fulfilled = deferred.resolve;\n }\n\n var _rejected;\n if (typeof rejected === \"function\") {\n _rejected = function Promise_then_rejected(error) {\n try {\n deferred.resolve(rejected.call(void 0, error));\n } catch (newError) {\n deferred.reject(newError);\n }\n };\n } else {\n _rejected = deferred.reject;\n }\n\n this.done(_fulfilled, _rejected);\n\n if (ms !== void 0) {\n var updateEstimate = function Promise_then_updateEstimate() {\n deferred.setEstimate(self.getEstimate() + ms);\n };\n this.observeEstimate(updateEstimate);\n updateEstimate();\n }\n\n return deferred.promise;\n};\n\n/**\n * Terminates a chain of promises, forcing rejections to be\n * thrown as exceptions.\n * @param fulfilled\n * @param rejected\n */\nPromise.prototype.done = function Promise_done(fulfilled, rejected) {\n var self = this;\n var done = false; // ensure the untrusted promise makes at most a\n // single call to one of the callbacks\n asap(function Promise_done_task() {\n var _fulfilled;\n if (typeof fulfilled === \"function\") {\n if (Q.onerror) {\n _fulfilled = function Promise_done_fulfilled(value) {\n if (done) {\n return;\n }\n done = true;\n try {\n fulfilled.call(void 0, value);\n } catch (error) {\n // fallback to rethrow is still necessary because\n // _fulfilled is not called in the same event as the\n // above guard.\n (Q.onerror || Promise_rethrow)(error);\n }\n };\n } else {\n _fulfilled = function Promise_done_fulfilled(value) {\n if (done) {\n return;\n }\n done = true;\n fulfilled.call(void 0, value);\n };\n }\n }\n\n var _rejected;\n if (typeof rejected === \"function\" && Q.onerror) {\n _rejected = function Promise_done_rejected(error) {\n if (done) {\n return;\n }\n done = true;\n makeStackTraceLong(error, self);\n try {\n rejected.call(void 0, error);\n } catch (newError) {\n (Q.onerror || Promise_rethrow)(newError);\n }\n };\n } else if (typeof rejected === \"function\") {\n _rejected = function Promise_done_rejected(error) {\n if (done) {\n return;\n }\n done = true;\n makeStackTraceLong(error, self);\n rejected.call(void 0, error);\n };\n } else {\n _rejected = Q.onerror || Promise_rethrow;\n }\n\n if (typeof process === \"object\" && process.domain) {\n _rejected = process.domain.bind(_rejected);\n }\n\n Q_getHandler(self).dispatch(_fulfilled, \"then\", [_rejected]);\n });\n};\n\nfunction Promise_rethrow(error) {\n throw error;\n}\n\n/**\n * TODO\n */\nPromise.prototype.thenResolve = function Promise_thenResolve(value) {\n // Wrapping ahead of time to forestall multiple wrappers.\n value = Q(value);\n // Using all is necessary to aggregate the estimated time to completion.\n return Q_all([this, value]).then(function Promise_thenResolve_resolved() {\n return value;\n }, null, 0);\n // 0: does not contribute significantly to the estimated time to\n // completion.\n};\n\n/**\n * TODO\n */\nPromise.prototype.thenReject = function Promise_thenReject(error) {\n return this.then(function Promise_thenReject_resolved() {\n throw error;\n }, null, 0);\n // 0: does not contribute significantly to the estimated time to\n // completion.\n};\n\n/**\n * TODO\n */\nPromise.prototype.all = function Promise_all() {\n return this.then(Q_all);\n};\n\n/**\n * Turns an array of promises into a promise for an array of their states (as\n * returned by `inspect`) when they have all settled.\n * @param {Array[Any*]} values an array (or promise for an array) of values (or\n * promises for values)\n * @returns {Array[State]} an array of states for the respective values.\n */\nPromise.prototype.allSettled = function Promise_allSettled() {\n return this.then(Q_allSettled);\n};\n\n/**\n * TODO\n */\nPromise.prototype.catch = function Promise_catch(rejected) {\n return this.then(void 0, rejected);\n};\n\n/**\n * TODO\n */\nPromise.prototype.finally = function Promise_finally(callback, ms) {\n if (!callback) {\n return this;\n }\n callback = Q(callback);\n return this.then(function (value) {\n return callback.call().then(function Promise_finally_fulfilled() {\n return value;\n });\n }, function (reason) {\n // TODO attempt to recycle the rejection with \"this\".\n return callback.call().then(function Promise_finally_rejected() {\n throw reason;\n });\n }, ms);\n};\n\n/**\n * TODO\n */\nPromise.prototype.observeEstimate = function Promise_observeEstimate(emit) {\n this.rawDispatch(null, \"estimate\", [emit]);\n return this;\n};\n\n/**\n * TODO\n */\nPromise.prototype.getEstimate = function Promise_getEstimate() {\n return Q_getHandler(this).estimate;\n};\n\n/**\n * TODO\n */\nPromise.prototype.dispatch = function Promise_dispatch(op, args) {\n var deferred = defer();\n this.rawDispatch(deferred.resolve, op, args);\n return deferred.promise;\n};\n\n/**\n */\nPromise.prototype.rawDispatch = function Promise_rawDispatch(resolve, op, args) {\n var self = this;\n asap(function Promise_dispatch_task() {\n Q_getHandler(self).dispatch(resolve, op, args);\n });\n};\n\n/**\n * TODO\n */\nPromise.prototype.get = function Promise_get(name) {\n return this.dispatch(\"get\", [name]);\n};\n\n/**\n * TODO\n */\nPromise.prototype.invoke = function Promise_invoke(name /*...args*/) {\n var args = new Array(arguments.length - 1);\n for (var index = 1; index < arguments.length; index++) {\n args[index - 1] = arguments[index];\n }\n return this.dispatch(\"invoke\", [name, args]);\n};\n\n/**\n * TODO\n */\nPromise.prototype.apply = function Promise_apply(thisp, args) {\n return this.dispatch(\"call\", [args, thisp]);\n};\n\n/**\n * TODO\n */\nPromise.prototype.call = function Promise_call(thisp /*, ...args*/) {\n var args = new Array(Math.max(0, arguments.length - 1));\n for (var index = 1; index < arguments.length; index++) {\n args[index - 1] = arguments[index];\n }\n return this.dispatch(\"call\", [args, thisp]);\n};\n\n/**\n * TODO\n */\nPromise.prototype.bind = function Promise_bind(thisp /*, ...args*/) {\n var self = this;\n var args = new Array(Math.max(0, arguments.length - 1));\n for (var index = 1; index < arguments.length; index++) {\n args[index - 1] = arguments[index];\n }\n return function Promise_bind_bound(/*...args*/) {\n var boundArgs = args.slice();\n for (var index = 0; index < arguments.length; index++) {\n boundArgs[boundArgs.length] = arguments[index];\n }\n return self.dispatch(\"call\", [boundArgs, thisp]);\n };\n};\n\n/**\n * TODO\n */\nPromise.prototype.keys = function Promise_keys() {\n return this.dispatch(\"keys\", []);\n};\n\n/**\n * TODO\n */\nPromise.prototype.iterate = function Promise_iterate() {\n return this.dispatch(\"iterate\", []);\n};\n\n/**\n * TODO\n */\nPromise.prototype.spread = function Promise_spread(fulfilled, rejected, ms) {\n return this.all().then(function Promise_spread_fulfilled(array) {\n return fulfilled.apply(void 0, array);\n }, rejected, ms);\n};\n\n/**\n * Causes a promise to be rejected if it does not get fulfilled before\n * some milliseconds time out.\n * @param {Number} milliseconds timeout\n * @param {String} custom error message (optional)\n * @returns a promise for the resolution of the given promise if it is\n * fulfilled before the timeout, otherwise rejected.\n */\nPromise.prototype.timeout = function Promsie_timeout(ms, message) {\n var deferred = defer();\n var timeoutId = setTimeout(function Promise_timeout_task() {\n deferred.reject(new Error(message || \"Timed out after \" + ms + \" ms\"));\n }, ms);\n\n this.then(function Promise_timeout_fulfilled(value) {\n clearTimeout(timeoutId);\n deferred.resolve(value);\n }, function Promise_timeout_rejected(error) {\n clearTimeout(timeoutId);\n deferred.reject(error);\n });\n\n return deferred.promise;\n};\n\n/**\n * Returns a promise for the given value (or promised value), some\n * milliseconds after it resolved. Passes rejections immediately.\n * @param {Any*} promise\n * @param {Number} milliseconds\n * @returns a promise for the resolution of the given promise after milliseconds\n * time has elapsed since the resolution of the given promise.\n * If the given promise rejects, that is passed immediately.\n */\nPromise.prototype.delay = function Promise_delay(ms) {\n return this.then(function Promise_delay_fulfilled(value) {\n var deferred = defer();\n deferred.setEstimate(Date.now() + ms);\n setTimeout(function Promise_delay_task() {\n deferred.resolve(value);\n }, ms);\n return deferred.promise;\n }, null, ms);\n};\n\n/**\n * TODO\n */\nPromise.prototype.pull = function Promise_pull() {\n return this.dispatch(\"pull\", []);\n};\n\n/**\n * TODO\n */\nPromise.prototype.pass = function Promise_pass() {\n if (!this.toBePassed()) {\n return new Promise(new Passed(this));\n } else {\n return this;\n }\n};\n\n\n// Thus begins the portion dedicated to the deferred\n\nvar promises = new WeakMap();\n\nfunction Deferred(promise) {\n this.promise = promise;\n // A deferred has an intrinsic promise, denoted by its hidden handler\n // property. The promise property of the deferred may be assigned to a\n // different promise (as it is in a Queue), but the intrinsic promise does\n // not change.\n promises.set(this, promise);\n var self = this;\n var resolve = this.resolve;\n this.resolve = function (value) {\n resolve.call(self, value);\n };\n var reject = this.reject;\n this.reject = function (error) {\n reject.call(self, error);\n };\n}\n\n/**\n * TODO\n */\nDeferred.prototype.resolve = function Deferred_resolve(value) {\n var handler = Q_getHandler(promises.get(this));\n if (!handler.messages) {\n return;\n }\n handler.become(Q(value));\n};\n\n/**\n * TODO\n */\nDeferred.prototype.reject = function Deferred_reject(reason) {\n var handler = Q_getHandler(promises.get(this));\n if (!handler.messages) {\n return;\n }\n handler.become(Q_reject(reason));\n};\n\n/**\n * TODO\n */\nDeferred.prototype.setEstimate = function Deferred_setEstimate(estimate) {\n estimate = +estimate;\n if (estimate !== estimate) {\n estimate = Infinity;\n }\n if (estimate < 1e12 && estimate !== -Infinity) {\n throw new Error(\"Estimate values should be a number of miliseconds in the future\");\n }\n var handler = Q_getHandler(promises.get(this));\n // TODO There is a bit of capability leakage going on here. The Deferred\n // should only be able to set the estimate for its original\n // Pending, not for any handler that promise subsequently became.\n if (handler.setEstimate) {\n handler.setEstimate(estimate);\n }\n};\n\n// Thus ends the public interface\n\n// Thus begins the portion dedicated to handlers\n\nfunction Fulfilled(value) {\n this.value = value;\n this.estimate = Date.now();\n}\n\nFulfilled.prototype.state = \"fulfilled\";\n\nFulfilled.prototype.inspect = function Fulfilled_inspect() {\n return {state: \"fulfilled\", value: this.value};\n};\n\nFulfilled.prototype.dispatch = function Fulfilled_dispatch(\n resolve, op, operands\n) {\n var result;\n if (\n op === \"then\" ||\n op === \"get\" ||\n op === \"call\" ||\n op === \"invoke\" ||\n op === \"keys\" ||\n op === \"iterate\" ||\n op === \"pull\"\n ) {\n try {\n result = this[op].apply(this, operands);\n } catch (exception) {\n result = Q_reject(exception);\n }\n } else if (op === \"estimate\") {\n operands[0].call(void 0, this.estimate);\n } else {\n var error = new Error(\n \"Fulfilled promises do not support the \" + op + \" operator\"\n );\n result = Q_reject(error);\n }\n if (resolve) {\n resolve(result);\n }\n};\n\nFulfilled.prototype.then = function Fulfilled_then() {\n return this.value;\n};\n\nFulfilled.prototype.get = function Fulfilled_get(name) {\n return this.value[name];\n};\n\nFulfilled.prototype.call = function Fulfilled_call(args, thisp) {\n return this.callInvoke(this.value, args, thisp);\n};\n\nFulfilled.prototype.invoke = function Fulfilled_invoke(name, args) {\n return this.callInvoke(this.value[name], args, this.value);\n};\n\nFulfilled.prototype.callInvoke = function Fulfilled_callInvoke(callback, args, thisp) {\n var waitToBePassed;\n for (var index = 0; index < args.length; index++) {\n if (Q_isPromise(args[index]) && args[index].toBePassed()) {\n waitToBePassed = waitToBePassed || [];\n waitToBePassed.push(args[index]);\n }\n }\n if (waitToBePassed) {\n var self = this;\n return Q_all(waitToBePassed).then(function () {\n return self.callInvoke(callback, args.map(function (arg) {\n if (Q_isPromise(arg) && arg.toBePassed()) {\n return arg.inspect().value;\n } else {\n return arg;\n }\n }), thisp);\n });\n } else {\n return callback.apply(thisp, args);\n }\n};\n\nFulfilled.prototype.keys = function Fulfilled_keys() {\n return Object.keys(this.value);\n};\n\nFulfilled.prototype.iterate = function Fulfilled_iterate() {\n return iterate(this.value);\n};\n\nFulfilled.prototype.pull = function Fulfilled_pull() {\n var result;\n if (Object(this.value) === this.value) {\n result = Array.isArray(this.value) ? [] : {};\n for (var name in this.value) {\n result[name] = this.value[name];\n }\n } else {\n result = this.value;\n }\n return Q.push(result);\n};\n\n\nfunction Rejected(reason) {\n this.reason = reason;\n this.estimate = Infinity;\n}\n\nRejected.prototype.state = \"rejected\";\n\nRejected.prototype.inspect = function Rejected_inspect() {\n return {state: \"rejected\", reason: this.reason};\n};\n\nRejected.prototype.dispatch = function Rejected_dispatch(\n resolve, op, operands\n) {\n var result;\n if (op === \"then\") {\n result = this.then(resolve, operands[0]);\n } else {\n result = this;\n }\n if (resolve) {\n resolve(result);\n }\n};\n\nRejected.prototype.then = function Rejected_then(\n resolve, rejected\n) {\n return rejected ? rejected(this.reason) : this;\n};\n\n\nfunction Pending() {\n // if \"messages\" is an \"Array\", that indicates that the promise has not yet\n // been resolved. If it is \"undefined\", it has been resolved. Each\n // element of the messages array is itself an array of complete arguments to\n // forward to the resolved promise. We coerce the resolution value to a\n // promise using the `resolve` function because it handles both fully\n // non-thenable values and other thenables gracefully.\n this.messages = [];\n this.observers = [];\n this.estimate = Infinity;\n}\n\nPending.prototype.state = \"pending\";\n\nPending.prototype.inspect = function Pending_inspect() {\n return {state: \"pending\"};\n};\n\nPending.prototype.dispatch = function Pending_dispatch(resolve, op, operands) {\n this.messages.push([resolve, op, operands]);\n if (op === \"estimate\") {\n this.observers.push(operands[0]);\n var self = this;\n asap(function Pending_dispatch_task() {\n operands[0].call(void 0, self.estimate);\n });\n }\n};\n\nPending.prototype.become = function Pending_become(promise) {\n this.became = theViciousCycle;\n var handler = Q_getHandler(promise);\n this.became = handler;\n\n handlers.set(promise, handler);\n this.promise = void 0;\n\n this.messages.forEach(function Pending_become_eachMessage(message) {\n // makeQ does not have this asap call, so it must be queueing events\n // downstream. TODO look at makeQ to ascertain\n asap(function Pending_become_eachMessage_task() {\n var handler = Q_getHandler(promise);\n handler.dispatch.apply(handler, message);\n });\n });\n\n this.messages = void 0;\n this.observers = void 0;\n};\n\nPending.prototype.setEstimate = function Pending_setEstimate(estimate) {\n if (this.observers) {\n var self = this;\n self.estimate = estimate;\n this.observers.forEach(function Pending_eachObserver(observer) {\n asap(function Pending_setEstimate_eachObserver_task() {\n observer.call(void 0, estimate);\n });\n });\n }\n};\n\nfunction Thenable(thenable) {\n this.thenable = thenable;\n this.became = null;\n this.estimate = Infinity;\n}\n\nThenable.prototype.state = \"thenable\";\n\nThenable.prototype.inspect = function Thenable_inspect() {\n return {state: \"pending\"};\n};\n\nThenable.prototype.cast = function Thenable_cast() {\n if (!this.became) {\n var deferred = defer();\n var thenable = this.thenable;\n asap(function Thenable_cast_task() {\n try {\n thenable.then(deferred.resolve, deferred.reject);\n } catch (exception) {\n deferred.reject(exception);\n }\n });\n this.became = Q_getHandler(deferred.promise);\n }\n return this.became;\n};\n\nThenable.prototype.dispatch = function Thenable_dispatch(resolve, op, args) {\n this.cast().dispatch(resolve, op, args);\n};\n\n\nfunction Passed(promise) {\n this.promise = promise;\n}\n\nPassed.prototype.state = \"passed\";\n\nPassed.prototype.inspect = function Passed_inspect() {\n return this.promise.inspect();\n};\n\nPassed.prototype.dispatch = function Passed_dispatch(resolve, op, args) {\n return this.promise.rawDispatch(resolve, op, args);\n};\n\n\n// Thus begins the Q Node.js bridge\n\n/**\n * Calls a method of a Node-style object that accepts a Node-style\n * callback, forwarding the given variadic arguments, plus a provided\n * callback argument.\n * @param object an object that has the named method\n * @param {String} name name of the method of object\n * @param ...args arguments to pass to the method; the callback will\n * be provided by Q and appended to these arguments.\n * @returns a promise for the value or error\n */\nQ.ninvoke = function Q_ninvoke(object, name /*...args*/) {\n var args = new Array(Math.max(0, arguments.length - 1));\n for (var index = 2; index < arguments.length; index++) {\n args[index - 2] = arguments[index];\n }\n var deferred = Q.defer();\n args[index - 2] = deferred.makeNodeResolver();\n Q(object).dispatch(\"invoke\", [name, args]).catch(deferred.reject);\n return deferred.promise;\n};\n\nPromise.prototype.ninvoke = function Promise_ninvoke(name /*...args*/) {\n var args = new Array(arguments.length);\n for (var index = 1; index < arguments.length; index++) {\n args[index - 1] = arguments[index];\n }\n var deferred = Q.defer();\n args[index - 1] = deferred.makeNodeResolver();\n this.dispatch(\"invoke\", [name, args]).catch(deferred.reject);\n return deferred.promise;\n};\n\n/**\n * Wraps a Node.js continuation passing function and returns an equivalent\n * version that returns a promise.\n * @example\n * Q.denodeify(FS.readFile)(__filename, \"utf-8\")\n * .then(console.log)\n * .done()\n */\nQ.denodeify = function Q_denodeify(callback, pattern) {\n return function denodeified() {\n var args = new Array(arguments.length + 1);\n var index = 0;\n for (; index < arguments.length; index++) {\n args[index] = arguments[index];\n }\n var deferred = Q.defer();\n args[index] = deferred.makeNodeResolver(pattern);\n Q(callback).apply(this, args).catch(deferred.reject);\n return deferred.promise;\n };\n};\n\n/**\n * Creates a Node.js-style callback that will resolve or reject the deferred\n * promise.\n * @param unpack `true` means that the Node.js-style-callback accepts a\n * fixed or variable number of arguments and that the deferred should be resolved\n * with an array of these value arguments, or rejected with the error argument.\n * An array of names means that the Node.js-style-callback accepts a fixed\n * number of arguments, and that the resolution should be an object with\n * properties corresponding to the given names and respective value arguments.\n * @returns a nodeback\n */\nDeferred.prototype.makeNodeResolver = function (unpack) {\n var resolve = this.resolve;\n if (unpack === true) {\n return function variadicNodebackToResolver(error) {\n if (error) {\n resolve(Q_reject(error));\n } else {\n var value = new Array(Math.max(0, arguments.length - 1));\n for (var index = 1; index < arguments.length; index++) {\n value[index - 1] = arguments[index];\n }\n resolve(value);\n }\n };\n } else if (unpack) {\n return function namedArgumentNodebackToResolver(error) {\n if (error) {\n resolve(Q_reject(error));\n } else {\n var value = {};\n for (var index = 0; index < unpack.length; index++) {\n value[unpack[index]] = arguments[index + 1];\n }\n resolve(value);\n }\n };\n } else {\n return function nodebackToResolver(error, value) {\n if (error) {\n resolve(Q_reject(error));\n } else {\n resolve(value);\n }\n };\n }\n};\n\n/**\n * TODO\n */\nPromise.prototype.nodeify = function Promise_nodeify(nodeback) {\n if (nodeback) {\n this.done(function (value) {\n nodeback(null, value);\n }, nodeback);\n } else {\n return this;\n }\n};\n\n\n// DEPRECATED\n\nQ.nextTick = deprecate(asap, \"nextTick\", \"asap package\");\n\nQ.resolve = deprecate(Q, \"resolve\", \"Q\");\n\nQ.fulfill = deprecate(Q, \"fulfill\", \"Q\");\n\nQ.isPromiseAlike = deprecate(isThenable, \"isPromiseAlike\", \"(not supported)\");\n\nQ.fail = deprecate(function (value, rejected) {\n return Q(value).catch(rejected);\n}, \"Q.fail\", \"Q(value).catch\");\n\nQ.fin = deprecate(function (value, regardless) {\n return Q(value).finally(regardless);\n}, \"Q.fin\", \"Q(value).finally\");\n\nQ.progress = deprecate(function (value) {\n return value;\n}, \"Q.progress\", \"no longer supported\");\n\nQ.thenResolve = deprecate(function (promise, value) {\n return Q(promise).thenResolve(value);\n}, \"thenResolve\", \"Q(value).thenResolve\");\n\nQ.thenReject = deprecate(function (promise, reason) {\n return Q(promise).thenResolve(reason);\n}, \"thenResolve\", \"Q(value).thenResolve\");\n\nQ.isPending = deprecate(function (value) {\n return Q(value).isPending();\n}, \"isPending\", \"Q(value).isPending\");\n\nQ.isFulfilled = deprecate(function (value) {\n return Q(value).isFulfilled();\n}, \"isFulfilled\", \"Q(value).isFulfilled\");\n\nQ.isRejected = deprecate(function (value) {\n return Q(value).isRejected();\n}, \"isRejected\", \"Q(value).isRejected\");\n\nQ.master = deprecate(function (value) {\n return value;\n}, \"master\", \"no longer necessary\");\n\nQ.makePromise = function () {\n throw new Error(\"makePromise is no longer supported\");\n};\n\nQ.dispatch = deprecate(function (value, op, operands) {\n return Q(value).dispatch(op, operands);\n}, \"dispatch\", \"Q(value).dispatch\");\n\nQ.get = deprecate(function (object, name) {\n return Q(object).get(name);\n}, \"get\", \"Q(value).get\");\n\nQ.keys = deprecate(function (object) {\n return Q(object).keys();\n}, \"keys\", \"Q(value).keys\");\n\nQ.post = deprecate(function (object, name, args) {\n return Q(object).post(name, args);\n}, \"post\", \"Q(value).invoke (spread arguments)\");\n\nQ.mapply = deprecate(function (object, name, args) {\n return Q(object).post(name, args);\n}, \"post\", \"Q(value).invoke (spread arguments)\");\n\nQ.send = deprecate(function (object, name) {\n return Q(object).post(name, Array.prototype.slice.call(arguments, 2));\n}, \"send\", \"Q(value).invoke\");\n\nQ.set = function () {\n throw new Error(\"Q.set no longer supported\");\n};\n\nQ.delete = function () {\n throw new Error(\"Q.delete no longer supported\");\n};\n\nQ.nearer = deprecate(function (value) {\n if (Q_isPromise(value) && value.isFulfilled()) {\n return value.inspect().value;\n } else {\n return value;\n }\n}, \"nearer\", \"inspect().value (+nuances)\");\n\nQ.fapply = deprecate(function (callback, args) {\n return Q(callback).dispatch(\"call\", [args]);\n}, \"fapply\", \"Q(callback).apply(thisp, args)\");\n\nQ.fcall = deprecate(function (callback /*, ...args*/) {\n return Q(callback).dispatch(\"call\", [Array.prototype.slice.call(arguments, 1)]);\n}, \"fcall\", \"Q(callback).call(thisp, ...args)\");\n\nQ.fbind = deprecate(function (object /*...args*/) {\n var promise = Q(object);\n var args = Array.prototype.slice.call(arguments, 1);\n return function fbound() {\n return promise.dispatch(\"call\", [\n args.concat(Array.prototype.slice.call(arguments)),\n this\n ]);\n };\n}, \"fbind\", \"bind with thisp\");\n\nQ.promise = deprecate(Promise, \"promise\", \"Promise\");\n\nPromise.prototype.fapply = deprecate(function (args) {\n return this.dispatch(\"call\", [args]);\n}, \"fapply\", \"apply with thisp\");\n\nPromise.prototype.fcall = deprecate(function (/*...args*/) {\n return this.dispatch(\"call\", [Array.prototype.slice.call(arguments)]);\n}, \"fcall\", \"try or call with thisp\");\n\nPromise.prototype.fail = deprecate(function (rejected) {\n return this.catch(rejected);\n}, \"fail\", \"catch\");\n\nPromise.prototype.fin = deprecate(function (regardless) {\n return this.finally(regardless);\n}, \"fin\", \"finally\");\n\nPromise.prototype.set = function () {\n throw new Error(\"Promise set no longer supported\");\n};\n\nPromise.prototype.delete = function () {\n throw new Error(\"Promise delete no longer supported\");\n};\n\nDeferred.prototype.notify = deprecate(function () {\n}, \"notify\", \"no longer supported\");\n\nPromise.prototype.progress = deprecate(function () {\n return this;\n}, \"progress\", \"no longer supported\");\n\n// alternative proposed by Redsandro, dropped in favor of post to streamline\n// the interface\nPromise.prototype.mapply = deprecate(function (name, args) {\n return this.dispatch(\"invoke\", [name, args]);\n}, \"mapply\", \"invoke\");\n\nPromise.prototype.fbind = deprecate(function () {\n return Q.fbind.apply(Q, [void 0].concat(Array.prototype.slice.call(arguments)));\n}, \"fbind\", \"bind(thisp, ...args)\");\n\n// alternative proposed by Mark Miller, dropped in favor of invoke\nPromise.prototype.send = deprecate(function () {\n return this.dispatch(\"invoke\", [name, Array.prototype.slice.call(arguments, 1)]);\n}, \"send\", \"invoke\");\n\n// alternative proposed by Redsandro, dropped in favor of invoke\nPromise.prototype.mcall = deprecate(function () {\n return this.dispatch(\"invoke\", [name, Array.prototype.slice.call(arguments, 1)]);\n}, \"mcall\", \"invoke\");\n\nPromise.prototype.passByCopy = deprecate(function (value) {\n return value;\n}, \"passByCopy\", \"Q.passByCopy\");\n\n// Deprecated Node.js bridge promise methods\n\nQ.nfapply = deprecate(function (callback, args) {\n var deferred = Q.defer();\n var nodeArgs = Array.prototype.slice.call(args);\n nodeArgs.push(deferred.makeNodeResolver());\n Q(callback).apply(this, nodeArgs).catch(deferred.reject);\n return deferred.promise;\n}, \"nfapply\");\n\nPromise.prototype.nfapply = deprecate(function (args) {\n return Q.nfapply(this, args);\n}, \"nfapply\");\n\nQ.nfcall = deprecate(function (callback /*...args*/) {\n var args = Array.prototype.slice.call(arguments, 1);\n return Q.nfapply(callback, args);\n}, \"nfcall\");\n\nPromise.prototype.nfcall = deprecate(function () {\n var args = new Array(arguments.length);\n for (var index = 0; index < arguments.length; index++) {\n args[index] = arguments[index];\n }\n return Q.nfapply(this, args);\n}, \"nfcall\");\n\nQ.nfbind = deprecate(function (callback /*...args*/) {\n var baseArgs = Array.prototype.slice.call(arguments, 1);\n return function () {\n var nodeArgs = baseArgs.concat(Array.prototype.slice.call(arguments));\n var deferred = Q.defer();\n nodeArgs.push(deferred.makeNodeResolver());\n Q(callback).apply(this, nodeArgs).catch(deferred.reject);\n return deferred.promise;\n };\n}, \"nfbind\", \"denodeify (with caveats)\");\n\nPromise.prototype.nfbind = deprecate(function () {\n var args = new Array(arguments.length);\n for (var index = 0; index < arguments.length; index++) {\n args[index] = arguments[index];\n }\n return Q.nfbind(this, args);\n}, \"nfbind\", \"denodeify (with caveats)\");\n\nQ.nbind = deprecate(function (callback, thisp /*...args*/) {\n var baseArgs = Array.prototype.slice.call(arguments, 2);\n return function () {\n var nodeArgs = baseArgs.concat(Array.prototype.slice.call(arguments));\n var deferred = Q.defer();\n nodeArgs.push(deferred.makeNodeResolver());\n function bound() {\n return callback.apply(thisp, arguments);\n }\n Q(bound).apply(this, nodeArgs).catch(deferred.reject);\n return deferred.promise;\n };\n}, \"nbind\", \"denodeify (with caveats)\");\n\nQ.npost = deprecate(function (object, name, nodeArgs) {\n var deferred = Q.defer();\n nodeArgs.push(deferred.makeNodeResolver());\n Q(object).dispatch(\"invoke\", [name, nodeArgs]).catch(deferred.reject);\n return deferred.promise;\n}, \"npost\", \"ninvoke (with spread arguments)\");\n\nPromise.prototype.npost = deprecate(function (name, args) {\n return Q.npost(this, name, args);\n}, \"npost\", \"Q.ninvoke (with caveats)\");\n\nQ.nmapply = deprecate(Q.nmapply, \"nmapply\", \"q/node nmapply\");\nPromise.prototype.nmapply = deprecate(Promise.prototype.npost, \"nmapply\", \"Q.nmapply\");\n\nQ.nsend = deprecate(Q.ninvoke, \"nsend\", \"q/node ninvoke\");\nQ.nmcall = deprecate(Q.ninvoke, \"nmcall\", \"q/node ninvoke\");\nPromise.prototype.nsend = deprecate(Promise.prototype.ninvoke, \"nsend\", \"q/node ninvoke\");\nPromise.prototype.nmcall = deprecate(Promise.prototype.ninvoke, \"nmcall\", \"q/node ninvoke\");\n\n// All code before this point will be filtered from stack traces.\nvar qEndingLine = captureLine();\n\n","/*!\n* Tippy.js v3.4.1\n* (c) 2017-2019 atomiks\n* MIT\n*/\nimport Popper from 'popper.js';\n\nvar version = \"3.4.1\";\n\nvar isBrowser = typeof window !== 'undefined';\n\nvar nav = isBrowser ? navigator : {};\nvar win = isBrowser ? window : {};\n\n\nvar isIE = /MSIE |Trident\\//.test(nav.userAgent);\nvar isIOS = /iPhone|iPad|iPod/.test(nav.platform) && !win.MSStream;\nvar supportsTouch = 'ontouchstart' in win;\n\nvar Defaults = {\n a11y: true,\n allowHTML: true,\n animateFill: true,\n animation: 'shift-away',\n appendTo: function appendTo() {\n return document.body;\n },\n aria: 'describedby',\n arrow: false,\n arrowTransform: '',\n arrowType: 'sharp',\n autoFocus: true,\n boundary: 'scrollParent',\n content: '',\n delay: [0, 20],\n distance: 10,\n duration: [325, 275],\n flip: true,\n flipBehavior: 'flip',\n followCursor: false,\n hideOnClick: true,\n inertia: false,\n interactive: false,\n interactiveBorder: 2,\n interactiveDebounce: 0,\n lazy: true,\n livePlacement: true,\n maxWidth: '',\n multiple: false,\n offset: 0,\n onHidden: function onHidden() {},\n onHide: function onHide() {},\n onMount: function onMount() {},\n onShow: function onShow() {},\n onShown: function onShown() {},\n\n performance: false,\n placement: 'top',\n popperOptions: {},\n shouldPopperHideOnBlur: function shouldPopperHideOnBlur() {\n return true;\n },\n showOnInit: false,\n size: 'regular',\n sticky: false,\n target: '',\n theme: 'dark',\n touch: true,\n touchHold: false,\n trigger: 'mouseenter focus',\n updateDuration: 200,\n wait: null,\n zIndex: 9999\n\n /**\n * If the set() method encounters one of these, the popperInstance must be\n * recreated\n */\n};var POPPER_INSTANCE_RELATED_PROPS = ['arrow', 'arrowType', 'distance', 'flip', 'flipBehavior', 'offset', 'placement', 'popperOptions'];\n\nvar Selectors = {\n POPPER: '.tippy-popper',\n TOOLTIP: '.tippy-tooltip',\n CONTENT: '.tippy-content',\n BACKDROP: '.tippy-backdrop',\n ARROW: '.tippy-arrow',\n ROUND_ARROW: '.tippy-roundarrow'\n};\n\nvar elementProto = isBrowser ? Element.prototype : {};\n\nvar matches = elementProto.matches || elementProto.matchesSelector || elementProto.webkitMatchesSelector || elementProto.mozMatchesSelector || elementProto.msMatchesSelector;\n\n/**\n * Ponyfill for Array.from - converts iterable values to an array\n * @param {Array-like} value\n * @return {Array}\n */\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\n\n/**\n * Ponyfill for Element.prototype.closest\n * @param {Element} element\n * @param {String} parentSelector\n * @return {Element}\n */\nfunction closest(element, parentSelector) {\n return (elementProto.closest || function (selector) {\n var el = this;\n while (el) {\n if (matches.call(el, selector)) return el;\n el = el.parentElement;\n }\n }).call(element, parentSelector);\n}\n\n/**\n * Works like Element.prototype.closest, but uses a callback instead\n * @param {Element} element\n * @param {Function} callback\n * @return {Element}\n */\nfunction closestCallback(element, callback) {\n while (element) {\n if (callback(element)) return element;\n element = element.parentElement;\n }\n}\n\nvar PASSIVE = { passive: true };\nvar FF_EXTENSION_TRICK = { x: true };\n\n/**\n * Returns a new `div` element\n * @return {HTMLDivElement}\n */\nfunction div() {\n return document.createElement('div');\n}\n\n/**\n * Sets the innerHTML of an element while tricking linters & minifiers\n * @param {HTMLElement} el\n * @param {Element|String} html\n */\nfunction setInnerHTML(el, html) {\n el[FF_EXTENSION_TRICK.x && 'innerHTML'] = html instanceof Element ? html[FF_EXTENSION_TRICK.x && 'innerHTML'] : html;\n}\n\n/**\n * Sets the content of a tooltip\n * @param {HTMLElement} contentEl\n * @param {Object} props\n */\nfunction setContent(contentEl, props) {\n if (props.content instanceof Element) {\n setInnerHTML(contentEl, '');\n contentEl.appendChild(props.content);\n } else {\n contentEl[props.allowHTML ? 'innerHTML' : 'textContent'] = props.content;\n }\n}\n\n/**\n * Returns the child elements of a popper element\n * @param {HTMLElement} popper\n */\nfunction getChildren(popper) {\n return {\n tooltip: popper.querySelector(Selectors.TOOLTIP),\n backdrop: popper.querySelector(Selectors.BACKDROP),\n content: popper.querySelector(Selectors.CONTENT),\n arrow: popper.querySelector(Selectors.ARROW) || popper.querySelector(Selectors.ROUND_ARROW)\n };\n}\n\n/**\n * Adds `data-inertia` attribute\n * @param {HTMLElement} tooltip\n */\nfunction addInertia(tooltip) {\n tooltip.setAttribute('data-inertia', '');\n}\n\n/**\n * Removes `data-inertia` attribute\n * @param {HTMLElement} tooltip\n */\nfunction removeInertia(tooltip) {\n tooltip.removeAttribute('data-inertia');\n}\n\n/**\n * Creates an arrow element and returns it\n */\nfunction createArrowElement(arrowType) {\n var arrow = div();\n if (arrowType === 'round') {\n arrow.className = 'tippy-roundarrow';\n setInnerHTML(arrow, '');\n } else {\n arrow.className = 'tippy-arrow';\n }\n return arrow;\n}\n\n/**\n * Creates a backdrop element and returns it\n */\nfunction createBackdropElement() {\n var backdrop = div();\n backdrop.className = 'tippy-backdrop';\n backdrop.setAttribute('data-state', 'hidden');\n return backdrop;\n}\n\n/**\n * Adds interactive-related attributes\n * @param {HTMLElement} popper\n * @param {HTMLElement} tooltip\n */\nfunction addInteractive(popper, tooltip) {\n popper.setAttribute('tabindex', '-1');\n tooltip.setAttribute('data-interactive', '');\n}\n\n/**\n * Removes interactive-related attributes\n * @param {HTMLElement} popper\n * @param {HTMLElement} tooltip\n */\nfunction removeInteractive(popper, tooltip) {\n popper.removeAttribute('tabindex');\n tooltip.removeAttribute('data-interactive');\n}\n\n/**\n * Applies a transition duration to a list of elements\n * @param {Array} els\n * @param {Number} value\n */\nfunction applyTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + 'ms';\n }\n });\n}\n\n/**\n * Add/remove transitionend listener from tooltip\n * @param {Element} tooltip\n * @param {String} action\n * @param {Function} listener\n */\nfunction toggleTransitionEndListener(tooltip, action, listener) {\n tooltip[action + 'EventListener']('transitionend', listener);\n}\n\n/**\n * Returns the popper's placement, ignoring shifting (top-start, etc)\n * @param {Element} popper\n * @return {String}\n */\nfunction getPopperPlacement(popper) {\n var fullPlacement = popper.getAttribute('x-placement');\n return fullPlacement ? fullPlacement.split('-')[0] : '';\n}\n\n/**\n * Sets the visibility state to elements so they can begin to transition\n * @param {Array} els\n * @param {String} state\n */\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\n\n/**\n * Triggers reflow\n * @param {Element} popper\n */\nfunction reflow(popper) {\n void popper.offsetHeight;\n}\n\n/**\n * Constructs the popper element and returns it\n * @param {Number} id\n * @param {Object} props\n */\nfunction createPopperElement(id, props) {\n var popper = div();\n popper.className = 'tippy-popper';\n popper.setAttribute('role', 'tooltip');\n popper.id = 'tippy-' + id;\n popper.style.zIndex = props.zIndex;\n\n var tooltip = div();\n tooltip.className = 'tippy-tooltip';\n tooltip.style.maxWidth = props.maxWidth + (typeof props.maxWidth === 'number' ? 'px' : '');\n tooltip.setAttribute('data-size', props.size);\n tooltip.setAttribute('data-animation', props.animation);\n tooltip.setAttribute('data-state', 'hidden');\n props.theme.split(' ').forEach(function (t) {\n tooltip.classList.add(t + '-theme');\n });\n\n var content = div();\n content.className = 'tippy-content';\n content.setAttribute('data-state', 'hidden');\n\n if (props.interactive) {\n addInteractive(popper, tooltip);\n }\n\n if (props.arrow) {\n tooltip.appendChild(createArrowElement(props.arrowType));\n }\n\n if (props.animateFill) {\n tooltip.appendChild(createBackdropElement());\n tooltip.setAttribute('data-animatefill', '');\n }\n\n if (props.inertia) {\n addInertia(tooltip);\n }\n\n setContent(content, props);\n\n tooltip.appendChild(content);\n popper.appendChild(tooltip);\n\n popper.addEventListener('focusout', function (e) {\n if (e.relatedTarget && popper._tippy && !closestCallback(e.relatedTarget, function (el) {\n return el === popper;\n }) && e.relatedTarget !== popper._tippy.reference && popper._tippy.props.shouldPopperHideOnBlur(e)) {\n popper._tippy.hide();\n }\n });\n\n return popper;\n}\n\n/**\n * Updates the popper element based on the new props\n * @param {HTMLElement} popper\n * @param {Object} prevProps\n * @param {Object} nextProps\n */\nfunction updatePopperElement(popper, prevProps, nextProps) {\n var _getChildren = getChildren(popper),\n tooltip = _getChildren.tooltip,\n content = _getChildren.content,\n backdrop = _getChildren.backdrop,\n arrow = _getChildren.arrow;\n\n popper.style.zIndex = nextProps.zIndex;\n tooltip.setAttribute('data-size', nextProps.size);\n tooltip.setAttribute('data-animation', nextProps.animation);\n tooltip.style.maxWidth = nextProps.maxWidth + (typeof nextProps.maxWidth === 'number' ? 'px' : '');\n\n if (prevProps.content !== nextProps.content) {\n setContent(content, nextProps);\n }\n\n // animateFill\n if (!prevProps.animateFill && nextProps.animateFill) {\n tooltip.appendChild(createBackdropElement());\n tooltip.setAttribute('data-animatefill', '');\n } else if (prevProps.animateFill && !nextProps.animateFill) {\n tooltip.removeChild(backdrop);\n tooltip.removeAttribute('data-animatefill');\n }\n\n // arrow\n if (!prevProps.arrow && nextProps.arrow) {\n tooltip.appendChild(createArrowElement(nextProps.arrowType));\n } else if (prevProps.arrow && !nextProps.arrow) {\n tooltip.removeChild(arrow);\n }\n\n // arrowType\n if (prevProps.arrow && nextProps.arrow && prevProps.arrowType !== nextProps.arrowType) {\n tooltip.replaceChild(createArrowElement(nextProps.arrowType), arrow);\n }\n\n // interactive\n if (!prevProps.interactive && nextProps.interactive) {\n addInteractive(popper, tooltip);\n } else if (prevProps.interactive && !nextProps.interactive) {\n removeInteractive(popper, tooltip);\n }\n\n // inertia\n if (!prevProps.inertia && nextProps.inertia) {\n addInertia(tooltip);\n } else if (prevProps.inertia && !nextProps.inertia) {\n removeInertia(tooltip);\n }\n\n // theme\n if (prevProps.theme !== nextProps.theme) {\n prevProps.theme.split(' ').forEach(function (theme) {\n tooltip.classList.remove(theme + '-theme');\n });\n nextProps.theme.split(' ').forEach(function (theme) {\n tooltip.classList.add(theme + '-theme');\n });\n }\n}\n\n/**\n * Runs the callback after the popper's position has been updated\n * update() is debounced with Promise.resolve() or setTimeout()\n * scheduleUpdate() is update() wrapped in requestAnimationFrame()\n * @param {Popper} popperInstance\n * @param {Function} callback\n */\nfunction afterPopperPositionUpdates(popperInstance, callback) {\n var popper = popperInstance.popper,\n options = popperInstance.options;\n var onCreate = options.onCreate,\n onUpdate = options.onUpdate;\n\n\n options.onCreate = options.onUpdate = function () {\n reflow(popper);\n callback();\n onUpdate();\n options.onCreate = onCreate;\n options.onUpdate = onUpdate;\n };\n}\n\n/**\n * Hides all visible poppers on the document, optionally excluding one\n * @param {Tippy} tippyInstanceToExclude\n */\nfunction hideAllPoppers(tippyInstanceToExclude) {\n arrayFrom(document.querySelectorAll(Selectors.POPPER)).forEach(function (popper) {\n var tip = popper._tippy;\n if (tip && tip.props.hideOnClick === true && (!tippyInstanceToExclude || popper !== tippyInstanceToExclude.popper)) {\n tip.hide();\n }\n });\n}\n\n/**\n * Determines if the mouse cursor is outside of the popper's interactive border\n * region\n * @param {String} popperPlacement\n * @param {Object} popperRect\n * @param {MouseEvent} event\n * @param {Object} props\n */\nfunction isCursorOutsideInteractiveBorder(popperPlacement, popperRect, event, props) {\n if (!popperPlacement) {\n return true;\n }\n\n var x = event.clientX,\n y = event.clientY;\n var interactiveBorder = props.interactiveBorder,\n distance = props.distance;\n\n\n var exceedsTop = popperRect.top - y > (popperPlacement === 'top' ? interactiveBorder + distance : interactiveBorder);\n\n var exceedsBottom = y - popperRect.bottom > (popperPlacement === 'bottom' ? interactiveBorder + distance : interactiveBorder);\n\n var exceedsLeft = popperRect.left - x > (popperPlacement === 'left' ? interactiveBorder + distance : interactiveBorder);\n\n var exceedsRight = x - popperRect.right > (popperPlacement === 'right' ? interactiveBorder + distance : interactiveBorder);\n\n return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\n}\n\n/**\n * Returns the distance offset, taking into account the default offset due to\n * the transform: translate() rule in CSS\n * @param {Number} distance\n * @param {Number} defaultDistance\n */\nfunction getOffsetDistanceInPx(distance, defaultDistance) {\n return -(distance - defaultDistance) + 'px';\n}\n\n/**\n * Determines if a value is a plain object\n * @param {any} value\n * @return {Boolean}\n */\nfunction isPlainObject(value) {\n return {}.toString.call(value) === '[object Object]';\n}\n\n/**\n * Safe .hasOwnProperty check, for prototype-less objects\n * @param {Object} obj\n * @param {String} key\n * @return {Boolean}\n */\nfunction hasOwnProperty(obj, key) {\n return {}.hasOwnProperty.call(obj, key);\n}\n\n/**\n * Determines if a value is numeric\n * @param {any} value\n * @return {Boolean}\n */\nfunction isNumeric(value) {\n return !isNaN(value) && !isNaN(parseFloat(value));\n}\n\n/**\n * Returns an array of elements based on the value\n * @param {any} value\n * @return {Array}\n */\nfunction getArrayOfElements(value) {\n if (value instanceof Element || isPlainObject(value)) {\n return [value];\n }\n if (value instanceof NodeList) {\n return arrayFrom(value);\n }\n if (Array.isArray(value)) {\n return value;\n }\n\n try {\n return arrayFrom(document.querySelectorAll(value));\n } catch (e) {\n return [];\n }\n}\n\n/**\n * Returns a value at a given index depending on if it's an array or number\n * @param {any} value\n * @param {Number} index\n * @param {any} defaultValue\n */\nfunction getValue(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? defaultValue : v;\n }\n return value;\n}\n\n/**\n * Focuses an element while preventing a scroll jump if it's not within the\n * viewport\n * @param {Element} el\n */\nfunction focus(el) {\n var x = window.scrollX || window.pageXOffset;\n var y = window.scrollY || window.pageYOffset;\n el.focus();\n scroll(x, y);\n}\n\n/**\n * Defers a function's execution until the call stack has cleared\n * @param {Function} fn\n */\nfunction defer(fn) {\n setTimeout(fn, 1);\n}\n\n/**\n * Debounce utility\n * @param {Function} fn\n * @param {Number} ms\n */\nfunction debounce(fn, ms) {\n var timeoutId = void 0;\n return function () {\n var _this = this,\n _arguments = arguments;\n\n clearTimeout(timeoutId);\n timeoutId = setTimeout(function () {\n return fn.apply(_this, _arguments);\n }, ms);\n };\n}\n\n/**\n * Prevents errors from being thrown while accessing nested modifier objects\n * in `popperOptions`\n * @param {Object} obj\n * @param {String} key\n * @return {Object|undefined}\n */\nfunction getModifier(obj, key) {\n return obj && obj.modifiers && obj.modifiers[key];\n}\n\n/**\n * Determines if an array or string includes a value\n * @param {Array|String} a\n * @param {any} b\n * @return {Boolean}\n */\nfunction includes(a, b) {\n return a.indexOf(b) > -1;\n}\n\nvar isUsingTouch = false;\n\nfunction onDocumentTouch() {\n if (isUsingTouch) {\n return;\n }\n\n isUsingTouch = true;\n\n if (isIOS) {\n document.body.classList.add('tippy-iOS');\n }\n\n if (window.performance) {\n document.addEventListener('mousemove', onDocumentMouseMove);\n }\n}\n\nvar lastMouseMoveTime = 0;\nfunction onDocumentMouseMove() {\n var now = performance.now();\n\n // Chrome 60+ is 1 mousemove per animation frame, use 20ms time difference\n if (now - lastMouseMoveTime < 20) {\n isUsingTouch = false;\n document.removeEventListener('mousemove', onDocumentMouseMove);\n if (!isIOS) {\n document.body.classList.remove('tippy-iOS');\n }\n }\n\n lastMouseMoveTime = now;\n}\n\nfunction onDocumentClick(_ref) {\n var target = _ref.target;\n\n // Simulated events dispatched on the document\n if (!(target instanceof Element)) {\n return hideAllPoppers();\n }\n\n // Clicked on an interactive popper\n var popper = closest(target, Selectors.POPPER);\n if (popper && popper._tippy && popper._tippy.props.interactive) {\n return;\n }\n\n // Clicked on a reference\n var reference = closestCallback(target, function (el) {\n return el._tippy && el._tippy.reference === el;\n });\n if (reference) {\n var tip = reference._tippy;\n var isClickTrigger = includes(tip.props.trigger, 'click');\n\n if (isUsingTouch || isClickTrigger) {\n return hideAllPoppers(tip);\n }\n\n if (tip.props.hideOnClick !== true || isClickTrigger) {\n return;\n }\n\n tip.clearDelayTimeouts();\n }\n\n hideAllPoppers();\n}\n\nfunction onWindowBlur() {\n var _document = document,\n activeElement = _document.activeElement;\n\n if (activeElement && activeElement.blur && activeElement._tippy) {\n activeElement.blur();\n }\n}\n\nfunction onWindowResize() {\n arrayFrom(document.querySelectorAll(Selectors.POPPER)).forEach(function (popper) {\n var tippyInstance = popper._tippy;\n if (!tippyInstance.props.livePlacement) {\n tippyInstance.popperInstance.scheduleUpdate();\n }\n });\n}\n\n/**\n * Adds the needed global event listeners\n */\nfunction bindGlobalEventListeners() {\n document.addEventListener('click', onDocumentClick, true);\n document.addEventListener('touchstart', onDocumentTouch, PASSIVE);\n window.addEventListener('blur', onWindowBlur);\n window.addEventListener('resize', onWindowResize);\n\n if (!supportsTouch && (navigator.maxTouchPoints || navigator.msMaxTouchPoints)) {\n document.addEventListener('pointerdown', onDocumentTouch);\n }\n}\n\nvar keys = Object.keys(Defaults);\n\n/**\n * Determines if an element can receive focus\n * @param {Element} el\n * @return {Boolean}\n */\nfunction canReceiveFocus(el) {\n return el instanceof Element ? matches.call(el, 'a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]') && !el.hasAttribute('disabled') : true;\n}\n\n/**\n * Returns an object of optional props from data-tippy-* attributes\n * @param {Element} reference\n * @return {Object}\n */\nfunction getDataAttributeOptions(reference) {\n return keys.reduce(function (acc, key) {\n var valueAsString = (reference.getAttribute('data-tippy-' + key) || '').trim();\n\n if (!valueAsString) {\n return acc;\n }\n\n if (key === 'content') {\n acc[key] = valueAsString;\n } else if (valueAsString === 'true') {\n acc[key] = true;\n } else if (valueAsString === 'false') {\n acc[key] = false;\n } else if (isNumeric(valueAsString)) {\n acc[key] = Number(valueAsString);\n } else if (valueAsString[0] === '[' || valueAsString[0] === '{') {\n acc[key] = JSON.parse(valueAsString);\n } else {\n acc[key] = valueAsString;\n }\n\n return acc;\n }, {});\n}\n\n/**\n * Polyfills the virtual reference (plain object) with Element.prototype props\n * Mutating because DOM elements are mutated, adds `_tippy` property\n * @param {Object} virtualReference\n * @return {Object}\n */\nfunction polyfillElementPrototypeProperties(virtualReference) {\n var polyfills = {\n isVirtual: true,\n attributes: virtualReference.attributes || {},\n setAttribute: function setAttribute(key, value) {\n virtualReference.attributes[key] = value;\n },\n getAttribute: function getAttribute(key) {\n return virtualReference.attributes[key];\n },\n removeAttribute: function removeAttribute(key) {\n delete virtualReference.attributes[key];\n },\n hasAttribute: function hasAttribute(key) {\n return key in virtualReference.attributes;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n\n classList: {\n classNames: {},\n add: function add(key) {\n virtualReference.classList.classNames[key] = true;\n },\n remove: function remove(key) {\n delete virtualReference.classList.classNames[key];\n },\n contains: function contains(key) {\n return key in virtualReference.classList.classNames;\n }\n }\n };\n\n for (var key in polyfills) {\n virtualReference[key] = polyfills[key];\n }\n}\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Evaluates the props object\n * @param {Element} reference\n * @param {Object} props\n * @return {Object}\n */\nfunction evaluateProps(reference, props) {\n var out = _extends({}, props, props.performance ? {} : getDataAttributeOptions(reference));\n\n if (out.arrow) {\n out.animateFill = false;\n }\n\n if (typeof out.appendTo === 'function') {\n out.appendTo = props.appendTo(reference);\n }\n\n if (typeof out.content === 'function') {\n out.content = props.content(reference);\n }\n\n return out;\n}\n\n/**\n * Validates an object of options with the valid default props object\n * @param {Object} options\n * @param {Object} defaults\n */\nfunction validateOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults$$1 = arguments[1];\n\n Object.keys(options).forEach(function (option) {\n if (!hasOwnProperty(defaults$$1, option)) {\n throw new Error('[tippy]: `' + option + '` is not a valid option');\n }\n });\n}\n\n// =============================================================================\n// DEPRECATED\n// All of this code (for the `arrowTransform` option) will be removed in v4\n// =============================================================================\nvar TRANSFORM_NUMBER_RE = {\n translate: /translateX?Y?\\(([^)]+)\\)/,\n scale: /scaleX?Y?\\(([^)]+)\\)/\n\n /**\n * Transforms the x/y axis based on the placement\n */\n};function transformAxisBasedOnPlacement(axis, isVertical) {\n return (isVertical ? axis : {\n X: 'Y',\n Y: 'X'\n }[axis]) || '';\n}\n\n/**\n * Transforms the scale/translate numbers based on the placement\n */\nfunction transformNumbersBasedOnPlacement(type, numbers, isVertical, isReverse) {\n /**\n * Avoid destructuring because a large boilerplate function is generated\n * by Babel\n */\n var a = numbers[0];\n var b = numbers[1];\n\n if (!a && !b) {\n return '';\n }\n\n var transforms = {\n scale: function () {\n if (!b) {\n return '' + a;\n } else {\n return isVertical ? a + ', ' + b : b + ', ' + a;\n }\n }(),\n translate: function () {\n if (!b) {\n return isReverse ? -a + 'px' : a + 'px';\n } else {\n if (isVertical) {\n return isReverse ? a + 'px, ' + -b + 'px' : a + 'px, ' + b + 'px';\n } else {\n return isReverse ? -b + 'px, ' + a + 'px' : b + 'px, ' + a + 'px';\n }\n }\n }()\n };\n\n return transforms[type];\n}\n\n/**\n * Returns the axis for a CSS function (translate or scale)\n */\nfunction getTransformAxis(str, cssFunction) {\n var match = str.match(new RegExp(cssFunction + '([XY])'));\n return match ? match[1] : '';\n}\n\n/**\n * Returns the numbers given to the CSS function\n */\nfunction getTransformNumbers(str, regex) {\n var match = str.match(regex);\n return match ? match[1].split(',').map(function (n) {\n return parseFloat(n, 10);\n }) : [];\n}\n\n/**\n * Computes the arrow's transform so that it is correct for any placement\n */\nfunction computeArrowTransform(arrow, arrowTransform) {\n var placement = getPopperPlacement(closest(arrow, Selectors.POPPER));\n var isVertical = includes(['top', 'bottom'], placement);\n var isReverse = includes(['right', 'bottom'], placement);\n\n var matches$$1 = {\n translate: {\n axis: getTransformAxis(arrowTransform, 'translate'),\n numbers: getTransformNumbers(arrowTransform, TRANSFORM_NUMBER_RE.translate)\n },\n scale: {\n axis: getTransformAxis(arrowTransform, 'scale'),\n numbers: getTransformNumbers(arrowTransform, TRANSFORM_NUMBER_RE.scale)\n }\n };\n\n var computedTransform = arrowTransform.replace(TRANSFORM_NUMBER_RE.translate, 'translate' + transformAxisBasedOnPlacement(matches$$1.translate.axis, isVertical) + '(' + transformNumbersBasedOnPlacement('translate', matches$$1.translate.numbers, isVertical, isReverse) + ')').replace(TRANSFORM_NUMBER_RE.scale, 'scale' + transformAxisBasedOnPlacement(matches$$1.scale.axis, isVertical) + '(' + transformNumbersBasedOnPlacement('scale', matches$$1.scale.numbers, isVertical, isReverse) + ')');\n\n arrow.style[typeof document.body.style.transform !== 'undefined' ? 'transform' : 'webkitTransform'] = computedTransform;\n}\n\nvar idCounter = 1;\n\n/**\n * Creates and returns a Tippy object. We're using a closure pattern instead of\n * a class so that the exposed object API is clean without private members\n * prefixed with `_`.\n * @param {Element} reference\n * @param {Object} collectionProps\n * @return {Object} instance\n */\nfunction createTippy(reference, collectionProps) {\n var props = evaluateProps(reference, collectionProps);\n\n // If the reference shouldn't have multiple tippys, return null early\n if (!props.multiple && reference._tippy) {\n return null;\n }\n\n /* ======================= 🔒 Private members 🔒 ======================= */\n // The popper element's mutation observer\n var popperMutationObserver = null;\n\n // The last trigger event object that caused the tippy to show\n var lastTriggerEvent = {};\n\n // The last mousemove event object created by the document mousemove event\n var lastMouseMoveEvent = null;\n\n // Timeout created by the show delay\n var showTimeoutId = 0;\n\n // Timeout created by the hide delay\n var hideTimeoutId = 0;\n\n // Flag to determine if the tippy is preparing to show due to the show timeout\n var isPreparingToShow = false;\n\n // The current `transitionend` callback reference\n var transitionEndListener = function transitionEndListener() {};\n\n // Array of event listeners currently attached to the reference element\n var listeners = [];\n\n // Flag to determine if the reference was recently programmatically focused\n var referenceJustProgrammaticallyFocused = false;\n\n // Private onMouseMove handler reference, debounced or not\n var debouncedOnMouseMove = props.interactiveDebounce > 0 ? debounce(onMouseMove, props.interactiveDebounce) : onMouseMove;\n\n /* ======================= 🔑 Public members 🔑 ======================= */\n // id used for the `aria-describedby` / `aria-labelledby` attribute\n var id = idCounter++;\n\n // Popper element reference\n var popper = createPopperElement(id, props);\n\n // Prevent a tippy with a delay from hiding if the cursor left then returned\n // before it started hiding\n popper.addEventListener('mouseenter', function (event) {\n if (tip.props.interactive && tip.state.isVisible && lastTriggerEvent.type === 'mouseenter') {\n prepareShow(event);\n }\n });\n popper.addEventListener('mouseleave', function (event) {\n if (tip.props.interactive && lastTriggerEvent.type === 'mouseenter' && tip.props.interactiveDebounce === 0 && isCursorOutsideInteractiveBorder(getPopperPlacement(popper), popper.getBoundingClientRect(), event, tip.props)) {\n prepareHide();\n }\n });\n\n // Popper element children: { arrow, backdrop, content, tooltip }\n var popperChildren = getChildren(popper);\n\n // The state of the tippy\n var state = {\n // If the tippy is currently enabled\n isEnabled: true,\n // show() invoked, not currently transitioning out\n isVisible: false,\n // If the tippy has been destroyed\n isDestroyed: false,\n // If the tippy is on the DOM (transitioning out or in)\n isMounted: false,\n // show() transition finished\n isShown: false\n\n // Popper.js instance for the tippy is lazily created\n };var popperInstance = null;\n\n // 🌟 tippy instance\n var tip = {\n // properties\n id: id,\n reference: reference,\n popper: popper,\n popperChildren: popperChildren,\n popperInstance: popperInstance,\n props: props,\n state: state,\n // methods\n clearDelayTimeouts: clearDelayTimeouts,\n set: set$$1,\n setContent: setContent$$1,\n show: show,\n hide: hide,\n enable: enable,\n disable: disable,\n destroy: destroy\n };\n\n addTriggersToReference();\n\n reference.addEventListener('click', onReferenceClick);\n\n if (!props.lazy) {\n tip.popperInstance = createPopperInstance();\n tip.popperInstance.disableEventListeners();\n }\n\n if (props.showOnInit) {\n prepareShow();\n }\n\n // Ensure the reference element can receive focus (and is not a delegate)\n if (props.a11y && !props.target && !canReceiveFocus(reference)) {\n reference.setAttribute('tabindex', '0');\n }\n\n // Install shortcuts\n reference._tippy = tip;\n popper._tippy = tip;\n\n return tip;\n\n /* ======================= 🔒 Private methods 🔒 ======================= */\n /**\n * If the reference was clicked, it also receives focus\n */\n function onReferenceClick() {\n defer(function () {\n referenceJustProgrammaticallyFocused = false;\n });\n }\n\n /**\n * Ensure the popper's position stays correct if its dimensions change. Use\n * update() over .scheduleUpdate() so there is no 1 frame flash due to\n * async update\n */\n function addMutationObserver() {\n popperMutationObserver = new MutationObserver(function () {\n tip.popperInstance.update();\n });\n popperMutationObserver.observe(popper, {\n childList: true,\n subtree: true,\n characterData: true\n });\n }\n\n /**\n * Positions the virtual reference near the mouse cursor\n */\n function positionVirtualReferenceNearCursor(event) {\n var _lastMouseMoveEvent = lastMouseMoveEvent = event,\n clientX = _lastMouseMoveEvent.clientX,\n clientY = _lastMouseMoveEvent.clientY;\n\n if (!tip.popperInstance) {\n return;\n }\n\n // Ensure virtual reference is padded by 5px to prevent tooltip from\n // overflowing. Maybe Popper.js issue?\n var placement = getPopperPlacement(tip.popper);\n var padding = tip.popperChildren.arrow ? 20 : 5;\n var isVerticalPlacement = includes(['top', 'bottom'], placement);\n var isHorizontalPlacement = includes(['left', 'right'], placement);\n\n // Top / left boundary\n var x = isVerticalPlacement ? Math.max(padding, clientX) : clientX;\n var y = isHorizontalPlacement ? Math.max(padding, clientY) : clientY;\n\n // Bottom / right boundary\n if (isVerticalPlacement && x > padding) {\n x = Math.min(clientX, window.innerWidth - padding);\n }\n if (isHorizontalPlacement && y > padding) {\n y = Math.min(clientY, window.innerHeight - padding);\n }\n\n var rect = tip.reference.getBoundingClientRect();\n var followCursor = tip.props.followCursor;\n\n var isHorizontal = followCursor === 'horizontal';\n var isVertical = followCursor === 'vertical';\n\n tip.popperInstance.reference = {\n getBoundingClientRect: function getBoundingClientRect() {\n return {\n width: 0,\n height: 0,\n top: isHorizontal ? rect.top : y,\n bottom: isHorizontal ? rect.bottom : y,\n left: isVertical ? rect.left : x,\n right: isVertical ? rect.right : x\n };\n },\n clientWidth: 0,\n clientHeight: 0\n };\n\n tip.popperInstance.scheduleUpdate();\n\n if (followCursor === 'initial' && tip.state.isVisible) {\n removeFollowCursorListener();\n }\n }\n\n /**\n * Creates the tippy instance for a delegate when it's been triggered\n */\n function createDelegateChildTippy(event) {\n var targetEl = closest(event.target, tip.props.target);\n if (targetEl && !targetEl._tippy) {\n createTippy(targetEl, _extends({}, tip.props, {\n target: '',\n showOnInit: true\n }));\n prepareShow(event);\n }\n }\n\n /**\n * Setup before show() is invoked (delays, etc.)\n */\n function prepareShow(event) {\n clearDelayTimeouts();\n\n if (tip.state.isVisible) {\n return;\n }\n\n // Is a delegate, create an instance for the child target\n if (tip.props.target) {\n return createDelegateChildTippy(event);\n }\n\n isPreparingToShow = true;\n\n if (tip.props.wait) {\n return tip.props.wait(tip, event);\n }\n\n // If the tooltip has a delay, we need to be listening to the mousemove as\n // soon as the trigger event is fired, so that it's in the correct position\n // upon mount.\n // Edge case: if the tooltip is still mounted, but then prepareShow() is\n // called, it causes a jump.\n if (hasFollowCursorBehavior() && !tip.state.isMounted) {\n document.addEventListener('mousemove', positionVirtualReferenceNearCursor);\n }\n\n var delay = getValue(tip.props.delay, 0, Defaults.delay);\n\n if (delay) {\n showTimeoutId = setTimeout(function () {\n show();\n }, delay);\n } else {\n show();\n }\n }\n\n /**\n * Setup before hide() is invoked (delays, etc.)\n */\n function prepareHide() {\n clearDelayTimeouts();\n\n if (!tip.state.isVisible) {\n return removeFollowCursorListener();\n }\n\n isPreparingToShow = false;\n\n var delay = getValue(tip.props.delay, 1, Defaults.delay);\n\n if (delay) {\n hideTimeoutId = setTimeout(function () {\n if (tip.state.isVisible) {\n hide();\n }\n }, delay);\n } else {\n hide();\n }\n }\n\n /**\n * Removes the follow cursor listener\n */\n function removeFollowCursorListener() {\n document.removeEventListener('mousemove', positionVirtualReferenceNearCursor);\n lastMouseMoveEvent = null;\n }\n\n /**\n * Cleans up old listeners\n */\n function cleanupOldMouseListeners() {\n document.body.removeEventListener('mouseleave', prepareHide);\n document.removeEventListener('mousemove', debouncedOnMouseMove);\n }\n\n /**\n * Event listener invoked upon trigger\n */\n function onTrigger(event) {\n if (!tip.state.isEnabled || isEventListenerStopped(event)) {\n return;\n }\n\n if (!tip.state.isVisible) {\n lastTriggerEvent = event;\n }\n\n // Toggle show/hide when clicking click-triggered tooltips\n if (event.type === 'click' && tip.props.hideOnClick !== false && tip.state.isVisible) {\n prepareHide();\n } else {\n prepareShow(event);\n }\n }\n\n /**\n * Event listener used for interactive tooltips to detect when they should\n * hide\n */\n function onMouseMove(event) {\n var referenceTheCursorIsOver = closestCallback(event.target, function (el) {\n return el._tippy;\n });\n\n var isCursorOverPopper = closest(event.target, Selectors.POPPER) === tip.popper;\n var isCursorOverReference = referenceTheCursorIsOver === tip.reference;\n\n if (isCursorOverPopper || isCursorOverReference) {\n return;\n }\n\n if (isCursorOutsideInteractiveBorder(getPopperPlacement(tip.popper), tip.popper.getBoundingClientRect(), event, tip.props)) {\n cleanupOldMouseListeners();\n prepareHide();\n }\n }\n\n /**\n * Event listener invoked upon mouseleave\n */\n function onMouseLeave(event) {\n if (isEventListenerStopped(event)) {\n return;\n }\n\n if (tip.props.interactive) {\n document.body.addEventListener('mouseleave', prepareHide);\n document.addEventListener('mousemove', debouncedOnMouseMove);\n return;\n }\n\n prepareHide();\n }\n\n /**\n * Event listener invoked upon blur\n */\n function onBlur(event) {\n if (event.target !== tip.reference) {\n return;\n }\n\n if (tip.props.interactive) {\n if (!event.relatedTarget) {\n return;\n }\n if (closest(event.relatedTarget, Selectors.POPPER)) {\n return;\n }\n }\n\n prepareHide();\n }\n\n /**\n * Event listener invoked when a child target is triggered\n */\n function onDelegateShow(event) {\n if (closest(event.target, tip.props.target)) {\n prepareShow(event);\n }\n }\n\n /**\n * Event listener invoked when a child target should hide\n */\n function onDelegateHide(event) {\n if (closest(event.target, tip.props.target)) {\n prepareHide();\n }\n }\n\n /**\n * Determines if an event listener should stop further execution due to the\n * `touchHold` option\n */\n function isEventListenerStopped(event) {\n var isTouchEvent = includes(event.type, 'touch');\n var caseA = supportsTouch && isUsingTouch && tip.props.touchHold && !isTouchEvent;\n var caseB = isUsingTouch && !tip.props.touchHold && isTouchEvent;\n return caseA || caseB;\n }\n\n /**\n * Creates the popper instance for the tip\n */\n function createPopperInstance() {\n var popperOptions = tip.props.popperOptions;\n var _tip$popperChildren = tip.popperChildren,\n tooltip = _tip$popperChildren.tooltip,\n arrow = _tip$popperChildren.arrow;\n\n\n return new Popper(tip.reference, tip.popper, _extends({\n placement: tip.props.placement\n }, popperOptions, {\n modifiers: _extends({}, popperOptions ? popperOptions.modifiers : {}, {\n preventOverflow: _extends({\n boundariesElement: tip.props.boundary\n }, getModifier(popperOptions, 'preventOverflow')),\n arrow: _extends({\n element: arrow,\n enabled: !!arrow\n }, getModifier(popperOptions, 'arrow')),\n flip: _extends({\n enabled: tip.props.flip,\n padding: tip.props.distance + 5 /* 5px from viewport boundary */\n , behavior: tip.props.flipBehavior\n }, getModifier(popperOptions, 'flip')),\n offset: _extends({\n offset: tip.props.offset\n }, getModifier(popperOptions, 'offset'))\n }),\n onCreate: function onCreate() {\n tooltip.style[getPopperPlacement(tip.popper)] = getOffsetDistanceInPx(tip.props.distance, Defaults.distance);\n\n if (arrow && tip.props.arrowTransform) {\n computeArrowTransform(arrow, tip.props.arrowTransform);\n }\n },\n onUpdate: function onUpdate() {\n var styles = tooltip.style;\n styles.top = '';\n styles.bottom = '';\n styles.left = '';\n styles.right = '';\n styles[getPopperPlacement(tip.popper)] = getOffsetDistanceInPx(tip.props.distance, Defaults.distance);\n\n if (arrow && tip.props.arrowTransform) {\n computeArrowTransform(arrow, tip.props.arrowTransform);\n }\n }\n }));\n }\n\n /**\n * Mounts the tooltip to the DOM, callback to show tooltip is run **after**\n * popper's position has updated\n */\n function mount(callback) {\n if (!tip.popperInstance) {\n tip.popperInstance = createPopperInstance();\n addMutationObserver();\n if (!tip.props.livePlacement || hasFollowCursorBehavior()) {\n tip.popperInstance.disableEventListeners();\n }\n } else {\n if (!hasFollowCursorBehavior()) {\n tip.popperInstance.scheduleUpdate();\n if (tip.props.livePlacement) {\n tip.popperInstance.enableEventListeners();\n }\n }\n }\n\n // If the instance previously had followCursor behavior, it will be\n // positioned incorrectly if triggered by `focus` afterwards.\n // Update the reference back to the real DOM element\n tip.popperInstance.reference = tip.reference;\n var arrow = tip.popperChildren.arrow;\n\n\n if (hasFollowCursorBehavior()) {\n if (arrow) {\n arrow.style.margin = '0';\n }\n var delay = getValue(tip.props.delay, 0, Defaults.delay);\n if (lastTriggerEvent.type) {\n positionVirtualReferenceNearCursor(delay && lastMouseMoveEvent ? lastMouseMoveEvent : lastTriggerEvent);\n }\n } else if (arrow) {\n arrow.style.margin = '';\n }\n\n afterPopperPositionUpdates(tip.popperInstance, callback);\n\n if (!tip.props.appendTo.contains(tip.popper)) {\n tip.props.appendTo.appendChild(tip.popper);\n tip.props.onMount(tip);\n tip.state.isMounted = true;\n }\n }\n\n /**\n * Determines if the instance is in `followCursor` mode\n */\n function hasFollowCursorBehavior() {\n return tip.props.followCursor && !isUsingTouch && lastTriggerEvent.type !== 'focus';\n }\n\n /**\n * Updates the tooltip's position on each animation frame + timeout\n */\n function makeSticky() {\n applyTransitionDuration([tip.popper], isIE ? 0 : tip.props.updateDuration);\n\n var updatePosition = function updatePosition() {\n if (tip.popperInstance) {\n tip.popperInstance.scheduleUpdate();\n }\n\n if (tip.state.isMounted) {\n requestAnimationFrame(updatePosition);\n } else {\n applyTransitionDuration([tip.popper], 0);\n }\n };\n\n updatePosition();\n }\n\n /**\n * Invokes a callback once the tooltip has fully transitioned out\n */\n function onTransitionedOut(duration, callback) {\n onTransitionEnd(duration, function () {\n if (!tip.state.isVisible && tip.props.appendTo.contains(tip.popper)) {\n callback();\n }\n });\n }\n\n /**\n * Invokes a callback once the tooltip has fully transitioned in\n */\n function onTransitionedIn(duration, callback) {\n onTransitionEnd(duration, callback);\n }\n\n /**\n * Invokes a callback once the tooltip's CSS transition ends\n */\n function onTransitionEnd(duration, callback) {\n // Make callback synchronous if duration is 0\n if (duration === 0) {\n return callback();\n }\n\n var tooltip = tip.popperChildren.tooltip;\n\n\n var listener = function listener(e) {\n if (e.target === tooltip) {\n toggleTransitionEndListener(tooltip, 'remove', listener);\n callback();\n }\n };\n\n toggleTransitionEndListener(tooltip, 'remove', transitionEndListener);\n toggleTransitionEndListener(tooltip, 'add', listener);\n\n transitionEndListener = listener;\n }\n\n /**\n * Adds an event listener to the reference and stores it in `listeners`\n */\n function on(eventType, handler) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n tip.reference.addEventListener(eventType, handler, options);\n listeners.push({ eventType: eventType, handler: handler, options: options });\n }\n\n /**\n * Adds event listeners to the reference based on the `trigger` prop\n */\n function addTriggersToReference() {\n if (tip.props.touchHold && !tip.props.target) {\n on('touchstart', onTrigger, PASSIVE);\n on('touchend', onMouseLeave, PASSIVE);\n }\n\n tip.props.trigger.trim().split(' ').forEach(function (eventType) {\n if (eventType === 'manual') {\n return;\n }\n\n if (!tip.props.target) {\n on(eventType, onTrigger);\n switch (eventType) {\n case 'mouseenter':\n on('mouseleave', onMouseLeave);\n break;\n case 'focus':\n on(isIE ? 'focusout' : 'blur', onBlur);\n break;\n }\n } else {\n switch (eventType) {\n case 'mouseenter':\n on('mouseover', onDelegateShow);\n on('mouseout', onDelegateHide);\n break;\n case 'focus':\n on('focusin', onDelegateShow);\n on('focusout', onDelegateHide);\n break;\n case 'click':\n on(eventType, onDelegateShow);\n break;\n }\n }\n });\n }\n\n /**\n * Removes event listeners from the reference\n */\n function removeTriggersFromReference() {\n listeners.forEach(function (_ref) {\n var eventType = _ref.eventType,\n handler = _ref.handler,\n options = _ref.options;\n\n tip.reference.removeEventListener(eventType, handler, options);\n });\n listeners = [];\n }\n\n /* ======================= 🔑 Public methods 🔑 ======================= */\n /**\n * Enables the instance to allow it to show or hide\n */\n function enable() {\n tip.state.isEnabled = true;\n }\n\n /**\n * Disables the instance to disallow it to show or hide\n */\n function disable() {\n tip.state.isEnabled = false;\n }\n\n /**\n * Clears pending timeouts related to the `delay` prop if any\n */\n function clearDelayTimeouts() {\n clearTimeout(showTimeoutId);\n clearTimeout(hideTimeoutId);\n }\n\n /**\n * Sets new props for the instance and redraws the tooltip\n */\n function set$$1() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n validateOptions(options, Defaults);\n\n var prevProps = tip.props;\n var nextProps = evaluateProps(tip.reference, _extends({}, tip.props, options, {\n performance: true\n }));\n nextProps.performance = hasOwnProperty(options, 'performance') ? options.performance : prevProps.performance;\n tip.props = nextProps;\n\n if (hasOwnProperty(options, 'trigger') || hasOwnProperty(options, 'touchHold')) {\n removeTriggersFromReference();\n addTriggersToReference();\n }\n\n if (hasOwnProperty(options, 'interactiveDebounce')) {\n cleanupOldMouseListeners();\n debouncedOnMouseMove = debounce(onMouseMove, options.interactiveDebounce);\n }\n\n updatePopperElement(tip.popper, prevProps, nextProps);\n tip.popperChildren = getChildren(tip.popper);\n\n if (tip.popperInstance && POPPER_INSTANCE_RELATED_PROPS.some(function (prop) {\n return hasOwnProperty(options, prop);\n })) {\n tip.popperInstance.destroy();\n tip.popperInstance = createPopperInstance();\n if (!tip.state.isVisible) {\n tip.popperInstance.disableEventListeners();\n }\n if (tip.props.followCursor && lastMouseMoveEvent) {\n positionVirtualReferenceNearCursor(lastMouseMoveEvent);\n }\n }\n }\n\n /**\n * Shortcut for .set({ content: newContent })\n */\n function setContent$$1(content) {\n set$$1({ content: content });\n }\n\n /**\n * Shows the tooltip\n */\n function show() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(tip.props.duration, 0, Defaults.duration[0]);\n\n if (tip.state.isDestroyed || !tip.state.isEnabled || isUsingTouch && !tip.props.touch) {\n return;\n }\n\n // Destroy tooltip if the reference element is no longer on the DOM\n if (!tip.reference.isVirtual && !document.documentElement.contains(tip.reference)) {\n return destroy();\n }\n\n // Do not show tooltip if the reference element has a `disabled` attribute\n if (tip.reference.hasAttribute('disabled')) {\n return;\n }\n\n // If the reference was just programmatically focused for accessibility\n // reasons\n if (referenceJustProgrammaticallyFocused) {\n referenceJustProgrammaticallyFocused = false;\n return;\n }\n\n if (tip.props.onShow(tip) === false) {\n return;\n }\n\n tip.popper.style.visibility = 'visible';\n tip.state.isVisible = true;\n\n // Prevent a transition if the popper is at the opposite placement\n applyTransitionDuration([tip.popper, tip.popperChildren.tooltip, tip.popperChildren.backdrop], 0);\n\n mount(function () {\n if (!tip.state.isVisible) {\n return;\n }\n\n // Arrow will sometimes not be positioned correctly. Force another update\n if (!hasFollowCursorBehavior()) {\n tip.popperInstance.update();\n }\n\n applyTransitionDuration([tip.popperChildren.tooltip, tip.popperChildren.backdrop, tip.popperChildren.content], duration);\n if (tip.popperChildren.backdrop) {\n tip.popperChildren.content.style.transitionDelay = Math.round(duration / 6) + 'ms';\n }\n\n if (tip.props.interactive) {\n tip.reference.classList.add('tippy-active');\n }\n\n if (tip.props.sticky) {\n makeSticky();\n }\n\n setVisibilityState([tip.popperChildren.tooltip, tip.popperChildren.backdrop, tip.popperChildren.content], 'visible');\n\n onTransitionedIn(duration, function () {\n if (tip.props.updateDuration === 0) {\n tip.popperChildren.tooltip.classList.add('tippy-notransition');\n }\n\n if (tip.props.autoFocus && tip.props.interactive && includes(['focus', 'click'], lastTriggerEvent.type)) {\n focus(tip.popper);\n }\n\n if (tip.props.aria) {\n tip.reference.setAttribute('aria-' + tip.props.aria, tip.popper.id);\n }\n\n tip.props.onShown(tip);\n tip.state.isShown = true;\n });\n });\n }\n\n /**\n * Hides the tooltip\n */\n function hide() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getValue(tip.props.duration, 1, Defaults.duration[1]);\n\n if (tip.state.isDestroyed || !tip.state.isEnabled) {\n return;\n }\n\n if (tip.props.onHide(tip) === false) {\n return;\n }\n\n if (tip.props.updateDuration === 0) {\n tip.popperChildren.tooltip.classList.remove('tippy-notransition');\n }\n\n if (tip.props.interactive) {\n tip.reference.classList.remove('tippy-active');\n }\n\n tip.popper.style.visibility = 'hidden';\n tip.state.isVisible = false;\n tip.state.isShown = false;\n\n applyTransitionDuration([tip.popperChildren.tooltip, tip.popperChildren.backdrop, tip.popperChildren.content], duration);\n\n setVisibilityState([tip.popperChildren.tooltip, tip.popperChildren.backdrop, tip.popperChildren.content], 'hidden');\n\n if (tip.props.autoFocus && tip.props.interactive && !referenceJustProgrammaticallyFocused && includes(['focus', 'click'], lastTriggerEvent.type)) {\n if (lastTriggerEvent.type === 'focus') {\n referenceJustProgrammaticallyFocused = true;\n }\n focus(tip.reference);\n }\n\n onTransitionedOut(duration, function () {\n if (!isPreparingToShow) {\n removeFollowCursorListener();\n }\n\n if (tip.props.aria) {\n tip.reference.removeAttribute('aria-' + tip.props.aria);\n }\n\n tip.popperInstance.disableEventListeners();\n\n tip.props.appendTo.removeChild(tip.popper);\n tip.state.isMounted = false;\n\n tip.props.onHidden(tip);\n });\n }\n\n /**\n * Destroys the tooltip\n */\n function destroy(destroyTargetInstances) {\n if (tip.state.isDestroyed) {\n return;\n }\n\n // If the popper is currently mounted to the DOM, we want to ensure it gets\n // hidden and unmounted instantly upon destruction\n if (tip.state.isMounted) {\n hide(0);\n }\n\n removeTriggersFromReference();\n\n tip.reference.removeEventListener('click', onReferenceClick);\n\n delete tip.reference._tippy;\n\n if (tip.props.target && destroyTargetInstances) {\n arrayFrom(tip.reference.querySelectorAll(tip.props.target)).forEach(function (child) {\n return child._tippy && child._tippy.destroy();\n });\n }\n\n if (tip.popperInstance) {\n tip.popperInstance.destroy();\n }\n\n if (popperMutationObserver) {\n popperMutationObserver.disconnect();\n }\n\n tip.state.isDestroyed = true;\n }\n}\n\nvar globalEventListenersBound = false;\n\n/**\n * Exported module\n * @param {String|Element|Element[]|NodeList|Object} targets\n * @param {Object} options\n * @param {Boolean} one\n * @return {Object}\n */\nfunction tippy$1(targets, options, one) {\n validateOptions(options, Defaults);\n\n if (!globalEventListenersBound) {\n bindGlobalEventListeners();\n globalEventListenersBound = true;\n }\n\n var props = _extends({}, Defaults, options);\n\n /**\n * If they are specifying a virtual positioning reference, we need to polyfill\n * some native DOM props\n */\n if (isPlainObject(targets)) {\n polyfillElementPrototypeProperties(targets);\n }\n\n var references = getArrayOfElements(targets);\n var firstReference = references[0];\n\n var instances = (one && firstReference ? [firstReference] : references).reduce(function (acc, reference) {\n var tip = reference && createTippy(reference, props);\n if (tip) {\n acc.push(tip);\n }\n return acc;\n }, []);\n\n var collection = {\n targets: targets,\n props: props,\n instances: instances,\n destroyAll: function destroyAll() {\n collection.instances.forEach(function (instance) {\n instance.destroy();\n });\n collection.instances = [];\n }\n };\n\n return collection;\n}\n\n/**\n * Static props\n */\ntippy$1.version = version;\ntippy$1.defaults = Defaults;\n\n/**\n * Static methods\n */\ntippy$1.one = function (targets, options) {\n return tippy$1(targets, options, true).instances[0];\n};\ntippy$1.setDefaults = function (partialDefaults) {\n Object.keys(partialDefaults).forEach(function (key) {\n Defaults[key] = partialDefaults[key];\n });\n};\ntippy$1.disableAnimations = function () {\n tippy$1.setDefaults({\n duration: 0,\n updateDuration: 0,\n animateFill: false\n });\n};\ntippy$1.hideAllPoppers = hideAllPoppers;\n// noop: deprecated static method as capture phase is now default\ntippy$1.useCapture = function () {};\n\n/**\n * Auto-init tooltips for elements with a `data-tippy=\"...\"` attribute\n */\nvar autoInit = function autoInit() {\n arrayFrom(document.querySelectorAll('[data-tippy]')).forEach(function (el) {\n var content = el.getAttribute('data-tippy');\n if (content) {\n tippy$1(el, { content: content });\n }\n });\n};\nif (isBrowser) {\n setTimeout(autoInit);\n}\n\nexport default tippy$1;\n//# sourceMappingURL=tippy.standalone.js.map\n","// Copyright (C) 2011 Google Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * @fileoverview Install a leaky WeakMap emulation on platforms that\n * don't provide a built-in one.\n *\n *

    Assumes that an ES5 platform where, if {@code WeakMap} is\n * already present, then it conforms to the anticipated ES6\n * specification. To run this file on an ES5 or almost ES5\n * implementation where the {@code WeakMap} specification does not\n * quite conform, run repairES5.js first.\n *\n *

    Even though WeakMapModule is not global, the linter thinks it\n * is, which is why it is in the overrides list below.\n *\n *

    NOTE: Before using this WeakMap emulation in a non-SES\n * environment, see the note below about hiddenRecord.\n *\n * @author Mark S. Miller\n * @requires crypto, ArrayBuffer, Uint8Array, navigator, console\n * @overrides WeakMap, ses, Proxy\n * @overrides WeakMapModule\n */\n\n/**\n * This {@code WeakMap} emulation is observably equivalent to the\n * ES-Harmony WeakMap, but with leakier garbage collection properties.\n *\n *

    As with true WeakMaps, in this emulation, a key does not\n * retain maps indexed by that key and (crucially) a map does not\n * retain the keys it indexes. A map by itself also does not retain\n * the values associated with that map.\n *\n *

    However, the values associated with a key in some map are\n * retained so long as that key is retained and those associations are\n * not overridden. For example, when used to support membranes, all\n * values exported from a given membrane will live for the lifetime\n * they would have had in the absence of an interposed membrane. Even\n * when the membrane is revoked, all objects that would have been\n * reachable in the absence of revocation will still be reachable, as\n * far as the GC can tell, even though they will no longer be relevant\n * to ongoing computation.\n *\n *

    The API implemented here is approximately the API as implemented\n * in FF6.0a1 and agreed to by MarkM, Andreas Gal, and Dave Herman,\n * rather than the offially approved proposal page. TODO(erights):\n * upgrade the ecmascript WeakMap proposal page to explain this API\n * change and present to EcmaScript committee for their approval.\n *\n *

    The first difference between the emulation here and that in\n * FF6.0a1 is the presence of non enumerable {@code get___, has___,\n * set___, and delete___} methods on WeakMap instances to represent\n * what would be the hidden internal properties of a primitive\n * implementation. Whereas the FF6.0a1 WeakMap.prototype methods\n * require their {@code this} to be a genuine WeakMap instance (i.e.,\n * an object of {@code [[Class]]} \"WeakMap}), since there is nothing\n * unforgeable about the pseudo-internal method names used here,\n * nothing prevents these emulated prototype methods from being\n * applied to non-WeakMaps with pseudo-internal methods of the same\n * names.\n *\n *

    Another difference is that our emulated {@code\n * WeakMap.prototype} is not itself a WeakMap. A problem with the\n * current FF6.0a1 API is that WeakMap.prototype is itself a WeakMap\n * providing ambient mutability and an ambient communications\n * channel. Thus, if a WeakMap is already present and has this\n * problem, repairES5.js wraps it in a safe wrappper in order to\n * prevent access to this channel. (See\n * PATCH_MUTABLE_FROZEN_WEAKMAP_PROTO in repairES5.js).\n */\n\n/**\n * If this is a full secureable ES5 platform and the ES-Harmony {@code WeakMap} is\n * absent, install an approximate emulation.\n *\n *

    If WeakMap is present but cannot store some objects, use our approximate\n * emulation as a wrapper.\n *\n *

    If this is almost a secureable ES5 platform, then WeakMap.js\n * should be run after repairES5.js.\n *\n *

    See {@code WeakMap} for documentation of the garbage collection\n * properties of this WeakMap emulation.\n */\n(function WeakMapModule() {\n \"use strict\";\n\n if (typeof ses !== 'undefined' && ses.ok && !ses.ok()) {\n // already too broken, so give up\n return;\n }\n\n /**\n * In some cases (current Firefox), we must make a choice betweeen a\n * WeakMap which is capable of using all varieties of host objects as\n * keys and one which is capable of safely using proxies as keys. See\n * comments below about HostWeakMap and DoubleWeakMap for details.\n *\n * This function (which is a global, not exposed to guests) marks a\n * WeakMap as permitted to do what is necessary to index all host\n * objects, at the cost of making it unsafe for proxies.\n *\n * Do not apply this function to anything which is not a genuine\n * fresh WeakMap.\n */\n function weakMapPermitHostObjects(map) {\n // identity of function used as a secret -- good enough and cheap\n if (map.permitHostObjects___) {\n map.permitHostObjects___(weakMapPermitHostObjects);\n }\n }\n if (typeof ses !== 'undefined') {\n ses.weakMapPermitHostObjects = weakMapPermitHostObjects;\n }\n\n // IE 11 has no Proxy but has a broken WeakMap such that we need to patch\n // it using DoubleWeakMap; this flag tells DoubleWeakMap so.\n var doubleWeakMapCheckSilentFailure = false;\n\n // Check if there is already a good-enough WeakMap implementation, and if so\n // exit without replacing it.\n if (typeof WeakMap === 'function') {\n var HostWeakMap = WeakMap;\n // There is a WeakMap -- is it good enough?\n if (typeof navigator !== 'undefined' &&\n /Firefox/.test(navigator.userAgent)) {\n // We're now *assuming not*, because as of this writing (2013-05-06)\n // Firefox's WeakMaps have a miscellany of objects they won't accept, and\n // we don't want to make an exhaustive list, and testing for just one\n // will be a problem if that one is fixed alone (as they did for Event).\n\n // If there is a platform that we *can* reliably test on, here's how to\n // do it:\n // var problematic = ... ;\n // var testHostMap = new HostWeakMap();\n // try {\n // testHostMap.set(problematic, 1); // Firefox 20 will throw here\n // if (testHostMap.get(problematic) === 1) {\n // return;\n // }\n // } catch (e) {}\n\n } else {\n // IE 11 bug: WeakMaps silently fail to store frozen objects.\n var testMap = new HostWeakMap();\n var testObject = Object.freeze({});\n testMap.set(testObject, 1);\n if (testMap.get(testObject) !== 1) {\n doubleWeakMapCheckSilentFailure = true;\n // Fall through to installing our WeakMap.\n } else {\n module.exports = WeakMap;\n return;\n }\n }\n }\n\n var hop = Object.prototype.hasOwnProperty;\n var gopn = Object.getOwnPropertyNames;\n var defProp = Object.defineProperty;\n var isExtensible = Object.isExtensible;\n\n /**\n * Security depends on HIDDEN_NAME being both unguessable and\n * undiscoverable by untrusted code.\n *\n *

    Given the known weaknesses of Math.random() on existing\n * browsers, it does not generate unguessability we can be confident\n * of.\n *\n *

    It is the monkey patching logic in this file that is intended\n * to ensure undiscoverability. The basic idea is that there are\n * three fundamental means of discovering properties of an object:\n * The for/in loop, Object.keys(), and Object.getOwnPropertyNames(),\n * as well as some proposed ES6 extensions that appear on our\n * whitelist. The first two only discover enumerable properties, and\n * we only use HIDDEN_NAME to name a non-enumerable property, so the\n * only remaining threat should be getOwnPropertyNames and some\n * proposed ES6 extensions that appear on our whitelist. We monkey\n * patch them to remove HIDDEN_NAME from the list of properties they\n * returns.\n *\n *

    TODO(erights): On a platform with built-in Proxies, proxies\n * could be used to trap and thereby discover the HIDDEN_NAME, so we\n * need to monkey patch Proxy.create, Proxy.createFunction, etc, in\n * order to wrap the provided handler with the real handler which\n * filters out all traps using HIDDEN_NAME.\n *\n *

    TODO(erights): Revisit Mike Stay's suggestion that we use an\n * encapsulated function at a not-necessarily-secret name, which\n * uses the Stiegler shared-state rights amplification pattern to\n * reveal the associated value only to the WeakMap in which this key\n * is associated with that value. Since only the key retains the\n * function, the function can also remember the key without causing\n * leakage of the key, so this doesn't violate our general gc\n * goals. In addition, because the name need not be a guarded\n * secret, we could efficiently handle cross-frame frozen keys.\n */\n var HIDDEN_NAME_PREFIX = 'weakmap:';\n var HIDDEN_NAME = HIDDEN_NAME_PREFIX + 'ident:' + Math.random() + '___';\n\n if (typeof crypto !== 'undefined' &&\n typeof crypto.getRandomValues === 'function' &&\n typeof ArrayBuffer === 'function' &&\n typeof Uint8Array === 'function') {\n var ab = new ArrayBuffer(25);\n var u8s = new Uint8Array(ab);\n crypto.getRandomValues(u8s);\n HIDDEN_NAME = HIDDEN_NAME_PREFIX + 'rand:' +\n Array.prototype.map.call(u8s, function(u8) {\n return (u8 % 36).toString(36);\n }).join('') + '___';\n }\n\n function isNotHiddenName(name) {\n return !(\n name.substr(0, HIDDEN_NAME_PREFIX.length) == HIDDEN_NAME_PREFIX &&\n name.substr(name.length - 3) === '___');\n }\n\n /**\n * Monkey patch getOwnPropertyNames to avoid revealing the\n * HIDDEN_NAME.\n *\n *

    The ES5.1 spec requires each name to appear only once, but as\n * of this writing, this requirement is controversial for ES6, so we\n * made this code robust against this case. If the resulting extra\n * search turns out to be expensive, we can probably relax this once\n * ES6 is adequately supported on all major browsers, iff no browser\n * versions we support at that time have relaxed this constraint\n * without providing built-in ES6 WeakMaps.\n */\n defProp(Object, 'getOwnPropertyNames', {\n value: function fakeGetOwnPropertyNames(obj) {\n return gopn(obj).filter(isNotHiddenName);\n }\n });\n\n /**\n * getPropertyNames is not in ES5 but it is proposed for ES6 and\n * does appear in our whitelist, so we need to clean it too.\n */\n if ('getPropertyNames' in Object) {\n var originalGetPropertyNames = Object.getPropertyNames;\n defProp(Object, 'getPropertyNames', {\n value: function fakeGetPropertyNames(obj) {\n return originalGetPropertyNames(obj).filter(isNotHiddenName);\n }\n });\n }\n\n /**\n *

    To treat objects as identity-keys with reasonable efficiency\n * on ES5 by itself (i.e., without any object-keyed collections), we\n * need to add a hidden property to such key objects when we\n * can. This raises several issues:\n *

      \n *
    • Arranging to add this property to objects before we lose the\n * chance, and\n *
    • Hiding the existence of this new property from most\n * JavaScript code.\n *
    • Preventing certification theft, where one object is\n * created falsely claiming to be the key of an association\n * actually keyed by another object.\n *
    • Preventing value theft, where untrusted code with\n * access to a key object but not a weak map nevertheless\n * obtains access to the value associated with that key in that\n * weak map.\n *
    \n * We do so by\n *
      \n *
    • Making the name of the hidden property unguessable, so \"[]\"\n * indexing, which we cannot intercept, cannot be used to access\n * a property without knowing the name.\n *
    • Making the hidden property non-enumerable, so we need not\n * worry about for-in loops or {@code Object.keys},\n *
    • monkey patching those reflective methods that would\n * prevent extensions, to add this hidden property first,\n *
    • monkey patching those methods that would reveal this\n * hidden property.\n *
    \n * Unfortunately, because of same-origin iframes, we cannot reliably\n * add this hidden property before an object becomes\n * non-extensible. Instead, if we encounter a non-extensible object\n * without a hidden record that we can detect (whether or not it has\n * a hidden record stored under a name secret to us), then we just\n * use the key object itself to represent its identity in a brute\n * force leaky map stored in the weak map, losing all the advantages\n * of weakness for these.\n */\n function getHiddenRecord(key) {\n if (key !== Object(key)) {\n throw new TypeError('Not an object: ' + key);\n }\n var hiddenRecord = key[HIDDEN_NAME];\n if (hiddenRecord && hiddenRecord.key === key) { return hiddenRecord; }\n if (!isExtensible(key)) {\n // Weak map must brute force, as explained in doc-comment above.\n return void 0;\n }\n\n // The hiddenRecord and the key point directly at each other, via\n // the \"key\" and HIDDEN_NAME properties respectively. The key\n // field is for quickly verifying that this hidden record is an\n // own property, not a hidden record from up the prototype chain.\n //\n // NOTE: Because this WeakMap emulation is meant only for systems like\n // SES where Object.prototype is frozen without any numeric\n // properties, it is ok to use an object literal for the hiddenRecord.\n // This has two advantages:\n // * It is much faster in a performance critical place\n // * It avoids relying on Object.create(null), which had been\n // problematic on Chrome 28.0.1480.0. See\n // https://code.google.com/p/google-caja/issues/detail?id=1687\n hiddenRecord = { key: key };\n\n // When using this WeakMap emulation on platforms where\n // Object.prototype might not be frozen and Object.create(null) is\n // reliable, use the following two commented out lines instead.\n // hiddenRecord = Object.create(null);\n // hiddenRecord.key = key;\n\n // Please contact us if you need this to work on platforms where\n // Object.prototype might not be frozen and\n // Object.create(null) might not be reliable.\n\n try {\n defProp(key, HIDDEN_NAME, {\n value: hiddenRecord,\n writable: false,\n enumerable: false,\n configurable: false\n });\n return hiddenRecord;\n } catch (error) {\n // Under some circumstances, isExtensible seems to misreport whether\n // the HIDDEN_NAME can be defined.\n // The circumstances have not been isolated, but at least affect\n // Node.js v0.10.26 on TravisCI / Linux, but not the same version of\n // Node.js on OS X.\n return void 0;\n }\n }\n\n /**\n * Monkey patch operations that would make their argument\n * non-extensible.\n *\n *

    The monkey patched versions throw a TypeError if their\n * argument is not an object, so it should only be done to functions\n * that should throw a TypeError anyway if their argument is not an\n * object.\n */\n (function(){\n var oldFreeze = Object.freeze;\n defProp(Object, 'freeze', {\n value: function identifyingFreeze(obj) {\n getHiddenRecord(obj);\n return oldFreeze(obj);\n }\n });\n var oldSeal = Object.seal;\n defProp(Object, 'seal', {\n value: function identifyingSeal(obj) {\n getHiddenRecord(obj);\n return oldSeal(obj);\n }\n });\n var oldPreventExtensions = Object.preventExtensions;\n defProp(Object, 'preventExtensions', {\n value: function identifyingPreventExtensions(obj) {\n getHiddenRecord(obj);\n return oldPreventExtensions(obj);\n }\n });\n })();\n\n function constFunc(func) {\n func.prototype = null;\n return Object.freeze(func);\n }\n\n var calledAsFunctionWarningDone = false;\n function calledAsFunctionWarning() {\n // Future ES6 WeakMap is currently (2013-09-10) expected to reject WeakMap()\n // but we used to permit it and do it ourselves, so warn only.\n if (!calledAsFunctionWarningDone && typeof console !== 'undefined') {\n calledAsFunctionWarningDone = true;\n console.warn('WeakMap should be invoked as new WeakMap(), not ' +\n 'WeakMap(). This will be an error in the future.');\n }\n }\n\n var nextId = 0;\n\n var OurWeakMap = function() {\n if (!(this instanceof OurWeakMap)) { // approximate test for new ...()\n calledAsFunctionWarning();\n }\n\n // We are currently (12/25/2012) never encountering any prematurely\n // non-extensible keys.\n var keys = []; // brute force for prematurely non-extensible keys.\n var values = []; // brute force for corresponding values.\n var id = nextId++;\n\n function get___(key, opt_default) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord ? hiddenRecord[id] : opt_default;\n } else {\n index = keys.indexOf(key);\n return index >= 0 ? values[index] : opt_default;\n }\n }\n\n function has___(key) {\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord;\n } else {\n return keys.indexOf(key) >= 0;\n }\n }\n\n function set___(key, value) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n hiddenRecord[id] = value;\n } else {\n index = keys.indexOf(key);\n if (index >= 0) {\n values[index] = value;\n } else {\n // Since some browsers preemptively terminate slow turns but\n // then continue computing with presumably corrupted heap\n // state, we here defensively get keys.length first and then\n // use it to update both the values and keys arrays, keeping\n // them in sync.\n index = keys.length;\n values[index] = value;\n // If we crash here, values will be one longer than keys.\n keys[index] = key;\n }\n }\n return this;\n }\n\n function delete___(key) {\n var hiddenRecord = getHiddenRecord(key);\n var index, lastIndex;\n if (hiddenRecord) {\n return id in hiddenRecord && delete hiddenRecord[id];\n } else {\n index = keys.indexOf(key);\n if (index < 0) {\n return false;\n }\n // Since some browsers preemptively terminate slow turns but\n // then continue computing with potentially corrupted heap\n // state, we here defensively get keys.length first and then use\n // it to update both the keys and the values array, keeping\n // them in sync. We update the two with an order of assignments,\n // such that any prefix of these assignments will preserve the\n // key/value correspondence, either before or after the delete.\n // Note that this needs to work correctly when index === lastIndex.\n lastIndex = keys.length - 1;\n keys[index] = void 0;\n // If we crash here, there's a void 0 in the keys array, but\n // no operation will cause a \"keys.indexOf(void 0)\", since\n // getHiddenRecord(void 0) will always throw an error first.\n values[index] = values[lastIndex];\n // If we crash here, values[index] cannot be found here,\n // because keys[index] is void 0.\n keys[index] = keys[lastIndex];\n // If index === lastIndex and we crash here, then keys[index]\n // is still void 0, since the aliasing killed the previous key.\n keys.length = lastIndex;\n // If we crash here, keys will be one shorter than values.\n values.length = lastIndex;\n return true;\n }\n }\n\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(get___) },\n has___: { value: constFunc(has___) },\n set___: { value: constFunc(set___) },\n delete___: { value: constFunc(delete___) }\n });\n };\n\n OurWeakMap.prototype = Object.create(Object.prototype, {\n get: {\n /**\n * Return the value most recently associated with key, or\n * opt_default if none.\n */\n value: function get(key, opt_default) {\n return this.get___(key, opt_default);\n },\n writable: true,\n configurable: true\n },\n\n has: {\n /**\n * Is there a value associated with key in this WeakMap?\n */\n value: function has(key) {\n return this.has___(key);\n },\n writable: true,\n configurable: true\n },\n\n set: {\n /**\n * Associate value with key in this WeakMap, overwriting any\n * previous association if present.\n */\n value: function set(key, value) {\n return this.set___(key, value);\n },\n writable: true,\n configurable: true\n },\n\n 'delete': {\n /**\n * Remove any association for key in this WeakMap, returning\n * whether there was one.\n *\n *

    Note that the boolean return here does not work like the\n * {@code delete} operator. The {@code delete} operator returns\n * whether the deletion succeeds at bringing about a state in\n * which the deleted property is absent. The {@code delete}\n * operator therefore returns true if the property was already\n * absent, whereas this {@code delete} method returns false if\n * the association was already absent.\n */\n value: function remove(key) {\n return this.delete___(key);\n },\n writable: true,\n configurable: true\n }\n });\n\n if (typeof HostWeakMap === 'function') {\n (function() {\n // If we got here, then the platform has a WeakMap but we are concerned\n // that it may refuse to store some key types. Therefore, make a map\n // implementation which makes use of both as possible.\n\n // In this mode we are always using double maps, so we are not proxy-safe.\n // This combination does not occur in any known browser, but we had best\n // be safe.\n if (doubleWeakMapCheckSilentFailure && typeof Proxy !== 'undefined') {\n Proxy = undefined;\n }\n\n function DoubleWeakMap() {\n if (!(this instanceof OurWeakMap)) { // approximate test for new ...()\n calledAsFunctionWarning();\n }\n\n // Preferable, truly weak map.\n var hmap = new HostWeakMap();\n\n // Our hidden-property-based pseudo-weak-map. Lazily initialized in the\n // 'set' implementation; thus we can avoid performing extra lookups if\n // we know all entries actually stored are entered in 'hmap'.\n var omap = undefined;\n\n // Hidden-property maps are not compatible with proxies because proxies\n // can observe the hidden name and either accidentally expose it or fail\n // to allow the hidden property to be set. Therefore, we do not allow\n // arbitrary WeakMaps to switch to using hidden properties, but only\n // those which need the ability, and unprivileged code is not allowed\n // to set the flag.\n //\n // (Except in doubleWeakMapCheckSilentFailure mode in which case we\n // disable proxies.)\n var enableSwitching = false;\n\n function dget(key, opt_default) {\n if (omap) {\n return hmap.has(key) ? hmap.get(key)\n : omap.get___(key, opt_default);\n } else {\n return hmap.get(key, opt_default);\n }\n }\n\n function dhas(key) {\n return hmap.has(key) || (omap ? omap.has___(key) : false);\n }\n\n var dset;\n if (doubleWeakMapCheckSilentFailure) {\n dset = function(key, value) {\n hmap.set(key, value);\n if (!hmap.has(key)) {\n if (!omap) { omap = new OurWeakMap(); }\n omap.set(key, value);\n }\n return this;\n };\n } else {\n dset = function(key, value) {\n if (enableSwitching) {\n try {\n hmap.set(key, value);\n } catch (e) {\n if (!omap) { omap = new OurWeakMap(); }\n omap.set___(key, value);\n }\n } else {\n hmap.set(key, value);\n }\n return this;\n };\n }\n\n function ddelete(key) {\n var result = !!hmap['delete'](key);\n if (omap) { return omap.delete___(key) || result; }\n return result;\n }\n\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(dget) },\n has___: { value: constFunc(dhas) },\n set___: { value: constFunc(dset) },\n delete___: { value: constFunc(ddelete) },\n permitHostObjects___: { value: constFunc(function(token) {\n if (token === weakMapPermitHostObjects) {\n enableSwitching = true;\n } else {\n throw new Error('bogus call to permitHostObjects___');\n }\n })}\n });\n }\n DoubleWeakMap.prototype = OurWeakMap.prototype;\n module.exports = DoubleWeakMap;\n\n // define .constructor to hide OurWeakMap ctor\n Object.defineProperty(WeakMap.prototype, 'constructor', {\n value: WeakMap,\n enumerable: false, // as default .constructor is\n configurable: true,\n writable: true\n });\n })();\n } else {\n // There is no host WeakMap, so we must use the emulation.\n\n // Emulated WeakMaps are incompatible with native proxies (because proxies\n // can observe the hidden name), so we must disable Proxy usage (in\n // ArrayLike and Domado, currently).\n if (typeof Proxy !== 'undefined') {\n Proxy = undefined;\n }\n\n module.exports = OurWeakMap;\n }\n})();\n","var D2R = 0.01745329251994329577;\nimport parser from './parser';\nimport {sExpr} from './process';\n\n\n\nfunction rename(obj, params) {\n var outName = params[0];\n var inName = params[1];\n if (!(outName in obj) && (inName in obj)) {\n obj[outName] = obj[inName];\n if (params.length === 3) {\n obj[outName] = params[2](obj[outName]);\n }\n }\n}\n\nfunction d2r(input) {\n return input * D2R;\n}\n\nfunction cleanWKT(wkt) {\n if (wkt.type === 'GEOGCS') {\n wkt.projName = 'longlat';\n } else if (wkt.type === 'LOCAL_CS') {\n wkt.projName = 'identity';\n wkt.local = true;\n } else {\n if (typeof wkt.PROJECTION === 'object') {\n wkt.projName = Object.keys(wkt.PROJECTION)[0];\n } else {\n wkt.projName = wkt.PROJECTION;\n }\n }\n if (wkt.AXIS) {\n var axisOrder = '';\n for (var i = 0, ii = wkt.AXIS.length; i < ii; ++i) {\n var axis = [wkt.AXIS[i][0].toLowerCase(), wkt.AXIS[i][1].toLowerCase()];\n if (axis[0].indexOf('north') !== -1 || ((axis[0] === 'y' || axis[0] === 'lat') && axis[1] === 'north')) {\n axisOrder += 'n';\n } else if (axis[0].indexOf('south') !== -1 || ((axis[0] === 'y' || axis[0] === 'lat') && axis[1] === 'south')) {\n axisOrder += 's';\n } else if (axis[0].indexOf('east') !== -1 || ((axis[0] === 'x' || axis[0] === 'lon') && axis[1] === 'east')) {\n axisOrder += 'e';\n } else if (axis[0].indexOf('west') !== -1 || ((axis[0] === 'x' || axis[0] === 'lon') && axis[1] === 'west')) {\n axisOrder += 'w';\n }\n }\n if (axisOrder.length === 2) {\n axisOrder += 'u';\n }\n if (axisOrder.length === 3) {\n wkt.axis = axisOrder;\n }\n }\n if (wkt.UNIT) {\n wkt.units = wkt.UNIT.name.toLowerCase();\n if (wkt.units === 'metre') {\n wkt.units = 'meter';\n }\n if (wkt.UNIT.convert) {\n if (wkt.type === 'GEOGCS') {\n if (wkt.DATUM && wkt.DATUM.SPHEROID) {\n wkt.to_meter = wkt.UNIT.convert*wkt.DATUM.SPHEROID.a;\n }\n } else {\n wkt.to_meter = wkt.UNIT.convert;\n }\n }\n }\n var geogcs = wkt.GEOGCS;\n if (wkt.type === 'GEOGCS') {\n geogcs = wkt;\n }\n if (geogcs) {\n //if(wkt.GEOGCS.PRIMEM&&wkt.GEOGCS.PRIMEM.convert){\n // wkt.from_greenwich=wkt.GEOGCS.PRIMEM.convert*D2R;\n //}\n if (geogcs.DATUM) {\n wkt.datumCode = geogcs.DATUM.name.toLowerCase();\n } else {\n wkt.datumCode = geogcs.name.toLowerCase();\n }\n if (wkt.datumCode.slice(0, 2) === 'd_') {\n wkt.datumCode = wkt.datumCode.slice(2);\n }\n if (wkt.datumCode === 'new_zealand_geodetic_datum_1949' || wkt.datumCode === 'new_zealand_1949') {\n wkt.datumCode = 'nzgd49';\n }\n if (wkt.datumCode === 'wgs_1984' || wkt.datumCode === 'world_geodetic_system_1984') {\n if (wkt.PROJECTION === 'Mercator_Auxiliary_Sphere') {\n wkt.sphere = true;\n }\n wkt.datumCode = 'wgs84';\n }\n if (wkt.datumCode.slice(-6) === '_ferro') {\n wkt.datumCode = wkt.datumCode.slice(0, - 6);\n }\n if (wkt.datumCode.slice(-8) === '_jakarta') {\n wkt.datumCode = wkt.datumCode.slice(0, - 8);\n }\n if (~wkt.datumCode.indexOf('belge')) {\n wkt.datumCode = 'rnb72';\n }\n if (geogcs.DATUM && geogcs.DATUM.SPHEROID) {\n wkt.ellps = geogcs.DATUM.SPHEROID.name.replace('_19', '').replace(/[Cc]larke\\_18/, 'clrk');\n if (wkt.ellps.toLowerCase().slice(0, 13) === 'international') {\n wkt.ellps = 'intl';\n }\n\n wkt.a = geogcs.DATUM.SPHEROID.a;\n wkt.rf = parseFloat(geogcs.DATUM.SPHEROID.rf, 10);\n }\n\n if (geogcs.DATUM && geogcs.DATUM.TOWGS84) {\n wkt.datum_params = geogcs.DATUM.TOWGS84;\n }\n if (~wkt.datumCode.indexOf('osgb_1936')) {\n wkt.datumCode = 'osgb36';\n }\n if (~wkt.datumCode.indexOf('osni_1952')) {\n wkt.datumCode = 'osni52';\n }\n if (~wkt.datumCode.indexOf('tm65')\n || ~wkt.datumCode.indexOf('geodetic_datum_of_1965')) {\n wkt.datumCode = 'ire65';\n }\n if (wkt.datumCode === 'ch1903+') {\n wkt.datumCode = 'ch1903';\n }\n if (~wkt.datumCode.indexOf('israel')) {\n wkt.datumCode = 'isr93';\n }\n }\n if (wkt.b && !isFinite(wkt.b)) {\n wkt.b = wkt.a;\n }\n\n function toMeter(input) {\n var ratio = wkt.to_meter || 1;\n return input * ratio;\n }\n var renamer = function(a) {\n return rename(wkt, a);\n };\n var list = [\n ['standard_parallel_1', 'Standard_Parallel_1'],\n ['standard_parallel_1', 'Latitude of 1st standard parallel'],\n ['standard_parallel_2', 'Standard_Parallel_2'],\n ['standard_parallel_2', 'Latitude of 2nd standard parallel'],\n ['false_easting', 'False_Easting'],\n ['false_easting', 'False easting'],\n ['false-easting', 'Easting at false origin'],\n ['false_northing', 'False_Northing'],\n ['false_northing', 'False northing'],\n ['false_northing', 'Northing at false origin'],\n ['central_meridian', 'Central_Meridian'],\n ['central_meridian', 'Longitude of natural origin'],\n ['central_meridian', 'Longitude of false origin'],\n ['latitude_of_origin', 'Latitude_Of_Origin'],\n ['latitude_of_origin', 'Central_Parallel'],\n ['latitude_of_origin', 'Latitude of natural origin'],\n ['latitude_of_origin', 'Latitude of false origin'],\n ['scale_factor', 'Scale_Factor'],\n ['k0', 'scale_factor'],\n ['latitude_of_center', 'Latitude_Of_Center'],\n ['latitude_of_center', 'Latitude_of_center'],\n ['lat0', 'latitude_of_center', d2r],\n ['longitude_of_center', 'Longitude_Of_Center'],\n ['longitude_of_center', 'Longitude_of_center'],\n ['longc', 'longitude_of_center', d2r],\n ['x0', 'false_easting', toMeter],\n ['y0', 'false_northing', toMeter],\n ['long0', 'central_meridian', d2r],\n ['lat0', 'latitude_of_origin', d2r],\n ['lat0', 'standard_parallel_1', d2r],\n ['lat1', 'standard_parallel_1', d2r],\n ['lat2', 'standard_parallel_2', d2r],\n ['azimuth', 'Azimuth'],\n ['alpha', 'azimuth', d2r],\n ['srsCode', 'name']\n ];\n list.forEach(renamer);\n if (!wkt.long0 && wkt.longc && (wkt.projName === 'Albers_Conic_Equal_Area' || wkt.projName === 'Lambert_Azimuthal_Equal_Area')) {\n wkt.long0 = wkt.longc;\n }\n if (!wkt.lat_ts && wkt.lat1 && (wkt.projName === 'Stereographic_South_Pole' || wkt.projName === 'Polar Stereographic (variant B)')) {\n wkt.lat0 = d2r(wkt.lat1 > 0 ? 90 : -90);\n wkt.lat_ts = wkt.lat1;\n }\n}\nexport default function(wkt) {\n var lisp = parser(wkt);\n var type = lisp.shift();\n var name = lisp.shift();\n lisp.unshift(['name', name]);\n lisp.unshift(['type', type]);\n var obj = {};\n sExpr(lisp, obj);\n cleanWKT(obj);\n return obj;\n}\n","export default parseString;\n\nvar NEUTRAL = 1;\nvar KEYWORD = 2;\nvar NUMBER = 3;\nvar QUOTED = 4;\nvar AFTERQUOTE = 5;\nvar ENDED = -1;\nvar whitespace = /\\s/;\nvar latin = /[A-Za-z]/;\nvar keyword = /[A-Za-z84_]/;\nvar endThings = /[,\\]]/;\nvar digets = /[\\d\\.E\\-\\+]/;\n// const ignoredChar = /[\\s_\\-\\/\\(\\)]/g;\nfunction Parser(text) {\n if (typeof text !== 'string') {\n throw new Error('not a string');\n }\n this.text = text.trim();\n this.level = 0;\n this.place = 0;\n this.root = null;\n this.stack = [];\n this.currentObject = null;\n this.state = NEUTRAL;\n}\nParser.prototype.readCharicter = function() {\n var char = this.text[this.place++];\n if (this.state !== QUOTED) {\n while (whitespace.test(char)) {\n if (this.place >= this.text.length) {\n return;\n }\n char = this.text[this.place++];\n }\n }\n switch (this.state) {\n case NEUTRAL:\n return this.neutral(char);\n case KEYWORD:\n return this.keyword(char)\n case QUOTED:\n return this.quoted(char);\n case AFTERQUOTE:\n return this.afterquote(char);\n case NUMBER:\n return this.number(char);\n case ENDED:\n return;\n }\n};\nParser.prototype.afterquote = function(char) {\n if (char === '\"') {\n this.word += '\"';\n this.state = QUOTED;\n return;\n }\n if (endThings.test(char)) {\n this.word = this.word.trim();\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in afterquote yet, index ' + this.place);\n};\nParser.prototype.afterItem = function(char) {\n if (char === ',') {\n if (this.word !== null) {\n this.currentObject.push(this.word);\n }\n this.word = null;\n this.state = NEUTRAL;\n return;\n }\n if (char === ']') {\n this.level--;\n if (this.word !== null) {\n this.currentObject.push(this.word);\n this.word = null;\n }\n this.state = NEUTRAL;\n this.currentObject = this.stack.pop();\n if (!this.currentObject) {\n this.state = ENDED;\n }\n\n return;\n }\n};\nParser.prototype.number = function(char) {\n if (digets.test(char)) {\n this.word += char;\n return;\n }\n if (endThings.test(char)) {\n this.word = parseFloat(this.word);\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in number yet, index ' + this.place);\n};\nParser.prototype.quoted = function(char) {\n if (char === '\"') {\n this.state = AFTERQUOTE;\n return;\n }\n this.word += char;\n return;\n};\nParser.prototype.keyword = function(char) {\n if (keyword.test(char)) {\n this.word += char;\n return;\n }\n if (char === '[') {\n var newObjects = [];\n newObjects.push(this.word);\n this.level++;\n if (this.root === null) {\n this.root = newObjects;\n } else {\n this.currentObject.push(newObjects);\n }\n this.stack.push(this.currentObject);\n this.currentObject = newObjects;\n this.state = NEUTRAL;\n return;\n }\n if (endThings.test(char)) {\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in keyword yet, index ' + this.place);\n};\nParser.prototype.neutral = function(char) {\n if (latin.test(char)) {\n this.word = char;\n this.state = KEYWORD;\n return;\n }\n if (char === '\"') {\n this.word = '';\n this.state = QUOTED;\n return;\n }\n if (digets.test(char)) {\n this.word = char;\n this.state = NUMBER;\n return;\n }\n if (endThings.test(char)) {\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in neutral yet, index ' + this.place);\n};\nParser.prototype.output = function() {\n while (this.place < this.text.length) {\n this.readCharicter();\n }\n if (this.state === ENDED) {\n return this.root;\n }\n throw new Error('unable to parse string \"' +this.text + '\". State is ' + this.state);\n};\n\nfunction parseString(txt) {\n var parser = new Parser(txt);\n return parser.output();\n}\n","\n\nfunction mapit(obj, key, value) {\n if (Array.isArray(key)) {\n value.unshift(key);\n key = null;\n }\n var thing = key ? {} : obj;\n\n var out = value.reduce(function(newObj, item) {\n sExpr(item, newObj);\n return newObj\n }, thing);\n if (key) {\n obj[key] = out;\n }\n}\n\nexport function sExpr(v, obj) {\n if (!Array.isArray(v)) {\n obj[v] = true;\n return;\n }\n var key = v.shift();\n if (key === 'PARAMETER') {\n key = v.shift();\n }\n if (v.length === 1) {\n if (Array.isArray(v[0])) {\n obj[key] = {};\n sExpr(v[0], obj[key]);\n return;\n }\n obj[key] = v[0];\n return;\n }\n if (!v.length) {\n obj[key] = true;\n return;\n }\n if (key === 'TOWGS84') {\n obj[key] = v;\n return;\n }\n if (key === 'AXIS') {\n if (!(key in obj)) {\n obj[key] = [];\n }\n obj[key].push(v);\n return;\n }\n if (!Array.isArray(key)) {\n obj[key] = {};\n }\n\n var i;\n switch (key) {\n case 'UNIT':\n case 'PRIMEM':\n case 'VERT_DATUM':\n obj[key] = {\n name: v[0].toLowerCase(),\n convert: v[1]\n };\n if (v.length === 3) {\n sExpr(v[2], obj[key]);\n }\n return;\n case 'SPHEROID':\n case 'ELLIPSOID':\n obj[key] = {\n name: v[0],\n a: v[1],\n rf: v[2]\n };\n if (v.length === 4) {\n sExpr(v[3], obj[key]);\n }\n return;\n case 'PROJECTEDCRS':\n case 'PROJCRS':\n case 'GEOGCS':\n case 'GEOCCS':\n case 'PROJCS':\n case 'LOCAL_CS':\n case 'GEODCRS':\n case 'GEODETICCRS':\n case 'GEODETICDATUM':\n case 'EDATUM':\n case 'ENGINEERINGDATUM':\n case 'VERT_CS':\n case 'VERTCRS':\n case 'VERTICALCRS':\n case 'COMPD_CS':\n case 'COMPOUNDCRS':\n case 'ENGINEERINGCRS':\n case 'ENGCRS':\n case 'FITTED_CS':\n case 'LOCAL_DATUM':\n case 'DATUM':\n v[0] = ['name', v[0]];\n mapit(obj, key, v);\n return;\n default:\n i = -1;\n while (++i < v.length) {\n if (!Array.isArray(v[i])) {\n return sExpr(v, obj[key]);\n }\n }\n return mapit(obj, key, v);\n }\n}\n","module.exports = require('./lib');\n","if (global.Promise == null) {\n global.Promise = require('zousan');\n}\n\nif (Object.assign == null) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: require('object-assign')\n });\n}\n\nmodule.exports = require('./xhr-promise');\n","\n/*\n * Copyright 2015 Scott Brady\n * MIT License\n * https://github.com/scottbrady/xhr-promise/blob/master/LICENSE\n */\nvar ParseHeaders, XMLHttpRequestPromise;\n\nParseHeaders = require('parse-headers');\n\n\n/*\n * Module to wrap an XMLHttpRequest in a promise.\n */\n\nmodule.exports = XMLHttpRequestPromise = (function() {\n function XMLHttpRequestPromise() {}\n\n XMLHttpRequestPromise.DEFAULT_CONTENT_TYPE = 'application/x-www-form-urlencoded; charset=UTF-8';\n\n\n /*\n * XMLHttpRequestPromise.send(options) -> Promise\n * - options (Object): URL, method, data, etc.\n *\n * Create the XHR object and wire up event handlers to use a promise.\n */\n\n XMLHttpRequestPromise.prototype.send = function(options) {\n var defaults;\n if (options == null) {\n options = {};\n }\n defaults = {\n method: 'GET',\n data: null,\n headers: {},\n async: true,\n username: null,\n password: null,\n withCredentials: false\n };\n options = Object.assign({}, defaults, options);\n return new Promise((function(_this) {\n return function(resolve, reject) {\n var e, header, ref, value, xhr;\n if (!XMLHttpRequest) {\n _this._handleError('browser', reject, null, \"browser doesn't support XMLHttpRequest\");\n return;\n }\n if (typeof options.url !== 'string' || options.url.length === 0) {\n _this._handleError('url', reject, null, 'URL is a required parameter');\n return;\n }\n _this._xhr = xhr = new XMLHttpRequest;\n xhr.onload = function() {\n var responseText;\n _this._detachWindowUnload();\n try {\n responseText = _this._getResponseText();\n } catch (_error) {\n _this._handleError('parse', reject, null, 'invalid JSON response');\n return;\n }\n return resolve({\n url: _this._getResponseUrl(),\n status: xhr.status,\n statusText: xhr.statusText,\n responseText: responseText,\n headers: _this._getHeaders(),\n xhr: xhr\n });\n };\n xhr.onerror = function() {\n return _this._handleError('error', reject);\n };\n xhr.ontimeout = function() {\n return _this._handleError('timeout', reject);\n };\n xhr.onabort = function() {\n return _this._handleError('abort', reject);\n };\n _this._attachWindowUnload();\n xhr.open(options.method, options.url, options.async, options.username, options.password);\n if (options.withCredentials) {\n xhr.withCredentials = true;\n }\n if ((options.data != null) && !options.headers['Content-Type']) {\n options.headers['Content-Type'] = _this.constructor.DEFAULT_CONTENT_TYPE;\n }\n ref = options.headers;\n for (header in ref) {\n value = ref[header];\n xhr.setRequestHeader(header, value);\n }\n try {\n return xhr.send(options.data);\n } catch (_error) {\n e = _error;\n return _this._handleError('send', reject, null, e.toString());\n }\n };\n })(this));\n };\n\n\n /*\n * XMLHttpRequestPromise.getXHR() -> XMLHttpRequest\n */\n\n XMLHttpRequestPromise.prototype.getXHR = function() {\n return this._xhr;\n };\n\n\n /*\n * XMLHttpRequestPromise._attachWindowUnload()\n *\n * Fix for IE 9 and IE 10\n * Internet Explorer freezes when you close a webpage during an XHR request\n * https://support.microsoft.com/kb/2856746\n *\n */\n\n XMLHttpRequestPromise.prototype._attachWindowUnload = function() {\n this._unloadHandler = this._handleWindowUnload.bind(this);\n if (window.attachEvent) {\n return window.attachEvent('onunload', this._unloadHandler);\n }\n };\n\n\n /*\n * XMLHttpRequestPromise._detachWindowUnload()\n */\n\n XMLHttpRequestPromise.prototype._detachWindowUnload = function() {\n if (window.detachEvent) {\n return window.detachEvent('onunload', this._unloadHandler);\n }\n };\n\n\n /*\n * XMLHttpRequestPromise._getHeaders() -> Object\n */\n\n XMLHttpRequestPromise.prototype._getHeaders = function() {\n return ParseHeaders(this._xhr.getAllResponseHeaders());\n };\n\n\n /*\n * XMLHttpRequestPromise._getResponseText() -> Mixed\n *\n * Parses response text JSON if present.\n */\n\n XMLHttpRequestPromise.prototype._getResponseText = function() {\n var responseText;\n responseText = typeof this._xhr.responseText === 'string' ? this._xhr.responseText : '';\n switch ((this._xhr.getResponseHeader('Content-Type') || '').split(';')[0]) {\n case 'application/json':\n case 'text/javascript':\n responseText = JSON.parse(responseText + '');\n }\n return responseText;\n };\n\n\n /*\n * XMLHttpRequestPromise._getResponseUrl() -> String\n *\n * Actual response URL after following redirects.\n */\n\n XMLHttpRequestPromise.prototype._getResponseUrl = function() {\n if (this._xhr.responseURL != null) {\n return this._xhr.responseURL;\n }\n if (/^X-Request-URL:/m.test(this._xhr.getAllResponseHeaders())) {\n return this._xhr.getResponseHeader('X-Request-URL');\n }\n return '';\n };\n\n\n /*\n * XMLHttpRequestPromise._handleError(reason, reject, status, statusText)\n * - reason (String)\n * - reject (Function)\n * - status (String)\n * - statusText (String)\n */\n\n XMLHttpRequestPromise.prototype._handleError = function(reason, reject, status, statusText) {\n this._detachWindowUnload();\n return reject({\n reason: reason,\n status: status || this._xhr.status,\n statusText: statusText || this._xhr.statusText,\n xhr: this._xhr\n });\n };\n\n\n /*\n * XMLHttpRequestPromise._handleWindowUnload()\n */\n\n XMLHttpRequestPromise.prototype._handleWindowUnload = function() {\n return this._xhr.abort();\n };\n\n return XMLHttpRequestPromise;\n\n})();\n","!function(i){\"use strict\";var c,s,u=\"fulfilled\",f=\"undefined\",a=function(){var e=[],n=0;function o(){for(;e.length-n;){try{e[n]()}catch(t){i.console&&i.console.error(t)}e[n++]=s,1024==n&&(e.splice(0,1024),n=0)}}var r=function(){if(typeof MutationObserver===f)return typeof process!==f&&\"function\"==typeof process.nextTick?function(){process.nextTick(o)}:typeof setImmediate!==f?function(){setImmediate(o)}:function(){setTimeout(o,0)};var t=document.createElement(\"div\");return new MutationObserver(o).observe(t,{attributes:!0}),function(){t.setAttribute(\"a\",0)}}();return function(t){e.push(t),e.length-n==1&&r()}}();function l(t){if(!(this instanceof l))throw new TypeError(\"Zousan must be created with the new keyword\");if(\"function\"==typeof t){var e=this;try{t(function(t){e.resolve(t)},function(t){e.reject(t)})}catch(t){e.reject(t)}}else if(0 {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\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})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","/**\r\n * Entry point for the main Javascript to this Application\r\n */\r\n\r\n// Polyfills\r\n\r\n/*import 'babel-polyfill'*/\r\nimport 'classlist-polyfill'\r\nimport 'custom-event-polyfill'\r\nimport './modules/polyfills/MatchesSelectorPolyfill'\r\nimport './modules/polyfills/ForEachPolyfill'\r\n\r\n// Modules\r\nimport './modules/CookieConsent'\r\nimport './modules/IsTouchDevice'\r\nimport './modules/IsBrowserIE9'\r\nimport './modules/IsBrowserIE10'\r\nimport './modules/DeferredImages'\r\nimport './modules/UserTabbing'\r\nimport './modules/MobileNav'\r\nimport './modules/HeaderSecondaryNav'\r\n// import './modules/MegaMenu'\r\nimport './modules/Modal'\r\nimport './modules/SuperSearch'\r\nimport './modules/Accordion'\r\nimport './modules/RangeSlider'\r\nimport './modules/MobileResultsFilter'\r\nimport Slider from './modules/Slider'\r\n\r\nimport './modules/Shortlist'\r\nimport './modules/ShortlistAPI'\r\n\r\nimport './modules/forms/FormValidation'\r\nimport './modules/forms/AccesOrCreateAccount'\r\nimport './modules/FindCottage'\r\nimport './modules/Results'\r\n\r\nimport './modules/Reviews'\r\nimport './modules/Reviews.ReadMore'\r\n\r\nimport './modules/Availability'\r\nimport './modules/SliderResults'\r\nimport './modules/Tooltips'\r\n\r\nimport './modules/ArrivalMap'\r\nimport './modules/ExploreNearby'\r\nimport './modules/Newsletter'\r\nimport './modules/SocialShare'\r\nimport './modules/Blog'\r\nimport './modules/OwnersContact'\r\nimport './modules/OwnersLocation'\r\nimport './modules/RoomConfig'\r\n\r\nimport './modules/FindAddress'\r\nimport './modules/StarRating'\r\nimport './modules/myclassic/MyClassic'\r\nimport './modules/GuideReviewModal'\r\n\r\nimport './modules/Questionnaire'\r\nimport './modules/TawkChat'\r\nimport './modules/FeaturedProperties'\r\n\r\nimport './modules/PaymentSchedule'\r\n// Legacy modules \r\n// This code has been broken out from previous js,\r\n// would be good to refactor as most clutter the`window` namespace **\r\nimport './modules/forms/PopDependantDDL'\r\n\r\n\r\n(() => {\r\n // Instantiate GTM data layer\r\n window.dataLayer = window.dataLayer || []\r\n window.dataLayerQueue = window.dataLayerQueue || []\r\n\r\n // Instantiate sliders\r\n const sliders = document.querySelectorAll('.slider:not([data-defer-slider=\"\"])');\r\n Array.from(sliders).forEach((element) => {\r\n const options = {}\r\n if (element.classList.contains('slider--properties') === true) {\r\n options.navTemplate = '{index}'\r\n }\r\n new Slider(element, options);\r\n })\r\n\r\n})()\r\n"],"names":["Helpers","Reveal","document","getElementsByTagName","delegateEventListener","e","preventDefault","currentAccordion","target","hasAriaControlsAttr","ariaControlsValue","getAttribute","ariaControlsElement","getElementById","nextSiblingElement","nextElementSibling","accordion","toggleClass","toggle","Map","streetLayer","satelliteLayer","MapboxOS","arrivalMap","coords","maxZoom","minZoom","zoom","scrollWheelZoom","Streets","Satellite","L","OSMap","tilelayer","cottageLat","parseFloat","cottageLng","cottageName","addMarker","title","icon","iconUrl","iconSize","iconAnchor","popupAnchor","zIndexOffset","riseOnHover","fitMarkers","padding","moment","XHRPromise","availability","getElementsByClassName","idDateFormat","displayDateFormat","hoverClass","hoverClassStart","hoverClassEnd","selectedClass","selectedClassStart","selectedClassEnd","pricingFeed","hintStart","hintEnd","hintCalculating","Availability","container","_this","_classCallCheck","calendars","pricingContainer","messageContainer","calendarCells","Array","from","forEach","c","concat","querySelectorAll","displayStart","displayEnd","displayTotal","submitButton","querySelector","shortBreakLength","shortBreakButtons","form","getClosest","pricingToggles","length","cdrn","cottageCode","startDate","endDate","canReserve","readDisplayDates","setDisplayDates","listeners","_createClass","key","value","_this2","window","IS_TOUCH_DEVICE","eventListener","hoverAction","currentTarget","clearHighlight","clearOfferHighlight","clickAction","onsubmit","submitAction","year","changePricingYear","sessionStorage","searchDates","loadSearchDates","console","log","buttons","removeClass","addClass","parseInt","highlightShortBreaks","outerWidth","hasClass","clearSelected","cellDate","cell","id","toDate","cellId","date","getFullYear","getMonth","getDate","el","highlightRange","offerSubCell","offerIndex","split","highlightOfferCells","data","indexOf","scrollToPricing","calc","removeItem","scrollIntoView","behavior","block","hover","arguments","undefined","d","Date","start","isSame","end","setDate","isValid","ex","format","innerHTML","_this3","xhr","fromDate","send","url","then","response","DOMParser","parseFromString","responseText","displayPricing","recordPricing","catch","result","pricedHolidays","fullPrice","holidayDesc","showRent","warning","nights","diff","dataLayerQueue","push","appendChild","pricedHolidaysMarkup","setPriceDisplay","stopMessage","createElement","stopNote","className","p","output","minPrice","restrictionsForMinPrice","ph","k","price","count","totalPrice","l","Math","min","toFixed","button","controls","active","setAttribute","setAttributes","dates","JSON","parse","duration","enableShortBreakButton","currentButton","options","index","item","max","apply","all","state","minimum","previousState","previousMinimum","mainCssClass","previousCssClass","avail","breadcrumbs","history","History","blog","nav","ui","baseUrl","page","getURL","catUrl","getCategory","locUrl","getLocation","qs","getSort","fullUrl","readUI","isInteractive","params","category","location","sort","pushState","href","setUI","setCategory","setLocation","setSort","init","Adapter","bind","getState","search","categoryLinks","locationLinks","sortLinks","stopPropagation","hideAccordions","excludeId","hide","a","innerText","s","pagination","total","link","maxPage","ceil","nextPage","loading","earliest","filter","offsetWidth","getTime","stop","setTimeout","fetch","getXHR","abort","updateList","Articles","Total","intro","Intro","set","Breadcrumbs","MetaTitle","loadMore","addToList","showMoreEl","lazyLoad","showMoreRunInterval","setInterval","isInViewport","inlineTweets","lazyLoadEnabled","articles","article","Id","Popularity","Ticks","Url","Img","Title","Teaser","Category","DatePosted","Author","firstChild","text","open","crumbs","clear","crumb","newCrumb","crumbEls","shift","parentNode","removeChild","VALUE_INCREMENT","VALUE_DECREMENT","ButtonCounter","control","name","code","input","defaultValue","mousedownEvent","mousedownInterval","mousedownInitialInterval","buttonClickEvent","getValue","self","mouseDown","mouseUp","updateDisplay","replace","direction","increment","incrementTimeout","decrement","decrementTimeout","clearTimeout","raiseEvent","dispatchEvent","CustomEvent","setValue","reset","Hammer","CalendarRange","changeEvent","getControls","getParameters","hammer","render","prevButtonContainer","nextButtonContainer","prevButton","nextButton","monthContainer","minCalendarWidth","minDate","maxDate","currentMonth","startOf","noOfCalendars","selectedStart","selectedEnd","move","endOf","isBefore","add","isAfter","subtract","hammertime","on","type","lastMoveTime","setNoOfCalendars","visibleMonths","floor","_loop","monthStart","i","monthEnd","wrap","table","header","day","calendarStart","calendarEnd","row","tr","col","calendarDay","td","disabled","calendarListeners","_this4","setDates","termlyApiCach","localStorage","getItem","iframes","consentRequired","cloneNode","classList","termlyConsent","TERMLY_COOKIE_CONSENT","ConsentGiven","removeAttribute","wrapper","insertBefore","advertising","images","slice","call","containers","canUseIntersection","IntersectionObserverEntry","prototype","Object","defineProperty","get","intersectionRatio","rootMargin","threshold","deferredImageObserver","IntersectionObserver","entries","entry","isIntersecting","img","hasAttribute","unobserve","deferredContainerObserver","imgs","remove","observe","exploreMap","lat","lng","featuredProperties","position","FindAddress","postcode","Promise","resolve","results","addresses","error","description","getAddress","address","org","line1","line2","line3","line4","town","county","validatePostcode","test","FindAddressModal","modal","errorEl","resultsEl","loadAddress","listAddresses","message","li","modalPostcode","activeButtonClass","findCottageIndexButtons","findCottageList","char","toUpperCase","ul","startsWith","isNumeric","isNaN","visible","GeoSearch","defaultOptions","minSearchLength","noMatchTimeoutDelay","placeholderText","focus","blur","activeSearch","assign","selectActions","invalidActions","inputContentIsValid","events","event","callback","runSearch","cb","clearResults","keyCode","highlightNextResult","highlightPrevResult","selectResult","searchResults","children","highlightResult","getHighlightedResult","currentHighlight","newHighlight","previousElementSibling","lastElementChild","newIndex","firstElementChild","activeResultData","hasResults","createResultElement","Place","Name","Type","Code","Point","join","resultCount","r","noMatchTimeout","reason","StarRating","titleEl","successView","errorView","attractionId","attractionName","reviewTitle","reviewDescription","reviewAnonymous","checked","method","reviewRating","status","Error","headerSecondaryLinksIcon","headerLinks","isNodeList","element","isArray","selector","currentElement","matches","closestElement","parentElement","getNext","nextElement","getPrevious","previousElement","getParents","elem","Element","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","parents","attributes","keys","attrValue","removeAttributes","_len","_key","_element$classList","_len2","_key2","_element$classList2","_len3","_key3","_element$classList3","contains","toggleAttribute","attribute","addEventListener","handler","listeningTarget","exclude","elementIsInViewport","rect","getBoundingClientRect","height","width","top","left","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","isPartiallyInViewport","some","getWidth","includePadding","widths","map","styles","getComputedStyle","paddingLeft","paddingRight","getHeight","heights","paddingTop","paddingBottom","isBrowserIE10","navigator","userAgent","match","isBrowserIE9","htmlTag","IsNodeList","stringRepr","toString","_typeof","nodeType","DocumentTouch","mapbox","accessToken","provider","tileLayer","tileSize","attribution","crossOrigin","styleLayer","elementId","customLayers","opts","layers","addTo","markers","shapes","cluster","popupContent","defaults","zindex","marker","bindPopup","boundsOpts","group","featureGroup","fitBounds","getBounds","clusterMarkers","markerClusterGroup","showCoverageOnHover","maxClusterRadius","spiderLegPolylineOptions","weight","color","opacity","spiderfyDistanceMultiplier","addLayer","clearMarkers","clearLayers","addShape","wkt","shapeOpts","fillColor","fillOpacity","parseWKT","shape","polyline","fitShapes","clearShapes","parameters","lls","ll","_L","llarr","trim","latLng","_toConsumableArray","reverse","body","mobileNavigationIcon","megaMenus","megaMenuToggles","ownerNavTaggles","ownerNavMenu","resultsFilterToggle","resultsFilterClose","resultFilterApply","resultsFilterClass","noScrollClass","modals","modalContent","modalOpen","modalClose","activeClass","modalId","checkValidity","show","modalType","modalValue","NRequired","requiredCount","inputs","setCustomValidity","setValidity","setListener","populatedCount","clearValidity","XhrPromise","sendEmailToNewsletterSignUp","signUpContainer","formObject","emailField","formUI","errorUI","successUI","emailAddress","createSignUpFormObject","newsletterFooterSignUp","newsletterModalSignUp","queryParams","URLSearchParams","paramName","has","center","latlng","imageMapResize","imageEl","imageSrc","src","regions","regionArea","regionImage","_regeneratorRuntime","exports","Op","hasOwn","hasOwnProperty","obj","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","reject","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","iter","val","object","pop","skipTempReset","prev","charAt","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","activeFetch","daySelector","urlParams","bookingId","hidSelectedDay","getPaymentSchedule","_ref","_callee","bookingID","dayOfMonth","feedEndpoint","_callee$","_context","updateUI","t0","_x","_x2","finalPayment","Table","Amount","filteredTable","PaymentId","noOfPayments","monthlyPayments","paymentSummary","formatCurrency","amount","Number","toLocaleString","style","currency","StarReviewField","stars","submit","starNum","StarClicked","quest","unAnsweredQuestions","submitCount","validationMessage","checkOnComplete","answers","trackUnanswered","checkQuestions","checkAQuestion","rdoGroupName","rdoLabelId","rdoLabel","RDONull","RDOGroupName","ctls","rangerSliders","rangeSliderOutputId","rangeSliderOutput","he","Locations","Facets","Party","Dates","UI","Header","Pagination","Sorting","Slider","Tracking","LastMinute","searchControl","Results","_defineProperty","getFeedEndpoint","updateMetaTitle","preservePageDescription","preservePageHeader","currentUrl","nonDefaultValues","getNonDefaultValues","buildQueryString","isCustomizedSearch","resultsList","featuredSearchId","getElementsByName","locations","regionChangeEvent","facets","party","pages","sorting","tracking","stateAction","showMoreEvent","extendEvent","lastMinute","initState","resultsItemObserver","resultsItems","queryString","getNamedItem","substring","complexCode","resultsItem","complexCottages","complexCodes","stringify","complex","searchQsToJSON","trackComplexResultViewed","cottage","trackResultsItemViewed","detail","changeSearch","showMore","extendSearch","updateState","historyState","_this2$lastMinute$las","_state$lmbtn","updateControls","valid","_objectSpread","createUpdateSearchOptions","setDefaultSearchOptions","updateSearch","setSelectedDateRangeButton","lastMinuteButtons","lmbtn","getValues","fsi","getCurrentIndexOfHighlightedButton","nlc","rgn","pMax","pMin","nlm","encodeURIComponent","readQueryString","searchParams","paramParts","_iterator","_createForOfIteratorHelper","_step","n","part","paramValuePair","decodeURIComponent","f","protocol","hostname","initialControlValues","replaceState","persistPagination","setValues","dss","toISOString","des","nday","setItem","nonDefaultParams","getRegionHref","getLocationUrl","action","_options","pageTitle","sortOrder","updateSortControl","totalPages","totalCount","totalWithoutOfferFilter","regionName","locationName","setNoOfPages","setBreadcrumbs","setRegionCounts","headerXML","update","trackSearch","listItems","tagName","itemCode","tempWrapper","decode","resultItemEl","navTemplate","activate","adEl","sl","HighlightShortlistedCottages","currentRegion","getRegionForFeaturedSearchLinks","featuredSearchCode","_this5","showMoreLoading","pathname","ReviewsReadMore","toggleReadMore","parent","isOpen","reviewsContainer","readMore","handleReadMoreClick","instance","Constructor","_defineProperties","props","descriptor","_toPropertyKey","protoProps","staticProps","_toPrimitive","String","hint","prim","toPrimitive","res","Reviews","reviewsLocation","requestedPage","firstPage","URL","newPageState","reviewpage","delete","reviewPageQueryParam","pageCount","updateReviewPageURLParam","initialPageNum","currentLoadMorePageRange","pageNumber","getLoadMoreNextPageNum","updatePagingDisplay","getMoreReviews","updateCurrentLoadMorePageRangeEnd","hideLoadMore","updateCurrentPaginationPage","disablePagingNextButton","currentPaginationPageNum","NextPageIsLast","NextPageNumber","prevPage","PrevPageIsFirst","PrevPageNumber","disable","nextPageButton","prevPageButton","showMoreReviews","updateCurrentLoadMorePageRange","updateCurrentLoadMorePageRangeStart","getPrevPaginationInfo","getNextPaginationInfo","disablePagingPrevButton","checkIntitalQueryStringIsInRange","reviewHTMLTemplate","_getMoreReviews","replaceReviews","callURL","loadMoreReviewsSuccess","loadMoreReviewsError","endpoint","setLoadingState","maximumCharLengthOfReview","MaximumCharLengthOfReview","maximumCharLengthOfReviewWithBuffer","MaximumCharLengthOfReviewWithBuffer","review","reviewHTML","insertAdjacentHTML","errorMessage","pagingContainer","ok","json","statusText","currentPage","pagingDisplay","reviewsPrevPage","_this$getPrevPaginati","reviewsNextPage","_this$getNextPaginati","reviewDate","ToDate","reviewMonth","month","reviewYear","TenantName","Comment","ModeratorReply","html","dataset","reviews","handlePrevPageClick","handleNextPageClick","handleshowMoreReviewsClick","RoomConfigTotals","requiredElement","required","remaining","RoomConfigRow","radios","totals","Cookies","Shortlist","list","expires","updateHeaderIcon","highlightClass","shortlist","DeleteCottageFromShortList","favouriteButtons","isShortlisted","affectedButtons","loadMarkers","shortlistId","DeleteShortlist","LOCALSTORAGE_SHORTLIST_KEY","Shortlistitem","ShortlistNew","public","items","populate","addItem","ShortlistAPI","baseURL","getAllUrl","shortlists","shortListItems","userIsAuthenticated","GetAllFromLocalStorage","token","LoadShortlists","forceRefresh","GetAllshortlists","UpdateLocalStorage","Lsshortlists","updateListOfShortlists","GetAllRequest","headers","Authorization","CreateShortlist","Slname","SlPublic","PostShortList","PatchShortlist","SlName","SlGuid","_this6","PatchShortList","patchURL","AddShortlistItem","_this7","find","matchedItem","PostShortListItem","postItemUrl","listId","_this8","DeleteShortList","deleteUrl","DeleteShortListItem","_this9","deleteItemUrl","DeleteCottageFromShortListMultiList","ListId","closest","dataactive","ChangeSetValueMulti","multiListItem","inList","AddCottageToShortListMultiList","thisItem","AddCottageToShortList","_this10","cookieName","shortlistsItemsCount","_this11","IsCodeInShortlists","shortlistLinks","currentId","activeFlag","found","guid","Sl","codes","selectedIndex","hidden","thisId","click","EditModal","SliderThumbNailGallery","slider","autoPlayTime","speed","mobileSize","tabletSize","cssPrefixes","sliderStartPosition","numberOfClones","clonesOffset","slideChangeCallback","sliderHasThumbnailGallery","isLoop","isFullWidth","isLazyLoad","isAutoPlay","isSetWidthSlider","isSetWidthOfSlider","sliderDisplayAmount","getSliderDisplayAmount","loadAllSlidesFunctionUsed","currentSliderPosition","slides","sliderProperties","thumbnailId","offSet","setSliderProperties","x","removeProperty","used","autoInt","changeActiveSlider","addSlideClones","setWidthOfSlider","slidesWrap","indices","getDefaultSlideIndexes","lazyLoadSlideImages","sharedLoadFunctions","setSliderXAxisPosition","setSliderActiveCSSClasses","hideArrowNavigation","setArrowNavigation","autoPlay","pageResize","that","readyState","load","thumbNailClass","isThumbnailClassValid","setSliderDisplayAmount","setThumbXAxisPosition","thumbProperties","currentThumbPosition","sliderHasDisplayQuantitySet","windowWidth","getDisplayQuantity","addFirstSlideClones","addLastSlideClones","setSliderProperty__CurrentSliderPosition","selectedSlides","slide","setClonesOffset","clonedSlide","unshift","slidesContainer","prepend","append","arrowNavigation","newSliderPosition","updateNextPreThumbnail","hidePrev","hideNext","useTransition","loopSlider","previousThumb","nextThumb","slideIndex","sliced","slidesViewPortWidth","selectedSlideImgWidth","adjustAmount","transition","msTransform","transform","webkitTransform","offset","isSliderAClone","adjustedNewPosition","doBackLoop","doFrontLoop","loopFunctions","loadAllSlides","slideIndexesToLoad","Set","loadThreshold","allIndexes","_","setLoadAllSlidesFunctionUsed","forcePositionRecalculation","imagesLoadedCount","totalImagesToLoad","size","checkCallback","imagesToLoad","onload","removeWidthOfSlider","sliderHammertime","hammerDirection","clearInterval","setOptions","resultsItemsContainer","imageGroupSelector","loadImages","imageGroup","resultItem","pictures","pictureInfo","fullyGalleryLength","sliderItem","highLightSlide","cottageURL","touchStart","touches","pageX","sliderInstance","touchendCallback","removeEventListener","touchEnd","changedTouches","touchChange","abs","sliderNavigateOnLoad","changeSlide","sliderClass","clonesOffest","thumbs","clonelessThumbCount","thumb","addThumbClones","setThumbActiveCSSClasses","thumbnailClicks","thumbnailHover","checkAllImagesLoaded","setThumbLoadingState","thumbnailGallery","checkImagesRendered","allImagesRendered","thumbImages","every","image","naturalWidth","requestAnimationFrame","addFirstThumbClones","addLastThumbClones","clones","getClonedThumbs","clonedThumb","thumbnailContainer","setCurrentThumb","nextPrevFunctions","newPostiton","loopThumbs","thumbIndex","newThumbPosition","isThumbAClone","doThumbBackLoop","doThumbFrontLoop","loopThumbFunctions","dataIndex","sliderIndex","currentSlideDataIndex","newSlidePosition","PreventWhirlingEffect","changeActiveThumb","sliderLength","currentIndex","nextIndex","hoveredIndex","thumbHammertime","thumbnailGalleryId","getThumbnailGalleryId","setThumbProperties","thumbnailLoad","thumbHammer","Clipboard","emailShare","emailShareForm","emailShareSuccess","emailShareError","tweet","emailType","emailData","emailSubject","shareURL","slname","encodeURI","slcodes","escape","elements","rating","activeStars","star","superSearch","superSearchImage","superSearchGroup","superSearchToggles","superSearchDropdowns","superSearchClose","superSearchActiveClass","dropdownActiveClass","toggleActiveClass","currentToggle","currentDropdownId","currentDropdown","isShown","targetIsSearchResult","isWhereSearchBox","toLowerCase","getGeography","invalidateSize","rootLocationRegionCode","activeGeoFetch","locationModified","allTowns","distance","destinationUrl","mapView","getParams","setParams","destination","featuredIds","allTownsList","ShowChildLocations","includes","currentID","childItems","ci","whereSearch","whereResults","geoSearch","region","updateButtons","guestControls","calendarContainer","durationInput","startDateInput","endDateInput","flexWrap","flexInput","clearDatesButton","calcNoOfCalendars","calendar","impliedDuration","flex","adults","babies","pets","minA","minC","minB","pet","guests","whereTitle","howLongTitle","howLongSub","setButton","guestsTitle","guestsSub","sub","buttonSetClass","titleClass","subClass","locationId","locationDistance","updateMap","b","regionTotal","initMap","zoomControl","attributionControl","dragging","doubleClickZoom","LocationMap","panels","startChat","Tawk_API","onStatusChange","handleNewsletterSignup","newsLetterSignUp","label","formDataObj","answer","urlEncodedData","formBody","onPrechatSubmit","onOfflineSubmit","questions","tippy","theme","animation","placement","arrow","interactive","multiple","trigger","onShow","reference","heart","encode","setContent","userTabbing","passwordbox","passwordinputs","signInContainer","createLink","loginLink","toggleVisibility","FormValidation","forms","highlightInvalid","nRequiredValidity","wrappers","validation","popDependantDdl","strH1Index","ddlH2Container","strH2ArrayItems","strH2ArrayValues","eval","Option","display","Proj","proj4","require","default","SERVICE_URL","VERSION","CRS","extend","resolutions","origin","Earth","LogoControl","Control","onAdd","DomUtil","logoImage","TileLayer","initialize","apiKey","transformCoords","arr","crs","bounds","zoomOffset","logoControl","getCenter","getZoom","addControl","resetViewAfterLayerChange","layer","_resetView","off","onRemove","EPSG3857","removeControl","_isProj4Obj","inverse","forward","Projection","Class","def","isP4","_proj","_projFromCodeDef","project","point","unproject","unbounded","point2","y","LatLng","defs","urn","transformation","Transformation","proj","srsCode","projection","Util","scales","_scales","infinite","scale","iZoom","baseScale","nextScale","scaleDiff","zDiff","downScale","_closestElement","downZoom","nextZoom","Infinity","R","array","low","GeoJSON","geojson","_callLevel","addData","properties","coordsToLatLng","geoJson","ImageOverlay","_projectedBounds","_animateZoom","_map","getZoomScale","northWest","_projectedToNewLayerPoint","setTransform","_image","_reset","pixelOrigin","getPixelOrigin","_transform","_subtract","getSize","setPosition","viewHalf","_divideBy","newTopLeft","_round","topLeft","_getMapPanePos","imageOverlay","rebookingPanel","rebookingSelect","updateRebookingDisplay","insurancePanel","insuranceSelect","updateInsuranceDisplay","cardType","cardTypeInput","setCardTypeVisibility","maestro","validFromInputs","cardTypeSelector","cts","cardholderAddress","cardholderAddressInput","setCardholderAddressVisibility","useAlternativeCardholder","javaEnabled","screen","colorDepth","getTimezoneOffset","language","iframeContentWidth","challengeWindowSize","Pikaday","DATE_FORMAT","outwardDate","returnDate","o","field","firstDay","dateFrom","dateTo","countryDDL","postcodeFinder","updateLayout","countryHasPostcode","route","to","mbDirections","directions","profile","routesControl","instructionsControl","setOrigin","setDestination","dir","minLat","minLng","maxLat","maxLng","routes","geometry","coordinates","laCoordinate","directionsBounds","latLngBounds","selectRoute","query","NodeList","ancestor","ResultsDates","startDateField","endDateField","daysField","flexField","specialOfferButtons","specialOfferDuration","specialOfferDates","bindStartPicker","bindEndPicker","daysSet","specialOfferChange","onSelect","startDateSet","endDateSet","getDaysDiff","getMoment","asDays","days","setMinDate","period","activeButton","setSpecialOffer","getSpecialOfferValue","showOffers","oso","parsedStartDate","parsedEndDate","ResultsFacets","tagFacetsOptions","ResultsFacet","tags","facet","refine","checkbox","dropdown","toggleEvent","ResultsFacetRefine","select","updateRefine","checkboxes","range","cbx","bool","defaultChecked","ResultsHeader","h1","ferryAd","showmore","readmoreWrapper","readMoreText","readmoreListener","video","initVideo","readMoreContent","removeReadMoreElements","readMoreContainer","createReadMoreElement","showLessLinkTop","createShowLessElement","showLessLinkBottom","nextSibling","marginBottom","addShowLessEventListeners","showReadMoreSection","showShowLessLinks","showLessLinks","showLess","hideReadMoreText","readmoretextHeader","readmoretext","showLessElements","showLessLink","xmlDoc","setImage","setVideo","setTitle","setIntro","setReadMore","backToTop","readmore","readmoreTextWrapper","temp","childNodes","node","showImage","hideImage","tag","beforeEl","poster","videoVisible","play","offsetHeight","videoPlayable","paused","currentTime","resultsClassInstance","dateRangesInQueryString","lastMinuteButtonsClick","setFirstLastMinuteDate","datesURLQueryParamDetailsExist","setDatesFromURLQueryParams","pageParams","targetButton","setLocalCurrentURLRef","lengthOfStay","setStartDates","firstHighlightedButton","lastMinuteResults","defaultStartDate","defaultEndDate","defaultLengthOfStay","findIndex","startDates","startDateString","endDateString","btn","belowMobileBreakpoint","mobileBreakPoint","resultsInViewport","resultsListItems","resultsClass","_this$startDates","dateRange","createDateRangeObject","_button$dataset","_this$resultsClass$ge","queryStringParams","_objectWithoutProperties","_excluded","setURLParams","scrollToResults","setLocalCurrentParams","getDefaultStartDateString","getDefaultEndDateString","getDefaultLengthOfStay","pageLoader","ResultsLocation","rootLocationCode","towns","distanceControl","townDistance","townToggle","mapElement","hideLocationSearchResults","setRegion","setTown","toggleRegionExpanders","getTownDefaultDistance","dd","listContainer","getRegionCodeForUrl","matchingRegion","getRegion","getRegionTitle","getTown","selectedRegions","changeOccured","matchingRegions","townCode","selectedTowns","matchingTowns","getTownRegion","getTownTitle","defaultDistance","expandRegion","setTownInView","activeRegion","activeRegionExpanded","townsList","townIsFeatured","t","parentUL","HighlightParents","fixedRegions","scrollTop","offsetTop","parentId","parentItem","newParentID","resultsHighlight","resultsTrigger","locationSearch","searchTerm","activeSearchFetch","loadingClass","ResultsMap","getQS","cottageIcon","mapState","close","openPopup","isVisible","getMarkers","cottages","buildPopup","popup","loadMapState","multi","inShortlist","rent","accom","_this$mapState$split","_this$mapState$split2","_slicedToArray","setView","markerFound","resultsLocation","cottagesXml","complexCottageXml","parseCottages","cxCottages","cx","xmlCottages","towndis","view","ResultsPagination","pagePrev","pageNext","maxPages","updatePaginationControls","ResultsParty","members","childAges","ResultsPartyChildAges","babyFriendly","m","cFrom","cTo","baby","member","setMin","setMax","minAge","maxAge","changeEvents","minChange","maxChange","ResultsSorting","defaultSort","so","buildQsForFeed","v","bed","bath","ResultsUI","specialOfferExtender","contact","resultsTitle","resultsFilterButtonMobile","resultsCountTitleMobile","toggleShowMore","toggleContact","setResultsTitle","setCountTitle","setExtenders","setWarning","setRange","resetPosition","scroll","offerExtenderIntro","warningMessage","xmlData","deleteEl","toJSON","isFinite","valueOf","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","Boolean","escapable","gap","indent","meta","rep","quote","string","lastIndex","charCodeAt","str","holder","mind","partial","replacer","space","reviver","j","walk","SyntaxError","handlers","_uid","uid","eventName","extractEventData","onDomLoad","timeout","initHtml4","initialized","enabled","savedHashes","isLastHash","newHash","oldHash","getHashByIndex","isLast","isHashEqual","saveHash","hash","discardedHashes","discardedStates","discardState","discardedState","forwardState","backState","discardedStateHash","getHashByState","discardObject","discardHash","discardedHash","State","StateHash","discarded","recycleState","emulated","hashChange","hashChangeInit","checkerFunction","lastDocumentHash","iframeId","iframe","lastIframeHash","checkerRunning","startedWithHash","getHash","isInternetExplorer","contentWindow","documentHash","iframeHash","escapeHash","back","setHash","intervalList","hashChangeInterval","onHashChange","newURL","getLocationHref","currentHash","getHashByUrl","currentState","currentStateHash","currentStateHashExits","busy","doubleCheckComplete","isTraditionalAnchor","extractState","getFullUrl","isLastSavedState","queue","pushQueue","scope","newState","createStateObject","newStateHash","oldState","oldStateHash","html4Hash","wasExpected","expectedStateId","storeState","saveState","getShortUrl","getStateByIndex","alert","initCore","safariPollInterval","doubleCheckInterval","disableSuid","storeInterval","busyDelay","debug","initialTitle","html4Mode","delayInit","clearAllIntervals","il","consoleExists","textarea","Exception","scrollHeight","getInternetExplorerMajorVersion","cached","div","bugs","vendor","safariPoll","ieDoubleCheck","hashEscape","isEmptyObject","cloneObject","newObj","getRootUrl","rootUrl","host","port","getBaseHref","baseElements","baseElement","baseHref","getBaseUrl","getBasePageUrl","getPageUrl","stateUrl","pageUrl","basePageUrl","allowBaseHref","firstChar","shortUrl","doc","store","idToState","stateToId","urlToId","storedStates","savedStates","normalizeStore","friendly","getLastSavedState","cleanUrl","getIdByState","extractId","getStateString","random","normalizeState","dataNotEmpty","normalized","hashedUrl","hasUrlDuplicate","getStateById","passedState","cleanedState","getStateId","url_or_hash","parts","tmp","exec","isTraditional","getIdByUrl","getLastStoredState","hasDuplicate","newId","oldId","getCurrentIndex","unescapeHash","normalizeHash","firstState","queues","flag","fireNext","fireQueueItem","clearQueue","stateChanged","doubleChecker","doubleCheckClear","doubleCheck","tryAgain","safariStatePoll","urlState","go","emptyFunction","onPopState","extra","stateId","onUnload","currentStore","currentStoreString","DOMException","QUOTA_EXCEEDED_ERR","appCodeName","dataLayer","sliders"],"sourceRoot":""}