{"version":3,"sources":["webpack:///webpack/bootstrap 87ded8c134afd5a1d28a","webpack:///./src/js/checkout.js","webpack:///./~/doc-cookies/docCookies.umd.js","webpack:///./~/event-listener/index.js","webpack:///./~/lodash.merge/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./~/lodash.once/index.js","webpack:///./~/post-robot/dist/post-robot.min.js","webpack:///./src/js/constants.js","webpack:///./src/js/css.js","webpack:///./src/js/device.js","webpack:///./src/js/dom.js","webpack:///./src/js/util/template.js","webpack:///./src/js/gen-button.js","webpack:///./src/js/redirect.js","webpack:///./src/js/util/log.js","webpack:///./src/js/guid.js","webpack:///./src/js/iframes.js","webpack:///./src/js/util/domain.js","webpack:///./src/js/lightbox.js","webpack:///./src/js/util/remove-panels.js","webpack:///./src/js/mask.js","webpack:///./src/js/xo-emitter.js","webpack:///./~/events/events.js","webpack:///./~/util/util.js","webpack:///./~/process/browser.js","webpack:///./~/util/support/isBufferBrowser.js","webpack:///./~/inherits/inherits_browser.js","webpack:///./src/js/util/blocker.js","webpack:///./src/js/util/ready.js","webpack:///./src/js/util/script-loader.js","webpack:///./src/js/util/token-from-url.js","webpack:///./src/js/util/own-property-shim.js","webpack:///./src/js/shim.js"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;ACtCA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA0D;;AAE1D;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,OAAO;AAC1B;AACA;AACA;AACA,yBAAwB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,OAAO;AAC9B,0BAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAqB;;AAErB;AACA;AACA,sBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,OAAO;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAA+B,sBAAsB;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAuB,MAAM;AAC7B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,0BAAyB;AACzB;AACA;AACA,sBAAqB;AACrB;AACA;AACA,sBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA6B;;AAE7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,0BAAyB;AACzB;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,0BAAyB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA,kBAAiB;AACjB;AACA;AACA;AACA,gFAA+E,gBAAgB,2CAA2C;AAC1I;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA,sBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA,kDAAiD;AACjD;;AAEA;;AAEA;AACA;AACA,sCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA6B;AAC7B;AACA;AACA;AACA,kCAAiC;AACjC;AACA;;AAEA,sBAAqB;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,sBAAqB;AACrB;AACA;AACA,sBAAqB;AACrB;AACA;AACA,sBAAqB,wFAAwF;AAC7G;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAAyB;AACzB,sBAAqB;AACrB;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA,kBAAiB;AACjB;;AAEA;AACA;AACA,2FAA0F;AAC1F;AACA;AACA;;AAEA;AACA;AACA,2FAA0F;AAC1F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAmC,yBAAyB;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,sBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;;AAEA;AACA,yGAAwG;AACxG,4GAA2G;AAC3G,yGAAwG;;AAExG;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAiC;AACjC;;AAEA;AACA;AACA,sBAAqB;AACrB,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA,kBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA,wBAAuB;AACvB,0BAAyB,QAAQ;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA,gCAA+B,oBAAoB;AACnD;AACA;AACA;;AAEA;AACA,2EAA0E;AAC1E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;;;;AAIA;AACA;AACA,0DAAyD,yBAAyB;AAClF,0DAAyD,yBAAyB;AAClF,0DAAyD,OAAO;AAChE,0DAAyD,OAAO;AAChE,0DAAyD,OAAO;AAChE,uCAAsC,mBAAmB,SAAS;AAClE,2CAA0C,cAAc,SAAS;AACjE,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8GAA6G,KAAK;AAClH,oEAAmE,KAAK;AACxE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB;;AAEjB;;AAEA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,OAAO;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET,MAAK;;AAEL,EAAC;;;;;;;AC7wCD,cAAa,SAA2D,mBAAmB,gDAAgD,aAAa,KAAK,MAAM,gCAAgC,SAAS,qCAAqC,SAAS,mCAAmC,OAAO,KAAK,OAAO,oBAAoB,aAAa;AACjV;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,iBAAgB,aAAa;AAC7B,8EAA6E,mFAAmF;AAChK,IAAG;AACH;AACA,4EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA,4CAA2C,4CAA4C;AACvF;AACA;AACA,wBAAuB;AACvB;AACA;AACA,wBAAuB;AACvB;AACA;AACA;AACA,6GAA4G,uCAAuC,qCAAqC;AACxL;AACA,IAAG;AACH;AACA,+BAA8B,cAAc;AAC5C,qDAAoD,uDAAuD,uCAAuC;AAClJ;AACA,IAAG;AACH;AACA,iBAAgB,cAAc;AAC9B,+BAA8B;AAC9B,IAAG;AACH;AACA,oDAAmD,YAAY,oBAAoB,sCAAsC,KAAK;AAC9H,4CAA2C,aAAa,UAAU,+CAA+C;AACjH;AACA;AACA;;AAEA;;AAEA,EAAC;;;;;;;ACnED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA,qCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB;AACA,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;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,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;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,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,aAAa;AACxB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C,eAAe;AAC5D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;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,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO,WAAW;AAC7B,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,YAAY;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;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,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,kBAAiB;AACjB,iBAAgB;AAChB;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,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;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,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;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,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;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,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;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,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;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,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,cAAa,OAAO;AACpB;AACA;AACA;AACA,aAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,aAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,WAAU,QAAQ,iBAAiB,GAAG,iBAAiB;AACvD;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5vEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;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,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;A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CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACpCA;;AAEA;AACA;AACA;AACA,cAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA4C,IAAI;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;ACnDA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wEAAuE;;AAEvE;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACrCA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAsD,4BAA4B;AAClF;AACA;AACA;AACA;AACA,iCAAgC;AAChC;AACA,0CAAyC,kBAAkB;;AAE3D;AACA;;AAEA,mBAAkB;;;;;;;ACpClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,eAAe;AACtC;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oGAAmG;;AAEnG;AACA;AACA;AACA;AACA;AACA;;AAEA,gFAA+E;AAC/E;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,2BAA2B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA,wBAAuB,0BAA0B;AACjD;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACtIA;AACA;;AAEA;AACA;AACA,EAAC;;AAED,2B;;;;;;ACPA;AACA;AACA;AACA,eAAc,OAAO;AACrB,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA,uB;;;;;;ACZA;;AAEA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,G;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,6CAA4C,YAAY,kBAAkB,kBAAkB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,cAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;;;;;;AC3KA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA,4B;;;;;;ACdA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAS;AACT;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA,kDAAiD;AACjD,oEAAmE;AACnE,8DAA6D;AAC7D,6CAA4C;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/JA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACZA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;AC3DA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,4B;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,gBAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAG;AACH,qBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC7SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,wBAAuB,SAAS;AAChC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,MAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,oCAAmC,OAAO;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;;AAGA;AACA;AACA,0DAAyD;AACzD;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA,YAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACzkBA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACtHtC;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,G;;;;;;ACTA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,6B;;;;;;AC5BA;;AAEA;AACA;AACA;AACA;;AAEA,6B;;;;;;ACPA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAqC,mDAAmD;AACxF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;;AAGA;AACA,MAAK;AACL;;;;;;;AChEA;;AAEA;AACA;AACA;AACA,kCAAiC;AACjC,4CAA2C;AAC3C,UAAS;AACT,mDAAkD;AAClD;AACA;AACA;AACA;AACA,sCAAqC,uBAAuB,wDAAwD;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,8CAA8C;AACvE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA2B;AAC3B;AACA;AACA,E","file":"checkout.src.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 87ded8c134afd5a1d28a\n **/","'use strict';\n\nvar cookies = require('doc-cookies');\nvar listen = require('event-listener');\nvar merge = require('lodash.merge');\nvar once = require('lodash.once');\nvar postRobot = require('post-robot');\n\nvar constants = require('./constants');\nvar css = require('./css');\nvar device = require('./device');\nvar dom = require('./dom');\nvar buttonGenerator = require('./gen-button');\nvar guid = require('./guid');\nvar IframeFactory = require('./iframes');\nvar lightbox = require('./lightbox');\nvar Mask = require('./mask');\nvar redirect = require('./redirect');\nvar XoEmitter = require('./xo-emitter');\n\nvar blocker = require('./util/blocker');\nvar _log = require('./util/log');\nvar ready = require('./util/ready');\nvar removePanels = require('./util/remove-panels');\nvar loadScript = require('./util/script-loader');\nvar getECToken = require('./util/token-from-url');\nvar ownPropertyShim = require('./util/own-property-shim'); // ie hacks for same-origin\n\nrequire('./shim');\n(function() {\n /** PRIVATE **/\n\n var paypal = paypal || {};\n\n if (window.paypal && window.paypal.checkout) {\n _log(constants.ERROR_MESSAGES.PAYPAL_GLOBAL_OVERRIDE);\n return;\n }\n\n (function() {\n function addToNamespace(obj) {\n var namespace = window.PAYPAL || {};\n namespace.apps = namespace.apps || {};\n namespace.apps.Checkout = namespace.apps.Checkout || {};\n\n for (var prop in obj) {\n namespace.apps.Checkout[prop] = obj[prop];\n }\n\n // (Backwards compatibility) Setting up aliases for convenience\n namespace.checkout = namespace.apps.Checkout;\n\n // Export \"PAYPAL\" and \"paypal\" as globals\n window.PAYPAL = window.paypal = namespace;\n }\n\n /**\n * Creates an instance of the in-context MiniBrowser UI\n * @param {Object} userConfig Overrides to the default configuration\n */\n paypal.checkout = (function() {\n var xoEmitter = new XoEmitter();\n var app = {},\n config = {\n name: constants.MINI_BROWSER_NAME, // This is eventually changed to something like: PPFrame1a2b3c4d5e, etc.\n css: '$STYLES$',\n secureWindow: constants.CONTENT_SECURE_WINDOW, // This can be modified by the parent app\n continueLink: constants.CONTINUE_LINK,\n locale: constants.DEFAULT_LOCALE, // This can be modified by the parent app\n trigger: null,\n isSmartPhone: false,\n isWebView: false,\n merchantID: null,\n showMiniB: true,\n sandBox: false,\n devMode: false,\n version: '3.0',\n log: true,\n cookiedExp: cookies.getItem('PPXOEXP'),\n debug: cookies.getItem('PPDEBUG'),\n domain: cookies.getItem('PPDOMAIN'),\n urlPrefix: cookies.getItem('PPURLPREFIX'),\n oldIe: navigator.userAgent.match(/MSIE [87]\\./i),\n // IE can only postmessage from window to iframe\n needsIframeBridge: !!navigator.userAgent.match(/MSIE|trident|edge/i),\n prefetchLoaded: false,\n cookieCheckLoaded: false,\n currentAgent: device.getAgent(),\n merchantConfig: null,\n guid: null,\n enableOneTouch: true,\n bodyStyle: null,\n oneTouchEnabled: false,\n thirdPartyCookiesEnabled: false,\n forceLightboxDisabled: false,\n lightboxOpened: false,\n popupOpened: false\n },\n requireBtnJs = false,\n btnList = [],\n isOpen = false,\n errMsg = '', // eslint-disable-line no-unused-vars\n ecToken = null,\n jsBtnConfigs = [],\n setupCalled = false,\n oneTouchShowed = false,\n // blocker = null,\n mask = null,\n merchantServiceUrl = null,\n listeners = [];\n\n app.urlPrefix = '';\n\n function formatStatus(statusMessage, buttonCount, hasOneTouch) {\n if (buttonCount > 0) {\n statusMessage += '_JS';\n }\n if (hasOneTouch) {\n statusMessage += '_ONETOUCH';\n }\n return statusMessage;\n }\n\n /**\n * Tracking various events\n * @param {object} msg to send via beacon\n * @returns {null}\n */\n function _track(msg, isError) {\n var url = config.sandBox ? constants.SANDBOX_URL_ROOT : constants.LIVE_URL_ROOT,\n msgStr;\n\n if (config.log && typeof msg === 'object') {\n merge(msg, {\n merchantSite: document.domain,\n version: config.version,\n token: ecToken,\n guid: config.guid,\n oneTouchShowed: oneTouchShowed.toString(),\n jsBtnConfig: jsBtnConfigs,\n status: formatStatus(msg.status, jsBtnConfigs.length, oneTouchShowed)\n });\n\n msgStr = encodeURIComponent(JSON.stringify(msg));\n url = url + '/webapps/' + (config.merchantConfig.app || 'hermes') + '/api/log?event=' + msg.status +\n '&state=merchant_incontext&token=' + (ecToken ? ecToken : 'undefined') // token='undefined' for FEEL logging\n +\n '&level=' + (isError ? 'error' : 'info') +\n '&cb=' + Date.now() +\n '&msg=' + msgStr;\n\n var beacon = new Image();\n beacon.src = url;\n\n if (config.debug) {\n _log(decodeURIComponent(msgStr));\n }\n }\n }\n\n function callNewSetup() {\n var oldButtonEl = document.querySelectorAll('[data-paypal-button]'),\n sandboxEl = document.querySelectorAll('[data-paypal-sandbox]'),\n merchantIdEl = document.querySelectorAll('[data-paypal-id]');\n\n // Don't construct setup call if merchant doesn't have any old configuration\n if (oldButtonEl.length || sandboxEl.length || merchantIdEl.length) {\n var oldButtons = oldButtonEl.length ? oldButtonEl : [],\n environment = sandboxEl.length ? 'sandbox' : 'production',\n merchantId = merchantIdEl.length ? merchantIdEl[0].getAttribute('data-paypal-id') : document.domain;\n\n paypal.checkout.setup(merchantId, {\n environment: environment,\n button: oldButtons\n });\n\n _track({\n status: 'IC_CUSTOM_BUTTON_SCAN'\n });\n\n }\n }\n\n // Function call for data-paypal-button\n if (typeof window.paypalCheckoutReady !== 'function') {\n ready(callNewSetup);\n }\n\n function _removePanelsIfSamePage(conf) {\n // From startFlow or single page apps with # cancel urls\n if (conf.fromStartFlow || window.location.href.split('#')[0] === conf.cancelUrl.split('#')[0]) {\n removePanels(conf);\n }\n }\n\n function _doReturn(conf) {\n _track({\n status: 'IC_DESTROY_TO_RETURN_URL'\n });\n\n if (conf.fromStartFlow) {\n if (isOpen) {\n removePanels(conf);\n }\n }\n\n if (!conf.async) {\n return redirect(window, conf.returnUrl);\n }\n }\n\n function _doCancel(conf) {\n _track({\n status: 'IC_DESTROY_TO_CANCEL_URL'\n });\n\n _removePanelsIfSamePage(conf);\n\n if (!conf.async) {\n return redirect(window, conf.cancelUrl);\n }\n }\n\n function _closeWindow(win) {\n if (win && win.close) {\n win.close();\n }\n }\n\n /**\n * Clear body class of the merchant website when user closes lightbox/miniBrowser / returns back to the merchant\n * @param {string} className which is equal to the Mini browser name, e.g PPFrameac5f5777\n */\n function _clearBodyIframeClass(className) {\n document.body.className = document.body.className.replace(className, '');\n }\n\n /**\n * Remove all the events for an instance\n */\n function _removeEvents() {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].remove();\n }\n blocker.unblock();\n }\n\n /**\n * Custom event which does some cleanup: all UI DOM nodes and custom events\n * are removed from the current page\n *\n * @param {Event} e The event object\n */\n var _destroy = once(function (event) {\n _clearBodyIframeClass(config.name);\n\n var wrapper = document.getElementById(config.name);\n\n if (app.heartbeat) {\n // To avoid double refresh triggering from timeout loop\n clearTimeout(app.heartbeat);\n }\n\n if (app.windowAccessCrash) {\n // don't destroy if the window crashed out\n return;\n }\n\n // If the lightbox is open, transition it out and remove it.\n if (config.lightboxOpened && !config.popupOpened) {\n lightbox.destroy(app, config, function() {\n _removeEvents();\n isOpen = false;\n\n _closeWindow(app.win);\n\n if (config.returnUrl) {\n _doReturn(config);\n } else {\n _doCancel(config);\n }\n });\n xoEmitter.emit('cancel', {\n returnUrl: config.cancelUrl\n });\n return;\n }\n\n if (isOpen && wrapper && wrapper.parentNode) {\n // Update the content from the post message response\n // var msg = document.querySelector('#PPFrame .message');\n var msg = document.querySelector('#' + config.name + ' .message');\n if (msg && config.cancelUrl) {\n msg.innerHTML = constants.CONTENT_LOADING;\n\n if (!config.returnUrl) {\n _track({\n status: 'IC_DESTROY_TO_CANCEL_URL'\n });\n\n // From startFlow or single page apps with # cancel urls\n var probablySinglePageApp = (window.location.href.split('#')[0] === config.cancelUrl.split('#')[0]);\n if (config.fromStartFlow || probablySinglePageApp) {\n removePanels(config);\n }\n\n if (!config.async) {\n // fix corner edge when hit refresh button in the browser\n _closeWindow(app.win);\n return redirect(window, config.cancelUrl);\n }\n }\n\n // if no cancel or return url is passed in\n } else if (!config.returnUrl) {\n removePanels(config);\n _track({\n status: 'IC_DESTROY_NO_CANCEL_RETURN_URL'\n });\n }\n }\n\n _removeEvents();\n removePanels(config);\n\n isOpen = false;\n\n _closeWindow(app.win);\n\n if (config.returnUrl) {\n _track({\n status: 'IC_DESTROY_TO_RETURN_URL'\n });\n if (config.fromStartFlow && isOpen) {\n removePanels(config);\n }\n if (config.async) {\n xoEmitter.emit('return', {\n returnUrl: config.returnUrl\n });\n return;\n }\n\n mask.hide();\n\n if (!config.async) {\n return redirect(window, config.returnUrl);\n }\n }\n });\n\n function getCheckoutDimensions() {\n var left;\n var top;\n var width = constants.MINI_BROWSER_WIDTH;\n var height = constants.MINI_BROWSER_HEIGHT;\n\n if (window.outerWidth) {\n left = Math.round((window.outerWidth - width) / 2) + window.screenX;\n top = Math.round((window.outerHeight - height) / 2) + window.screenY;\n } else if (window.screen.width) {\n left = Math.round((window.screen.width - width) / 2);\n top = Math.round((window.screen.height - height) / 2);\n }\n\n return {\n left: left,\n top: top,\n width: width,\n height: height\n };\n }\n\n function _openMiniBrowser() {\n var loading = document.querySelector('#' + config.name + ' .ppmodal.loading');\n var dimensions = getCheckoutDimensions();\n var winOpened = false;\n var win;\n\n win = app.win = window.open('about:blank', config.name, 'top=' + dimensions.top + ', left=' + dimensions.left + ', width=' + dimensions.width + ', height=' + dimensions.height + ', location=1, status=1, toolbar=0, menubar=0, resizable=1, scrollbars=1');\n\n // (Backwards compatibility) Adding \"win\" to the global namespace for merchants from the past using internal APIS :|\n addToNamespace({\n win: win\n });\n\n // Popup blocked case\n if (!win) {\n _track({\n status: 'IC_CLICK_OPEN_MB_FAILED'\n }, true);\n if (config.async) {\n xoEmitter.emit('failure', {\n error: constants.ERROR_MESSAGES.CANNOT_WRITE_TO_MINI_BROWSER\n });\n }\n return window;\n // for sync ajax case\n } else if (ecToken) {\n _track({\n status: 'IC_CLICK_OPEN_MB_SUCCESS_SYNC_AJAX'\n });\n if (config.async) {\n xoEmitter.emit('success', {\n token: ecToken\n });\n }\n }\n\n if (win && win.focus) {\n win.focus();\n }\n\n if (loading) {\n loading.className = 'ppmodal';\n }\n\n // Show the loading screen on the opened popup window till merchant does a 302 after setEC call\n try {\n dom.injectLoadingInterstitial(win.document);\n if (config.async) {\n xoEmitter.emit('success', {\n token: ecToken\n });\n }\n } catch (err) {\n // For IE9 and IE10 win.document gets permission denied if win.domain is reset to a new domain\n try {\n // this is hacky and should be replaced by something better asap\n var docDomHax = 'javascript' + ':' + 'void((function(){document.open();document.domain=\"' + document.domain + '\";})())';\n win.location = docDomHax;\n dom.injectLoadingInterstitial(win.document);\n if (config.async) {\n xoEmitter.emit('success', {\n token: ecToken\n });\n }\n } catch (e) {\n _log(constants.ERROR_MESSAGES.CANNOT_WRITE_TO_MINI_BROWSER);\n\n // since we could not communicate with the window, we will close it\n // otherwise it will sit there staring our user with it's about:blank stare\n // don't fire destroy when we close the window\n clearInterval(app.intVal);\n // incase destroy is queued we don't want it to go anywhere.\n // @todo: this could be abstracted into some kind of manager since\n // there are other exit conditions now stacking up.\n app.windowAccessCrash = true;\n win.close();\n if (config.async) {\n xoEmitter.emit('failure', {\n error: constants.ERROR_MESSAGES.CANNOT_WRITE_TO_MINI_BROWSER\n });\n }\n }\n }\n\n winOpened = true;\n\n if (winOpened) {\n var initUrl = win.location.href;\n\n app.heartbeat = setTimeout(function pollMiniBrowser() {\n if (win) {\n // Polling minibrowser to detect if window is close, if closed redirect the parent window to return/cancel url\n try {\n if (win.closed) {\n winOpened = false;\n config.popupOpened = false;\n if (app.heartbeat) {\n clearTimeout(app.heartbeat);\n app.heartbeat = undefined;\n return _destroy();\n }\n } else {\n // when mb is opened, check whether merchant site page is loaded in mb\n try {\n var currentUrl = win.location.href;\n // Skip checking if current url is undefined, empty string '', or 'about:blank'\n var isDifferentInitUrl = !!currentUrl && (initUrl !== currentUrl) && (currentUrl.indexOf('about:blank') === -1);\n // Skip checking if merchant service url is not defined in html (mostly ajax case)\n var isNotMerchantServiceUrlWhenPassed = (!merchantServiceUrl || currentUrl.indexOf(merchantServiceUrl) !== 0);\n // In case that paypal.com is the merchant or somehow the current page is the paypal checkout page\n var isPayPalCheckoutPage = (/paypal\\.com(.)+token=/gi).test(currentUrl);\n\n if (isDifferentInitUrl && isNotMerchantServiceUrlWhenPassed && !isPayPalCheckoutPage) {\n // merchant (not initial or service to call setec) page is loaded in mb\n _track({\n status: 'IC_MERCHANT_PAGE_LOADED_IN_MINIBROWSER'\n });\n winOpened = false;\n _destroy();\n if (config.async) {\n xoEmitter.emit('failure', {\n error: 'IC_MERCHANT_PAGE_LOADED_IN_MINIBROWSER'\n });\n }\n\n redirect(window, currentUrl);\n\n return;\n }\n } catch (e) {\n // showing non merchant site page, reset initUrl in case the new merchant page url\n // loaded in mb is the same as the initial one\n initUrl = null;\n }\n if (app.heartbeat) {\n clearTimeout(app.heartbeat);\n app.heartbeat = setTimeout(pollMiniBrowser, 500);\n }\n }\n\n } catch (err) {\n // ie error\n _track({\n status: 'IC_WINDOW_ACCESS_DENIED'\n }, true);\n }\n }\n\n }, 500);\n }\n\n return win;\n }\n\n function _focus() {\n if (app.win && app.win.focus) {\n app.win.focus();\n }\n\n postRobot.send(app.win || config.name + 'frame', 'focus', function(err) {\n if (err) {\n if (app.win && app.win.focus) {\n app.win.focus();\n }\n }\n });\n }\n\n /**\n * Sets up the events for an instance\n */\n function _bindEvents() {\n var masque = document.getElementById('ppICMask');\n var maskMessaging = document.getElementById('ppICModal');\n var closeButton = document.getElementById('closeButton');\n var continueButton = document.getElementById('ppICContinue');\n\n var isButtonKey = function(event) {\n return (event.keyCode === 13 || event.keyCode === 32);\n };\n\n var _hustleAndFlow = function(event) {\n // focus on click, or if continue button, focus on spacebar/enter keys\n if (event.target !== continueButton || isButtonKey(event)) {\n _focus();\n paypal.checkout.startFlow();\n }\n };\n\n var _keyboardDestroy = function(event) {\n if (isButtonKey(event)) {\n _destroy();\n }\n };\n\n blocker.init({\n container: 'ppICModal',\n continue: 'ppbutton',\n close: 'closeButton'\n });\n\n if (masque) {\n blocker.block();\n listeners.push(listen(masque, 'click', _hustleAndFlow));\n }\n\n if (maskMessaging) {\n listeners.push(listen(maskMessaging, 'click', _hustleAndFlow));\n listeners.push(listen(continueButton, 'keyup', _hustleAndFlow));\n }\n\n if (closeButton) {\n listeners.push(listen(closeButton, 'click', _destroy));\n listeners.push(listen(closeButton, 'keyup', _keyboardDestroy));\n }\n\n if (window.orientation) {\n listeners.push(listen(window, 'orientationchange', mask.create));\n }\n listeners.push(listen(window, 'resize', mask.create));\n listeners.push(listen(window, 'unload', _destroy));\n listeners.push(listen(window, 'keyup', lightbox.toggle(_destroy)));\n }\n\n function _cancelIfMetaKey() {\n if (window.event) {\n // if user is holding shift, control, or command, let the link do its thing\n if (event.ctrlKey || event.shiftKey || event.metaKey) {\n _track({\n status: 'IC_RENDER_META_KEYPRESS'\n });\n return null;\n }\n }\n }\n\n /**\n * Renders and displays the UI\n *\n * @return {object} The new popup window object the flow will appear in.\n */\n function _render() {\n try {\n var elem = window.event ?\n window.event.currentTarget || window.event.target || window.event.srcElement : this;\n\n _cancelIfMetaKey();\n\n // PXP decision return not to show in-context flow\n if (config.showMiniB === false) {\n return null;\n }\n\n if (elem && elem.form) {\n elem.form.target = config.name;\n merchantServiceUrl = elem.form.action;\n } else if (elem && elem.tagName && elem.tagName.toLowerCase() === 'a') {\n elem.target = config.name;\n merchantServiceUrl = elem.href;\n } else if (elem && elem.tagName && (elem.tagName.toLowerCase() === 'img' || elem.tagName.toLowerCase() === 'button') && elem.parentNode.tagName.toLowerCase() === 'a') {\n elem.parentNode.target = config.name;\n merchantServiceUrl = elem.parentNode.href;\n } else if (elem && elem.tagName && elem.tagName.toLowerCase() === 'button' && elem.parentNode.parentNode.tagName.toLowerCase() === 'a') {\n elem.parentNode.parentNode.target = config.name;\n merchantServiceUrl = elem.parentNode.parentNode.href;\n } else if (this && this.hasOwnProperty('target') && typeof this.target !== 'undefined') { // not sure what this use case is\n this.target = config.name;\n merchantServiceUrl = this.action || this.href;\n }\n\n // Add PayPal specific css on the merchant site\n css.add(document, config);\n\n // If PayPal mask is not present only\n if (lightbox.isEnabled(config)) {\n app.lightbox = lightbox.build(config);\n setTimeout(function() {\n app.lightbox.panel.className += ' bounceInUp';\n\n config.lightboxOpened = true;\n config.popupOpened = false;\n }, 300);\n } else if (!document.querySelectorAll('#' + config.name).length) {\n dom.injectIncontext(null, config);\n\n _clearBodyIframeClass(config.name);\n\n mask.create();\n // _bindEvents();\n\n config.lightboxOpened = false;\n config.popupOpened = true;\n }\n\n _bindEvents();\n\n isOpen = true;\n\n return _openMiniBrowser();\n } catch (err) {\n _track({\n status: 'IC_RENDER_ERROR',\n error_msg: err\n }, true);\n errMsg = err;\n }\n }\n\n\n\n function _clickHandler(event, clickFn, condFn) {\n if (condFn && !condFn()) {\n return null;\n }\n\n if (clickFn) {\n clickFn(event);\n } else {\n _render.call(this, event);\n }\n }\n\n /*\n * Adds click event listeners\n */\n function _setTrigger(el, clickFn, condiFn) {\n if (el) {\n listen(el, 'click', function(event) {\n _clickHandler.call(this, event, clickFn, condiFn);\n });\n }\n }\n\n /*\n * Finds elements with data-paypal-button data attributes and adds click event listeners\n */\n function _setTriggers() {\n var i = btnList.length;\n\n while (i--) {\n var btnObj = btnList[i];\n _setTrigger(btnObj.element, btnObj.clickFn, btnObj.condFn);\n }\n }\n\n /**\n * Send close event to an iframe when user closes lightbox/miniBrowser / returns back to the merchant\n * Note: miniBrowser doesn't send a close message back to the parent,\n * so no need of postRobot.on('close'). Also miniBrowser sends back an error if CAN_CLOSE_SELF set to false,\n * but all we need is just destroy the window.\n * @param {string} Mini browser name, e.g PPFrameac5f5777\n */\n function _sendCloseEvent(name) {\n postRobot.send(name + 'frame', 'close', function() {\n _destroy();\n });\n }\n\n function _onCancel(err, data) {\n if (!err) {\n config.cancelUrl = (data.url || config.cancelUrl || '').replace(/&/g, '&');\n _sendCloseEvent(config.name);\n }\n }\n\n function _onReturn(err, data) {\n if (!err) {\n config.returnUrl = (data.url || config.returnUrl || '').replace(/&/g, '&');\n _sendCloseEvent(config.name);\n }\n }\n\n function _onPostRobotInit (err, data) {\n if (!err) {\n var secureWindowMessage = data && data.secureWindowmsg;\n var messageContainer = document.querySelector('#' + config.name + ' .message');\n\n if (secureWindowMessage) {\n config.secureWindow = secureWindowMessage;\n\n if (messageContainer) {\n messageContainer.innerHTML = secureWindowMessage;\n messageContainer.getElementsByClassName('ppbutton')[0].tabIndex = 1;\n }\n }\n\n var dimensions = getCheckoutDimensions();\n\n return {\n id: config.guid,\n dimensions: {\n top: dimensions.top,\n left: dimensions.left,\n width: dimensions.width,\n height: dimensions.height\n }\n };\n }\n }\n\n function _onPopupOpened (err, data) {\n if (!err) {\n var masque = document.getElementsByClassName('mask')[0];\n\n // 1. Render the mask w/ messaging\n dom.injectIncontext(null, config);\n\n // 2. Hide the lightbox\n document.getElementById('PPPanel').className = '';\n\n // 3. Hide the lightbox mask\n if (masque) {\n masque.parentNode.removeChild(masque);\n }\n\n // 4. Bind events (click events to re-focus, etc.)\n _bindEvents();\n\n // 5. Stateful flag for \"is the popup opened\", used all over the place\n isOpen = true;\n\n // 6. Stateful flags for \"is the lightbox enabled\", we're forcing the popup from here on...\n config.oneTouchEnabled = false;\n config.popupOpened = true;\n }\n }\n\n function _setupPostRobotHandler() {\n // Pass down config into the iframe when requested\n postRobot.on('init', _onPostRobotInit);\n\n // User closed browser -- clean up, hide overlay, and go to cancel url\n postRobot.on('cancel', _onCancel);\n\n // User completed checkout, so destroy the popup/lightbox and redirect to the return url\n postRobot.on('return', _onReturn);\n\n // Popup was opened -- show overlay\n postRobot.on('popup_opened', _onPopupOpened);\n }\n\n function _injectOneTouch(data) {\n if (data.popupHtml) {\n var taglineSpans = document.getElementsByClassName(constants.JS_BUTTON_TAGLINE_SPAN_STYLE);\n\n for (var i = 0; i < taglineSpans.length; i++) {\n taglineSpans[i].innerHTML = data.popupHtml;\n }\n\n // track one touch rendering event\n if (taglineSpans.length > 0) {\n oneTouchShowed = true;\n // Special tracking for one touch\n _track({\n 'status': 'IC_RENDER'\n });\n }\n }\n\n // Inject CSS in the \n if (data.popupCss) {\n var styleEl = document.createElement('style');\n\n styleEl.type = 'text/css';\n\n if (styleEl.stylesheet) {\n styleEl.stylesheet.cssText = data.popupCss;\n } else {\n styleEl.appendChild(document.createTextNode(data.popupCss));\n }\n\n document.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n }\n\n function _setupPostMessageHandler() {\n var eventMethod = window.addEventListener ? 'addEventListener' : 'attachEvent';\n var messageEvent = eventMethod === 'attachEvent' ? 'onmessage' : 'message';\n var eventer = window[eventMethod];\n\n var msg = document.querySelector('#' + config.name + ' .message');\n var data;\n\n // Browsers that support postMessage\n if (window.postMessage) {\n eventer(messageEvent, function(event) {\n // Domain check to accept post messages from PayPal domain only or in dev mode\n if (event.origin.match(/paypalobjects\\.com/i) || event.origin.match(/paypal\\.com/i) || config.devMode || event.origin.match(/localhost:8100/i)) {\n try {\n data = JSON.parse(event.data);\n } catch (e) {\n data = event.data;\n }\n\n // Normalizing URLs\n config.returnUrl = (data.returnUrl || config.returnUrl || '').replace(/&/g, '&');\n config.landingUrl = (data.landingUrl || config.landingUrl || '').replace(/&/g, '&');\n config.cancelUrl = (data.cancelUrl || config.cancelUrl || '').replace(/&/g, '&');\n\n // Specific operations\n var operation = data.operation;\n\n // If a browser supports third-party cookies.\n if (operation === 'cookie_check' && data.enabled) {\n config.thirdPartyCookiesEnabled = true;\n }\n\n // For lightbox resizing\n if (operation === 'lightbox_resize') {\n app.lightbox.iframe.style.height = data.height + 'px';\n app.lightbox.iframe.style.width = data.width + 'px';\n app.lightbox.panel.style.height = data.height + 'px';\n app.lightbox.panel.style.width = data.width + 'px';\n app.lightbox.panel.style.marginTop = -(data.height / 2) + 'px';\n }\n\n _injectOneTouch(data);\n\n // An app wants to destroy the mini-browser or lightbox and redirect to returnUrl\n if (data.updateParent && config.returnUrl) {\n if (msg) {\n msg.innerHTML = constants.CONTENT_LOADING;\n }\n\n data.cancelUrl = null;\n\n if (config.lightboxOpened && config.popupOpened) {\n _sendCloseEvent(config.name);\n } else {\n _destroy();\n }\n }\n\n // If an EC token wasn't distinctly set, grab it from the landingUrl\n if (!ecToken && config.landingUrl) {\n ecToken = getECToken(config.landingUrl);\n\n // logging for non-ajax case\n _track({\n status: 'IC_CLICK_OPEN_MB_SUCCESS_NON_AJAX'\n });\n }\n\n config.content = config.content || {};\n }\n });\n } else {\n _log(constants.ERROR_MESSAGES.POSTMESSAGE_INVALID_ORIGIN);\n }\n }\n\n function getUrlPrefix() {\n if (config.urlPrefix) {\n return config.urlPrefix;\n } else if (config.sandBox) {\n return constants.SANDBOX_URL_PREFIX;\n } else {\n return constants.LIVE_URL_PREFIX;\n }\n }\n\n /**\n * Detects if the browser is MiniBrowser eligible.\n * @param {none}\n * @returns {boolean} true if eligible\n */\n function _isICEligible() {\n var userAgent = navigator.userAgent.toLowerCase();\n\n config.isSmartPhone = device.isDevice(userAgent);\n config.isWebView = device.isWebView(userAgent);\n\n if (typeof config.currentAgent === 'object' && config.currentAgent.length === 2) {\n if (parseFloat(config.currentAgent[1]) < constants.SUPPORTED_AGENTS[config.currentAgent[0]]) {\n _track({\n status: 'IC_ELIGIBLITY_BROWSER_NOT_SUPPORTED',\n browser: config.currentAgent[0],\n browserversion: config.currentAgent[1]\n });\n return false;\n }\n }\n\n return !(config.isSmartPhone || config.isWebView || config.oldIe);\n }\n\n /**\n * Renders the initial checkout flow on the page\n * Basically an init function\n */\n function _init() {\n window.name = window.name === config.name ? '' : window.name;\n\n var gOldOnError = window.onerror;\n // Override previous handler.\n window.onerror = function errorHandler(errorMsg, url, lineNumber, columnNumber, err) {\n var message = (err && err.message) ? err.message : errorMsg;\n if (config.debug === 'true') {\n _track({\n status: 'IC_WINDOW_ERROR',\n errmsg: message,\n url: url\n }, true);\n }\n\n if (gOldOnError) {\n return gOldOnError(errorMsg, url, lineNumber, columnNumber, err);\n }\n return false;\n };\n\n // Add event listeners to PayPal trigger elements\n _setTriggers();\n\n // Do nothing if the device/browser is not eligible for in-context experience\n if (!_isICEligible()) {\n config.showMiniB = false;\n return;\n }\n\n var iframes = new IframeFactory(_track);\n\n if (config.needsIframeBridge) {\n // SetUp PayPal Bridge\n iframes.bridge(config);\n }\n\n // Setup a handler for all postMessage events for all incontext use cases\n _setupPostMessageHandler();\n\n // Setup handlers for post robot lifecycle events (init, popup opened, return, closed, etc.)\n _setupPostRobotHandler();\n\n // Determine if a user is eligible for the lightbox (fully logged in or onetouch enabled)\n lightbox.isEligible(config);\n\n // Determine if third-party cookies are enabled (for lightbox)\n iframes.thirdParty(config);\n\n // Setup prefetch iframe\n iframes.prefetch(config);\n }\n\n /**\n * Create Javascript buttons if needed based on merchant's setup and then initialize\n */\n function _initWithButtonGeneration() {\n btnList = buttonGenerator(config, jsBtnConfigs, btnList);\n\n _track({\n status: 'IC_SETUP',\n 'button-type': config.button ? 'STATIC' : 'JS',\n 'button-number': btnList.length\n });\n\n _init();\n\n // to ensure users not able to click static buttons before script is loaded\n var hideBtns = document.querySelectorAll('.' + constants.STATIC_BUTTON_HIDDEN_STYLE);\n var hideBtnsLength = hideBtns.length;\n for (var k = 0; k < hideBtnsLength; k++) {\n hideBtns[k].className = hideBtns[k].className.replace(constants.STATIC_BUTTON_HIDDEN_STYLE, '');\n }\n }\n\n function _requireLoadButtonJS() {\n if (window.paypal.button && window.paypal.button.create) { // eslint-disable-line no-undef\n return false;\n }\n\n var merchantConfig = config.merchantConfig,\n btnListConfig = merchantConfig.buttons;\n\n if (btnListConfig && btnListConfig.length) {\n for (var i in btnListConfig) {\n if (btnListConfig[i].container) {\n return true;\n }\n }\n } else if (merchantConfig && merchantConfig.container) {\n return true;\n }\n\n return false;\n }\n\n function _checkConditionAndLog(testValue, errorValue, errorStatus) {\n var verdict = (testValue === errorValue);\n if (verdict) {\n _log(constants.ERROR_MESSAGES[errorStatus]);\n _track({\n status: errorStatus,\n error_msg: constants.ERROR_MESSAGES[errorStatus]\n });\n }\n return verdict;\n }\n\n\n\n /** PUBLIC **/\n // paypal.checkout.setup(merchant, {\n // container: 'myContainer', // {String|HTMLElement|Array} Optional. `submit` and `click` events are hijacked when possible.\n // button: 'myButton', // {String|HTMLElement|Array} Optional. HTMLElement/ID of a custom buttom.\n // locale: 'en_US', // {String} Optional. Local code for localization. Defaults to 'en_US'\n // environment: 'production', // {String} Optional. Defaults to 'production'. Possible options are 'sandbox'.\n // app: 'hermes' // {String} Optional. Defaults to 'hermes'. Possible options are 'xoonboarding'.\n // click: function() {} // {Function} Optional. Overrides the behavior when the button is clicked.\n // condition: function() {} // {Function} Optional. Boolean if the PayPal popup should when button is clicked.\n // });\n app.setup = function(merchantId, merchantConfig) {\n // allow passing just an object in,\n // use merchantID option if passed in config\n if (!merchantConfig && typeof merchantId === 'object') {\n merchantConfig = merchantId;\n merchantId = merchantConfig.merchantID;\n }\n\n // update constants with app name specified\n var configApp = merchantConfig.app || constants.APP;\n for (var key in constants) {\n if (constants.hasOwnProperty(key) && constants[key].indexOf && constants[key].indexOf('{{app}}') > -1) {\n constants[key] = constants[key].replace('{{app}}', configApp);\n }\n }\n\n if (_checkConditionAndLog(setupCalled, true, 'IC_SETUP_CALLED_TWICE')) {\n return;\n }\n\n config.guid = guid.getGUID();\n config.frameGuid = config.guid.substring(0, 8);\n config.name += config.frameGuid;\n config.merchantID = merchantId;\n config.locale = merchantConfig.locale || config.locale;\n config.async = !!merchantConfig.async;\n\n config.bridgeUrl = merchantConfig.bridgeUrl;\n config.domain = merchantConfig.domain;\n\n if (_checkConditionAndLog(!merchantId, true, 'IC_SETUP_MERCHANTID_ERROR')) {\n return;\n }\n\n config.merchantConfig = merchantConfig;\n config.sandBox = merchantConfig.environment === 'sandbox' ? true : false;\n config.forceLightboxDisabled = merchantConfig.forceLightboxDisabled;\n\n if (config.sandBox) {\n _log(constants.ERROR_MESSAGES.SANDBOX_BANNER);\n }\n\n app.urlPrefix = getUrlPrefix();\n\n // (Backwards compatibility) Adding \"urlPrefix\" to the global namespace for merchants from the past using internal APIS :|\n addToNamespace({\n urlPrefix: app.urlPrefix,\n events: xoEmitter\n });\n\n requireBtnJs = _requireLoadButtonJS();\n\n if (requireBtnJs) {\n // fetch button.js\n loadScript(constants.BUTTON_JS_URL, _initWithButtonGeneration);\n } else {\n _initWithButtonGeneration();\n }\n\n // init mask\n mask = new Mask(config.name);\n\n // note that setup was called\n setupCalled = true;\n };\n\n /**\n * Public method to init the XO flow manually for ASYNC AJAX flow\n * This method need to be called before AJAX call is being made on merchant site\n * @param {null}\n */\n app.initXO = function() {\n // For non IC eligible browsers load the url in the same window\n if (!_isICEligible() || !config.showMiniB) {\n return;\n }\n _checkConditionAndLog(setupCalled, false, 'IC_INITXO_CALLED_BEFORE_SETUP');\n config.win = _render();\n };\n\n /**\n * Public method to start the flow manually, e.g. from Flash\n * @param {string} url or token of the landing page that needs to be loaded in mini browser\n */\n app.startFlow = function(url, opts) {\n _checkConditionAndLog(setupCalled, false, 'IC_STARTFLOW_CALLED_BEFORE_SETUP');\n ownPropertyShim();\n\n if (!url || typeof url === 'object') {\n // if mini browser already opens and url is not passed or caused by clicking on mask, then it is a restart\n return;\n }\n\n // allow override of config options when flow is started\n // does this need to be guarded at all? only set config\n // options originally in merchantConfig?\n if (opts) {\n for (var key in opts) {\n if (opts.hasOwnProperty(key)) {\n config[key] = opts[key];\n }\n }\n }\n\n url = url || config.landingUrl;\n\n // url can be either an url or token\n // if token is passed in\n if (url && url.toLowerCase && url.toLowerCase().indexOf('ec-') === 0) {\n url = app.urlPrefix + url;\n }\n\n if (url && url.match(/\\.paypal\\.com/i)) {\n config.fromStartFlow = true;\n }\n\n if (url) {\n url = url.replace(/\\s+$/, '');\n }\n\n try {\n ecToken = getECToken(url);\n } catch (err) {\n _log(constants.ERROR_MESSAGES.MISSING_EC_TOKEN);\n }\n\n // For non IC eligible browsers load the url in the same window\n if (!_isICEligible() || !config.showMiniB) {\n if (url) {\n location.href = url;\n } else {\n window.name = config.name;\n }\n return;\n }\n\n var win = config.win || _render();\n\n // If Mini browser is blocked by popup blocker assign the user to full context as fallback (legacy integrations)\n win = win || window;\n\n // If already Mini browser window is opened and changing the name in cross domain throws permission denied exception\n try {\n // only name the window if the win is not full context\n // otherwise apps will detect they are incontext\n if (win !== window) {\n win.name = win.name || config.name;\n }\n } catch (err) {\n _log(constants.ERROR_MESSAGES.MINI_BROWSER_ALREADY_OPEN);\n }\n\n if (url) {\n // only do this if url present and matching pp.\n if (url.match(/\\.paypal\\.com/i)) {\n if (config.prefetchLoaded) {\n url += '&prefetch=1';\n }\n if (config.cookieCheckLoaded) {\n url += '&cookie_check=1';\n }\n }\n if (win.location) {\n win.location = url;\n } else {\n win.src = url;\n }\n }\n\n // for async ajax case.\n if (config.win) {\n _track({\n status: 'IC_CLICK_OPEN_MB_SUCCESS_ASYNC_AJAX'\n });\n }\n };\n\n /**\n * Public method to close the flow's UI\n */\n app.closeFlow = function(successUrl) {\n _destroy();\n if (successUrl) {\n top.location.href = successUrl;\n }\n };\n\n // Return public methods\n return app;\n }());\n\n // Expose global namespace\n addToNamespace({\n initXO: paypal.checkout.initXO,\n startFlow: paypal.checkout.startFlow,\n closeFlow: paypal.checkout.closeFlow,\n restartFlow: paypal.checkout.startFlow,\n setup: paypal.checkout.setup\n });\n\n // If the merchant defined a paypalCheckoutReady function,\n // set it to run after window load\n ready(function() {\n if (typeof window.paypalCheckoutReady === 'function') {\n window.paypalCheckoutReady();\n }\n });\n\n }());\n\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/checkout.js\n ** module id = 1\n ** module chunks = 0\n **/","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.docCookies = f()}})(function(){var define,module,exports;\n/*\\\n|*|\n|*| :: cookies.js ::\n|*|\n|*| A complete cookies reader/writer framework with full unicode support.\n|*|\n|*| Revision #1 - September 4, 2014\n|*|\n|*| https://developer.mozilla.org/en-US/docs/Web/API/document.cookie\n|*| https://developer.mozilla.org/User:fusionchess\n|*|\n|*| This framework is released under the GNU Public License, version 3 or later.\n|*| http://www.gnu.org/licenses/gpl-3.0-standalone.html\n|*|\n|*| Syntaxes:\n|*|\n|*| * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])\n|*| * docCookies.getItem(name)\n|*| * docCookies.removeItem(name[, path[, domain]])\n|*| * docCookies.hasItem(name)\n|*| * docCookies.keys()\n|*|\n\\*/\n\nvar docCookies = {\n getItem: function (sKey) {\n if (!sKey) { return null; }\n return decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\n },\n setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) { return false; }\n var sExpires = \"\";\n if (vEnd) {\n switch (vEnd.constructor) {\n case Number:\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\n break;\n case String:\n sExpires = \"; expires=\" + vEnd;\n break;\n case Date:\n sExpires = \"; expires=\" + vEnd.toUTCString();\n break;\n }\n }\n document.cookie = encodeURIComponent(sKey) + \"=\" + encodeURIComponent(sValue) + sExpires + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\") + (bSecure ? \"; secure\" : \"\");\n return true;\n },\n removeItem: function (sKey, sPath, sDomain) {\n if (!this.hasItem(sKey)) { return false; }\n document.cookie = encodeURIComponent(sKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" + (sDomain ? \"; domain=\" + sDomain : \"\") + (sPath ? \"; path=\" + sPath : \"\");\n return true;\n },\n hasItem: function (sKey) {\n if (!sKey) { return false; }\n return (new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\")).test(document.cookie);\n },\n keys: function () {\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\n for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\n return aKeys;\n }\n};\n\nreturn docCookies;\n\n});\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/doc-cookies/docCookies.umd.js\n ** module id = 2\n ** module chunks = 0\n **/","'use strict'\n\nfunction listen(target, eventType, callback) {\n if (target == null) {\n throw new TypeError('target must be provided')\n }\n if (Object.prototype.toString.call(eventType) !== '[object String]') {\n throw new TypeError('eventType must be a string')\n }\n\n var eventTypes = eventType.split(' ').filter(Boolean)\n if (eventTypes.length === 0) {\n throw new Error('eventType must not be blank')\n }\n\n if (target.addEventListener) {\n eventTypes.forEach(function(eventType) {\n target.addEventListener(eventType, callback, false)\n })\n return {\n remove: function() {\n eventTypes.forEach(function(eventType) {\n target.removeEventListener(eventType, callback, false)\n })\n }\n }\n }\n else if (target.attachEvent) {\n eventTypes.forEach(function(eventType) {\n target.attachEvent('on' + eventType, callback)\n })\n return {\n remove: function() {\n eventTypes.forEach(function(eventType) {\n target.detachEvent('on' + eventType, callback)\n })\n }\n }\n }\n else {\n throw new TypeError('target must have addEventListener or attachEvent')\n }\n}\n\nmodule.exports = listen\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/event-listener/index.js\n ** module id = 3\n ** module chunks = 0\n **/","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/6.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = freeGlobal && typeof exports == 'object' && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a function that invokes `func` with its first argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Reflect = root.Reflect,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n enumerate = Reflect ? Reflect.enumerate : undefined,\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetPrototype = Object.getPrototypeOf,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = Object.keys,\n nativeMax = Math.max;\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (typeof key == 'number' && value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to search.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n if (!isFull) {\n stack['delete'](value);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n // Avoid a bug in IE 10-11 where objects with a [[Prototype]] of `null`,\n // that are composed entirely of index properties, return `false` for\n // `hasOwnProperty` checks of them.\n return object != null &&\n (hasOwnProperty.call(object, key) ||\n (typeof object == 'object' && key in object && getPrototype(object) === null));\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[objectToString.call(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't skip the constructor\n * property of prototypes or treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nvar baseKeys = overArg(nativeKeys, Object);\n\n/**\n * The base implementation of `_.keysIn` which doesn't skip the constructor\n * property of prototypes or treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n object = object == null ? object : Object(object);\n\n var result = [];\n for (var key in object) {\n result.push(key);\n }\n return result;\n}\n\n// Fallback for IE < 9 with es6-shim.\nif (enumerate && !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf')) {\n baseKeysIn = function(object) {\n return iteratorToArray(enumerate(object));\n };\n}\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n if (!(isArray(source) || isTypedArray(source))) {\n var props = keysIn(source);\n }\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObject(srcValue)) {\n stack || (stack = new Stack);\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(object[key], srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n });\n}\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = object[key],\n srcValue = source[key],\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n newValue = srcValue;\n if (isArray(srcValue) || isTypedArray(srcValue)) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else {\n isCommon = false;\n newValue = baseClone(srcValue, true);\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || (srcIndex && isFunction(objValue))) {\n isCommon = false;\n newValue = baseClone(srcValue, true);\n }\n else {\n newValue = objValue;\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a\n * [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) that affects\n * Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Gets the `[[Prototype]]` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {null|Object} Returns the `[[Prototype]]`.\n */\nvar getPrototype = overArg(nativeGetPrototype, Object);\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Creates an array of index keys for `object` values of arrays,\n * `arguments` objects, and strings, otherwise `null` is returned.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array|null} Returns index keys, else `null`.\n */\nfunction indexKeys(object) {\n var length = object ? object.length : undefined;\n if (isLength(length) &&\n (isArray(object) || isString(object) || isArguments(object))) {\n return baseTimes(length, String);\n }\n return null;\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 incorrectly makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value)) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8 which returns 'object' for typed array and weak map constructors,\n // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length,\n * else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object,\n * else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) ||\n objectToString.call(value) != objectTag || isHostObject(value)) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (typeof Ctor == 'function' &&\n Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString);\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n var isProto = isPrototype(object);\n if (!(isProto || isArrayLike(object))) {\n return baseKeys(object);\n }\n var indexes = indexKeys(object),\n skipIndexes = !!indexes,\n result = indexes || [],\n length = result.length;\n\n for (var key in object) {\n if (baseHas(object, key) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length))) &&\n !(isProto && key == 'constructor')) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n var index = -1,\n isProto = isPrototype(object),\n props = baseKeysIn(object),\n propsLength = props.length,\n indexes = indexKeys(object),\n skipIndexes = !!indexes,\n result = indexes || [],\n length = result.length;\n\n while (++index < propsLength) {\n var key = props[index];\n if (!(skipIndexes && (key == 'length' || isIndex(key, length))) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = merge;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash.merge/index.js\n ** module id = 4\n ** module chunks = 0\n **/","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/buildin/module.js\n ** module id = 5\n ** module chunks = 0\n **/","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8 which returns 'object' for typed array and weak map constructors,\n // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/6.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = isFunction(value.valueOf) ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = once;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/lodash.once/index.js\n ** module id = 6\n ** module chunks = 0\n **/","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"postRobot\",[],t):\"object\"==typeof exports?exports.postRobot=t():e.postRobot=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p=\"\",t(0)}([function(e,t,n){\"use strict\";function r(){(0,a.registerGlobals)(),u.util.debug(\"ID\",(0,i.getWindowID)()),u.util.listen(window,\"message\",s.messageListener),u.childWindows.register((0,i.getWindowID)(),window,u.util.getType()),(0,u.propagate)((0,i.getWindowID)())}Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);Object.keys(o).forEach(function(e){\"default\"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})});var i=n(3),u=n(13),s=n(11),a=n(15);r(),t[\"default\"]=e.exports},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.util=t.openBridge=t.reset=t.parent=void 0;var r=n(2);Object.keys(r).forEach(function(e){\"default\"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}})});var o=n(23);Object.keys(o).forEach(function(e){\"default\"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})});var i=n(24);Object.keys(i).forEach(function(e){\"default\"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}})});var u=n(25);Object.keys(u).forEach(function(e){\"default\"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}})});var s=n(11);Object.defineProperty(t,\"reset\",{enumerable:!0,get:function(){return s.resetListeners}});var a=n(16);Object.defineProperty(t,\"openBridge\",{enumerable:!0,get:function(){return a.openBridge}});var c=n(7);Object.defineProperty(t,\"util\",{enumerable:!0,get:function(){return c.util}});t.parent=c.util.getParent()},function(e,t,n){\"use strict\";function r(e){return a.promise.nodeify(new a.promise.Promise(function(t,n){if(!e.name)throw new Error(\"Expected options.name\");if(!e.window)throw new Error(\"Expected options.window\");if(u.CONFIG.MOCK_MODE)e.window=window;else if(\"string\"==typeof e.window){var r=document.getElementById(e.window);if(!r)throw new Error(\"Expected options.window \"+e.window+\" to be a valid element id\");if(\"iframe\"!==r.tagName.toLowerCase())throw new Error(\"Expected options.window \"+e.window+\" to be an iframe\");if(e.window=r.contentWindow,!e.window)throw new Error(\"Expected options.window\")}var o=e.name+\"_\"+a.util.uniqueID();if(s.listeners.response[o]=e,e.window.closed)throw new Error(\"Target window is closed\");e.timeout&&setTimeout(function(){return n(new Error(\"Post message response timed out after \"+e.timeout+\" ms\"))},e.timeout),e.respond=function(e,r){return e?n(e):t(r)},(0,s.sendMessage)(e.window,{hash:o,type:u.CONSTANTS.POST_MESSAGE_TYPE.REQUEST,name:e.name,data:e.data||{}})[\"catch\"](n),setTimeout(function(){return e.ack?void 0:n(new Error(\"No ack for postMessage \"+e.name))},u.CONFIG.ACK_TIMEOUT)}),e.callback)}function o(e,t,n,o){return!o&&n instanceof Function&&(o=n,n={}),r({window:e,name:t,data:n,callback:o})}function i(e,t,n){if(!a.util.getParent())throw new Error(\"Window does not have a parent\");return o(a.util.getParent(),e,t,n)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.request=r,t.send=o,t.sendToParent=i;var u=n(3),s=n(11),a=n(13)},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(4);Object.keys(r).forEach(function(e){\"default\"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}})});var o=n(5);Object.keys(o).forEach(function(e){\"default\"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})});var i=n(6);Object.keys(i).forEach(function(e){\"default\"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}})})},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});t.CONFIG={ALLOW_POSTMESSAGE_POPUP:!0,DEBUG:!1,ACK_TIMEOUT:3e3,LOG_TO_PAGE:!1,MOCK_MODE:!1}},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});t.CONSTANTS={POST_MESSAGE_TYPE:{REQUEST:\"postrobot_message_request\",RESPONSE:\"postrobot_message_response\",ACK:\"postrobot_message_ack\"},POST_MESSAGE_ACK:{SUCCESS:\"success\",ERROR:\"error\"},POST_MESSAGE_NAMES:{IDENTIFY:\"identify\"},WINDOW_TYPES:{FULLPAGE:\"fullpage\",POPUP:\"popup\",IFRAME:\"iframe\"},WINDOW_PROPS:{POSTROBOT:\"__postRobot__\"}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getWindowID=void 0;var r=n(7);t.getWindowID=r.util.memoize(function(){return window.name||r.util.uniqueID()})},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.util=void 0;var r=n(3),o=n(8),i=t.util={isPopup:function(){return Boolean(window.opener)},isIframe:function(){return Boolean(window.parent&&window!==window.parent)},isFullpage:function(){return Boolean(!i.isIframe()&&!i.isPopup())},windowReady:new o.promise.Promise(function(e,t){return\"complete\"===document.readyState?e():void window.addEventListener(\"load\",e)}),getType:function(){return i.isPopup()?r.CONSTANTS.WINDOW_TYPES.POPUP:i.isIframe()?r.CONSTANTS.WINDOW_TYPES.IFRAME:r.CONSTANTS.WINDOW_TYPES.FULLPAGE},once:function(e){if(!e)return e;var t=!1;return function(){return t?void 0:(t=!0,e.apply(this,arguments))}},getParent:function(){return i.isPopup()?window.opener:i.isIframe()?window.parent:void 0},eachParent:function(e,t){var n=window;for(t&&e(window);;){var r=n.opener||n.parent;if(n===r)return;n=r,e(n)}},eachFrame:function(e,t){for(var n=0;ne;e+=2)(0,W[e])(W[e+1]),W[e]=void 0,W[e+1]=void 0;C=0}function p(){}function w(e,t,n,r){try{e.call(t,n,r)}catch(o){return o}}function h(e,t,n){u(function(e){var r=!1,o=w(n,t,function(n){r||(r=!0,t!==n?g(e,n):S(e,n))},function(t){r||(r=!0,v(e,t))});!r&&o&&(r=!0,v(e,o))},e)}function O(e,t){1===t.a?S(e,t.b):2===e.a?v(e,t.b):m(t,void 0,function(t){g(e,t)},function(t){v(e,t)})}function g(e,t){if(e===t)v(e,new TypeError(\"You cannot resolve a promise with itself\"));else if(\"function\"==typeof t||\"object\"==typeof t&&null!==t)if(t.constructor===e.constructor)O(e,t);else{var n;try{n=t.then}catch(r){R.error=r,n=R}n===R?v(e,R.error):void 0===n?S(e,t):s(n)?h(e,t,n):S(e,t)}else S(e,t)}function E(e){e.f&&e.f(e.b),y(e)}function S(e,t){void 0===e.a&&(e.b=t,e.a=1,0!==e.e.length&&u(y,e))}function v(e,t){void 0===e.a&&(e.a=2,e.b=t,u(E,e))}function m(e,t,n,r){var o=e.e,i=o.length;e.f=null,o[i]=t,o[i+1]=n,o[i+2]=r,0===i&&e.a&&u(y,e)}function y(e){var t=e.e,n=e.a;if(0!==t.length){for(var r,o,i=e.b,u=0;ur;r++)this.j(n[r],r)},_.prototype.j=function(e,t){var n=this.n;\"object\"==typeof e&&null!==e?e.constructor===n&&void 0!==e.a?(e.f=null,this.g(e.a,t,e.b)):this.q(n.resolve(e),t):(this.d--,this.b[t]=this.h(e))},_.prototype.g=function(e,t,n){var r=this.c;void 0===r.a&&(this.d--,this.i&&2===e?v(r,n):this.b[t]=this.h(n)),0===this.d&&S(r,this.b)},_.prototype.h=function(e){return e},_.prototype.q=function(e,t){var n=this;m(e,void 0,function(e){n.g(1,t,e)},function(e){n.g(2,t,e)})};var D=0;N.all=function(e,t){return new _(this,e,!0,t).c},N.race=function(e,t){function n(e){g(o,e)}function r(e){v(o,e)}var o=new this(p,t);if(!M(e))return v(o,new TypeError(\"You must pass an array to race.\")),o;for(var i=e.length,u=0;void 0===o.a&&i>u;u++)m(this.resolve(e[u]),void 0,n,r);return o},N.resolve=function(e,t){if(e&&\"object\"==typeof e&&e.constructor===this)return e;var n=new this(p,t);return g(n,e),n},N.reject=function(e,t){var n=new this(p,t);return v(n,e),n},N.prototype={constructor:N,then:function(e,t){var n=this.a;if(1===n&&!e||2===n&&!t)return this;var r=new this.constructor(p),o=this.b;if(n){var i=arguments[n-1];u(function(){P(n,r,i,o)})}else m(this,r,e,t);return r},\"catch\":function(e){return this.then(null,e)}};var x={Promise:N,polyfill:function(){var e;e=\"undefined\"!=typeof i?i:\"undefined\"!=typeof window&&window.document?window:self,\"Promise\"in e&&\"resolve\"in e.Promise&&\"reject\"in e.Promise&&\"all\"in e.Promise&&\"race\"in e.Promise&&function(){var t;return new e.Promise(function(e){t=e}),s(t)}()||(e.Promise=N)}};r=function(){return x}.call(t,n,t,e),!(void 0!==r&&(e.exports=r))}).call(this)}).call(t,n(10),function(){return this}())},function(e,t){function n(){c&&u&&(c=!1,u.length?a=u.concat(a):f=-1,a.length&&r())}function r(){if(!c){var e=setTimeout(n);c=!0;for(var t=a.length;t;){for(u=a,a=[];++f1)for(var n=1;nContinue ',\n\n // Device\n SUPPORTED_AGENTS: {\n Chrome: 27,\n IE: 9,\n MSIE: 9,\n Firefox: 30,\n Safari: 5.1,\n Opera: 23\n },\n\n // Locale\n DEFAULT_LOCALE: 'en_US',\n\n // Mini-browser\n MINI_BROWSER_NAME: 'PPFrame',\n MINI_BROWSER_HEIGHT: 535,\n MINI_BROWSER_WIDTH: 450,\n\n // One touch related\n ONETOUCH_IFRAME_ID: 'paypalOneTouchIframe',\n JS_BUTTON_TAGLINE_SPAN_STYLE: 'paypal-button-tag-content',\n\n // URLs\n BUTTON_JS_URL: '//www.paypalobjects.com/api/button.js',\n ONETOUCH_IFRAME_URL: '//www.paypalobjects.com/api/oneTouch.html',\n\n LIVE_URL_PREFIX: 'https://www.paypal.com/checkoutnow?token=',\n LIVE_URL_ROOT: 'https://www.paypal.com',\n\n SANDBOX_URL_PREFIX: 'https://www.sandbox.paypal.com/checkoutnow?token=',\n SANDBOX_URL_ROOT: 'https://www.sandbox.paypal.com',\n\n // Templates\n TEMPLATES: '$TEMPLATES$',\n ERROR_MESSAGES: {\n IC_SETUP_CALLED_TWICE: 'Error: You are calling paypal.checkout.setup() more than once. This function can only be called once per page load. Any further calls will be ignored.',\n PAYPAL_GLOBAL_OVERRIDE: 'Error: window.paypal.checkout already exists. You may have inserted the checkout.js script more than once. Ignoring further attempts to assign to window.paypal.checkout.',\n POSTMESSAGE_INVALID_ORIGIN: 'Message received from invalid domain',\n IC_SETUP_MERCHANTID_ERROR: 'Merchant id is required for setup!',\n SANDBOX_BANNER: 'PayPal Incontext is running in sandbox mode. This message will not appear in production mode',\n MISSING_EC_TOKEN: 'EC Token is not passed in url passed by ajax response',\n MINI_BROWSER_ALREADY_OPEN: 'Mini browser window already opened and trying to change name',\n CANNOT_WRITE_TO_MINI_BROWSER: 'unable to write to minibrowser',\n BUYER_CANCELLED_TRANSACTION: 'Buyer cancelled the transaction',\n SETUP_MISSING_ELEMENT: 'IC_SETUP_CONTAINER_ERROR: Can\\'t find element ',\n IC_INITXO_CALLED_BEFORE_SETUP: 'paypal.checkout.initXO() was called before calling paypal.checkout.setup(). Please call paypal.checkout.setup() first.',\n IC_STARTFLOW_CALLED_BEFORE_SETUP: 'paypal.checkout.startFlow() was called before calling paypal.checkout.setup(). Please call paypal.checkout.setup() first.'\n },\n\n FOCUSABLE_ELEMENTS: [\n 'a[href]',\n 'area[href]',\n 'input',\n 'select',\n 'textarea',\n 'button',\n 'iframe',\n 'object',\n 'embed',\n '[tabindex]',\n '[contenteditable]'\n ]\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/constants.js\n ** module id = 8\n ** module chunks = 0\n **/","'use strict';\n\n/**\n* Embeds the CSS for the UI into the document head\n*/\nfunction _addCSS(document, config) {\n var css = config.css,\n styleEl = document.createElement('style');\n\n css = css.replace(new RegExp('PPFrame', 'g'), config.name);\n\n styleEl.type = 'text/css';\n config.bodyStyle = styleEl.id = 'PP--IC--CSS';\n\n if (styleEl.styleSheet) {\n styleEl.styleSheet.cssText = css;\n } else {\n styleEl.appendChild(document.createTextNode(css));\n }\n\n config.css = css;\n document.getElementsByTagName('head')[0].appendChild(styleEl);\n}\n\nfunction _removeCSS(document, config) {\n if (config.bodyStyle) {\n var styleEl = document.getElementById(config.bodyStyle);\n if (styleEl) {\n styleEl.parentNode.removeChild(styleEl);\n }\n }\n}\n\nmodule.exports = {\n add: _addCSS,\n remove: _removeCSS\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/css.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\n/**\n * Detects if the view is being rendered in mobile.\n * @param userAgent string\n * @returns {boolean} true if the view is loaded in mobile/tablet.\n */\n\nfunction isDevice(userAgent) {\n if (userAgent.match(/Android|webOS|iPhone|iPad|iPod|bada|Symbian|Palm|CriOS|BlackBerry|IEMobile|WindowsMobile|Opera Mini/i)) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Method to detect if the merchant page is in web view\n * @param userAgent string\n * @returns {boolean} True if web view\n */\nfunction isWebView(userAgent) {\n return (/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i).test(userAgent) || \n (/\\bwv\\b/).test(userAgent) || \n (/Android.*Version\\/(\\d)\\.(\\d)/i).test(userAgent);\n}\n\nfunction getAgent(agent) {\n var ua = agent || navigator.userAgent, tem,\n M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n if (/trident/i.test(M[1])) {\n tem = (/\\brv[ :]+(\\d+)/g).exec(ua) || [];\n return ['IE', tem[1] || ''];\n }\n if (M[1] === 'Chrome') {\n tem = ua.match(/\\bOPR\\/(\\d+)/);\n if (tem !== null) {\n return ['Opera', tem[1]];\n }\n }\n M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];\n if ((tem = ua.match(/version\\/(\\d+(\\.\\d{1,2}))/i)) !== null) {\n M.splice(1, 1, tem[1]);\n }\n return M;\n}\n\nmodule.exports = {\n getAgent: getAgent,\n isDevice: isDevice,\n isWebView: isWebView\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/device.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\nvar constants = require('./constants');\nvar template = require('./util/template');\n\n/**\n * Injects the incontext experience (mask, help text + mini browser) into the \n */\nfunction injectIncontext(options, config) {\n options = options || {};\n\n var incontextMarkup = template.render(constants.TEMPLATES.incontext, {\n error: options.error,\n secureWindow: config.secureWindow,\n continueLink: config.continueLink,\n closeWindow: constants.closeWindow\n });\n\n var incontextWrapper = document.createElement('div');\n incontextWrapper.id = config.name;\n incontextWrapper.innerHTML = incontextMarkup;\n\n document.body.appendChild(incontextWrapper);\n}\n\n/**\n * Injects the loading interstitial page into \"el\"\n */\nfunction injectLoadingInterstitial(el) {\n var loadingMarkup = template.render(constants.TEMPLATES.loading, {});\n\n el.write(loadingMarkup);\n}\n\nmodule.exports = {\n injectIncontext: injectIncontext,\n injectLoadingInterstitial: injectLoadingInterstitial\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/dom.js\n ** module id = 11\n ** module chunks = 0\n **/","/*eslint-disable */\n'use strict';\n\n/**\n * Didn't end up using a library like handlebars or ejs\n * because we want to keep this bundle as small as possible.\n */\n\n// John Resig - http://ejohn.org/ - MIT Licensed\n// Simple JavaScript Templating\n// http://ejohn.org/blog/javascript-micro-templating/\nvar cache = {};\n\nfunction render(str, data) {\n // Figure out if we're getting a template, or if we need to\n // load the template - and be sure to cache the result.\n data = data || {};\n\n var fn = !/\\W/.test(str) ?\n cache[str] = cache[str] ||\n render(document.getElementById(str).innerHTML) :\n\n // Generate a reusable function that will serve as a template\n // generator (and which will be cached).\n new Function(\"data\", \"var p=[],print=function(){p.push.apply(p,arguments);};\" + \"p.push('\" + str\n .replace(/[\\r\\t\\n]/g, \" \")\n .split(\"<%\").join(\"\\t\")\n .replace(/((^|%>)[^\\t]*)'/g, \"$1\\r\")\n .replace(/\\t=(.*?)%>/g, \"',$1,'\")\n .split(\"\\t\").join(\"');\")\n .split(\"%>\").join(\"p.push('\")\n .split(\"\\r\").join(\"\\\\'\") + \"');return p.join('');\");\n\n return fn(data);\n}\n\nmodule.exports = { render: render };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/util/template.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\nvar constants = require('./constants');\nvar listen = require('event-listener');\nvar redirect = require('./redirect');\nvar _log = require('./util/log');\n\nfunction _getBtnContainers(el, result) {\n // either an array or nodelist\n if (el.constructor.toString().indexOf('Array') > -1 || el.length > 0 && typeof el.item !== 'undefined') {\n for (var i = 0; i < el.length; i++) {\n _getBtnContainers(el[i], result);\n }\n } else {\n var domEl = typeof el === 'string' ? document.getElementById(el) : el;\n\n if (domEl) {\n result.push(domEl);\n } else {\n _log(constants.ERROR_MESSAGES.SETUP_MISSING_ELEMENT + el);\n }\n }\n}\n\nfunction _getBtnObject(element, clickFn, condFn) {\n return {\n element: element,\n clickFn: clickFn,\n condFn: condFn\n };\n}\n\nfunction _addButtonElement(config, btnList, jsBtnConfigs, container, btnOptions, clickFn, condFn) { // eslint-disable-line max-params\n\n var dataAttrs = {\n lc: (config.merchantConfig && config.merchantConfig.locale) || 'en_US',\n color: btnOptions.color || 'gold',\n shape: btnOptions.shape || 'pill',\n size: btnOptions.size || 'small'\n };\n\n var buttonDom = window.paypal.button.create(config.merchantID, dataAttrs, { // eslint-disable-line no-undef\n label: btnOptions.label,\n type: 'button'\n });\n\n var buttonEle = buttonDom.el,\n btnTagEle = buttonEle.getElementsByTagName('BUTTON')[0];\n\n if (config.enableOneTouch) {\n\n if (!document.getElementById(constants.ONETOUCH_IFRAME_ID)) {\n var oneTouchIframe = document.createElement('iframe');\n oneTouchIframe.setAttribute('id', constants.ONETOUCH_IFRAME_ID);\n oneTouchIframe.setAttribute('src', constants.ONETOUCH_IFRAME_URL);\n oneTouchIframe.style.display = 'none';\n document.body.appendChild(oneTouchIframe);\n }\n }\n\n // should bind onclick event in here\n if (container.nodeName === 'A') {\n btnList.push(_getBtnObject(container, clickFn, condFn));\n\n // for IE8-, button inside of link doesn't work\n if (config.oldIe) {\n listen(btnTagEle, 'click', function () {\n redirect(container.getAttribute('href'));\n });\n }\n // a form\n } else {\n btnList.push(_getBtnObject(btnTagEle, clickFn, condFn));\n }\n container.appendChild(buttonEle);\n\n // Add js button related options for tracking\n dataAttrs.label = btnOptions.label;\n jsBtnConfigs.push(dataAttrs);\n\n}\n\nfunction buttonGenerator(config, jsBtnConfigs, btnList) {\n\n var merchantConfig = config.merchantConfig,\n jsBtnIds = merchantConfig && merchantConfig.container,\n customBtnIds = merchantConfig && merchantConfig.button,\n jsBtnTypes = merchantConfig && merchantConfig.type || [],\n color = merchantConfig && merchantConfig.color,\n size = merchantConfig && merchantConfig.size,\n shape = merchantConfig && merchantConfig.shape,\n condFn = merchantConfig && merchantConfig.condition,\n clickFn = merchantConfig && merchantConfig.click,\n btnsConfigList = merchantConfig && merchantConfig.buttons,\n btnContainers = [];\n\n if (btnsConfigList && btnsConfigList.length) {\n for (var i = 0; i < btnsConfigList.length; i++) {\n var btnConfig = btnsConfigList[i];\n var elId = btnConfig.container || btnConfig.button;\n var elDom = typeof elId === 'string' ? document.getElementById(elId) : elId;\n\n if (btnConfig.container) {\n _addButtonElement(config, btnList, jsBtnConfigs, elDom, {\n label: btnConfig.type || 'checkout',\n color: btnConfig.color,\n shape: btnConfig.shape,\n size: btnConfig.size\n }, btnConfig.click, btnConfig.condition);\n } else if (btnConfig.button) {\n btnList.push(_getBtnObject(elDom, btnConfig.click, btnConfig.condition));\n }\n }\n } else {\n // get all container list\n _getBtnContainers(jsBtnIds || customBtnIds, btnContainers);\n\n for (var j = 0; j < btnContainers.length; j++) {\n if (customBtnIds) {\n btnList.push(_getBtnObject(btnContainers[j], clickFn, condFn));\n } else {\n var buttonParams = {\n label: jsBtnTypes[j] || 'checkout',\n color: color,\n shape: shape,\n size: size\n };\n _addButtonElement(config, btnList, jsBtnConfigs, btnContainers[j], buttonParams, clickFn, condFn);\n }\n }\n }\n\n return btnList;\n}\n\nmodule.exports = buttonGenerator;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/gen-button.js\n ** module id = 13\n ** module chunks = 0\n **/","'use strict';\nvar once = require('lodash.once');\n\nvar redirect = once(function (window, location) {\n window.location.href = location;\n});\n\nmodule.exports = redirect;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/redirect.js\n ** module id = 14\n ** module chunks = 0\n **/","'use strict';\n/**\n * Logs the msg to the console.\n * @param {string} msg to print in console\n * @returns {null}\n */\nfunction _log(msg) {\n if (window.console) {\n console.log(msg);\n }\n}\n\nmodule.exports = _log;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/util/log.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\n/**\n * Generates a GUID string.\n * @returns {String} The generated GUID.\n * @example af8a8416-6e18-a307-bd9c-f2c947bbb3aa\n * @author Slavik Meltser (slavik@meltser.info).\n * @link http://slavik.meltser.info/?p=142\n */\nfunction getGUID() {\n function _p8(s) {\n var p = (Math.random().toString(16) + '000000000').substr(2, 8);\n return s ? '-' + p.substr(0, 4) + '-' + p.substr(4, 4) : p;\n }\n return _p8() + _p8(true) + _p8(true) + _p8();\n}\n\nmodule.exports = {\n getGUID: getGUID\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/js/guid.js\n ** module id = 16\n ** module chunks = 0\n **/","'use strict';\nvar listen = require('event-listener');\nvar constants = require('./constants');\nvar getDomain = require('./util/domain');\n\nvar trk = function () {\n\n};\n\nfunction _nao() {\n // get high-res time, fallback to classic datetime\n var perfNow = window.performance && window.performance.now && window.performance.now();\n var now = parseInt(perfNow || new Date().getTime(), 10);\n return now;\n}\n\n/**\n * Creates an invisible iframe (used for beacons, bridges, prefetch loaders) given a name and URL\n *\n * @returns {HTMLIFrameElement}\n */\nfunction _setupIframe(name, url) {\n var iframe;\n\n // workaround: IE6 + 7 won't let you name an iframe after you create it\n try {\n iframe = document.createElement('