{"version":3,"file":"deepai.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;ACVA,yCAAuC;;;;;;;;ACA1B;;AAEb,YAAY,mBAAO,CAAC,GAAY;AAChC,aAAa,mBAAO,CAAC,EAAkB;AACvC,cAAc,mBAAO,CAAC,GAAsB;AAC5C,eAAe,mBAAO,CAAC,GAAuB;AAC9C,oBAAoB,mBAAO,CAAC,EAAuB;AACnD,mBAAmB,mBAAO,CAAC,GAA2B;AACtD,sBAAsB,mBAAO,CAAC,GAA8B;AAC5D,kBAAkB,mBAAO,CAAC,EAAqB;AAC/C,eAAe,mBAAO,CAAC,GAAa;AACpC,aAAa,mBAAO,CAAC,GAAkB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;ACnNa;;AAEb,YAAY,mBAAO,CAAC,GAAS;AAC7B,WAAW,mBAAO,CAAC,GAAgB;AACnC,YAAY,mBAAO,CAAC,GAAc;AAClC,kBAAkB,mBAAO,CAAC,GAAoB;AAC9C,eAAe,mBAAO,CAAC,GAAY;;AAEnC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,GAAiB;AACxC,oBAAoB,mBAAO,CAAC,GAAsB;AAClD,iBAAiB,mBAAO,CAAC,GAAmB;AAC5C,gBAAgB,kCAA6B;;AAE7C;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,GAAkB;;AAEzC;AACA,qBAAqB,mBAAO,CAAC,GAAwB;;AAErD;;AAEA;AACA,yBAAsB;;;;;;;;;ACxDT;;AAEb;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;AClBa;;AAEb,aAAa,mBAAO,CAAC,GAAU;;AAE/B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACtHa;;AAEb;AACA;AACA;;;;;;;;;ACJa;;AAEb,YAAY,mBAAO,CAAC,GAAY;AAChC,eAAe,mBAAO,CAAC,GAAqB;AAC5C,yBAAyB,mBAAO,CAAC,GAAsB;AACvD,sBAAsB,mBAAO,CAAC,GAAmB;AACjD,kBAAkB,mBAAO,CAAC,GAAe;AACzC,gBAAgB,mBAAO,CAAC,GAAsB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;AC1Ja;;AAEb,YAAY,mBAAO,CAAC,GAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;ACrDa;;AAEb,oBAAoB,mBAAO,CAAC,GAA0B;AACtD,kBAAkB,mBAAO,CAAC,GAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnBa;;AAEb,mBAAmB,mBAAO,CAAC,GAAgB;;AAE3C;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;;;;;;;;ACjBa;;AAEb,YAAY,mBAAO,CAAC,GAAY;AAChC,oBAAoB,mBAAO,CAAC,GAAiB;AAC7C,eAAe,mBAAO,CAAC,GAAoB;AAC3C,eAAe,mBAAO,CAAC,GAAa;AACpC,aAAa,mBAAO,CAAC,GAAkB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;;ACtFa;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1Ca;;AAEb,YAAY,mBAAO,CAAC,GAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,2BAA2B;AAC3B,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;AClGa;;AAEb,kBAAkB,mBAAO,CAAC,EAAe;;AAEzC;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxBa;;AAEb,YAAY,mBAAO,CAAC,GAAY;AAChC,eAAe,mBAAO,CAAC,GAAe;;AAEtC;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,OAAO;AAClB,WAAW,gBAAgB;AAC3B,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;ACrBa;;AAEb,YAAY,mBAAO,CAAC,GAAS;AAC7B,0BAA0B,mBAAO,CAAC,EAA+B;AACjE,mBAAmB,mBAAO,CAAC,GAAqB;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,GAAgB;AACtC,IAAI;AACJ;AACA,cAAc,mBAAO,CAAC,GAAiB;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;ACrIA;AACA;AACA;;;;;;;;ACFa;;AAEb;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;;AAEb,YAAY,mBAAO,CAAC,GAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACrEa;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,GAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C,SAAS;;AAET;AACA,4DAA4D,wBAAwB;AACpF;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,kCAAkC;AAClC,gCAAgC,cAAc;AAC9C;AACA;AACA,KAAK;AACL;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACba;;AAEb,YAAY,mBAAO,CAAC,GAAY;;AAEhC;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;;;;;;;;ACZa;;AAEb,YAAY,mBAAO,CAAC,GAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;ACnEa;;AAEb,YAAY,mBAAO,CAAC,GAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;ACXa;;AAEb,YAAY,mBAAO,CAAC,GAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;ACpDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1Ba;;AAEb,cAAc,kCAA8B;;AAE5C;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;ACjFa;;AAEb,WAAW,mBAAO,CAAC,GAAgB;;AAEnC;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,4BAA4B;AAC5B,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5VAA,yCAAA;;;;;;;;ACAa;;;;;;AACb,IAAMG,KAAK,GAAGD,mBAAO,CAAC,GAAD,CAArB,EACA;AACA;;;AAEA,IAAME,UAAU,GAAGF,kCAAnB;;AAEA,IAAMI,eAAe,GAAGJ,mBAAO,CAAC,GAAD,CAA/B;;AAEA,IAAMK,YAAY,GAAGC,QAAQ,CAAC,aAAD,CAAR,EAArB;;AAEA,IAAID,YAAY,CAACE,QAAjB,EAA2B;AACzB,MAAIC,QAAQ,GAAGH,YAAY,CAACE,QAA5B;AACD,CAFD,MAEO;AACL,MAAIC,QAAQ,GAAGC,IAAI,CAAC,sBAAD,CAAnB,CADK,CAEL;AACD;AAED;AACA;AACA;AACA;;;AAEA,SAASC,MAAT,GAAkB;AAChB,OAAKC,aAAL,GAAqBV,KAAK,CAACW,MAAN,CAAa;AAChCC,IAAAA,OAAO,EAAE;AAAE,wBAAkB;AAApB;AADuB,GAAb,CAArB;AAGD;;AAEDH,MAAM,CAACI,SAAP,CAAiBC,SAAjB,GAA6B,UAAUC,MAAV,EAAkB;AAC7C,OAAKA,MAAL,GAAcA,MAAd;AACA,OAAKL,aAAL,CAAmBM,QAAnB,CAA4BJ,OAA5B,CAAoCK,MAApC,CAA2C,SAA3C,IAAwDF,MAAxD;AACD,CAHD;;AAKA,SAASG,WAAT,CAAqBC,UAArB,EAAiC;AAC/B,SAAOlB,UAAU,GAAG,OAAb,GAAuBkB,UAA9B;AACD;;AAEDV,MAAM,CAACI,SAAP,CAAiBO,eAAjB;AAAA,yEAAmC,iBACjCD,UADiC,EAEjCE,aAFiC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAI3BC,YAAAA,IAJ2B,GAIpB,IAAIf,QAAJ,EAJoB;AAAA,mCAKjBgB,MAAM,CAACC,IAAP,CAAYH,aAAZ,CALiB;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAKxBI,YAAAA,GALwB;;AAAA,kBAQ3BJ,aAAa,CAACI,GAAD,CAAb,KAAuB,IAAvB,IAA+BJ,aAAa,CAACI,GAAD,CAAb,KAAuBC,SAR3B;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA,kBAY3B,OAAOL,aAAa,CAACI,GAAD,CAApB,KAA8B,QAZH;AAAA;AAAA;AAAA;;AAa7BH,YAAAA,IAAI,CAACK,MAAL,CAAYF,GAAZ,EAAiBJ,aAAa,CAACI,GAAD,CAA9B,EAb6B,CAaS;;AAbT;AAAA;;AAAA;AAAA,kBAe7BrB,YAAY,CAACwB,OAAb,IACAP,aAAa,CAACI,GAAD,CAAb,YAA8BrB,YAAY,CAACwB,OAhBd;AAAA;AAAA;AAAA;;AAkBzBC,YAAAA,OAlByB,GAkBfR,aAAa,CAACI,GAAD,CAlBE;;AAAA,kBAmBzBI,OAAO,CAACC,OAAR,KAAoB,KAnBK;AAAA;AAAA;AAAA;;AAAA,iBAsBvBD,OAAO,CAACE,GAtBe;AAAA;AAAA;AAAA;;AAuBzB;AACAT,YAAAA,IAAI,CAACK,MAAL,CAAYF,GAAZ,EAAiBI,OAAO,CAACE,GAAzB,EAxByB,CA0BzB;AACA;;AA3ByB;AAAA;;AAAA;AAAA,kBA6BnB,IAAIC,KAAJ,CAAU,6CAA6CP,GAAvD,CA7BmB;;AAAA;AAAA;AAAA;;AAAA;AAAA,kBA+BlBI,OAAO,CAACC,OAAR,KAAoB,OAApB,IAA+BD,OAAO,CAACI,KAAR,KAAkBP,SA/B/B;AAAA;AAAA;AAAA;;AAAA,kBAiCvBG,OAAO,CAACI,KAAR,CAAcC,MAAd,GAAuB,CAjCA;AAAA;AAAA;AAAA;;AAkCzBZ,YAAAA,IAAI,CAACK,MAAL,CAAYF,GAAZ,EAAiBI,OAAO,CAACI,KAAR,CAAc,CAAd,CAAjB,EAAmC,WAAnC;AAlCyB;AAAA;;AAAA;AAAA,kBAoCnB,IAAID,KAAJ,CACJ,mDAAmDP,GAD/C,CApCmB;;AAAA;AAAA;AAAA;;AAAA;AAAA,kBAyCrB,IAAIO,KAAJ,CAAU,6CAA6CP,GAAvD,CAzCqB;;AAAA;AAAA;AAAA;;AAAA;AAAA,iBA2CpBJ,aAAa,CAACI,GAAD,CAAb,CAAmBU,cAAnB,CAAkC,IAAlC,CA3CoB;AAAA;AAAA;AAAA;;AA4C7B;AACAb,YAAAA,IAAI,CAACK,MAAL,CAAYF,GAAZ,EAAiBJ,aAAa,CAACI,GAAD,CAA9B,EA7C6B,CA6CS;;AA7CT;AAAA;;AAAA;AAAA,kBA8CpBrB,YAAY,CAACgC,MAAb,IAAuBA,MAAM,CAACC,QAAP,CAAgBhB,aAAa,CAACI,GAAD,CAA7B,CA9CH;AAAA;AAAA;AAAA;;AA+C7BH,YAAAA,IAAI,CAACK,MAAL,CAAYF,GAAZ,EAAiBJ,aAAa,CAACI,GAAD,CAA9B,EAAqC,WAArC,EA/C6B,CA+CsB;;AA/CtB;AAAA;;AAAA;AAAA,kBAiDvB,IAAIO,KAAJ,CAAU,+CAA+CP,GAAzD,CAjDuB;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAsD7Ba,YAAAA,WAtD6B,GAsDf;AAChBC,cAAAA,eAAe,EAAE;AADD,aAtDe;;AAyDjC,gBAAIjB,IAAI,CAACkB,UAAL,KAAoBd,SAAxB,EAAmC;AACjC;AACAY,cAAAA,WAAW,CAAC1B,OAAZ,GAAsBU,IAAI,CAACkB,UAAL,EAAtB;AACD;;AA5DgC;AAAA,mBA6DV,KAAK9B,aAAL,CAAmB+B,IAAnB,CACrBvB,WAAW,CAACC,UAAD,CADU,EAErBG,IAFqB,EAGrBgB,WAHqB,CA7DU;;AAAA;AA6D3BI,YAAAA,QA7D2B;AAAA,6CAkE1BA,QAAQ,CAACC,IAlEiB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAnC;;AAAA,WAAkDC,OAAlD;AAAA;AAAA;;AAAA,SAAkDA,OAAlD;AAAA;;AAqEAnC,MAAM,CAACI,SAAP,CAAiBgC,uBAAjB,GACE1C,eAAe,CAAC0C,uBADlB;AAEApC,MAAM,CAACI,SAAP,CAAiBiC,gCAAjB,GACE3C,eAAe,CAAC2C,gCADlB;AAGAjD,MAAM,CAACC,OAAP,GAAiBW,MAAjB;;;;;;;;AChHa;;AAEbZ,MAAM,CAACC,OAAP,GAAiB;AACfI,EAAAA,OAAO,EAAE,wBADM,CAEf;;AAFe,CAAjB;;;;;;;;ACFa;;;;;;;;;;;;;;AACb,IAAMD,UAAU,GAAGF,kCAAnB;;AAEA,IAAIgD,UAAU,GAAG,CACf,kBADe,EACK;AACpB,kBAFe,EAEK;AACpB,iBAHe,EAGI;AACnB,kBAJe,EAIK;AACpB,kBALe,EAKK;AACpB,mBANe,EAMM;AACrB,oBAPe,EAOO;AACtB,oBARe,EAQO;AACtB,oBATe,EASO;AACtB,mBAVe,EAUM;AACrB,mBAXe,EAWM;AACrB,kBAZe,EAYK;AACpB,oBAbe,EAaO;AACtB,oBAde,CAcO;AACtB;AACA;AAhBe,CAAjB;AAkBA,IAAIC,UAAU,GAAG,IAAIC,MAAJ,CAAW,iBAAX,EAA8B,GAA9B,CAAjB;AACA,IAAIC,YAAY,GAAG,IAAID,MAAJ,CAAW,eAAX,EAA4B,GAA5B,CAAnB;;AAEA,SAASE,sBAAT,CAAgCC,GAAhC,EAAqC;AACnC,MAAIJ,UAAU,CAACK,IAAX,CAAgBD,GAAhB,KAAwBF,YAAY,CAACG,IAAb,CAAkBD,GAAlB,CAA5B,EAAoD;AAClD,WAAOA,GAAP,CADkD,CACtC;AACb,GAFD,MAEO;AACL,WAAOnD,UAAU,GAAGmD,GAApB,CADK,CACoB;AAC1B;AACF;;AAED,SAASE,gBAAT,CAA0BC,OAA1B,EAAmCC,IAAnC,EAAyCC,GAAzC,EAA8C;AAC5C;AACA,MAAIC,YAAY,GAAG,EAAnB;;AAF4C,6CAG3BH,OAH2B;AAAA;;AAAA;AAG5C,wDAA0B;AAAA,UAAjBI,IAAiB;;AACxB,UAAIA,IAAI,CAACzB,MAAL,GAAc,CAAlB,EAAqB;AACnB;AACD;;AAEDwB,MAAAA,YAAY,CAACE,IAAb,CAAkB,GAAlB;AACA,UAAIC,KAAK,GAAG,IAAZ;;AANwB,kDAONF,IAPM;AAAA;;AAAA;AAOxB,+DAAwB;AAAA,cAAfG,KAAe;AACtBJ,UAAAA,YAAY,CAACE,IAAb,CAAkBE,KAAK,CAAC,CAAD,CAAL,GAAWN,IAAX,GAAkB,GAAlB,IAAyBM,KAAK,CAAC,CAAD,CAAL,GAAWL,GAApC,CAAlB;;AACA,cAAIM,KAAK,CAACD,KAAK,CAAC,CAAD,CAAN,CAAL,IAAmBC,KAAK,CAACD,KAAK,CAAC,CAAD,CAAN,CAA5B,EAAwC;AACtCE,YAAAA,OAAO,CAACC,GAAR,CAAY,wCAAZ;AACA,mBAAO,EAAP;AACD;;AACD,cAAIJ,KAAJ,EAAW;AACTH,YAAAA,YAAY,CAACE,IAAb,CAAkB,GAAlB;AACAC,YAAAA,KAAK,GAAG,KAAR;AACD;AACF;AAjBuB;AAAA;AAAA;AAAA;AAAA;;AAkBxBH,MAAAA,YAAY,CAACE,IAAb,CAAkB,GAAlB;AACD;AAtB2C;AAAA;AAAA;AAAA;AAAA;;AAuB5C,SAAOF,YAAY,CAACQ,IAAb,CAAkB,GAAlB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;SACeC;;;;;0FAAf,iBAA4CC,MAA5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBACMA,MAAM,CAACC,GADb;AAAA;AAAA;AAAA;;AAEIL,YAAAA,OAAO,CAACC,GAAR,CAAY,8CAAZ;AAFJ,6CAGWG,MAHX;;AAAA;AAAA;AAAA,mBAK6BE,KAAK,CAC9BrE,UAAU,GAAG,gCAAb,GAAgDmE,MAAM,CAACG,EADzB,EAE9B;AACEC,cAAAA,WAAW,EAAE;AADf,aAF8B,CALlC;;AAAA;AAKMC,YAAAA,cALN;AAAA;AAAA,mBAWyBA,cAAc,CAACC,IAAf,EAXzB;;AAAA;AAWED,YAAAA,cAXF;AAYME,YAAAA,WAZN,GAYoBF,cAAc,CAACE,WAZnC,EAcE;;AAdF,6CAeS;AACLN,cAAAA,GAAG,EAAED,MAAM,CAACC,GADP;AAELO,cAAAA,MAAM,EAAER,MAAM,CAACQ,MAFV;AAGLC,cAAAA,UAAU,EAAET,MAAM,CAACS,UAHd;AAILN,cAAAA,EAAE,EAAEH,MAAM,CAACG,EAJN;AAKLO,cAAAA,MAAM,EAAEH,WAAW,CAACG,MALf;AAMLC,cAAAA,eAAe,EAAEJ,WAAW,CAACI,eANxB;AAOLC,cAAAA,aAAa,EAAEL,WAAW,CAACK;AAPtB,aAfT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AA0BA,SAASlC,gCAAT,CAA0CmC,eAA1C,EAA2DpD,OAA3D,EAAoE;AAClEA,EAAAA,OAAO,CAACqD,SAAR,GAAoB,EAApB,CADkE,CAC1C;;AACxB,MAAID,eAAe,CAACZ,GAApB,EAAyB;AACvBxC,IAAAA,OAAO,CAACqD,SAAR,GAAoBb,GAApB;AACA,WAAO,KAAP;AACD;;AACD,MAAIY,eAAe,CAACL,MAApB,EAA4B;AAC1B;AACAZ,IAAAA,OAAO,CAACC,GAAR,CAAY,yBAAZ;;AACA,QAAI,OAAOgB,eAAe,CAACL,MAAvB,KAAkC,QAAtC,EAAgD;AAC9C,UAAIO,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAf;AACAF,MAAAA,QAAQ,CAACG,KAAT,CAAeC,KAAf,GAAuB,MAAvB;AACAJ,MAAAA,QAAQ,CAACG,KAAT,CAAeE,MAAf,GAAwB,MAAxB;AACAL,MAAAA,QAAQ,CAACG,KAAT,CAAeG,QAAf,GAA0B,MAA1B;AACAN,MAAAA,QAAQ,CAACG,KAAT,CAAeI,OAAf,GAAyB,MAAzB;AACAP,MAAAA,QAAQ,CAACG,KAAT,CAAeK,UAAf,GAA4B,QAA5B;AACAR,MAAAA,QAAQ,CAACG,KAAT,CAAeM,aAAf,GAA+B,QAA/B;AACA/D,MAAAA,OAAO,CAACgE,WAAR,CAAoBV,QAApB;AACA,UAAIW,GAAG,GAAGV,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAV;AACAS,MAAAA,GAAG,CAACC,WAAJ,GAAkBd,eAAe,CAACL,MAAlC;AACAkB,MAAAA,GAAG,CAACR,KAAJ,CAAUU,UAAV,GAAuB,UAAvB;AACAF,MAAAA,GAAG,CAACR,KAAJ,CAAUW,MAAV,GAAmB,KAAnB;AACAd,MAAAA,QAAQ,CAACU,WAAT,CAAqBC,GAArB,EAb8C,CAc9C;;AAd8C,kDAe5Bb,eAAe,CAACH,MAfY;AAAA;;AAAA;AAe9C,+DAA0C;AAAA,cAAjCoB,KAAiC;;AACxC,cAAIA,KAAK,CAACC,MAAV,EAAkB;AAChB,gBAAIC,OAAO,GAAGhB,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd;AACAe,YAAAA,OAAO,CAACrE,GAAR,GAAcoB,sBAAsB,CAAC+C,KAAK,CAAC9C,GAAP,CAApC;AACAgD,YAAAA,OAAO,CAACd,KAAR,CAAce,QAAd,GAAyB,UAAzB;AACAD,YAAAA,OAAO,CAACd,KAAR,CAAcC,KAAd,GAAsB,MAAtB;AACAa,YAAAA,OAAO,CAACd,KAAR,CAAcE,MAAd,GAAuB,OAAvB;AACAY,YAAAA,OAAO,CAACd,KAAR,CAAcgB,SAAd,GAA0B,SAA1B;AACAnB,YAAAA,QAAQ,CAACU,WAAT,CAAqBO,OAArB;AACD;AACF;AAzB6C;AAAA;AAAA;AAAA;AAAA;;AA0B9C,aAAO,IAAP;AACD,KA3BD,MA2BO,IAAI,QAAOnB,eAAe,CAACL,MAAvB,MAAkC,QAAtC,EAAgD;AACrD;AACA,UACEK,eAAe,CAACH,MAAhB,CAAuB5C,MAAvB,IAAiC,CAAjC,IACA+C,eAAe,CAACH,MAAhB,CAAuB,CAAvB,EAA0BqB,MAD1B,IAEAlB,eAAe,CAACF,eAHlB,EAIE;AACA;AACAf,QAAAA,OAAO,CAACC,GAAR,CAAY,iCAAZ;AACA,YAAIsC,YAAY,GAAGnB,QAAQ,CAACC,aAAT,CAAuB,QAAvB,CAAnB,CAHA,CAIA;;AACAkB,QAAAA,YAAY,CAACC,MAAb,GAAsB,YAAY;AAChC;AACA,cAAIC,QAAQ,GAAGF,YAAY,CAACG,eAAb,CAA6BC,IAA5C;AACAF,UAAAA,QAAQ,CAACnB,KAAT,CAAeW,MAAf,GAAwB,KAAxB;AACAQ,UAAAA,QAAQ,CAACnB,KAAT,CAAeG,QAAf,GAA0B,QAA1B;AAEA;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKU,cAAImB,cAAc,GAAGxB,QAAQ,CAACC,aAAT,CAAuB,sBAAvB,CAArB;AACAuB,UAAAA,cAAc,CAACtB,KAAf,CAAqBe,QAArB,GAAgC,UAAhC,CAzBgC,CAyBY;;AAC5CO,UAAAA,cAAc,CAACtB,KAAf,CAAqBuB,OAArB,GAA+B,OAA/B,CA1BgC,CA0BQ;;AACxCJ,UAAAA,QAAQ,CAACZ,WAAT,CAAqBe,cAArB;AACA,cAAIR,OAAO,GAAGhB,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd;AACAe,UAAAA,OAAO,CAACrE,GAAR,GAAcoB,sBAAsB,CAAC8B,eAAe,CAACH,MAAhB,CAAuB,CAAvB,EAA0B1B,GAA3B,CAApC;AACAgD,UAAAA,OAAO,CAACd,KAAR,CAAce,QAAd,GAAyB,UAAzB;AACAO,UAAAA,cAAc,CAACf,WAAf,CAA2BO,OAA3B;;AACA,cAAIU,aAAa,GAAG,SAAhBA,aAAgB,GAAY;AAC9B9C,YAAAA,OAAO,CAACC,GAAR,CAAY,eAAZ;AACAsC,YAAAA,YAAY,CAACG,eAAb,CAA6BC,IAA7B,CAAkCrB,KAAlC,CAAwCyB,SAAxC,GAAoD,IAApD;AACA,gBAAIC,SAAS,GAAGT,YAAY,CAACG,eAAb,CAA6BC,IAA7B,CAAkCM,WAAlD;AACA,gBAAIC,UAAU,GAAGX,YAAY,CAACG,eAAb,CAA6BC,IAA7B,CAAkCQ,YAAnD;AACA,gBAAIC,QAAQ,GAAGhB,OAAO,CAACiB,WAAvB;AACA,gBAAIC,SAAS,GAAGlB,OAAO,CAACmB,YAAxB;AACA,gBAAIC,cAAc,GAAGjB,YAAY,CAACc,WAAlC;AACA,gBAAII,eAAe,GAAGlB,YAAY,CAACgB,YAAnC;AACA,gBAAIG,OAAO,GAAG,CAAd;AACA,gBAAIC,OAAO,GAAG,CAAd;;AACA,gBAAIP,QAAQ,GAAGJ,SAAX,IAAwBM,SAAS,GAAGJ,UAAxC,EAAoD;AAClD,kBAAIU,MAAM,GAAGJ,cAAc,GAAGJ,QAA9B;AACA,kBAAIS,MAAM,GAAGJ,eAAe,GAAGH,SAA/B;AACA,kBAAIQ,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASJ,MAAT,EAAiBC,MAAjB,CAAf;AACAH,cAAAA,OAAO,GAAGF,cAAc,GAAGJ,QAAQ,GAAGU,QAAtC;AACAH,cAAAA,OAAO,GAAGF,eAAe,GAAGH,SAAS,GAAGQ,QAAxC;AACD,aAND,MAMO;AACL,kBAAIF,MAAM,GAAGJ,cAAc,GAAGR,SAA9B;AACA,kBAAIa,MAAM,GAAGJ,eAAe,GAAGP,UAA/B;AACA,kBAAIY,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASJ,MAAT,EAAiBC,MAAjB,CAAf;AACAH,cAAAA,OAAO,GAAGF,cAAc,GAAGR,SAAS,GAAGc,QAAvC;AACAH,cAAAA,OAAO,GAAGF,eAAe,GAAGP,UAAU,GAAGY,QAAzC;AACD;;AACDJ,YAAAA,OAAO,GAAGA,OAAO,GAAGI,QAApB;AACAH,YAAAA,OAAO,GAAGA,OAAO,GAAGG,QAApB;AACAvB,YAAAA,YAAY,CAACG,eAAb,CAA6BC,IAA7B,CAAkCrB,KAAlC,CAAwC2C,eAAxC,GACE,UADF;AAGA1B,YAAAA,YAAY,CAACG,eAAb,CAA6BC,IAA7B,CAAkCrB,KAAlC,CAAwCyB,SAAxC,GACE,WAAWe,QAAX,GAAsB,GADxB;AAEAlB,YAAAA,cAAc,CAACtB,KAAf,CAAqB4C,WAArB,CAAiC,gBAAjC,EAAmDJ,QAAnD;AACAlB,YAAAA,cAAc,CAACtB,KAAf,CAAqB4C,WAArB,CACE,aADF,EAEE,MAAMJ,QAAN,GAAiB,GAFnB;AAKAlB,YAAAA,cAAc,CAACtB,KAAf,CAAqB9B,IAArB,GAA4BkE,OAAO,GAAG,CAAV,GAAc,IAA1C;AACAd,YAAAA,cAAc,CAACtB,KAAf,CAAqB7B,GAArB,GAA2BkE,OAAO,GAAG,CAAV,GAAc,IAAzC;AACAf,YAAAA,cAAc,CAACtB,KAAf,CAAqBuB,OAArB,GAA+B,GAA/B;AACD,WAxCD;;AAyCAN,UAAAA,YAAY,CAAC4B,aAAb,CAA2BC,QAA3B,GAAsCtB,aAAtC;AACAV,UAAAA,OAAO,CAACI,MAAR,GAAiBM,aAAjB;AACA,cAAIuB,qBAAqB,GAAGC,mBAAmB,CAC7CrD,eAAe,CAACL,MAD6B,EAE7CK,eAAe,CAACF,eAF6B,EAG7CE,eAAe,CAACD,aAH6B,CAA/C;AAKAhB,UAAAA,OAAO,CAACC,GAAR,CAAY,uBAAZ,EAAqCoE,qBAArC;AACA,cAAIE,CAAC,GAAG,CAAR;;AAjFgC,sDAkFTF,qBAlFS;AAAA;;AAAA;AAkFhC,mEAA8C;AAAA,kBAArCG,UAAqC;AAC5C,kBAAIC,IAAI,GAAGrD,QAAQ,CAACC,aAAT,CAAuB,aAAvB,CAAX;AACAoD,cAAAA,IAAI,CAACnD,KAAL,CAAWe,QAAX,GAAsB,UAAtB;AAEA,kBAAI7C,IAAJ;AACA,kBAAIC,GAAJ;AACA,kBAAI8B,KAAJ;AACA,kBAAIC,MAAJ;AACA,kBAAIkD,KAAK,GAAG3F,UAAU,CAACwF,CAAC,KAAKxF,UAAU,CAACb,MAAlB,CAAtB;;AAEA,kBAAIsG,UAAU,CAACG,aAAf,EAA8B;AAC5B,oBAAIC,IAAI,GAAG,IAAX;AACA,oBAAIC,IAAI,GAAG,IAAX;AACA,oBAAIC,IAAI,GAAG,IAAX;AACA,oBAAIC,IAAI,GAAG,IAAX;;AAJ4B,4DAMXP,UAAU,CAACG,aANA;AAAA;;AAAA;AAM5B,yEAA2C;AAAA,wBAAlChF,IAAkC;;AAAA,gEACvBA,IADuB;AAAA;;AAAA;AACzC,6EAAwB;AAAA,4BAAfG,KAAe;AACtB,4BAAIkF,CAAC,GAAGlF,KAAK,CAAC,CAAD,CAAb;AACA,4BAAImF,CAAC,GAAGnF,KAAK,CAAC,CAAD,CAAb;;AAEA,4BAAI8E,IAAI,KAAK,IAAT,IAAiBI,CAAC,GAAGJ,IAAzB,EAA+B;AAC7BA,0BAAAA,IAAI,GAAGI,CAAP;AACD;;AACD,4BAAIH,IAAI,KAAK,IAAT,IAAiBI,CAAC,GAAGJ,IAAzB,EAA+B;AAC7BA,0BAAAA,IAAI,GAAGI,CAAP;AACD;;AACD,4BAAIH,IAAI,KAAK,IAAT,IAAiBE,CAAC,GAAGF,IAAzB,EAA+B;AAC7BA,0BAAAA,IAAI,GAAGE,CAAP;AACD;;AACD,4BAAID,IAAI,KAAK,IAAT,IAAiBE,CAAC,GAAGF,IAAzB,EAA+B;AAC7BA,0BAAAA,IAAI,GAAGE,CAAP;AACD;AACF;AAjBwC;AAAA;AAAA;AAAA;AAAA;AAkB1C;AAxB2B;AAAA;AAAA;AAAA;AAAA;;AA0B5B1D,gBAAAA,KAAK,GAAGuD,IAAI,GAAGF,IAAf;AACApD,gBAAAA,MAAM,GAAGuD,IAAI,GAAGF,IAAhB;AAEArF,gBAAAA,IAAI,GAAGoF,IAAP;AACAnF,gBAAAA,GAAG,GAAGoF,IAAN;AAEA,oBAAIK,GAAG,GAAG9D,QAAQ,CAAC+D,eAAT,CACR,4BADQ,EAER,KAFQ,CAAV;AAKAD,gBAAAA,GAAG,CAAC5D,KAAJ,CAAUe,QAAV,GAAqB,UAArB;AACA6C,gBAAAA,GAAG,CAAC5D,KAAJ,CAAUG,QAAV,GAAqB,SAArB;AACAyD,gBAAAA,GAAG,CAAC5D,KAAJ,CAAUC,KAAV,GAAkBA,KAAK,GAAG,IAA1B;AACA2D,gBAAAA,GAAG,CAAC5D,KAAJ,CAAUE,MAAV,GAAmBA,MAAM,GAAG,IAA5B;AAEA,oBAAI4D,IAAI,GAAGhE,QAAQ,CAAC+D,eAAT,CACT,4BADS,EAET,MAFS,CAAX;AAIAC,gBAAAA,IAAI,CAACC,cAAL,CACE,IADF,EAEE,GAFF,EAGE/F,gBAAgB,CAACkF,UAAU,CAACG,aAAZ,EAA2BnF,IAA3B,EAAiCC,GAAjC,CAHlB;AAKA2F,gBAAAA,IAAI,CAAC9D,KAAL,CAAWgE,IAAX,GAAkB,MAAlB;AACAF,gBAAAA,IAAI,CAAC9D,KAAL,CAAWiE,MAAX,GAAoBb,KAApB;AACAU,gBAAAA,IAAI,CAAC9D,KAAL,CAAWkE,WAAX,GAAyB,iCAAzB,CArD4B,CAqDgC;;AAE5DN,gBAAAA,GAAG,CAACrD,WAAJ,CAAgBuD,IAAhB;AACAX,gBAAAA,IAAI,CAAC5C,WAAL,CAAiBqD,GAAjB;AAEAT,gBAAAA,IAAI,CAACnD,KAAL,CAAWmE,MAAX,GAAoB,MAApB;AACD,eA3DD,MA2DO,IAAIjB,UAAU,CAACkB,YAAf,EAA6B;AAClClG,gBAAAA,IAAI,GAAGgF,UAAU,CAACkB,YAAX,CAAwB,CAAxB,CAAP;AACAjG,gBAAAA,GAAG,GAAG+E,UAAU,CAACkB,YAAX,CAAwB,CAAxB,CAAN;AACAnE,gBAAAA,KAAK,GAAGiD,UAAU,CAACkB,YAAX,CAAwB,CAAxB,CAAR;AACAlE,gBAAAA,MAAM,GAAGgD,UAAU,CAACkB,YAAX,CAAwB,CAAxB,CAAT;AAEAjB,gBAAAA,IAAI,CAACnD,KAAL,CAAWmE,MAAX,GACE,2CAA2Cf,KAD7C;AAED,eARM,MAQA;AACL,sBAAM,IAAIiB,SAAJ,CACJ,4EADI,CAAN;AAGD;;AAEDlB,cAAAA,IAAI,CAACnD,KAAL,CAAW9B,IAAX,GAAkBA,IAAI,GAAG,IAAzB;AACAiF,cAAAA,IAAI,CAACnD,KAAL,CAAW7B,GAAX,GAAiBA,GAAG,GAAG,IAAvB;AACAgF,cAAAA,IAAI,CAACnD,KAAL,CAAWC,KAAX,GAAmBA,KAAK,GAAG,IAA3B;AACAkD,cAAAA,IAAI,CAACnD,KAAL,CAAWE,MAAX,GAAoBA,MAAM,GAAG,IAA7B;AAEAoB,cAAAA,cAAc,CAACf,WAAf,CAA2B4C,IAA3B;AACA,kBAAImB,UAAU,GAAGxE,QAAQ,CAACC,aAAT,CAAuB,kBAAvB,CAAjB;AACAuE,cAAAA,UAAU,CAAC7D,WAAX,GAAyByC,UAAU,CAACqB,OAApC;AACAD,cAAAA,UAAU,CAACtE,KAAX,CAAiBoD,KAAjB,GAAyB,OAAzB;AACAkB,cAAAA,UAAU,CAACtE,KAAX,CAAiBwE,UAAjB,GAA8B,OAA9B;AACAF,cAAAA,UAAU,CAACtE,KAAX,CAAiByE,eAAjB,GAAmCrB,KAAnC;AACAkB,cAAAA,UAAU,CAACtE,KAAX,CAAiB0E,QAAjB,GAA4B,kBAA5B;AACAJ,cAAAA,UAAU,CAACtE,KAAX,CAAiBe,QAAjB,GAA4B,UAA5B;AACAoC,cAAAA,IAAI,CAAC5C,WAAL,CAAiB+D,UAAjB;AACD;AAnL+B;AAAA;AAAA;AAAA;AAAA;AAoLjC,SApLD,CALA,CA0LA;;;AACArD,QAAAA,YAAY,CAACxE,GAAb,GAAmB,aAAnB;AACAwE,QAAAA,YAAY,CAACjB,KAAb,CAAmBmE,MAAnB,GAA4B,MAA5B;AACAlD,QAAAA,YAAY,CAACjB,KAAb,CAAmBC,KAAnB,GAA2B,MAA3B;AACAgB,QAAAA,YAAY,CAACjB,KAAb,CAAmBE,MAAnB,GAA4B,MAA5B;AACA3D,QAAAA,OAAO,CAACgE,WAAR,CAAoBU,YAApB;AACA,eAAO,IAAP;AACD,OArMD,MAqMO;AACL;AACA;AACAvC,QAAAA,OAAO,CAACC,GAAR,CAAY,+BAAZ;AACA,YAAIkB,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAf;AACAF,QAAAA,QAAQ,CAACG,KAAT,CAAeC,KAAf,GAAuB,MAAvB;AACAJ,QAAAA,QAAQ,CAACG,KAAT,CAAeE,MAAf,GAAwB,MAAxB;AACAL,QAAAA,QAAQ,CAACG,KAAT,CAAeG,QAAf,GAA0B,MAA1B;AACAN,QAAAA,QAAQ,CAACG,KAAT,CAAeI,OAAf,GAAyB,MAAzB;AACAP,QAAAA,QAAQ,CAACG,KAAT,CAAeK,UAAf,GAA4B,QAA5B;AACAR,QAAAA,QAAQ,CAACG,KAAT,CAAeM,aAAf,GAA+B,QAA/B;AACA/D,QAAAA,OAAO,CAACgE,WAAR,CAAoBV,QAApB;AACA,YAAIW,GAAG,GAAGV,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAV;AACAS,QAAAA,GAAG,CAACR,KAAJ,CAAUW,MAAV,GAAmB,KAAnB;AACAH,QAAAA,GAAG,CAACC,WAAJ,GAAkBkE,IAAI,CAACC,SAAL,CAAejF,eAAe,CAACL,MAA/B,EAAuC,IAAvC,EAA6C,CAA7C,CAAlB;AACAO,QAAAA,QAAQ,CAACU,WAAT,CAAqBC,GAArB,EAfK,CAgBL;;AAhBK,oDAiBab,eAAe,CAACH,MAjB7B;AAAA;;AAAA;AAiBL,iEAA0C;AAAA,gBAAjCoB,KAAiC;;AACxC,gBAAIA,KAAK,CAACC,MAAV,EAAkB;AAChB,kBAAIC,OAAO,GAAGhB,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd;AACAe,cAAAA,OAAO,CAACrE,GAAR,GAAcoB,sBAAsB,CAAC+C,KAAK,CAAC9C,GAAP,CAApC;AACAgD,cAAAA,OAAO,CAACd,KAAR,CAAcC,KAAd,GAAsB,MAAtB;AACAa,cAAAA,OAAO,CAACd,KAAR,CAAcE,MAAd,GAAuB,KAAvB;AACAY,cAAAA,OAAO,CAACd,KAAR,CAAcgB,SAAd,GAA0B,SAA1B;AACAnB,cAAAA,QAAQ,CAACU,WAAT,CAAqBO,OAArB;AACD;AACF;AA1BI;AAAA;AAAA;AAAA;AAAA;;AA2BL,eAAO,IAAP,CA3BK,CA4BL;AACD;AACF,KArOM,MAqOA;AACLvE,MAAAA,OAAO,CAACqD,SAAR,GAAoB,sCAApB;AACA,aAAO,KAAP;AACD;AACF,GAvQD,MAuQO,IAAID,eAAe,CAACJ,UAApB,EAAgC;AACrC;AACAb,IAAAA,OAAO,CAACC,GAAR,CAAY,kBAAZ,EAFqC,CAGrC;;AACA,QAAImC,OAAO,GAAGhB,QAAQ,CAACC,aAAT,CAAuB,KAAvB,CAAd;AACAe,IAAAA,OAAO,CAACrE,GAAR,GAAckD,eAAe,CAACJ,UAA9B;AACAuB,IAAAA,OAAO,CAACd,KAAR,CAAce,QAAd,GAAyB,UAAzB;AACAD,IAAAA,OAAO,CAACd,KAAR,CAAcC,KAAd,GAAsB,MAAtB;AACAa,IAAAA,OAAO,CAACd,KAAR,CAAcE,MAAd,GAAuB,MAAvB;AACAY,IAAAA,OAAO,CAACd,KAAR,CAAcgB,SAAd,GAA0B,SAA1B;AACAzE,IAAAA,OAAO,CAACgE,WAAR,CAAoBO,OAApB;AACA,WAAO,IAAP;AACD,GAZM,MAYA;AACLvE,IAAAA,OAAO,CAACqD,SAAR,GAAoB,6CAApB;AACA,WAAO,KAAP;AACD;AACF;;SAEcrC;;;;;qFAAf,kBAAuCuB,MAAvC,EAA+CvC,OAA/C;AAAA;AAAA;AAAA;AAAA;AAAA;AACEmC,YAAAA,OAAO,CAACC,GAAR,CAAY,0BAAZ;AADF;AAAA,mBAE8BE,4BAA4B,CAACC,MAAD,CAF1D;;AAAA;AAEMa,YAAAA,eAFN;AAGEjB,YAAAA,OAAO,CAACC,GAAR,CAAY,sBAAZ;AAHF,8CAISnB,gCAAgC,CAACmC,eAAD,EAAkBpD,OAAlB,CAJzC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AAOA,SAASsI,qBAAT,CAA+BC,MAA/B,EAAuC;AACrC,SAAOA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,WAAjB,KAAiCF,MAAM,CAACG,KAAP,CAAa,CAAb,CAAxC;AACD;;AAED,SAASC,WAAT,CAAqBC,GAArB,EAA0B;AACxB,SAAOA,GAAG,CAACC,OAAJ,CAAY,QAAZ,EAAsB,UAAUC,GAAV,EAAe;AAC1C,WAAOA,GAAG,CAACN,MAAJ,CAAW,CAAX,EAAcC,WAAd,KAA8BK,GAAG,CAACC,MAAJ,CAAW,CAAX,EAAcC,WAAd,EAArC;AACD,GAFM,CAAP;AAGD;;AAED,SAASvC,mBAAT,CAA6BwC,YAA7B,EAA2C/F,eAA3C,EAA4DC,aAA5D,EAA2E;AACzE8F,EAAAA,YAAY,GAAGb,IAAI,CAACc,KAAL,CAAWd,IAAI,CAACC,SAAL,CAAeY,YAAf,CAAX,CAAf,CADyE,CAChB;;AACzD,MAAIE,UAAU,GAAGF,YAAY,CAAC/F,eAAe,CAACkG,QAAjB,CAA7B;AACAD,EAAAA,UAAU,CAACE,IAAX,CAAgB,UAAUC,CAAV,EAAaC,CAAb,EAAgB;AAC9B,WAAOA,CAAC,CAACC,UAAF,GAAeF,CAAC,CAACE,UAAxB;AACD,GAFD;AAGA,MAAIC,KAAK,GAAGN,UAAU,CAAC9I,MAAvB;AACA,MAAImG,qBAAqB,GAAG,EAA5B;;AACA,OAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+C,KAApB,EAA2B/C,CAAC,EAA5B,EAAgC;AAC9B,QAAIgD,SAAS,GAAGP,UAAU,CAACzC,CAAD,CAA1B;AACA,QAAIsB,OAAJ;;AACA,QAAI9E,eAAe,CAACyG,SAAhB,IAA6B,aAAjC,EAAgD;AAC9C,UAAID,SAAS,CAACxG,eAAe,CAACyG,SAAjB,CAAb,EAA0C;AACxC3B,QAAAA,OAAO,GAAG0B,SAAS,CAACxG,eAAe,CAACyG,SAAjB,CAAnB,CADwC,CACQ;AACjD,OAFD,MAEO;AACL;AACA3B,QAAAA,OAAO,GACL0B,SAAS,CAAC,qBAAD,CAAT,GACA,GADA,GAEAA,SAAS,CAAC,QAAD,CAFT,GAGA,IAHA,GAIAA,SAAS,CAAC,WAAD,CAAT,CAAuB,CAAvB,CAJA,GAKA,GALA,GAMAA,SAAS,CAAC,WAAD,CAAT,CAAuB,CAAvB,CAPF;AAQD;AACF,KAdD,MAcO,IAAIxG,eAAe,CAACyG,SAAhB,IAA6B,QAAjC,EAA2C;AAChD;AACA,UAAIC,KAAK,GAAG,EAAZ;;AACA,UACEF,SAAS,CAAC,+BAAD,CAAT,IACAA,SAAS,CAAC,+BAAD,CAAT,CAA2C,SAA3C,KAAyD,IAF3D,EAGE;AACAE,QAAAA,KAAK,CAAC7H,IAAN,CACEuG,qBAAqB,CACnBoB,SAAS,CAAC,+BAAD,CAAT,CAA2C,SAA3C,CADmB,CADvB;AAKD;;AACD,UACEA,SAAS,CAAC,yBAAD,CAAT,IACAA,SAAS,CAAC,yBAAD,CAAT,CAAqC,qBAArC,KAA+D,IAFjE,EAGE;AACAE,QAAAA,KAAK,CAAC7H,IAAN,CACE2H,SAAS,CAAC,yBAAD,CAAT,CAAqC,qBAArC,IACE,GADF,GAEEA,SAAS,CAAC,yBAAD,CAAT,CAAqC,QAArC,CAFF,GAGE,IAHF,GAIEA,SAAS,CAAC,yBAAD,CAAT,CAAqC,WAArC,EAAkD,CAAlD,CAJF,GAKE,GALF,GAMEA,SAAS,CAAC,yBAAD,CAAT,CAAqC,WAArC,EAAkD,CAAlD,CAPJ;AASD;;AACD,UACEA,SAAS,CAAC,uBAAD,CAAT,IACAA,SAAS,CAAC,uBAAD,CAAT,CAAmC,MAAnC,KAA8C,IAD9C,IAEAA,SAAS,CAAC,uBAAD,CAAT,CAAmC,MAAnC,KAA8C,SAHhD,EAIE;AACAE,QAAAA,KAAK,CAAC7H,IAAN,CAAW4G,WAAW,CAACe,SAAS,CAAC,uBAAD,CAAT,CAAmC,MAAnC,CAAD,CAAtB;AACD;;AACD,UAAIE,KAAK,CAACvJ,MAAN,GAAe,CAAnB,EAAsB;AACpB2H,QAAAA,OAAO,GAAG4B,KAAK,CAACvH,IAAN,CAAW,IAAX,CAAV;AACD,OAFD,MAEO;AACL2F,QAAAA,OAAO,GAAG,MAAV;AACD;AACF,KAvCM,MAuCA,IAAI9E,eAAe,CAACyG,SAAhB,IAA6B,MAAjC,EAAyC;AAC9C,UAAME,cAAc,GAAG,CACrB,CAAC,MAAD,EAAS,WAAT,CADqB,EAErB,CAAC,MAAD,EAAS,UAAT,CAFqB,EAGrB,CAAC,WAAD,EAAc,WAAd,CAHqB,EAIrB,CAAC,UAAD,EAAa,UAAb,CAJqB,EAKrB,CAAC,gBAAD,EAAmB,aAAnB,CALqB,EAMrB,CAAC,eAAD,EAAkB,YAAlB,CANqB,EAOrB,CAAC,aAAD,EAAgB,YAAhB,CAPqB,EAQrB,CAAC,YAAD,EAAe,WAAf,CARqB,EASrB,CAAC,WAAD,EAAc,YAAd,CATqB,EAUrB,CAAC,UAAD,EAAa,WAAb,CAVqB,EAWrB,CAAC,YAAD,EAAe,YAAf,CAXqB,EAYrB,CAAC,WAAD,EAAc,WAAd,CAZqB,CAAvB;AAcA7B,MAAAA,OAAO,GAAG,EAAV,CAf8C,CAehC;;AAEd,UAAIlB,aAAa,GAAG,EAApB;;AACA,yCAAiB+C,cAAjB,qCAAiC;AAA5B,YAAIC,IAAI,sBAAR;AACH,YAAIC,EAAE,GAAGL,SAAS,CAACxG,eAAe,CAACyG,SAAjB,CAAT,CAAqCG,IAAI,CAAC,CAAD,CAAzC,CAAT;AACA,YAAIE,EAAE,GAAGN,SAAS,CAACxG,eAAe,CAACyG,SAAjB,CAAT,CAAqCG,IAAI,CAAC,CAAD,CAAzC,CAAT;;AAEA,YAAIC,EAAE,IAAIC,EAAV,EAAc;AACZD,UAAAA,EAAE,GAAG3B,IAAI,CAACc,KAAL,CAAWd,IAAI,CAACC,SAAL,CAAe0B,EAAf,CAAX,CAAL,CADY,CACyB;;AACrCC,UAAAA,EAAE,GAAG5B,IAAI,CAACc,KAAL,CAAWd,IAAI,CAACC,SAAL,CAAe2B,EAAf,CAAX,CAAL,CAFY,CAEyB;AACrC;AACA;AACA;AACA;AACA;;AACA,cAAIC,YAAY,GAAG,CAACF,EAAD,EAAKC,EAAL,CAAnB;AACAlD,UAAAA,aAAa,CAAC/E,IAAd,CAAmBkI,YAAnB;AACD;AACF;;AACDP,MAAAA,SAAS,CAAC5C,aAAV,GAA0BA,aAA1B;AACD,KAnCM,MAmCA;AACLkB,MAAAA,OAAO,GAAG0B,SAAS,CAACxG,eAAe,CAACyG,SAAjB,CAAnB,CADK,CAC2C;;AAChD,UAAI3B,OAAO,IAAIA,OAAO,CAACkC,WAAR,KAAwBC,MAAvC,EAA+C,CAC7C;AACD,OAFD,MAEO;AACL;AACA,YAAIxK,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYqI,OAAZ,CAAX;;AACA,YAAIrI,IAAI,CAACU,MAAL,IAAe,CAAnB,EAAsB;AACpB2H,UAAAA,OAAO,GAAGA,OAAO,CAACrI,IAAI,CAAC,CAAD,CAAL,CAAjB,CADoB,CACQ;AAC7B,SAFD,MAEO;AACLqI,UAAAA,OAAO,GAAGI,IAAI,CAACC,SAAL,CAAeL,OAAf,CAAV;AACD;AACF;AACF;;AAED,QAAI0B,SAAS,CAAC7B,YAAd,EAA4B;AAC1B6B,MAAAA,SAAS,CAAC7B,YAAV,CAAuB,CAAvB,KAA6B1E,aAA7B;AACAuG,MAAAA,SAAS,CAAC7B,YAAV,CAAuB,CAAvB,KAA6B1E,aAA7B;AACAuG,MAAAA,SAAS,CAAC7B,YAAV,CAAuB,CAAvB,KAA6B1E,aAA7B;AACAuG,MAAAA,SAAS,CAAC7B,YAAV,CAAuB,CAAvB,KAA6B1E,aAA7B;AACD,KA/G6B,CAiH9B;;;AACA,QAAIuG,SAAS,CAAC5C,aAAd,EAA6B;AAAA,kDACV4C,SAAS,CAAC5C,aADA;AAAA;;AAAA;AAC3B,+DAA0C;AAAA,cAAjChF,IAAiC;;AAAA,sDACtBA,IADsB;AAAA;;AAAA;AACxC,mEAAwB;AAAA,kBAAfG,KAAe;AACtBA,cAAAA,KAAK,CAAC,CAAD,CAAL,IAAYkB,aAAZ;AACAlB,cAAAA,KAAK,CAAC,CAAD,CAAL,IAAYkB,aAAZ;AACD;AAJuC;AAAA;AAAA;AAAA;AAAA;AAKzC;AAN0B;AAAA;AAAA;AAAA;AAAA;AAO5B;;AACDqD,IAAAA,qBAAqB,CAACzE,IAAtB,CAA2B;AACzB8F,MAAAA,YAAY,EAAE6B,SAAS,CAAC7B,YADC;AAEzBf,MAAAA,aAAa,EAAE4C,SAAS,CAAC5C,aAFA;AAGzBkB,MAAAA,OAAO,EAAEA;AAHgB,KAA3B;AAKD;;AACD,SAAOxB,qBAAP;AACD;;AAEDxI,MAAM,CAACC,OAAP,GAAiB;AACf+C,EAAAA,uBAAuB,EAAEA,uBADV;AAEfC,EAAAA,gCAAgC,EAAEA;AAFnB,CAAjB;;;;;;;;ACnkBa;;AAEb,IAAMrC,MAAM,GAAGV,mBAAO,CAAC,GAAD,CAAtB,EAEA;;;AACA,IAAMkM,MAAM,GAAG,IAAIxL,MAAJ,EAAf;AACAZ,MAAM,CAACC,OAAP,GAAiBmM,MAAjB;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,MAAM;AACN,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,mBAAmB;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA,YAAY;AACZ;AACA;AACA;;AAEA,YAAY;AACZ;AACA;AACA;;AAEA,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE,KAA0B,oBAAoB,CAAE;AAClD;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;UCjvBA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UEtBA;UACA;UACA;UACA;UACA","sources":["webpack://deepai/webpack/universalModuleDefinition","webpack://deepai/./node_modules/axios/index.js","webpack://deepai/./node_modules/axios/lib/adapters/xhr.js","webpack://deepai/./node_modules/axios/lib/axios.js","webpack://deepai/./node_modules/axios/lib/cancel/Cancel.js","webpack://deepai/./node_modules/axios/lib/cancel/CancelToken.js","webpack://deepai/./node_modules/axios/lib/cancel/isCancel.js","webpack://deepai/./node_modules/axios/lib/core/Axios.js","webpack://deepai/./node_modules/axios/lib/core/InterceptorManager.js","webpack://deepai/./node_modules/axios/lib/core/buildFullPath.js","webpack://deepai/./node_modules/axios/lib/core/createError.js","webpack://deepai/./node_modules/axios/lib/core/dispatchRequest.js","webpack://deepai/./node_modules/axios/lib/core/enhanceError.js","webpack://deepai/./node_modules/axios/lib/core/mergeConfig.js","webpack://deepai/./node_modules/axios/lib/core/settle.js","webpack://deepai/./node_modules/axios/lib/core/transformData.js","webpack://deepai/./node_modules/axios/lib/defaults.js","webpack://deepai/./node_modules/axios/lib/env/data.js","webpack://deepai/./node_modules/axios/lib/helpers/bind.js","webpack://deepai/./node_modules/axios/lib/helpers/buildURL.js","webpack://deepai/./node_modules/axios/lib/helpers/combineURLs.js","webpack://deepai/./node_modules/axios/lib/helpers/cookies.js","webpack://deepai/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://deepai/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://deepai/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://deepai/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://deepai/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://deepai/./node_modules/axios/lib/helpers/spread.js","webpack://deepai/./node_modules/axios/lib/helpers/validator.js","webpack://deepai/./node_modules/axios/lib/utils.js","webpack://deepai/./index.js","webpack://deepai/./lib/core/DeepAI.js","webpack://deepai/./lib/core/apiBaseUrl.js","webpack://deepai/./lib/core/resultRendering.js","webpack://deepai/./lib/deepai.js","webpack://deepai/./node_modules/regenerator-runtime/runtime.js","webpack://deepai/webpack/bootstrap","webpack://deepai/webpack/before-startup","webpack://deepai/webpack/startup","webpack://deepai/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"deepai\"] = factory();\n\telse\n\t\troot[\"deepai\"] = factory();\n})(this, function() {\nreturn ","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n    var responseType = config.responseType;\n    var onCanceled;\n    function done() {\n      if (config.cancelToken) {\n        config.cancelToken.unsubscribe(onCanceled);\n      }\n\n      if (config.signal) {\n        config.signal.removeEventListener('abort', onCanceled);\n      }\n    }\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !responseType || responseType === 'text' ||  responseType === 'json' ?\n        request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n      var transitional = config.transitional || defaults.transitional;\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(createError(\n        timeoutErrorMessage,\n        config,\n        transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n        cookies.read(config.xsrfCookieName) :\n        undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = config.responseType;\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken || config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = function(cancel) {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);\n        request.abort();\n        request = null;\n      };\n\n      config.cancelToken && config.cancelToken.subscribe(onCanceled);\n      if (config.signal) {\n        config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    if (!requestData) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n\n  // eslint-disable-next-line func-names\n  this.promise.then(function(cancel) {\n    if (!token._listeners) return;\n\n    var i;\n    var l = token._listeners.length;\n\n    for (i = 0; i < l; i++) {\n      token._listeners[i](cancel);\n    }\n    token._listeners = null;\n  });\n\n  // eslint-disable-next-line func-names\n  this.promise.then = function(onfulfilled) {\n    var _resolve;\n    // eslint-disable-next-line func-names\n    var promise = new Promise(function(resolve) {\n      token.subscribe(resolve);\n      _resolve = resolve;\n    }).then(onfulfilled);\n\n    promise.cancel = function reject() {\n      token.unsubscribe(_resolve);\n    };\n\n    return promise;\n  };\n\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n  if (this.reason) {\n    listener(this.reason);\n    return;\n  }\n\n  if (this._listeners) {\n    this._listeners.push(listener);\n  } else {\n    this._listeners = [listener];\n  }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n  if (!this._listeners) {\n    return;\n  }\n  var index = this._listeners.indexOf(listener);\n  if (index !== -1) {\n    this._listeners.splice(index, 1);\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof configOrUrl === 'string') {\n    config = config || {};\n    config.url = configOrUrl;\n  } else {\n    config = configOrUrl || {};\n  }\n\n  if (!config.url) {\n    throw new Error('Provided config url is not valid');\n  }\n\n  config = mergeConfig(this.defaults, config);\n\n  // Set config.method\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  var transitional = config.transitional;\n\n  if (transitional !== undefined) {\n    validator.assertOptions(transitional, {\n      silentJSONParsing: validators.transitional(validators.boolean),\n      forcedJSONParsing: validators.transitional(validators.boolean),\n      clarifyTimeoutError: validators.transitional(validators.boolean)\n    }, false);\n  }\n\n  // filter out skipped interceptors\n  var requestInterceptorChain = [];\n  var synchronousRequestInterceptors = true;\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n      return;\n    }\n\n    synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n    requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  var responseInterceptorChain = [];\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  var promise;\n\n  if (!synchronousRequestInterceptors) {\n    var chain = [dispatchRequest, undefined];\n\n    Array.prototype.unshift.apply(chain, requestInterceptorChain);\n    chain = chain.concat(responseInterceptorChain);\n\n    promise = Promise.resolve(config);\n    while (chain.length) {\n      promise = promise.then(chain.shift(), chain.shift());\n    }\n\n    return promise;\n  }\n\n\n  var newConfig = config;\n  while (requestInterceptorChain.length) {\n    var onFulfilled = requestInterceptorChain.shift();\n    var onRejected = requestInterceptorChain.shift();\n    try {\n      newConfig = onFulfilled(newConfig);\n    } catch (error) {\n      onRejected(error);\n      break;\n    }\n  }\n\n  try {\n    promise = dispatchRequest(newConfig);\n  } catch (error) {\n    return Promise.reject(error);\n  }\n\n  while (responseInterceptorChain.length) {\n    promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  if (!config.url) {\n    throw new Error('Provided config url is not valid');\n  }\n  config = mergeConfig(this.defaults, config);\n  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected,\n    synchronous: options ? options.synchronous : false,\n    runWhen: options ? options.runWhen : null\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar Cancel = require('../cancel/Cancel');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new Cancel('canceled');\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n\n  error.request = request;\n  error.response = response;\n  error.isAxiosError = true;\n\n  error.toJSON = function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code,\n      status: this.response && this.response.status ? this.response.status : null\n    };\n  };\n  return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  function getMergedValue(target, source) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge(target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(config1[prop], config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(undefined, config2[prop]);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      return getMergedValue(undefined, config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(prop) {\n    if (prop in config2) {\n      return getMergedValue(config1[prop], config2[prop]);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  var mergeMap = {\n    'url': valueFromConfig2,\n    'method': valueFromConfig2,\n    'data': valueFromConfig2,\n    'baseURL': defaultToConfig2,\n    'transformRequest': defaultToConfig2,\n    'transformResponse': defaultToConfig2,\n    'paramsSerializer': defaultToConfig2,\n    'timeout': defaultToConfig2,\n    'timeoutMessage': defaultToConfig2,\n    'withCredentials': defaultToConfig2,\n    'adapter': defaultToConfig2,\n    'responseType': defaultToConfig2,\n    'xsrfCookieName': defaultToConfig2,\n    'xsrfHeaderName': defaultToConfig2,\n    'onUploadProgress': defaultToConfig2,\n    'onDownloadProgress': defaultToConfig2,\n    'decompress': defaultToConfig2,\n    'maxContentLength': defaultToConfig2,\n    'maxBodyLength': defaultToConfig2,\n    'transport': defaultToConfig2,\n    'httpAgent': defaultToConfig2,\n    'httpsAgent': defaultToConfig2,\n    'cancelToken': defaultToConfig2,\n    'socketPath': defaultToConfig2,\n    'responseEncoding': defaultToConfig2,\n    'validateStatus': mergeDirectKeys\n  };\n\n  utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n    var merge = mergeMap[prop] || mergeDeepProperties;\n    var configValue = merge(prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  var context = this || defaults;\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(context, data, headers);\n  });\n\n  return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n  transitional: {\n    silentJSONParsing: true,\n    forcedJSONParsing: true,\n    clarifyTimeoutError: false\n  },\n\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n      setContentTypeIfUnset(headers, 'application/json');\n      return stringifySafely(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    var transitional = this.transitional || defaults.transitional;\n    var silentJSONParsing = transitional && transitional.silentJSONParsing;\n    var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n    if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw enhanceError(e, this, 'E_JSON_PARSE');\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*'\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","module.exports = {\n  \"version\": \"0.25.0\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n    (function standardBrowserEnv() {\n      return {\n        write: function write(name, value, expires, path, domain, secure) {\n          var cookie = [];\n          cookie.push(name + '=' + encodeURIComponent(value));\n\n          if (utils.isNumber(expires)) {\n            cookie.push('expires=' + new Date(expires).toGMTString());\n          }\n\n          if (utils.isString(path)) {\n            cookie.push('path=' + path);\n          }\n\n          if (utils.isString(domain)) {\n            cookie.push('domain=' + domain);\n          }\n\n          if (secure === true) {\n            cookie.push('secure');\n          }\n\n          document.cookie = cookie.join('; ');\n        },\n\n        read: function read(name) {\n          var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n          return (match ? decodeURIComponent(match[3]) : null);\n        },\n\n        remove: function remove(name) {\n          this.write(name, '', Date.now() - 86400000);\n        }\n      };\n    })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return {\n        write: function write() {},\n        read: function read() { return null; },\n        remove: function remove() {}\n      };\n    })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n    (function standardBrowserEnv() {\n      var msie = /(msie|trident)/i.test(navigator.userAgent);\n      var urlParsingNode = document.createElement('a');\n      var originURL;\n\n      /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n      function resolveURL(url) {\n        var href = url;\n\n        if (msie) {\n        // IE needs attribute set twice to normalize properties\n          urlParsingNode.setAttribute('href', href);\n          href = urlParsingNode.href;\n        }\n\n        urlParsingNode.setAttribute('href', href);\n\n        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n        return {\n          href: urlParsingNode.href,\n          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n          host: urlParsingNode.host,\n          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n          hostname: urlParsingNode.hostname,\n          port: urlParsingNode.port,\n          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n            urlParsingNode.pathname :\n            '/' + urlParsingNode.pathname\n        };\n      }\n\n      originURL = resolveURL(window.location.href);\n\n      /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n      return function isURLSameOrigin(requestURL) {\n        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n        return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n      };\n    })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return function isURLSameOrigin() {\n        return true;\n      };\n    })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return function(value, opt, opts) {\n    if (validator === false) {\n      throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new TypeError('options must be an object');\n  }\n  var keys = Object.keys(options);\n  var i = keys.length;\n  while (i-- > 0) {\n    var opt = keys[i];\n    var validator = schema[opt];\n    if (validator) {\n      var value = options[opt];\n      var result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new TypeError('option ' + opt + ' must be ' + result);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw Error('Unknown option ' + opt);\n    }\n  }\n}\n\nmodule.exports = {\n  assertOptions: assertOptions,\n  validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return toString.call(val) === '[object FormData]';\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n  if (toString.call(val) !== '[object Object]') {\n    return false;\n  }\n\n  var prototype = Object.getPrototypeOf(val);\n  return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return toString.call(val) === '[object URLSearchParams]';\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n                                           navigator.product === 'NativeScript' ||\n                                           navigator.product === 'NS')) {\n    return false;\n  }\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (isPlainObject(result[key]) && isPlainObject(val)) {\n      result[key] = merge(result[key], val);\n    } else if (isPlainObject(val)) {\n      result[key] = merge({}, val);\n    } else if (isArray(val)) {\n      result[key] = val.slice();\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isPlainObject: isPlainObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim,\n  stripBOM: stripBOM\n};\n","module.exports = require(\"./lib/deepai\");\n","\"use strict\";\nconst axios = require(\"axios\");\n// import formData from \"./formData.js\";\n// const Buffer = require('buffer/').Buffer; // note: the trailing slash is important!\n\nconst apiBaseUrl = require(\"./apiBaseUrl\").baseUrl;\n\nconst resultRendering = require(\"./resultRendering.js\");\n\nconst globalObject = Function(\"return this\")();\n\nif (globalObject.FormData) {\n  var formData = globalObject.FormData;\n} else {\n  var formData = eval('require(\"form-data\")');\n  // todo, find a better way to do this.\n}\n\n/**\n * Create a new instance of DeepAI\n *\n */\n\nfunction DeepAI() {\n  this.axiosInstance = axios.create({\n    headers: { \"client-library\": \"deepai-js-client\" },\n  });\n}\n\nDeepAI.prototype.setApiKey = function (apiKey) {\n  this.apiKey = apiKey;\n  this.axiosInstance.defaults.headers.common[\"api-key\"] = apiKey;\n};\n\nfunction urlForModel(model_name) {\n  return apiBaseUrl + \"/api/\" + model_name;\n}\n\nDeepAI.prototype.callStandardApi = async function request(\n  model_name,\n  inputs_object\n) {\n  const form = new formData();\n  for (var key of Object.keys(inputs_object)) {\n    // Second argument  can take Buffer or Stream (lazily read during the request) too.\n    // Third argument is filename if you want to simulate a file upload. Otherwise omit.\n    if (inputs_object[key] === null || inputs_object[key] === undefined) {\n      continue; // Input is blank, that is allowed sometimes.\n    }\n\n    if (typeof inputs_object[key] === \"string\") {\n      form.append(key, inputs_object[key]); // a string could be a URL or just some text data. both are OK\n    } else if (\n      globalObject.Element &&\n      inputs_object[key] instanceof globalObject.Element\n    ) {\n      var element = inputs_object[key];\n      if (element.tagName === \"IMG\") {\n        // got an IMG dom node element\n\n        if (element.src) {\n          // pass the src url\n          form.append(key, element.src);\n\n          // TODO do something about data URLs\n          // TODO do something about blob URLs\n        } else {\n          throw new Error(\"DeepAI error: Image element has no SRC: \" + key);\n        }\n      } else if (element.tagName === \"INPUT\" && element.files !== undefined) {\n        // got a file picker\n        if (element.files.length > 0) {\n          form.append(key, element.files[0], \"file.jpeg\");\n        } else {\n          throw new Error(\n            \"DeepAI error: File picker has no file picked: \" + key\n          );\n        }\n      } else {\n        throw new Error(\"DeepAI error: DOM Element type for key: \" + key);\n      }\n    } else if (inputs_object[key].hasOwnProperty(\"fd\")) {\n      // Seems to be a nodejs stream.\n      form.append(key, inputs_object[key]); // form-data in nodejs can handle this\n    } else if (globalObject.Buffer && Buffer.isBuffer(inputs_object[key])) {\n      form.append(key, inputs_object[key], \"file.jpeg\"); // form-data in nodejs can handle this\n    } else {\n      throw new Error(\"DeepAI error: unknown input type for key: \" + key);\n    }\n    // TODO do filenames need to be unique?\n  }\n\n  var req_options = {\n    withCredentials: true,\n  };\n  if (form.getHeaders !== undefined) {\n    // formData is the nodejs based subsitute, only needed for node.js\n    req_options.headers = form.getHeaders();\n  }\n  const response = await this.axiosInstance.post(\n    urlForModel(model_name),\n    form,\n    req_options\n  );\n  return response.data;\n};\n\nDeepAI.prototype.renderResultIntoElement =\n  resultRendering.renderResultIntoElement;\nDeepAI.prototype.renderAnnotatedResultIntoElement =\n  resultRendering.renderAnnotatedResultIntoElement;\n\nmodule.exports = DeepAI;\n","\"use strict\";\n\nmodule.exports = {\n  baseUrl: \"https://api.deepai.org\",\n  //baseUrl: \"http://localhost:8000\" // for dev\n};\n","\"use strict\";\nconst apiBaseUrl = require(\"./apiBaseUrl\").baseUrl;\n\nvar WAD_COLORS = [\n  \"rgb(173, 35, 35)\", // Red\n  \"rgb(42, 75, 215)\", // Blue\n  \"rgb(87, 87, 87)\", // Dark Gray\n  \"rgb(29, 105, 20)\", // Green\n  \"rgb(129, 74, 25)\", // Brown\n  \"rgb(129, 38, 192)\", // Purple\n  \"rgb(160, 160, 160)\", // Lt Gray\n  \"rgb(129, 197, 122)\", // Lt green\n  \"rgb(157, 175, 255)\", // Lt blue\n  \"rgb(41, 208, 208)\", // Cyan\n  \"rgb(255, 146, 51)\", // Orange\n  \"rgb(199, 183, 0)\", // Yellow\n  \"rgb(233, 222, 187)\", // Tan\n  \"rgb(255, 205, 243)\", // Pink\n  // \"rgb(255, 255, 255)\", // White\n  //\"rgb(0, 0, 0)\",       // Black\n];\nvar isAbsolute = new RegExp(\"^([a-z]+://|//)\", \"i\");\nvar isDataOrBlob = new RegExp(\"^(data|blob):\", \"i\");\n\nfunction prependApiBaseIfNeeded(url) {\n  if (isAbsolute.test(url) || isDataOrBlob.test(url)) {\n    return url; // already absolute\n  } else {\n    return apiBaseUrl + url; // turn relative into absolute\n  }\n}\n\nfunction polygonToSvgPath(polygon, left, top) {\n  // M 10,10 L 100,10 100,100 z    M 30,20 L 70,20 70,60 z\n  var path_strings = [];\n  for (var part of polygon) {\n    if (part.length < 2) {\n      continue;\n    }\n\n    path_strings.push(\"M\");\n    var first = true;\n    for (var point of part) {\n      path_strings.push(point[0] - left + \",\" + (point[1] - top));\n      if (isNaN(point[0]) || isNaN(point[1])) {\n        console.log(\"not showing invalid polygon, found NaN\");\n        return \"\";\n      }\n      if (first) {\n        path_strings.push(\"L\");\n        first = false;\n      }\n    }\n    path_strings.push(\"z\");\n  }\n  return path_strings.join(\" \");\n}\n\n/*\n\nData structures basic info...\n\nresult\n{\n    output_url:\n    output:\n    id:\n    err:\n}\n\n\nresultPageData\n{\n    result_data: {\n        inputs:[\n            {\n                is_img: true,\n                url: (relative or absolute)\n            }\n        ],\n        visualizer_data: {\n            list_key: 'Objects'\n            label_key: 'Object'\n        },\n        scale_applied: 1.333\n    }\n}\n\n\nannotatedResult - this is basically the merging of the 2 above\n{   err:\n    output_url:\n    output:\n    id:\n    inputs:[\n        {\n            is_img: true,\n            url: (relative or absolute)\n        }\n    ],\n    visualizer_data: {\n        list_key: 'Objects'\n        label_key: 'Object'\n    },\n    scale_applied: 1.333\n}\n\n\n*/\n// Take a result object from API call, and fetch additional data, and return the additional data merged in.\nasync function getAnnotatedResultFromResult(result) {\n  if (result.err) {\n    console.log(\"cannot get result page data for error result\");\n    return result;\n  }\n  var resultPageData = await fetch(\n    apiBaseUrl + \"/get_standard_api_result_data/\" + result.id,\n    {\n      credentials: \"include\",\n    }\n  );\n  resultPageData = await resultPageData.json();\n  var result_data = resultPageData.result_data;\n\n  // make merging of all the properties manually...\n  return {\n    err: result.err,\n    output: result.output,\n    output_url: result.output_url,\n    id: result.id,\n    inputs: result_data.inputs,\n    visualizer_data: result_data.visualizer_data,\n    scale_applied: result_data.scale_applied,\n  };\n}\n\nfunction renderAnnotatedResultIntoElement(annotatedResult, element) {\n  element.innerHTML = \"\"; // remove everything to start\n  if (annotatedResult.err) {\n    element.innerHTML = err;\n    return false;\n  }\n  if (annotatedResult.output) {\n    // JSON or text output.\n    console.log(\"got json or text output\");\n    if (typeof annotatedResult.output === \"string\") {\n      var scroller = document.createElement(\"div\");\n      scroller.style.width = \"100%\";\n      scroller.style.height = \"100%\";\n      scroller.style.overflow = \"auto\";\n      scroller.style.display = \"flex\";\n      scroller.style.alignItems = \"center\";\n      scroller.style.flexDirection = \"column\";\n      element.appendChild(scroller);\n      var pre = document.createElement(\"pre\");\n      pre.textContent = annotatedResult.output;\n      pre.style.whiteSpace = \"pre-wrap\";\n      pre.style.margin = \"0px\";\n      scroller.appendChild(pre);\n      // Append inputs\n      for (var input of annotatedResult.inputs) {\n        if (input.is_img) {\n          var img_tag = document.createElement(\"img\");\n          img_tag.src = prependApiBaseIfNeeded(input.url);\n          img_tag.style.position = \"relative\";\n          img_tag.style.width = \"100%\";\n          img_tag.style.height = \"100%%\";\n          img_tag.style.objectFit = \"contain\";\n          scroller.appendChild(img_tag);\n        }\n      }\n      return true;\n    } else if (typeof annotatedResult.output === \"object\") {\n      // If we uploaded an image, then we may be able to render the image with boxes on top\n      if (\n        annotatedResult.inputs.length == 1 &&\n        annotatedResult.inputs[0].is_img &&\n        annotatedResult.visualizer_data\n      ) {\n        // single image input and we know how to visualize it.\n        console.log(\"have visualizer for result JSON\");\n        var resultscaler = document.createElement(\"iframe\");\n        // Set up a handler for when the frame loads - we need to handle this event\n        resultscaler.onload = function () {\n          // Firefox doesnt allow inner iframe manip until the iframe is loaded...\n          var innerDoc = resultscaler.contentDocument.body;\n          innerDoc.style.margin = \"0px\";\n          innerDoc.style.overflow = \"hidden\";\n\n          /*\n\n                    var css = `\n                        boundingbox:hover{\n                            background-color: #00ff00\n                        }\n                    `;\n                    var style = document.createElement('style');\n\n                    if (style.styleSheet) {\n                        style.styleSheet.cssText = css;\n                    } else {\n                        style.appendChild(document.createTextNode(css));\n                    }\n\n                    resultscaler.contentDocument.head.appendChild(style);\n*/\n\n          var bbox_container = document.createElement(\"boundingboxcontainer\");\n          bbox_container.style.position = \"relative\"; // the absolute positions are relative to this element\n          bbox_container.style.opacity = \"0.001\"; // the result are hidden until the iframe reflows - which is first when the img loads\n          innerDoc.appendChild(bbox_container);\n          var img_tag = document.createElement(\"img\");\n          img_tag.src = prependApiBaseIfNeeded(annotatedResult.inputs[0].url);\n          img_tag.style.position = \"absolute\";\n          bbox_container.appendChild(img_tag);\n          var iframe_reflow = function () {\n            console.log(\"iframe resize\");\n            resultscaler.contentDocument.body.style.transform = null;\n            var bodyWidth = resultscaler.contentDocument.body.scrollWidth;\n            var bodyHeight = resultscaler.contentDocument.body.scrollHeight;\n            var imgWidth = img_tag.offsetWidth;\n            var imgHeight = img_tag.offsetHeight;\n            var containerWidth = resultscaler.offsetWidth;\n            var containerHeight = resultscaler.offsetHeight;\n            var wExcess = 0;\n            var hExcess = 0;\n            if (imgWidth < bodyWidth && imgHeight < bodyHeight) {\n              var wScale = containerWidth / imgWidth;\n              var hScale = containerHeight / imgHeight;\n              var minScale = Math.min(wScale, hScale);\n              wExcess = containerWidth - imgWidth * minScale;\n              hExcess = containerHeight - imgHeight * minScale;\n            } else {\n              var wScale = containerWidth / bodyWidth;\n              var hScale = containerHeight / bodyHeight;\n              var minScale = Math.min(wScale, hScale);\n              wExcess = containerWidth - bodyWidth * minScale;\n              hExcess = containerHeight - bodyHeight * minScale;\n            }\n            wExcess = wExcess / minScale;\n            hExcess = hExcess / minScale;\n            resultscaler.contentDocument.body.style.transformOrigin =\n              \"top left\";\n\n            resultscaler.contentDocument.body.style.transform =\n              \"scale(\" + minScale + \")\";\n            bbox_container.style.setProperty(\"--scaleapplied\", minScale);\n            bbox_container.style.setProperty(\n              \"--fontscale\",\n              100 / minScale + \"%\"\n            );\n\n            bbox_container.style.left = wExcess / 2 + \"px\";\n            bbox_container.style.top = hExcess / 2 + \"px\";\n            bbox_container.style.opacity = \"1\";\n          };\n          resultscaler.contentWindow.onresize = iframe_reflow;\n          img_tag.onload = iframe_reflow;\n          var processed_annotations = process_annotations(\n            annotatedResult.output,\n            annotatedResult.visualizer_data,\n            annotatedResult.scale_applied\n          );\n          console.log(\"processed annotations\", processed_annotations);\n          var i = 0;\n          for (var annotation of processed_annotations) {\n            var bbox = document.createElement(\"boundingbox\");\n            bbox.style.position = \"absolute\";\n\n            var left;\n            var top;\n            var width;\n            var height;\n            var color = WAD_COLORS[i++ % WAD_COLORS.length];\n\n            if (annotation.mask_vertices) {\n              var minx = null;\n              var miny = null;\n              var maxx = null;\n              var maxy = null;\n\n              for (var part of annotation.mask_vertices) {\n                for (var point of part) {\n                  var x = point[0];\n                  var y = point[1];\n\n                  if (minx === null || x < minx) {\n                    minx = x;\n                  }\n                  if (miny === null || y < miny) {\n                    miny = y;\n                  }\n                  if (maxx === null || x > maxx) {\n                    maxx = x;\n                  }\n                  if (maxy === null || y > maxy) {\n                    maxy = y;\n                  }\n                }\n              }\n\n              width = maxx - minx;\n              height = maxy - miny;\n\n              left = minx;\n              top = miny;\n\n              var svg = document.createElementNS(\n                \"http://www.w3.org/2000/svg\",\n                \"svg\"\n              );\n\n              svg.style.position = \"absolute\";\n              svg.style.overflow = \"visible\";\n              svg.style.width = width + \"px\";\n              svg.style.height = height + \"px\";\n\n              var path = document.createElementNS(\n                \"http://www.w3.org/2000/svg\",\n                \"path\"\n              );\n              path.setAttributeNS(\n                null,\n                \"d\",\n                polygonToSvgPath(annotation.mask_vertices, left, top)\n              );\n              path.style.fill = \"none\";\n              path.style.stroke = color;\n              path.style.strokeWidth = \"calc(2px / var(--scaleapplied))\"; // 2px at all scale levels\n\n              svg.appendChild(path);\n              bbox.appendChild(svg);\n\n              bbox.style.border = \"none\";\n            } else if (annotation.bounding_box) {\n              left = annotation.bounding_box[0];\n              top = annotation.bounding_box[1];\n              width = annotation.bounding_box[2];\n              height = annotation.bounding_box[3];\n\n              bbox.style.border =\n                \"calc(2px / var(--scaleapplied)) solid \" + color;\n            } else {\n              throw new Exception(\n                \"Neither mask_vertices or bounding_box is passed, unknown annotation format\"\n              );\n            }\n\n            bbox.style.left = left + \"px\";\n            bbox.style.top = top + \"px\";\n            bbox.style.width = width + \"px\";\n            bbox.style.height = height + \"px\";\n\n            bbox_container.appendChild(bbox);\n            var bbox_label = document.createElement(\"boundingboxlabel\");\n            bbox_label.textContent = annotation.caption;\n            bbox_label.style.color = \"white\";\n            bbox_label.style.fontFamily = \"arial\";\n            bbox_label.style.backgroundColor = color;\n            bbox_label.style.fontSize = \"var(--fontscale)\";\n            bbox_label.style.position = \"absolute\";\n            bbox.appendChild(bbox_label);\n          }\n        };\n        // Set the src which will end up triggering the onload event in all browsers.\n        resultscaler.src = \"about:blank\";\n        resultscaler.style.border = \"none\";\n        resultscaler.style.width = \"100%\";\n        resultscaler.style.height = \"100%\";\n        element.appendChild(resultscaler);\n        return true;\n      } else {\n        // not single image - perhaps multi image or text input.\n        // or no visualizer\n        console.log(\"no visualizer for result JSON\");\n        var scroller = document.createElement(\"div\");\n        scroller.style.width = \"100%\";\n        scroller.style.height = \"100%\";\n        scroller.style.overflow = \"auto\";\n        scroller.style.display = \"flex\";\n        scroller.style.alignItems = \"center\";\n        scroller.style.flexDirection = \"column\";\n        element.appendChild(scroller);\n        var pre = document.createElement(\"pre\");\n        pre.style.margin = \"0px\";\n        pre.textContent = JSON.stringify(annotatedResult.output, null, 4);\n        scroller.appendChild(pre);\n        // Append inputs\n        for (var input of annotatedResult.inputs) {\n          if (input.is_img) {\n            var img_tag = document.createElement(\"img\");\n            img_tag.src = prependApiBaseIfNeeded(input.url);\n            img_tag.style.width = \"100%\";\n            img_tag.style.height = \"79%\";\n            img_tag.style.objectFit = \"contain\";\n            scroller.appendChild(img_tag);\n          }\n        }\n        return true;\n        // We got JSON output for a multi image or text input ... don't bother showing the input right now\n      }\n    } else {\n      element.innerHTML = \"Model returned an unknown data type.\";\n      return false;\n    }\n  } else if (annotatedResult.output_url) {\n    // Image output.\n    console.log(\"got image output\");\n    // Just show the image.\n    var img_tag = document.createElement(\"img\");\n    img_tag.src = annotatedResult.output_url;\n    img_tag.style.position = \"relative\";\n    img_tag.style.width = \"100%\";\n    img_tag.style.height = \"100%\";\n    img_tag.style.objectFit = \"contain\";\n    element.appendChild(img_tag);\n    return true;\n  } else {\n    element.innerHTML = \"Model did not return an output or an error.\";\n    return false;\n  }\n}\n\nasync function renderResultIntoElement(result, element) {\n  console.log(\"getting result page data\");\n  var annotatedResult = await getAnnotatedResultFromResult(result);\n  console.log(\"got result page data\");\n  return renderAnnotatedResultIntoElement(annotatedResult, element);\n}\n\nfunction capitalizeFirstLetter(string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nfunction toTitleCase(str) {\n  return str.replace(/\\w\\S*/g, function (txt) {\n    return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n  });\n}\n\nfunction process_annotations(input_struct, visualizer_data, scale_applied) {\n  input_struct = JSON.parse(JSON.stringify(input_struct)); // cheap deep clone\n  var detections = input_struct[visualizer_data.list_key];\n  detections.sort(function (a, b) {\n    return b.confidence - a.confidence;\n  });\n  var count = detections.length;\n  var processed_annotations = [];\n  for (var i = 0; i < count; i++) {\n    var detection = detections[i];\n    var caption;\n    if (visualizer_data.label_key == \"demographic\") {\n      if (detection[visualizer_data.label_key]) {\n        caption = detection[visualizer_data.label_key]; // backwards compatible demog format\n      } else {\n        //\"White Male, 30-40\"\n        caption =\n          detection[\"cultural_appearance\"] +\n          \" \" +\n          detection[\"gender\"] +\n          \", \" +\n          detection[\"age_range\"][0] +\n          \"-\" +\n          detection[\"age_range\"][1];\n      }\n    } else if (visualizer_data.label_key == \"people\") {\n      //produces \"Sad, White Male, 30-40, Ted Cruz\"\n      var parts = [];\n      if (\n        detection[\"facial-expression-recognition\"] &&\n        detection[\"facial-expression-recognition\"][\"emotion\"] != null\n      ) {\n        parts.push(\n          capitalizeFirstLetter(\n            detection[\"facial-expression-recognition\"][\"emotion\"]\n          )\n        );\n      }\n      if (\n        detection[\"demographic-recognition\"] &&\n        detection[\"demographic-recognition\"][\"cultural_appearance\"] != null\n      ) {\n        parts.push(\n          detection[\"demographic-recognition\"][\"cultural_appearance\"] +\n            \" \" +\n            detection[\"demographic-recognition\"][\"gender\"] +\n            \", \" +\n            detection[\"demographic-recognition\"][\"age_range\"][0] +\n            \"-\" +\n            detection[\"demographic-recognition\"][\"age_range\"][1]\n        );\n      }\n      if (\n        detection[\"celebrity-recognition\"] &&\n        detection[\"celebrity-recognition\"][\"name\"] != null &&\n        detection[\"celebrity-recognition\"][\"name\"] != \"unknown\"\n      ) {\n        parts.push(toTitleCase(detection[\"celebrity-recognition\"][\"name\"]));\n      }\n      if (parts.length > 0) {\n        caption = parts.join(\", \");\n      } else {\n        caption = \"Face\";\n      }\n    } else if (visualizer_data.label_key == \"pose\") {\n      const named_segments = [\n        [\"nose\", \"right_eye\"],\n        [\"nose\", \"left_eye\"],\n        [\"right_eye\", \"right_ear\"],\n        [\"left_eye\", \"left_ear\"],\n        [\"right_shoulder\", \"right_elbow\"],\n        [\"left_shoulder\", \"left_elbow\"],\n        [\"right_elbow\", \"right_hand\"],\n        [\"left_elbow\", \"left_hand\"],\n        [\"right_hip\", \"right_knee\"],\n        [\"left_hip\", \"left_knee\"],\n        [\"right_knee\", \"right_foot\"],\n        [\"left_knee\", \"left_foot\"],\n      ];\n      caption = \"\"; // no caption for pose parts\n\n      var mask_vertices = [];\n      for (var pair of named_segments) {\n        var p1 = detection[visualizer_data.label_key][pair[0]];\n        var p2 = detection[visualizer_data.label_key][pair[1]];\n\n        if (p1 && p2) {\n          p1 = JSON.parse(JSON.stringify(p1)); // cheap deep clone\n          p2 = JSON.parse(JSON.stringify(p2)); // cheap deep clone\n          // Do not rescale here - let the mask rescale handle this\n          //                    p1[0] *= scale_applied;\n          //                    p1[1] *= scale_applied;\n          //                    p2[0] *= scale_applied;\n          //                    p2[1] *= scale_applied;\n          var polygon_part = [p1, p2];\n          mask_vertices.push(polygon_part);\n        }\n      }\n      detection.mask_vertices = mask_vertices;\n    } else {\n      caption = detection[visualizer_data.label_key]; // non demographic mode\n      if (caption && caption.constructor === String) {\n        //It's a string\n      } else {\n        // some other type of object\n        var keys = Object.keys(caption);\n        if (keys.length == 1) {\n          caption = caption[keys[0]]; // get the only property\n        } else {\n          caption = JSON.stringify(caption);\n        }\n      }\n    }\n\n    if (detection.bounding_box) {\n      detection.bounding_box[0] *= scale_applied;\n      detection.bounding_box[1] *= scale_applied;\n      detection.bounding_box[2] *= scale_applied;\n      detection.bounding_box[3] *= scale_applied;\n    }\n\n    // Note: this also handles pose results!\n    if (detection.mask_vertices) {\n      for (var part of detection.mask_vertices) {\n        for (var point of part) {\n          point[0] *= scale_applied;\n          point[1] *= scale_applied;\n        }\n      }\n    }\n    processed_annotations.push({\n      bounding_box: detection.bounding_box,\n      mask_vertices: detection.mask_vertices,\n      caption: caption,\n    });\n  }\n  return processed_annotations;\n}\n\nmodule.exports = {\n  renderResultIntoElement: renderResultIntoElement,\n  renderAnnotatedResultIntoElement: renderAnnotatedResultIntoElement,\n};\n","\"use strict\";\n\nconst DeepAI = require(\"./core/DeepAI\");\n\n// Create the default instance to be exported\nconst deepai = new DeepAI();\nmodule.exports = deepai;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function define(obj, key, value) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n    return obj[key];\n  }\n  try {\n    // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n    define({}, \"\");\n  } catch (err) {\n    define = function(obj, key, value) {\n      return obj[key] = value;\n    };\n  }\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  define(IteratorPrototype, iteratorSymbol, function () {\n    return this;\n  });\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = GeneratorFunctionPrototype;\n  define(Gp, \"constructor\", GeneratorFunctionPrototype);\n  define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n  GeneratorFunction.displayName = define(\n    GeneratorFunctionPrototype,\n    toStringTagSymbol,\n    \"GeneratorFunction\"\n  );\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      define(prototype, method, function(arg) {\n        return this._invoke(method, arg);\n      });\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n    return this;\n  });\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  define(Gp, toStringTagSymbol, \"Generator\");\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  define(Gp, iteratorSymbol, function() {\n    return this;\n  });\n\n  define(Gp, \"toString\", function() {\n    return \"[object Generator]\";\n  });\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, in modern engines\n  // we can explicitly access globalThis. In older engines we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  if (typeof globalThis === \"object\") {\n    globalThis.regeneratorRuntime = runtime;\n  } else {\n    Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n  }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\n__webpack_require__(666);\nvar __webpack_exports__ = __webpack_require__(142);\n",""],"names":["module","exports","require","axios","apiBaseUrl","baseUrl","resultRendering","globalObject","Function","FormData","formData","eval","DeepAI","axiosInstance","create","headers","prototype","setApiKey","apiKey","defaults","common","urlForModel","model_name","callStandardApi","inputs_object","form","Object","keys","key","undefined","append","Element","element","tagName","src","Error","files","length","hasOwnProperty","Buffer","isBuffer","req_options","withCredentials","getHeaders","post","response","data","request","renderResultIntoElement","renderAnnotatedResultIntoElement","WAD_COLORS","isAbsolute","RegExp","isDataOrBlob","prependApiBaseIfNeeded","url","test","polygonToSvgPath","polygon","left","top","path_strings","part","push","first","point","isNaN","console","log","join","getAnnotatedResultFromResult","result","err","fetch","id","credentials","resultPageData","json","result_data","output","output_url","inputs","visualizer_data","scale_applied","annotatedResult","innerHTML","scroller","document","createElement","style","width","height","overflow","display","alignItems","flexDirection","appendChild","pre","textContent","whiteSpace","margin","input","is_img","img_tag","position","objectFit","resultscaler","onload","innerDoc","contentDocument","body","bbox_container","opacity","iframe_reflow","transform","bodyWidth","scrollWidth","bodyHeight","scrollHeight","imgWidth","offsetWidth","imgHeight","offsetHeight","containerWidth","containerHeight","wExcess","hExcess","wScale","hScale","minScale","Math","min","transformOrigin","setProperty","contentWindow","onresize","processed_annotations","process_annotations","i","annotation","bbox","color","mask_vertices","minx","miny","maxx","maxy","x","y","svg","createElementNS","path","setAttributeNS","fill","stroke","strokeWidth","border","bounding_box","Exception","bbox_label","caption","fontFamily","backgroundColor","fontSize","JSON","stringify","capitalizeFirstLetter","string","charAt","toUpperCase","slice","toTitleCase","str","replace","txt","substr","toLowerCase","input_struct","parse","detections","list_key","sort","a","b","confidence","count","detection","label_key","parts","named_segments","pair","p1","p2","polygon_part","constructor","String","deepai"],"sourceRoot":""}