yc-ui2 0.1.2-beta14 → 0.1.2-beta16

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"yc-ui2.umd.js","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;ACVa;AACb,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAA4B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,eAAe,mBAAO,CAAC,GAAwB;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,gBAAgB;AACjC;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChCa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,cAAc,mBAAO,CAAC,IAAuB;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;;;;;;;;;AC1Ba;AACb,kBAAkB,mBAAO,CAAC,IAAoC;;AAE9D,6BAA6B;AAC7B;;AAEA;AACA;AACA;;;;;;;;;ACRa;AACb,aAAa,mBAAO,CAAC,IAA+B;AACpD,cAAc,mBAAO,CAAC,IAAuB;AAC7C,qCAAqC,mBAAO,CAAC,IAAiD;AAC9F,2BAA2B,mBAAO,CAAC,IAAqC;;AAExE;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChBa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,2BAA2B,mBAAO,CAAC,IAAqC;AACxE,+BAA+B,mBAAO,CAAC,IAAyC;;AAEhF;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;;ACVa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRa;AACb,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,2BAA2B,mBAAO,CAAC,IAAqC;AACxE,kBAAkB,mBAAO,CAAC,IAA4B;AACtD,2BAA2B,mBAAO,CAAC,IAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM,gBAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;;;;;;;;AC3Ba;AACb,aAAa,mBAAO,CAAC,IAAqB;;AAE1C;AACA;;AAEA;AACA;AACA,kCAAkC,kDAAkD;AACpF,IAAI;AACJ;AACA,IAAI;AACJ;;;;;;;;;ACZa;AACb,YAAY,mBAAO,CAAC,IAAoB;;AAExC;AACA;AACA;AACA,iCAAiC,OAAO,mBAAmB,aAAa;AACxE,CAAC;;;;;;;;;ACPY;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,eAAe,mBAAO,CAAC,GAAwB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;ACVa;AACb;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;;;;;;;;;ACPa;AACb;;;;;;;;;ACDa;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,gBAAgB,mBAAO,CAAC,IAAgC;;AAExD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC3Ba;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,+BAA+B,6BAA4D;AAC3F,kCAAkC,mBAAO,CAAC,IAA6C;AACvF,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,2BAA2B,mBAAO,CAAC,IAAqC;AACxE,gCAAgC,mBAAO,CAAC,IAA0C;AAClF,eAAe,mBAAO,CAAC,IAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,8DAA8D;AAC9D,IAAI;AACJ,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDa;AACb;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;ACPa;AACb,YAAY,mBAAO,CAAC,IAAoB;;AAExC;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA,CAAC;;;;;;;;;ACRY;AACb,kBAAkB,mBAAO,CAAC,IAAmC;;AAE7D;;AAEA;AACA;AACA;;;;;;;;;ACPa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,aAAa,mBAAO,CAAC,IAA+B;;AAEpD;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,aAAa;AAC5D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACjBa;AACb,kBAAkB,mBAAO,CAAC,IAAmC;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACXa;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,iBAAiB,mBAAO,CAAC,GAA0B;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;ACVa;AACb,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM,gBAAgB,qBAAM;AAC3C;AACA,iBAAiB,cAAc;;;;;;;;;ACdlB;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,eAAe,mBAAO,CAAC,IAAwB;;AAE/C,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXa;AACb;;;;;;;;;ACDa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,YAAY,mBAAO,CAAC,IAAoB;AACxC,oBAAoB,mBAAO,CAAC,GAAsC;;AAElE;AACA;AACA;AACA;AACA,uBAAuB;AACvB,GAAG;AACH,CAAC;;;;;;;;;ACXY;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,YAAY,mBAAO,CAAC,IAAoB;AACxC,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,EAAE;;;;;;;;;ACfW;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,YAAY,mBAAO,CAAC,IAA2B;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACda;AACb,sBAAsB,mBAAO,CAAC,IAAuC;AACrE,aAAa,mBAAO,CAAC,IAAqB;AAC1C,eAAe,mBAAO,CAAC,GAAwB;AAC/C,kCAAkC,mBAAO,CAAC,IAA6C;AACvF,aAAa,mBAAO,CAAC,IAA+B;AACpD,aAAa,mBAAO,CAAC,IAA2B;AAChD,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtEa;AACb,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRa;AACb,mBAAmB,mBAAO,CAAC,IAA2B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;ACXa;AACb,YAAY,mBAAO,CAAC,IAAoB;AACxC,iBAAiB,mBAAO,CAAC,GAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;ACtBa;AACb;AACA;AACA;AACA;AACA;;;;;;;;;ACLa;AACb,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,mBAAmB,mBAAO,CAAC,IAA2B;;AAEtD;;AAEA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;ACVa;AACb;;;;;;;;;ACDa;AACb,iBAAiB,mBAAO,CAAC,IAA2B;AACpD,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;;ACba;AACb,eAAe,mBAAO,CAAC,IAAwB;;AAE/C;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,YAAY,mBAAO,CAAC,IAAoB;AACxC,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,aAAa,mBAAO,CAAC,IAA+B;AACpD,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,iCAAiC,wCAAkD;AACnF,oBAAoB,mBAAO,CAAC,IAA6B;AACzD,0BAA0B,mBAAO,CAAC,IAA6B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,aAAa,cAAc,UAAU;AAC3E,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAiC;AACtF;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,4DAA4D,iBAAiB;AAC7E;AACA,MAAM;AACN,IAAI,gBAAgB;AACpB;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACtDY;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,qBAAqB,mBAAO,CAAC,IAA6B;AAC1D,8BAA8B,mBAAO,CAAC,IAAsC;AAC5E,eAAe,mBAAO,CAAC,IAAwB;AAC/C,oBAAoB,mBAAO,CAAC,IAA8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;;;;;;;;;AC3Ca;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,WAAW,mBAAO,CAAC,IAA4B;AAC/C,iCAAiC,mBAAO,CAAC,IAA4C;AACrF,+BAA+B,mBAAO,CAAC,IAAyC;AAChF,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,aAAa,mBAAO,CAAC,IAA+B;AACpD,qBAAqB,mBAAO,CAAC,IAA6B;;AAE1D;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;;;;;;;;;ACtBa;AACb,yBAAyB,mBAAO,CAAC,IAAmC;AACpE,kBAAkB,mBAAO,CAAC,GAA4B;;AAEtD;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;ACXa;AACb;AACA,SAAS;;;;;;;;;ACFI;AACb,kBAAkB,mBAAO,CAAC,IAAoC;;AAE9D,+BAA+B;;;;;;;;;ACHlB;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,aAAa,mBAAO,CAAC,IAA+B;AACpD,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,cAAc,mCAA8C;AAC5D,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBa;AACb,8BAA8B;AAC9B;AACA;;AAEA;AACA,4EAA4E,MAAM;;AAElF;AACA;AACA,SAAS;AACT;AACA;AACA,EAAE;;;;;;;;;ACbW;AACb,WAAW,mBAAO,CAAC,IAA4B;AAC/C,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,eAAe,mBAAO,CAAC,GAAwB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfa;AACb,iBAAiB,mBAAO,CAAC,IAA2B;AACpD,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,gCAAgC,mBAAO,CAAC,IAA4C;AACpF,kCAAkC,mBAAO,CAAC,IAA8C;AACxF,eAAe,mBAAO,CAAC,IAAwB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACda;AACb,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,UAAU,mBAAO,CAAC,IAAkB;;AAEpC;;AAEA;AACA;AACA;;;;;;;;;ACRa;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,2BAA2B,mBAAO,CAAC,IAAqC;;AAExE;AACA,6DAA6D;;AAE7D;;;;;;;;;ACPa;AACb,cAAc,mBAAO,CAAC,IAAsB;AAC5C,YAAY,mBAAO,CAAC,IAA2B;;AAE/C;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACZY;AACb;AACA,iBAAiB,mBAAO,CAAC,IAAgC;AACzD,YAAY,mBAAO,CAAC,IAAoB;AACxC,aAAa,mBAAO,CAAC,IAAqB;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;AClBY;AACb,0BAA0B,mBAAO,CAAC,IAAqC;;AAEvE;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;;;;;;;;ACZa;AACb;AACA,oBAAoB,mBAAO,CAAC,IAA6B;AACzD,6BAA6B,mBAAO,CAAC,IAAuC;;AAE5E;AACA;AACA;;;;;;;;;ACPa;AACb,YAAY,mBAAO,CAAC,IAAyB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb,0BAA0B,mBAAO,CAAC,IAAqC;;AAEvE;;AAEA;AACA;AACA;AACA,kFAAkF;AAClF;;;;;;;;;ACTa;AACb,6BAA6B,mBAAO,CAAC,IAAuC;;AAE5E;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb,WAAW,mBAAO,CAAC,IAA4B;AAC/C,eAAe,mBAAO,CAAC,GAAwB;AAC/C,eAAe,mBAAO,CAAC,IAAwB;AAC/C,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,0BAA0B,mBAAO,CAAC,IAAoC;AACtE,sBAAsB,mBAAO,CAAC,IAAgC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzBa;AACb,kBAAkB,mBAAO,CAAC,IAA2B;AACrD,eAAe,mBAAO,CAAC,IAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;ACTa;AACb,kBAAkB,mBAAO,CAAC,IAAoC;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;ACTa;AACb;AACA,oBAAoB,mBAAO,CAAC,IAA2C;;AAEvE;AACA;AACA;;;;;;;;;ACNa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,YAAY,mBAAO,CAAC,IAAoB;;AAExC;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;ACZY;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,iBAAiB,mBAAO,CAAC,GAA0B;;AAEnD;;AAEA;;;;;;;;;ACNa;AACb,aAAa,mBAAO,CAAC,IAAqB;AAC1C,aAAa,mBAAO,CAAC,IAAqB;AAC1C,aAAa,mBAAO,CAAC,IAA+B;AACpD,UAAU,mBAAO,CAAC,IAAkB;AACpC,oBAAoB,mBAAO,CAAC,IAA2C;AACvE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;AClBa;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,eAAe,mBAAO,CAAC,IAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAmC;AACnE,qBAAqB,mBAAO,CAAC,IAA+B;AAC5D,+BAA+B,mBAAO,CAAC,IAA2C;AAClF,YAAY,mBAAO,CAAC,IAAoB;;AAExC;AACA,wBAAwB,qBAAqB;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,wDAAwD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACzCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,YAAW;EACZ,IAAI,OAAOA,OAAO,KAAK,WAAW,EAAE;IAChC;IACAA,OAAO,GAAG,CAAC,CAAC;EAChB;AACA,CAAC,EAAE,CAAC;;AAEJ;AACA,CAAC,YAAW;EAEZ,SAASC,cAAcA,CAAA,EAAE;IACrB,IAAI,CAACC,GAAG,GAAG,CAAC,CAAC;EACjB;EAEAD,cAAc,CAACE,SAAS,GAAG;IACvBC,GAAG,EAAG,SAAAA,CAASC,GAAG,EAAGC,KAAK,EAAC;MACvB,IAAI,CAACJ,GAAG,CAACG,GAAG,CAAC,GAAGC,KAAK;IACzB,CAAC;IAEDC,GAAG,EAAG,SAAAA,CAASF,GAAG,EAAC;MACf;MACA,IAAG,IAAI,CAACH,GAAG,CAACM,cAAc,CAACH,GAAG,CAAC,EAAC;QAC5B,OAAO,IAAI,CAACH,GAAG,CAACG,GAAG,CAAC;MACxB;MACA,OAAO,IAAI;IACf,CAAC;IAEDI,MAAM,EAAG,SAAAA,CAASJ,GAAG,EAAC;MAClB;MACA,IAAG,IAAI,CAACH,GAAG,CAACM,cAAc,CAACH,GAAG,CAAC,EAAC;QAC5B,OAAO,OAAO,IAAI,CAACH,GAAG,CAACG,GAAG,CAAC;MAC/B;MACA,OAAO,KAAK;IAChB,CAAC;IAEDK,SAAS,EAAG,SAAAA,CAAA,EAAU;MAClB,IAAI,CAACR,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC;IAEDS,MAAM,EAAG,SAAAA,CAAA,EAAU;MACf,IAAIC,KAAK,GAAG,EAAE;MACd,KAAI,IAAIC,CAAC,IAAI,IAAI,CAACX,GAAG,EAAC;QAClBU,KAAK,CAACE,IAAI,CAACD,CAAC,CAAC;MACjB;MACA,OAAOD,KAAK;IAChB;EACJ,CAAC;EAEDX,cAAc,CAACE,SAAS,CAACY,WAAW,GAAGd,cAAc;;EAErD;EACAD,OAAO,CAACgB,OAAO,GAAGf,cAAc;AAChC,CAAC,EAAE,CAAC;;AAEJ;AACA,CAAC,YAAW;EAEZ,SAASgB,cAAcA,CAACjB,OAAO,EAAE;IAE7B,IAAIkB,IAAI,GAAGlB,OAAO,CAACkB,IAAI,GAAGlB,OAAO,CAACkB,IAAI,IAAI,CAAC,CAAC;IAE5CA,IAAI,CAACC,gBAAgB,GAAG,YAAW;MAC/B,OAAQ,CAAC,CAACC,MAAM,CAACC,aAAa,IAAI,eAAe,IAAID,MAAM,GAAI,IAAI,GAAG,KAAK;IAC/E,CAAC;IAEDF,IAAI,CAACI,oBAAoB,GAAG,YAAW;MACnC,OAAO,QAAQ,IAAIC,QAAQ,CAACC,QAAQ,CAACC,QAAQ,GAAG,IAAI,GAAE,KAAK;IAC/D,CAAC;IAEDP,IAAI,CAACQ,YAAY,GAAG,UAAUC,IAAI,EAAE;MAChC,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;QAC5B,OAAOA,IAAI;MACf,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QACjC;QACAC,EAAE,GAAGC,IAAI,CAACF,IAAI,CAAC;MACnB,CAAC,MAAM;QACH,OAAO,IAAI;MACf;IACJ,CAAC;IAEDT,IAAI,CAACY,UAAU,GAAG,UAASC,KAAK,EAAE;MAC9B,IAAIX,MAAM,CAACY,OAAO,IAAIC,SAAS,IAAIb,MAAM,CAACY,OAAO,CAACE,GAAG,IAAID,SAAS,EAAE;QAChE;MACJ;MACAD,OAAO,CAACE,GAAG,CAACH,KAAK,CAAC;IACtB,CAAC;IAEDb,IAAI,CAACiB,OAAO,GAAG,UAASJ,KAAK,EAAE;MAC3B,IAAI,CAACA,KAAK,EAAE;QACR,OAAO,IAAI;MACf;MACA,IAAI,OAAOA,KAAK,IAAI,QAAQ,IAAIA,KAAK,IAAI,EAAE,EAAE;QACzC,OAAO,IAAI;MACf;MAEA,OAAO,KAAK;IAChB,CAAC;IAEDb,IAAI,CAACkB,SAAS,GAAG,UAASC,KAAK,EAAEC,OAAO,EAAEC,SAAS,EAAE;MACjD,IAAI,CAACrB,IAAI,CAACC,gBAAgB,CAAC,CAAC,EAAE;QAC1B,OAAO,IAAI;MACf;MACA,IAAIqB,GAAG,GAAGjB,QAAQ,CAACkB,cAAc,CAACH,OAAO,CAAC;MAC1C,IAAIE,GAAG,EAAE;QACL,OAAOA,GAAG;MACd;MACA,IAAI;QACA,IAAIE,aAAa,GAAG,cAAc,GAAGJ,OAAO,GAAG,mBAAmB,GAAGD,KAAK,GAAG,kCAAkC;QAC/GK,aAAa,IAAI,WAAW;QAC5BnB,QAAQ,CAACoB,KAAK,CAACD,aAAa,CAAC;QAC7B,IAAIH,SAAS,IAAI,IAAI,IAAIA,SAAS,IAAI,EAAE,IAAIV,IAAI,CAACS,OAAO,GAAG,GAAG,GAAGC,SAAS,CAAC,IAAIN,SAAS,EAAE;UACtF,OAAO,IAAI;QACf;MACJ,CAAC,CAAC,OAAOW,CAAC,EAAE;QACR1B,IAAI,CAACY,UAAU,CAACc,CAAC,CAAC;QAClB,OAAO,IAAI;MACf;MACA,OAAOrB,QAAQ,CAACkB,cAAc,CAACH,OAAO,CAAC;IAC3C,CAAC;IAEDpB,IAAI,CAAC2B,yBAAyB,GAAG,UAAUlB,IAAI,EAAE;MAC7C,IAAImB,GAAG,GAAG,GAAG;MACbA,GAAG,IAAInB,IAAI,CAACoB,QAAQ,CAAC,CAAC;MACtBD,GAAG,IAAI,KAAK;MAEZ,OAAOA,GAAG;IACd,CAAC;IAED5B,IAAI,CAAC8B,aAAa,GAAG,UAASV,OAAO,EAAEW,SAAS,EAAEC,SAAS,EAAE;MACzD,IAAIV,GAAG;MACP,IAAI,OAAOF,OAAO,KAAK,QAAQ,EAAE;QAC7BE,GAAG,GAAGX,IAAI,CAACS,OAAO,CAAC;MACvB,CAAC,MAAM;QACHE,GAAG,GAAGF,OAAO;MACjB;MACAW,SAAS,GAAGA,SAAS,CAACE,WAAW,CAAC,CAAC;MAEnC,IAAIvB,EAAE,GAAGV,IAAI,CAACQ,YAAY,CAACwB,SAAS,CAAC;MACrC,IAAItB,EAAE,IAAI,IAAI,EAAE;QACZ;MACJ;MAEA,IAAIY,GAAG,CAACY,WAAW,EAAE;QACjBZ,GAAG,CAACY,WAAW,CAACH,SAAS,EAAErB,EAAE,CAAC;MAClC,CAAC,MAAM;QAAE;QACL,IAAIyB,OAAO,GAAG9B,QAAQ,CAAC+B,aAAa,CAAC,QAAQ,CAAC;QAC9CD,OAAO,CAACE,YAAY,CAAC,KAAK,EAAEjB,OAAO,CAAC;QACpCe,OAAO,CAACE,YAAY,CAAC,OAAO,EAAEN,SAAS,CAAC;QACxC,IAAIO,WAAW,GAAGtC,IAAI,CAAC2B,yBAAyB,CAACK,SAAS,CAAC;QAC3DG,OAAO,CAACI,WAAW,CAAClC,QAAQ,CAACmC,cAAc,CAACF,WAAW,CAAC,CAAC;QACzDjC,QAAQ,CAACoC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACF,WAAW,CAACJ,OAAO,CAAC;MACjE;IACJ,CAAC;IAEDnC,IAAI,CAAC0C,gBAAgB,GAAG,UAASC,KAAK,EAAEC,MAAM,EAAE;MAC5C,IAAI9D,OAAO,CAAC+D,QAAQ,EAAE;QAClB,OAAO/D,OAAO,CAAC+D,QAAQ;MAC3B;MACA,IAAIC,GAAG;MACP,IAAI9C,IAAI,CAACI,oBAAoB,CAAC,CAAC,EAAE;QAC7B0C,GAAG,GAAG,QAAQ,GAAGF,MAAM;MAC3B,CAAC,MAAM;QACHE,GAAG,GAAG,OAAO,GAAGH,KAAK;MACzB;MAEA,IAAIE,QAAQ,GAAG;QACXE,MAAM,EAAchC,SAAS;QAC7BiC,cAAc,EAAM,IAAIlE,OAAO,CAACgB,OAAO,CAAC,CAAC;QACzCmD,gBAAgB,EAAI,CAAC;QACrBC,YAAY,EAAQ,IAAIpE,OAAO,CAACgB,OAAO,CAAC,CAAC;QACzCqD,KAAK,EAAeL,GAAG;QACvBM,cAAc,EAAM;MACxB,CAAC;MACDtE,OAAO,CAAC+D,QAAQ,GAAGA,QAAQ;MAC3B/D,OAAO,CAAC+D,QAAQ,CAACK,YAAY,CAAChE,GAAG,CAAC,gBAAgB,EAAEc,IAAI,CAACQ,YAAY,CAAC1B,OAAO,CAACuE,MAAM,CAACC,mBAAmB,CAAC,CAAC;MAE1G,IAAI;QACAT,QAAQ,CAACE,MAAM,GAAG,IAAIQ,SAAS,CAACT,GAAG,CAAC;MACxC,CAAC,CAAC,OAAOpB,CAAC,EAAE;QACR1B,IAAI,CAACY,UAAU,CAACc,CAAC,CAAC;QAClB,OAAO,IAAI;MACf;;MAEA;MACAmB,QAAQ,CAACE,MAAM,CAACS,MAAM,GAAG,UAASC,GAAG,EAAE;QACnC3E,OAAO,CAACkB,IAAI,CAACY,UAAU,CAAC,iBAAiB,GAAGkC,GAAG,GAAG,SAAS,CAAC;QAC5DhE,OAAO,CAAC4E,cAAc,CAAC,UAAS9B,GAAG,EAAE;UACjC5B,IAAI,CAACY,UAAU,CAAC,kBAAkB,GAAGgB,GAAG,CAAC+B,MAAM,GAAG,GAAG,CAAC;QAC1D,CAAC,CAAC;QACF,OAAO7E,OAAO,CAAC+D,QAAQ,CAACO,cAAc,CAACQ,MAAM,GAAG,CAAC,EAAE;UAC/C,IAAIC,OAAO,GAAG/E,OAAO,CAAC+D,QAAQ,CAACO,cAAc,CAACU,KAAK,CAAC,CAAC;UACrD;UACAhF,OAAO,CAAC+D,QAAQ,CAACE,MAAM,CAACgB,IAAI,CAACF,OAAO,CAAC;QACzC;MACJ,CAAC;MACD;MACAhB,QAAQ,CAACE,MAAM,CAACiB,OAAO,GAAG,UAASP,GAAG,EAAE;QACpCzD,IAAI,CAACY,UAAU,CAAC,YAAY,GAAGkC,GAAG,GAAG,wBAAwB,CAAC;QAC9DhE,OAAO,CAAC+D,QAAQ,GAAG9B,SAAS;QAC5BjC,OAAO,CAACmF,eAAe,GAAGnF,OAAO,CAACkB,IAAI,CAAC0C,gBAAgB,CAACC,KAAK,EAAEC,MAAM,CAAC;MAC1E,CAAC;MACDC,QAAQ,CAACE,MAAM,CAACmB,SAAS,GAAG,UAAST,GAAG,EAAE;QACtC;QACA,IAAIU,QAAQ,GAAG,KAAK;QACpB,IAAIrF,OAAO,CAACkB,IAAI,CAACiB,OAAO,CAACwC,GAAG,CAACW,IAAI,CAAC,EAAE;UAChCpE,IAAI,CAACY,UAAU,CAAC,wCAAwC,CAAC;UACzD;QACJ;QACA,IAAI;UACA,IAAIyD,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACd,GAAG,CAACW,IAAI,CAAC;UAC9B,IAAII,KAAK,GAAGzD,SAAS;UACrB;UACA,IAAIsD,GAAG,CAAC/E,cAAc,CAAC,aAAa,CAAC,EAAE;YACnCkF,KAAK,GAAGH,GAAG,CAAC,aAAa,CAAC;UAC9B,CAAC,MAAM;YACHrE,IAAI,CAACY,UAAU,CAAC,wCAAwC,CAAC;YACzD;UACJ;UAEA,IAAI+C,MAAM,GAAG5C,SAAS;UACtB;UACA,IAAIsD,GAAG,CAAC/E,cAAc,CAAC,UAAU,CAAC,EAAE;YAChCqE,MAAM,GAAGU,GAAG,CAAC,UAAU,CAAC;YAC5B;UACA,CAAC,MAAM,IAAIA,GAAG,CAAC/E,cAAc,CAAC,QAAQ,CAAC,EAAE;YACrCqE,MAAM,GAAGU,GAAG,CAAC,QAAQ,CAAC;UAC1B;UAEA,IAAII,UAAU,GAAG1D,SAAS;UAC1B,IAAIgB,SAAS,GAAGyC,KAAK,CAACvC,WAAW,CAAC,CAAC;UACnC,IAAIyC,QAAQ,GAAG5F,OAAO,CAAC+D,QAAQ,CAACK,YAAY,CAAC7D,GAAG,CAAC0C,SAAS,CAAC;UAC3D,IAAI2C,QAAQ,IAAI,OAAOA,QAAQ,IAAI,UAAU,EAAE;YAAE;YAC7CA,QAAQ,CAACf,MAAM,CAAC;UACpB,CAAC,MAAM;YAAE;YACL,IAAIgB,YAAY,GAAG7F,OAAO,CAAC+D,QAAQ,CAACG,cAAc,CAAC3D,GAAG,CAACmF,KAAK,CAAC;YAC7D,IAAI,CAACG,YAAY,IAAI,CAACA,YAAY,CAACC,MAAM,EAAE;cACvC5E,IAAI,CAACY,UAAU,CAAC,yBAAyB,GAAGyD,GAAG,CAAC,aAAa,CAAC,GAAG,oBAAoB,CAAC;cACtF;YACJ;YACAI,UAAU,GAAGE,YAAY,CAACC,MAAM;YAChCF,QAAQ,GAAGC,YAAY,CAACjE,EAAE;YAC1B,IAAI,CAACgE,QAAQ,IAAI,OAAOA,QAAQ,IAAI,UAAU,EAAE;cAC5C1E,IAAI,CAACY,UAAU,CAAC,yBAAyB,GAAGyD,GAAG,CAAC,aAAa,CAAC,GAAG,2BAA2B,CAAC;cAC7F;YACJ;YACA,IAAIQ,GAAG,GAAGF,YAAY,CAACE,GAAG;YAC1BA,GAAG,GAAGA,GAAG,IAAI;cAACC,UAAU,EAAC;YAAQ,CAAC;YAClC,IAAIlD,GAAG;YACP,IAAIiD,GAAG,CAACC,UAAU,IAAI,MAAM,EAAC;cACzB,IAAI,OAAOnB,MAAO,IAAI,QAAQ,EAAE;gBAC5B/B,GAAG,GAAG+B,MAAM,IAAI,MAAM,GAAG,IAAI,GAAG,KAAK;cACzC,CAAC,MAAM;gBACH/B,GAAG,GAAG+B,MAAM;cAChB;cACA,IAAI/B,GAAG,IAAIb,SAAS,EAAE;gBAClBa,GAAG,GAAG,KAAK;cACf;YACJ,CAAC,MAAM,IAAIiD,GAAG,CAACC,UAAU,IAAI,QAAQ,EAAC;cAClC,IAAI,OAAOnB,MAAO,IAAI,QAAQ,EAAE;gBAC5B/B,GAAG,GAAGmD,MAAM,CAACpB,MAAM,CAAC;cACxB,CAAC,MAAM;gBACH/B,GAAG,GAAG+B,MAAM;cAChB;cACA,IAAI/B,GAAG,IAAIb,SAAS,EAAE;gBAClBa,GAAG,GAAG,CAAC,CAAC;cACZ;YACJ,CAAC,MAAK;cACFA,GAAG,GAAG+B,MAAM;cACZ,IAAI/B,GAAG,IAAIb,SAAS,EAAE;gBAClBa,GAAG,GAAG,EAAE;cACZ;YACJ;YACA,IAAIyC,GAAG,CAACW,KAAK,EAAE;cACX;cACAlG,OAAO,CAACuE,MAAM,CAAC4B,QAAQ,CAACZ,GAAG,CAACW,KAAK,CAAC;YACtC;YACA,IAAK,CAACP,UAAU,IAAI,WAAW,IAAIA,UAAU,IAAI,aAAa,KAAK,CAAC7C,GAAG,IAAM6C,UAAU,IAAI,YAAY,IAAI7C,GAAI,EAAE;cAC7G9C,OAAO,CAACuE,MAAM,CAAC4B,QAAQ,CAAC,EAAE,CAAC;YAC/B;YACA,IAAIC,MAAM,GAAG;cAACvB,MAAM,EAAC/B,GAAG;cAAEiD,GAAG,EAACA;YAAG,CAAC;YAClCH,QAAQ,CAACQ,MAAM,CAAC;YAChBpG,OAAO,CAAC+D,QAAQ,CAACG,cAAc,CAACzD,MAAM,CAACiF,KAAK,CAAC;UACjD;QACJ,CAAC,CAAC,OAAO9C,CAAC,EAAE;UACR;QACJ;MACJ,CAAC;MACDmB,QAAQ,CAACE,MAAM,CAACoC,OAAO,GAAG,UAAS1B,GAAG,EAAE;QACpC3E,OAAO,CAACkB,IAAI,CAACY,UAAU,CAAC6C,GAAG,CAACW,IAAI,CAAC;MACrC,CAAC;MAED,OAAOvB,QAAQ;IACnB,CAAC;IAED7C,IAAI,CAACoF,oBAAoB,GAAG,UAASvC,QAAQ,EAAEd,SAAS,EAAEC,SAAS,EAAE;MACjE,IAAIa,QAAQ,IAAI,IAAI,EAAE;QAClB;MACJ;MACAA,QAAQ,CAACK,YAAY,CAAChE,GAAG,CAAC6C,SAAS,CAACE,WAAW,CAAC,CAAC,EAAEjC,IAAI,CAACQ,YAAY,CAACwB,SAAS,CAAC,CAAC;IACpF,CAAC;IAEDhC,IAAI,CAACqF,mBAAmB,GAAG,UAAUxC,QAAQ,EAAE1B,KAAK,EAAEyD,MAAM,EAAElE,EAAE,EAAEmE,GAAG,EAAEC,UAAU,EAAEQ,SAAS,EAAE;MAC1F,IAAIzC,QAAQ,IAAI,IAAI,EAAE;QAClB;MACJ;MACAA,QAAQ,CAACI,gBAAgB,EAAE;MAC3B,IAAI,OAAOvC,EAAG,IAAI,UAAU,EAAC;QACzBmE,GAAG,GAAGA,GAAG,IAAI,CAAC,CAAC;QACfA,GAAG,CAACC,UAAU,GAAGA,UAAU;QAC3B,IAAIH,YAAY,GAAG;UAACjE,EAAE,EAACA,EAAE;UAAEmE,GAAG,EAACA,GAAG;UAAED,MAAM,EAACA;QAAM,CAAC;QAClD/B,QAAQ,CAACG,cAAc,CAAC9D,GAAG,CAAC,IAAI,GAAG2D,QAAQ,CAACI,gBAAgB,EAAE0B,YAAY,CAAC;MAC/E;MAEA,IAAIY,SAAS,GAAG;QACZ,aAAa,EAAK,IAAI,GAAG1C,QAAQ,CAACI,gBAAgB;QAClD,OAAO,EAAW9B,KAAK;QACvB,eAAe,EAAGyD,MAAM;QACxB,MAAM,EAAYA,MAAM;QACxB,KAAK,EAAa1E,MAAM,CAACI,QAAQ,CAACkF;MACtC,CAAC;MACD,IAAIC,SAAS,CAAC7B,MAAM,GAAG,CAAC,EAAE;QACtB,KAAK,IAAIjE,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI2F,SAAS,CAAC1B,MAAM,EAAEjE,CAAC,EAAE,EAAE;UACxC,IAAI+F,QAAQ,GAAG,QAAQ,GAAG/F,CAAC;UAC3B4F,SAAS,CAACG,QAAQ,CAAC,GAAGJ,SAAS,CAAC3F,CAAC,GAAG,CAAC,CAAC;QAC1C;QACA4F,SAAS,CAAC,OAAO,CAAC,GAAGD,SAAS;MAClC;MACA,IAAIN,KAAK,GAAGlG,OAAO,CAACuE,MAAM,CAACsC,QAAQ,CAAC,CAAC;MACrC,IAAIX,KAAK,IAAIA,KAAK,IAAI,EAAE,EAAE;QACtBO,SAAS,CAACP,KAAK,GAAGA,KAAK;MAC3B;MACA,IAAInC,QAAQ,CAACE,MAAM,CAAC6C,UAAU,IAAIrC,SAAS,CAACsC,IAAI,EAAE;QAC9ChD,QAAQ,CAACE,MAAM,CAACgB,IAAI,CAACO,IAAI,CAACwB,SAAS,CAACP,SAAS,CAAC,CAAC;MACnD,CAAC,MAAM,IAAI1C,QAAQ,CAACE,MAAM,CAAC6C,UAAU,IAAIrC,SAAS,CAACwC,UAAU,EAAE;QAC3D;QACA;QACA;QACAlD,QAAQ,CAACO,cAAc,CAACxD,IAAI,CAAC0E,IAAI,CAACwB,SAAS,CAACP,SAAS,CAAC,CAAC;MAC3D,CAAC,MAAM;QACHzG,OAAO,CAACkB,IAAI,CAACY,UAAU,CAAC,oCAAoC,GAAGiC,QAAQ,CAACM,KAAK,GAAG,MAAM,CAAC;MAC3F;IACJ,CAAC;IAEDnD,IAAI,CAACgG,SAAS,GAAG,UAASrC,MAAM,EAAEjD,EAAE,EAAEmE,GAAG,EACzC;MACI,IAAI,OAAOnE,EAAE,IAAI,UAAU,EAAE;QACzB,IAAIwE,MAAM,GAAG;UAACvB,MAAM,EAACA,MAAM;UAAEkB,GAAG,EAACA;QAAG,CAAC;QACrCnE,EAAE,CAACwE,MAAM,CAAC;MACd;IACJ,CAAC;EACL;;EAEA;EACA,OAAOnF,cAAc,CAACjB,OAAO,CAAC;AAC9B,CAAC,EAAE,CAAC;;AAEJ;AACA,CAAC,YAAW;EAEZ,SAASmH,iBAAiBA,CAACnH,OAAO,EAAE;IAChC,IAAIuE,MAAM,GAAGvE,OAAO,CAACuE,MAAM,GAAGvE,OAAO,CAACuE,MAAM,IAAI,CAAC,CAAC;IAElDA,MAAM,CAAC6C,cAAc,GAAG,EAAE;IAC1B7C,MAAM,CAAC8C,cAAc,GAAG,EAAE;IAC1B9C,MAAM,CAAC+C,aAAa,GAAG,EAAE;IACzB/C,MAAM,CAACgD,WAAW,GAAG,EAAE;IACvBhD,MAAM,CAACiD,UAAU,GAAG,IAAI;IACxBjD,MAAM,CAACkD,gBAAgB,GAAG,IAAI;IAC9BlD,MAAM,CAACmD,UAAU,GAAG,EAAE;IAEtBnD,MAAM,CAACoD,eAAe,GAAG,UAASC,GAAG,EAAE;MACnCC,KAAK,CAACD,GAAG,CAAC;IACd,CAAC;IAEDrD,MAAM,CAACuD,sBAAsB,GAAG,UAASC,SAAS,EAAEP,UAAU,EAAE;MAC5D,IAAIjD,MAAM,GAAGvE,OAAO,CAACuE,MAAM;MAC3BA,MAAM,CAACgD,WAAW,GAAGQ,SAAS;MAC9BxD,MAAM,CAACiD,UAAU,GAAGA,UAAU;IAClC,CAAC;IAEDjD,MAAM,CAACyD,aAAa,GAAG,UAASC,UAAU,EAAE;MACxC,IAAIA,UAAU,IAAI,EAAE,EAAE;QAClB;MACJ;MAEA,IAAIC,GAAG,GAAG3G,QAAQ,CAACkB,cAAc,CAACwF,UAAU,CAAC;MAC7C,IAAIC,GAAG,IAAIjG,SAAS,EAAE;QAClBiG,GAAG,GAAGrG,IAAI,CAACoG,UAAU,CAAC;MAC1B;MACA,IAAIC,GAAG,IAAIjG,SAAS,EAAE;QAClB;MACJ;MAEA,IAAIpB,CAAC;QAAEsH,CAAC,GAAGD,GAAG,CAACpD,MAAM;MACrB,KAAKjE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsH,CAAC,EAAEtH,CAAC,EAAE,EAAE;QACpBqH,GAAG,CAACzH,MAAM,CAAC,CAAC,CAAC;MACjB;IACJ,CAAC;IAED8D,MAAM,CAAC6D,kBAAkB,GAAG,UAASC,aAAa,EAAEC,SAAS,EAC7D;MACI,IAAIJ,GAAG,GAAG3G,QAAQ,CAACkB,cAAc,CAAC6F,SAAS,CAAC;MAC5C,IAAIJ,GAAG,IAAIjG,SAAS,EAAE;QAClBiG,GAAG,GAAGrG,IAAI,CAACyG,SAAS,CAAC;MACzB;MACA,IAAIJ,GAAG,IAAIjG,SAAS,EAAE;QAClB;MACJ;MAEA,KAAK,IAAIpB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwH,aAAa,CAACvD,MAAM,EAAEjE,CAAC,EAAE,EAAE;QAC3C,IAAI0H,OAAO,GAAGF,aAAa,CAACxH,CAAC,CAAC;QAC9B,IAAI2H,OAAO,GAAG,IAAIC,MAAM,CAACF,OAAO,CAACG,QAAQ,EAAEH,OAAO,CAACI,MAAM,CAAC;QAC1DT,GAAG,CAACU,OAAO,CAACC,GAAG,CAACL,OAAO,CAAC;MAC5B;MACA;IACJ,CAAC;IAEDjE,MAAM,CAACuE,yBAAyB,GAAG,UAAS1C,MAAM,EAAE;MAChD,IAAI7B,MAAM,GAAGvE,OAAO,CAACuE,MAAM;MAE3BA,MAAM,CAACyD,aAAa,CAACzD,MAAM,CAAC6C,cAAc,CAAC;MAC3C7C,MAAM,CAACyD,aAAa,CAACzD,MAAM,CAAC8C,cAAc,CAAC;MAC3C9C,MAAM,CAACyD,aAAa,CAACzD,MAAM,CAAC+C,aAAa,CAAC;MAE1C,IAAIyB,WAAW,GAAG3C,MAAM,CAACvB,MAAM;MAC/B,IAAImE,YAAY,GAAG,EAAE;MACrB;MACA,OAAO,IAAI,EAAE;QACT,IAAInI,CAAC,GAAGkI,WAAW,CAACE,OAAO,CAAC,KAAK,CAAC;QAClC,IAAIpI,CAAC,IAAI,CAAC,EAAG;UACT;QACJ;QACA,IAAIqI,UAAU,GAAGH,WAAW,CAACI,SAAS,CAAC,CAAC,EAAEtI,CAAC,CAAC;QAC5C,IAAIuI,OAAO,GAAGF,UAAU,CAACC,SAAS,CAAC,CAAC,EAAED,UAAU,CAACD,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAIlB,SAAS,GAAGmB,UAAU,CAACC,SAAS,CAACD,UAAU,CAACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAEC,UAAU,CAACpE,MAAM,CAAC;QACrFkE,YAAY,CAAClI,IAAI,CAAC;UAAC4H,QAAQ,EAACU,OAAO;UAAET,MAAM,EAACZ;QAAS,CAAC,CAAC;QAEvD,IAAIxD,MAAM,CAAC8C,cAAc,IAAI,EAAE,EAAE;UAC7BrH,OAAO,CAACqJ,aAAa,CAACtB,SAAS,EAAE,CAAC,EAAE,UAAS3B,MAAM,EAAE;YACjD,IAAIA,MAAM,CAACvB,MAAM,IAAI,MAAM,EAAE;cACzBN,MAAM,CAAC6D,kBAAkB,CAAC,CAAChC,MAAM,CAACL,GAAG,CAAC,EAAExB,MAAM,CAAC8C,cAAc,CAAC;YAClE;UACJ,CAAC,EAAE;YAACqB,QAAQ,EAACU,OAAO;YAAET,MAAM,EAACZ;UAAS,CAAC,CAAC;QAC5C;QAEA,IAAIxD,MAAM,CAAC6C,cAAc,IAAI,EAAE,EAAE;UAC7BpH,OAAO,CAACqJ,aAAa,CAACtB,SAAS,EAAE,CAAC,EAAE,UAAS3B,MAAM,EAAE;YACjD,IAAIA,MAAM,CAACvB,MAAM,IAAI,MAAM,EAAE;cACzBN,MAAM,CAAC6D,kBAAkB,CAAC,CAAChC,MAAM,CAACL,GAAG,CAAC,EAAExB,MAAM,CAAC6C,cAAc,CAAC;YAClE;UACJ,CAAC,EAAE;YAACsB,QAAQ,EAACU,OAAO;YAAET,MAAM,EAACZ;UAAS,CAAC,CAAC;QAC5C;QACA,IAAIuB,GAAG,GAAGP,WAAW,CAACjE,MAAM;QAC5BiE,WAAW,GAAGA,WAAW,CAACI,SAAS,CAACtI,CAAC,GAAG,CAAC,EAAEyI,GAAG,CAAC;MACnD;MAEA,IAAI/E,MAAM,CAAC+C,aAAa,IAAI,EAAE,EAAE;QAC5B/C,MAAM,CAAC6D,kBAAkB,CAACY,YAAY,EAAEzE,MAAM,CAAC+C,aAAa,CAAC;MACjE;IACJ,CAAC;IAED/C,MAAM,CAACgF,eAAe,GAAG,UAASC,UAAU,EAAEC,QAAQ,EAAE;MACpD,IAAIlF,MAAM,GAAGvE,OAAO,CAACuE,MAAM;MAE3B,IAAIkF,QAAQ,IAAIC,aAAa,IAAID,QAAQ,IAAIxH,SAAS,EAAE;QACpDsC,MAAM,CAAC+C,aAAa,GAAGkC,UAAU;MACrC;MAEA,IAAIC,QAAQ,IAAIE,cAAc,EAAE;QAC5BpF,MAAM,CAAC8C,cAAc,GAAGmC,UAAU;MACtC;MAEA,IAAIC,QAAQ,IAAIG,cAAc,EAAE;QAC5BrF,MAAM,CAAC6C,cAAc,GAAGoC,UAAU;MACtC;MACAxJ,OAAO,CAAC6J,eAAe,CAACtF,MAAM,CAACuE,yBAAyB,CAAC;IAC7D,CAAC;IAEDvE,MAAM,CAACuF,yBAAyB,GAAG,UAASC,QAAQ,EAAE;MAClD,IAAIxF,MAAM,GAAGvE,OAAO,CAACuE,MAAM;MAC3BA,MAAM,CAACkD,gBAAgB,GAAGsC,QAAQ;IACtC,CAAC;IAEDxF,MAAM,CAACyF,kBAAkB,GAAG,UAASC,OAAO,EAAE;MAC1C,IAAI1F,MAAM,GAAGvE,OAAO,CAACuE,MAAM;MAC3BA,MAAM,CAACoD,eAAe,GAAGsC,OAAO;IACpC,CAAC;IAED1F,MAAM,CAAC2F,kBAAkB,GAAG,UAAS9D,MAAM,EAAE;MACzC,IAAI7B,MAAM,GAAGvE,OAAO,CAACuE,MAAM;MAC3B,IAAI6B,MAAM,CAACvB,MAAM,CAACoE,OAAO,CAAC1E,MAAM,CAACgD,WAAW,CAAC,IAAI,CAAC,EAAE;QAChDhD,MAAM,CAACiD,UAAU,CAAC,CAAC;MACvB;IACJ,CAAC;IAEDjD,MAAM,CAACC,mBAAmB,GAAG,YAAW;MACpC,IAAID,MAAM,GAAGvE,OAAO,CAACuE,MAAM;MAC3BvE,OAAO,CAAC6J,eAAe,CAACtF,MAAM,CAACuE,yBAAyB,CAAC;MAEzD,IAAI,OAAOvE,MAAM,CAACkD,gBAAgB,IAAI,UAAU,EAAE;QAC9ClD,MAAM,CAACkD,gBAAgB,CAAC,CAAC;MAC7B;MAEA,IAAIlD,MAAM,CAACgD,WAAW,IAAI,EAAE,IAAI,OAAOhD,MAAM,CAACiD,UAAU,IAAI,UAAU,EAAE;QACnExH,OAAO,CAAC6J,eAAe,CAACtF,MAAM,CAAC2F,kBAAkB,CAAC;MACvD;IACJ,CAAC;IAED3F,MAAM,CAACsC,QAAQ,GAAG,YAAW;MACzB,OAAOtC,MAAM,CAACmD,UAAU;IAC5B,CAAC;IAEDnD,MAAM,CAAC4B,QAAQ,GAAG,UAASD,KAAK,EAAE;MAC9B3B,MAAM,CAACmD,UAAU,GAAGxB,KAAK;IAC7B,CAAC;EACL;;EAEA;EACA,OAAOiB,iBAAiB,CAACnH,OAAO,CAAC;AACjC,CAAC,EAAE,CAAC;;AAEJ;AACA,CAAC,YAAW;EAEZ,SAASmK,aAAaA,CAACnK,OAAO,EAAE;IAC5B,IAAIkB,IAAI,GAAGlB,OAAO,CAACkB,IAAI;IACvB,IAAIqD,MAAM,GAAGvE,OAAO,CAACuE,MAAM;IAE3BvE,OAAO,CAACoK,SAAS,GAAGlJ,IAAI,CAACkB,SAAS,CAACpC,OAAO,CAACqK,SAAS,EAAE,WAAW,EAAE,kBAAkB,CAAC;IACtF,IAAIrK,OAAO,CAACoK,SAAS,IAAI,IAAI,EAAE;MAC3B7F,MAAM,CAACoD,eAAe,CAAC,qCAAqC,CAAC;MAC7D,OAAO,KAAK;IAChB;IACA,IAAIyC,SAAS,GAAGpK,OAAO,CAACoK,SAAS;IAEjClJ,IAAI,CAAC8B,aAAa,CAAC,WAAW,EAAE,gBAAgB,EAAEhD,OAAO,CAACuE,MAAM,CAACC,mBAAmB,CAAC;;IAErF;IACA,IAAI8F,SAAS,GAAGpJ,IAAI,CAACkB,SAAS,CAACpC,OAAO,CAACuK,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC;IAC9E,IAAID,SAAS,IAAI,IAAI,EAAE;MACnB;IAAA,CACH,MAAM;MACHF,SAAS,CAACI,MAAM,GAAG,UAASzC,SAAS,EAAE;QACnC,OAAOuC,SAAS,CAACE,MAAM,CAACzC,SAAS,CAAC;MACtC,CAAC;MACDqC,SAAS,CAACK,IAAI,GAAG,UAASC,MAAM,EAAE;QAC9B,OAAOJ,SAAS,CAACG,IAAI,CAACC,MAAM,CAAC;MACjC,CAAC;MACDN,SAAS,CAACO,gBAAgB,GAAG,UAASD,MAAM,EAAEE,IAAI,EAAE;QAChD,OAAON,SAAS,CAACK,gBAAgB,CAACD,MAAM,EAAEE,IAAI,CAAC;MACnD,CAAC;MACDR,SAAS,CAACS,cAAc,GAAG,UAASH,MAAM,EAAE;QACxC,OAAOJ,SAAS,CAACO,cAAc,CAACH,MAAM,CAAC;MAC3C,CAAC;MACDN,SAAS,CAACU,OAAO,GAAG,UAAS/C,SAAS,EAAE;QACpC,OAAOuC,SAAS,CAACQ,OAAO,CAAC/C,SAAS,CAAC;MACvC,CAAC;MACDqC,SAAS,CAACW,cAAc,GAAG,UAASC,UAAU,EAAEC,CAAC,EAAEC,CAAC,EAAE;QAClD,OAAOZ,SAAS,CAACS,cAAc,CAACC,UAAU,EAAEC,CAAC,EAAEC,CAAC,CAAC;MACrD,CAAC;IACL;;IAEA;IACA,IAAIC,aAAa,GAAGjK,IAAI,CAACkB,SAAS,CAACpC,OAAO,CAACoL,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC;IACjG,IAAID,aAAa,IAAI,IAAI,EAAE;MACvB;IAAA,CACH,MAAM;MACHf,SAAS,CAACiB,aAAa,GAAG,YAAW;QACjC,OAAOF,aAAa,CAACE,aAAa,CAAC,CAAC;MACxC,CAAC;IACL;IAEA,OAAO,IAAI;EACf;EAEA,SAASC,mBAAmBA,CAACtL,OAAO,EAAE;IAClCA,OAAO,CAACmF,eAAe,GAAGnF,OAAO,CAACkB,IAAI,CAAC0C,gBAAgB,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAC7G,IAAI5D,OAAO,CAACmF,eAAe,IAAI,IAAI,EAAE;MACjC;MACAZ,MAAM,CAACoD,eAAe,CAAC,qCAAqC,CAAC;MAC7D,OAAO,KAAK;IAChB;IAEA,OAAO,IAAI;EACf;EAEA,SAAS4D,gBAAgBA,CAACvL,OAAO,EAAE;IAC/B,IAAIkB,IAAI,GAAGlB,OAAO,CAACkB,IAAI;IACvBlB,OAAO,CAACqK,SAAS,GAAG,sCAAsC;IAC1DrK,OAAO,CAACuK,YAAY,GAAG,sCAAsC;IAC7DvK,OAAO,CAACoL,iBAAiB,GAAG,sCAAsC;IAClE,IAAII,mBAAmB;IAEvB,IAAItK,IAAI,CAACC,gBAAgB,CAAC,CAAC,EAAE;MAAE;MAC3B,IAAI,CAACgJ,aAAa,CAACnK,OAAO,CAAC,EAAE;QACzB,OAAO,KAAK;MAChB;MACAwL,mBAAmB,GAAG,SAAAA,CAASC,UAAU,EAAE;QACvC,IAAIA,UAAU,CAACC,QAAQ,IAAI,EAAE,EAAE;UAAE;UAC7BtK,MAAM,CAACqK,UAAU,CAACE,QAAQ,CAAC,GAAG,IAAIC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAClD,2CAA2C,GAAGH,UAAU,CAACE,QAAQ,GAAG,eAAe,CAAC;QAC5F,CAAC,MAAM;UACHvK,MAAM,CAACqK,UAAU,CAACE,QAAQ,CAAC,GAAG,IAAIC,QAAQ,CAACH,UAAU,CAACC,QAAQ,EAAE,IAAI,EAAE,KAAK,EACvE,2CAA2C,GAAGD,UAAU,CAACE,QAAQ,GAAG,GAAG,GAAGF,UAAU,CAACC,QAAQ,GAAG,cAAc,CAAC;QACvH;MACJ,CAAC;IACL,CAAC,MAAM;MAAE;MACL,IAAI,CAACJ,mBAAmB,CAACtL,OAAO,CAAC,EAAE;QAC/B,OAAO,KAAK;MAChB;MACAwL,mBAAmB,GAAG,SAAAA,CAASC,UAAU,EAAE;QACvC,IAAIA,UAAU,CAACC,QAAQ,IAAI,EAAE,EAAE;UAAE;UAC7BtK,MAAM,CAACqK,UAAU,CAACE,QAAQ,CAAC,GAAG,IAAIC,QAAQ,CAAC,SAAS,EAChD,6DAA6D,GAAGH,UAAU,CAACpJ,KAAK,GAAG,MAAM,GACzFoJ,UAAU,CAACE,QAAQ,GAAG,eAAe,GAAGF,UAAU,CAACI,YAAY,GAAG,SAAS,CAAC;QACpF,CAAC,MAAM;UACHzK,MAAM,CAACqK,UAAU,CAACE,QAAQ,CAAC,GAAG,IAAIC,QAAQ,CAACH,UAAU,CAACC,QAAQ,GAAG,WAAW,EACxE,6DAA6D,GAAGD,UAAU,CAACpJ,KAAK,GAAG,MAAM,GACzFoJ,UAAU,CAACE,QAAQ,GAAG,eAAe,GAAGF,UAAU,CAACI,YAAY,GAAG,MAAM,GAAGJ,UAAU,CAACC,QAAQ,GAAG,KAAK,CAAC;QAC/G;MACJ,CAAC;IACL;IAEA,IAAII,gBAAgB,GAAG,CACnB;MAACH,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,YAAY;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAe,CAAC,EAChI;MAACJ,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC3F;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,eAAe;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC3G;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9F;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAa,CAAC,EAClH;MAACJ,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAa,CAAC,EAC3H;MAACJ,QAAQ,EAAC,WAAW;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAe,CAAC,EAC1H;MAACJ,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAsB,CAAC,EACtI;MAACJ,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,0BAA0B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAoB,CAAC,EAChJ;MAACJ,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,YAAY;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAkB,CAAC,EACjI;MAACJ,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAqB,CAAC,EACxI;MAACJ,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAY,CAAC,EAC5H;MAACJ,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAkB,CAAC,EACjJ;MAACJ,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAc,CAAC,EAC9H;MAACJ,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAgB,CAAC,EAC/I;MAACJ,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,cAAc;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAmB,CAAC,EACpI;MAACJ,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAmB,CAAC,EACtI;MAACJ,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,uBAAuB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC5G;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9G;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,wBAAwB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC/G;MAACsB,QAAQ,EAAC,yBAAyB;MAAED,QAAQ,EAAC,qBAAqB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAgB,CAAC,EAC9I;MAACJ,QAAQ,EAAC,8BAA8B;MAAED,QAAQ,EAAC,qBAAqB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzH;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACvG;MAACsB,QAAQ,EAAC,yBAAyB;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrG;MAACsB,QAAQ,EAAC,yBAAyB;MAAED,QAAQ,EAAC,qBAAqB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpH;MAACsB,QAAQ,EAAC,eAAe;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAgB,CAAC,EAC5H;MAACJ,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,cAAc;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAe,CAAC,EAClI;MAACJ,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAe,CAAC,EACpI;MAACJ,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,iBAAiB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1G;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,KAAK;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC/F;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1F;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxF;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxF;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAClG;MAACsB,QAAQ,EAAC,eAAe;MAAED,QAAQ,EAAC,kBAAkB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACvG;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,+BAA+B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpH;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,qCAAqC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzH;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,4CAA4C;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjI;MAACsB,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,kCAAkC;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACtH;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,kCAAkC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACtH;MAACsB,QAAQ,EAAC,eAAe;MAAED,QAAQ,EAAC,iDAAiD;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpI;MAACsB,QAAQ,EAAC,UAAU;MAAED,QAAQ,EAAC,sBAAsB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAU,CAAC,EAC5H;MAACJ,QAAQ,EAAC,WAAW;MAAED,QAAQ,EAAC,0CAA0C;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAW,CAAC,EAChJ;MAACJ,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,2BAA2B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjH;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,2BAA2B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAChH;MAACsB,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,uCAAuC;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC3H;MAACsB,QAAQ,EAAC,YAAY;MAAED,QAAQ,EAAC,uBAAuB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACvG;MAACsB,QAAQ,EAAC,aAAa;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC5F;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxF;MAACsB,QAAQ,EAAC,4BAA4B;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAa,CAAC,EACnI;MAACJ,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,MAAM;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAc,CAAC,EACxH;MAACJ,QAAQ,EAAC,UAAU;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC3F;MAACsB,QAAQ,EAAC,UAAU;MAAED,QAAQ,EAAC,mBAAmB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjG;MAACsB,QAAQ,EAAC,eAAe;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9F;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpG;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,cAAc;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAa,CAAC,EACjI;MAACJ,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,cAAc;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAa,CAAC,EACjI;MAACJ,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,uBAAuB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAa,CAAC,EACxI;MAACJ,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,uBAAuB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAa,CAAC,EACxI;MAACJ,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC3F;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,SAAS;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjG;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,SAAS;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjG;MAACsB,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,kBAAkB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACtG;MAACsB,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,iBAAiB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrG;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,oCAAoC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1H;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACnG;MAACsB,QAAQ,EAAC,aAAa;MAAED,QAAQ,EAAC,gCAAgC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjH;MAACsB,QAAQ,EAAC,YAAY;MAAED,QAAQ,EAAC,sBAAsB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9G;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,gCAAgC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrH;MAACsB,QAAQ,EAAC,YAAY;MAAED,QAAQ,EAAC,sBAAsB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAChG;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,cAAc;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACvG;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,SAAS;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjG;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjG;MAACsB,QAAQ,EAAC,yBAAyB;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1G;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,mBAAmB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzG;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,oBAAoB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1G;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,mBAAmB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzG;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,oBAAoB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC5G;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,iCAAiC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxH;MAACsB,QAAQ,EAAC,YAAY;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAQ,CAAC,EAC5G;MAACJ,QAAQ,EAAC,eAAe;MAAED,QAAQ,EAAC,iBAAiB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpG;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,iBAAiB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzG;MAACsB,QAAQ,EAAC,0BAA0B;MAAED,QAAQ,EAAC,0BAA0B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxH;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,SAAS;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrG;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,2DAA2D;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAChJ;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,OAAO;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAe,CAAC,EAC3H;MAACJ,QAAQ,EAAC,UAAU;MAAED,QAAQ,EAAC,qBAAqB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrG;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrH;MAACsB,QAAQ,EAAC,2BAA2B;MAAED,QAAQ,EAAC,kDAAkD;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjJ;MAACsB,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,+EAA+E;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjK;MAACsB,QAAQ,EAAC,YAAY;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpF;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,6BAA6B;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAc,CAAC,EAC/I;MAACJ,QAAQ,EAAC,0BAA0B;MAAED,QAAQ,EAAC,sCAAsC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK,SAAS;MAAE0B,SAAS,EAAC;IAAsB,CAAC,EACtK;MAACJ,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1F;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,sDAAsD;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC7I;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,8BAA8B;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpH;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,6BAA6B;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACnH;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,MAAM;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9F;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,MAAM;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9F;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,cAAc;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpG;MAACsB,QAAQ,EAAC,qBAAqB;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,EAAE;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrG;MAACsB,QAAQ,EAAC,wBAAwB;MAAED,QAAQ,EAAC,2BAA2B;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzH;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,oBAAoB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1G;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpG;MAACsB,QAAQ,EAAC,UAAU;MAAED,QAAQ,EAAC,SAAS;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACvF;MAACsB,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,8DAA8D;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAClJ;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,sBAAsB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9G;MAACsB,QAAQ,EAAC,uBAAuB;MAAED,QAAQ,EAAC,gCAAgC;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC7H;MAACsB,QAAQ,EAAC,0BAA0B;MAAED,QAAQ,EAAC,mBAAmB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjH;MAACsB,QAAQ,EAAC,2BAA2B;MAAED,QAAQ,EAAC,0BAA0B;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC3H;MAACsB,QAAQ,EAAC,cAAc;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpG;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,wBAAwB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC/G;MAACsB,QAAQ,EAAC,aAAa;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzF;MAACsB,QAAQ,EAAC,aAAa;MAAED,QAAQ,EAAC,4BAA4B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC7G;MAACsB,QAAQ,EAAC,uBAAuB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC/F;MAACsB,QAAQ,EAAC,qBAAqB;MAAED,QAAQ,EAAC,8CAA8C;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzI;MAACsB,QAAQ,EAAC,qBAAqB;MAAED,QAAQ,EAAC,6BAA6B;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxH;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,8CAA8C;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrI;MAACsB,QAAQ,EAAC,aAAa;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC5G;MAACsB,QAAQ,EAAC,qBAAqB;MAAED,QAAQ,EAAC,qDAAqD;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9I;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,kCAAkC;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1H;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,+CAA+C;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACvI;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,6GAA6G;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpM;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,MAAM;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC5F;MAACsB,QAAQ,EAAC,uBAAuB;MAAED,QAAQ,EAAC,MAAM;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACnG;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,sBAAsB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9G;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1G;MAACsB,QAAQ,EAAC,qBAAqB;MAAED,QAAQ,EAAC,0BAA0B;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrH;MAACsB,QAAQ,EAAC,0BAA0B;MAAED,QAAQ,EAAC,+CAA+C;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC7I;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,0BAA0B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAChH;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzF;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjG;MAACsB,QAAQ,EAAC,wBAAwB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAChG;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,yCAAyC;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAClI;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,yCAAyC;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrI;MAACsB,QAAQ,EAAC,0BAA0B;MAAED,QAAQ,EAAC,cAAc;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9G;MAACsB,QAAQ,EAAC,uBAAuB;MAAED,QAAQ,EAAC,wBAAwB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrH;MAACsB,QAAQ,EAAC,+BAA+B;MAAED,QAAQ,EAAC,qBAAqB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxH;MAACsB,QAAQ,EAAC,6BAA6B;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1H;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1G;MAACsB,QAAQ,EAAC,4BAA4B;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzH;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,8BAA8B;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1H;MAACsB,QAAQ,EAAC,uBAAuB;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC/F;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxG;MAACsB,QAAQ,EAAC,2BAA2B;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzG;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAChH;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,qBAAqB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9G;MAACsB,QAAQ,EAAC,mBAAmB;MAAED,QAAQ,EAAC,qCAAqC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC5H;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACjH;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,iFAAiF;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxK;MAACsB,QAAQ,EAAC,iBAAiB;MAAED,QAAQ,EAAC,iFAAiF;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACxK;MAACsB,QAAQ,EAAC,aAAa;MAAED,QAAQ,EAAC,iFAAiF;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpK;MAACsB,QAAQ,EAAC,qBAAqB;MAAED,QAAQ,EAAC,gBAAgB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC3G;MAACsB,QAAQ,EAAC,uBAAuB;MAAED,QAAQ,EAAC,yCAAyC;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACtI;MAACsB,QAAQ,EAAC,wBAAwB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrH;MAACsB,QAAQ,EAAC,WAAW;MAAED,QAAQ,EAAC,WAAW;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAClG;MAACsB,QAAQ,EAAC,YAAY;MAAED,QAAQ,EAAC,aAAa;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC/F;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,+BAA+B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzH;MAACsB,QAAQ,EAAC,wBAAwB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrH;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,wCAAwC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9H;MAACsB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,kCAAkC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAClH;MAACsB,QAAQ,EAAC,QAAQ;MAAED,QAAQ,EAAC,aAAa;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACuK;IAAY,CAAC,EAC9F;MAACoB,QAAQ,EAAC,MAAM;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACuK;IAAY,CAAC,EACvF;MAACoB,QAAQ,EAAC,kBAAkB;MAAED,QAAQ,EAAC,cAAc;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACuK;IAAY,CAAC,EACzG;MAACoB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,QAAQ;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACuK;IAAY,CAAC,EACjG;MAACoB,QAAQ,EAAC,SAAS;MAAED,QAAQ,EAAC,aAAa;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACuK;IAAY,CAAC,EAC/F;MAACoB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,eAAe;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACuK;IAAY,CAAC,EACxG;MAACoB,QAAQ,EAAC,eAAe;MAAED,QAAQ,EAAC,EAAE;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACoL;IAAiB,CAAC,EACrG;MAACO,QAAQ,EAAC,qBAAqB;MAAED,QAAQ,EAAC,2GAA2G;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpM;MAACsB,QAAQ,EAAC,gBAAgB;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzG;MAACsB,QAAQ,EAAC,wBAAwB;MAAED,QAAQ,EAAC,kCAAkC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACpI;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,iBAAiB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACvG;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,iBAAiB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC;IAEnH;IACA;MAACsB,QAAQ,EAAC,oBAAoB;MAAED,QAAQ,EAAC,oBAAoB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAE9G;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,0BAA0B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC9G;MAACsB,QAAQ,EAAC,sBAAsB;MAAED,QAAQ,EAAC,0BAA0B;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC1H;MAACsB,QAAQ,EAAC,4BAA4B;MAAED,QAAQ,EAAC,iBAAiB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACnH;MAACsB,QAAQ,EAAC,gCAAgC;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACzH;MAACsB,QAAQ,EAAC,gCAAgC;MAAED,QAAQ,EAAC,yBAAyB;MAAEG,YAAY,EAAC,QAAQ;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EACrI;MAACsB,QAAQ,EAAC,gCAAgC;MAAED,QAAQ,EAAC,kCAAkC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAChI;MAACsB,QAAQ,EAAC,gCAAgC;MAAED,QAAQ,EAAC,kCAAkC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC5I;MAACsB,QAAQ,EAAC,6BAA6B;MAAED,QAAQ,EAAC,gCAAgC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,EAC3H;MAACsB,QAAQ,EAAC,6BAA6B;MAAED,QAAQ,EAAC,gCAAgC;MAAEG,YAAY,EAAC,MAAM;MAAExJ,KAAK,EAACrC,OAAO,CAACqK;IAAS,CAAC,CACpI;IAED,KAAK,IAAIxJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiL,gBAAgB,CAAChH,MAAM,EAAEjE,CAAC,EAAE,EAAE;MAC9C2K,mBAAmB,CAACM,gBAAgB,CAACjL,CAAC,CAAC,CAAC;MACxCb,OAAO,CAAC8L,gBAAgB,CAACjL,CAAC,CAAC,CAAC8K,QAAQ,CAAC,GAAGvK,MAAM,CAAC0K,gBAAgB,CAACjL,CAAC,CAAC,CAAC8K,QAAQ,CAAC;MAC5E,IAAIG,gBAAgB,CAACjL,CAAC,CAAC,CAACkL,SAAS,EAAE;QAC/B3K,MAAM,CAAC0K,gBAAgB,CAACjL,CAAC,CAAC,CAACkL,SAAS,CAAC,GAAG3K,MAAM,CAAC0K,gBAAgB,CAACjL,CAAC,CAAC,CAAC8K,QAAQ,CAAC;QAC5E3L,OAAO,CAAC8L,gBAAgB,CAACjL,CAAC,CAAC,CAACkL,SAAS,CAAC,GAAG3K,MAAM,CAAC0K,gBAAgB,CAACjL,CAAC,CAAC,CAAC8K,QAAQ,CAAC;MACjF;IAEJ;IAEA,OAAO,IAAI;EACf;;EAEA;EACA,OAAOJ,gBAAgB,CAACvL,OAAO,CAAC;AAChC,CAAC,EAAE,CAAC;;AAEJ;AACA;AACA;AACA;AACA,IAAI2J,cAAc,GAAG,CAAC;AACtB,IAAIC,cAAc,GAAG,CAAC;AACtB,IAAIF,aAAa,GAAI,CAAC;;AAEtB;AACA,SAASsC,sBAAsBA,CAACjE,SAAS,EAAEP,UAAU,EAAE;EACnD;EACAxH,OAAO,CAACuE,MAAM,CAACuD,sBAAsB,CAACC,SAAS,EAAEP,UAAU,CAAC;AAChE;;AAEA;AACA,SAASyE,eAAeA,CAAC3D,SAAS,EAAEmB,QAAQ,EAAE;EAC1C;EACAzJ,OAAO,CAACuE,MAAM,CAACgF,eAAe,CAACjB,SAAS,EAAEmB,QAAQ,CAAC;AACvD;;AAEA;AACA,SAASyC,yBAAyBA,CAACnC,QAAQ,EAAE;EACzC;EACA/J,OAAO,CAACuE,MAAM,CAACuF,yBAAyB,CAACC,QAAQ,CAAC;AACtD;;AAEA;AACA,SAASoC,gBAAgBA,CAACC,YAAY,EAAE;EACpC;EACApM,OAAO,CAACuE,MAAM,CAACyF,kBAAkB,CAACoC,YAAY,CAAC;AACnD;;AAEA;AACA,SAASC,aAAaA,CAAA,EAAG;EACrB;EACA,OAAOrM,OAAO,CAACuE,MAAM,CAACsC,QAAQ,CAAC,CAAC;AACpC;AAEA,SAASyF,aAAaA,CAACC,SAAS,EAAE;EAC9B;EACA,OAAOvM,OAAO,CAACuE,MAAM,CAAC4B,QAAQ,CAACoG,SAAS,CAAC;AAC7C;AAEA,SAASC,iBAAiBA,CAACC,OAAO,EAAE7K,EAAE,EAAEmE,GAAG,EAAE;EAAE;EAC3C;EACA8D,eAAe,CAAC,UAASzD,MAAM,EAAE;IAC7B,IAAI2C,WAAW,GAAG3C,MAAM,CAACvB,MAAM;IAC/B;IACA,OAAO,IAAI,EAAE;MACb,IAAIhE,CAAC,GAAGkI,WAAW,CAACE,OAAO,CAAC,KAAK,CAAC;MAC9B,IAAIpI,CAAC,IAAI,CAAC,EAAG;QACT;MACJ;MACA,IAAIqI,UAAU,GAAGH,WAAW,CAACI,SAAS,CAAC,CAAC,EAAEtI,CAAC,CAAC;MAC5C,IAAIuI,OAAO,GAAGF,UAAU,CAACC,SAAS,CAAC,CAAC,EAAED,UAAU,CAACD,OAAO,CAAC,IAAI,CAAC,CAAC;MAC/D,IAAIlB,SAAS,GAAGmB,UAAU,CAACC,SAAS,CAACD,UAAU,CAACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAEC,UAAU,CAACpE,MAAM,CAAC;MACrF4H,aAAa,CAAC3E,SAAS,EAAE,UAAS3B,MAAM,EAAE;QACtC,IAAIA,MAAM,CAACvB,MAAM,IAAIuB,MAAM,CAACL,GAAG,CAACA,GAAG,CAAC6E,IAAI,EAAE;UACtC,IAAI,OAAOxE,MAAM,CAACL,GAAG,CAACA,GAAG,CAACnE,EAAE,IAAI,UAAU,EAAE;YACxCwE,MAAM,CAACL,GAAG,CAACA,GAAG,CAACnE,EAAE,CAAC;cAACiD,MAAM,EAACuB,MAAM,CAACL,GAAG,CAAC4G,QAAQ;cAAE5G,GAAG,EAACK,MAAM,CAACL,GAAG,CAACA,GAAG,CAACA;YAAG,CAAC,CAAC;UAC3E;QACJ;MACJ,CAAC,EAAE;QAAC4G,QAAQ,EAACzD,UAAU;QAAEnD,GAAG,EAACK,MAAM,CAACL;MAAG,CAAC,CAAC;MACzC,IAAIuD,GAAG,GAAGP,WAAW,CAACjE,MAAM;MAC5BiE,WAAW,GAAGA,WAAW,CAACI,SAAS,CAACtI,CAAC,GAAG,CAAC,EAAEyI,GAAG,CAAC;IACnD;EACJ,CAAC,EAAE;IAACsB,IAAI,EAAC6B,OAAO;IAAE7K,EAAE,EAACA,EAAE;IAAEmE,GAAG,EAACA;EAAG,CAAC,CAAC;AACtC;;AAEA;AACA,SAAS6G,kBAAkBA,CAAChL,EAAE,EAAEmE,GAAG,EAAE;EACjC,OAAOyG,iBAAiB,CAAC,MAAM,EAAE5K,EAAE,EAAEmE,GAAG,CAAC;AAC7C;;AAEA;AACA,SAAS8G,gBAAgBA,CAAA,EAAG;EACxB;EACA,OAAOL,iBAAiB,CAAC,MAAM,EAAE5K,EAAE,EAAEmE,GAAG,CAAC;AAC7C;;AAEA;AACA,SAAS+G,QAAQA,CAAC/E,SAAS,EAAEgF,SAAS,EAAEC,OAAO,EAAE;EAC7C;EACA,OAAOhN,OAAO,CAACiN,eAAe,CAACD,OAAO,GAAG,CAAC,GAAG,CAAC,EAAEjF,SAAS,EAAEgF,SAAS,CAAC;AACzE;;AAEA;AACA;AACA,SAASG,eAAeA,CAAA,EAAG;EACvB,OAAO,EAAE;AACb;;AAEA;AACA,SAASR,aAAaA,CAAC3E,SAAS,EAAE;EAC9B;EACA,OAAO/H,OAAO,CAACqJ,aAAa,CAACtB,SAAS,EAAE,CAAC,CAAC;AAC9C;;AAEA;AACA,SAASoF,QAAQA,CAACC,WAAW,EAAE;EAC3B;EACA,OAAOpN,OAAO,CAACqN,YAAY,CAAC,CAAC,WAAUD,WAAW,CAAC;AACvD;AAEA,SAASE,eAAeA,CAACC,OAAO,EAAE;EAC9B,IAAIC,OAAO,GAAGD,OAAO,CAACpE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;EACrC,IAAIsE,QAAQ,GAAGF,OAAO,CAACpE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;EACtC,IAAIuE,MAAM,GAAGH,OAAO,CAACpE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;EACpC,IAAIwE,OAAO,GAAGJ,OAAO,CAACpE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;EACtC,IAAIyE,MAAM,GAAGL,OAAO,CAACpE,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;EACtC,IAAI0E,SAAS,GAAGN,OAAO,CAACpE,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;EACzC,IAAI2E,OAAO,GAAG,IAAIC,IAAI,CAAC,CAAC;EACxBD,OAAO,CAACE,WAAW,CAAC/H,MAAM,CAACuH,OAAO,CAAC,EAAEvH,MAAM,CAACwH,QAAQ,CAAC,GAAG,CAAC,EAAExH,MAAM,CAACyH,MAAM,CAAC,CAAC;EAC1EI,OAAO,CAACG,QAAQ,CAAChI,MAAM,CAAC0H,OAAO,CAAC,CAAC;EACjCG,OAAO,CAACI,UAAU,CAACjI,MAAM,CAAC2H,MAAM,CAAC,CAAC;EAClCE,OAAO,CAACK,UAAU,CAAClI,MAAM,CAAC4H,SAAS,CAAC,CAAC;EACrC,OAAOC,OAAO;AAClB;AAEA,SAASM,yBAAyBA,CAAChI,MAAM,EAAE;EACvC,IAAIA,MAAM,CAACvB,MAAM,IAAI,EAAE,EAAE;IACrB;IACA7E,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,UAAU,CAAC;IAC1C,IAAI,OAAOvB,MAAM,CAACL,GAAG,CAACnE,EAAE,KAAK,UAAU,EAAE;MACrCwE,MAAM,CAACL,GAAG,CAACnE,EAAE,CAAC,KAAK,CAAC;IACxB;IACA;EACJ;EACA,IAAIyM,OAAO,GAAGjI,MAAM,CAACL,GAAG,CAACsI,OAAO;EAChCA,OAAO,CAACC,cAAc,CAAChO,KAAK,GAAG8F,MAAM,CAACvB,MAAM;EAC5C;EACAwJ,OAAO,CAACE,UAAU,CAACjO,KAAK,GAAGN,OAAO,CAACuE,MAAM,CAACsC,QAAQ,CAAC,CAAC;EACpD,IAAI,OAAOT,MAAM,CAACL,GAAG,CAACnE,EAAE,KAAK,UAAU,EAAE;IACrCwE,MAAM,CAACL,GAAG,CAACnE,EAAE,CAAC,IAAI,CAAC;EACvB,CAAC,MAAM;IACHyM,OAAO,CAACG,MAAM,GAAGpI,MAAM,CAACL,GAAG,CAACyI,MAAM;IAClCH,OAAO,CAACI,MAAM,CAAC,CAAC;EACpB;AACJ;AAEA,SAASC,oCAAoCA,CAACtI,MAAM,EAAE;EAClD,IAAI,CAACA,MAAM,CAACvB,MAAM,EAAE;IAChB;IACA7E,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,aAAa,CAAC;IAC7C,IAAI,OAAOvB,MAAM,CAACL,GAAG,CAACnE,EAAE,KAAK,UAAU,EAAE;MACrCwE,MAAM,CAACL,GAAG,CAACnE,EAAE,CAAC,KAAK,CAAC;IACxB;IACA;EACJ;EAEA,IAAImG,SAAS,GAAG3B,MAAM,CAACL,GAAG,CAAC4C,MAAM;EACjC;EACA3I,OAAO,CAAC2O,YAAY,CAAC5G,SAAS,EAAE6G,YAAY,EAAER,yBAAyB,EAAEhI,MAAM,CAACL,GAAG,CAAC;AACxF;AACA,SAAS8I,6BAA6BA,CAACzI,MAAM,EAAE;EAC3C,IAAI0I,YAAY,GAAGxB,eAAe,CAAClH,MAAM,CAACvB,MAAM,CAAC;EACjD,IAAIkK,YAAY,GAAGD,YAAY,CAACE,OAAO,CAAC,CAAC,GAAG,IAAIjB,IAAI,CAAC,CAAC,CAACiB,OAAO,CAAC,CAAC;EAChE,IAAID,YAAY,GAAG,CAAC,EAAE;IAClB;IACA/O,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,iCAAiC,CAAC;IACjE,IAAI,OAAOvB,MAAM,CAACL,GAAG,CAACnE,EAAE,KAAK,UAAU,EAAE;MACrCwE,MAAM,CAACL,GAAG,CAACnE,EAAE,CAAC,KAAK,CAAC;IACxB;IACA;EACJ;;EAEA;EACAqN,IAAI,GAAGC,QAAQ,CAACH,YAAY,IAAI,IAAI,GAAC,EAAE,GAAC,EAAE,GAAC,EAAE,CAAC,CAAC;EAC/C;EACA,IAAIE,IAAI,GAAG,CAAC,IAAIA,IAAI,IAAI,EAAE,EAAE;IACxB;IACAjP,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,QAAQ,GAAGsH,IAAI,GAAG,+BAA+B,CAAC;IACrF;EACA,CAAC,MAAM,IAAIA,IAAI,IAAI,CAAC,EAAE;IAAE;IACpB,IAAIE,KAAK,GAAGD,QAAQ,CAACH,YAAY,IAAI,IAAI,GAAC,EAAE,GAAC,EAAE,CAAC,CAAC;IACjD,IAAII,KAAK,GAAG,CAAC,EAAE;MACX;MACAnP,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,QAAQ,GAAGwH,KAAK,GAAG,gCAAgC,CAAC;IACvF;IACA;IACA,IAAIC,OAAO,GAAGF,QAAQ,CAACH,YAAY,IAAI,IAAI,GAAC,EAAE,CAAC,CAAC;IAChD,IAAIK,OAAO,GAAG,CAAC,EAAE;MACb;MACApP,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,QAAQ,GAAGyH,OAAO,GAAG,gCAAgC,CAAC;IACzF,CAAC,MAAM;MACH;MACApP,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,iCAAiC,CAAC;MACjE,IAAI,OAAOvB,MAAM,CAACL,GAAG,CAACnE,EAAE,KAAK,UAAU,EAAE;QACrCwE,MAAM,CAACL,GAAG,CAACnE,EAAE,CAAC,KAAK,CAAC;MACxB;MACA;IACJ;EACJ;;EAEA;EACA5B,OAAO,CAACqP,oBAAoB,CAACC,aAAa,EAAEV,YAAY,EAAEW,mBAAmB,EACzEb,oCAAoC,EAAEtI,MAAM,CAACL,GAAG,CAAC;AACzD;AAEA,SAASyJ,8BAA8BA,CAACpJ,MAAM,EAAE;EAC5C,IAAIqJ,aAAa,GAAGnC,eAAe,CAAClH,MAAM,CAACvB,MAAM,CAAC;EAClD,IAAIoK,IAAI,GAAGC,QAAQ,CAAC,CAACO,aAAa,CAACT,OAAO,CAAC,CAAC,GAAG,IAAIjB,IAAI,CAAC,CAAC,CAACiB,OAAO,CAAC,CAAC,KAAK,IAAI,GAAC,EAAE,GAAC,EAAE,GAAC,EAAE,CAAC,CAAC;EACvF,IAAIC,IAAI,GAAG,CAAC,EAAE;IACV;IACAjP,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,mBAAmB,GAAGsH,IAAI,GAAG,IAAI,CAAC;IACjE,IAAI,OAAO7I,MAAM,CAACL,GAAG,CAACnE,EAAE,KAAK,UAAU,EAAE;MACrCwE,MAAM,CAACL,GAAG,CAACnE,EAAE,CAAC,KAAK,CAAC;IACxB;IACA;EACJ;EACA,IAAI8N,WAAW,GAAGtJ,MAAM,CAACL,GAAG,CAACsI,OAAO,CAACsB,QAAQ,CAACrP,KAAK;EACnD;EACAN,OAAO,CAAC4P,eAAe,CAACF,WAAW,EAAE,EAAE,EAAEb,6BAA6B,EAAEzI,MAAM,CAACL,GAAG,CAAC;AACvF;AAEA,SAAS8J,0BAA0BA,CAACzJ,MAAM,EAAE;EACxC,IAAIsJ,WAAW,GAAGtJ,MAAM,CAACvB,MAAM;EAC/B,IAAI6K,WAAW,IAAI,EAAE,EAAE;IACnB;IACA1P,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,WAAW,CAAC;IAC3C,IAAI,OAAOvB,MAAM,CAACL,GAAG,CAACnE,EAAE,KAAK,UAAU,EAAE;MACrCwE,MAAM,CAACL,GAAG,CAACnE,EAAE,CAAC,KAAK,CAAC;IACxB;IACA;EACJ;EACAwE,MAAM,CAACL,GAAG,CAACsI,OAAO,CAACsB,QAAQ,CAACrP,KAAK,GAAIoP,WAAW;;EAEhD;EACA1P,OAAO,CAAC4P,eAAe,CAACF,WAAW,EAAE,EAAE,EAAEF,8BAA8B,EAAEpJ,MAAM,CAACL,GAAG,CAAC;AACxF;AAEA,SAAS+J,0BAA0BA,CAAC1J,MAAM,EAAE;EACxC,IAAI2J,UAAU,GAAG9J,MAAM,CAACG,MAAM,CAACvB,MAAM,CAAC;EACtC,IAAIkL,UAAU,GAAG,CAAC,EAAE;IAChB;IACA/P,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,cAAc,GAAGoI,UAAU,GAAG,QAAQ,CAAC;EAC1E,CAAC,MAAM,IAAIA,UAAU,IAAI,CAAC,EAAE;IACxB;IACA/P,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,yBAAyB,CAAC;EAC7D,CAAC,MAAM;IACH;IACA3H,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,OAAO,CAAC;EAC3C;EACA,IAAI,OAAOvB,MAAM,CAACL,GAAG,CAACnE,EAAE,KAAK,UAAU,EAAE;IACrCwE,MAAM,CAACL,GAAG,CAACnE,EAAE,CAAC,CAAC;EACnB;AACJ;AAEA,SAASoO,wBAAwBA,CAAC5J,MAAM,EAAE;EACtC,IAAI2B,SAAS,GAAG3B,MAAM,CAACL,GAAG,CAAC4C,MAAM;EACjC,IAAI0F,OAAO,GAAGjI,MAAM,CAACL,GAAG,CAACsI,OAAO;EAChC,IAAI,CAACjI,MAAM,CAACvB,MAAM,EAAE;IAChB;IACA7E,OAAO,CAACiQ,oBAAoB,CAAClI,SAAS,EAAE+H,0BAA0B,EAAE1J,MAAM,CAACL,GAAG,CAAC;IAC/E;EACJ;EACAsI,OAAO,CAAC6B,MAAM,CAAC5P,KAAK,GAAGyH,SAAS;EAChCsG,OAAO,CAAC8B,aAAa,CAAC7P,KAAK,GAAGyH,SAAS;;EAEvC;EACA/H,OAAO,CAACoQ,kBAAkB,CAACrI,SAAS,EAAE8H,0BAA0B,EAAEzJ,MAAM,CAACL,GAAG,CAAC;AACjF;;AAEA;AACA,SAASsK,KAAKA,CAACC,QAAQ,EAAEvI,SAAS,EAAEwI,MAAM,EAAEC,SAAS,EAAEC,SAAS,EAAE;EAC9D,IAAIpC,OAAO,GAAGxM,IAAI,CAACyO,QAAQ,CAAC;EAC5B,IAAIjC,OAAO,IAAI,IAAI,EAAE;IACjB;IACArO,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,OAAO,CAAC;IACvC,IAAI,OAAO8I,SAAU,KAAK,UAAU,EAAE;MAClCA,SAAS,CAAC,KAAK,CAAC;IACpB;IACA;EACJ;EACA,IAAI1I,SAAS,IAAI,IAAI,IAAIA,SAAS,IAAI,EAAE,EAAE;IACtC;IACA/H,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,UAAU,CAAC;IAC1C,IAAI,OAAO8I,SAAU,KAAK,UAAU,EAAE;MAClCA,SAAS,CAAC,KAAK,CAAC;IACpB;IACA;EACJ;EACA,IAAIF,MAAM,IAAI,IAAI,IAAIA,MAAM,IAAI,EAAE,EAAE;IAChC;IACAvQ,OAAO,CAACuE,MAAM,CAACoD,eAAe,CAAC,UAAU,CAAC;IAC1C,IAAI,OAAO8I,SAAU,KAAK,UAAU,EAAE;MAClCA,SAAS,CAAC,KAAK,CAAC;IACpB;IACA;EACJ;;EAEA;EACA,IAAIpC,OAAO,CAACC,cAAc,IAAI,IAAI,EAAE;IAChCD,OAAO,CAACqC,kBAAkB,CAAC,WAAW,EAAE,4DAA4D,CAAC;EACzG;EACA,IAAIrC,OAAO,CAACsB,QAAQ,IAAI,IAAI,EAAE;IAC1BtB,OAAO,CAACqC,kBAAkB,CAAC,WAAW,EAAE,sDAAsD,CAAC;EACnG;EACA,IAAIrC,OAAO,CAAC6B,MAAM,IAAI,IAAI,EAAE;IACxB7B,OAAO,CAACqC,kBAAkB,CAAC,WAAW,EAAE,oDAAoD,CAAC;EACjG;EACA,IAAIrC,OAAO,CAAC8B,aAAa,IAAI,IAAI,EAAE;IAC/B9B,OAAO,CAACqC,kBAAkB,CAAC,WAAW,EAAE,2DAA2D,CAAC;EACxG;EACA,IAAIrC,OAAO,CAACE,UAAU,IAAI,IAAI,EAAE;IAC5BF,OAAO,CAACqC,kBAAkB,CAAC,WAAW,EAAE,wDAAwD,CAAC;EACrG;EAEA,IAAI3K,GAAG,GAAG;IAAC4C,MAAM,EAACZ,SAAS;IAAEsG,OAAO,EAACA,OAAO;IAAEG,MAAM,EAACgC,SAAS;IAAE5O,EAAE,EAAC6O;EAAS,CAAC;;EAE7E;EACAzQ,OAAO,CAAC2Q,SAAS,CAAC5I,SAAS,EAAEwI,MAAM,EAAEP,wBAAwB,EAAEjK,GAAG,CAAC;EAEnE;AACJ;;;;;;;;;;;;;;ACnoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,IAAI6K,KAAK;;AAET;AACA;AACAA,KAAK,GAAGA,KAAK,IAAI,UAAUC,KAAK,EAAE;EAEhC,IAAIC,WAAW,GAAGC,MAAM,CAAC5Q,SAAS,CAACyQ,KAAK;IACtCI,iBAAiB,GAAG,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAKJ,KAAK;IAAE;IAClDK,IAAI;EAENA,IAAI,GAAG,SAAAA,CAAUC,GAAG,EAAEC,SAAS,EAAEC,KAAK,EAAE;IACtC;IACA,IAAIC,MAAM,CAACnR,SAAS,CAAC4C,QAAQ,CAACwO,IAAI,CAACH,SAAS,CAAC,KAAK,iBAAiB,EAAE;MACnE,OAAON,WAAW,CAACS,IAAI,CAACJ,GAAG,EAAEC,SAAS,EAAEC,KAAK,CAAC;IAChD;IACA,IAAIG,MAAM,GAAG,EAAE;MACbC,KAAK,GAAG,CAACL,SAAS,CAACM,UAAU,GAAG,GAAG,GAAG,EAAE,KACrCN,SAAS,CAACO,SAAS,GAAG,GAAG,GAAG,EAAE,CAAC,IAC/BP,SAAS,CAACQ,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;MAAG;MACjCR,SAAS,CAACS,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;MAAE;MACjCC,aAAa,GAAG,CAAC;MACjB;MACA;MACAV,SAAS,GAAG,IAAIW,MAAM,CAACX,SAAS,CAACY,MAAM,EAAEP,KAAK,GAAG,GAAG,CAAC;MACrDQ,UAAU;MAAEC,KAAK;MAAEC,SAAS;MAAEC,UAAU;IAC1CjB,GAAG,IAAI,EAAE,CAAC,CAAC;IACX,IAAI,CAACH,iBAAiB,EAAE;MACtB;MACAiB,UAAU,GAAG,IAAIF,MAAM,CAAC,GAAG,GAAGX,SAAS,CAACY,MAAM,GAAG,UAAU,EAAEP,KAAK,CAAC;IACrE;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;IACIJ,KAAK,GAAGA,KAAK,KAAKR,KAAK,GACrB,CAAC,CAAC,KAAK,CAAC;IAAG;IACXQ,KAAK,KAAK,CAAC,CAAC,CAAC;IACf;IACA,OAAOa,KAAK,GAAGd,SAAS,CAACH,IAAI,CAACE,GAAG,CAAC,EAAE;MAClC;MACAgB,SAAS,GAAGD,KAAK,CAACG,KAAK,GAAGH,KAAK,CAAC,CAAC,CAAC,CAACpN,MAAM;MACzC,IAAIqN,SAAS,GAAGL,aAAa,EAAE;QAC7BN,MAAM,CAAC1Q,IAAI,CAACqQ,GAAG,CAACmB,KAAK,CAACR,aAAa,EAAEI,KAAK,CAACG,KAAK,CAAC,CAAC;QAClD;QACA;QACA,IAAI,CAACrB,iBAAiB,IAAIkB,KAAK,CAACpN,MAAM,GAAG,CAAC,EAAE;UAC1CoN,KAAK,CAAC,CAAC,CAAC,CAACK,OAAO,CAACN,UAAU,EAAE,YAAY;YACvC,KAAK,IAAIpR,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8F,SAAS,CAAC7B,MAAM,GAAG,CAAC,EAAEjE,CAAC,EAAE,EAAE;cAC7C,IAAI8F,SAAS,CAAC9F,CAAC,CAAC,KAAKgQ,KAAK,EAAE;gBAC1BqB,KAAK,CAACrR,CAAC,CAAC,GAAGgQ,KAAK;cAClB;YACF;UACF,CAAC,CAAC;QACJ;QACA,IAAIqB,KAAK,CAACpN,MAAM,GAAG,CAAC,IAAIoN,KAAK,CAACG,KAAK,GAAGlB,GAAG,CAACrM,MAAM,EAAE;UAChD0N,KAAK,CAACrS,SAAS,CAACW,IAAI,CAAC2R,KAAK,CAACjB,MAAM,EAAEU,KAAK,CAACI,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD;QACAF,UAAU,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACpN,MAAM;QAC5BgN,aAAa,GAAGK,SAAS;QACzB,IAAIX,MAAM,CAAC1M,MAAM,IAAIuM,KAAK,EAAE;UAC1B;QACF;MACF;MACA,IAAID,SAAS,CAACe,SAAS,KAAKD,KAAK,CAACG,KAAK,EAAE;QACvCjB,SAAS,CAACe,SAAS,EAAE,CAAC,CAAC;MACzB;IACF;;IACA,IAAIL,aAAa,KAAKX,GAAG,CAACrM,MAAM,EAAE;MAChC,IAAIsN,UAAU,IAAI,CAAChB,SAAS,CAACsB,IAAI,CAAC,EAAE,CAAC,EAAE;QACrClB,MAAM,CAAC1Q,IAAI,CAAC,EAAE,CAAC;MACjB;IACF,CAAC,MAAM;MACL0Q,MAAM,CAAC1Q,IAAI,CAACqQ,GAAG,CAACmB,KAAK,CAACR,aAAa,CAAC,CAAC;IACvC;IACA,OAAON,MAAM,CAAC1M,MAAM,GAAGuM,KAAK,GAAGG,MAAM,CAACc,KAAK,CAAC,CAAC,EAAEjB,KAAK,CAAC,GAAGG,MAAM;EAChE,CAAC;;EAED;EACAT,MAAM,CAAC5Q,SAAS,CAACyQ,KAAK,GAAG,UAAUQ,SAAS,EAAEC,KAAK,EAAE;IACnD,OAAOH,IAAI,CAAC,IAAI,EAAEE,SAAS,EAAEC,KAAK,CAAC;EACrC,CAAC;EAED,OAAOH,IAAI;AAEb,CAAC,CAAC,CAAC;AAGI,SAASyB,MAAMA,CAAEzK,GAAG,EAAE;EAC3B,IAAI,CAACA,GAAG,GAAGA,GAAG;EAEd,IAAI,CAAC0K,MAAM,GAAG,CAAC;EACf,IAAI,CAACC,SAAS,GAAG,CAAC;;EAElB;EACA,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,aAAa,GAAG,UAAU;EAC/B,IAAI,CAACC,aAAa,GAAG,UAAU;EAC/B,IAAI,CAACC,aAAa,GAAG,UAAU;EAC/B,IAAI,CAACC,aAAa,GAAG,UAAU;EAC/B,IAAI,CAACC,aAAa,GAAG,UAAU;EAC/B,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,WAAW,GAAG,UAAU;EAC7B,IAAI,CAACC,WAAW,GAAG,UAAU;EAE7B,IAAI,CAACC,kBAAkB,GAAG,UAAU;EACpC,IAAI,CAACC,WAAW,GAAG,IAAI,CAACD,kBAAkB,GAAG,UAAU;EACvD,IAAI,CAACE,WAAW,GAAG,IAAI,CAACF,kBAAkB,GAAG,UAAU;EAEvD,IAAI,CAACG,eAAe,GAAG,IAAI,CAACH,kBAAkB,GAAG,UAAU;EAC3D,IAAI,CAACI,eAAe,GAAG,IAAI,CAACJ,kBAAkB,GAAG,UAAU;EAE3D,IAAI,CAACK,eAAe,GAAG,IAAI,CAACL,kBAAkB,GAAG,UAAU;EAC3D,IAAI,CAACM,eAAe,GAAG,IAAI,CAACN,kBAAkB,GAAG,UAAU;EAE3D,IAAI,CAACO,cAAc,GAAG,IAAI,CAACP,kBAAkB,GAAG,UAAU;EAC1D,IAAI,CAACQ,cAAc,GAAG,IAAI,CAACR,kBAAkB,GAAG,UAAU;EAE1D,IAAI,CAACS,cAAc,GAAG,IAAI,CAACT,kBAAkB,GAAG,UAAU;EAC1D,IAAI,CAACU,cAAc,GAAG,IAAI,CAACV,kBAAkB,GAAG,UAAU;EAE1D,IAAI,CAACW,cAAc,GAAG,IAAI,CAACX,kBAAkB,GAAG,UAAU;EAC1D,IAAI,CAACY,cAAc,GAAG,IAAI,CAACZ,kBAAkB,GAAG,UAAU;;EAG1D;EACA,IAAI,CAACa,OAAO,GAAG,UAAU;EACzB,IAAI,CAACC,SAAS,GAAG,UAAU,CAAC,CAAC;EAC7B,IAAI,CAACC,SAAS,GAAG,UAAU,CAAC,CAAC;EAC7B,IAAI,CAACC,SAAS,GAAG,UAAU,CAAC,CAAC;;EAE7B;EACA,IAAI,CAACC,OAAO,GAAG,UAAU;EACzB,IAAI,CAACC,QAAQ,GAAG,UAAU;EAC1B,IAAI,CAACC,UAAU,GAAG,UAAU;EAC5B,IAAI,CAACC,OAAO,GAAG,UAAU;EACzB,IAAI,CAACC,OAAO,GAAG,UAAU;EACzB,IAAI,CAACC,UAAU,GAAG,UAAU;EAC5B,IAAI,CAACC,UAAU,GAAG,UAAU;EAG5B,IAAI,CAACC,gBAAgB,GAAG,UAAU;EAClC,IAAI,CAACC,eAAe,GAAG,UAAU;EACjC,IAAI,CAACC,cAAc,GAAG,UAAU;EAChC,IAAI,CAACC,mBAAmB,GAAG,UAAU;EACrC,IAAI,CAACC,gBAAgB,GAAG,UAAU;EAClC,IAAI,CAACC,uBAAuB,GAAG,UAAU;EACzC,IAAI,CAACC,uBAAuB,GAAG,UAAU;EACzC,IAAI,CAACC,mBAAmB,GAAG,UAAU;EACrC,IAAI,CAACC,kBAAkB,GAAG,UAAU;EACpC,IAAI,CAACC,iBAAiB,GAAG,UAAU;EACnC,IAAI,CAACC,kBAAkB,GAAG,UAAU;EACpC,IAAI,CAACC,iBAAiB,GAAG,UAAU;EACnC,IAAI,CAACC,iBAAiB,GAAG,UAAU;EACnC,IAAI,CAACC,iBAAiB,GAAG,UAAU;EACnC,IAAI,CAACC,iBAAiB,GAAG,UAAU;EACnC,IAAI,CAACC,qBAAqB,GAAG,UAAU;EAEvC,IAAI,CAACC,mBAAmB,GAAG,UAAU;EACrC,IAAI,CAACC,kBAAkB,GAAG,UAAU;EACpC,IAAI,CAACC,mBAAmB,GAAG,UAAU;EACrC,IAAI,CAACC,sBAAsB,GAAG,UAAU;EACxC,IAAI,CAACC,eAAe,GAAG,UAAU;EACjC,IAAI,CAACC,iBAAiB,GAAG,UAAU;EACnC,IAAI,CAACC,kBAAkB,GAAG,UAAU;EACpC,IAAI,CAACC,kBAAkB,GAAG,UAAU;EACpC,IAAI,CAACC,kBAAkB,GAAG,UAAU;EACpC,IAAI,CAACC,kBAAkB,GAAG,UAAU;EAEpC,IAAI,CAACC,YAAY,GAAG,UAAU;EAG9B,IAAI,CAACC,eAAe,GAAG,UAAU;EACjC,IAAI,CAACC,eAAe,GAAG,UAAU;EACjC,IAAI,CAACC,eAAe,GAAG,UAAU;EACjC,IAAI,CAACC,uBAAuB,GAAG,UAAU;EACzC,IAAI,CAACC,2BAA2B,GAAG,UAAU;EAC7C,IAAI,CAACC,2BAA2B,GAAG,UAAU;EAC7C,IAAI,CAACC,2BAA2B,GAAG,UAAU;EAC7C,IAAI,CAACC,wBAAwB,GAAG,UAAU;EAC1C,IAAI,CAACC,0BAA0B,GAAG,UAAU;EAC5C,IAAI,CAACC,2BAA2B,GAAG,UAAU;EAC7C,IAAI,CAACC,2BAA2B,GAAG,UAAU;EAC7C,IAAI,CAACC,iCAAiC,GAAG,UAAU;EACnD,IAAI,CAACC,6BAA6B,GAAG,UAAU;EAC/C,IAAI,CAACC,kBAAkB,GAAG,UAAU;EACpC,IAAI,CAACC,qBAAqB,GAAG,UAAU;EACvC,IAAI,CAACC,mBAAmB,GAAG,UAAU;EACrC,IAAI,CAACC,sBAAsB,GAAG,UAAU;EACxC,IAAI,CAACC,uBAAuB,GAAG,UAAU;EACzC,IAAI,CAACC,wBAAwB,GAAG,UAAU;EAE1C,IAAI,CAACC,IAAI,GAAG,CAAC;EACb,IAAI,CAACC,KAAK,GAAG,CAAC;EAEd,IAAI,CAACC,MAAM,GAAG,CAAC;EACf,IAAI,CAACC,EAAE,GAAG,CAAC;EACX,IAAI,CAACC,EAAE,GAAG,CAAC;EACX,IAAI,CAACC,EAAE,GAAG,CAAC;EACX,IAAI,CAACC,OAAO,GAAG,CAAC;EAEhB,IAAI,CAACC,SAAS,GAAG,CAAC,CAAC,CAAC;EACpB,IAAI,CAACC,UAAU,GAAG,CAAC,CAAC,CAAC;;EAErB,IAAIC,cAAc,GAAG,IAAI;EAGzB,IAAI,CAACC,gBAAgB,GAAG,YAAY;IAClC,IAAID,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACC,gBAAgB,CAAC,CAAC;EAC1C,CAAC;;EAED;EACA,SAASC,IAAIA,CAAA,EAAI;IACf,OAAQ,eAAe,IAAI1X,MAAM;EACnC;EAEA,SAAS2X,QAAQA,CAAA,EAAI;IACnB,IAAIC,OAAO,GAAG;MACZC,QAAQ,EAAE,YAAY;QACpB;QACA,IAAIC,CAAC,GAAGC,SAAS,CAACC,SAAS;UAAEC,GAAG,GAAGF,SAAS,CAACG,UAAU;QACvD,OAAO;UAAC;UACNC,OAAO,EAAEL,CAAC,CAACjQ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;UAAE;UACpCuQ,MAAM,EAAEN,CAAC,CAACjQ,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;UAAE;UAClCwQ,MAAM,EAAEP,CAAC,CAACjQ,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;UAAE;UACvCyQ,KAAK,EAAER,CAAC,CAACjQ,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAIiQ,CAAC,CAACjQ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;UAAE;UAC5D0Q,MAAM,EAAE,CAAC,CAACT,CAAC,CAAChH,KAAK,CAAC,uBAAuB,CAAC;UAAE;UAC5C0H,GAAG,EAAE,CAAC,CAACV,CAAC,CAAChH,KAAK,CAAC,+BAA+B,CAAC;UAAE;UACjD2H,OAAO,EAAEX,CAAC,CAACjQ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAIiQ,CAAC,CAACjQ,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;UAAE;UAC/D6Q,MAAM,EAAEZ,CAAC,CAACjQ,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;UAAE;UAClC8Q,IAAI,EAAEb,CAAC,CAACjQ,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;UAAE;UAC9B+Q,MAAM,EAAEd,CAAC,CAACjQ,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;UAChC;QACF,CAAC;MACH,CAAC,CAAC,CAAC;;MACHgR,QAAQ,EAAE,CAACd,SAAS,CAACe,eAAe,IAAIf,SAAS,CAACc,QAAQ,EAAE9W,WAAW,CAAC;IAC1E,CAAC;IAED,IAAK6V,OAAO,CAACC,QAAQ,CAACU,MAAM,KAAMX,OAAO,CAACC,QAAQ,CAACW,GAAG,IAAIZ,OAAO,CAACC,QAAQ,CAACY,OAAO,IAAIb,OAAO,CAACC,QAAQ,CAACa,MAAM,IAAId,OAAO,CAACC,QAAQ,CAACc,IAAI,CAAC,EAAE;MACvI,OAAO,IAAI;IACb,CAAC,MACI;MACH,OAAO,KAAK;IACd;EACF;EAEA,IAAI,CAACI,eAAe,GAAG,UAAUvP,IAAI,EAAE;IACrCwP,EAAE,GAAGC,QAAQ,CAAC,CAAC;IACf,IAAIvX,GAAG;IACP,IAAI8V,cAAc,IAAI,IAAI,EAAE;MAC1BA,cAAc,GAAG,IAAI0B,YAAY,CAAC,CAAC;IACrC;IAEA,IAAI1P,IAAI,IAAI,IAAI,CAACyN,MAAM,EAAE;MACvB,IAAIU,QAAQ,CAAC,CAAC,EAAE;QACdjW,GAAG,GAAG8V,cAAc,CAACuB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,kDAAkD,CAAC;MAC7G,CAAC,MACI;QACHrX,GAAG,GAAG8V,cAAc,CAACuB,eAAe,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,qBAAqB,CAAC;MAC3G;IACF,CAAC,MACI,IAAIvP,IAAI,IAAI,IAAI,CAAC6N,OAAO,EAAE;MAC7B3V,GAAG,GAAG8V,cAAc,CAACuB,eAAe,CAAC,aAAa,EAAE,sBAAsB,EAAE,yBAAyB,CAAC;IACxG,CAAC,MACI,IAAIvP,IAAI,IAAI,IAAI,CAAC4N,EAAE,EAAE;MACxB1V,GAAG,GAAG8V,cAAc,CAACuB,eAAe,CAAC,wBAAwB,EAAE,6BAA6B,EAAE,gCAAgC,CAAC;IACjI,CAAC,MACI,IAAIvP,IAAI,IAAI,IAAI,CAAC0N,EAAE,EAAE;MACxB,IAAIS,QAAQ,CAAC,CAAC,EAAE;QACdjW,GAAG,GAAG8V,cAAc,CAACuB,eAAe,CAAC,GAAG,EAAE,qBAAqB,EAAE,kDAAkD,CAAC;MACtH,CAAC,MACI;QACHrX,GAAG,GAAG8V,cAAc,CAACuB,eAAe,CAAC,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;MAC9F;IACF,CAAC,MACI,IAAIvP,IAAI,IAAI,IAAI,CAAC2N,EAAE,EAAE;MACxB,IAAIQ,QAAQ,CAAC,CAAC,EAAE;QACdjW,GAAG,GAAG8V,cAAc,CAACuB,eAAe,CAAC,GAAG,EAAE,mBAAmB,EAAE,gDAAgD,CAAC;MAClH,CAAC,MAAM;QACLrX,GAAG,GAAG8V,cAAc,CAACuB,eAAe,CAAC,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAC;MAC1F;IACF,CAAC,MACI;MACH,OAAO,CAAC,CAAC;IACX;IAEA,IAAIrX,GAAG,IAAI,CAAC,EAAE;MACZ,OAAO,CAAC,CAAC;IACX;IACA,OAAO,IAAI,CAAC8P,MAAM;EACpB,CAAC;EAGD,IAAI,CAAC2H,cAAc,GAAG,YAAY;IAChC,IAAI3B,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,IAAI4B,KAAK,GAAG5B,cAAc,CAAC2B,cAAc,CAAC,CAAC;IAC3C,IAAIC,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC1V,MAAM,IAAI,CAAC,EAAE;MACtC,OAAO,IAAI;IACb;IAEA,OAAO0V,KAAK,CAAC5J,KAAK,CAAC,IAAI,CAAC;EAE1B,CAAC;EAGD,IAAI,CAAChM,cAAc,GAAG,YAAY;IAChC,IAAIgU,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAChU,cAAc,CAAC,CAAC;EACxC,CAAC;EAGD,IAAI,CAAC6V,qBAAqB,GAAG,UAAUC,UAAU,EAAEC,eAAe,EAAE;IAClE,IAAI/B,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAAC6B,qBAAqB,CAACC,UAAU,EAAEC,eAAe,CAAC;EAC1E,CAAC;EAED,IAAI,CAACC,yBAAyB,GAAG,YAAY;IAC3C,IAAIhC,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACgC,yBAAyB,CAAC,CAAC;EACnD,CAAC;EAGD,IAAI,CAAC/Q,eAAe,GAAG,YAAY;IACjC,IAAI+O,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,IAAI4B,KAAK,GAAG5B,cAAc,CAAC/O,eAAe,CAAC,CAAC;IAC5C,IAAI2Q,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC1V,MAAM,IAAI,CAAC,EACpC,OAAO,IAAI;IAEb,IAAI+V,IAAI,GAAG,IAAIrI,KAAK,CAAC,CAAC;IACtB,IAAIsI,IAAI,GAAGN,KAAK,CAAC5J,KAAK,CAAC,KAAK,CAAC;IAC7B,IAAI9L,MAAM,GAAGgW,IAAI,CAAChW,MAAM;IACxB,KAAK,IAAIjE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiE,MAAM,EAAEjE,CAAC,EAAE,EAAE;MAC/Bga,IAAI,CAACha,CAAC,CAAC,GAAGia,IAAI,CAACja,CAAC,CAAC,CAAC+P,KAAK,CAAC,IAAI,CAAC;IAC/B;IAEA,OAAOiK,IAAI;EACb,CAAC;EAGD,IAAI,CAACzK,kBAAkB,GAAG,UAAUD,aAAa,EAAE4K,OAAO,EAAE;IAC1D,IAAInC,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACxI,kBAAkB,CAACD,aAAa,EAAE4K,OAAO,CAAC;EAClE,CAAC;EAGD,IAAI,CAACC,iBAAiB,GAAG,UAAUC,IAAI,EAAE;IACvC,IAAIrC,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACoC,iBAAiB,CAACC,IAAI,CAAC;EAC/C,CAAC;EAGD,IAAI,CAACrL,eAAe,GAAG,UAAUsL,gBAAgB,EAAED,IAAI,EAAE;IACvD,IAAIrC,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAChJ,eAAe,CAACsL,gBAAgB,EAAED,IAAI,CAAC;EAC/D,CAAC;EAED,IAAI,CAACE,oBAAoB,GAAG,UAAUD,gBAAgB,EAAEE,GAAG,EAAE;IAC3D,IAAIxC,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACuC,oBAAoB,CAACD,gBAAgB,EAAEE,GAAG,CAAC;EACnE,CAAC;EAED,IAAI,CAACzK,SAAS,GAAG,UAAU0K,MAAM,EAAE;IACjC,IAAIzC,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACjI,SAAS,CAAC0K,MAAM,CAAC;EACzC,CAAC;EAGD,IAAI,CAACC,UAAU,GAAG,YAAY;IAC5B,IAAI1C,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAAC0C,UAAU,CAAC,CAAC;EACpC,CAAC;EAGD,IAAI,CAACrL,oBAAoB,GAAG,YAAY;IACtC,IAAI2I,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAAC3I,oBAAoB,CAAC,CAAC;EAC9C,CAAC;EAGD,IAAI,CAACsL,gBAAgB,GAAG,UAAUC,SAAS,EAAEC,SAAS,EAAE;IACtD,IAAI7C,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAAC2C,gBAAgB,CAACC,SAAS,EAAEC,SAAS,CAAC;EAC9D,CAAC;EAGD,IAAI,CAACC,mBAAmB,GAAG,UAAUC,YAAY,EAAE;IACjD,IAAI/C,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAAC8C,mBAAmB,CAACC,YAAY,CAAC;EACzD,CAAC;EAGD,IAAI,CAACC,aAAa,GAAG,UAAUC,MAAM,EAAE;IACrC,IAAIjD,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACgD,aAAa,CAACC,MAAM,CAAC;EAC7C,CAAC;EAGD,IAAI,CAACC,yBAAyB,GAAG,UAAUC,aAAa,EAAEC,SAAS,EAAE;IACnE,IAAIpD,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACkD,yBAAyB,CAACC,aAAa,EAAEC,SAAS,CAAC;EAC3E,CAAC;EAGD,IAAI,CAACC,sBAAsB,GAAG,UAAUC,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAExR,IAAI,EAAE;IACnE,IAAIgO,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACqD,sBAAsB,CAACC,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAExR,IAAI,CAAC;EAC3E,CAAC;EAGD,IAAI,CAACyR,mBAAmB,GAAG,UAAUlM,aAAa,EAAEgM,MAAM,EAAEC,OAAO,EAAE;IACnE,IAAIxD,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACyD,mBAAmB,CAAClM,aAAa,EAAEgM,MAAM,EAAEC,OAAO,CAAC;EAC3E,CAAC;EAED,IAAI,CAACE,qBAAqB,GAAG,UAAUC,YAAY,EAAEC,UAAU,EAAE;IAC/D,IAAI5D,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAAC0D,qBAAqB,CAACC,YAAY,EAAEC,UAAU,CAAC;EACvE,CAAC;EAED,IAAI,CAACC,sBAAsB,GAAG,UAAUtM,aAAa,EAAEuM,OAAO,EAAEC,SAAS,EAAER,MAAM,EAAEC,OAAO,EAAExR,IAAI,EAAE;IAChG,IAAIgO,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAAC6D,sBAAsB,CAACtM,aAAa,EAAEuM,OAAO,EAAEC,SAAS,EAAER,MAAM,EAAEC,OAAO,EAAExR,IAAI,CAAC;EACxG,CAAC;EAED,IAAI,CAACgS,cAAc,GAAG,UAAUzM,aAAa,EAAE0M,KAAK,EAAEC,SAAS,EAAE;IAC/D,IAAIlE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACgE,cAAc,CAACzM,aAAa,EAAE0M,KAAK,EAAEC,SAAS,CAAC;EACvE,CAAC;EAED,IAAI,CAACnO,YAAY,GAAG,UAAUwB,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEF,SAAS,EAAE;IACzE,IAAIlE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACjK,YAAY,CAACwB,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEF,SAAS,CAAC;EACjF,CAAC;EACD;EACA,IAAI,CAACG,uBAAuB,GAAG,UAAU9M,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEF,SAAS,EAAE;IACpF,IAAIlE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACqE,uBAAuB,CAAC9M,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEF,SAAS,CAAC;EAC5F,CAAC;EAGD,IAAI,CAACI,mBAAmB,GAAG,UAAU/M,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEG,UAAU,EAAE;IACjF,IAAIvE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACsE,mBAAmB,CAAC/M,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEG,UAAU,CAAC;EACzF,CAAC;EAID,IAAI,CAACC,qBAAqB,GAAG,UAAUlC,gBAAgB,EAAE8B,MAAM,EAAEK,WAAW,EAAE;IAC5E,IAAIzE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACwE,qBAAqB,CAAClC,gBAAgB,EAAE8B,MAAM,EAAEK,WAAW,CAAC;EACpF,CAAC;EAGD,IAAI,CAAChO,oBAAoB,GAAG,UAAU6L,gBAAgB,EAAEoC,YAAY,EAAEN,MAAM,EAAEK,WAAW,EAAE;IACzF,IAAIzE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IAEA,OAAOA,cAAc,CAACvJ,oBAAoB,CAAC6L,gBAAgB,EAAEoC,YAAY,EAAEN,MAAM,EAAEK,WAAW,CAAC;EACjG,CAAC;EAGD,IAAI,CAACE,oBAAoB,GAAG,UAAUrC,gBAAgB,EAAE8B,MAAM,EAAEF,SAAS,EAAE;IACzE,IAAIlE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC2E,oBAAoB,CAACrC,gBAAgB,EAAE8B,MAAM,EAAEF,SAAS,CAAC;EACjF,CAAC;EAGD,IAAI,CAACU,oBAAoB,GAAG,UAAUrN,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAE;IACtE,IAAIpE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC4E,oBAAoB,CAACrN,aAAa,EAAE4M,SAAS,EAAEC,MAAM,CAAC;EAC9E,CAAC;EAGD,IAAI,CAACS,2BAA2B,GAAG,YAAY;IAC7C,IAAI7E,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC6E,2BAA2B,CAAC,CAAC;EACrD,CAAC;EAGD,IAAI,CAACC,uBAAuB,GAAG,UAAUC,OAAO,EAAEC,KAAK,EAAEC,OAAO,EAAE;IAChE,IAAIjF,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC8E,uBAAuB,CAACC,OAAO,EAAEC,KAAK,EAAEC,OAAO,CAAC;EACxE,CAAC;EAGD,IAAI,CAACC,oBAAoB,GAAG,UAAUH,OAAO,EAAE;IAC7C,IAAI/E,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACkF,oBAAoB,CAACH,OAAO,CAAC;EACrD,CAAC;EAGD,IAAI,CAACT,mBAAmB,GAAG,UAAU/M,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEG,UAAU,EAAE;IACjF,IAAIvE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACsE,mBAAmB,CAAC/M,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEG,UAAU,CAAC;EACzF,CAAC;EAGD,IAAI,CAACC,qBAAqB,GAAG,UAAUb,YAAY,EAAEwB,YAAY,EAAEZ,UAAU,EAAE;IAC7E,IAAIvE,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACwE,qBAAqB,CAACb,YAAY,EAAEwB,YAAY,EAAEZ,UAAU,CAAC;EACrF,CAAC;;EAED;EACA,IAAI,CAACa,gBAAgB,GAAG,UAAUC,aAAa,EAAEC,OAAO,EAAEC,OAAO,EAAE;IACjE,IAAIvF,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACoF,gBAAgB,CAACC,aAAa,EAAEC,OAAO,EAAEC,OAAO,CAAC;EACzE,CAAC;EAED,IAAI,CAACC,mBAAmB,GAAG,UAAUC,SAAS,EAAEC,QAAQ,EAAEJ,OAAO,EAAE;IACjE,IAAItF,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACwF,mBAAmB,CAACC,SAAS,EAAEC,QAAQ,EAAEJ,OAAO,CAAC;EACzE,CAAC;EAED,IAAI,CAACK,mBAAmB,GAAG,UAAUN,aAAa,EAAEC,OAAO,EAAEM,aAAa,EAAE;IAC1E,IAAI5F,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC2F,mBAAmB,CAACN,aAAa,EAAEC,OAAO,EAAEM,aAAa,CAAC;EAClF,CAAC;;EAED;EACA,IAAI,CAACC,sBAAsB,GAAG,UAAUC,UAAU,EAAEC,SAAS,EAAEC,EAAE,EAAEC,OAAO,EAAEnC,OAAO,EAAEoC,SAAS,EAAE;IAC9F,IAAIlG,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC6F,sBAAsB,CAACC,UAAU,EAAEC,SAAS,EAAEC,EAAE,EAAEC,OAAO,EAAEnC,OAAO,EAAEoC,SAAS,CAAC;EACtG,CAAC;EAED,IAAI,CAACC,oBAAoB,GAAG,YAAY;IACtC,IAAInG,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACmG,oBAAoB,CAAC,CAAC;EAC9C,CAAC;EAED,IAAI,CAACC,iBAAiB,GAAG,UAAUC,MAAM,EAAE;IACzC,IAAIrG,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACoG,iBAAiB,CAACC,MAAM,CAAC;EACjD,CAAC;EAED,IAAI,CAACC,cAAc,GAAG,UAAUD,MAAM,EAAE;IACtC,IAAIrG,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACsG,cAAc,CAACD,MAAM,CAAC;EAC9C,CAAC;EAED,IAAI,CAACE,mBAAmB,GAAG,UAAUF,MAAM,EAAE;IAC3C,IAAIrG,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACuG,mBAAmB,CAACF,MAAM,CAAC;EACnD,CAAC;EAED,IAAI,CAACG,cAAc,GAAG,UAAUH,MAAM,EAAEI,KAAK,EAAE;IAC7C,IAAIzG,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACwG,cAAc,CAACH,MAAM,EAAEI,KAAK,CAAC;EACrD,CAAC;EAED,IAAI,CAACC,gBAAgB,GAAG,UAAUL,MAAM,EAAEI,KAAK,EAAEE,SAAS,EAAE;IAC1D,IAAI3G,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC0G,gBAAgB,CAACL,MAAM,EAAEI,KAAK,EAAEE,SAAS,CAAC;EAClE,CAAC;EAGD,IAAI,CAACC,cAAc,GAAG,UAAUb,SAAS,EAAEc,IAAI,EAAE/C,OAAO,EAAE;IACxD,IAAI9D,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC4G,cAAc,CAACb,SAAS,EAAEc,IAAI,EAAE/C,OAAO,CAAC;EAChE,CAAC;EAED,IAAI,CAACgD,0BAA0B,GAAG,UAAUf,SAAS,EAAEc,IAAI,EAAEE,QAAQ,EAAEC,uBAAuB,EAAEC,MAAM,EAAEC,uBAAuB,EAAEC,IAAI,EAAE;IACrI,IAAInH,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC8G,0BAA0B,CAACf,SAAS,EAAEc,IAAI,EAAEE,QAAQ,EAAEC,uBAAuB,EAAEC,MAAM,EAAEC,uBAAuB,EAAEC,IAAI,CAAC;EAC7I,CAAC;EAED,IAAI,CAACC,mBAAmB,GAAG,UAAUP,IAAI,EAAEJ,KAAK,EAAEE,SAAS,EAAEjC,YAAY,EAAE;IACzE,IAAI1E,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACoH,mBAAmB,CAACP,IAAI,EAAEJ,KAAK,EAAEE,SAAS,EAAEjC,YAAY,CAAC;EACjF,CAAC;EAED,IAAI,CAAC2C,kBAAkB,GAAG,UAAUnb,MAAM,EAAE;IAC1C,IAAI8T,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACqH,kBAAkB,CAACnb,MAAM,CAAC;EAClD,CAAC;EAED,IAAI,CAACob,kBAAkB,GAAG,UAAUC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,EAAEzV,IAAI,EAAE;IACvE,IAAIgO,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACsH,kBAAkB,CAACC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,EAAEzV,IAAI,CAAC;EAC/E,CAAC;EAED,IAAI,CAAC0V,kBAAkB,GAAG,UAAUH,UAAU,EAAEC,OAAO,EAAEC,QAAQ,EAAEzV,IAAI,EAAE;IACvE,IAAIgO,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC0H,kBAAkB,CAACH,UAAU,EAAEC,OAAO,EAAEC,QAAQ,EAAEzV,IAAI,CAAC;EAC/E,CAAC;EAED,IAAI,CAAC2V,kBAAkB,GAAG,UAAUJ,UAAU,EAAEzV,MAAM,EAAE;IACtD,IAAIkO,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC2H,kBAAkB,CAACJ,UAAU,EAAEzV,MAAM,CAAC;EAC9D,CAAC;EAED,IAAI,CAAC8V,kBAAkB,GAAG,UAAUL,UAAU,EAAEzV,MAAM,EAAE;IACtD,IAAIkO,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC4H,kBAAkB,CAACL,UAAU,EAAEzV,MAAM,CAAC;EAC9D,CAAC;EAED,IAAI,CAAC+V,kBAAkB,GAAG,UAAUC,WAAW,EAAE;IAC/C,IAAI9H,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC6H,kBAAkB,CAACC,WAAW,CAAC;EACvD,CAAC;EAGD,IAAI,CAACC,eAAe,GAAG,UAAUC,WAAW,EAAE;IAC5C,IAAIhI,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAAC+H,eAAe,CAACC,WAAW,CAAC;EACpD,CAAC;EAED,IAAI,CAACC,mBAAmB,GAAG,YAAY;IACrC,IAAIjI,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACiI,mBAAmB,CAAC,CAAC;EAC7C,CAAC;EAED,IAAI,CAACC,qBAAqB,GAAG,YAAY;IACvC,IAAIlI,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,OAAOA,cAAc,CAACkI,qBAAqB,CAAC,CAAC;EAC/C,CAAC;EAGD,IAAI,CAACC,aAAa,GAAG,YAAY;IAC/B,IAAInI,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IAEA,IAAI4B,KAAK,GAAG5B,cAAc,CAACmI,aAAa,CAAC,CAAC;IAC1C,IAAIvG,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC1V,MAAM,IAAI,CAAC,EAAE;MACtC,OAAO,IAAI;IACb;IAEA,OAAO0V,KAAK,CAAC5J,KAAK,CAAC,IAAI,CAAC;EAC1B,CAAC;EAED,IAAI,CAACoQ,YAAY,GAAG,UAAUC,QAAQ,EAAEC,MAAM,EAAEpc,MAAM,EAAE;IACtD,IAAI8T,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IACA,OAAOA,cAAc,CAACoI,YAAY,CAACC,QAAQ,EAAEhb,MAAM,CAACib,MAAM,CAAC,EAAEjb,MAAM,CAACnB,MAAM,CAAC,CAAC;EAC9E,CAAC;EAED,IAAI,CAACqc,aAAa,GAAG,UAAUF,QAAQ,EAAEC,MAAM,EAAE5b,IAAI,EAAE;IACrD,IAAIsT,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IACA,OAAOA,cAAc,CAACuI,aAAa,CAACF,QAAQ,EAAEC,MAAM,EAAE5b,IAAI,CAAC;EAC7D,CAAC;EAED,IAAI,CAAC8b,cAAc,GAAG,UAAUH,QAAQ,EAAEnc,MAAM,EAAEuc,SAAS,EAAEC,UAAU,EAAE;IACvE,IAAI1I,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IACA,OAAOA,cAAc,CAACwI,cAAc,CAACH,QAAQ,EAAEnc,MAAM,EAAEuc,SAAS,EAAEC,UAAU,CAAC;EAC/E,CAAC;EAED,IAAI,CAACC,cAAc,GAAG,UAAUN,QAAQ,EAAE;IACxC,IAAIrI,cAAc,IAAI,IAAI,EAAE;MAC1B,OAAO,IAAI;IACb;IACA,OAAOA,cAAc,CAAC2I,cAAc,CAACN,QAAQ,CAAC;EAChD,CAAC;AAGH;;AAEA;AACA,SAASO,SAASA,CAAEC,IAAI,EAAE;EACxBA,IAAI,GAAGA,IAAI,CAACte,WAAW,CAAC,CAAC;EACzB,KAAK,IAAItC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsY,SAAS,CAACuI,OAAO,CAAC5c,MAAM,EAAEjE,CAAC,EAAE,EAAE;IACjD,IAAIsY,SAAS,CAACuI,OAAO,CAAC7gB,CAAC,CAAC,CAAC4gB,IAAI,CAACte,WAAW,CAAC,CAAC,CAAC8F,OAAO,CAACwY,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;MAC9D,OAAO,IAAI;IACb;EACF;EACA,OAAO,KAAK;AACd;AACA;AACA,SAASpH,QAAQA,CAAA,EAAI;EACnB,IAAIsH,OAAO,GAAIxI,SAAS,CAACC,SAAS,CAACnQ,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAI,CAAC,GAAG,CAAC;EACvE;EACA,IAAI2Y,GAAG,GAAIzI,SAAS,CAACC,SAAS,CAACnQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAI,CAAC,GAAG,CAAC;EAC/D,IAAI4Y,KAAK,GAAI1I,SAAS,CAACC,SAAS,CAACnQ,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAI,CAAC,GAAG,CAAC;EACnE;EACA,IAAI6Y,IAAI,GAAI3I,SAAS,CAACC,SAAS,CAACnQ,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAI,CAAC,GAAG,CAAC;EAChE,IAAI8Y,OAAO,GAAG,EAAE;EAChB,IAAIJ,OAAO,EAAEI,OAAO,GAAG,YAAY;EACnC;EAAA,KACK,IAAIF,KAAK,EAAEE,OAAO,GAAG,OAAO;EACjC,IAAIP,SAAS,CAAC,gBAAgB,CAAC,EAAE;IAC/BQ,QAAQ,GAAG,CAAC;IACZ,OAAO,oBAAoB;EAC7B,CAAC,MAAM;IACLA,QAAQ,GAAG,CAAC;IACZ,OAAO,cAAc;EACvB;AAGF;AACA,IAAIA,QAAQ,GAAG,CAAC;AAChB,IAAI5H,EAAE;AAEN,SAASE,YAAYA,CAAA,EAAI;EACvB,IAAI2H,QAAQ;EACZ,IAAIC,OAAO,GAAG,EAAE;EAEhB,SAASC,MAAMA,CAAEC,OAAO,EAAE;IACxB;IACA,IAAIhI,EAAE,IAAI,oBAAoB,EAAE;MAC9B,IAAIiI,MAAM,GAAG,IAAI;MACjB;MACA,IAAIre,GAAG,GAAG,8BAA8B;MAExCqe,MAAM,GAAG9gB,QAAQ,CAACkB,cAAc,CAAC,oBAAoB,CAAC;MACtD,IAAI,IAAI,IAAI4f,MAAM,EAAE;QAClBxa,KAAK,CAAC,qBAAqB,CAAC;MAC9B;MACA;AACN;AACA;AACA;AACA;AACA;MACM,IAAIya,IAAI,GAAGF,OAAO;MAElBF,OAAO,GAAGG,MAAM,CAACE,MAAM,CAACve,GAAG,EAAEse,IAAI,CAAC;MAClC,OAAOJ,OAAO;IAChB,CAAC,MAAM;MAEL;MACA,IAAIM,WAAW,GAAG,EAAE;MACpB,IAAIC,IAAI,GAAG,8BAA8B;MACzC,IAAIH,IAAI,GAAGF,OAAO;MAClB,IAAIH,QAAQ,IAAI,IAAI,EAAE;QACpB,IAAI7gB,MAAM,CAACshB,cAAc,EAAE;UAAE;UAC3BT,QAAQ,GAAG,IAAIS,cAAc,CAAC,CAAC;QACjC,CAAC,MAAM;UAAE;UACP;UACAT,QAAQ,GAAG,IAAI5gB,aAAa,CAAC,mBAAmB,CAAC;QACnD;MACF;;MAEA;AACN;AACA;AACA;AACA;MACM4gB,QAAQ,CAACU,IAAI,CAAC,MAAM,EAAEF,IAAI,EAAE,KAAK,CAAC;MAClCR,QAAQ,CAACW,gBAAgB,CAAC,cAAc,EAAE,mCAAmC,CAAC;MAC9EX,QAAQ,CAAChd,IAAI,CAAC,OAAO,GAAGqd,IAAI,CAAC;IAC/B;EAKF;EAEA,SAASO,aAAaA,CAAA,EAAI;IACxB,IAAIZ,QAAQ,CAACnb,UAAU,IAAI,CAAC,IAAImb,QAAQ,CAACa,MAAM,IAAI,GAAG,EAAE;MACtD,IAAI5a,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGogB,QAAQ,CAACc,YAAY,GAAG,GAAG,CAAC;MACjD,OAAO7a,GAAG;IACZ,CAAC,MACI;MACH,OAAO,IAAI;IACb;EACF;EAEA,IAAI,CAAC2Q,gBAAgB,GAAG,YAAY;IAClC,IAAIyJ,IAAI,GAAG,iCAAiC;IAC5C,IAAIN,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC8a,SAAS;MACtB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFb,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAC9I,eAAe,GAAG,UAAUwH,OAAO,EAAEE,KAAK,EAAED,GAAG,EAAE;IACpD,IAAIU,IAAI,GAAG,+CAA+C,GAAGX,OAAO,GAAG,oBAAoB,GAAGE,KAAK,GAAG,qBAAqB,GAAGD,GAAG,GAAG,IAAI;IACxI,IAAII,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAC1I,cAAc,GAAG,YAAY;IAChC,IAAI+H,IAAI,GAAG,+BAA+B;IAC1C,IAAIN,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACsS,KAAK;MAClB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF2H,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC0X,KAAK;MAClB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAC5V,cAAc,GAAG,YAAY;IAChC,IAAI0d,IAAI,GAAG,+BAA+B;IAC1C,IAAIN,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACgb,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFf,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACogB,OAAO;MACpB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAIV,WAAW;EACf,IAAI,CAAC/H,qBAAqB,GAAG,UAAUC,UAAU,EAAEC,eAAe,EAAE;IAClE,IAAI2H,IAAI,GAAG,qDAAqD,GAAG5H,UAAU,GAAG,wBAAwB,GAAGC,eAAe,GAAG,IAAI;IACjI,IAAIqH,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFM,WAAW,GAAG9H,UAAU;QACxBwH,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,IAAIA,GAAG,CAACmgB,GAAG,IAAI,CAAC,EAAE;UAChBT,WAAW,GAAG9H,UAAU;QAC1B;QACA,OAAO5X,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAACrI,yBAAyB,GAAG,YAAY;IAC3C,IAAI0H,IAAI,GAAG,yDAAyD,GAAGE,WAAW,GAAG,IAAI;IACzF,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACsS,KAAK;MAClB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF2H,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAACpZ,eAAe,GAAG,YAAY;IACjC,IAAIyY,IAAI,GAAG,+CAA+C,GAAGE,WAAW,GAAG,IAAI;IAC/E,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACsS,KAAK;MAClB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF2H,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC0X,KAAK;MAClB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACpK,kBAAkB,GAAG,UAAUD,aAAa,EAAE4K,OAAO,EAAE;IAE1D,IAAIuH,IAAI,GAAG,kDAAkD,GAAGE,WAAW,GAAG,sBAAsB,GAAGrS,aAAa,GAAG,eAAe,GAAG4K,OAAO,GAAG,GAAG;IACtJ,IAAIiH,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACuX,IAAI;MACjB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF0C,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC2c,IAAI;MACjB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACzE,iBAAiB,GAAG,UAAUC,IAAI,EAAE;IACvC,IAAIqH,IAAI,GAAG,iDAAiD,GAAGE,WAAW,GAAG,YAAY,GAAGvH,IAAI,GAAG,GAAG;IACtG,IAAI+G,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACib,IAAI;MACjB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFhB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACqgB,IAAI;MACjB;MAEA,OAAO,CAAC,CAAC;IACX;EAEF,CAAC;EAGD,IAAI,CAACvT,eAAe,GAAG,UAAUsL,gBAAgB,EAAED,IAAI,EAAE;IACvD,IAAIqH,IAAI,GAAG,qDAAqD,GAAGpH,gBAAgB,GAAG,YAAY,GAAGD,IAAI,GAAG,GAAG;IAC/G,IAAI+G,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACib,IAAI;MACjB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFhB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACqgB,IAAI;MACjB;MAEA,OAAO,CAAC,CAAC;IACX;EAEF,CAAC;EAGD,IAAI,CAAChI,oBAAoB,GAAG,UAAUD,gBAAgB,EAAEE,GAAG,EAAE;IAC3D,IAAIkH,IAAI,GAAG,0DAA0D,GAAGpH,gBAAgB,GAAG,YAAY,GAAGE,GAAG,GAAG,IAAI;IACpH,IAAI4G,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACib,IAAI;MACjB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFhB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACqgB,IAAI;MACjB;MAEA,OAAO,IAAI;IACb;EAEF,CAAC;EAID,IAAI,CAACxS,SAAS,GAAG,UAAU0K,MAAM,EAAE;IAEjC,IAAIiH,IAAI,GAAG,yCAAyC,GAAGE,WAAW,GAAG,eAAe,GAAGnH,MAAM,GAAG,IAAI;IACpG,IAAI2G,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAC3H,UAAU,GAAG,YAAY;IAE5B,IAAIgH,IAAI,GAAG,0CAA0C,GAAGE,WAAW,GAAG,IAAI;IAC1E,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAChT,oBAAoB,GAAG,YAAY;IAEtC,IAAIqS,IAAI,GAAG,oDAAoD,GAAGE,WAAW,GAAG,IAAI;IACpF,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC6H,UAAU;MACvB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFoS,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACiN,UAAU;MACvB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACwL,gBAAgB,GAAG,UAAUC,SAAS,EAAEC,SAAS,EAAE;IAEtD,IAAI6G,IAAI,GAAG,gDAAgD,GAAGE,WAAW,GAAG,iBAAiB,GAAGhH,SAAS,GAAG,gBAAgB,GAAGC,SAAS,GAAG,IAAI;IAC/I,IAAIuG,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACvH,mBAAmB,GAAG,UAAUC,YAAY,EAAE;IAEjD,IAAI2G,IAAI,GAAG,kDAAkD,GAAGE,WAAW,GAAG,oBAAoB,GAAG7G,YAAY,GAAG,GAAG;IACvH,IAAIqG,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACrH,aAAa,GAAG,UAAUC,MAAM,EAAE;IAErC,IAAIyG,IAAI,GAAG,4CAA4C,GAAGE,WAAW,GAAG,eAAe,GAAG3G,MAAM,GAAG,IAAI;IACvG,IAAImG,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACnH,yBAAyB,GAAG,UAAUC,aAAa,EAAEC,SAAS,EAAE;IAEnE,IAAIsG,IAAI,GAAG,wDAAwD,GAAGE,WAAW,GAAG,qBAAqB,GAAGzG,aAAa,GAAG,iBAAiB,GAAGC,SAAS,GAAG,IAAI;IAChK,IAAIgG,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAChH,sBAAsB,GAAG,UAAUC,IAAI,EAAEC,MAAM,EAAEC,OAAO,EAAExR,IAAI,EAAE;IAEnE,IAAI0X,IAAI,GAAG,sDAAsD,GAAGE,WAAW,GAAG,aAAa,GAAGtG,IAAI,GAAG,eAAe,GAAGC,MAAM,CAAC5J,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,gBAAgB,GAAG6J,OAAO,CAAC7J,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,YAAY,GAAG3H,IAAI,GAAG,GAAG;IACxO,IAAIoX,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACkb,WAAW;MACxB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFjB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACsgB,WAAW;MACxB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAC/G,mBAAmB,GAAG,UAAUlM,aAAa,EAAE4K,OAAO,EAAEoB,MAAM,EAAE;IAEnE,IAAImG,IAAI,GAAG,mDAAmD,GAAGE,WAAW,GAAG,uBAAuB,GAAGrS,aAAa,GAAG,eAAe,GAAG4K,OAAO,GAAG,cAAc,GAAGoB,MAAM,CAAC5J,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI;IAC1M,IAAIyP,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACmb,MAAM;MACnB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFlB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACugB,MAAM;MACnB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAC/G,qBAAqB,GAAG,UAAUC,YAAY,EAAEC,UAAU,EAAE;IAC/D,IAAI8F,IAAI,GAAG,qDAAqD,GAAGE,WAAW,GAAG,oBAAoB,GAAGjG,YAAY,GAAG,eAAe,GAAGC,UAAU,CAACjK,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI;IACjL,IAAIyP,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACxG,sBAAsB,GAAG,UAAUtM,aAAa,EAAEuM,OAAO,EAAEC,SAAS,EAAER,MAAM,EAAEC,OAAO,EAAExR,IAAI,EAAE;IAEhG,IAAI0X,IAAI,GAAG,sDAAsD,GAAGE,WAAW,GAAG,uBAAuB,GAAGrS,aAAa,GAAG,eAAe,GAAGuM,OAAO,GAAG,iBAAiB,GAAGC,SAAS,GAAG,eAAe,GAAGR,MAAM,CAAC5J,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,gBAAgB,GAAG6J,OAAO,CAAC7J,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,YAAY,GAAG3H,IAAI,GAAG,GAAG;IACvT,IAAIoX,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACrG,cAAc,GAAG,UAAUzM,aAAa,EAAE6M,MAAM,EAAEF,SAAS,EAAE;IAEhE,IAAIwF,IAAI,GAAG,6CAA6C,GAAGE,WAAW,GAAG,uBAAuB,GAAGrS,aAAa,GAAG,eAAe,GAAG6M,MAAM,GAAG,iBAAiB,GAAGF,SAAS,GAAG,GAAG;IACjL,IAAIkF,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACob,MAAM;MACnB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFnB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACwgB,MAAM;MACnB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;;EAED;EACA,IAAI,CAACrG,uBAAuB,GAAG,UAAU9M,aAAa,EAAE4M,SAAS,EAAErS,MAAM,EAAEoS,SAAS,EAAE;IACpF,IAAIyG,YAAY,GAAG7Y,MAAM,CAAC,CAAC;IAC3B,IAAI4X,IAAI,GAAG,uDAAuD,GAAGE,WAAW,GAAG,uBAAuB,GAAGrS,aAAa,GAAG,eAAe,GAAG4M,SAAS,GAAG,cAAc,GAAGwG,YAAY,GAAG,iBAAiB,GAAGzG,SAAS,GAAG,GAAG;IAE9N,IAAIkF,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACmb,MAAM;MACnB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFlB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAGA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACugB,MAAM;MACnB;MAEA,OAAO,IAAI;IACb;EACF,CAAC;EAED,IAAI,CAAC1U,YAAY,GAAG,UAAUwB,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEF,SAAS,EAAE;IAEzE,IAAIwF,IAAI,GAAG,8CAA8C,GAAGE,WAAW,GAAG,sBAAsB,GAAGrS,aAAa,GAAG,eAAe,GAAG4M,SAAS,GAAG,cAAc,GAAGC,MAAM,GAAG,iBAAiB,GAAGF,SAAS,GAAG,GAAG;IAC9M,IAAIkF,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACmb,MAAM;MACnB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFlB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACugB,MAAM;MACnB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAChU,oBAAoB,GAAG,UAAU6L,gBAAgB,EAAEoC,YAAY,EAAEN,MAAM,EAAEK,WAAW,EAAE;IACzF,IAAIiF,IAAI,GAAG,qDAAqD,GAAGE,WAAW,GAAG,yBAAyB,GAAGtH,gBAAgB,GAAG,oBAAoB,GAAGoC,YAAY,GAAG,cAAc,GAAGN,MAAM,GAAG,oBAAoB,GAAGK,WAAW,GAAG,IAAI;IACzO,IAAI2E,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAC1F,oBAAoB,GAAG,UAAUrC,gBAAgB,EAAE8B,MAAM,EAAEF,SAAS,EAAE;IAEzE,IAAIwF,IAAI,GAAG,oDAAoD,GAAGE,WAAW,GAAG,yBAAyB,GAAGtH,gBAAgB,GAAG,eAAe,GAAG8B,MAAM,GAAG,iBAAiB,GAAGF,SAAS,GAAG,GAAG;IAC7L,IAAIkF,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACsb,YAAY;MACzB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFrB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC0gB,YAAY;MACzB;MAEA,OAAO,CAAC,CAAC;IACX;EAEF,CAAC;EAGD,IAAI,CAAChG,oBAAoB,GAAG,UAAUrN,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAE;IAEtE,IAAIsF,IAAI,GAAG,oDAAoD,GAAGE,WAAW,GAAG,sBAAsB,GAAGrS,aAAa,GAAG,eAAe,GAAG4M,SAAS,GAAG,cAAc,GAAGC,MAAM,GAAG,IAAI;IACrL,IAAIgF,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACub,aAAa;MAC1B,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFtB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC2gB,aAAa;MAC1B;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAChG,2BAA2B,GAAG,YAAY;IAE7C,IAAI6E,IAAI,GAAG,2DAA2D,GAAGE,WAAW,GAAG,IAAI;IAC3F,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACyV,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFwE,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC6a,OAAO;MACpB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACD,uBAAuB,GAAG,UAAUC,OAAO,EAAEC,KAAK,EAAEC,OAAO,EAAE;IAEhE,IAAIyE,IAAI,GAAG,uDAAuD,GAAGE,WAAW,GAAG,iBAAiB,GAAG7E,OAAO,GAAG,cAAc,GAAGC,KAAK,GAAG,gBAAgB,GAAGC,OAAO,GAAG,IAAI;IAC3K,IAAImE,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACyV,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFwE,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC6a,OAAO;MACpB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACG,oBAAoB,GAAG,UAAUH,OAAO,EAAE;IAE7C,IAAI2E,IAAI,GAAG,oDAAoD,GAAGE,WAAW,GAAG,gBAAgB,GAAG7E,OAAO,GAAG,IAAI;IACjH,IAAIqE,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAAC/F,mBAAmB,GAAG,UAAU/M,aAAa,EAAE4M,SAAS,EAAEC,MAAM,EAAEG,UAAU,EAAE;IAEjF,IAAImF,IAAI,GAAG,mDAAmD,GAAGE,WAAW,GAAG,sBAAsB,GAAGrS,aAAa,GAAG,eAAe,GAAG4M,SAAS,GAAG,cAAc,GAAGC,MAAM,GAAG,iBAAiB,GAAGG,UAAU,GAAG,GAAG;IACpN,IAAI6E,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACwb,KAAK;MAClB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFvB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC4gB,KAAK;MAClB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAGD,IAAI,CAACtG,qBAAqB,GAAG,UAAUb,YAAY,EAAEwB,YAAY,EAAEZ,UAAU,EAAE;IAE7E,IAAImF,IAAI,GAAG,qDAAqD,GAAGE,WAAW,GAAG,cAAc,GAAGjG,YAAY,GAAG,iBAAiB,GAAGwB,YAAY,GAAG,gBAAgB,GAAGZ,UAAU,GAAG,GAAG;IACvL,IAAI6E,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;;EAED;EACA,IAAI,CAACjF,gBAAgB,GAAG,UAAUC,aAAa,EAAEvB,OAAO,EAAEyB,OAAO;EAAE;EACnE;IACE,IAAImE,IAAI,GAAG,iDAAiD,GAAGE,WAAW,GAAG,uBAAuB,GAAGvE,aAAa,GAAG,eAAe,GAAGvB,OAAO,GAAG,cAAc,GAAGyB,OAAO,GAAG,GAAG;IACjL,IAAI6D,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACyb,MAAM;MACnB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFxB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC6gB,MAAM;MACnB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;;EAED;EACA,IAAI,CAACvF,mBAAmB,GAAG,UAAUC,SAAS,EAAEC,QAAQ,EAAEJ,OAAO,EAAE;IACjE,IAAIoE,IAAI,GAAG,mDAAmD,GAAGE,WAAW,GAAG,eAAe,GAAGnE,SAAS,GAAG,kBAAkB,GAAGC,QAAQ,GAAG,eAAe,GAAGJ,OAAO,GAAG,GAAG;IAC5K,IAAI8D,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC0b,UAAU;MACvB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFzB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC8gB,UAAU;MACvB;MAEA,OAAO,IAAI;IACb;EACF,CAAC;;EAED;EACA,IAAI,CAACrF,mBAAmB,GAAG,UAAUN,aAAa,EAAEC,OAAO,EAAEM,aAAa,EAAE;IAC1E,IAAI8D,IAAI,GAAG,mDAAmD,GAAGE,WAAW,GAAG,sBAAsB,GAAGvE,aAAa,GAAG,mBAAmB,GAAGO,aAAa,GAAG,eAAe,GAAGN,OAAO,GAAG,GAAG;IAC7L,IAAI8D,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC2b,SAAS;MACtB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF1B,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC+gB,SAAS;MACtB;MAEA,OAAO,IAAI;IACb;EACF,CAAC;;EAED;EACA,IAAI,CAACC,iBAAiB,GAAG,UAAUnF,SAAS,EAAEjC,OAAO,EAAEmC,OAAO,EAAEC,SAAS,EAAE;IACzE,IAAIwD,IAAI,GAAG,gDAAgD,GAAGE,WAAW,GAAG,uBAAuB,GAAG7D,SAAS,GAAG,eAAe,GAAGE,OAAO,GAAG,cAAc,GAAGnC,OAAO,GAAG,eAAe,GAAGoC,SAAS,GAAG,GAAG;IAC1M,IAAIkD,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAClE,oBAAoB,GAAG,YAAY;IACtC,IAAIuD,IAAI,GAAG,oDAAoD,GAAGE,WAAW,GAAG,IAAI;IACpF,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+V,aAAa;MAC1B,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFkE,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmb,aAAa;MAC1B;MAEA,OAAO,EAAE;IACX;EACF,CAAC;EAED,IAAI,CAACe,iBAAiB,GAAG,UAAUC,MAAM,EAAE;IACzC,IAAIqD,IAAI,GAAG,gDAAgD,GAAGE,WAAW,GAAG,gBAAgB,GAAGvD,MAAM,GAAG,IAAI;IAC5G,IAAI+C,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+V,aAAa;MAC1B,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFkE,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmb,aAAa;MAC1B;MAEA,OAAO,EAAE;IACX;EACF,CAAC;EAED,IAAI,CAACiB,cAAc,GAAG,UAAUD,MAAM,EAAE;IACtC,IAAIqD,IAAI,GAAG,6CAA6C,GAAGE,WAAW,GAAG,gBAAgB,GAAGvD,MAAM,GAAG,IAAI;IACzG,IAAI+C,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAC9D,mBAAmB,GAAG,UAAUF,MAAM,EAAE;IAC3C,IAAIqD,IAAI,GAAG,mDAAmD,GAAGE,WAAW,GAAG,eAAe,GAAGvD,MAAM,GAAG,IAAI;IAC9G,IAAI+C,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAC7D,cAAc,GAAG,UAAUH,MAAM,EAAEI,KAAK,EAAE;IAC7C,IAAIiD,IAAI,GAAG,8CAA8C,GAAGE,WAAW,GAAG,eAAe,GAAGvD,MAAM,GAAG,eAAe,GAAGI,KAAK,GAAG,IAAI;IACnI,IAAI2C,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACmb,MAAM;MACnB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFlB,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACugB,MAAM;MACnB;MAEA,OAAO,IAAI;IACb;EACF,CAAC;EAED,IAAI,CAAC/D,gBAAgB,GAAG,UAAUL,MAAM,EAAEI,KAAK,EAAEE,SAAS,EAAEjC,YAAY,EAAE;IAExE,IAAIgF,IAAI,GAAG,gDAAgD,GAAGE,WAAW,GAAG,eAAe,GAAGvD,MAAM,GAAG,mBAAmB,GAAG3B,YAAY,GAAG,cAAc,GAAG+B,KAAK,GAAG,eAAe,GAAGE,SAAS,GAAG,IAAI;IACvM,IAAIyC,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MACA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAACjD,mBAAmB,GAAG,UAAUP,IAAI,EAAEJ,KAAK,EAAEE,SAAS,EAAEjC,YAAY,EAAE;IACzE,IAAIgF,IAAI,GAAG,kDAAkD,GAAGE,WAAW,GAAG,cAAc,GAAG/C,IAAI,GAAG,oBAAoB,GAAGnC,YAAY,GAAG,cAAc,GAAG+B,KAAK,GAAG,eAAe,GAAGE,SAAS,GAAG,IAAI;IACvM,IAAIyC,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,CAACxE,sBAAsB,GAAG,UAAU+D,WAAW,EAAE7D,SAAS,EAAEC,EAAE,EAAEC,OAAO,EAAEnC,OAAO,EAAEoC,SAAS,EAAE;IAC/F,IAAIwD,IAAI,GAAG,sDAAsD,GAAGE,WAAW,GAAG,sBAAsB,GAAG7D,SAAS,GAAG,eAAe,GAAGC,EAAE,GAAG,eAAe,GAAGC,OAAO,GAAG,cAAc,GAAGnC,OAAO,GAAG,eAAe,GAAGoC,SAAS,GAAG,GAAG;IACtO,IAAIkD,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC6b,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF5B,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACihB,OAAO;MACpB;MAEA,OAAO,IAAI;IACb;EACF,CAAC;EACD,IAAI,CAACvE,cAAc,GAAG,UAAUb,SAAS,EAAEc,IAAI,EAAE/C,OAAO,EAAE;IACxD,IAAI4F,IAAI,GAAG,8CAA8C,GAAGE,WAAW,GAAG,sBAAsB,GAAG7D,SAAS,GAAG,aAAa,GAAGc,IAAI,GAAG,eAAe,GAAG/C,OAAO,GAAG,GAAG;IACrK,IAAIsF,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAACvD,0BAA0B,GAAG,UAAUf,SAAS,EAAEc,IAAI,EAAEE,QAAQ,EAAEC,uBAAuB,EAAEC,MAAM,EAAEC,uBAAuB,EAAEC,IAAI,EAAE;IACrI,IAAIuC,IAAI,GAAG,0DAA0D,GAAGE,WAAW,GAAG,sBAAsB,GAAG7D,SAAS,GAAG,aAAa,GAAGc,IAAI,GAAG,eAAe,GAAGE,QAAQ,GAAG,kBAAkB,GAAGC,uBAAuB,GAAG,eAAe,GAAGC,MAAM,GAAG,qBAAqB,GAAGC,uBAAuB,GAAG,aAAa,GAAGC,IAAI,GAAG,GAAG;IACrU,IAAIiC,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAChD,kBAAkB,GAAG,UAAUnb,MAAM,EAAE;IAC1C,IAAIwd,IAAI,GAAG,6CAA6C,GAAGE,WAAW,GAAG,iBAAiB,GAAG1d,MAAM,GAAG,GAAG;IACzG,IAAIkd,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC6b,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF5B,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACihB,OAAO;MACpB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAC7D,kBAAkB,GAAG,UAAUC,UAAU,EAAEC,OAAO,EAAEC,QAAQ,EAAEzV,IAAI,EAAE;IACvE,IAAI0X,IAAI,GAAG,kDAAkD,GAAGE,WAAW,GAAG,mBAAmB,GAAGrC,UAAU,GAAG,eAAe,GAAGC,OAAO,CAAC7N,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,gBAAgB,GAAG8N,QAAQ,CAAC9N,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,YAAY,GAAG3H,IAAI,GAAG,GAAG;IAClP,IAAIoX,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAC3C,kBAAkB,GAAG,UAAUH,UAAU,EAAEC,OAAO,EAAEC,QAAQ,EAAEzV,IAAI,EAAE;IACvE,IAAI0X,IAAI,GAAG,kDAAkD,GAAGE,WAAW,GAAG,mBAAmB,GAAGrC,UAAU,GAAG,eAAe,GAAGC,OAAO,CAAC7N,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,gBAAgB,GAAG8N,QAAQ,CAAC9N,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,YAAY,GAAG3H,IAAI,GAAG,GAAG;IAClP,IAAIoX,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAC1C,kBAAkB,GAAG,UAAUJ,UAAU,EAAEzV,MAAM,EAAE;IACtD,IAAI4X,IAAI,GAAG,kDAAkD,GAAGE,WAAW,GAAG,mBAAmB,GAAGrC,UAAU,GAAG,eAAe,GAAGzV,MAAM,GAAG,IAAI;IAChJ,IAAIsX,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC6b,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF5B,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACihB,OAAO;MACpB;MAEA,OAAO,IAAI;IACb;EACF,CAAC;EAED,IAAI,CAACvD,kBAAkB,GAAG,UAAUL,UAAU,EAAEzV,MAAM,EAAE;IACtD,IAAI4X,IAAI,GAAG,kDAAkD,GAAGE,WAAW,GAAG,mBAAmB,GAAGrC,UAAU,GAAG,eAAe,GAAGzV,MAAM,GAAG,IAAI;IAChJ,IAAIsX,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC6b,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF5B,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACihB,OAAO;MACpB;MAEA,OAAO,IAAI;IACb;EACF,CAAC;;EAED;EACA,IAAI,CAACtD,kBAAkB,GAAG,UAAUuD,cAAc,EAAE;IAClD,IAAItD,WAAW,GAAGsD,cAAc,CAACzR,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;IACrD,IAAI+P,IAAI,GAAG,+DAA+D,GAAG5B,WAAW,GAAG,IAAI;IAC/F,IAAIsB,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC6b,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF5B,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACihB,OAAO;MACpB;MAEA,OAAO,IAAI;IACb;EACF,CAAC;EAED,IAAI,CAACpD,eAAe,GAAG,UAAUC,WAAW,EAAE;IAC5C,IAAI0B,IAAI,GAAG,+CAA+C,GAAGE,WAAW,GAAG,eAAe,GAAG5B,WAAW,GAAG,IAAI;IAC/G,IAAIoB,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EACD;EACA,IAAI,CAACpC,mBAAmB,GAAG,YAAY;IACrC,IAAIyB,IAAI,GAAG,mDAAmD,GAAGE,WAAW,GAAG,IAAI;IACnF,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC0C,IAAI;MACjB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFuX,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC8H,IAAI;MACjB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAACkW,qBAAqB,GAAG,YAAY;IACvC,IAAIwB,IAAI,GAAG,qDAAqD,GAAGE,WAAW,GAAG,IAAI;IACrF,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAAClC,aAAa,GAAG,YAAY;IAC/B,IAAIuB,IAAI,GAAG,6CAA6C,GAAGE,WAAW,GAAG,IAAI;IAC7E,IAAIR,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACsS,KAAK;MAClB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF2H,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAAC0X,KAAK;MAClB;MAEA,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EAED,IAAI,CAACwG,YAAY,GAAG,UAAUC,QAAQ,EAAEC,MAAM,EAAEpc,MAAM,EAAE;IACtD,IAAIwd,IAAI,GAAG,4CAA4C,GAAGE,WAAW,GAAG,iBAAiB,GAAGvB,QAAQ,GAAG,cAAc,GAAGC,MAAM,GAAG,YAAY,GAAGpc,MAAM,GAAG,GAAG;IAC5J,IAAIkd,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC6b,OAAO;MACpB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACF5B,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACihB,OAAO;MACpB;IACF;EACF,CAAC;EAED,IAAI,CAAC5C,aAAa,GAAG,UAAUF,QAAQ,EAAEC,MAAM,EAAE5b,IAAI,EAAE;IACrD,IAAIgd,IAAI,GAAG,6CAA6C,GAAGE,WAAW,GAAG,iBAAiB,GAAGvB,QAAQ,GAAG,cAAc,GAAGC,MAAM,GAAG,aAAa,GAAG5b,IAAI,GAAG,IAAI;IAC7J,IAAI0c,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;IACF;EACF,CAAC;EAED,IAAI,CAAC7B,cAAc,GAAG,UAAUH,QAAQ,EAAEnc,MAAM,EAAEuc,SAAS,EAAEC,UAAU,EAAE;IACvE,IAAIgB,IAAI,GAAG,8CAA8C,GAAGE,WAAW,GAAG,gBAAgB,GAAGvB,QAAQ,GAAG,eAAe,GAAGnc,MAAM,GAAG,gBAAgB,GAAGuc,SAAS,GAAG,gBAAgB,GAAGC,UAAU,GAAG,GAAG;IACrM,IAAIU,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;IACF;EACF,CAAC;EAED,IAAI,CAAC1B,cAAc,GAAG,UAAUN,QAAQ,EAAE;IACxC,IAAIqB,IAAI,GAAG,8CAA8C,GAAGE,WAAW,GAAG,gBAAgB,GAAGvB,QAAQ,GAAG,IAAI;IAC5G,IAAIe,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;IACF;EACF,CAAC;;EAED;EACA,IAAI,CAACgB,aAAa,GAAG,UAAUC,QAAQ,EAAEC,IAAI,EAAE;IAC7C,IAAI7B,IAAI,GAAG,gEAAgE,GAAG4B,QAAQ,GAAG,YAAY,GAAGC,IAAI,GAAG,GAAG;IAClH,IAAInC,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;IACF;EACF,CAAC;EAED,IAAI,CAACmB,gBAAgB,GAAG,YAAY;IAClC,IAAI9B,IAAI,GAAG,sDAAsD;IACjE,IAAIN,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAAC+a,GAAG;MAChB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFd,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACmgB,GAAG;MAChB;IACF;EACF,CAAC;EAED,IAAI,CAACoB,cAAc,GAAG,UAAUC,QAAQ,EAAE;IACxC,IAAIhC,IAAI,GAAG,iEAAiE,GAAGgC,QAAQ,GAAG,IAAI;IAC9F,IAAItC,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAIE,OAAO,GAAG,EAAE;MAChB,IAAI;QACFA,OAAO,GAAGC,MAAM,CAACG,IAAI,CAAC;MACxB,CAAC,CAAC,OAAO1f,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;MACX;MAGA,IAAIsf,OAAO,CAACpd,MAAM,GAAG,CAAC,EAAE;QACtB,IAAIoD,GAAG,GAAGrG,IAAI,CAAC,GAAG,GAAGqgB,OAAO,GAAG,GAAG,CAAC;QACnC,OAAOha,GAAG,CAACqc,QAAQ;MACrB,CAAC,MAAM;QACL,OAAO,CAAC,CAAC;MAEX;IACF,CAAC,MAAM;MACL,IAAI;QACFpC,MAAM,CAACG,IAAI,CAAC;MACd,CAAC,CACD,OAAO1f,CAAC,EAAE;QACR,OAAO,CAAC,CAAC;MACX;MAEA,IAAIE,GAAG,GAAG+f,aAAa,CAAC,CAAC;MACzB,IAAI/f,GAAG,EAAE;QACP,OAAOA,GAAG,CAACyhB,QAAQ;MACrB;IACF;EACF,CAAC;AACH;;;;;;;;;;;;;;;;;;;;;;UC1oGA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;;;;;;;;;;;;;;;;ACAA;AACA;;AAEA;AACA;AACA,MAAM,KAAuC,EAAE,yBAQ5C;;AAEH;AACA;AACA,IAAI,qBAAuB;AAC3B;AACA;;AAEA;AACA,kDAAe,IAAI;;;ACtBnB,IAAIC,MAAM,GAAG,SAASA,MAAMA,CAAA,EAAE;EAAC,IAAIC,GAAG,GAAC,IAAI;IAACC,EAAE,GAACD,GAAG,CAACE,KAAK,CAACD,EAAE;EAAC,OAAOA,EAAE,CAAC,WAAW,EAAC;IAACE,KAAK,EAAC;MAAC,OAAO,EAACH,GAAG,CAACI,KAAK;MAAC,SAAS,EAACJ,GAAG,CAACK,MAAM;MAAC,OAAO,EAAC,OAAO;MAAC,gBAAgB,EAAC;IAAI,CAAC;IAACC,EAAE,EAAC;MAAC,OAAO,EAACN,GAAG,CAACO;IAAW;EAAC,CAAC,EAAC,CAACN,EAAE,CAAC,cAAc,EAAC;IAACO,GAAG,EAAC,YAAY;IAACL,KAAK,EAAC;MAAC,GAAG,EAAC,EAAE;MAAC,GAAG,EAAC,EAAE;MAAC,GAAG,EAAC,GAAG;MAAC,GAAG,EAAC,GAAG;MAAC,MAAM,EAACH,GAAG,CAACS,IAAI;MAAC,UAAU,EAACT,GAAG,CAACU,QAAQ;MAAC,aAAa,EAACV,GAAG,CAACW;IAAU,CAAC;IAACL,EAAE,EAAC;MAAC,SAAS,EAACN,GAAG,CAACY,SAAS;MAAC,MAAM,EAACZ,GAAG,CAACa,MAAM;MAAC,OAAO,EAACb,GAAG,CAACc,OAAO;MAAC,SAAS,EAACd,GAAG,CAACe,SAAS;MAAC,WAAW,EAACf,GAAG,CAACgB;IAAW;EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;AACld,CAAC;AACD,IAAIC,eAAe,GAAG,EAAE;;;;;;ACyBxB,0EAAe;EACfjE,IAAA;EACAkE,KAAA;IACAd,KAAA;MACAja,IAAA,EAAAmG,MAAA;MACA6U,OAAA;IACA;IACAd,MAAA;MACAla,IAAA,EAAAib,OAAA;MACAD,OAAA;IACA;EACA;EACAtgB,KAAA;IACA;MACA6f,QAAA;MACAC,UAAA;MACAU,YAAA;IACA;EACA;EACAC,QAAA;IACAb,KAAA;MACA,MAAArK,IAAA;MACA,SAAAha,CAAA,MAAAA,CAAA,MAAAA,CAAA;QACAga,IAAA,CAAA/Z,IAAA,eAAAD,CAAA;MACA;MACA,OAAAga,IAAA;IACA;EACA;EACAmL,KAAA;IACAlB,OAAAmB,MAAA;MACA;MACAA,MAAA,IACA,KAAAC,KAAA,CAAAC,UAAA,IACA,KAAAD,KAAA,CAAAC,UAAA,CAAAC,KAAA,IACA,KAAAF,KAAA,CAAAC,UAAA,CAAAC,KAAA;IACA;EACA;EACAC,QAAA;EACAC,OAAA;IACAjB,UAAA;MACA,KAAAkB,KAAA;IACA;IACAjB,OAAA;IACAC,QAAA;IACAC,UAAA;IACAC,YAAA;IACAT,YAAA;MACA,KAAAuB,KAAA;IACA;EACA;AACA,CAAC;;AC7E4P,CAAC,qFAAe,qCAAG,EAAC;;ACAjR;;;;;AEAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AC/FgG;AACvC;AACL;AACpD,CAA+F;;;AAG/F;AACsG;AACtG,gBAAgB,kBAAU;AAC1B,EAAE,gDAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe;;ACnBf,IAAI/B,iEAAM,GAAG,SAASA,MAAMA,CAAA,EAAE;EAAC,IAAIC,GAAG,GAAC,IAAI;IAACC,EAAE,GAACD,GAAG,CAACE,KAAK,CAACD,EAAE;EAAC,OAAOA,EAAE,CAAC,KAAK,EAAC;IAACO,GAAG,EAAC,UAAU;IAA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","sources":["webpack://yc-ui2/webpack/universalModuleDefinition","webpack://yc-ui2/./node_modules/core-js/internals/a-callable.js","webpack://yc-ui2/./node_modules/core-js/internals/an-object.js","webpack://yc-ui2/./node_modules/core-js/internals/array-includes.js","webpack://yc-ui2/./node_modules/core-js/internals/array-set-length.js","webpack://yc-ui2/./node_modules/core-js/internals/classof-raw.js","webpack://yc-ui2/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://yc-ui2/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://yc-ui2/./node_modules/core-js/internals/create-property-descriptor.js","webpack://yc-ui2/./node_modules/core-js/internals/define-built-in.js","webpack://yc-ui2/./node_modules/core-js/internals/define-global-property.js","webpack://yc-ui2/./node_modules/core-js/internals/descriptors.js","webpack://yc-ui2/./node_modules/core-js/internals/document-all.js","webpack://yc-ui2/./node_modules/core-js/internals/document-create-element.js","webpack://yc-ui2/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://yc-ui2/./node_modules/core-js/internals/engine-user-agent.js","webpack://yc-ui2/./node_modules/core-js/internals/engine-v8-version.js","webpack://yc-ui2/./node_modules/core-js/internals/enum-bug-keys.js","webpack://yc-ui2/./node_modules/core-js/internals/export.js","webpack://yc-ui2/./node_modules/core-js/internals/fails.js","webpack://yc-ui2/./node_modules/core-js/internals/function-bind-native.js","webpack://yc-ui2/./node_modules/core-js/internals/function-call.js","webpack://yc-ui2/./node_modules/core-js/internals/function-name.js","webpack://yc-ui2/./node_modules/core-js/internals/function-uncurry-this.js","webpack://yc-ui2/./node_modules/core-js/internals/get-built-in.js","webpack://yc-ui2/./node_modules/core-js/internals/get-method.js","webpack://yc-ui2/./node_modules/core-js/internals/global.js","webpack://yc-ui2/./node_modules/core-js/internals/has-own-property.js","webpack://yc-ui2/./node_modules/core-js/internals/hidden-keys.js","webpack://yc-ui2/./node_modules/core-js/internals/ie8-dom-define.js","webpack://yc-ui2/./node_modules/core-js/internals/indexed-object.js","webpack://yc-ui2/./node_modules/core-js/internals/inspect-source.js","webpack://yc-ui2/./node_modules/core-js/internals/internal-state.js","webpack://yc-ui2/./node_modules/core-js/internals/is-array.js","webpack://yc-ui2/./node_modules/core-js/internals/is-callable.js","webpack://yc-ui2/./node_modules/core-js/internals/is-forced.js","webpack://yc-ui2/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://yc-ui2/./node_modules/core-js/internals/is-object.js","webpack://yc-ui2/./node_modules/core-js/internals/is-pure.js","webpack://yc-ui2/./node_modules/core-js/internals/is-symbol.js","webpack://yc-ui2/./node_modules/core-js/internals/length-of-array-like.js","webpack://yc-ui2/./node_modules/core-js/internals/make-built-in.js","webpack://yc-ui2/./node_modules/core-js/internals/math-trunc.js","webpack://yc-ui2/./node_modules/core-js/internals/object-define-property.js","webpack://yc-ui2/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://yc-ui2/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://yc-ui2/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://yc-ui2/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://yc-ui2/./node_modules/core-js/internals/object-keys-internal.js","webpack://yc-ui2/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://yc-ui2/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://yc-ui2/./node_modules/core-js/internals/own-keys.js","webpack://yc-ui2/./node_modules/core-js/internals/require-object-coercible.js","webpack://yc-ui2/./node_modules/core-js/internals/shared-key.js","webpack://yc-ui2/./node_modules/core-js/internals/shared-store.js","webpack://yc-ui2/./node_modules/core-js/internals/shared.js","webpack://yc-ui2/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://yc-ui2/./node_modules/core-js/internals/to-absolute-index.js","webpack://yc-ui2/./node_modules/core-js/internals/to-indexed-object.js","webpack://yc-ui2/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://yc-ui2/./node_modules/core-js/internals/to-length.js","webpack://yc-ui2/./node_modules/core-js/internals/to-object.js","webpack://yc-ui2/./node_modules/core-js/internals/to-primitive.js","webpack://yc-ui2/./node_modules/core-js/internals/to-property-key.js","webpack://yc-ui2/./node_modules/core-js/internals/try-to-string.js","webpack://yc-ui2/./node_modules/core-js/internals/uid.js","webpack://yc-ui2/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://yc-ui2/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://yc-ui2/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://yc-ui2/./node_modules/core-js/internals/well-known-symbol.js","webpack://yc-ui2/./node_modules/core-js/modules/es.array.push.js","webpack://yc-ui2/./src/components/YcCA/mTokenPluginBeijin/xtxasyn.js","webpack://yc-ui2/./src/components/YcCA/mTokenPlugin/mToken.js","webpack://yc-ui2/webpack/bootstrap","webpack://yc-ui2/webpack/runtime/compat get default export","webpack://yc-ui2/webpack/runtime/define property getters","webpack://yc-ui2/webpack/runtime/global","webpack://yc-ui2/webpack/runtime/hasOwnProperty shorthand","webpack://yc-ui2/webpack/runtime/make namespace object","webpack://yc-ui2/webpack/runtime/publicPath","webpack://yc-ui2/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue","webpack://yc-ui2/src/components/YcSlideVerify/index.vue","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue?7fa0","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue?359a","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue?cddb","webpack://yc-ui2/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue?0582","webpack://yc-ui2/./src/components/YcCustomerService/index.vue","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?88e2","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue","webpack://yc-ui2/./src/components/YcCustomerService/chatMixin.js","webpack://yc-ui2/src/components/YcCustomerService/chat.vue","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue?e8eb","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue?fc16","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue?1f05","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue?40e1","webpack://yc-ui2/src/components/YcCustomerService/index.vue","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?bf2a","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?aaa3","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?0e28","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?cfd4","webpack://yc-ui2/./src/components/YcQuestion/index.vue","webpack://yc-ui2/src/components/YcQuestion/index.vue","webpack://yc-ui2/./src/components/YcQuestion/index.vue?6b41","webpack://yc-ui2/./src/components/YcQuestion/index.vue?b7c1","webpack://yc-ui2/./src/components/YcQuestion/index.vue?78f7","webpack://yc-ui2/./src/components/YcQuestion/index.vue?c0dd","webpack://yc-ui2/./src/components/YcCA/index.vue","webpack://yc-ui2/./src/components/YcCA/index.vue?14d4","webpack://yc-ui2/./src/components/YcCA/mTokenPlugin/base64.js","webpack://yc-ui2/./src/components/YcCA/mTokenPlugin/hunca_mToken_core2.js","webpack://yc-ui2/./src/components/YcCA/mTokenPluginBeijin/formateTime.js","webpack://yc-ui2/src/components/YcCA/index.vue","webpack://yc-ui2/./src/components/YcCA/index.vue?2187","webpack://yc-ui2/./src/components/YcCA/index.vue?8a92","webpack://yc-ui2/./src/components/YcCA/index.vue?aa07","webpack://yc-ui2/./src/components/YcCA/index.vue?ea8d","webpack://yc-ui2/./src/packages/index.js","webpack://yc-ui2/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"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[\"yc-ui2\"] = factory();\n\telse\n\t\troot[\"yc-ui2\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn ","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","/* eslint-disable no-unused-vars */\r\n/*\r\n --------------------------------------------------------------\r\n * FileName:xtxasyn.js\r\n * This Javascript provides asynchronous interfaces\r\n * Support bjca client version 3.4.1 and later\r\n * Author:BJCA-zys\r\n * Date: 2021-05-06\r\n *\r\n --------------------------------------------------------------\r\n */\r\n \r\n(function() {\r\nif (typeof xtxasyn === 'undefined') {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn = {};\r\n}\r\n})();\r\n\r\n// initialize xtxasyn hashMap object\r\n(function() {\r\n\r\nfunction XTXAsynHashMap(){\r\n this.map = {};\r\n}\r\n\r\nXTXAsynHashMap.prototype = {\r\n put : function(key , value){\r\n this.map[key] = value;\r\n },\r\n\r\n get : function(key){\r\n // eslint-disable-next-line no-prototype-builtins\r\n if(this.map.hasOwnProperty(key)){\r\n return this.map[key];\r\n }\r\n return null;\r\n },\r\n \r\n remove : function(key){\r\n // eslint-disable-next-line no-prototype-builtins\r\n if(this.map.hasOwnProperty(key)){\r\n return delete this.map[key];\r\n }\r\n return false;\r\n },\r\n \r\n removeAll : function(){\r\n this.map = {};\r\n },\r\n \r\n keySet : function(){\r\n var _keys = [];\r\n for(var i in this.map){\r\n _keys.push(i);\r\n }\r\n return _keys;\r\n }\r\n};\r\n\r\nXTXAsynHashMap.prototype.constructor = XTXAsynHashMap;\r\n\r\n// eslint-disable-next-line no-undef\r\nxtxasyn.HashMap = XTXAsynHashMap;\r\n})();\r\n\r\n// initialize xtxasyn util object\r\n(function() {\r\n\r\nfunction initUtilObject(xtxasyn) {\r\n\r\n var util = xtxasyn.util = xtxasyn.util || {};\r\n \r\n util.checkBrowserISIE = function() {\r\n return (!!window.ActiveXObject || 'ActiveXObject' in window) ? true : false;\r\n }\r\n \r\n util.checkLocationIsHttps = function() {\r\n return 'https:' == document.location.protocol ? true: false;\r\n }\r\n \r\n util.evalFunction = function (func) {\r\n if (typeof func === 'function') {\r\n return func;\r\n } else if (typeof func === 'string') {\r\n // eslint-disable-next-line no-undef\r\n cb = eval(func);\r\n } else {\r\n return null;\r\n }\r\n }\r\n \r\n util.consolelog = function(param) {\r\n if (window.console == undefined || window.console.log == undefined) {\r\n return;\r\n }\r\n console.log(param);\r\n }\r\n \r\n util.isEmpty = function(param) {\r\n if (!param) {\r\n return true;\r\n }\r\n if (typeof param == 'string' && param == \"\") {\r\n return true;\r\n }\r\n \r\n return false;\r\n }\r\n\r\n util.loadIECtl = function(clsid, ctlName, checkFunc) {\r\n if (!util.checkBrowserISIE()) {\r\n return null;\r\n }\r\n var ctl = document.getElementById(ctlName);\r\n if (ctl) {\r\n return ctl;\r\n }\r\n try {\r\n var loadObjString = '<object id=\"' + ctlName + '\" classid=\"CLSID:' + clsid + '\" style=\"HEIGHT:0px; WIDTH:0px\">';\r\n loadObjString += '</object>';\r\n document.write(loadObjString);\r\n if (checkFunc != null && checkFunc != \"\" && eval(ctlName + \".\" + checkFunc) == undefined) {\r\n return null; \r\n }\r\n } catch (e) {\r\n util.consolelog(e);\r\n return null;\r\n }\r\n return document.getElementById(ctlName);\r\n }\r\n\r\n util.getAutoExecFunctionString = function (func) {\r\n var ret = \"(\";\r\n ret += func.toString();\r\n ret += \")()\";\r\n \r\n return ret;\r\n }\r\n\r\n util.attachIEEvent = function(ctlName, eventName, eventFunc) {\r\n var ctl;\r\n if (typeof ctlName === 'string') {\r\n ctl = eval(ctlName);\r\n } else {\r\n ctl = ctlName;\r\n }\r\n eventName = eventName.toLowerCase();\r\n\r\n var cb = util.evalFunction(eventFunc);\r\n if (cb == null) {\r\n return;\r\n }\r\n\r\n if (ctl.attachEvent) {\r\n ctl.attachEvent(eventName, cb);\r\n } else { // IE11 not support attachEvent, and addEventListener do not work well, so addEvent ourself\r\n var handler = document.createElement(\"script\");\r\n handler.setAttribute(\"for\", ctlName);\r\n handler.setAttribute(\"event\", eventName);\r\n var eventScript = util.getAutoExecFunctionString(eventFunc);\r\n handler.appendChild(document.createTextNode(eventScript));\r\n document.getElementsByTagName(\"head\")[0].appendChild(handler);\r\n }\r\n }\r\n\r\n util.loadWebSocketCtl = function(wsUrl, wssUrl) {\r\n if (xtxasyn.wsObject) {\r\n return xtxasyn.wsObject;\r\n }\r\n var url;\r\n if (util.checkLocationIsHttps()) {\r\n url = \"wss://\" + wssUrl;\r\n } else {\r\n url = \"ws://\" + wsUrl;\r\n }\r\n \r\n var wsObject = {\r\n socket : undefined,\r\n wsMessageQueue : new xtxasyn.HashMap(),\r\n wsMessageQueueId : 0,\r\n wsEventQueue : new xtxasyn.HashMap(),\r\n wsURL : url,\r\n wsCacheMessage : []\r\n };\r\n xtxasyn.wsObject = wsObject;\r\n xtxasyn.wsObject.wsEventQueue.put(\"onusbkeychange\", util.evalFunction(xtxasyn.custom.defaultUsbkeyChange));\r\n \r\n try {\r\n wsObject.socket = new WebSocket(url); \r\n } catch (e) {\r\n util.consolelog(e);\r\n return null;\r\n }\r\n \r\n // eslint-disable-next-line no-unused-vars\r\n wsObject.socket.onopen = function(evt) {\r\n xtxasyn.util.consolelog(\"open websocket[\" + url + \"] ok...\");\r\n xtxasyn.SOF_GetVersion(function(ret) {\r\n util.consolelog(\"SOF_GetVersion:(\" + ret.retVal + \")\");\r\n });\r\n while (xtxasyn.wsObject.wsCacheMessage.length > 0) {\r\n var tb_send = xtxasyn.wsObject.wsCacheMessage.shift();\r\n //alert(tb_send);\r\n xtxasyn.wsObject.socket.send(tb_send);\r\n }\r\n }\r\n // eslint-disable-next-line no-unused-vars\r\n wsObject.socket.onclose = function(evt) {\r\n util.consolelog(\"websocket[\" + url + \"] closed, reopen it...\");\r\n xtxasyn.wsObject = undefined;\r\n xtxasyn.XTXAppWebSocket = xtxasyn.util.loadWebSocketCtl(wsUrl, wssUrl);\r\n };\r\n wsObject.socket.onmessage = function(evt) {\r\n // eslint-disable-next-line no-unused-vars\r\n var eventCmd = false;\r\n if (xtxasyn.util.isEmpty(evt.data)) {\r\n util.consolelog(\"onmessage evt.data is NULL or empty!!!\");\r\n return;\r\n }\r\n try {\r\n var res = JSON.parse(evt.data);\r\n var cmdId = undefined;\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (res.hasOwnProperty('call_cmd_id')) {\r\n cmdId = res['call_cmd_id'];\r\n } else {\r\n util.consolelog(\"return JSON not include call_cmd_id!!!\");\r\n return;\r\n }\r\n \r\n var retVal = undefined;\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (res.hasOwnProperty('retValue')) {\r\n retVal = res['retValue'];\r\n // eslint-disable-next-line no-prototype-builtins\r\n } else if (res.hasOwnProperty('retVal')) {\r\n retVal = res['retVal'];\r\n }\r\n \r\n var methodName = undefined;\r\n var eventName = cmdId.toLowerCase();\r\n var execFunc = xtxasyn.wsObject.wsEventQueue.get(eventName);\r\n if (execFunc && typeof execFunc == 'function') { // event\r\n execFunc(retVal);\r\n } else { // function\r\n var messageQueue = xtxasyn.wsObject.wsMessageQueue.get(cmdId);\r\n if (!messageQueue || !messageQueue.method) {\r\n util.consolelog(\"can't find call_cmd_id[\" + res['call_cmd_id'] + \"]'s method name!!!\");\r\n return;\r\n }\r\n methodName = messageQueue.method;\r\n execFunc = messageQueue.cb;\r\n if (!execFunc || typeof execFunc != 'function') {\r\n util.consolelog(\"can't find call_cmd_id[\" + res['call_cmd_id'] + \"]'s call back function!!!\");\r\n return;\r\n }\r\n var ctx = messageQueue.ctx;\r\n ctx = ctx || {returnType:\"string\"};\r\n var ret;\r\n if (ctx.returnType == \"bool\"){\r\n if (typeof(retVal) == 'string') {\r\n ret = retVal == \"true\" ? true : false;\r\n } else {\r\n ret = retVal;\r\n }\r\n if (ret == undefined) {\r\n ret = false;\r\n }\r\n } else if (ctx.returnType == \"number\"){\r\n if (typeof(retVal) == 'string') {\r\n ret = Number(retVal);\r\n } else {\r\n ret = retVal;\r\n }\r\n if (ret == undefined) {\r\n ret = -1;\r\n }\r\n } else{\r\n ret = retVal;\r\n if (ret == undefined) {\r\n ret = \"\";\r\n }\r\n }\r\n if (res.token) {\r\n //alert(res.token);\r\n xtxasyn.custom.setToken(res.token);\r\n }\r\n if (((methodName == 'SOF_Login' || methodName == 'SOF_LoginEx') && !ret) || (methodName == 'SOF_Logout' && ret)) {\r\n xtxasyn.custom.setToken(\"\");\r\n } \r\n var retObj = {retVal:ret, ctx:ctx};\r\n execFunc(retObj);\r\n xtxasyn.wsObject.wsMessageQueue.remove(cmdId);\r\n }\r\n } catch (e) {\r\n return;\r\n }\r\n };\r\n wsObject.socket.onerror = function(evt) { \r\n xtxasyn.util.consolelog(evt.data);\r\n };\r\n \r\n return wsObject;\r\n }\r\n \r\n util.attachWebSocketEvent = function(wsObject, eventName, eventFunc) {\r\n if (wsObject == null) {\r\n return;\r\n }\r\n wsObject.wsEventQueue.put(eventName.toLowerCase(), util.evalFunction(eventFunc));\r\n }\r\n \r\n util.callWebSocketMethod = function (wsObject, clsid, method, cb, ctx, returnType, argsArray) {\r\n if (wsObject == null) {\r\n return;\r\n }\r\n wsObject.wsMessageQueueId++;\r\n if (typeof(cb) == 'function'){\r\n ctx = ctx || {};\r\n ctx.returnType = returnType;\r\n var messageQueue = {cb:cb, ctx:ctx, method:method};\r\n wsObject.wsMessageQueue.put('i_' + wsObject.wsMessageQueueId, messageQueue);\r\n }\r\n\r\n var sendArray = {\r\n 'call_cmd_id' : 'i_' + wsObject.wsMessageQueueId,\r\n 'CLSID' : clsid,\r\n 'xtx_func_name' : method,\r\n 'func' : method,\r\n 'URL' : window.location.href\r\n };\r\n if (arguments.length > 6) {\r\n for (var i = 1; i <= argsArray.length; i++) {\r\n var strParam = \"param_\" + i;\r\n sendArray[strParam] = argsArray[i - 1];\r\n }\r\n sendArray[\"param\"] = argsArray;\r\n }\r\n var token = xtxasyn.custom.getToken();\r\n if (token && token != \"\") {\r\n sendArray.token = token;\r\n }\r\n if (wsObject.socket.readyState == WebSocket.OPEN) {\r\n wsObject.socket.send(JSON.stringify(sendArray));\r\n } else if (wsObject.socket.readyState == WebSocket.CONNECTING) {\r\n // The websocket connection has not been successfully created. \r\n // If the html page already has requested data, we will put it in the cache(wsObject.wsCacheMessage),\r\n // and then send the data one by one after the connection is successfully created.\r\n wsObject.wsCacheMessage.push(JSON.stringify(sendArray));\r\n } else {\r\n xtxasyn.util.consolelog(\"Can't connect to WebSocket server[\" + wsObject.wsURL + \"]!!!\");\r\n }\r\n }\r\n\r\n util.SynToAsyn = function(retVal, cb, ctx)\r\n {\r\n if (typeof cb == 'function') {\r\n var retObj = {retVal:retVal, ctx:ctx};\r\n cb(retObj);\r\n } \r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-undef\r\nreturn initUtilObject(xtxasyn);\r\n})();\r\n\r\n// initialize index page and other custom action\r\n(function() {\r\n \r\nfunction initCustomActions(xtxasyn) {\r\n var custom = xtxasyn.custom = xtxasyn.custom || {};\r\n \r\n custom.softCertListID = \"\";\r\n custom.hardCertListID = \"\";\r\n custom.allCertListID = \"\";\r\n custom.loginCertID = \"\";\r\n custom.logoutFunc = null;\r\n custom.UsbkeyChangeFunc = null;\r\n custom.loginToken = \"\";\r\n \r\n custom.errorReportFunc = function(msg) {\r\n alert(msg);\r\n }\r\n \r\n custom.setAutoLogoutParameter = function(strCertID, logoutFunc) {\r\n var custom = xtxasyn.custom;\r\n custom.loginCertID = strCertID;\r\n custom.logoutFunc = logoutFunc;\r\n }\r\n\r\n custom.clearDropList = function(dropListId) {\r\n if (dropListId == \"\") {\r\n return;\r\n }\r\n\r\n var obj = document.getElementById(dropListId);\r\n if (obj == undefined) {\r\n obj = eval(dropListId);\r\n } \r\n if (obj == undefined) {\r\n return;\r\n }\r\n\r\n var i, n = obj.length;\r\n for (i = 0; i < n; i++) {\r\n obj.remove(0);\r\n }\r\n }\r\n\r\n custom.pushOneDropListBox = function(userListArray, strListID) \r\n {\r\n var obj = document.getElementById(strListID);\r\n if (obj == undefined) {\r\n obj = eval(strListID);\r\n }\r\n if (obj == undefined) {\r\n return;\r\n }\r\n \r\n for (var i = 0; i < userListArray.length; i++) {\r\n var certObj = userListArray[i];\r\n var objItem = new Option(certObj.certName, certObj.certID);\r\n obj.options.add(objItem);\r\n } \r\n return;\r\n }\r\n\r\n custom.pushUserListToAllDroplist = function(retObj) {\r\n var custom = xtxasyn.custom;\r\n\r\n custom.clearDropList(custom.softCertListID);\r\n custom.clearDropList(custom.hardCertListID);\r\n custom.clearDropList(custom.allCertListID);\r\n\r\n var strUserList = retObj.retVal;\r\n var allListArray = [];\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n var i = strUserList.indexOf(\"&&&\");\r\n if (i <= 0 ) {\r\n break;\r\n }\r\n var strOneUser = strUserList.substring(0, i);\r\n var strName = strOneUser.substring(0, strOneUser.indexOf(\"||\"));\r\n var strCertID = strOneUser.substring(strOneUser.indexOf(\"||\") + 2, strOneUser.length);\r\n allListArray.push({certName:strName, certID:strCertID});\r\n \r\n if (custom.hardCertListID != \"\") {\r\n xtxasyn.GetDeviceInfo(strCertID, 7, function(retObj) {\r\n if (retObj.retVal == \"HARD\") {\r\n custom.pushOneDropListBox([retObj.ctx], custom.hardCertListID);\r\n }\r\n }, {certName:strName, certID:strCertID});\r\n }\r\n \r\n if (custom.softCertListID != \"\") {\r\n xtxasyn.GetDeviceInfo(strCertID, 7, function(retObj) {\r\n if (retObj.retVal == \"SOFT\") {\r\n custom.pushOneDropListBox([retObj.ctx], custom.softCertListID);\r\n }\r\n }, {certName:strName, certID:strCertID});\r\n }\r\n var len = strUserList.length;\r\n strUserList = strUserList.substring(i + 3, len);\r\n }\r\n\r\n if (custom.allCertListID != \"\") {\r\n custom.pushOneDropListBox(allListArray, custom.allCertListID);\r\n }\r\n }\r\n \r\n custom.setUserCertList = function(certListId, certType) {\r\n var custom = xtxasyn.custom;\r\n\r\n if (certType == CERT_TYPE_ALL || certType == undefined) {\r\n custom.allCertListID = certListId;\r\n }\r\n \r\n if (certType == CERT_TYPE_HARD) {\r\n custom.hardCertListID = certListId;\r\n }\r\n \r\n if (certType == CERT_TYPE_SOFT) {\r\n custom.softCertListID = certListId;\r\n }\r\n xtxasyn.SOF_GetUserList(custom.pushUserListToAllDroplist);\r\n }\r\n \r\n custom.setOnUsbKeyChangeCallBack = function(callback) {\r\n var custom = xtxasyn.custom;\r\n custom.UsbkeyChangeFunc = callback;\r\n }\r\n \r\n custom.setErrorReportFunc = function(errFunc) {\r\n var custom = xtxasyn.custom;\r\n custom.errorReportFunc = errFunc;\r\n }\r\n\r\n custom.autoLogoutCallBack = function(retObj) {\r\n var custom = xtxasyn.custom;\r\n if (retObj.retVal.indexOf(custom.loginCertID) <= 0) {\r\n custom.logoutFunc();\r\n }\r\n }\r\n \r\n custom.defaultUsbkeyChange = function() {\r\n var custom = xtxasyn.custom;\r\n xtxasyn.SOF_GetUserList(custom.pushUserListToAllDroplist);\r\n \r\n if (typeof custom.UsbkeyChangeFunc == 'function') {\r\n custom.UsbkeyChangeFunc();\r\n }\r\n\r\n if (custom.loginCertID != \"\" && typeof custom.logoutFunc == 'function') {\r\n xtxasyn.SOF_GetUserList(custom.autoLogoutCallBack);\r\n }\r\n }\r\n \r\n custom.getToken = function() {\r\n return custom.loginToken;\r\n }\r\n \r\n custom.setToken = function(token) {\r\n custom.loginToken = token;\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-undef\r\nreturn initCustomActions(xtxasyn);\r\n})();\r\n\r\n// initialize xtxappcom object\r\n(function() {\r\n \r\nfunction initXTXAppCOM(xtxasyn) {\r\n var util = xtxasyn.util;\r\n var custom = xtxasyn.custom; \r\n\r\n xtxasyn.XTXAppCOM = util.loadIECtl(xtxasyn.xtx_clsid, \"XTXAppObj\", \"SOF_GetVersion()\");\r\n if (xtxasyn.XTXAppCOM == null) {\r\n custom.errorReportFunc(\"加载XTXAppCOM控件失败,请确认已正确安装BJCA证书应用环境!\");\r\n return false;\r\n }\r\n var XTXAppCOM = xtxasyn.XTXAppCOM;\r\n \r\n util.attachIEEvent(\"XTXAppObj\", \"onUsbkeyChange\", xtxasyn.custom.defaultUsbkeyChange);\r\n \r\n // get key pic interface\r\n var GetPicObj = util.loadIECtl(xtxasyn.getpic_clsid, \"GetPicObj\", \"Hash('0')\");\r\n if (GetPicObj == null) {\r\n //custom.errorReportFunc(\"加载GetKeyPic控件失败,请确认已正确安装GetKeyPic控件!\");\r\n } else {\r\n XTXAppCOM.GetPic = function(strCertID) {\r\n return GetPicObj.GetPic(strCertID);\r\n }\r\n XTXAppCOM.Hash = function(inData) {\r\n return GetPicObj.Hash(inData);\r\n }\r\n XTXAppCOM.ConvertPicFormat = function(inData, type) {\r\n return GetPicObj.ConvertPicFormat(inData, type);\r\n }\r\n XTXAppCOM.ConvertGif2Jpg = function(inData) {\r\n return GetPicObj.ConvertGif2Jpg(inData);\r\n }\r\n XTXAppCOM.GetPic1 = function(strCertID) {\r\n return GetPicObj.GetPic1(strCertID);\r\n }\r\n XTXAppCOM.ConvertPicSize = function(strPicture, w, h) {\r\n return GetPicObj.ConvertPicSize(strPicture, w, h);\r\n }\r\n }\r\n \r\n // xtxversion interface\r\n var XTXVersionOBJ = util.loadIECtl(xtxasyn.xtx_version_clsid, \"XTXVersionOBJ\", \"GetEnvVersion()\");\r\n if (XTXVersionOBJ == null) {\r\n //custom.errorReportFunc(\"加载XTXVersion控件失败,请确认已正确安装证书应用环境!\");\r\n } else {\r\n XTXAppCOM.GetEnvVersion = function() {\r\n return XTXVersionOBJ.GetEnvVersion();\r\n }\r\n } \r\n \r\n return true;\r\n}\r\n\r\nfunction initXTXAppWebSocket(xtxasyn) { \r\n xtxasyn.XTXAppWebSocket = xtxasyn.util.loadWebSocketCtl(\"127.0.0.1:21051/xtxapp/\", \"127.0.0.1:21061/xtxapp/\");\r\n if (xtxasyn.XTXAppWebSocket == null) {\r\n // eslint-disable-next-line no-undef\r\n custom.errorReportFunc(\"连接XTXAppCOM服务失败,请确认已正确安装BJCA证书应用环境!\");\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction initXTXAppObject(xtxasyn) {\r\n var util = xtxasyn.util;\r\n xtxasyn.xtx_clsid = \"3F367B74-92D9-4C5E-AB93-234F8A91D5E6\";\r\n xtxasyn.getpic_clsid = \"3BC3C868-95B5-47ED-8686-E0E3E94EF366\";\r\n xtxasyn.xtx_version_clsid = \"574887FB-22A5-488B-A49C-2CF25F56BE68\";\r\n var getImplmentFunction;\r\n\r\n if (util.checkBrowserISIE()) { // IE\r\n if (!initXTXAppCOM(xtxasyn)) {\r\n return false;\r\n }\r\n getImplmentFunction = function(methodInfo) {\r\n if (methodInfo.inParams == '') { // 0 input param\r\n window[methodInfo.funcName] = new Function('cb', 'ctx', \r\n 'xtxasyn.util.SynToAsyn(xtxasyn.XTXAppCOM.' + methodInfo.funcName + '(), cb, ctx);');\r\n } else {\r\n window[methodInfo.funcName] = new Function(methodInfo.inParams, 'cb', 'ctx', \r\n 'xtxasyn.util.SynToAsyn(xtxasyn.XTXAppCOM.' + methodInfo.funcName + '(' + methodInfo.inParams + '), cb, ctx);');\r\n }\r\n }\r\n } else { // other brower\r\n if (!initXTXAppWebSocket(xtxasyn)) {\r\n return false;\r\n }\r\n getImplmentFunction = function(methodInfo) {\r\n if (methodInfo.inParams == '') { // 0 input param\r\n window[methodInfo.funcName] = new Function('cb, ctx', \r\n \"xtxasyn.util.callWebSocketMethod(xtxasyn.XTXAppWebSocket, '\" + methodInfo.clsid + \"', '\" + \r\n methodInfo.funcName + \"', cb, ctx, '\" + methodInfo.outParamType + \"', []);\");\r\n } else {\r\n window[methodInfo.funcName] = new Function(methodInfo.inParams + ', cb, ctx', \r\n \"xtxasyn.util.callWebSocketMethod(xtxasyn.XTXAppWebSocket, '\" + methodInfo.clsid + \"', '\" + \r\n methodInfo.funcName + \"', cb, ctx, '\" + methodInfo.outParamType + \"', [\" + methodInfo.inParams + \"]);\");\r\n }\r\n }\r\n }\r\n\r\n var export_functions = [\r\n {funcName:'SOF_SetSignMethod', inParams:'SignMethod', outParamType:'number', clsid:xtxasyn.xtx_clsid, aliasName:'SetSignMethod'},\r\n {funcName:'SOF_GetSignMethod', inParams:'', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SetEncryptMethod', inParams:'EncryptMethod', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetEncryptMethod', inParams:'', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetUserList', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetUserList'},\r\n {funcName:'SOF_ExportUserCert', inParams:'CertID', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetSignCert'},\r\n {funcName:'SOF_Login', inParams:'CertID, PassWd', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifyUserPIN'},\r\n {funcName:'SOF_GetPinRetryCount', inParams:'CertID', outParamType:'number', clsid:xtxasyn.xtx_clsid, aliasName:'GetUserPINRetryCount'},\r\n {funcName:'SOF_ChangePassWd', inParams:'CertID, oldPass, newPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'ChangeUserPassword'},\r\n {funcName:'SOF_GetCertInfo', inParams:'Cert, type', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetCertBasicinfo'},\r\n {funcName:'SOF_GetCertInfoByOid', inParams:'Cert, Oid', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetExtCertInfoByOID'},\r\n {funcName:'SOF_SignData', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'SignedData'},\r\n {funcName:'SOF_VerifySignedData', inParams:'Cert, InData, SignValue', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifySignedData'},\r\n {funcName:'SOF_SignFile', inParams:'CertID, InFile', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'SOF_SignFile'},\r\n {funcName:'SOF_VerifySignedFile', inParams:'Cert, InFile, SignValue', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifySignFile'},\r\n {funcName:'SOF_EncryptData', inParams:'Cert, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'EncodeP7Enveloped'},\r\n {funcName:'SOF_DecryptData', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'DecodeP7Enveloped'},\r\n {funcName:'SOF_EncryptFile', inParams:'Cert, InFile, OutFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_DecryptFile', inParams:'CertID, InFile, OutFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignMessage', inParams:'dwFlag, CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedMessage', inParams:'MessageData, InData', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifyDatabyP7'},\r\n {funcName:'SOF_GetInfoFromSignedMessage', inParams:'SignedMessage, type', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignDataXML', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedDataXML', inParams:'InData', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetXMLSignatureInfo', inParams:'XMLSignedData, type', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GenRandom', inParams:'RandomLen', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GenerateRandom'},\r\n {funcName:'SOF_PubKeyEncrypt', inParams:'Cert, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'PubKeyEncrypt'},\r\n {funcName:'SOF_PriKeyDecrypt', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'PriKeyDecrypt'},\r\n {funcName:'SOF_SecertSegment', inParams:'Secert, m, n, k', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SecertRecovery', inParams:'Seg', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetLastError', inParams:'', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetDeviceCount', inParams:'', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetAllDeviceSN', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetDeviceSNByIndex', inParams:'iIndex', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetDeviceInfo', inParams:'sDeviceSN, iType', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ChangeAdminPass', inParams:'sDeviceSN, sOldPass, sNewPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'UnlockUserPass', inParams:'sDeviceSN, sAdminPass, sNewUserPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GenerateKeyPair', inParams:'sDeviceSN, sContainerName, iKeyType, bSign', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ExportPubKey', inParams:'sDeviceSN, sContainerName, bSign', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportSignCert', inParams:'sDeviceSN, sContainerName, sCert', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportEncCert', inParams:'sDeviceSN, sContainerName, sCert, sPriKeyCipher', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ReadFile', inParams:'sDeviceSN, sFileName', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'readFile'},\r\n {funcName:'WriteFile', inParams:'sDeviceSN, sFileName, sContent, bPrivate', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'writeFile'},\r\n {funcName:'IsContainerExist', inParams:'sDeviceSN, sContainerName', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'DeleteContainer', inParams:'sDeviceSN, sContainerName', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ExportPKCS10', inParams:'sDeviceSN, sContainerName, sDN, bSign', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'InitDevice', inParams:'sDeviceSN, sAdminPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'AddSignInfo', inParams:'sUserPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetVersion', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ExportExChangeUserCert', inParams:'CertID', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetExchCert'},\r\n {funcName:'SOF_ValidateCert', inParams:'Cert', outParamType:'number', clsid:xtxasyn.xtx_clsid, aliasName:'ValidateCert'},\r\n {funcName:'GetENVSN', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SetENVSN', inParams:'sDeviceSN, sEnvsn', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'IsDeviceExist', inParams:'sDeviceSN', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetContainerCount', inParams:'sDeviceSN', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SymEncryptData', inParams:'sKey, indata', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'EncryptData'},\r\n {funcName:'SOF_SymDecryptData', inParams:'sKey, indata', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'DecryptData'},\r\n {funcName:'SOF_SymEncryptFile', inParams:'sKey, inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'EncryptFile'},\r\n {funcName:'SOF_SymDecryptFile', inParams:'sKey, inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'DecryptFile'},\r\n {funcName:'SOF_GetLastErrMsg', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_Base64Encode', inParams:'sIndata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_Base64Decode', inParams:'sIndata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashData', inParams:'hashAlg, sInData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashFile', inParams:'hashAlg, inFile', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'UnlockUserPassEx', inParams:'sDeviceSN, sAdminPin, sNewUserPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'DeleteOldContainer', inParams:'sDeviceSN', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'WriteFileEx', inParams:'sDeviceSN, sFileName, sContent', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ReadFileEx', inParams:'sDeviceSN, sFileName', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'WriteFileBase64', inParams:'sDeviceSN, sFileName, sContent', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'DeleteFile', inParams:'sDeviceSN, sFileName', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EncryptDataEx', inParams:'Cert, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'Base64EncodeFile', inParams:'sInFile', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetRetryCount', inParams:'CertID', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetAllContainerName', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'CreateSoftDevice', inParams:'sDeviceSN, sLabel', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'DeleteSoftDevice', inParams:'sDeviceSN, sPasswd', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'EnableSoftDevice', inParams:'enable, sDeviceSN', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SoftDeviceBackup', inParams:'sDeviceSN, sPasswd', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SoftDeviceRestore', inParams:'sDeviceSN, sPasswd, sInFilePath', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_Logout', inParams:'CertID', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'Logout'},\r\n {funcName:'SetUserConfig', inParams:'type, strConfig', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignByteData', inParams:'CertID, byteLen', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedByteData', inParams:'Cert, byteLen, SignValue', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_GetChallengeCode', inParams:'sCertID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportEncCertEx', inParams:'sDeviceSN, sContainerName, sCert, sPriKeyCipher, ulSymAlg', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetCertEntity', inParams:'sCert', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetCertEntity'},\r\n {funcName:'SOF_HMAC', inParams:'hashid, key, indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignDataByPriKey', inParams:'sPriKey, sCert, sInData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportKeyCertToSoftDevice', inParams:'sDeviceSN, sContainerName, sPriKey, sCert, bSign', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'InitDeviceEx', inParams:'sDeviceSN, sAdminPass, sUserPin, sKeyLabel, adminPinMaxRetry, userPinMaxRetry', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SelectFile', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignHashData', inParams:'CertID, b64ashData, hashAlg', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'SignHashData'},\r\n {funcName:'SOF_VerifySignedHashData', inParams:'Cert, b64ashData, SignValue, hashAlg', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifySignedHashData'},\r\n {funcName:'CheckSoftDeviceEnv', inParams:'', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportPfxToDevice', inParams:'sDeviceSN, sContainerName, bSign, strPfx, strPfxPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashDataEx', inParams:'hashAlg, sInData, sCert, sID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashFileEx', inParams:'hashAlg, inFile, sCert, sID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetDeviceCountEx', inParams:'type', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetAllDeviceSNEx', inParams:'type', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_UpdateCert', inParams:'CertID, type', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OpenSpecifiedFolder', inParams:'backupFilePath', outParamType:'', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_GetChallengeCodeEx', inParams:'sCertID, szAccount, money', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'Base64DecodeFile', inParams:'sInData, sFilePath', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'EnumFilesInDevice', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_Halt', inParams:'sCertID', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSGenREQ', inParams:'b64Hash, hashAlg, bReqCert, policyID, b64Nonce, b64Extension', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSCompareNonce', inParams:'b64TSReq, b64TSAResp', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSGenPDFSignature', inParams:'b64TSAResp, b64OriPDFSignature', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSVerifyPDFSignature', inParams:'b64TSPDFSignature', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSGetPDFSignatureInfo', inParams:'b64TSPDFSignature, iType', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_GetState', inParams:'sCertID, bCert', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_GetSyncCode', inParams:'sCertID, ChallengeCode', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_IsLogin', inParams:'CertID', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_LoginEx', inParams:'CertID, PassWd, updateFlag', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'EnumSupportDeviceList', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ExportPfxFromDevice', inParams:'sDeviceSN, sContainerName, bSign, strPfxPass', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignHashMessage', inParams:'CertID, InHashData, hashAlg', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ExportPfxToFile', inParams:'sDeviceSN, sContainerName, bSign, strPfxPass', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignAPK', inParams:'CertID, strOriSignature', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'YZT_GenerateKeyPair', inParams:'sDeviceSN, sContainerName, iKeyTypeRSA, iKeyTypeSM2', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'YZT_ExportPubKey', inParams:'sDeviceSN, sContainerName, bSign', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'YZT_ImportSignCert', inParams:'sDeviceSN, sContainerName, sRSACert, sSM2Cert', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'YZT_ImportEncCert', inParams:'sDeviceSN, sContainerName, sRSACert, sRSAPriKeyCipher, ulRSASymAlg, sSM2Cert, sSM2PriKeyCipher, ulSM2SymAlg', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ListenUKey', inParams:'Parm', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EnableLoginWindow', inParams:'Parm', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignEnvelope', inParams:'CertID, Cert, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_UnSignEnvelope', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_MAKExportPKCS10', inParams:'sDeviceSN, iKeyType, sDN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_MAKImportSignEncCert', inParams:'sDeviceSN, sSignCert, sEncCert, sPriKeyCipher', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_IssueDAKCert', inParams:'sDeviceSN, iKeyType, sDN', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_InfoCollect', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_GetBioInfo', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetLastLoginCertID', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ReadESealData', inParams:'CertID, ulKeyIndex, ulKeyAlgId, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ReadKFXESealData', inParams:'CertID, ulKeyIndex, ulKeyAlgId, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SymDecryptFileToData', inParams:'sKey, inFile', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignMessageBase64', inParams:'dwFlag, CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedMessageBase64', inParams:'MessageData, InData', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedHashMessage', inParams:'MessageData, InHashData', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignDataBase64', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedDataBase64', inParams:'Cert, InData, SignValue', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashDataExBase64', inParams:'hashAlg, sInData, sCert, sID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetProductVersion', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_UpdateCertEx', inParams:'CertID, PassWd', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetLastSignDataCertID', inParams:'CertID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_SetUserConfig', inParams:'CertID, type, strConfig', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_InvokeCommand', inParams:'CertID, bstrCommand', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ImportSymmKey', inParams:'CertID, ulKeyIndex, InData, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_WriteESealData', inParams:'CertID, InData, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_Encrypt', inParams:'CertID, ulKeyIndex, ulKeyAlgId, IVData, DivCount, DivComponent, InData, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_Decrypt', inParams:'CertID, ulKeyIndex, ulKeyAlgId, IVData, DivCount, DivComponent, InData, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_Mac', inParams:'CertID, ulKeyIndex, ulKeyAlgId, IVData, DivCount, DivComponent, InData, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_PriKeyDecryptEx', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_ReadESealData', inParams:'CertID, ulKeyIndex, ulKeyAlgId, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_WriteESealData', inParams:'CertID, InData, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'EnumESeal', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'GetPicture', inParams:'bstrConName', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_SignEnvelopeFile', inParams:'CertID, Cert, InFile, OutFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_UnSignEnvelopeFile', inParams:'CertID, InFile, OutFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_EncryptFile', inParams:'CertID, Cert, InFile, OutFile, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_DecryptFile', inParams:'CertID, InFile, OutFile, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\t\t\r\n {funcName:'GetPic', inParams:'bstrConName', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'Hash', inParams:'inData', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'ConvertPicFormat', inParams:'inData, type', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'ConvertGif2Jpg', inParams:'inData', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'GetPic1', inParams:'bstrConName', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'ConvertPicSize', inParams:'bstrPic, w, h', outParamType:'string', clsid:xtxasyn.getpic_clsid},\t\t\r\n {funcName:'GetEnvVersion', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_version_clsid},\r\n\t\t{funcName:'InitDeviceWithParam', inParams:'sDeviceSN, sAppName, sAdminPass, sUserPin, sKeyLabel, adminPinMaxRetry, userPinMaxRetry, createFileRights', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_SignDataEx', inParams:'CertID, InData,signFlag', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedDataEx', inParams:'Cert, InData, SignValue,signFlag', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_SymEncryptDataEx', inParams:'sKey,sIV,indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SymDecryptDataEx', inParams:'sKey,sIV,indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t\r\n\t\t// 3.8 added \r\n\t\t{funcName:'SOFX_InvokeCommand', inParams:'pluginName,InParam', outParamType:'string', clsid:xtxasyn.xtx_clsid},\t\r\n\t\t\r\n\t\t{funcName:'SOF_SymEncryptFileEx', inParams:'sKey,sIV,inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SymDecryptFileEx', inParams:'sKey,sIV,inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_SymDecryptFileToDataEx', inParams:'sKey,sIV,inFile', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_SymEncryptDataWithPadding', inParams:'sKey,sIV,padding,indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOFX_SymDecryptDataWithPadding', inParams:'sKey,sIV,padding,indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_SymEncryptFileWithPadding', inParams:'sKey,sIV,padding,inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOFX_SymDecryptFileWithPadding', inParams:'sKey,sIV,padding,inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_VerifySignedDataWithID', inParams:'Cert, InData, SignValue,userId', outParamType:'bool', clsid:xtxasyn.xtx_clsid}, \r\n {funcName:'SOFX_VerifySignedFileWithID', inParams:'Cert, InFile, SignValue,userId', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n ];\r\n\r\n for (var i = 0; i < export_functions.length; i++) {\r\n getImplmentFunction(export_functions[i]);\r\n xtxasyn[export_functions[i].funcName] = window[export_functions[i].funcName];\r\n if (export_functions[i].aliasName) {\r\n window[export_functions[i].aliasName] = window[export_functions[i].funcName];\r\n xtxasyn[export_functions[i].aliasName] = window[export_functions[i].funcName];\r\n }\r\n \r\n }\r\n\r\n return true;\r\n}\r\n\r\n// eslint-disable-next-line no-undef\r\nreturn initXTXAppObject(xtxasyn);\r\n})();\r\n\r\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////// EXPORT VAR AND FUNCTIONS ///////////////////////////////////////////\r\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// const var\r\nvar CERT_TYPE_HARD = 1;\r\nvar CERT_TYPE_SOFT = 2;\r\nvar CERT_TYPE_ALL = 3;\r\n\r\n// set auto logout parameters\r\nfunction SetAutoLogoutParameter(strCertID, logoutFunc) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.setAutoLogoutParameter(strCertID, logoutFunc);\r\n}\r\n\r\n// set user cert list id\r\nfunction SetUserCertList(strListID, certType) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.setUserCertList(strListID, certType);\r\n}\r\n\r\n// set custom usbkeychange callback\r\nfunction SetOnUsbKeyChangeCallBack(callback) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.setOnUsbKeyChangeCallBack(callback);\r\n}\r\n\r\n// set custom alert function\r\nfunction SetAlertFunction(custom_alert) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.setErrorReportFunc(custom_alert);\r\n}\r\n\r\n// get custom userlogin token \r\nfunction GetLoginToken() {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.custom.getToken();\r\n}\r\n\r\nfunction SetLoginToken(tokenData) {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.custom.setToken(tokenData);\r\n}\r\n\r\nfunction GetUserListByType(strType, cb, ctx) { // strType is 'HARD' or 'SOFT'\r\n // eslint-disable-next-line no-undef\r\n SOF_GetUserList(function(retObj) {\r\n var strUserList = retObj.retVal;\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n var i = strUserList.indexOf(\"&&&\");\r\n if (i <= 0 ) {\r\n break;\r\n }\r\n var strOneUser = strUserList.substring(0, i);\r\n var strName = strOneUser.substring(0, strOneUser.indexOf(\"||\"));\r\n var strCertID = strOneUser.substring(strOneUser.indexOf(\"||\") + 2, strOneUser.length);\r\n GetDeviceType(strCertID, function(retObj) {\r\n if (retObj.retVal == retObj.ctx.ctx.type) {\r\n if (typeof retObj.ctx.ctx.cb == 'function') {\r\n retObj.ctx.ctx.cb({retVal:retObj.ctx.userList, ctx:retObj.ctx.ctx.ctx})\r\n }\r\n }\r\n }, {userList:strOneUser, ctx:retObj.ctx});\r\n var len = strUserList.length;\r\n strUserList = strUserList.substring(i + 3, len);\r\n }\r\n }, {type:strType, cb:cb, ctx:ctx});\r\n}\r\n\r\n//get usbKey user list\r\nfunction GetUserList_USBKey(cb, ctx) {\r\n return GetUserListByType(\"HARD\", cb, ctx);\r\n}\r\n\r\n//get soft user list\r\nfunction GetUserList_Soft() {\r\n // eslint-disable-next-line no-undef\r\n return GetUserListByType(\"SOFT\", cb, ctx);\r\n}\r\n\r\n//sign data with pkcs7 format\r\nfunction SignByP7(strCertID, strInData, bDetach) {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.SOF_SignMessage(bDetach ? 1 : 0, strCertID, strInData);\r\n}\r\n\r\n//get symmitric key length \r\n//because xtx and secxv2 secx default symmitric alg is no equal\r\nfunction GetSymKeyLength() {\r\n return 24; \r\n}\r\n\r\n//get device type return SOFT or HARD\r\nfunction GetDeviceType(strCertID) {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.GetDeviceInfo(strCertID, 7); \r\n}\r\n\r\n// calculate file's hash\r\nfunction HashFile(strFilePath) {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.SOF_HashFile(2/*sha1*/, strFilePath);\r\n}\r\n\r\nfunction ParseDateString(strDate) {\r\n var strYear = strDate.substring(0, 4);\r\n var strMonth = strDate.substring(4, 6);\r\n var strDay = strDate.substring(6, 8);\r\n var strHour = strDate.substring(8, 10);\r\n var strMin = strDate.substring(10, 12);\r\n var strSecond = strDate.substring(12, 14);\r\n var RtnDate = new Date();\r\n RtnDate.setFullYear(Number(strYear), Number(strMonth) - 1, Number(strDay));\r\n RtnDate.setHours(Number(strHour));\r\n RtnDate.setMinutes(Number(strMin));\r\n RtnDate.setSeconds(Number(strSecond));\r\n return RtnDate;\r\n}\r\n\r\nfunction __loginSignRandomCallBack(retObj) {\r\n if (retObj.retVal == \"\") {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"客户端签名失败!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n var objForm = retObj.ctx.objForm;\r\n objForm.UserSignedData.value = retObj.retVal;\r\n // eslint-disable-next-line no-undef\r\n objForm.LoginToken.value = xtxasyn.custom.getToken();\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(true);\r\n } else {\r\n objForm.action = retObj.ctx.action;\r\n objForm.submit();\r\n }\r\n}\r\n\r\nfunction __loginVerifyServerSignatureCallBack(retObj) {\r\n if (!retObj.retVal) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"验证服务器端信息失败!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n \r\n var strCertID = retObj.ctx.certID;\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_SignData(strCertID, strServerRan, __loginSignRandomCallBack, retObj.ctx);\r\n}\r\nfunction __loginCheckCertValidNotAfter(retObj) {\r\n var notAfterDate = ParseDateString(retObj.retVal);\r\n var milliseconds = notAfterDate.getTime() - new Date().getTime();\r\n if (milliseconds < 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书已过期,请尽快到北京数字证书认证中心办理证书更新手续!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line no-undef\r\n days = parseInt(milliseconds / (1000*60*60*24));\r\n // eslint-disable-next-line no-undef\r\n if (days > 0 && days <= 60) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书还有\" + days + \"天过期\\n请您尽快到北京数字证书认证中心办理证书更新手续!\");\r\n // eslint-disable-next-line no-undef\r\n } else if (days == 0) { // 证书有效期天数小于1天\r\n var hours = parseInt(milliseconds / (1000*60*60));\r\n if (hours > 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书还有\" + hours + \"小时过期\\n请您尽快到北京数字证书认证中心办理证书更新手续!\");\r\n }\r\n // 证书有效期小于1小时\r\n var minutes = parseInt(milliseconds / (1000*60));\r\n if (minutes > 1) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书还有\" + minutes + \"分钟过期\\n请您尽快到北京数字证书认证中心办理证书更新手续!\");\r\n } else {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书已过期,请尽快到北京数字证书认证中心办理证书更新手续!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_VerifySignedData(strServerCert, strServerRan, strServerSignedData, \r\n __loginVerifyServerSignatureCallBack, retObj.ctx);\r\n}\r\n\r\nfunction __loginCheckCertValidNotBefore(retObj) {\r\n var notBeforeDate = ParseDateString(retObj.retVal);\r\n var days = parseInt((notBeforeDate.getTime() - new Date().getTime()) / (1000*60*60*24));\r\n if (days > 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书尚未生效!距离生效日期还剩\" + days + \"天!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n var strUserCert = retObj.ctx.objForm.UserCert.value;\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_GetCertInfo(strUserCert, 12, __loginCheckCertValidNotAfter, retObj.ctx);\r\n}\r\n\r\nfunction __loginGetSignCertCallBack(retObj) {\r\n var strUserCert = retObj.retVal;\r\n if (strUserCert == \"\") {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"导出用户证书失败!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n retObj.ctx.objForm.UserCert.value = strUserCert;\r\n \r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_GetCertInfo(strUserCert, 11, __loginCheckCertValidNotBefore, retObj.ctx);\r\n}\r\n\r\nfunction __loginGetPINRetryCallBack(retObj) {\r\n var retryCount = Number(retObj.retVal);\r\n if (retryCount > 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"校验证书密码失败!您还有\" + retryCount + \"次机会重试!\");\r\n } else if (retryCount == 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书密码已被锁死,请联系BJCA进行解锁!\");\r\n } else {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"登录失败!\");\r\n }\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb();\r\n }\r\n}\r\n\r\nfunction __loginVerifyPINCallBack(retObj) {\r\n var strCertID = retObj.ctx.certID;\r\n var objForm = retObj.ctx.objForm;\r\n if (!retObj.retVal) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_GetPinRetryCount(strCertID, __loginGetPINRetryCallBack, retObj.ctx);\r\n return;\r\n }\r\n objForm.CertID.value = strCertID;\r\n objForm.ContainerName.value = strCertID; \r\n \r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_ExportUserCert(strCertID, __loginGetSignCertCallBack, retObj.ctx);\r\n}\r\n\r\n//Form login\r\nfunction Login(formName, strCertID, strPin, strAction, custom_cb) {\r\n var objForm = eval(formName);\r\n if (objForm == null) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"表单错误!\");\r\n if (typeof(custom_cb) === 'function') {\r\n custom_cb(false);\r\n }\r\n return;\r\n }\r\n if (strCertID == null || strCertID == \"\") {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"请输入证书密码!\");\r\n if (typeof(custom_cb) === 'function') {\r\n custom_cb(false);\r\n }\r\n return;\r\n }\r\n if (strPin == null || strPin == \"\") {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"请输入证书密码!\");\r\n if (typeof(custom_cb) === 'function') {\r\n custom_cb(false);\r\n }\r\n return;\r\n }\r\n\r\n //Add a hidden item ...\r\n if (objForm.UserSignedData == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"UserSignedData\\\" value=\\\"\\\">\");\r\n }\r\n if (objForm.UserCert == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"UserCert\\\" value=\\\"\\\">\");\r\n }\r\n if (objForm.CertID == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"CertID\\\" value=\\\"\\\">\");\r\n }\r\n if (objForm.ContainerName == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"ContainerName\\\" value=\\\"\\\">\");\r\n } \r\n if (objForm.LoginToken == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"LoginToken\\\" value=\\\"\\\">\");\r\n }\r\n\r\n var ctx = {certID:strCertID, objForm:objForm, action:strAction, cb:custom_cb};\r\n \r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_Login(strCertID, strPin, __loginVerifyPINCallBack, ctx);\r\n\r\n return;\r\n}\r\n","/*******************************************************\r\n*\r\n* 使用此JS脚本之前请先仔细阅读帮助文档!\r\n*\r\n* @author Fuly\r\n* @version 3.2.3\r\n* @date 2020/12/23\r\n*\r\n**********************************************************/\r\n\r\n\r\n\r\nvar split;\r\n\r\n// Avoid running twice; that would break the `nativeSplit` reference\r\n// eslint-disable-next-line no-unused-vars\r\nsplit = split || function (undef) {\r\n\r\n var nativeSplit = String.prototype.split,\r\n compliantExecNpcg = /()??/.exec(\"\")[1] === undef, // NPCG: nonparticipating capturing group\r\n self;\r\n\r\n self = function (str, separator, limit) {\r\n // If `separator` is not a regex, use `nativeSplit`\r\n if (Object.prototype.toString.call(separator) !== \"[object RegExp]\") {\r\n return nativeSplit.call(str, separator, limit);\r\n }\r\n var output = [],\r\n flags = (separator.ignoreCase ? \"i\" : \"\") +\r\n (separator.multiline ? \"m\" : \"\") +\r\n (separator.extended ? \"x\" : \"\") + // Proposed for ES6\r\n (separator.sticky ? \"y\" : \"\"), // Firefox 3+\r\n lastLastIndex = 0,\r\n // Make `global` and avoid `lastIndex` issues by working with a copy\r\n // eslint-disable-next-line no-redeclare\r\n separator = new RegExp(separator.source, flags + \"g\"),\r\n separator2, match, lastIndex, lastLength;\r\n str += \"\"; // Type-convert\r\n if (!compliantExecNpcg) {\r\n // Doesn't need flags gy, but they don't hurt\r\n separator2 = new RegExp(\"^\" + separator.source + \"$(?!\\\\s)\", flags);\r\n }\r\n /* Values for `limit`, per the spec:\r\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\r\n * If 0, Infinity, or NaN: 0\r\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\r\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\r\n * If other: Type-convert, then use the above rules\r\n */\r\n limit = limit === undef ?\r\n -1 >>> 0 : // Math.pow(2, 32) - 1\r\n limit >>> 0; // ToUint32(limit)\r\n // eslint-disable-next-line no-cond-assign\r\n while (match = separator.exec(str)) {\r\n // `separator.lastIndex` is not reliable cross-browser\r\n lastIndex = match.index + match[0].length;\r\n if (lastIndex > lastLastIndex) {\r\n output.push(str.slice(lastLastIndex, match.index));\r\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\r\n // nonparticipating capturing groups\r\n if (!compliantExecNpcg && match.length > 1) {\r\n match[0].replace(separator2, function () {\r\n for (var i = 1; i < arguments.length - 2; i++) {\r\n if (arguments[i] === undef) {\r\n match[i] = undef;\r\n }\r\n }\r\n });\r\n }\r\n if (match.length > 1 && match.index < str.length) {\r\n Array.prototype.push.apply(output, match.slice(1));\r\n }\r\n lastLength = match[0].length;\r\n lastLastIndex = lastIndex;\r\n if (output.length >= limit) {\r\n break;\r\n }\r\n }\r\n if (separator.lastIndex === match.index) {\r\n separator.lastIndex++; // Avoid an infinite loop\r\n }\r\n }\r\n if (lastLastIndex === str.length) {\r\n if (lastLength || !separator.test(\"\")) {\r\n output.push(\"\");\r\n }\r\n } else {\r\n output.push(str.slice(lastLastIndex));\r\n }\r\n return output.length > limit ? output.slice(0, limit) : output;\r\n };\r\n\r\n // For convenience\r\n String.prototype.split = function (separator, limit) {\r\n return self(this, separator, limit);\r\n };\r\n\r\n return self;\r\n\r\n}();\r\n\r\n\r\nexport function mToken (obj) {\r\n this.obj = obj;\r\n\r\n this.SAR_OK = 0;\r\n this.SAR_FALSE = 1;\r\n\r\n //分组加密算法标识\r\n this.SGD_SM1_ECB = 0x00000101;\r\n this.SGD_SM1_CBC = 0x00000102;\r\n this.SGD_SM1_CFB = 0x00000104;\r\n this.SGD_SM1_OFB = 0x00000108;\r\n this.SGD_SM1_MAC = 0x00000110;\r\n this.SGD_SSF33_ECB = 0x00000201;\r\n this.SGD_SSF33_CBC = 0x00000202;\r\n this.SGD_SSF33_CFB = 0x00000204;\r\n this.SGD_SSF33_OFB = 0x00000208;\r\n this.SGD_SSF33_MAC = 0x00000210;\r\n this.SGD_SM4_ECB = 0x00000401;\r\n this.SGD_SM4_CBC = 0x00000402;\r\n this.SGD_SM4_CFB = 0x00000404;\r\n this.SGD_SM4_OFB = 0x00000408;\r\n this.SGD_SM4_MAC = 0x00000410;\r\n\r\n this.SGD_VENDOR_DEFINED = 0x80000000;\r\n this.SGD_DES_ECB = this.SGD_VENDOR_DEFINED + 0x00000211\r\n this.SGD_DES_CBC = this.SGD_VENDOR_DEFINED + 0x00000212\r\n\r\n this.SGD_3DES168_ECB = this.SGD_VENDOR_DEFINED + 0x00000241\r\n this.SGD_3DES168_CBC = this.SGD_VENDOR_DEFINED + 0x00000242\r\n\r\n this.SGD_3DES112_ECB = this.SGD_VENDOR_DEFINED + 0x00000221\r\n this.SGD_3DES112_CBC = this.SGD_VENDOR_DEFINED + 0x00000222\r\n\r\n this.SGD_AES128_ECB = this.SGD_VENDOR_DEFINED + 0x00000111\r\n this.SGD_AES128_CBC = this.SGD_VENDOR_DEFINED + 0x00000112\r\n\r\n this.SGD_AES192_ECB = this.SGD_VENDOR_DEFINED + 0x00000121\r\n this.SGD_AES192_CBC = this.SGD_VENDOR_DEFINED + 0x00000122\r\n\r\n this.SGD_AES256_ECB = this.SGD_VENDOR_DEFINED + 0x00000141\r\n this.SGD_AES256_CBC = this.SGD_VENDOR_DEFINED + 0x00000142\r\n\r\n\r\n //非对称密码算法标识\r\n this.SGD_RSA = 0x00010000;\r\n this.SGD_SM2_1 = 0x00020100; //ECC签名\r\n this.SGD_SM2_2 = 0x00020200; //ECC密钥交换\r\n this.SGD_SM2_3 = 0x00020400; //ECC加密\r\n\r\n //密码杂凑算法标识\r\n this.SGD_SM3 = 0x00000001;\r\n this.SGD_SHA1 = 0x00000002;\r\n this.SGD_SHA256 = 0x00000004;\r\n this.SGD_RAW = 0x00000080;\r\n this.SGD_MD5 = 0x00000081;\r\n this.SGD_SHA384 = 0x00000082;\r\n this.SGD_SHA512 = 0x00000083;\r\n\r\n\r\n this.SGD_CERT_VERSION = 0x00000001;\r\n this.SGD_CERT_SERIAL = 0x00000002;\r\n this.SGD_CERT_ISSUE = 0x00000005;\r\n this.SGD_CERT_VALID_TIME = 0x00000006;\r\n this.SGD_CERT_SUBJECT = 0x00000007;\r\n this.SGD_CERT_DER_PUBLIC_KEY = 0x00000008;\r\n this.SGD_CERT_DER_EXTENSIONS = 0x00000009;\r\n this.SGD_CERT_NOT_BEFORE = 0x00000010;\r\n this.SGD_CERT_ISSUER_CN = 0x00000021;\r\n this.SGD_CERT_ISSUER_O = 0x00000022;\r\n this.SGD_CERT_ISSUER_OU = 0x00000023;\r\n this.SGD_CERT_ISSUER_C = 0x00000024;\r\n this.SGD_CERT_ISSUER_P = 0x00000025;\r\n this.SGD_CERT_ISSUER_L = 0x00000026;\r\n this.SGD_CERT_ISSUER_S = 0x00000027;\r\n this.SGD_CERT_ISSUER_EMAIL = 0x00000028;\r\n\r\n this.SGD_CERT_SUBJECT_CN = 0x00000031;\r\n this.SGD_CERT_SUBJECT_O = 0x00000032;\r\n this.SGD_CERT_SUBJECT_OU = 0x00000033;\r\n this.SGD_CERT_SUBJECT_EMALL = 0x00000034;\r\n this.SGD_REMAIN_TIME = 0x00000035;\r\n this.SGD_SIGNATURE_ALG = 0x00000036;\r\n this.SGD_CERT_SUBJECT_C = 0x00000037;\r\n this.SGD_CERT_SUBJECT_P = 0x00000038;\r\n this.SGD_CERT_SUBJECT_L = 0x00000039;\r\n this.SGD_CERT_SUBJECT_S = 0x0000003A;\r\n\r\n this.SGD_CERT_CRL = 0x00000041;\r\n\r\n\r\n this.SGD_DEVICE_SORT = 0x00000201;\r\n this.SGD_DEVICE_TYPE = 0x00000202;\r\n this.SGD_DEVICE_NAME = 0x00000203;\r\n this.SGD_DEVICE_MANUFACTURER = 0x00000204;\r\n this.SGD_DEVICE_HARDWARE_VERSION = 0x00000205;\r\n this.SGD_DEVICE_SOFTWARE_VERSION = 0x00000206;\r\n this.SGD_DEVICE_STANDARD_VERSION = 0x00000207;\r\n this.SGD_DEVICE_SERIAL_NUMBER = 0x00000208;\r\n this.SGD_DEVICE_SUPPORT_SYM_ALG = 0x00000209;\r\n this.SGD_DEVICE_SUPPORT_ASYM_ALG = 0x0000020A;\r\n this.SGD_DEVICE_SUPPORT_HASH_ALG = 0x0000020B;\r\n this.SGD_DEVICE_SUPPORT_STORANGE_SPACE = 0x0000020C;\r\n this.SGD_DEVICE_SUPPORT_FREE_SAPCE = 0x0000020D;\r\n this.SGD_DEVICE_RUNTIME = 0x0000020E;\r\n this.SGD_DEVICE_USED_TIMES = 0x0000020F;\r\n this.SGD_DEVICE_LOCATION = 0x00000210;\r\n this.SGD_DEVICE_DESCRIPTION = 0x00000211;\r\n this.SGD_DEVICE_MANAGER_INFO = 0x00000212;\r\n this.SGD_DEVICE_MAX_DATA_SIZE = 0x00000213;\r\n\r\n this.TRUE = 1;\r\n this.FALSE = 0;\r\n\r\n this.GM3000 = 1;\r\n this.K5 = 3;\r\n this.TF = 4;\r\n this.HT = 5;\r\n this.SJK1137 = 2;\r\n\r\n this.TYPE_UKEY = 1; //普通UKEY\r\n this.TYPE_FPKEY = 2; //指纹UKEY\r\n\r\n var g_mTokenPlugin = null;\r\n\r\n\r\n this.SOF_GetLastError = function () {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetLastError();\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n function isIe () {\r\n return (\"ActiveXObject\" in window);\r\n }\r\n\r\n function isMobile () {\r\n var browser = {\r\n versions: function () {\r\n // eslint-disable-next-line no-unused-vars\r\n var u = navigator.userAgent, app = navigator.appVersion;\r\n return {//移动终端浏览器版本信息\r\n trident: u.indexOf('Trident') > -1, //IE内核\r\n presto: u.indexOf('Presto') > -1, //opera内核\r\n webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核\r\n gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核\r\n mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端\r\n ios: !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端\r\n android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器\r\n iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器\r\n iPad: u.indexOf('iPad') > -1, //是否iPad\r\n webApp: u.indexOf('Safari') == -1\r\n //是否web应该程序,没有头部与底部\r\n };\r\n }(),\r\n language: (navigator.browserLanguage || navigator.language).toLowerCase()\r\n }\r\n\r\n if ((browser.versions.mobile) && (browser.versions.ios || browser.versions.android || browser.versions.iPhone || browser.versions.iPad)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n this.SOF_LoadLibrary = function (type) {\r\n os = check_os();\r\n var ret;\r\n if (g_mTokenPlugin == null) {\r\n g_mTokenPlugin = new mTokenPlugin();\r\n }\r\n\r\n if (type == this.GM3000) {\r\n if (isMobile()) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"1\", \"mToken OTG\", \"com.longmai.security.plugin.driver.otg.OTGDriver\");\r\n }\r\n else {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"mtoken_gm3000_hnca.dll\", \"libgm3000.1.0.so\", \"libgm3000.1.0.dylib\");\r\n }\r\n }\r\n else if (type == this.SJK1137) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"SKF_APP.dll\", \"libhunca_hsic_skf.so\", \"libhunca_hsic_skf.dylib\");\r\n }\r\n else if (type == this.HT) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"HUNCA_HT_20522_SKF.dll\", \"libhunca_ht_h2070f63_skf.so\", \"libhunca_ht_h2070f63_skf.dylib\");\r\n }\r\n else if (type == this.K5) {\r\n if (isMobile()) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"2\", \"mToken K5 Bluetooth\", \"com.longmai.security.plugin.driver.ble.BLEDriver\");\r\n }\r\n else {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"mtoken_k5.dll\", \"libgm3000.1.0.so\", \"libk5.1.0.dylib\");\r\n }\r\n }\r\n else if (type == this.TF) {\r\n if (isMobile()) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"0\", \"mToken TF/SD Card\", \"com.longmai.security.plugin.driver.tf.TFDriver\");\r\n } else {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"mtoken_tf.dll\", \"libgm3000.1.0.so\", \"libtf.dylib\");\r\n }\r\n }\r\n else {\r\n return -1;\r\n }\r\n\r\n if (ret != 0) {\r\n return -2;\r\n }\r\n return this.SAR_OK;\r\n };\r\n\r\n\r\n this.SOF_EnumDevice = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n var array = g_mTokenPlugin.SOF_EnumDevice();\r\n if (array == null || array.length <= 0) {\r\n return null;\r\n }\r\n\r\n return array.split(\"||\");\r\n\r\n };\r\n\r\n\r\n this.SOF_GetVersion = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetVersion();\r\n };\r\n\r\n\r\n this.SOF_GetDeviceInstance = function (DeviceName, ApplicationName) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetDeviceInstance(DeviceName, ApplicationName);\r\n };\r\n\r\n this.SOF_ReleaseDeviceInstance = function () {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ReleaseDeviceInstance()\r\n }\r\n\r\n\r\n this.SOF_GetUserList = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n var array = g_mTokenPlugin.SOF_GetUserList();\r\n if (array == null || array.length <= 0)\r\n return null;\r\n\r\n var list = new Array();\r\n var user = array.split(\"&&&\");\r\n var length = user.length;\r\n for (var i = 0; i < length; i++) {\r\n list[i] = user[i].split(\"||\");\r\n }\r\n\r\n return list;\r\n };\r\n\r\n\r\n this.SOF_ExportUserCert = function (ContainerName, KeySpec) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ExportUserCert(ContainerName, KeySpec);\r\n };\r\n\r\n\r\n this.SOF_GetDeviceInfo = function (Type) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetDeviceInfo(Type);\r\n };\r\n\r\n\r\n this.SOF_GetCertInfo = function (Base64EncodeCert, Type) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetCertInfo(Base64EncodeCert, Type);\r\n };\r\n\r\n this.SOF_GetCertInfoByOid = function (Base64EncodeCert, OID) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetCertInfoByOid(Base64EncodeCert, OID);\r\n }\r\n\r\n this.SOF_Login = function (PassWd) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_Login(PassWd);\r\n };\r\n\r\n\r\n this.SOF_LogOut = function () {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_LogOut();\r\n };\r\n\r\n\r\n this.SOF_GetPinRetryCount = function () {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetPinRetryCount();\r\n };\r\n\r\n\r\n this.SOF_ChangePassWd = function (OldPassWd, NewPassWd) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ChangePassWd(OldPassWd, NewPassWd);\r\n };\r\n\r\n\r\n this.SOF_SetDigestMethod = function (DigestMethod) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SetDigestMethod(DigestMethod);\r\n };\r\n\r\n\r\n this.SOF_SetUserID = function (UserID) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SetUserID(UserID);\r\n };\r\n\r\n\r\n this.SOF_SetEncryptMethodAndIV = function (EncryptMethod, EncryptIV) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SetEncryptMethodAndIV(EncryptMethod, EncryptIV);\r\n };\r\n\r\n\r\n this.SOF_EncryptFileToPKCS7 = function (Cert, InFile, OutFile, type) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_EncryptFileToPKCS7(Cert, InFile, OutFile, type);\r\n };\r\n\r\n\r\n this.SOF_SignFileToPKCS7 = function (ContainerName, InFile, OutFile) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignFileToPKCS7(ContainerName, InFile, OutFile);\r\n };\r\n\r\n this.SOF_VerifyFileToPKCS7 = function (strPkcs7Data, InFilePath) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyFileToPKCS7(strPkcs7Data, InFilePath);\r\n };\r\n\r\n this.SOF_DecryptFileToPKCS7 = function (ContainerName, keySpec, Pkcs7Data, InFile, OutFile, type) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DecryptFileToPKCS7(ContainerName, keySpec, Pkcs7Data, InFile, OutFile, type);\r\n };\r\n\r\n this.SOF_DigestData = function (ContainerName, nData, InDataLen) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DigestData(ContainerName, nData, InDataLen);\r\n };\r\n\r\n this.SOF_SignData = function (ContainerName, ulKeySpec, InData, InDataLen) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignData(ContainerName, ulKeySpec, InData, InDataLen);\r\n };\r\n //交互式签名\r\n this.SOF_SignDataInteractive = function (ContainerName, ulKeySpec, InData, InDataLen) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignDataInteractive(ContainerName, ulKeySpec, InData, InDataLen);\r\n }\r\n\r\n\r\n this.SOF_SignDataToPKCS7 = function (ContainerName, ulKeySpec, InData, ulDetached) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignDataToPKCS7(ContainerName, ulKeySpec, InData, ulDetached);\r\n };\r\n\r\n\r\n\r\n this.SOF_VerifyDataToPKCS7 = function (Base64EncodeCert, InData, SignedValue) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyDataToPKCS7(Base64EncodeCert, InData, SignedValue);\r\n };\r\n\r\n\r\n this.SOF_VerifySignedData = function (Base64EncodeCert, digestMethod, InData, SignedValue) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifySignedData(Base64EncodeCert, digestMethod, InData, SignedValue);\r\n };\r\n\r\n\r\n this.SOF_EncryptDataPKCS7 = function (Base64EncodeCert, InData, InDataLen) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_EncryptDataPKCS7(Base64EncodeCert, InData, InDataLen);\r\n };\r\n\r\n\r\n this.SOF_DecryptDataPKCS7 = function (ContainerName, ulKeySpec, InData) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DecryptDataPKCS7(ContainerName, ulKeySpec, InData);\r\n };\r\n\r\n\r\n this.SOF_GenRemoteUnblockRequest = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenRemoteUnblockRequest();\r\n };\r\n\r\n\r\n this.SOF_GenResetpwdResponse = function (request, soPin, userPin) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenResetpwdResponse(request, soPin, userPin);\r\n };\r\n\r\n\r\n this.SOF_RemoteUnblockPIN = function (request) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_RemoteUnblockPIN(request);\r\n };\r\n\r\n\r\n this.SOF_SignDataToPKCS7 = function (ContainerName, ulKeySpec, InData, ulDetached) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignDataToPKCS7(ContainerName, ulKeySpec, InData, ulDetached);\r\n };\r\n\r\n\r\n this.SOF_VerifyDataToPKCS7 = function (strPkcs7Data, OriginalText, ulDetached) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyDataToPKCS7(strPkcs7Data, OriginalText, ulDetached);\r\n };\r\n\r\n //按expType导出的公钥,格式为国密规范指定的格式或DER格式\r\n this.SOF_ExportPubKey = function (containerName, cerType, expType) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ExportPubKey(containerName, cerType, expType);\r\n }\r\n\r\n this.SOF_EncryptByPubKey = function (strPubKey, strInput, cerType) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_EncryptByPubKey(strPubKey, strInput, cerType);\r\n }\r\n\r\n this.SOF_DecryptByPrvKey = function (containerName, cerType, strAsymCipher) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DecryptByPrvKey(containerName, cerType, strAsymCipher);\r\n }\r\n\r\n //RA客户端相关接口:P10及证书导入等\r\n this.SOF_GenerateP10Request = function (deviceName, container, dn, asymAlg, keySpec, keyLength) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenerateP10Request(deviceName, container, dn, asymAlg, keySpec, keyLength);\r\n }\r\n\r\n this.SOF_EnumCertContiner = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_EnumCertContiner();\r\n }\r\n\r\n this.SOF_FindContainer = function (certSN) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_FindContainer(certSN);\r\n }\r\n\r\n this.SOF_DeleteCert = function (certSN) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DeleteCert(certSN);\r\n }\r\n\r\n this.SOF_DeleteContainer = function (certSN) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DeleteContainer(certSN);\r\n }\r\n\r\n this.SOF_SignByCert = function (certSN, plain) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignByCert(certSN, plain);\r\n }\r\n\r\n this.SOF_VerifyByCert = function (certSN, plain, signature) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyByCert(certSN, plain, signature);\r\n }\r\n\r\n\r\n this.SOF_ImportCert = function (container, cert, keySpec) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ImportCert(container, cert, keySpec);\r\n }\r\n\r\n this.SOF_ImportCryptoCertAndKey = function (container, cert, nAsymAlg, EncryptedSessionKeyData, symAlg, EncryptedPrivateKeyData, mode) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ImportCryptoCertAndKey(container, cert, nAsymAlg, EncryptedSessionKeyData, symAlg, EncryptedPrivateKeyData, mode);\r\n }\r\n\r\n this.SOF_VerifyByExtCert = function (cert, plain, signature, digestMethod) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyByExtCert(cert, plain, signature, digestMethod);\r\n }\r\n\r\n this.SOF_GenerateRandom = function (length) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenerateRandom(length);\r\n }\r\n\r\n this.SOF_SymEncryptFile = function (sessionKey, srcfile, destfile, type) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SymEncryptFile(sessionKey, srcfile, destfile, type);\r\n }\r\n\r\n this.SOF_SymDecryptFile = function (sessionKey, srcfile, destfile, type) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SymDecryptFile(sessionKey, srcfile, destfile, type);\r\n }\r\n\r\n this.SOF_SymEncryptData = function (sessionKey, inData) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SymEncryptData(sessionKey, inData);\r\n }\r\n\r\n this.SOF_SymDecryptData = function (sessionKey, inData) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SymDecryptData(sessionKey, inData);\r\n }\r\n\r\n this.SOF_GenerateQRCode = function (qrcode_text) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenerateQRCode(qrcode_text);\r\n }\r\n\r\n\r\n this.SOF_VerifyPinMS = function (responseKey) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyPinMS(responseKey);\r\n }\r\n\r\n this.SOF_GetHardwareType = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetHardwareType();\r\n }\r\n\r\n this.SOF_VerifyFingerprint = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyFingerprint();\r\n }\r\n\r\n\r\n this.SOF_EnumFiles = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n var array = g_mTokenPlugin.SOF_EnumFiles();\r\n if (array == null || array.length <= 0) {\r\n return null;\r\n }\r\n\r\n return array.split(\"||\");\r\n }\r\n\r\n this.SOF_ReadFile = function (fileName, offset, length) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n return g_mTokenPlugin.SOF_ReadFile(fileName, Number(offset), Number(length));\r\n }\r\n\r\n this.SOF_WriteFile = function (fileName, offset, data) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n return g_mTokenPlugin.SOF_WriteFile(fileName, offset, data);\r\n }\r\n\r\n this.SOF_CreateFile = function (fileName, length, readRight, writeRight) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n return g_mTokenPlugin.SOF_CreateFile(fileName, length, readRight, writeRight);\r\n }\r\n\r\n this.SOF_DeleteFile = function (fileName) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n return g_mTokenPlugin.SOF_DeleteFile(fileName);\r\n }\r\n\r\n\r\n}\r\n\r\n//判断插件名称是否存在\r\nfunction hasPlugin (name) {\r\n name = name.toLowerCase();\r\n for (var i = 0; i < navigator.plugins.length; i++) {\r\n if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n//判断系统\r\nfunction check_os () {\r\n var windows = (navigator.userAgent.indexOf(\"Windows\", 0) != -1) ? 1 : 0;\r\n // eslint-disable-next-line no-unused-vars\r\n var mac = (navigator.userAgent.indexOf(\"mac\", 0) != -1) ? 1 : 0;\r\n var linux = (navigator.userAgent.indexOf(\"Linux\", 0) != -1) ? 1 : 0;\r\n // eslint-disable-next-line no-unused-vars\r\n var unix = (navigator.userAgent.indexOf(\"X11\", 0) != -1) ? 1 : 0;\r\n var os_type = \"\";\r\n if (windows) os_type = \"MS Windows\";\r\n // eslint-disable-next-line no-unused-vars\r\n else if (linux) os_type = \"Lunix\";\r\n if (hasPlugin(\"mPlugin1.0.0.1\")) {\r\n linuxWin = 2;\r\n return \"id_mPluginV2Router\";\r\n } else {\r\n linuxWin = 1;\r\n return \"mTokenPlugin\";\r\n }\r\n\r\n\r\n}\r\nvar linuxWin = 0;\r\nvar os;\r\n\r\nfunction mTokenPlugin () {\r\n var _xmlhttp;\r\n var retJSON = \"\";\r\n\r\n function AjaxIO (json_in) {\r\n //id_mPluginV2Router mTokenPlugin\r\n if (os == \"id_mPluginV2Router\") {\r\n var router = null;\r\n //var url = \"http://192.168.1.25:51235/alpha\";\r\n var url = \"http://127.0.0.1:51235/alpha\";\r\n\r\n router = document.getElementById(\"id_mPluginV2Router\");\r\n if (null == router) {\r\n alert(\"无法获取到插件,请确认已经安装好插件!\");\r\n }\r\n /*\r\n if(\"https:\" == document.location.protocol)\r\n {\r\n url = \"https://127.0.0.1:51245/alpha\";\r\n }\r\n */\r\n var json = json_in;\r\n\r\n retJSON = router.invoke(url, json);\r\n return retJSON;\r\n } else {\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n var _curDevName = \"\";\r\n var _url = \"http://127.0.0.1:51235/alpha\";\r\n let json = json_in;\r\n if (_xmlhttp == null) {\r\n if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari\r\n _xmlhttp = new XMLHttpRequest();\r\n } else { // code for IE6, IE5\r\n // eslint-disable-next-line no-undef\r\n _xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n }\r\n }\r\n\r\n /***\r\n if (\"https:\" == document.location.protocol) {\r\n _url = \"https://127.0.0.1:51245/alpha\";\r\n }\r\n ***/\r\n _xmlhttp.open(\"POST\", _url, false);\r\n _xmlhttp.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n _xmlhttp.send(\"json=\" + json);\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n function GetHttpResult () {\r\n if (_xmlhttp.readyState == 4 && _xmlhttp.status == 200) {\r\n var obj = eval(\"(\" + _xmlhttp.responseText + \")\");\r\n return obj;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n this.SOF_GetLastError = function () {\r\n var json = '{\"function\":\"SOF_GetLastError\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.errorCode;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_LoadLibrary = function (windows, linux, mac) {\r\n var json = '{\"function\":\"SOF_LoadLibrary\", \"winDllName\":\"' + windows + '\", \"linuxSOName\":\"' + linux + '\", \"macDylibName\":\"' + mac + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_EnumDevice = function () {\r\n var json = '{\"function\":\"SOF_EnumDevice\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.array;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.array;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GetVersion = function () {\r\n var json = '{\"function\":\"SOF_GetVersion\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.version;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.version;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n var _curDevName;\r\n this.SOF_GetDeviceInstance = function (DeviceName, ApplicationName) {\r\n var json = '{\"function\":\"SOF_GetDeviceInstance\", \"deviceName\":\"' + DeviceName + '\", \"applicationName\":\"' + ApplicationName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n _curDevName = DeviceName;\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n if (ret.rtn == 0) {\r\n _curDevName = DeviceName;\r\n }\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n this.SOF_ReleaseDeviceInstance = function () {\r\n var json = '{\"function\":\"SOF_ReleaseDeviceInstance\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.array;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n this.SOF_GetUserList = function () {\r\n var json = '{\"function\":\"SOF_GetUserList\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.array;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.array;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_ExportUserCert = function (ContainerName, KeySpec) {\r\n\r\n var json = '{\"function\":\"SOF_ExportUserCert\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + KeySpec + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.cert;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.cert;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GetDeviceInfo = function (Type) {\r\n var json = '{\"function\":\"SOF_GetDeviceInfo\", \"deviceName\":\"' + _curDevName + '\", \"type\":' + Type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.info;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.info;\r\n }\r\n\r\n return -2;\r\n }\r\n\r\n };\r\n\r\n\r\n this.SOF_GetCertInfo = function (Base64EncodeCert, Type) {\r\n var json = '{\"function\":\"SOF_GetCertInfo\", \"base64EncodeCert\":\"' + Base64EncodeCert + '\", \"type\":' + Type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.info;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.info;\r\n }\r\n\r\n return -2;\r\n }\r\n\r\n };\r\n\r\n\r\n this.SOF_GetCertInfoByOid = function (Base64EncodeCert, OID) {\r\n var json = '{\"function\":\"SOF_GetCertInfoByOid\", \"base64EncodeCert\":\"' + Base64EncodeCert + '\", \"oid\":\"' + OID + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.info;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.info;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n };\r\n\r\n\r\n\r\n this.SOF_Login = function (PassWd) {\r\n\r\n var json = '{\"function\":\"SOF_Login\", \"deviceName\":\"' + _curDevName + '\", \"passWd\":\"' + PassWd + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_LogOut = function () {\r\n\r\n var json = '{\"function\":\"SOF_LogOut\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GetPinRetryCount = function () {\r\n\r\n var json = '{\"function\":\"SOF_GetPinRetryCount\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.retryCount;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.retryCount;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_ChangePassWd = function (OldPassWd, NewPassWd) {\r\n\r\n var json = '{\"function\":\"SOF_ChangePassWd\", \"deviceName\":\"' + _curDevName + '\", \"oldUpin\":\"' + OldPassWd + '\", \"newUpin\":\"' + NewPassWd + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SetDigestMethod = function (DigestMethod) {\r\n\r\n var json = '{\"function\":\"SOF_SetDigestMethod\",\"deviceName\":\"' + _curDevName + '\", \"digestMethod\":' + DigestMethod + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SetUserID = function (UserID) {\r\n\r\n var json = '{\"function\":\"SOF_SetUserID\",\"deviceName\":\"' + _curDevName + '\", \"userID\":\"' + UserID + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SetEncryptMethodAndIV = function (EncryptMethod, EncryptIV) {\r\n\r\n var json = '{\"function\":\"SOF_SetEncryptMethodAndIV\",\"deviceName\":\"' + _curDevName + '\", \"encryptMethod\":' + EncryptMethod + ', \"encryptIV\":\"' + EncryptIV + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_EncryptFileToPKCS7 = function (Cert, InFile, OutFile, type) {\r\n\r\n var json = '{\"function\":\"SOF_EncryptFileToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"cert\":\"' + Cert + '\", \"inFile\":\"' + InFile.replace(/\\\\/g, '\\\\\\\\') + '\", \"outFile\":\"' + OutFile.replace(/\\\\/g, '\\\\\\\\') + '\", \"type\":' + type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.envelopData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.envelopData;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SignFileToPKCS7 = function (ContainerName, KeySpec, InFile) {\r\n\r\n var json = '{\"function\":\"SOF_SignFileToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"KeySpec\":' + KeySpec + ', \"inFile\":\"' + InFile.replace(/\\\\/g, '\\\\\\\\') + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.signed;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.signed;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_VerifyFileToPKCS7 = function (strPkcs7Data, InFilePath) {\r\n var json = '{\"function\":\"SOF_VerifyFileToPKCS7\", \"deviceName\":\"' + _curDevName + '\",\"strPkcs7Data\":\"' + strPkcs7Data + '\", \"inFile\":\"' + InFilePath.replace(/\\\\/g, '\\\\\\\\') + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_DecryptFileToPKCS7 = function (ContainerName, keySpec, Pkcs7Data, InFile, OutFile, type) {\r\n\r\n var json = '{\"function\":\"SOF_DecryptFileToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + keySpec + ', \"pkcs7Data\":\"' + Pkcs7Data + '\", \"inFile\":\"' + InFile.replace(/\\\\/g, '\\\\\\\\') + '\", \"outFile\":\"' + OutFile.replace(/\\\\/g, '\\\\\\\\') + '\", \"type\":' + type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_DigestData = function (ContainerName, InData, InDataLen) {\r\n\r\n var json = '{\"function\":\"SOF_DigestData\",\"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"inData\":\"' + InData + '\", \"inDataLen\":' + InDataLen + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.digest;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.digest;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n //交互式签名\r\n this.SOF_SignDataInteractive = function (ContainerName, ulKeySpec, inData, InDataLen) {\r\n var InDataBase64 = inData; //对报文进行Base64编码\r\n var json = '{\"function\":\"SOF_SignDataInteractive\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + ulKeySpec + ', \"inData\":\"' + InDataBase64 + '\", \"inDataLen\":' + InDataLen + '}';\r\n\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.signed;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.signed;\r\n }\r\n\r\n return null;\r\n }\r\n };\r\n\r\n this.SOF_SignData = function (ContainerName, ulKeySpec, InData, InDataLen) {\r\n\r\n var json = '{\"function\":\"SOF_SignDataEx\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + ulKeySpec + ', \"inData\":\"' + InData + '\", \"inDataLen\":' + InDataLen + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.signed;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.signed;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_VerifySignedData = function (Base64EncodeCert, digestMethod, InData, SignedValue) {\r\n var json = '{\"function\":\"SOF_VerifySignedDataEx\",\"deviceName\":\"' + _curDevName + '\", \"base64EncodeCert\":\"' + Base64EncodeCert + '\", \"digestMethod\":' + digestMethod + ', \"inData\":\"' + InData + '\", \"signedValue\":\"' + SignedValue + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_EncryptDataPKCS7 = function (Base64EncodeCert, InData, InDataLen) {\r\n\r\n var json = '{\"function\":\"SOF_EncryptDataPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"base64EncodeCert\":\"' + Base64EncodeCert + '\", \"inData\":\"' + InData + '\", \"inDataLen\":' + InDataLen + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.encrypedData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.encrypedData;\r\n }\r\n\r\n return -2;\r\n }\r\n\r\n };\r\n\r\n\r\n this.SOF_DecryptDataPKCS7 = function (ContainerName, ulKeySpec, InData) {\r\n\r\n var json = '{\"function\":\"SOF_DecryptDataPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + ulKeySpec + ', \"inData\":\"' + InData + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.decryptedData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.decryptedData;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GenRemoteUnblockRequest = function () {\r\n\r\n var json = '{\"function\":\"SOF_GenRemoteUnblockRequest\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.request;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.request;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GenResetpwdResponse = function (request, soPin, userPin) {\r\n\r\n var json = '{\"function\":\"SOF_GenResetpwdResponse\", \"deviceName\":\"' + _curDevName + '\", \"request\":\"' + request + '\", \"soPin\":\"' + soPin + '\", \"userPin\":\"' + userPin + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.request;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.request;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_RemoteUnblockPIN = function (request) {\r\n\r\n var json = '{\"function\":\"SOF_RemoteUnblockPIN\", \"deviceName\":\"' + _curDevName + '\", \"request\":\"' + request + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SignDataToPKCS7 = function (ContainerName, ulKeySpec, InData, ulDetached) {\r\n\r\n var json = '{\"function\":\"SOF_SignDataToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + ulKeySpec + ', \"inData\":\"' + InData + '\", \"detached\":' + ulDetached + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.pkcs7;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.pkcs7;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_VerifyDataToPKCS7 = function (strPkcs7Data, OriginalText, ulDetached) {\r\n\r\n var json = '{\"function\":\"SOF_VerifyDataToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"pkcs7\":\"' + strPkcs7Data + '\", \"original\":\"' + OriginalText + '\", \"detached\":' + ulDetached + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n //按expType导出的公钥,格式为国密规范指定的格式或DER格式或裸数据格式\r\n this.SOF_ExportPubKey = function (containerName, keySpec, expType) //expType=1: 国密格式; 2:DER; 3:RAW (SM2 public key ONLY: X|Y, X,Y各为32字节)\r\n {\r\n var json = '{\"function\":\"SOF_ExportPubKeyEx\",\"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + containerName + '\", \"keySpec\":' + keySpec + ', \"expType\":' + expType + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.pubKey;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.pubKey;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n //公钥加密\r\n this.SOF_EncryptByPubKey = function (strPubKey, strInput, cerType) {\r\n var json = '{\"function\":\"SOF_EncryptByPubKey\", \"deviceName\":\"' + _curDevName + '\", \"pubKey\":\"' + strPubKey + '\", \"asymPlain\":\"' + strInput + '\", \"keySpec\":' + cerType + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.asymCipher;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.asymCipher;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n //私钥解密\r\n this.SOF_DecryptByPrvKey = function (containerName, cerType, strAsymCipher) {\r\n var json = '{\"function\":\"SOF_DecryptByPrvKey\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + containerName + '\", \"asymCipher\":\"' + strAsymCipher + '\", \"keySpec\":' + cerType + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.asymPlain;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.asymPlain;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n //RA客户端控件\r\n this.SOF_CreateKeyPair = function (container, keySpec, asymAlg, keyLength) {\r\n var json = '{\"function\":\"SOF_CreateKeyPair\",\"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"asymAlg\":' + asymAlg + ', \"keySpec\":' + keySpec + ',\"keyLength\":' + keyLength + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_EnumCertContiner = function () {\r\n var json = '{\"function\":\"SOF_EnumCertContiner\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.containerName;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.containerName;\r\n }\r\n\r\n return \"\";\r\n }\r\n }\r\n\r\n this.SOF_FindContainer = function (certSN) {\r\n var json = '{\"function\":\"SOF_FindContainer\",\"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.containerName;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.containerName;\r\n }\r\n\r\n return \"\";\r\n }\r\n }\r\n\r\n this.SOF_DeleteCert = function (certSN) {\r\n var json = '{\"function\":\"SOF_DeleteCert\",\"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_DeleteContainer = function (certSN) {\r\n var json = '{\"function\":\"SOF_DeleteContainer\", \"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_SignByCert = function (certSN, plain) {\r\n var json = '{\"function\":\"SOF_SignByCert\", \"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\", \"inData\":\"' + plain + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.signed;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.signed;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n this.SOF_VerifyByCert = function (certSN, plain, signature, digestMethod) {\r\n\r\n var json = '{\"function\":\"SOF_VerifyByCert\", \"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\",\"digestMethod\":' + digestMethod + ', \"inData\":\"' + plain + '\", \"signed\":\"' + signature + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_VerifyByExtCert = function (cert, plain, signature, digestMethod) {\r\n var json = '{\"function\":\"SOF_VerifyByExtCert\",\"deviceName\":\"' + _curDevName + '\", \"cert\":\"' + cert + '\", \"digestMethod\":' + digestMethod + ', \"inData\":\"' + plain + '\", \"signed\":\"' + signature + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n // this.SOF_GenerateP10Request = function (container, dn, asymAlg, keySpec, keyLength) {\r\n // var json = '{\"function\":\"SOF_GenerateP10Request\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"certDN\":\"' + dn + '\", \"asymAlg\":' + asymAlg + ', \"keySpec\":' + keySpec + ',\"keyLength\":' + keyLength + '}';\r\n // if (linuxWin == 2) {\r\n // var retJSON = \"\";\r\n // try {\r\n // retJSON = AjaxIO(json);\r\n // } catch (e) {\r\n // return -3;\r\n // }\r\n //\r\n //\r\n // if (retJSON.length > 3) {\r\n // var obj = eval(\"(\" + retJSON + \")\");\r\n // return obj.outData;\r\n // } else {\r\n // return -2;\r\n //\r\n // }\r\n // } else {\r\n // try {\r\n // AjaxIO(json);\r\n // }\r\n // catch (e) {\r\n // return -3;\r\n // }\r\n //\r\n // var ret = GetHttpResult();\r\n // if (ret) {\r\n // return ret.outData;\r\n // }\r\n //\r\n // return null;\r\n // }\r\n // }\r\n this.SOF_GenerateP10Request = function (_curDevName, container, dn, asymAlg, keySpec, keyLength) {\r\n var json = '{\"function\":\"SOF_GenerateP10Request\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"certDN\":\"' + dn + '\", \"asymAlg\":' + asymAlg + ', \"keySpec\":' + keySpec + ',\"keyLength\":' + keyLength + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n this.SOF_ImportCert = function (container, cert, keySpec) {\r\n var json = '{\"function\":\"SOF_ImportCert\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"cert\":\"' + cert + '\", \"keySpec\":' + keySpec + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_ImportCryptoCertAndKey = function (container, cert, nAsymAlg, EncryptedSessionKeyData, symAlg, EncryptedPrivateKeyData, mode) {\r\n var json = '{\"function\":\"SOF_ImportCryptoCertAndKey\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"cert\":\"' + cert + '\", \"asymAlg\":' + nAsymAlg + ', \"sessionKey\":\"' + EncryptedSessionKeyData + '\", \"symAlg\":\"' + symAlg + '\", \"encrypedData\":\"' + EncryptedPrivateKeyData + ', + \"mode\":' + mode + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_GenerateRandom = function (length) {\r\n var json = '{\"function\":\"SOF_GenRandom\", \"deviceName\":\"' + _curDevName + '\", \"inDataLen\":' + length + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_SymEncryptFile = function (sessionKey, srcfile, destfile, type) {\r\n var json = '{\"function\":\"SOF_SymEncryptFile\", \"deviceName\":\"' + _curDevName + '\", \"sessionKey\":\"' + sessionKey + '\", \"inFile\":\"' + srcfile.replace(/\\\\/g, '\\\\\\\\') + '\", \"outFile\":\"' + destfile.replace(/\\\\/g, '\\\\\\\\') + '\", \"type\":' + type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_SymDecryptFile = function (sessionKey, srcfile, destfile, type) {\r\n var json = '{\"function\":\"SOF_SymDecryptFile\", \"deviceName\":\"' + _curDevName + '\", \"sessionKey\":\"' + sessionKey + '\", \"inFile\":\"' + srcfile.replace(/\\\\/g, '\\\\\\\\') + '\", \"outFile\":\"' + destfile.replace(/\\\\/g, '\\\\\\\\') + '\", \"type\":' + type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_SymEncryptData = function (sessionKey, inData) {\r\n var json = '{\"function\":\"SOF_SymEncryptData\", \"deviceName\":\"' + _curDevName + '\", \"sessionKey\":\"' + sessionKey + '\", \"inData\":\"' + inData + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n this.SOF_SymDecryptData = function (sessionKey, inData) {\r\n var json = '{\"function\":\"SOF_SymDecryptData\", \"deviceName\":\"' + _curDevName + '\", \"sessionKey\":\"' + sessionKey + '\", \"inData\":\"' + inData + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n /////////////////////////////////////////////////////////////////\r\n this.SOF_GenerateQRCode = function (qrcode_text_in) {\r\n var qrcode_text = qrcode_text_in.replace(/\"/g, '\\\\\"');\r\n var json = '{\"module\":\"libQR\",\"function\":\"SOF_GenerateQRCode\", \"inData\":\"' + qrcode_text + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n this.SOF_VerifyPinMS = function (responseKey) {\r\n var json = '{\"function\":\"SOF_VerifyPinMS\", \"deviceName\":\"' + _curDevName + '\", \"passWd\":\"' + responseKey + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n /////////////////////////////////////////////////////////////////\r\n this.SOF_GetHardwareType = function () {\r\n var json = '{\"function\":\"SOF_GetHardwareType\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.type;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.type;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_VerifyFingerprint = function () {\r\n var json = '{\"function\":\"SOF_VerifyFingerprint\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_EnumFiles = function () {\r\n var json = '{\"function\":\"SOF_EnumFiles\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.array;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.array;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_ReadFile = function (fileName, offset, length) {\r\n var json = '{\"function\":\"SOF_ReadFile\", \"deviceName\":\"' + _curDevName + '\", \"fileName\":\"' + fileName + '\", \"offset\":' + offset + ',\"length\":' + length + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n }\r\n }\r\n\r\n this.SOF_WriteFile = function (fileName, offset, data) {\r\n var json = '{\"function\":\"SOF_WriteFile\", \"deviceName\":\"' + _curDevName + '\", \"fileName\":\"' + fileName + '\", \"offset\":' + offset + ',\"inData\":\"' + data + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n this.SOF_CreateFile = function (fileName, length, readRight, writeRight) {\r\n var json = '{\"function\":\"SOF_CreateFile\", \"deviceName\":\"' + _curDevName + '\",\"fileName\":\"' + fileName + '\", \"length\" :' + length + ', \"readRight\":' + readRight + ',\"writeRight\":' + writeRight + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n this.SOF_DeleteFile = function (fileName) {\r\n var json = '{\"function\":\"SOF_DeleteFile\", \"deviceName\":\"' + _curDevName + '\",\"fileName\":\"' + fileName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n //Socket API\r\n this.SocketConnect = function (HostName, Port) {\r\n var json = '{\"module\":\"libSocket\",\"function\":\"SocketConnect\", \"HostName\":\"' + HostName + '\", \"Port\":' + Port + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n this.SocketDisConnect = function () {\r\n var json = '{\"module\":\"libSocket\",\"function\":\"SocketDisConnect\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n this.SocketSendText = function (SendText) {\r\n var json = '{\"module\":\"libSocket\",\"function\":\"SocketSendText\", \"SendText\":\"' + SendText + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.RecvText;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.RecvText;\r\n }\r\n }\r\n }\r\n}\r\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].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-dialog',{attrs:{\"title\":_vm.title,\"visible\":_vm.isShow,\"width\":\"350px\",\"append-to-body\":true},on:{\"close\":_vm.handleClose}},[_c('slide-verify',{ref:\"slideblock\",attrs:{\"l\":42,\"r\":10,\"w\":310,\"h\":155,\"imgs\":_vm.imgs,\"accuracy\":_vm.accuracy,\"slider-text\":_vm.sliderText},on:{\"success\":_vm.onSuccess,\"fail\":_vm.onFail,\"again\":_vm.onAgain,\"refresh\":_vm.onRefresh,\"fulfilled\":_vm.onFulfilled}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-dialog\r\n :title=\"title\"\r\n :visible=\"isShow\"\r\n width=\"350px\"\r\n :append-to-body=\"true\"\r\n @close=\"handleClose\"\r\n >\r\n <slide-verify\r\n ref=\"slideblock\"\r\n :l=\"42\"\r\n :r=\"10\"\r\n :w=\"310\"\r\n :h=\"155\"\r\n :imgs=\"imgs\"\r\n :accuracy=\"accuracy\"\r\n :slider-text=\"sliderText\"\r\n @success=\"onSuccess\"\r\n @fail=\"onFail\"\r\n @again=\"onAgain\"\r\n @refresh=\"onRefresh\"\r\n @fulfilled=\"onFulfilled\"\r\n ></slide-verify>\r\n </el-dialog>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"YcSlideVerify\",\r\n props: {\r\n title: {\r\n type: String,\r\n default: \"滑动验证\",\r\n },\r\n isShow: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n accuracy: 5,\r\n sliderText: \"拖动完成上方拼图\",\r\n countDownNum: 120,\r\n }\r\n },\r\n computed: {\r\n imgs() {\r\n const list = []\r\n for (let i = 1; i < 9; i++) {\r\n list.push(`/cloud-img/${i}.jpg`)\r\n }\r\n return list\r\n },\r\n },\r\n watch: {\r\n isShow(newVal) {\r\n // 这里第三方引用,ref没有渲染完成,reset报错,还不能用?号\r\n newVal &&\r\n this.$refs.slideblock &&\r\n this.$refs.slideblock.reset &&\r\n this.$refs.slideblock.reset()\r\n },\r\n },\r\n created() {},\r\n methods: {\r\n onSuccess() {\r\n this.$emit(\"success\")\r\n },\r\n onFail() {},\r\n onAgain() {},\r\n onRefresh() {},\r\n onFulfilled() {},\r\n handleClose() {\r\n this.$emit(\"close\")\r\n },\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.el-dialog__wrapper {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n::v-deep .el-dialog {\r\n margin-top: 0 !important;\r\n border-radius: 8px;\r\n}\r\n::v-deep .el-dialog__header {\r\n background-color: #f2f6fc;\r\n border-radius: 8px 8px 0 0;\r\n}\r\n.el-dialog__body {\r\n display: flex;\r\n justify-content: center;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=33a7114a&prod&lang=scss&scoped=true&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=33a7114a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=33a7114a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33a7114a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"customer\",staticStyle:{\"display\":\"none\"}},[_c('chat-vue',{attrs:{\"visible\":_vm.visible,\"jumpPage\":_vm.jumpPage,\"title\":_vm.title,\"json\":_vm.json,\"regular\":_vm.regular},on:{\"update:visible\":function($event){_vm.visible=$event}}}),_c('div',{staticClass:\"customerService\"},[_c('div',{staticClass:\"mobile\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"headset\",on:{\"click\":function($event){_vm.visible = !_vm.visible}}},[_vm._m(0),_vm._m(1)])])],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('i',{staticClass:\"el-icon-headset\"})])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('a',[_vm._v(\"在线客服\")])])\n}]\n\nexport { render, staticRenderFns }","export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=template&id=849349a0&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"chat\"},[_c('header',[_c('img',{attrs:{\"src\":\"/cloud-img/customerService/admin.jpg\"}}),_c('span',[_vm._v(_vm._s(_vm.title))]),(_vm.jumpPage)?_c('i',{staticClass:\"icon-enlarge\",on:{\"click\":_vm.enlarge}},[_c('img',{attrs:{\"src\":\"/cloud-img/customerService/enlarge.png\"}})]):_vm._e(),_c('i',{staticClass:\"el-icon-close\",on:{\"click\":_vm.close}})]),_c('main',{ref:\"main\"},_vm._l((_vm.messagelist),function(item,index){return _c('div',{key:index,class:['message', item.id]},[_c('img',{staticClass:\"avatar\",attrs:{\"src\":`/cloud-img/customerService/${item.id}.jpg`}}),_c('div',{staticClass:\"content\"},[_vm._l((item.msg),function(msg,index){return _c('span',{key:msg + index,class:item.msg.length > 1 ? 'href' : '',domProps:{\"innerHTML\":_vm._s((item.msg.length > 1 ? 1 + index + '. ' : ' ') + msg)},on:{\"click\":function($event){item.msg.length > 1 && _vm.regularClick(msg)}}})}),(item.based)?_c('div',{staticClass:\"based\",on:{\"click\":function($event){return _vm.handExpand(item)}}},[_c('span',[_vm._v(\"依据\")]),_c('span',{class:{ 'is-active': item.isActive }},[_vm._v(_vm._s(item.based)),_c('i',{staticClass:\"el-icon-d-arrow-right\"})])]):_vm._e()],2)])}),0),_c('nav',_vm._l((_vm.regular),function(item,index){return _c('el-button',{key:item + index,attrs:{\"size\":\"mini\",\"round\":\"\"},on:{\"click\":function($event){return _vm.regularClick(item)}}},[_vm._v(_vm._s(item))])}),1),_c('el-input',{attrs:{\"type\":\"textarea\",\"maxlength\":\"500\",\"autosize\":{ minRows: 2, maxRows: 3 },\"autofocus\":\"true\",\"resize\":\"none\",\"placeholder\":\"请反馈您的问题,我们将尽快回复\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.carriageReturn.apply(null, arguments)}},model:{value:(_vm.textareaValue),callback:function ($$v) {_vm.textareaValue=$$v},expression:\"textareaValue\"}}),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\",\"disabled\":!_vm.textareaValue},on:{\"click\":_vm.send}},[_vm._v(\"发送\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\r\n props: {\r\n visible: Boolean,\r\n jumpPage: String,\r\n json: String,\r\n title: String,\r\n commit: String,\r\n regular: Array\r\n },\r\n data() {\r\n return {\r\n textareaValue: \"\",\r\n // regular: ['发票增值税率', '城市维护建设税', '教育费附加征收率'],\r\n messagelist: [\r\n {id: 'admin', msg: ['您好,38号客服很高兴为你服务!'], isActive: false},\r\n // {id: 'personal', msg: ['消费税?']}\r\n ],\r\n isActive: false\r\n }\r\n },\r\n computed: {\r\n questions() {\r\n return JSON.parse(this.json)\r\n }\r\n },\r\n methods: {\r\n close() {\r\n this.$emit(\"update:visible\", false);\r\n },\r\n carriageReturn() {\r\n let e = window.event || arguments[0];\r\n if ((e.key == \"Enter\" || e.code == \"Enter\" || e.keyCode == 13) && this.textareaValue) {\r\n this.send()\r\n }\r\n },\r\n send() {\r\n if(!this.textareaValue.replace(/[^\\w\\u4E00-\\u9FA5]/g, ''))\r\n return\r\n\r\n this.add(this.textareaValue, \"personal\", ()=> {this.textareaValue = ''})\r\n this.search(this.textareaValue)\r\n },\r\n regularClick(msg) {\r\n this.add(msg)\r\n this.search(msg)\r\n },\r\n search(msg) {\r\n const list = this.questions.filter(item => item.faq.replace(/[^\\w\\u4E00-\\u9FA5]/g, '').toLowerCase().includes(msg.replace(/[^\\w\\u4E00-\\u9FA5]/g, '').toLowerCase()))\r\n let [vlaue, based] = ['', '']\r\n \r\n if(list.length > 1) {\r\n vlaue = list.reduce((prev, curr) => [...prev, curr.faq], [])\r\n } else if(list.length == 1) {\r\n [vlaue, based] = [list[0].msg, list[0].based]\r\n } else if([\"您好\",\"你好\"].includes(msg.replace(/[^\\w\\u4E00-\\u9FA5]/g, ''))) {\r\n vlaue = '您好!'\r\n } else {\r\n vlaue = '请提关键词问题?<br/> 比如: 税率<br/><br/><a href=\"tel:4000770168\">客服热线:<span style=\"color: #FF575F;\">400 0770 168</span></a>'\r\n }\r\n this.add(vlaue, 'admin', null, based)\r\n },\r\n add(msg, id=\"personal\", fun, based = \"\") {\r\n this.messagelist.push({\r\n id,\r\n msg: Array.isArray(msg) ? msg : [msg],\r\n based,\r\n isActive: false\r\n })\r\n this.$nextTick(() => {\r\n fun && fun()\r\n // this.$refs.main.scrollTop += 70\r\n this.$refs.main.scrollTop = this.$refs.main.scrollHeight\r\n // console.log(this.$refs.main.scrollTop, this.$refs.main.scrollHeight)\r\n })\r\n },\r\n enlarge() {\r\n // this.$router.resolve({\r\n // name: this.jumpPage\r\n // })\r\n \r\n window.open(this.jumpPage, '_blank')\r\n },\r\n handExpand(item) {\r\n item.isActive = !item.isActive\r\n }\r\n }\r\n}","<template>\r\n <div class=\"chat\" v-show=\"visible\">\r\n <header>\r\n <img src=\"/cloud-img/customerService/admin.jpg\" />\r\n <span>{{ title }}</span>\r\n <i class=\"icon-enlarge\" v-if=\"jumpPage\" @click=\"enlarge\"\r\n ><img src=\"/cloud-img/customerService/enlarge.png\"\r\n /></i>\r\n <i class=\"el-icon-close\" @click=\"close\"></i>\r\n </header>\r\n <main ref=\"main\">\r\n <div\r\n v-for=\"(item, index) in messagelist\"\r\n :key=\"index\"\r\n :class=\"['message', item.id]\"\r\n >\r\n <img\r\n class=\"avatar\"\r\n :src=\"`/cloud-img/customerService/${item.id}.jpg`\"\r\n />\r\n <div class=\"content\">\r\n <span\r\n v-for=\"(msg, index) in item.msg\"\r\n :key=\"msg + index\"\r\n v-html=\"(item.msg.length > 1 ? 1 + index + '. ' : ' ') + msg\"\r\n :class=\"item.msg.length > 1 ? 'href' : ''\"\r\n @click=\"item.msg.length > 1 && regularClick(msg)\"\r\n ></span>\r\n <div class=\"based\" v-if=\"item.based\" @click=\"handExpand(item)\">\r\n <span>依据</span\r\n ><span :class=\"{ 'is-active': item.isActive }\"\r\n >{{ item.based }}<i class=\"el-icon-d-arrow-right\"></i\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n </main>\r\n <nav>\r\n <el-button\r\n size=\"mini\"\r\n round\r\n v-for=\"(item, index) in regular\"\r\n :key=\"item + index\"\r\n @click=\"regularClick(item)\"\r\n >{{ item }}</el-button\r\n >\r\n </nav>\r\n <el-input\r\n type=\"textarea\"\r\n maxlength=\"500\"\r\n :autosize=\"{ minRows: 2, maxRows: 3 }\"\r\n autofocus=\"true\"\r\n resize=\"none\"\r\n placeholder=\"请反馈您的问题,我们将尽快回复\"\r\n v-model=\"textareaValue\"\r\n @keyup.enter.native=\"carriageReturn\"\r\n >\r\n </el-input>\r\n <!-- <el-button size=\"mini\" type=\"primary\">发送</el-button> -->\r\n <el-button\r\n type=\"primary\"\r\n size=\"mini\"\r\n :disabled=\"!textareaValue\"\r\n @click=\"send\"\r\n >发送</el-button\r\n >\r\n </div>\r\n</template>\r\n<script>\r\nimport chatMixin from \"./chatMixin\"\r\nexport default {\r\n name: \"ChatMini\",\r\n mixins: [chatMixin],\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.chat {\r\n width: 350px;\r\n height: 480px;\r\n position: fixed;\r\n bottom: 10px;\r\n right: 55px;\r\n z-index: 2001;\r\n background-color: #ffffff;\r\n border-radius: 12px;\r\n border: 1px solid #e6ebf5;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);\r\n overflow: hidden;\r\n > header {\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n background-color: #ff575f;\r\n font-size: 16px;\r\n padding: 10px;\r\n font-weight: 400;\r\n color: #fafdff;\r\n > img {\r\n width: 44px;\r\n height: 44px;\r\n border-radius: 50%;\r\n margin-right: 10px;\r\n transition: all 0.3s linear;\r\n &:focus,\r\n &:hover {\r\n transform: scale(1.2, 1.2) rotate(15deg);\r\n }\r\n }\r\n i {\r\n cursor: pointer;\r\n position: absolute;\r\n top: 5px;\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 6px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n transition: all 0.3s linear;\r\n &:focus,\r\n &:hover {\r\n transform: scale(1.2, 1.2);\r\n background-color: rgba(255, 137, 122, 0.8);\r\n }\r\n &.el-icon-close {\r\n right: 10px;\r\n }\r\n &.icon-enlarge {\r\n right: 35px;\r\n }\r\n > img {\r\n width: 12px;\r\n }\r\n }\r\n }\r\n\r\n > main {\r\n width: 100%;\r\n height: 60%;\r\n overflow-y: auto;\r\n padding-bottom: 20px;\r\n background-color: #f7f7f9;\r\n // 滚动条宽度\r\n &::-webkit-scrollbar {\r\n width: 6px;\r\n }\r\n // 滚动条轨道\r\n &::-webkit-scrollbar-track {\r\n background: rgb(239, 239, 239);\r\n border-radius: 2px;\r\n }\r\n // 小滑块\r\n &::-webkit-scrollbar-thumb {\r\n background: #ff8879;\r\n border-radius: 10px;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #ff755d;\r\n }\r\n .message {\r\n display: flex;\r\n gap: 15px;\r\n position: relative;\r\n margin: 20px 5px 0px 5px;\r\n opacity: 0;\r\n .avatar {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 50%;\r\n }\r\n .content {\r\n width: fit-content;\r\n max-width: 250px;\r\n font-weight: 400;\r\n font-size: 12px;\r\n color: #4c4c4d;\r\n line-height: 20px;\r\n padding: 10px;\r\n border-radius: 10px;\r\n background-color: #ffffff;\r\n .href {\r\n cursor: pointer;\r\n display: block;\r\n color: #ff575f;\r\n margin-bottom: 0.5rem;\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n > .based {\r\n cursor: pointer;\r\n color: #909399;\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: flex-start;\r\n border-top: 1px solid #ebebed;\r\n padding-top: 5px;\r\n margin-top: 5px;\r\n gap: 5px;\r\n\r\n & > span:first-child {\r\n white-space: nowrap;\r\n color: #4c4c4d;\r\n border-radius: 10px;\r\n background-color: #eeeef0;\r\n padding: 0px 7px;\r\n }\r\n\r\n & > span:last-child {\r\n width: 100%;\r\n position: relative;\r\n display: inline-block;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n padding-right: 12px;\r\n\r\n .el-icon-d-arrow-right {\r\n position: absolute;\r\n right: 0px;\r\n bottom: 5px;\r\n transform: rotate(90deg);\r\n transition: all 0.35s linear;\r\n }\r\n &.is-active {\r\n overflow: visible;\r\n white-space: normal;\r\n .el-icon-d-arrow-right {\r\n transform: rotate(270deg);\r\n }\r\n }\r\n\r\n &:hover {\r\n color: #ff575f;\r\n }\r\n }\r\n }\r\n }\r\n &.admin {\r\n animation: animation01 0.3s linear 1.5s forwards;\r\n .content::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 2px;\r\n left: 37px;\r\n transform: rotate(-45deg);\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #ffffff;\r\n }\r\n }\r\n &.personal {\r\n animation: animation01 0.3s linear 0.3s forwards;\r\n flex-direction: row-reverse;\r\n .content::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 2px;\r\n right: 37px;\r\n transform: rotate(-45deg);\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent #ffffff transparent;\r\n }\r\n }\r\n @keyframes animation01 {\r\n 0% {\r\n transform: translateY(20px);\r\n opacity: 0;\r\n }\r\n\r\n 100% {\r\n transform: translateY(0px);\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n }\r\n > nav {\r\n // overflow-x: auto;\r\n background-color: #f7f7f9;\r\n border-bottom: 1px solid #e7e7ea;\r\n padding: 5px 10px;\r\n display: flex;\r\n .el-button {\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #4c4c4d;\r\n background-color: #fff !important;\r\n border: 1px solid #e7e7ea;\r\n padding: 5px 8px;\r\n }\r\n }\r\n > .el-textarea {\r\n border-color: transparent;\r\n textarea {\r\n overflow-y: hidden;\r\n padding-right: 65px;\r\n font-weight: 400;\r\n color: #19191a;\r\n font-size: 12px;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n }\r\n textarea,\r\n textarea:focus {\r\n border-color: transparent;\r\n }\r\n }\r\n > .el-button {\r\n position: absolute;\r\n bottom: 10px;\r\n right: 10px;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./chat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./chat.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./chat.vue?vue&type=style&index=0&id=42a8b467&prod&lang=scss&scoped=true&\"","import { render, staticRenderFns } from \"./chat.vue?vue&type=template&id=42a8b467&scoped=true&\"\nimport script from \"./chat.vue?vue&type=script&lang=js&\"\nexport * from \"./chat.vue?vue&type=script&lang=js&\"\nimport style0 from \"./chat.vue?vue&type=style&index=0&id=42a8b467&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42a8b467\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div ref=\"customer\" style=\"display: none\">\r\n <chat-vue\r\n :visible.sync=\"visible\"\r\n :jumpPage=\"jumpPage\"\r\n :title=\"title\"\r\n :json=\"json\"\r\n :regular=\"regular\"\r\n />\r\n <div class=\"customerService\">\r\n <div class=\"mobile\">\r\n <slot></slot>\r\n <!-- <div><i class=\"el-icon-mobile\"></i></div>\r\n <div>\r\n <span>客服热线</span>\r\n <a href=\"tel:4000770168\">400 0770 168</a>\r\n <template v-if=\"!['/login', '/register'].includes($route.path)\">\r\n <span style=\"margin-top: 10px\">银行服务电话</span>\r\n <a href=\"tel:13973004180\">13973004180(蒋行长)</a>\r\n <a href=\"tel:15773001997\">15773001997(彭经理)</a>\r\n </template>\r\n </div> -->\r\n </div>\r\n <div class=\"headset\" @click=\"visible = !visible\">\r\n <div><i class=\"el-icon-headset\"></i></div>\r\n <div><a>在线客服</a></div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport chatVue from \"./chat.vue\"\r\nexport default {\r\n name: \"YcCustomerService\",\r\n components: {\r\n chatVue,\r\n },\r\n props: {\r\n jumpPage: String,\r\n title: String,\r\n json: String,\r\n regular: Array,\r\n },\r\n data() {\r\n return {\r\n visible: false,\r\n }\r\n },\r\n computed: {\r\n hasSlot() {\r\n return Boolean(this.$slots.default)\r\n },\r\n },\r\n watch: {\r\n $route(to) {\r\n if (to.path != this.jumpPage) {\r\n this.$refs.customer.style.display = \"block\"\r\n } else {\r\n this.$refs.customer.style.display = \"none\"\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.$refs.customer.style.display = \"block\"\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.customerService {\r\n position: fixed;\r\n right: 0px;\r\n bottom: 35px;\r\n z-index: 2001;\r\n > div {\r\n cursor: pointer;\r\n position: absolute;\r\n right: 0px;\r\n display: flex;\r\n align-items: center;\r\n background-color: #ffffff;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);\r\n &:hover {\r\n > div:first-child {\r\n color: #ff4949;\r\n i {\r\n animation-name: animateRotate;\r\n animation-duration: 0.5s;\r\n animation-iteration-count: infinite;\r\n }\r\n }\r\n }\r\n > div:first-child {\r\n width: 50px;\r\n height: 50px;\r\n text-align: center;\r\n line-height: 50px;\r\n font-size: 18px;\r\n }\r\n > div:last-child {\r\n opacity: 0;\r\n // transition: all 0.3s linear;\r\n padding: 10px;\r\n border-radius: 6px;\r\n position: absolute;\r\n min-height: 50px;\r\n display: flex;\r\n flex-direction: column;\r\n // align-items: center;\r\n justify-content: space-around;\r\n background-color: #ffffff;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n top: calc(50% - 10px);\r\n right: -20px;\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #ffffff;\r\n filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.2));\r\n }\r\n a {\r\n color: #333;\r\n font-size: 14px;\r\n display: block;\r\n }\r\n }\r\n }\r\n .mobile {\r\n bottom: 50px;\r\n border-bottom: 1px solid #e6ebf5;\r\n &:hover {\r\n > div:last-child {\r\n left: -210px;\r\n opacity: 1;\r\n animation-name: animateMobile;\r\n animation-duration: 0.5s;\r\n }\r\n }\r\n > div:last-child {\r\n left: -120vw;\r\n width: 190px;\r\n bottom: 0px;\r\n a {\r\n width: fit-content;\r\n position: relative;\r\n margin-top: 5px;\r\n text-indent: 5px;\r\n &:hover {\r\n color: #ff4949;\r\n &::before {\r\n width: 100%;\r\n right: auto;\r\n left: 0px;\r\n }\r\n }\r\n &::before {\r\n content: \"\";\r\n width: 0%;\r\n height: 1px;\r\n opacity: 0.6;\r\n background: #ff4949;\r\n transition: all 0.5s linear;\r\n position: absolute;\r\n right: 0px;\r\n bottom: -2px;\r\n }\r\n }\r\n &::after {\r\n top: calc(100% - 35px);\r\n }\r\n }\r\n @keyframes animateMobile {\r\n 0% {\r\n left: -200vw;\r\n opacity: 0;\r\n }\r\n 0.1% {\r\n left: -310px;\r\n opacity: 0;\r\n }\r\n 100% {\r\n left: -210px;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n .headset {\r\n bottom: 0px;\r\n &:hover {\r\n > div:last-child {\r\n left: -110px;\r\n opacity: 1;\r\n animation-name: animateHeadset;\r\n animation-duration: 0.5s;\r\n }\r\n }\r\n > div:last-child {\r\n left: -120vw;\r\n width: 90px;\r\n }\r\n @keyframes animateHeadset {\r\n 0% {\r\n left: -120vw;\r\n opacity: 0;\r\n }\r\n 0.1% {\r\n left: -210px;\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n left: -110px;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n @keyframes animateRotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 20% {\r\n transform: rotate(7deg);\r\n }\r\n 40% {\r\n transform: rotate(0deg);\r\n }\r\n 80% {\r\n transform: rotate(-7deg);\r\n }\r\n 100% {\r\n transform: rotate(0deg);\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=849349a0&prod&lang=scss&scoped=true&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=849349a0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=849349a0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"849349a0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"YcQuestion\"},[_c('div',{staticClass:\"chatPage\"},[_c('header',{staticStyle:{\"background\":\"url('/cloud-img/customerService/chatTop.png') center\",\"background-size\":\"cover\"}},[_c('div',[_c('h3',[_vm._v(_vm._s(_vm.title))]),_c('span',[_vm._v(\"Problem Help\")])]),_c('p',[_vm._v(\"小优为您提供24小时服务\")])]),_c('div',{staticClass:\"main\"},[_c('div',[_c('main',{ref:\"main\"},[_c('p',[_vm._v(\"今天\"+_vm._s(_vm.currData))]),_vm._l((_vm.messagelist),function(item,index){return _c('div',{key:index,class:['message', item.id]},[_c('img',{staticClass:\"avatar\",attrs:{\"src\":'/cloud-img/customerService/' + item.id + '.jpg'}}),_c('div',{staticClass:\"content\"},[_vm._l((item.msg),function(msg,index){return _c('span',{key:msg + index,class:item.msg.length > 1 ? 'href' : '',domProps:{\"innerHTML\":_vm._s((item.msg.length > 1 ? 1 + index + '. ' : ' ') + msg)},on:{\"click\":function($event){item.msg.length > 1 && _vm.regularClick(msg)}}})}),(item.based)?_c('div',{staticClass:\"based\",on:{\"click\":function($event){$event.preventDefault();return _vm.handExpand(item)}}},[_c('span',[_vm._v(\"依据\")]),_c('span',{class:{ 'is-active': item.isActive }},[_vm._v(_vm._s(item.based)),_c('i',{staticClass:\"el-icon-d-arrow-right\"})])]):_vm._e()],2)])})],2),_c('footer',[_c('el-input',{attrs:{\"type\":\"textarea\",\"maxlength\":\"500\",\"autosize\":{ minRows: 6, maxRows: 6 },\"autofocus\":\"true\",\"resize\":\"none\",\"placeholder\":\"请输入你要咨询的问题\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.carriageReturn.apply(null, arguments)}},model:{value:(_vm.textareaValue),callback:function ($$v) {_vm.textareaValue=$$v},expression:\"textareaValue\"}}),_c('el-button',{style:(!_vm.textareaValue\n ? 'background-color: #F7F7F9;color: #FF575F;border-color: transparent;'\n : ''),attrs:{\"type\":\"primary\",\"disabled\":!_vm.textareaValue},on:{\"click\":_vm.send}},[_vm._v(\"发送\")])],1)]),_c('aside',[_c('el-collapse',{attrs:{\"accordion\":\"\"},model:{value:(_vm.activeNames),callback:function ($$v) {_vm.activeNames=$$v},expression:\"activeNames\"}},_vm._l((_vm.questionsList),function(item,key,index){return _c('el-collapse-item',{key:key,attrs:{\"name\":index}},[_c('template',{slot:\"title\"},[_c('img',{attrs:{\"src\":\"/cloud-img/customerService/ellipticalWenh.png\"}}),_vm._v(_vm._s(key)+\" \")]),_vm._l((item),function(faq){return _c('div',{key:faq,domProps:{\"innerHTML\":_vm._s(faq)},on:{\"click\":function($event){return _vm.regularClick(faq)}}})})],2)}),1)],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"YcQuestion\">\r\n <div class=\"chatPage\">\r\n <header\r\n style=\"\r\n background: url('/cloud-img/customerService/chatTop.png') center\r\n no-repeat cover;\r\n background-size: cover;\r\n \"\r\n >\r\n <div>\r\n <h3>{{ title }}</h3>\r\n <span>Problem Help</span>\r\n </div>\r\n <p>小优为您提供24小时服务</p>\r\n </header>\r\n <div class=\"main\">\r\n <div>\r\n <main ref=\"main\">\r\n <p>今天{{ currData }}</p>\r\n <div\r\n v-for=\"(item, index) in messagelist\"\r\n :key=\"index\"\r\n :class=\"['message', item.id]\"\r\n >\r\n <img\r\n class=\"avatar\"\r\n :src=\"'/cloud-img/customerService/' + item.id + '.jpg'\"\r\n />\r\n <div class=\"content\">\r\n <span\r\n v-for=\"(msg, index) in item.msg\"\r\n :key=\"msg + index\"\r\n v-html=\"(item.msg.length > 1 ? 1 + index + '. ' : ' ') + msg\"\r\n :class=\"item.msg.length > 1 ? 'href' : ''\"\r\n @click=\"item.msg.length > 1 && regularClick(msg)\"\r\n ></span>\r\n <div\r\n class=\"based\"\r\n v-if=\"item.based\"\r\n @click.prevent=\"handExpand(item)\"\r\n >\r\n <span>依据</span\r\n ><span :class=\"{ 'is-active': item.isActive }\"\r\n >{{ item.based }}<i class=\"el-icon-d-arrow-right\"></i\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n </main>\r\n <footer>\r\n <el-input\r\n type=\"textarea\"\r\n maxlength=\"500\"\r\n :autosize=\"{ minRows: 6, maxRows: 6 }\"\r\n autofocus=\"true\"\r\n resize=\"none\"\r\n placeholder=\"请输入你要咨询的问题\"\r\n v-model=\"textareaValue\"\r\n @keyup.enter.native=\"carriageReturn\"\r\n >\r\n </el-input>\r\n <el-button\r\n type=\"primary\"\r\n :disabled=\"!textareaValue\"\r\n :style=\"\r\n !textareaValue\r\n ? 'background-color: #F7F7F9;color: #FF575F;border-color: transparent;'\r\n : ''\r\n \"\r\n @click=\"send\"\r\n >发送</el-button\r\n >\r\n </footer>\r\n </div>\r\n <aside>\r\n <el-collapse v-model=\"activeNames\" accordion>\r\n <el-collapse-item\r\n v-for=\"(item, key, index) in questionsList\"\r\n :key=\"key\"\r\n :name=\"index\"\r\n >\r\n <template slot=\"title\">\r\n <img src=\"/cloud-img/customerService/ellipticalWenh.png\" />{{\r\n key\r\n }}\r\n </template>\r\n <div\r\n v-for=\"faq in item\"\r\n :key=\"faq\"\r\n v-html=\"faq\"\r\n @click=\"regularClick(faq)\"\r\n ></div>\r\n </el-collapse-item>\r\n </el-collapse>\r\n </aside>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport chatMixin from \"comp/YcCustomerService/chatMixin\"\r\nexport default {\r\n name: \"YcQuestion\",\r\n mixins: [chatMixin],\r\n data() {\r\n return {\r\n activeNames: [1],\r\n }\r\n },\r\n computed: {\r\n currData() {\r\n const currData = new Date()\r\n return `${currData.getHours()}:${currData.getMinutes()}`\r\n },\r\n questionsList() {\r\n return this.questions.reduce((prev, curr) => {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (prev.hasOwnProperty(curr.type)) {\r\n prev[curr.type].push(curr.faq)\r\n } else {\r\n prev[curr.type] = [curr.faq]\r\n }\r\n return prev\r\n }, {})\r\n },\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.YcQuestion {\r\n // min-width: auto;\r\n // overflow: hidden;\r\n // height: 100vh;\r\n ::v-deep .chatPage {\r\n background-color: #ffffff;\r\n\r\n > header {\r\n height: 8vw;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n gap: 5vw;\r\n padding-left: 8vw;\r\n // background: url(\"/cloud-img/customerService/chatTop.png\");\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n\r\n > div {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n // flex-direction: row-reverse;\r\n h3 {\r\n height: 1vw;\r\n margin-top: 0px;\r\n font-size: 2.125rem;\r\n font-weight: bold;\r\n color: #191a2c;\r\n font-family: Source Han Sans CN-Bold, Source Han Sans CN;\r\n }\r\n\r\n span {\r\n font-size: 1rem;\r\n font-family: LXGW New Clear Gothic-Regular, LXGW New Clear Gothic;\r\n font-weight: 400;\r\n color: #666;\r\n }\r\n }\r\n\r\n p {\r\n font-size: 1rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n font-weight: 400;\r\n color: #2e2f42;\r\n }\r\n }\r\n\r\n .main {\r\n display: flex;\r\n\r\n > div {\r\n width: 74vw;\r\n position: relative;\r\n\r\n > main {\r\n height: 62vh;\r\n overflow-y: auto;\r\n padding-bottom: 2vw;\r\n background-color: #f7f7f9;\r\n\r\n // 滚动条宽度\r\n &::-webkit-scrollbar {\r\n width: 6px;\r\n }\r\n\r\n // 滚动条轨道\r\n &::-webkit-scrollbar-track {\r\n background: rgb(239, 239, 239);\r\n border-radius: 2px;\r\n }\r\n\r\n // 小滑块\r\n &::-webkit-scrollbar-thumb {\r\n background: #ff8879;\r\n border-radius: 10px;\r\n }\r\n\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #ff755d;\r\n }\r\n\r\n > p {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n font-weight: 400;\r\n color: #909399;\r\n }\r\n\r\n .message {\r\n display: flex;\r\n gap: 15px;\r\n margin: 1.5vw 1.5vw 0px 1.5vw;\r\n opacity: 0;\r\n\r\n .avatar {\r\n width: 2.5vw;\r\n height: 2.5vw;\r\n min-width: 35px;\r\n min-height: 35px;\r\n border-radius: 50%;\r\n transition: all 0.3s linear;\r\n &:focus,\r\n &:hover {\r\n transform: scale(1.2, 1.2) rotate(15deg);\r\n }\r\n }\r\n\r\n .content {\r\n width: fit-content;\r\n max-width: 50vw;\r\n font-weight: 400;\r\n font-size: 1rem;\r\n color: #4c4c4d;\r\n padding: 10px;\r\n border-radius: 10px;\r\n position: relative;\r\n background-color: #ffffff;\r\n\r\n .href {\r\n cursor: pointer;\r\n display: block;\r\n color: #ff575f;\r\n margin-bottom: 1.5rem;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n > .based {\r\n cursor: pointer;\r\n font-size: 1rem;\r\n font-weight: 400;\r\n color: #909399;\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: flex-start;\r\n border-top: 1px solid #ebebed;\r\n padding-top: 0.625rem;\r\n margin-top: 0.625rem;\r\n gap: 0.625rem;\r\n\r\n & > span:first-child {\r\n white-space: nowrap;\r\n color: #4c4c4d;\r\n border-radius: 18px;\r\n background-color: #eeeef0;\r\n padding: 0.1875rem 0.625rem;\r\n margin-top: -0.1875rem;\r\n }\r\n\r\n & > span:last-child {\r\n width: 100%;\r\n position: relative;\r\n display: inline-block;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n padding-right: 12px;\r\n\r\n .el-icon-d-arrow-right {\r\n position: absolute;\r\n right: 0px;\r\n bottom: 0px;\r\n transform: rotate(90deg);\r\n transition: all 0.35s linear;\r\n }\r\n &.is-active {\r\n overflow: visible;\r\n white-space: normal;\r\n .el-icon-d-arrow-right {\r\n transform: rotate(270deg);\r\n }\r\n }\r\n\r\n &:hover {\r\n color: #ff575f;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.admin {\r\n animation: animation01 0.3s linear 1.5s forwards;\r\n\r\n .content {\r\n margin-top: 20px;\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 2px;\r\n left: -10px;\r\n transform: rotate(-45deg);\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #fff;\r\n }\r\n\r\n &::after {\r\n content: \"小优客服【38号为您服务】\";\r\n width: 200px;\r\n font-size: 0.875rem;\r\n font-family: Source Han Sans CN-Medium, Source Han Sans CN;\r\n font-weight: 500;\r\n color: #8b8c8f;\r\n position: absolute;\r\n left: 0px;\r\n top: -20px;\r\n }\r\n }\r\n }\r\n\r\n &.personal {\r\n animation: animation01 0.3s linear 0.3s forwards;\r\n flex-direction: row-reverse;\r\n\r\n .content::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 2px;\r\n right: -10px;\r\n transform: rotate(-45deg);\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent #ffffff transparent;\r\n }\r\n }\r\n\r\n @keyframes animation01 {\r\n 0% {\r\n transform: translateY(20px);\r\n opacity: 0;\r\n }\r\n\r\n 100% {\r\n transform: translateY(0px);\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n footer {\r\n height: 30vh;\r\n border: 1px solid #e7e7ea;\r\n\r\n > .el-textarea {\r\n border-color: transparent;\r\n\r\n textarea {\r\n overflow-y: hidden;\r\n // padding-right: 65px;\r\n font-weight: 400;\r\n color: #19191a;\r\n font-size: 1rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n }\r\n\r\n textarea,\r\n textarea:focus {\r\n border-color: transparent;\r\n }\r\n }\r\n\r\n > .el-button {\r\n float: right;\r\n // position: absolute;\r\n // bottom: 40px;\r\n // right: 40px;\r\n z-index: 1;\r\n font-size: 0.875rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n font-weight: 400;\r\n border-radius: 4px;\r\n margin-right: 2vw;\r\n width: 5vw;\r\n min-width: 92px;\r\n }\r\n }\r\n }\r\n\r\n aside {\r\n width: 26vw;\r\n height: calc(100vh - 8vw);\r\n padding: 1vw;\r\n overflow-y: auto;\r\n background-color: #ffffff;\r\n\r\n .el-collapse-item__header {\r\n color: #373a3c;\r\n font-size: 1.5rem;\r\n font-weight: 500;\r\n font-family: Source Han Sans CN-Medium, Source Han Sans CN;\r\n padding: 2rem;\r\n background-color: #f00;\r\n background: linear-gradient(#ffdad4, #ffa9a3);\r\n\r\n &.is-active {\r\n color: #ffffff;\r\n background: linear-gradient(#ff897a, #ff645a);\r\n\r\n i {\r\n color: #ffffff;\r\n }\r\n }\r\n\r\n img {\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n float: left;\r\n margin-left: -0.5rem;\r\n margin-right: 0.5rem;\r\n }\r\n\r\n i {\r\n font-size: 2rem;\r\n color: #ff575f;\r\n font-weight: 900;\r\n }\r\n }\r\n\r\n .el-collapse-item__content {\r\n font-size: 1rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n font-weight: 400;\r\n padding: 20px 20px 20px 40px;\r\n color: #000000;\r\n background-color: #f7f7f9;\r\n\r\n > div {\r\n position: relative;\r\n margin-top: 1rem;\r\n cursor: pointer;\r\n transition: all 0.3s linear;\r\n\r\n &:first-child {\r\n margin-top: 0px;\r\n }\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 5px;\r\n left: -15px;\r\n // transform: rotate(-45deg);\r\n // float: left;\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #ffa9a3;\r\n }\r\n\r\n &:hover {\r\n color: #ff575f;\r\n transform: translate(0.5rem);\r\n\r\n &::before {\r\n border-color: transparent transparent transparent #ff575f;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=b15e6fbc&prod&lang=scss&scoped=true&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b15e6fbc&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=b15e6fbc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b15e6fbc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('el-form',{ref:\"loginForm\",staticClass:\"login-form\",attrs:{\"model\":_vm.loginForm,\"rules\":_vm.loginRules}},[(_vm.loginForm.username == undefined)?_c('div',{staticClass:\"ca-bg-box\"},[_c('div',{staticClass:\"ca-bg-img\"}),_c('div',{staticClass:\"ca-bg-text\"},[_vm._v(\"请插入UKEY证书\")]),_c('img',{staticClass:\"ca-refresh\",attrs:{\"src\":require('comp/YcCA/images/refresh.png'),\"alt\":\"\"},on:{\"click\":_vm.caRead}})]):_c('div',{staticClass:\"ca-bg-info\"},[_c('div',{staticClass:\"ca-bg-text\"},[_vm._v(\" CA名称:\"),_c('span',{staticClass:\"caName\"},[_vm._v(_vm._s(_vm.loginForm.username))])]),_c('img',{staticClass:\"ca-refresh\",attrs:{\"src\":require('comp/YcCA/images/refresh.png'),\"alt\":\"\"},on:{\"click\":_vm.caRead}})]),_c('el-form-item',{attrs:{\"prop\":\"password\"}},[_c('el-input',{attrs:{\"type\":\"password\",\"auto-complete\":\"off\",\"placeholder\":\"密码\",\"show-password\":\"\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.handleLogin.apply(null, arguments)}},model:{value:(_vm.loginForm.password),callback:function ($$v) {_vm.$set(_vm.loginForm, \"password\", $$v)},expression:\"loginForm.password\"}},[_c('el-image',{staticClass:\"el-input__icon input-icon\",attrs:{\"slot\":\"prefix\",\"src\":require('./images/password.svg')},slot:\"prefix\"})],1)],1),_c('el-form-item',[_c('el-button',{staticClass:\"login-btn\",staticStyle:{\"width\":\"100%\"},attrs:{\"loading\":_vm.loading,\"size\":\"medium\",\"type\":\"primary\"},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.handleLogin.apply(null, arguments)}}},[(!_vm.loading)?_c('span',[_vm._v(\"登 录\")]):_c('span',[_vm._v(\"登 录 中...\")])])],1)],1),_c('el-dialog',{attrs:{\"title\":\"提示\",\"visible\":_vm.dialogVisible.showInfo,\"width\":\"30%\",\"center\":\"\"},on:{\"update:visible\":function($event){return _vm.$set(_vm.dialogVisible, \"showInfo\", $event)}}},[_c('span',{staticStyle:{\"color\":\"red\"}},[_vm._v(\"4444\"+_vm._s(_vm.caInfo.error_text))]),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.dialogVisible.showInfo = false}}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){_vm.dialogVisible.showInfo = false}}},[_vm._v(\"确 定\")])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=template&id=780f0723&scoped=true&\"","/* eslint-disable no-unused-vars */\r\n/*******************************************************\r\n *\r\n * 函数名称:Base64encode()\r\n * 功 能:对数据进行Base64加密\r\n * 说\t明:函数中将数据使用_utf8_encode()进行编码转换后再加密,保证数据完整\r\n *\r\n **********************************************************/\r\n\r\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n\r\nexport function _Base64encode (input) {\r\n\r\n var output = \"\";\r\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\r\n var i = 0;\r\n\r\n input = _utf8_encode(input);\r\n\r\n while (i < input.length) {\r\n\r\n chr1 = input.charCodeAt(i++);\r\n chr2 = input.charCodeAt(i++);\r\n chr3 = input.charCodeAt(i++);\r\n\r\n enc1 = chr1 >> 2;\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n enc4 = chr3 & 63;\r\n\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64;\r\n } else if (isNaN(chr3)) {\r\n enc4 = 64;\r\n }\r\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\r\n }\r\n return output;\r\n}\r\n\r\n/*******************************************************\r\n *\r\n * 函数名称:Base64decode()\r\n * 功 能:对数据进行Base64解密\r\n * 说\t明:函数中将数据使用_utf8_decode()将解密后的数据编码,保证数据完整\r\n *\r\n **********************************************************/\r\nfunction _Base64decode (input) {\r\n var output = \"\";\r\n var chr1, chr2, chr3;\r\n var enc1, enc2, enc3, enc4;\r\n var i = 0;\r\n\r\n //input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n // eslint-disable-next-line no-useless-escape\r\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n while (i < input.length) {\r\n\r\n enc1 = _keyStr.indexOf(input.charAt(i++));\r\n enc2 = _keyStr.indexOf(input.charAt(i++));\r\n enc3 = _keyStr.indexOf(input.charAt(i++));\r\n enc4 = _keyStr.indexOf(input.charAt(i++));\r\n\r\n chr1 = (enc1 << 2) | (enc2 >> 4);\r\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n chr3 = ((enc3 & 3) << 6) | enc4;\r\n\r\n output = output + String.fromCharCode(chr1);\r\n\r\n if (enc3 != 64) {\r\n output = output + String.fromCharCode(chr2);\r\n }\r\n if (enc4 != 64) {\r\n output = output + String.fromCharCode(chr3);\r\n }\r\n\r\n }\r\n\r\n output = _utf8_decode(output);\r\n\r\n return output;\r\n}\r\n\r\n/*******************************************************\r\n *\r\n * 函数名称:_utf8_encode()\r\n * 功 能:将数据进行utf8编码\r\n * 说\t明:\r\n *\r\n **********************************************************/\r\nfunction _utf8_encode (in_string) {\r\n var string = \"\" + in_string;\r\n string = string.replace(/\\r\\n/g, \"\\n\");\r\n var utftext = \"\";\r\n\r\n for (var n = 0; n < string.length; n++) {\r\n\r\n var c = string.charCodeAt(n);\r\n\r\n if (c < 128) {\r\n utftext += String.fromCharCode(c);\r\n } else if ((c > 127) && (c < 2048)) {\r\n utftext += String.fromCharCode((c >> 6) | 192);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n } else {\r\n utftext += String.fromCharCode((c >> 12) | 224);\r\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n }\r\n }\r\n return utftext;\r\n}\r\n\r\n/*******************************************************\r\n *\r\n * 函数名称:_utf8_decode()\r\n * 功 能:将数据进行utf8解码\r\n * 说\t明:\r\n *\r\n **********************************************************/\r\nfunction _utf8_decode (utftext) {\r\n var string = \"\";\r\n var i = 0;\r\n var c1 = 0;\r\n var c2 = 0;\r\n var c3 = 0;\r\n var c = c1 = c2 = 0;\r\n\r\n while (i < utftext.length) {\r\n\r\n c = utftext.charCodeAt(i);\r\n\r\n if (c < 128) {\r\n string += String.fromCharCode(c);\r\n i++;\r\n } else if ((c > 191) && (c < 224)) {\r\n c2 = utftext.charCodeAt(i + 1);\r\n string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\r\n i += 2;\r\n } else {\r\n c2 = utftext.charCodeAt(i + 1);\r\n c3 = utftext.charCodeAt(i + 2);\r\n string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n i += 3;\r\n }\r\n }\r\n return string;\r\n}\r\n","/**\r\n * @name mTokenPlugin集成代码\r\n * @author Akay\r\n * @version 0.7.12\r\n * @date 2020.07.21\r\n *\r\n * @description\r\n *ver 0.7.12 2020.12.21\r\n * 1. 新增操作系统判断,根据不同的系统加载不同的配置\r\n *\r\n *ver 0.7.11 2020.07.21\r\n *\t1. 解决Https的问题\r\n *\r\n * ver 0.7.10 2020.04.04\r\n * 1. 新增获取设备序号\r\n * 2. 支持多Key\r\n *\r\n * ver 0.7.9 2020.01.08\r\n * 1. 支持SJK1137型号\r\n *\r\n * ver 0.7.8 2019.10.23\r\n * 1. 新增UKey适配\r\n *\r\n * ver 0.7.4 2019.09.18\r\n * 1. 新增证书生效,失效时间\r\n *\r\n * ver 0.7.3 2019.08.19\r\n * 1. 获取证书使用者信息\r\n *\r\n * ver 0.7.2 2019.08.08\r\n * 1. 新增远程解锁接口\r\n *\r\n * ver 0.7.1 2019.07.17\r\n * TODO: 未安装组件时,判断组件是否安装(暂定,未解决)\r\n *\r\n * ver 0.7.0 2019.07.04\r\n * 1. 更新核心文件,解决多Key插入问题\r\n * 2. Ukey目前仅支持国密证书\r\n *\r\n * ver 0.6.3 2019.06.24\r\n * 1. 修复部分Bug\r\n *\r\n * ver 0.6.1 2019.06.24\r\n * 1. 支持数字信封数据解密接口\r\n * 2. 修复加密接口错误部分。\r\n *\r\n * ver 0.6.0 2019.06.20\r\n * 1. 支持数字信封数据加密接口\r\n * 2. 暂不支持多Ukey\r\n *\r\n * ver 0.5.1 2019.06.19\r\n * 1. 修正新Ukey引入导致的Bug\r\n *\r\n * ver 0.5 2019.06.18\r\n * 1. 适配SJK1137型号Ukey\r\n *\r\n * ver 0.4 2019.03.16\r\n * 1. 新增方法 枚举Ukey获取证书“G项信息”列表\r\n * 2. 新增方法 将“证书G项信息”转化为“证书名称”方法\r\n *\r\n * ver 0.3 2018.12.10\r\n * 1. 新增修改Ukey密码的方法\r\n *\r\n * ver 0.2 2018.09.26\r\n * 1. 新增获取签名证书SN号的方法\r\n * 2. 修正部分Bug\r\n *\r\n * ver 0.1 2018.09.21\r\n * 1. 搭建初步框架\r\n * 2. 完成签名功能\r\n *\r\n */\r\nimport { mToken } from \"comp/YcCA/mTokenPlugin/mToken\";\r\nimport { _Base64encode } from \"comp/YcCA/mTokenPlugin/base64\";\r\nexport function hunca_mToken_core () {\r\n\r\n var token = new mToken(\"mTokenPlugin\");\r\n // eslint-disable-next-line no-unused-vars\r\n var certInfoList = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var singleKey = 0;\r\n var libraryNameList = null;\r\n\r\n if ((navigator.platform == \"Win32\") || (navigator.platform == \"Windows\")) {\r\n libraryNameList = Array(\"GM3000\", \"HT\", \"SJK1137\");\r\n } else {\r\n //libraryNameList = Array(\"GM3000\"); //国产操作系统支持GM3000型号\r\n libraryNameList = Array(\"HT\"); //国产操作系统支持海泰型号\r\n }\r\n /**\r\n * 错误信息\r\n */\r\n var LAST_ERRORSTRING = \"\";\r\n\r\n /**\r\n * 证书用途\r\n */\r\n var KEY_SPEC_TYPE_ENCRYPT = 0;\r\n var KEY_SPEC_TYPE_SIGN = 1;\r\n\r\n /**\r\n * 摘要算法\r\n */\r\n var SGD_SM3 = 1;\r\n // eslint-disable-next-line no-unused-vars\r\n var SGD_SHA1 = 2;\r\n\r\n /**\r\n * 加密算法\r\n */\r\n //分组加密算法标识\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_ECB = 0x00000101;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_CBC = 0x00000102;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_CFB = 0x00000104;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_OFB = 0x00000108;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_MAC = 0x00000110;\r\n let SGD_SM4_ECB = 0x00000401;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM4_CBC = 0x00000402;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM4_CFB = 0x00000404;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM4_OFB = 0x00000408;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM4_MAC = 0x00000410;\r\n\r\n\r\n /**\r\n * 用户ID(固定)\r\n */\r\n var USER_ID = \"1234567812345678\";\r\n\r\n\r\n /**\r\n * 错误信息提示列表\r\n */\r\n var ERROR_MESSAGE_NOT_LOADLIBRARY = \"控件加载失败,错误码:\";\r\n var ERROR_MESSAGE_NOT_FIND_UKEY = \"未找到UKey!\\n1.请确认是否安装最新驱动!\\n2.计算机是否插入湖南CA UKey!\";\r\n // eslint-disable-next-line no-unused-vars\r\n var ERROR_MSSSAGE_FIND_MORE_UKEY = \"计算机插入多个UKey,请拔除多余“湖南CA UKey”!\";\r\n var ERROR_MESSAGE_NOT_INSTANCE_DEVICE = \"USBKey实例化失败,请确认此UKey是否插入计算机!\\n点击‘刷新’按钮,更新设备列表。\\n错误码:\";\r\n var ERROR_MESSAGE_USERPIN_LENGTH = \"Ukey密码必须为4~16位!\";\r\n var ERROR_MESSAGE_USERPIN_IS_ERROR = \"UKey密码错误\";\r\n var ERROR_MESSAGE_USERPIN_CHANGE_ERROR = \"UKey密码修改失败\";\r\n var ERROR_MESSAGE_KEY_NOT_EXIT = \"UKey不存在,请确认此UKey是否插入计算机,并点击'刷新'按钮,更新设备列表!\";\r\n var ERROR_MESSAGE_USERNAME_IS_NULL = \"请点击‘刷新’按钮,更新设备列表并选择相应设备!\";\r\n var ERROR_MESSAGE_KEY_EXPORT_CERT = \"证书获取失败,请加检测Key中是否存在证书!\";\r\n var ERROR_MESSAGE_SET_DIGEST_METHOD_ERROR = \"设置摘要算法失败,请重新刷新浏览器!\";\r\n var ERROR_MESSAGE_SET_USERID_ERROR = \"设置用户ID失败,请重新刷新浏览器\";\r\n var ERROR_MESSAGE_SIGN_ORIGINALDATA_IS_NULL = \"签名失败,待签名原文不能为空\";\r\n var ERROR_MESSAGE_SIGN_ERROR = \"签名失败,返回错误码:\";\r\n var ERROR_MESSAGE_USERNAMEGN_IS_NULL = \"请点击‘刷新’按钮,更新设备列表并选择相应设备!\";\r\n var ERROR_MESSAGE_USERNAMEGN_TO_USERNAME_ERROR = \"证书G项信息转化证书名称失败,请点击“刷新”按钮!\";\r\n var ERROR_MESSAGE_KEY_LIBRAY = \"加载国密库失败!\";\r\n var ERROR_MESSAGE_ENCRYPT_DATA_IS_NULL = \"加密失败:待加密原文不能为空!\";\r\n var ERROR_MESSAGE_DECRYPT_DATA_IS_NULL = \"解密失败:待解密密文不能为空!\";\r\n var ERROR_MESSAGE_DECRYPT_DATA_IS_ERROR = \"解密失败:请确认密文是否完整!\\n解密所采用的Ukey是否为加密时的Ukey!\";\r\n var ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_FAIL = \"申请解锁请求失败!\";\r\n var ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_NOT_SUPPORT = \"此型号Ukey不支持解锁!\";\r\n var ERROR_MESSAGE_REMOTE_UNLOCK_FAIL = \"Ukey解锁失败!\";\r\n\r\n /**\r\n * 私有变量\r\n */\r\n var tokenInfoList = null;\r\n\r\n /**\r\n * 私有变量\r\n */\r\n var signResultSignData = null;\r\n var signResultCert = null;\r\n\r\n /**\r\n * 证书信息\r\n */\r\n var certSn = null; //证书Sn\r\n var cert_subject_GN = null; //证书Gn\r\n var cert_subject = null; //证书使用者\r\n var cert_validTime = null; //证书失效时间\r\n var cert_notbeforetime = null; //证书生效时间\r\n\r\n /**\r\n * 返回错误信息\r\n */\r\n this.Hunca_GetLastError = function () {\r\n return LAST_ERRORSTRING;\r\n }\r\n\r\n /**\r\n * 获取证书列表\r\n */\r\n this.Hunca_GetUserList = function () {\r\n var deviceArray = null;\r\n var containerName = null;\r\n var userName = null;\r\n var tmpInfo = null;\r\n\r\n signResultCert = null;\r\n signResultSignData = null;\r\n tokenInfoList = new Array(); //清空信息\r\n\r\n for (var index = 0; index < libraryNameList.length; index++) {\r\n var libraryName = libraryNameList[index];\r\n if (!SOF_LoadLibrary(libraryName)) {\r\n continue;\r\n }\r\n\r\n deviceArray = SOF_EnumDevice();\r\n if (null == deviceArray) {\r\n continue;\r\n }\r\n\r\n for (var i = 0; i < deviceArray.length; i++) {\r\n var tokenInfo = new Object();\r\n //实例化设备失败\r\n if (!SOF_GetDeviceInstance(deviceArray[i])) {\r\n break;\r\n }\r\n\r\n //获取设备信息\r\n tmpInfo = SOF_GetUserList();\r\n if (null != tmpInfo || tmpInfo.length != 0) {\r\n containerName = tmpInfo[0][1];\r\n userName = tmpInfo[0][0];\r\n\r\n tokenInfo.libraryName = libraryName; //Ukey型号\r\n tokenInfo.serial = deviceArray[i]; //设备序列号\r\n tokenInfo.userName = userName; //证书名称\r\n tokenInfo.containerName = containerName; //应用名称\r\n\r\n tokenInfoList.push(tokenInfo);\r\n } else {\r\n continue;\r\n }\r\n SOF_LogOut();\r\n }\r\n }\r\n\r\n //返回证书信息\r\n var userNameList = new Array();\r\n for (let i = 0; i < tokenInfoList.length; i++) {\r\n userNameList[i] = tokenInfoList[i].userName;\r\n }\r\n\r\n if (userNameList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return \"\";\r\n }\r\n\r\n return userNameList;\r\n }\r\n\r\n /**\r\n * 获取证书G项信息列表\r\n */\r\n this.Hunca_GetUserListGN = function Hunca_GetUserListGN () {\r\n var deviceArray = null;\r\n var containerName = null;\r\n var userName = null;\r\n var tmpInfo = null;\r\n var certB64 = null;\r\n var deviceSerial = \"\";\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultCert = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultSignData = null;\r\n tokenInfoList = new Array(); //清空信息\r\n var LAST_ERRORSTRING = \"\";\r\n\r\n for (var index = 0; index < libraryNameList.length; index++) {\r\n var libraryName = libraryNameList[index];\r\n //加载控件\r\n if (!SOF_LoadLibrary(libraryName)) {\r\n continue;\r\n }\r\n\r\n deviceArray = SOF_EnumDevice();\r\n if (null == deviceArray) {\r\n continue;\r\n }\r\n\r\n for (var i = 0; i < deviceArray.length; i++) {\r\n cert_subject_GN = null;\r\n certSn = null;\r\n deviceSerial = deviceArray[i];\r\n\r\n var tokenInfo = new Object();\r\n\r\n //实例化设备失败\r\n if (!SOF_GetDeviceInstance(deviceSerial)) {\r\n break;\r\n }\r\n\r\n //获取设备信息\r\n tmpInfo = SOF_GetUserList();\r\n if (null != tmpInfo || tmpInfo.length != 0) {\r\n containerName = tmpInfo[0][1];\r\n userName = tmpInfo[0][0];\r\n\r\n tokenInfo.libraryName = libraryName;\r\n tokenInfo.serial = deviceArray[i]; //设备序列号\r\n tokenInfo.userName = userName; //证书名称\r\n tokenInfo.containerName = containerName;\r\n } else {\r\n continue;\r\n }\r\n\r\n //获取证书G项信息\r\n certB64 = SOF_ExportUserCert(tokenInfo.containerName, KEY_SPEC_TYPE_SIGN);\r\n if (SOF_GetCertInfo(certB64)) {\r\n tokenInfo.subjectGN = cert_subject_GN; //设备证书G项目;\r\n } else {\r\n continue;\r\n }\r\n\r\n tokenInfoList.push(tokenInfo);\r\n SOF_LogOut();\r\n }\r\n }\r\n\r\n //返回证书G项信息\r\n var userNameGNList = new Array();\r\n for (let i = 0; i < tokenInfoList.length; i++) {\r\n userNameGNList[i] = tokenInfoList[i].subjectGN;\r\n }\r\n\r\n if (userNameGNList.length == 0) {\r\n // eslint-disable-next-line no-unused-vars\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return \"\";\r\n }\r\n\r\n /*****\r\n if (userNameGNList.length > 1){\r\n LAST_ERRORSTRING = ERROR_MSSSAGE_FIND_MORE_UKEY;\r\n return \"\";\r\n }\r\n ****/\r\n return userNameGNList;\r\n }\r\n\r\n /**\r\n * 将证书G项信息转化为证书名称\r\n */\r\n this.Hunca_userNameGNToUserName = function (userNameGN) {\r\n var userName = null;\r\n LAST_ERRORSTRING = \"\";\r\n if (null == userNameGN || userNameGN.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAMEGN_IS_NULL;\r\n }\r\n\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n if (userNameGN == tokenInfoList[i].subjectGN) {\r\n userName = tokenInfoList[i].userName;\r\n break;\r\n }\r\n }\r\n\r\n if (null == userName || userName.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAMEGN_TO_USERNAME_ERROR;\r\n return null;\r\n }\r\n return userName;\r\n }\r\n\r\n this.Hunca_GenRemoteUnblockRequest = function (userName) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var request = \"\";\r\n\r\n LAST_ERRORSTRING = \"\";\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //判断设备是否支持远程解锁\r\n if (tokenInfo.libraryName != \"GM3000\") {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_NOT_SUPPORT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return false;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //枚举容器,并选择第一个容器\r\n if (SOF_GetUserList() == null) {\r\n return false;\r\n }\r\n\r\n //远程解锁\r\n request = SOF_GenRemoteUnblockRequest()\r\n\r\n return request;\r\n }\r\n\r\n this.HUnca_GetDeviceNumber = function (userName) {\r\n var m_devNumber = null;\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n let tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n // eslint-disable-next-line no-undef\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n // eslint-disable-next-line no-undef\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n // eslint-disable-next-line no-undef\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return false;\r\n }\r\n\r\n //实例化设备\r\n // eslint-disable-next-line no-undef\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n m_devNumber = SOF_GetDeviceNumber();\r\n\r\n return m_devNumber + \"\";\r\n }\r\n\r\n this.Hunca_RemoteUnlockPIN = function (userName, response) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var result = false;\r\n\r\n LAST_ERRORSTRING = \"\";\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //判断设备是否支持远程解锁\r\n if (tokenInfo.libraryName != \"GM3000\") {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_NOT_SUPPORT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return false;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //枚举容器,并选择第一个容器\r\n if (SOF_GetUserList() == null) {\r\n return false;\r\n }\r\n\r\n //远程解锁\r\n result = SOF_RemoteUnlockPIN(response)\r\n return result;\r\n }\r\n\r\n /**\r\n * 修改Ukey密码\r\n */\r\n this.Hunca_ChangeUserPin = function (userName, oldUserPin, newUserPin) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n LAST_ERRORSTRING = \"\";\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //修改密码\r\n if (!SOF_ChangeUserPin(oldUserPin, newUserPin)) {\r\n return false;\r\n }\r\n\r\n SOF_LogOut();\r\n return true;\r\n }\r\n\r\n /**\r\n * 对数据进行签名,并返回签名是否成功\r\n * @param {string} originalData 待签名原文\r\n * @param {string} userName Ukey用户名称\r\n * @param {string} userPin Ukey密码\r\n */\r\n this.Hunca_PKCS1 = function (originalData, userName, userPin) {\r\n // eslint-disable-next-line no-unused-vars\r\n var libraryName = null;\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var certBase64 = null; //签名证书值\r\n\r\n var LAST_ERRORSTRING = \"\";\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultInfo = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var certInfo = new Object();\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n // eslint-disable-next-line no-unused-vars\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //登陆应用\r\n if (!SOF_Login(userPin)) {\r\n return false;\r\n }\r\n\r\n //获取签名证书Base64\r\n certBase64 = SOF_ExportUserCert(tokenInfo.containerName, KEY_SPEC_TYPE_SIGN);\r\n if (null == certBase64) {\r\n return false;\r\n }\r\n\r\n //设置摘要算法\r\n if (!SOF_SetDigestMethod(SGD_SM3)) {\r\n return false;\r\n }\r\n\r\n if (!SOF_SetUserID()) {\r\n return false;\r\n }\r\n\r\n //进行签名\r\n if (!SOF_SignData(tokenInfo.containerName, SGD_SM3, originalData, certBase64)) {\r\n return false;\r\n }\r\n\r\n //获取证书信息\r\n if (!SOF_GetCertInfo(certBase64)) {\r\n return false;\r\n }\r\n\r\n SOF_LogOut();\r\n return true;\r\n }\r\n\r\n /**\r\n * 获取签名结果\r\n */\r\n this.Hunca_GetSignData = function () {\r\n return signResultSignData;\r\n }\r\n\r\n /**\r\n * 获取签名证书\r\n */\r\n this.Hunca_GetSignCert = function () {\r\n return signResultCert;\r\n }\r\n\r\n this.Hunca_GetSignCertSn = function () {\r\n return certSn\r\n }\r\n\r\n this.Hunca_GetSignCertSubject = function () {\r\n return cert_subject;\r\n }\r\n\r\n this.Hunca_GetValidTime = function () {\r\n return cert_validTime;\r\n }\r\n\r\n this.HUnca_GetNotBeforeTime = function () {\r\n return cert_notbeforetime;\r\n }\r\n /**\r\n * 处理设备中签名证书信息\r\n * @param {*} userName\r\n */\r\n this.Hunca_DealCertInfo = function (userName) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var certBase64 = null; //签名证书值\r\n\r\n LAST_ERRORSTRING = \"\";\r\n // eslint-disable-next-line no-undef\r\n signResultInfo = null;\r\n // eslint-disable-next-line no-undef\r\n certInfo = new Object();\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return false;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //导出证书\r\n certBase64 = SOF_ExportUserCert(tokenInfo.containerName, KEY_SPEC_TYPE_SIGN);\r\n if (null == certBase64 || certBase64.length == 0) {\r\n return false;\r\n }\r\n\r\n SOF_GetCertInfo(certBase64);\r\n SOF_LogOut();\r\n return true;\r\n }\r\n\r\n /**\r\n * 对数据进行数字信封加密\r\n * @param {string} inData 待加密原文\r\n * @param {string} userName Ukey用户名称\r\n * @param {string} EncryptMethod 对称加密方式\r\n * @param {string} EncryptIV 加密IV值\r\n * @returns {string} \"\",加密失败;非空,加密成功\r\n */\r\n this.Hunca_EncryptDataPKCS7 = function (inData, userName, EncryptMethod, EncryptIV) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var certBase64 = null; //签名证书值\r\n var m_EncryptMethod = \"\",\r\n m_EncryptIV = \"\";\r\n\r\n var LAST_ERRORSTRING = \"\";\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultInfo = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var certInfo = new Object();\r\n\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return \"\";\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return \"\";\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return \"\";\r\n }\r\n\r\n //加载链接库\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n // eslint-disable-next-line no-unused-vars\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return \"\";\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return \"\";\r\n }\r\n\r\n //导出加密证书\r\n certBase64 = SOF_ExportUserCert(tokenInfo.containerName, KEY_SPEC_TYPE_ENCRYPT);\r\n if (null == certBase64 || certBase64.length == 0) {\r\n return \"\";\r\n }\r\n\r\n //设置加密方式\r\n\r\n m_EncryptMethod = EncryptMethod + \"\";\r\n m_EncryptIV = EncryptIV + \"\";\r\n\r\n if (m_EncryptMethod == null || m_EncryptMethod.length == 0) {\r\n m_EncryptMethod = SGD_SM4_ECB;\r\n m_EncryptIV = \"\";\r\n }\r\n\r\n if (!SOF_SetEncryptMethodAndIV(m_EncryptMethod, m_EncryptIV)) {\r\n return \"\";\r\n }\r\n\r\n //对数据进行加密\r\n // eslint-disable-next-line no-undef\r\n encryptData = SOF_EncryptDataPKCS7(certBase64, inData);\r\n\r\n SOF_LogOut();\r\n\r\n // eslint-disable-next-line no-undef\r\n return encryptData;\r\n }\r\n\r\n /**\r\n * 对密文进行数字信封解密操作\r\n * @param {string} encryptData 待解密密文\r\n * @param {string} userName Ukey用户名称\r\n * @param {string} userPin Ukey用户PIN码\r\n * @param {string} EncryptMethod 对称加密方式\r\n * @param {string} EncryptIV 加密IV值\r\n * @returns {string} \"\",加密失败;非空,加密成功\r\n */\r\n this.Hunca_DecryptDataPKCS7 = function (encryptData, userName, userPin, EncryptMethod, EncryptIV) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var m_EncryptMethod = \"\",\r\n m_EncryptIV = \"\";\r\n var m_EncryptData = \"\";\r\n var m_DecryptData = \"\";\r\n var resData = \"\";\r\n\r\n var LAST_ERRORSTRING = \"\";\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultInfo = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var certInfo = new Object();\r\n\r\n\r\n m_EncryptData = \"\" + encryptData;\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return \"\";\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return \"\";\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return \"\";\r\n }\r\n\r\n //加载链接库\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return \"\";\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return \"\";\r\n }\r\n\r\n //登陆应用\r\n if (!SOF_Login(userPin)) {\r\n return \"\";\r\n }\r\n\r\n //设置加密方式\r\n m_EncryptMethod = EncryptMethod + \"\";\r\n m_EncryptIV = EncryptIV + \"\";\r\n if (m_EncryptMethod == null || m_EncryptMethod.length == 0) {\r\n m_EncryptMethod = SGD_SM4_ECB;\r\n m_EncryptIV = \"\";\r\n }\r\n\r\n if (!SOF_SetEncryptMethodAndIV(m_EncryptMethod, m_EncryptIV)) {\r\n return \"\";\r\n }\r\n\r\n m_DecryptData = SOF_DecryptDataPKCS7(tokenInfo.containerName, KEY_SPEC_TYPE_ENCRYPT, m_EncryptData);\r\n if (m_DecryptData.length == 0) {\r\n return \"\";\r\n }\r\n\r\n try {\r\n // eslint-disable-next-line no-undef\r\n resData = _Base64decode(m_DecryptData);\r\n } catch (e) {\r\n resData = m_DecryptData;\r\n // eslint-disable-next-line no-unused-vars\r\n LAST_ERRORSTRING = \"解密失败:Base64解码失败\";\r\n }\r\n\r\n return resData;\r\n }\r\n\r\n /**\r\n * 加载底层文件\r\n * @returns {boolean} true,加载成功;false加载失败;\r\n */\r\n function SOF_LoadLibrary (libraryName) {\r\n var resultCode = 0;\r\n if (libraryName == \"GM3000\") {\r\n resultCode = token.SOF_LoadLibrary(token.GM3000);\r\n }\r\n else if (libraryName == \"HT\") {\r\n resultCode = token.SOF_LoadLibrary(token.HT);\r\n }\r\n else if (libraryName == \"SJK1137\") {\r\n resultCode = token.SOF_LoadLibrary(token.SJK1137);\r\n }\r\n\r\n if (resultCode != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_LOADLIBRARY + token.SOF_GetLastError();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 枚举设备\r\n */\r\n function SOF_EnumDevice () {\r\n var deviceNameList = \"\";\r\n\r\n deviceNameList = token.SOF_EnumDevice();\r\n\r\n //检测是否插入USBKey\r\n if (null == deviceNameList || deviceNameList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return null;\r\n }\r\n\r\n return deviceNameList;\r\n }\r\n\r\n /**\r\n * 实例化设备,为后续一系列操作准备\r\n * @param {string} deviceName 设备名称\r\n */\r\n function SOF_GetDeviceInstance (deviceName) {\r\n var resultCode = 0;\r\n\r\n resultCode = token.SOF_GetDeviceInstance(deviceName, \"\");\r\n //设备未正常实例化\r\n if (resultCode != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_INSTANCE_DEVICE + token.SOF_GetLastError();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 枚举应用中的容器\r\n */\r\n function SOF_GetUserList () {\r\n var userList = \"\";\r\n\r\n userList = token.SOF_GetUserList();\r\n if (null == userList || userList.length == 0) {\r\n LAST_ERRORSTRING = \"USBkey中未找到证书!\";\r\n return null;\r\n }\r\n\r\n return userList;\r\n }\r\n\r\n /**\r\n * 登陆应用,验证密码是否正确\r\n * @param {string} userPin\r\n */\r\n function SOF_Login (userPin) {\r\n var resultCode = 0;\r\n var m_userPin = \"\" + userPin;\r\n var RetryCount = 0;\r\n\r\n if (null == m_userPin || m_userPin.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n if (m_userPin.length < 4 || m_userPin.length > 16) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n resultCode = token.SOF_Login(m_userPin);\r\n if (resultCode != 0) {\r\n RetryCount = SOF_GetPinRetryCount();\r\n if (RetryCount > 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_IS_ERROR + \",还剩 \" + RetryCount + \" 次重试机会!\";\r\n } else {\r\n LAST_ERRORSTRING = \"UKey已经锁死,请联系管理员进行解锁!\"\r\n }\r\n return false;\r\n }\r\n return true\r\n }\r\n\r\n /**\r\n * 修改UKey密码\r\n * @param {*} oldUserPin\r\n * @param {*} newUserPin\r\n */\r\n function SOF_ChangeUserPin (oldUserPin, newUserPin) {\r\n var resultCode = 0;\r\n var m_oldUserPin = \"\" + oldUserPin;\r\n var m_newUserPin = \"\" + newUserPin;\r\n var RetryCount = 0;\r\n\r\n if (null == m_oldUserPin || m_oldUserPin.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n if (null == m_newUserPin || m_newUserPin.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n if (m_oldUserPin.length < 4 || m_oldUserPin.length > 16) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n if (m_newUserPin.length < 4 || m_newUserPin.length > 16) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n resultCode = token.SOF_ChangePassWd(m_oldUserPin, m_newUserPin);\r\n if (resultCode != 0) {\r\n RetryCount = SOF_GetPinRetryCount();\r\n if (RetryCount > 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_CHANGE_ERROR + \",还剩 \" + RetryCount + \" 次重试机会!\";\r\n } else {\r\n LAST_ERRORSTRING = \"UKey已经锁死,请联系管理员进行解锁!\"\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 返回重试次数\r\n */\r\n function SOF_GetPinRetryCount () {\r\n var retryCount = 0;\r\n retryCount = token.SOF_GetPinRetryCount();\r\n return retryCount;\r\n }\r\n\r\n function SOF_GetDeviceNumber () {\r\n var deviceNumber = null;\r\n deviceNumber = token.SOF_GetDeviceInfo(token.SGD_DEVICE_SERIAL_NUMBER);\r\n return deviceNumber;\r\n }\r\n\r\n /**\r\n * 导出证书值\r\n * @param {string} containerName 容器名称\r\n * @param {int} keySec 证书用途\r\n */\r\n function SOF_ExportUserCert (containerName, keySec) {\r\n var certBase64;\r\n certBase64 = token.SOF_ExportUserCert(containerName, keySec);\r\n if (null == certBase64 || certBase64.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_EXPORT_CERT;\r\n return null;\r\n }\r\n return certBase64;\r\n }\r\n\r\n /**\r\n * 设置加密算法\r\n * @param {*} EncryptMethod 设置加密算法\r\n * @param {*} EncryptIV 设置IV值\r\n */\r\n function SOF_SetEncryptMethodAndIV (EncryptMethod, EncryptIV) {\r\n var resCode = 1;\r\n\r\n if (EncryptMethod == undefined || EncryptMethod == null) {\r\n LAST_ERRORSTRING = \"请设置加密方式!\";\r\n return false;\r\n }\r\n\r\n resCode = token.SOF_SetEncryptMethodAndIV(EncryptMethod, _Base64encode(EncryptIV));\r\n if (resCode != 0) {\r\n LAST_ERRORSTRING = token.SOF_GetLastError();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 设置签名算法\r\n * @param {}} digestMethod\r\n */\r\n function SOF_SetDigestMethod (digestMethod) {\r\n var resultCode = 0;\r\n resultCode = token.SOF_SetDigestMethod(digestMethod);\r\n if (resultCode != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_SET_DIGEST_METHOD_ERROR;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * 设置默认USERID\r\n */\r\n function SOF_SetUserID () {\r\n var resultCode = 0;\r\n resultCode = token.SOF_SetUserID(USER_ID);\r\n if (resultCode != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_SET_USERID_ERROR;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 数字信封加密\r\n * @param {String} Base64EncodeCert 加密证书值\r\n * @param {String} inData 待加密原文\r\n * @returns {*} \"\",表示加密失败;非空,加密成功\r\n */\r\n function SOF_EncryptDataPKCS7 (Base64EncodeCert, inData) {\r\n var encryptData = \"\";\r\n var inDataBase64 = \"\";\r\n var m_inData = \"\";\r\n\r\n m_inData = \"\" + inData;\r\n if (m_inData.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_ENCRYPT_DATA_IS_NULL;\r\n return \"\";\r\n }\r\n\r\n inDataBase64 = _Base64encode(m_inData)\r\n encryptData = token.SOF_EncryptDataPKCS7(Base64EncodeCert, inDataBase64, inData.length);\r\n\r\n if (encryptData == null || encryptData.length == 0) {\r\n LAST_ERRORSTRING = \"加密失败,\" + token.SOF_GetLastError();\r\n return \"\";\r\n }\r\n return encryptData;\r\n }\r\n\r\n /**\r\n * 数字信封解密\r\n * @param {*} containerName 应用名称\r\n * @param {int} cerType\r\n * @param {*} encrypedData\r\n */\r\n function SOF_DecryptDataPKCS7 (containerName, cerType, encrypedData) {\r\n var m_EncrypedData = \"\",\r\n m_DecryptData = \"\";\r\n\r\n m_EncrypedData = \"\" + encrypedData;\r\n if (containerName == null || containerName.length == 0) {\r\n LAST_ERRORSTRING = \"应用名称不能为空!\";\r\n return \"\";\r\n }\r\n\r\n if (m_EncrypedData.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_DECRYPT_DATA_IS_NULL;\r\n return \"\";\r\n }\r\n\r\n try {\r\n m_DecryptData = token.SOF_DecryptDataPKCS7(containerName, cerType, m_EncrypedData);\r\n } catch (e) {\r\n m_DecryptData = \"\";\r\n }\r\n if (undefined == m_DecryptData || m_DecryptData == null || m_DecryptData == \"\") {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_DECRYPT_DATA_IS_ERROR;\r\n return \"\";\r\n }\r\n\r\n return m_DecryptData;\r\n }\r\n\r\n /**\r\n * 数据签名\r\n * @param {*} containerName\r\n * @param {*} ulKeySpec\r\n * @param {*} data\r\n * @param {*} certBase64\r\n */\r\n function SOF_SignData (containerName, ulKeySpec, data, certBase64) {\r\n var signData = null;\r\n var b64Data = null;\r\n var m_data = \"\" + data;\r\n\r\n\r\n if (null == m_data || m_data.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_SIGN_ORIGINALDATA_IS_NULL;\r\n return false;\r\n }\r\n\r\n b64Data = _Base64encode(m_data);\r\n signData = token.SOF_SignData(containerName, ulKeySpec, _Base64encode(b64Data), b64Data.length)\r\n if (null == signData || signData.length == 0) {\r\n // eslint-disable-next-line no-undef\r\n LAST_ERRORSTRING = ERROR_MESSAGE_SIGN_ERROR + SOF_GetLastError();\r\n return false;\r\n }\r\n\r\n signResultCert = certBase64;\r\n signResultSignData = signData;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * 导出证书\r\n * @param {*} certBase64\r\n */\r\n function SOF_GetCertInfo (certBase64) {\r\n var str = null;\r\n var subject = null;\r\n var tmpList = null;\r\n var validTime = null;\r\n var notBeforetime = null;\r\n var key, value;\r\n\r\n if (null == certBase64 || certBase64.length == 0) {\r\n return false;\r\n }\r\n\r\n cert_subject_GN = \"\";\r\n certSn = \"\";\r\n cert_subject = \"\";\r\n\r\n str = token.SOF_GetCertInfo(certBase64, token.SGD_CERT_SERIAL);\r\n certSn = hexToDec(str);\r\n\r\n subject = token.SOF_GetCertInfo(certBase64, token.SGD_CERT_SUBJECT);\r\n cert_subject = subject;\r\n\r\n validTime = token.SOF_GetCertInfo(certBase64, token.SGD_CERT_VALID_TIME);\r\n cert_validTime = validTime;\r\n\r\n notBeforetime = token.SOF_GetCertInfo(certBase64, token.SGD_CERT_NOT_BEFORE);\r\n cert_notbeforetime = notBeforetime;\r\n\r\n tmpList = subject.split(',');\r\n for (var i = 0; i < tmpList.length; i++) {\r\n if (tmpList[i].indexOf(\"=\") == -1) {\r\n continue;\r\n }\r\n\r\n key = tmpList[i].split('=')[0];\r\n value = tmpList[i].split('=')[1];\r\n\r\n if (key == 'GN') {\r\n cert_subject_GN = value;\r\n break;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n\r\n /**\r\n * 登出UKey\r\n */\r\n function SOF_LogOut () {\r\n token.SOF_LogOut();\r\n }\r\n\r\n /**\r\n * 生成解锁请求\r\n */\r\n function SOF_GenRemoteUnblockRequest () {\r\n var request = token.SOF_GenRemoteUnblockRequest();\r\n if (request == null || request == \"\") {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_FAIL;\r\n return \"\";\r\n }\r\n\r\n return request;\r\n }\r\n\r\n function SOF_RemoteUnlockPIN (response) {\r\n var result = false;\r\n\r\n if (null == response || response.length == 0) {\r\n LAST_ERRORSTRING = \"解锁失败解:响应不能为空!\";\r\n return false;\r\n }\r\n\r\n result = token.SOF_RemoteUnblockPIN(response);\r\n if (result != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_REMOTE_UNLOCK_FAIL;\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n function add (x, y, base) {\r\n var z = [];\r\n var n = Math.max(x.length, y.length);\r\n var carry = 0;\r\n var i = 0;\r\n while (i < n || carry) {\r\n var xi = i < x.length ? x[i] : 0;\r\n var yi = i < y.length ? y[i] : 0;\r\n var zi = carry + xi + yi;\r\n z.push(zi % base);\r\n carry = Math.floor(zi / base);\r\n i++;\r\n }\r\n return z;\r\n }\r\n\r\n function multiplyByNumber (num, x, base) {\r\n if (num < 0) return null;\r\n if (num == 0) return [];\r\n\r\n var result = [];\r\n var power = x;\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n if (num & 1) {\r\n result = add(result, power, base);\r\n }\r\n num = num >> 1;\r\n if (num === 0) break;\r\n power = add(power, power, base);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function parseToDigitsArray (str, base) {\r\n var digits = str.split('');\r\n var ary = [];\r\n for (var i = digits.length - 1; i >= 0; i--) {\r\n var n = parseInt(digits[i], base);\r\n if (isNaN(n)) return null;\r\n ary.push(n);\r\n }\r\n return ary;\r\n }\r\n\r\n\r\n function convertBase (str, fromBase, toBase) {\r\n var digits = parseToDigitsArray(str, fromBase);\r\n if (digits === null) return null;\r\n\r\n var outArray = [];\r\n var power = [1];\r\n for (var i = 0; i < digits.length; i++) {\r\n // invariant: at this point, fromBase^i = power\r\n if (digits[i]) {\r\n outArray = add(outArray, multiplyByNumber(digits[i], power, toBase), toBase);\r\n }\r\n power = multiplyByNumber(fromBase, power, toBase);\r\n }\r\n\r\n var out = '';\r\n for (let i = outArray.length - 1; i >= 0; i--) {\r\n out += outArray[i].toString(toBase);\r\n }\r\n return out;\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n function decToHex (decStr) {\r\n var hex = convertBase(decStr, 10, 16);\r\n return hex ? '0x' + hex : null;\r\n }\r\n\r\n\r\n function hexToDec (hexStr) {\r\n if (hexStr.substring(0, 2) === '0x') hexStr = hexStr.substring(2);\r\n hexStr = hexStr.toLowerCase();\r\n return convertBase(hexStr, 16, 10);\r\n }\r\n}\r\n","// 过滤时间\r\nexport function formateTime(dateStr) {\r\n let year = dateStr.slice(0, 4);\r\n let month = dateStr.slice(4, 6);\r\n let date = dateStr.slice(6, 8);\r\n let hours = dateStr.slice(8, 10);\r\n let minute = dateStr.slice(10, 12);\r\n let second = dateStr.slice(12);\r\n return `${year}-${month}-${date} ${hours}:${minute}:${second}`;\r\n}\r\n","<template>\r\n <div>\r\n <el-form\r\n ref=\"loginForm\"\r\n :model=\"loginForm\"\r\n :rules=\"loginRules\"\r\n class=\"login-form\"\r\n >\r\n <div class=\"ca-bg-box\" v-if=\"loginForm.username == undefined\">\r\n <div class=\"ca-bg-img\"></div>\r\n <div class=\"ca-bg-text\">请插入UKEY证书</div>\r\n <img\r\n :src=\"require('comp/YcCA/images/refresh.png')\"\r\n class=\"ca-refresh\"\r\n @click=\"caRead\"\r\n alt=\"\"\r\n />\r\n </div>\r\n <div class=\"ca-bg-info\" v-else>\r\n <div class=\"ca-bg-text\">\r\n CA名称:<span class=\"caName\">{{ loginForm.username }}</span>\r\n </div>\r\n <img\r\n :src=\"require('comp/YcCA/images/refresh.png')\"\r\n class=\"ca-refresh\"\r\n @click=\"caRead\"\r\n alt=\"\"\r\n />\r\n </div>\r\n <el-form-item prop=\"password\">\r\n <el-input\r\n v-model=\"loginForm.password\"\r\n type=\"password\"\r\n auto-complete=\"off\"\r\n placeholder=\"密码\"\r\n show-password\r\n @keyup.enter.native=\"handleLogin\"\r\n >\r\n <el-image\r\n slot=\"prefix\"\r\n class=\"el-input__icon input-icon\"\r\n :src=\"require('./images/password.svg')\"\r\n />\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button\r\n :loading=\"loading\"\r\n size=\"medium\"\r\n type=\"primary\"\r\n class=\"login-btn\"\r\n style=\"width: 100%\"\r\n @click.native.prevent=\"handleLogin\"\r\n >\r\n <span v-if=\"!loading\">登 录</span>\r\n <span v-else>登 录 中...</span>\r\n </el-button>\r\n </el-form-item>\r\n </el-form>\r\n <el-dialog\r\n title=\"提示\"\r\n :visible.sync=\"dialogVisible.showInfo\"\r\n width=\"30%\"\r\n center\r\n >\r\n <span style=\"color: red\">4444{{ caInfo.error_text }}</span>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"dialogVisible.showInfo = false\">取 消</el-button>\r\n <el-button type=\"primary\" @click=\"dialogVisible.showInfo = false\"\r\n >确 定</el-button\r\n >\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { hunca_mToken_core } from \"comp/YcCA/mTokenPlugin/hunca_mToken_core2\"\r\n// 北京ca\r\nimport \"comp/YcCA/mTokenPluginBeijin/xtxasyn\"\r\nimport { formateTime } from \"comp/YcCA/mTokenPluginBeijin/formateTime\"\r\nexport default {\r\n name: \"YcCA\",\r\n props: {\r\n region: {\r\n /** 1背景CA,0湖南CA */\r\n type: Number,\r\n default: 0,\r\n },\r\n },\r\n data() {\r\n return {\r\n form: {},\r\n caInfo: {\r\n error_text: \"\",\r\n have_error_info: false,\r\n },\r\n loginForm: {\r\n username: \"\",\r\n password: \"\",\r\n uuid: \"\",\r\n caInfo: \"\",\r\n },\r\n dialogVisible: {\r\n ca: false,\r\n showInfo: false,\r\n },\r\n loginRules: {\r\n password: [\r\n { required: true, trigger: \"blur\", message: \"请输入您的密码\" },\r\n ],\r\n },\r\n loading: false,\r\n }\r\n },\r\n computed: {\r\n isBJCA() {\r\n return this.region == 1\r\n },\r\n },\r\n watch: {\r\n region() {\r\n this.caRead()\r\n },\r\n },\r\n created() {\r\n // this.caRead()\r\n },\r\n methods: {\r\n //读取CA\r\n caRead() {\r\n if (this.isBJCA) {\r\n this.caReadBeijin()\r\n } else {\r\n window.mToken = new hunca_mToken_core()\r\n let tempName = window.mToken.Hunca_GetUserListGN()\r\n this.loginForm.username = tempName[0]\r\n }\r\n },\r\n async caReadBeijin() {\r\n let retObj = await new Promise((resolve) => {\r\n window.SOF_GetUserList(function (retObj) {\r\n resolve(retObj)\r\n })\r\n })\r\n this.loginForm.username = retObj.retVal.split(\"||\")[0]\r\n },\r\n // CA登录选择\r\n caLogin(flag) {\r\n switch (flag) {\r\n case 0:\r\n this.HNCALogin()\r\n break\r\n default:\r\n this.$message({\r\n type: \"warning\",\r\n message: \"请选择CA平台!!!\",\r\n })\r\n }\r\n },\r\n // 湖南CA平台登录\r\n HNCALogin() {\r\n window.mToken = new hunca_mToken_core()\r\n this.loginForm.username = window.mToken.Hunca_GetUserListGN()\r\n let tempuserName = window.mToken.Hunca_userNameGNToUserName(\r\n this.loginForm.username[0]\r\n ) //将证书G项信息转化为证书名称\r\n let rn = Math.random()\r\n if (\r\n !window.mToken.Hunca_PKCS1(rn, tempuserName, this.loginForm.password)\r\n ) {\r\n this.caInfo.error_text = window.mToken.Hunca_GetLastError()\r\n this.caInfo.have_error_info = true\r\n this.dialogVisible.showInfo = true\r\n return false\r\n }\r\n this.ca_cert = window.mToken.Hunca_GetSignCert()\r\n this.sign = window.mToken.Hunca_GetSignData()\r\n this.certSn = window.mToken.Hunca_GetSignCertSn() //CA唯一码\r\n this.cert_subject = window.mToken.Hunca_GetSignCertSubject() //CA信息\r\n this.cert_validTime = window.mToken.Hunca_GetValidTime() //过期时间\r\n this.cert_notBeforeTime = window.mToken.HUnca_GetNotBeforeTime() //生效时间\r\n let tempinfo = this.cert_subject.split(\",\")\r\n let tempinfo1 = {}\r\n tempinfo.forEach((e) => {\r\n tempinfo1[e.split(\"=\")[0]] = e.split(\"=\")[1]\r\n })\r\n this.loginForm = {\r\n cert: this.ca_cert,\r\n sign: this.sign,\r\n rn: rn,\r\n caInfo: this.cert_subject, //CA信息\r\n caAddr: tempinfo1.ST + tempinfo1.OU, //设备归属地\r\n caCode: tempinfo1.TITLE, //证书代码\r\n caName: tempinfo1.GN, //ca名字\r\n caSn: this.certSn, //CA唯一码\r\n caEffectiveDate: this.cert_notBeforeTime, //生效时间\r\n caExpireDate: this.cert_validTime, //过期时间\r\n loginType: \"3\",\r\n username: tempinfo1.GN,\r\n }\r\n return true\r\n },\r\n handleLogin() {\r\n this.$refs.loginForm.validate((valid) => {\r\n if (valid) {\r\n this.loading = true\r\n if (this.isBJCA) {\r\n this.BJCALogin()\r\n } else {\r\n this.HNCALogin()\r\n if (this.dialogVisible.showInfo == true) {\r\n this.loading = false\r\n } else if (this.loginForm.username != undefined) {\r\n this.loading = true\r\n this.$emit(\"caSuccess\", this.loginForm, () => {\r\n this.loading = false\r\n })\r\n } else {\r\n this.msgErr(\"请插入CA\")\r\n }\r\n }\r\n }\r\n })\r\n },\r\n async BJCALogin() {\r\n if (this.loginForm.password == undefined) {\r\n this.msgErr(\"请插入CA\")\r\n return\r\n } else {\r\n let certId = await new Promise((resolve) => {\r\n window.SOF_GetUserList(function (retObj) {\r\n resolve(retObj.retVal.split(\"&&&\")[0].split(\"||\")[1])\r\n })\r\n })\r\n // --------------执行ca登录接口开始\r\n var time_begin = new Date()\r\n let passwd = this.loginForm.password\r\n if (!certId || !passwd) {\r\n return\r\n }\r\n var platform = navigator.platform.toLowerCase()\r\n if (platform.indexOf(\"win\") != -1) {\r\n window.SOF_LoginEx(certId, passwd, 0, this.login_callback, {\r\n begin: time_begin,\r\n certId: certId,\r\n })\r\n } else {\r\n window.SOF_Login(certId, passwd, this.login_callback, {\r\n begin: time_begin,\r\n certId: certId,\r\n })\r\n }\r\n // --------------执行ca登录接口结束\r\n }\r\n },\r\n login_callback(retObj) {\r\n const that = this\r\n var certId = retObj.ctx.certId\r\n if (retObj.retVal) {\r\n // 登录成功对数据进行签名\r\n this.BJSignData()\r\n } else {\r\n //当登录失败时,调用SOF_GetLastError取错误码,errcode为79时表示pin码复杂度不符合\r\n window.SOF_GetLastError(function (retObj) {\r\n var err = retObj.retVal\r\n if (err == 79) {\r\n that.msgErr(\"请核对pin码复杂度是否符合要求\")\r\n }\r\n }, retObj.ctx)\r\n // 实际情况可能仅在登录失败时获取一下重试次数做个提醒\r\n window.SOF_GetPinRetryCount(\r\n certId,\r\n function (retObj) {\r\n var certId = retObj.ctx.certId\r\n that.msgErr(\r\n \"证书[\" + certId + \"]重试次数剩余:\" + retObj.retVal + \"次...\"\r\n )\r\n },\r\n retObj.ctx\r\n )\r\n }\r\n },\r\n async BJSignData() {\r\n let certId = await new Promise((resolve) => {\r\n window.SOF_GetUserList(function (retObj) {\r\n resolve(retObj.retVal.split(\"&&&\")[0].split(\"||\")[1])\r\n })\r\n })\r\n let rn = Math.random()\r\n this.form[\"rn\"] = rn\r\n window.SOF_SignData(certId, rn, this.signData_callback, {\r\n certId: certId,\r\n })\r\n // --------------登录成功对数据进行签名结束\r\n },\r\n async signData_callback(retObj) {\r\n if (retObj.retVal == \"\") {\r\n this.caInfo.error_text = \"数据签名失败\"\r\n this.caInfo.have_error_info = true\r\n this.dialogVisible.showInfo = true\r\n return\r\n }\r\n this.form[\"sign\"] = retObj.retVal\r\n // 签名成功获取其他信息后端登录接口所需信息-------\r\n var certId = retObj.ctx.certId\r\n // 导出用户证书\r\n let userCert = await new Promise((resolve) => {\r\n window.SOF_ExportUserCert(certId, function (retObj) {\r\n resolve(retObj.retVal)\r\n })\r\n })\r\n this.form[\"username\"] = userCert\r\n if (userCert) {\r\n var certInfoTypeArray = {\r\n caAddrProvince: { type: 16, label: \"使用者省州名ST\" }, //caAddr\r\n caAddrcity: { type: 18, label: \"使用者城市名L\" }, //caAddr\r\n caEffectiveDate: { type: 11, label: \"证书有效开始日期\" }, //caEffectiveDate\r\n caExpireDate: { type: 12, label: \"证书有效结束日期\" }, //caExpireDate\r\n caInfo: { type: 35, label: \"使用者DN项第2种格式\" }, //caInfo\r\n //caCode\r\n //username\r\n caSn: { type: 2, label: \"证书序列号\" }, //caSn\r\n caType: { type: 34, label: \"颁发者DN项第1种格式\" }, //caType\r\n }\r\n // 导出证书成功,解析证书基本项\r\n for (let key in certInfoTypeArray) {\r\n let certInfo = await new Promise((resolve) => {\r\n window.SOF_GetCertInfo(\r\n userCert,\r\n certInfoTypeArray[key].type,\r\n function (retObj) {\r\n resolve(retObj)\r\n },\r\n { key: key }\r\n )\r\n })\r\n this.form[certInfo.ctx.key] = certInfo.retVal\r\n }\r\n let bindParams = {\r\n caSn: this.form[\"caSn\"],\r\n caInfo: this.form[\"caInfo\"],\r\n caAddr: this.form[\"caAddrProvince\"] + this.form[\"caAddrcity\"],\r\n caCode: this.form[\"caInfo\"]\r\n .split(\",\")\r\n .filter((v) => {\r\n return v.search(/^title=/i) != -1\r\n })[0]\r\n .replace(/title=/i, \"\"),\r\n username: this.form[\"caInfo\"]\r\n .split(\",\")\r\n .filter((v) => {\r\n return v.search(/^cn=/i) != -1\r\n })[0]\r\n .replace(/cn=/i, \"\"),\r\n caEffectiveDate: formateTime(this.form[\"caEffectiveDate\"]),\r\n caExpireDate: formateTime(this.form[\"caExpireDate\"]),\r\n // region: this.readForm.region,\r\n pass: this.loginForm.password,\r\n caType: \"北京ca\",\r\n sign: this.form.sign,\r\n rn: this.form.rn,\r\n cert: this.form.username,\r\n }\r\n this.form = bindParams\r\n this.loginForm = {\r\n cert: this.form.cert,\r\n sign: this.form.sign,\r\n rn: this.form.rn,\r\n caInfo: this.form.caInfo, //CA信息\r\n caAddr: this.form.caAddr, //设备归属地\r\n caCode: this.form.caCode, //证书代码\r\n caName: this.form.username, //证书名称\r\n caSn: this.form.caSn, //CA唯一码\r\n caEffectiveDate: this.form.caEffectiveDate, //生效时间\r\n caExpireDate: this.form.caExpireDate, //过期时间\r\n loginType: \"3\",\r\n username: this.form.username,\r\n }\r\n if (this.dialogVisible.showInfo == true) {\r\n this.loading = false\r\n } else if (this.loginForm.username != undefined) {\r\n this.$emit(\"caSuccess\", this.loginForm, () => {\r\n this.loading = false\r\n })\r\n } else {\r\n this.msgErr(\"请插入CA\")\r\n }\r\n }\r\n },\r\n handleClose(done) {\r\n this.$confirm(\"确认关闭?\")\r\n .then(() => {\r\n done()\r\n this.loading = false\r\n })\r\n .catch(() => {})\r\n },\r\n msgErr(msg) {\r\n this.loading = false\r\n this.$message.error(msg)\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n::v-deep .el-input__prefix {\r\n display: flex;\r\n align-items: center;\r\n left: 1.04vw;\r\n}\r\n::v-deep .el-form-item__error {\r\n font-size: 0.04vw;\r\n}\r\n::v-deep .el-input__icon {\r\n color: #409eff;\r\n width: 0.98vw;\r\n height: 1.14vw;\r\n}\r\n::v-deep .el-input__inner {\r\n padding: 0 3.64vw;\r\n height: 2.81vw;\r\n font-size: 1.04vw;\r\n border: 0.1vw solid #409eff;\r\n}\r\n::v-deep .el-input .el-input__clear {\r\n font-size: 1.24vw;\r\n}\r\n::v-deep .el-input__suffix {\r\n right: 1.04vw;\r\n top: 0.46vw;\r\n}\r\n.el-form-item {\r\n margin-bottom: 1.2vw;\r\n margin-top: 1vw;\r\n}\r\n.ca-download-box {\r\n display: flex;\r\n justify-content: right;\r\n align-items: center;\r\n margin: 10px 0;\r\n .ca-download-text {\r\n color: #53a8ff;\r\n font-size: 14px;\r\n font-weight: 400;\r\n }\r\n .ca-download-img {\r\n width: 10px;\r\n height: 10px;\r\n background: url(\"comp/YcCA/images/ca-download.png\") no-repeat;\r\n background-size: 100% 100%;\r\n margin-left: 2px;\r\n }\r\n}\r\n.contentBox {\r\n width: 100%;\r\n height: 50px;\r\n margin-bottom: 15px;\r\n}\r\n.ca-bg-box {\r\n background-color: #ecf5ff;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 30px 70px;\r\n position: relative;\r\n -webkit-animation: fadeinout 1s linear forwards;\r\n animation: fadeinout 1s linear forwards;\r\n .ca-bg-img {\r\n width: 97px;\r\n height: 57px;\r\n background: url(\"comp/YcCA/images/ca-bg.png\") no-repeat;\r\n background-size: 100% 100%;\r\n }\r\n}\r\n@-webkit-keyframes fadeinout {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 50% {\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes fadeinout {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 50% {\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n.ca-bg-info {\r\n display: flex;\r\n padding: 40px 70px 40px 25px;\r\n position: relative;\r\n background: url(\"comp/YcCA/images/caBg.png\") no-repeat;\r\n background-size: 100% 100%;\r\n -webkit-animation: fadeinout 1s linear forwards;\r\n animation: fadeinout 1s linear forwards;\r\n}\r\n.ca-bg-text {\r\n margin-left: 15px;\r\n font-size: 18px;\r\n font-weight: 500;\r\n color: #53a8ff;\r\n}\r\n.caName {\r\n margin-left: 10px;\r\n color: #303133;\r\n}\r\n.ca-refresh {\r\n position: absolute;\r\n top: 6px;\r\n right: 8px;\r\n width: 25px;\r\n height: 25px;\r\n}\r\n.login-btn {\r\n height: 2.81vw;\r\n font-size: 1.04vw;\r\n font-weight: bold;\r\n background: url(\"comp/YcCA/images/login-btn-bg.png\") no-repeat;\r\n background-size: 100% 100%;\r\n border: none;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=780f0723&prod&lang=scss&scoped=true&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=780f0723&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=780f0723&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"780f0723\",\n null\n \n)\n\nexport default component.exports","import YcSlideVerify from 'comp/YcSlideVerify'\r\nimport YcCustomerService from 'comp/YcCustomerService'\r\nimport YcQuestion from 'comp/YcQuestion'\r\nimport YcCA from 'comp/YcCA'\r\n\r\n\r\nconst components = [\r\n YcSlideVerify,\r\n YcCustomerService,\r\n YcQuestion,\r\n YcCA\r\n]\r\n// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册\r\nconst install = function (Vue) {\r\n // 遍历注册全局组件\r\n components.forEach(component => {\r\n Vue.component(component.name, component)\r\n })\r\n\r\n // 判断是否是直接引入文件,如果是,就不用调用 Vue.use()\r\n if (typeof window !== 'undefined' && window.Vue) {\r\n install(window.Vue)\r\n }\r\n}\r\n\r\n// 导出的对象必须具有 install,才能被 Vue.use() 方法安装\r\nexport default {\r\n install\r\n}\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["xtxasyn","XTXAsynHashMap","map","prototype","put","key","value","get","hasOwnProperty","remove","removeAll","keySet","_keys","i","push","constructor","HashMap","initUtilObject","util","checkBrowserISIE","window","ActiveXObject","checkLocationIsHttps","document","location","protocol","evalFunction","func","cb","eval","consolelog","param","console","undefined","log","isEmpty","loadIECtl","clsid","ctlName","checkFunc","ctl","getElementById","loadObjString","write","e","getAutoExecFunctionString","ret","toString","attachIEEvent","eventName","eventFunc","toLowerCase","attachEvent","handler","createElement","setAttribute","eventScript","appendChild","createTextNode","getElementsByTagName","loadWebSocketCtl","wsUrl","wssUrl","wsObject","url","socket","wsMessageQueue","wsMessageQueueId","wsEventQueue","wsURL","wsCacheMessage","custom","defaultUsbkeyChange","WebSocket","onopen","evt","SOF_GetVersion","retVal","length","tb_send","shift","send","onclose","XTXAppWebSocket","onmessage","eventCmd","data","res","JSON","parse","cmdId","methodName","execFunc","messageQueue","method","ctx","returnType","Number","token","setToken","retObj","onerror","attachWebSocketEvent","callWebSocketMethod","argsArray","sendArray","href","arguments","strParam","getToken","readyState","OPEN","stringify","CONNECTING","SynToAsyn","initCustomActions","softCertListID","hardCertListID","allCertListID","loginCertID","logoutFunc","UsbkeyChangeFunc","loginToken","errorReportFunc","msg","alert","setAutoLogoutParameter","strCertID","clearDropList","dropListId","obj","n","pushOneDropListBox","userListArray","strListID","certObj","objItem","Option","certName","certID","options","add","pushUserListToAllDroplist","strUserList","allListArray","indexOf","strOneUser","substring","strName","GetDeviceInfo","len","setUserCertList","certListId","certType","CERT_TYPE_ALL","CERT_TYPE_HARD","CERT_TYPE_SOFT","SOF_GetUserList","setOnUsbKeyChangeCallBack","callback","setErrorReportFunc","errFunc","autoLogoutCallBack","initXTXAppCOM","XTXAppCOM","xtx_clsid","GetPicObj","getpic_clsid","GetPic","Hash","inData","ConvertPicFormat","type","ConvertGif2Jpg","GetPic1","ConvertPicSize","strPicture","w","h","XTXVersionOBJ","xtx_version_clsid","GetEnvVersion","initXTXAppWebSocket","initXTXAppObject","getImplmentFunction","methodInfo","inParams","funcName","Function","outParamType","export_functions","aliasName","SetAutoLogoutParameter","SetUserCertList","SetOnUsbKeyChangeCallBack","SetAlertFunction","custom_alert","GetLoginToken","SetLoginToken","tokenData","GetUserListByType","strType","GetDeviceType","userList","GetUserList_USBKey","GetUserList_Soft","SignByP7","strInData","bDetach","SOF_SignMessage","GetSymKeyLength","HashFile","strFilePath","SOF_HashFile","ParseDateString","strDate","strYear","strMonth","strDay","strHour","strMin","strSecond","RtnDate","Date","setFullYear","setHours","setMinutes","setSeconds","__loginSignRandomCallBack","objForm","UserSignedData","LoginToken","action","submit","__loginVerifyServerSignatureCallBack","SOF_SignData","strServerRan","__loginCheckCertValidNotAfter","notAfterDate","milliseconds","getTime","days","parseInt","hours","minutes","SOF_VerifySignedData","strServerCert","strServerSignedData","__loginCheckCertValidNotBefore","notBeforeDate","strUserCert","UserCert","SOF_GetCertInfo","__loginGetSignCertCallBack","__loginGetPINRetryCallBack","retryCount","__loginVerifyPINCallBack","SOF_GetPinRetryCount","CertID","ContainerName","SOF_ExportUserCert","Login","formName","strPin","strAction","custom_cb","insertAdjacentHTML","SOF_Login","split","undef","nativeSplit","String","compliantExecNpcg","exec","self","str","separator","limit","Object","call","output","flags","ignoreCase","multiline","extended","sticky","lastLastIndex","RegExp","source","separator2","match","lastIndex","lastLength","index","slice","replace","Array","apply","test","mToken","SAR_OK","SAR_FALSE","SGD_SM1_ECB","SGD_SM1_CBC","SGD_SM1_CFB","SGD_SM1_OFB","SGD_SM1_MAC","SGD_SSF33_ECB","SGD_SSF33_CBC","SGD_SSF33_CFB","SGD_SSF33_OFB","SGD_SSF33_MAC","SGD_SM4_ECB","SGD_SM4_CBC","SGD_SM4_CFB","SGD_SM4_OFB","SGD_SM4_MAC","SGD_VENDOR_DEFINED","SGD_DES_ECB","SGD_DES_CBC","SGD_3DES168_ECB","SGD_3DES168_CBC","SGD_3DES112_ECB","SGD_3DES112_CBC","SGD_AES128_ECB","SGD_AES128_CBC","SGD_AES192_ECB","SGD_AES192_CBC","SGD_AES256_ECB","SGD_AES256_CBC","SGD_RSA","SGD_SM2_1","SGD_SM2_2","SGD_SM2_3","SGD_SM3","SGD_SHA1","SGD_SHA256","SGD_RAW","SGD_MD5","SGD_SHA384","SGD_SHA512","SGD_CERT_VERSION","SGD_CERT_SERIAL","SGD_CERT_ISSUE","SGD_CERT_VALID_TIME","SGD_CERT_SUBJECT","SGD_CERT_DER_PUBLIC_KEY","SGD_CERT_DER_EXTENSIONS","SGD_CERT_NOT_BEFORE","SGD_CERT_ISSUER_CN","SGD_CERT_ISSUER_O","SGD_CERT_ISSUER_OU","SGD_CERT_ISSUER_C","SGD_CERT_ISSUER_P","SGD_CERT_ISSUER_L","SGD_CERT_ISSUER_S","SGD_CERT_ISSUER_EMAIL","SGD_CERT_SUBJECT_CN","SGD_CERT_SUBJECT_O","SGD_CERT_SUBJECT_OU","SGD_CERT_SUBJECT_EMALL","SGD_REMAIN_TIME","SGD_SIGNATURE_ALG","SGD_CERT_SUBJECT_C","SGD_CERT_SUBJECT_P","SGD_CERT_SUBJECT_L","SGD_CERT_SUBJECT_S","SGD_CERT_CRL","SGD_DEVICE_SORT","SGD_DEVICE_TYPE","SGD_DEVICE_NAME","SGD_DEVICE_MANUFACTURER","SGD_DEVICE_HARDWARE_VERSION","SGD_DEVICE_SOFTWARE_VERSION","SGD_DEVICE_STANDARD_VERSION","SGD_DEVICE_SERIAL_NUMBER","SGD_DEVICE_SUPPORT_SYM_ALG","SGD_DEVICE_SUPPORT_ASYM_ALG","SGD_DEVICE_SUPPORT_HASH_ALG","SGD_DEVICE_SUPPORT_STORANGE_SPACE","SGD_DEVICE_SUPPORT_FREE_SAPCE","SGD_DEVICE_RUNTIME","SGD_DEVICE_USED_TIMES","SGD_DEVICE_LOCATION","SGD_DEVICE_DESCRIPTION","SGD_DEVICE_MANAGER_INFO","SGD_DEVICE_MAX_DATA_SIZE","TRUE","FALSE","GM3000","K5","TF","HT","SJK1137","TYPE_UKEY","TYPE_FPKEY","g_mTokenPlugin","SOF_GetLastError","isIe","isMobile","browser","versions","u","navigator","userAgent","app","appVersion","trident","presto","webKit","gecko","mobile","ios","android","iPhone","iPad","webApp","language","browserLanguage","SOF_LoadLibrary","os","check_os","mTokenPlugin","SOF_EnumDevice","array","SOF_GetDeviceInstance","DeviceName","ApplicationName","SOF_ReleaseDeviceInstance","list","user","KeySpec","SOF_GetDeviceInfo","Type","Base64EncodeCert","SOF_GetCertInfoByOid","OID","PassWd","SOF_LogOut","SOF_ChangePassWd","OldPassWd","NewPassWd","SOF_SetDigestMethod","DigestMethod","SOF_SetUserID","UserID","SOF_SetEncryptMethodAndIV","EncryptMethod","EncryptIV","SOF_EncryptFileToPKCS7","Cert","InFile","OutFile","SOF_SignFileToPKCS7","SOF_VerifyFileToPKCS7","strPkcs7Data","InFilePath","SOF_DecryptFileToPKCS7","keySpec","Pkcs7Data","SOF_DigestData","nData","InDataLen","ulKeySpec","InData","SOF_SignDataInteractive","SOF_SignDataToPKCS7","ulDetached","SOF_VerifyDataToPKCS7","SignedValue","digestMethod","SOF_EncryptDataPKCS7","SOF_DecryptDataPKCS7","SOF_GenRemoteUnblockRequest","SOF_GenResetpwdResponse","request","soPin","userPin","SOF_RemoteUnblockPIN","OriginalText","SOF_ExportPubKey","containerName","cerType","expType","SOF_EncryptByPubKey","strPubKey","strInput","SOF_DecryptByPrvKey","strAsymCipher","SOF_GenerateP10Request","deviceName","container","dn","asymAlg","keyLength","SOF_EnumCertContiner","SOF_FindContainer","certSN","SOF_DeleteCert","SOF_DeleteContainer","SOF_SignByCert","plain","SOF_VerifyByCert","signature","SOF_ImportCert","cert","SOF_ImportCryptoCertAndKey","nAsymAlg","EncryptedSessionKeyData","symAlg","EncryptedPrivateKeyData","mode","SOF_VerifyByExtCert","SOF_GenerateRandom","SOF_SymEncryptFile","sessionKey","srcfile","destfile","SOF_SymDecryptFile","SOF_SymEncryptData","SOF_SymDecryptData","SOF_GenerateQRCode","qrcode_text","SOF_VerifyPinMS","responseKey","SOF_GetHardwareType","SOF_VerifyFingerprint","SOF_EnumFiles","SOF_ReadFile","fileName","offset","SOF_WriteFile","SOF_CreateFile","readRight","writeRight","SOF_DeleteFile","hasPlugin","name","plugins","windows","mac","linux","unix","os_type","linuxWin","_xmlhttp","retJSON","AjaxIO","json_in","router","json","invoke","_curDevName","_url","XMLHttpRequest","open","setRequestHeader","GetHttpResult","status","responseText","errorCode","rtn","version","info","envelopData","signed","digest","InDataBase64","encrypedData","decryptedData","pkcs7","pubKey","asymCipher","asymPlain","SOF_CreateKeyPair","outData","qrcode_text_in","SocketConnect","HostName","Port","SocketDisConnect","SocketSendText","SendText","RecvText","render","_vm","_c","_self","attrs","title","isShow","on","handleClose","ref","imgs","accuracy","sliderText","onSuccess","onFail","onAgain","onRefresh","onFulfilled","staticRenderFns","props","default","Boolean","countDownNum","computed","watch","newVal","$refs","slideblock","reset","created","methods","$emit","staticStyle","visible","jumpPage","regular","update:visible","$event","staticClass","_t","click","_m","_v","directives","rawName","expression","_s","enlarge","_e","close","_l","messagelist","item","class","id","domProps","regularClick","based","handExpand","isActive","minRows","maxRows","nativeOn","keyup","_k","keyCode","carriageReturn","model","textareaValue","$$v","commit","questions","event","code","search","filter","faq","includes","vlaue","reduce","prev","curr","fun","isArray","$nextTick","main","scrollTop","scrollHeight","chatMixin","mixins","chatVue","components","hasSlot","$slots","$route","to","path","customer","style","display","mounted","currData","preventDefault","activeNames","questionsList","slot","getHours","getMinutes","loginForm","loginRules","username","require","caRead","handleLogin","password","$set","loading","dialogVisible","showInfo","caInfo","error_text","_keyStr","_Base64encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","_utf8_encode","charCodeAt","isNaN","charAt","_Base64decode","fromCharCode","_utf8_decode","in_string","string","utftext","c","c1","c2","c3","hunca_mToken_core","certInfoList","singleKey","libraryNameList","platform","LAST_ERRORSTRING","KEY_SPEC_TYPE_ENCRYPT","KEY_SPEC_TYPE_SIGN","USER_ID","ERROR_MESSAGE_NOT_LOADLIBRARY","ERROR_MESSAGE_NOT_FIND_UKEY","ERROR_MSSSAGE_FIND_MORE_UKEY","ERROR_MESSAGE_NOT_INSTANCE_DEVICE","ERROR_MESSAGE_USERPIN_LENGTH","ERROR_MESSAGE_USERPIN_IS_ERROR","ERROR_MESSAGE_USERPIN_CHANGE_ERROR","ERROR_MESSAGE_KEY_NOT_EXIT","ERROR_MESSAGE_USERNAME_IS_NULL","ERROR_MESSAGE_KEY_EXPORT_CERT","ERROR_MESSAGE_SET_DIGEST_METHOD_ERROR","ERROR_MESSAGE_SET_USERID_ERROR","ERROR_MESSAGE_SIGN_ORIGINALDATA_IS_NULL","ERROR_MESSAGE_SIGN_ERROR","ERROR_MESSAGE_USERNAMEGN_IS_NULL","ERROR_MESSAGE_USERNAMEGN_TO_USERNAME_ERROR","ERROR_MESSAGE_KEY_LIBRAY","ERROR_MESSAGE_ENCRYPT_DATA_IS_NULL","ERROR_MESSAGE_DECRYPT_DATA_IS_NULL","ERROR_MESSAGE_DECRYPT_DATA_IS_ERROR","ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_FAIL","ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_NOT_SUPPORT","ERROR_MESSAGE_REMOTE_UNLOCK_FAIL","tokenInfoList","signResultSignData","signResultCert","certSn","cert_subject_GN","cert_subject","cert_validTime","cert_notbeforetime","Hunca_GetLastError","Hunca_GetUserList","deviceArray","userName","tmpInfo","libraryName","tokenInfo","serial","userNameList","Hunca_GetUserListGN","certB64","deviceSerial","subjectGN","userNameGNList","Hunca_userNameGNToUserName","userNameGN","Hunca_GenRemoteUnblockRequest","tempTokenInfo","HUnca_GetDeviceNumber","m_devNumber","SOF_GetDeviceNumber","Hunca_RemoteUnlockPIN","response","result","SOF_RemoteUnlockPIN","Hunca_ChangeUserPin","oldUserPin","newUserPin","SOF_ChangeUserPin","Hunca_PKCS1","originalData","certBase64","signResultInfo","certInfo","Hunca_GetSignData","Hunca_GetSignCert","Hunca_GetSignCertSn","Hunca_GetSignCertSubject","Hunca_GetValidTime","HUnca_GetNotBeforeTime","Hunca_DealCertInfo","Hunca_EncryptDataPKCS7","m_EncryptMethod","m_EncryptIV","encryptData","Hunca_DecryptDataPKCS7","m_EncryptData","m_DecryptData","resData","resultCode","deviceNameList","m_userPin","RetryCount","m_oldUserPin","m_newUserPin","deviceNumber","keySec","resCode","inDataBase64","m_inData","m_EncrypedData","signData","b64Data","m_data","subject","tmpList","validTime","notBeforetime","hexToDec","x","y","base","z","Math","max","carry","xi","yi","zi","floor","multiplyByNumber","num","power","parseToDigitsArray","digits","ary","convertBase","fromBase","toBase","outArray","out","decToHex","decStr","hex","hexStr","formateTime","dateStr","year","month","date","minute","second","region","form","have_error_info","uuid","ca","required","trigger","message","isBJCA","caReadBeijin","tempName","Promise","resolve","caLogin","flag","HNCALogin","$message","tempuserName","rn","random","ca_cert","sign","cert_notBeforeTime","tempinfo","tempinfo1","forEach","caAddr","ST","OU","caCode","TITLE","caName","GN","caSn","caEffectiveDate","caExpireDate","loginType","validate","valid","BJCALogin","msgErr","certId","time_begin","passwd","SOF_LoginEx","login_callback","begin","that","BJSignData","err","signData_callback","userCert","certInfoTypeArray","caAddrProvince","label","caAddrcity","caType","bindParams","v","pass","done","$confirm","then","catch","error","YcSlideVerify","YcCustomerService","YcQuestion","YcCA","install","Vue","component"],"sourceRoot":""}
1
+ {"version":3,"file":"yc-ui2.umd.js","mappings":"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CAga,IAAA,CAAA/Z,IAAA,eAAAD,CAAA;MACA;MACA,OAAAga,IAAA;IACA;EACA;EACAmL,KAAA;IACAlB,OAAAmB,MAAA;MACA;MACAA,MAAA,IACA,KAAAC,KAAA,CAAAC,UAAA,IACA,KAAAD,KAAA,CAAAC,UAAA,CAAAC,KAAA,IACA,KAAAF,KAAA,CAAAC,UAAA,CAAAC,KAAA;IACA;EACA;EACAC,QAAA;EACAC,OAAA;IACAjB,UAAA;MACA,KAAAkB,KAAA;IACA;IACAjB,OAAA;IACAC,QAAA;IACAC,UAAA;IACAC,YAAA;IACAT,YAAA;MACA,KAAAuB,KAAA;IACA;EACA;AACA,CAAC;;AC7E4P,CAAC,qFAAe,qCAAG,EAAC;;ACAjR;;;;;AEAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AC/FgG;AACvC;AACL;AACpD,CAA+F;;;AAG/F;AACsG;AACtG,gBAAgB,kBAAU;AAC1B,EAAE,gDAAM;AACR,EAAE,MAAM;AACR,EAAE,eAAe;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe;;ACnBf,IAAI/B,iEAAM,GAAG,SAASA,MAAMA,CAAA,EAAE;EAAC,IAAIC,GAAG,GAAC,IAAI;IAACC,EAAE,GAACD,GAAG,CAACE,KAAK,CAACD,EAAE;EAAC,OAAOA,EAAE,CAAC,KAAK,EAAC;IAACO,GAAG,EAAC,UAAU;IAA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","sources":["webpack://yc-ui2/webpack/universalModuleDefinition","webpack://yc-ui2/./node_modules/core-js/internals/a-callable.js","webpack://yc-ui2/./node_modules/core-js/internals/an-object.js","webpack://yc-ui2/./node_modules/core-js/internals/array-includes.js","webpack://yc-ui2/./node_modules/core-js/internals/array-set-length.js","webpack://yc-ui2/./node_modules/core-js/internals/classof-raw.js","webpack://yc-ui2/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://yc-ui2/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://yc-ui2/./node_modules/core-js/internals/create-property-descriptor.js","webpack://yc-ui2/./node_modules/core-js/internals/define-built-in.js","webpack://yc-ui2/./node_modules/core-js/internals/define-global-property.js","webpack://yc-ui2/./node_modules/core-js/internals/descriptors.js","webpack://yc-ui2/./node_modules/core-js/internals/document-all.js","webpack://yc-ui2/./node_modules/core-js/internals/document-create-element.js","webpack://yc-ui2/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://yc-ui2/./node_modules/core-js/internals/engine-user-agent.js","webpack://yc-ui2/./node_modules/core-js/internals/engine-v8-version.js","webpack://yc-ui2/./node_modules/core-js/internals/enum-bug-keys.js","webpack://yc-ui2/./node_modules/core-js/internals/export.js","webpack://yc-ui2/./node_modules/core-js/internals/fails.js","webpack://yc-ui2/./node_modules/core-js/internals/function-bind-native.js","webpack://yc-ui2/./node_modules/core-js/internals/function-call.js","webpack://yc-ui2/./node_modules/core-js/internals/function-name.js","webpack://yc-ui2/./node_modules/core-js/internals/function-uncurry-this.js","webpack://yc-ui2/./node_modules/core-js/internals/get-built-in.js","webpack://yc-ui2/./node_modules/core-js/internals/get-method.js","webpack://yc-ui2/./node_modules/core-js/internals/global.js","webpack://yc-ui2/./node_modules/core-js/internals/has-own-property.js","webpack://yc-ui2/./node_modules/core-js/internals/hidden-keys.js","webpack://yc-ui2/./node_modules/core-js/internals/ie8-dom-define.js","webpack://yc-ui2/./node_modules/core-js/internals/indexed-object.js","webpack://yc-ui2/./node_modules/core-js/internals/inspect-source.js","webpack://yc-ui2/./node_modules/core-js/internals/internal-state.js","webpack://yc-ui2/./node_modules/core-js/internals/is-array.js","webpack://yc-ui2/./node_modules/core-js/internals/is-callable.js","webpack://yc-ui2/./node_modules/core-js/internals/is-forced.js","webpack://yc-ui2/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://yc-ui2/./node_modules/core-js/internals/is-object.js","webpack://yc-ui2/./node_modules/core-js/internals/is-pure.js","webpack://yc-ui2/./node_modules/core-js/internals/is-symbol.js","webpack://yc-ui2/./node_modules/core-js/internals/length-of-array-like.js","webpack://yc-ui2/./node_modules/core-js/internals/make-built-in.js","webpack://yc-ui2/./node_modules/core-js/internals/math-trunc.js","webpack://yc-ui2/./node_modules/core-js/internals/object-define-property.js","webpack://yc-ui2/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://yc-ui2/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://yc-ui2/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://yc-ui2/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://yc-ui2/./node_modules/core-js/internals/object-keys-internal.js","webpack://yc-ui2/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://yc-ui2/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://yc-ui2/./node_modules/core-js/internals/own-keys.js","webpack://yc-ui2/./node_modules/core-js/internals/require-object-coercible.js","webpack://yc-ui2/./node_modules/core-js/internals/shared-key.js","webpack://yc-ui2/./node_modules/core-js/internals/shared-store.js","webpack://yc-ui2/./node_modules/core-js/internals/shared.js","webpack://yc-ui2/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://yc-ui2/./node_modules/core-js/internals/to-absolute-index.js","webpack://yc-ui2/./node_modules/core-js/internals/to-indexed-object.js","webpack://yc-ui2/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://yc-ui2/./node_modules/core-js/internals/to-length.js","webpack://yc-ui2/./node_modules/core-js/internals/to-object.js","webpack://yc-ui2/./node_modules/core-js/internals/to-primitive.js","webpack://yc-ui2/./node_modules/core-js/internals/to-property-key.js","webpack://yc-ui2/./node_modules/core-js/internals/try-to-string.js","webpack://yc-ui2/./node_modules/core-js/internals/uid.js","webpack://yc-ui2/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://yc-ui2/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://yc-ui2/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://yc-ui2/./node_modules/core-js/internals/well-known-symbol.js","webpack://yc-ui2/./node_modules/core-js/modules/es.array.push.js","webpack://yc-ui2/./src/components/YcCA/mTokenPluginBeijin/xtxasyn.js","webpack://yc-ui2/./src/components/YcCA/mTokenPlugin/mToken.js","webpack://yc-ui2/webpack/bootstrap","webpack://yc-ui2/webpack/runtime/compat get default export","webpack://yc-ui2/webpack/runtime/define property getters","webpack://yc-ui2/webpack/runtime/global","webpack://yc-ui2/webpack/runtime/hasOwnProperty shorthand","webpack://yc-ui2/webpack/runtime/make namespace object","webpack://yc-ui2/webpack/runtime/publicPath","webpack://yc-ui2/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue","webpack://yc-ui2/src/components/YcSlideVerify/index.vue","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue?7fa0","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue?359a","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue?cddb","webpack://yc-ui2/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://yc-ui2/./src/components/YcSlideVerify/index.vue?0582","webpack://yc-ui2/./src/components/YcCustomerService/index.vue","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?88e2","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue","webpack://yc-ui2/./src/components/YcCustomerService/chatMixin.js","webpack://yc-ui2/src/components/YcCustomerService/chat.vue","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue?e8eb","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue?fc16","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue?1f05","webpack://yc-ui2/./src/components/YcCustomerService/chat.vue?40e1","webpack://yc-ui2/src/components/YcCustomerService/index.vue","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?bf2a","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?aaa3","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?0e28","webpack://yc-ui2/./src/components/YcCustomerService/index.vue?cfd4","webpack://yc-ui2/./src/components/YcQuestion/index.vue","webpack://yc-ui2/src/components/YcQuestion/index.vue","webpack://yc-ui2/./src/components/YcQuestion/index.vue?6b41","webpack://yc-ui2/./src/components/YcQuestion/index.vue?b7c1","webpack://yc-ui2/./src/components/YcQuestion/index.vue?78f7","webpack://yc-ui2/./src/components/YcQuestion/index.vue?c0dd","webpack://yc-ui2/./src/components/YcCA/index.vue","webpack://yc-ui2/./src/components/YcCA/index.vue?4593","webpack://yc-ui2/./src/components/YcCA/mTokenPlugin/base64.js","webpack://yc-ui2/./src/components/YcCA/mTokenPlugin/hunca_mToken_core2.js","webpack://yc-ui2/./src/components/YcCA/mTokenPluginBeijin/formateTime.js","webpack://yc-ui2/src/components/YcCA/index.vue","webpack://yc-ui2/./src/components/YcCA/index.vue?2187","webpack://yc-ui2/./src/components/YcCA/index.vue?9ba9","webpack://yc-ui2/./src/components/YcCA/index.vue?341f","webpack://yc-ui2/./src/components/YcCA/index.vue?ea8d","webpack://yc-ui2/./src/packages/index.js","webpack://yc-ui2/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"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[\"yc-ui2\"] = factory();\n\telse\n\t\troot[\"yc-ui2\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn ","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","/* eslint-disable no-unused-vars */\r\n/*\r\n --------------------------------------------------------------\r\n * FileName:xtxasyn.js\r\n * This Javascript provides asynchronous interfaces\r\n * Support bjca client version 3.4.1 and later\r\n * Author:BJCA-zys\r\n * Date: 2021-05-06\r\n *\r\n --------------------------------------------------------------\r\n */\r\n \r\n(function() {\r\nif (typeof xtxasyn === 'undefined') {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn = {};\r\n}\r\n})();\r\n\r\n// initialize xtxasyn hashMap object\r\n(function() {\r\n\r\nfunction XTXAsynHashMap(){\r\n this.map = {};\r\n}\r\n\r\nXTXAsynHashMap.prototype = {\r\n put : function(key , value){\r\n this.map[key] = value;\r\n },\r\n\r\n get : function(key){\r\n // eslint-disable-next-line no-prototype-builtins\r\n if(this.map.hasOwnProperty(key)){\r\n return this.map[key];\r\n }\r\n return null;\r\n },\r\n \r\n remove : function(key){\r\n // eslint-disable-next-line no-prototype-builtins\r\n if(this.map.hasOwnProperty(key)){\r\n return delete this.map[key];\r\n }\r\n return false;\r\n },\r\n \r\n removeAll : function(){\r\n this.map = {};\r\n },\r\n \r\n keySet : function(){\r\n var _keys = [];\r\n for(var i in this.map){\r\n _keys.push(i);\r\n }\r\n return _keys;\r\n }\r\n};\r\n\r\nXTXAsynHashMap.prototype.constructor = XTXAsynHashMap;\r\n\r\n// eslint-disable-next-line no-undef\r\nxtxasyn.HashMap = XTXAsynHashMap;\r\n})();\r\n\r\n// initialize xtxasyn util object\r\n(function() {\r\n\r\nfunction initUtilObject(xtxasyn) {\r\n\r\n var util = xtxasyn.util = xtxasyn.util || {};\r\n \r\n util.checkBrowserISIE = function() {\r\n return (!!window.ActiveXObject || 'ActiveXObject' in window) ? true : false;\r\n }\r\n \r\n util.checkLocationIsHttps = function() {\r\n return 'https:' == document.location.protocol ? true: false;\r\n }\r\n \r\n util.evalFunction = function (func) {\r\n if (typeof func === 'function') {\r\n return func;\r\n } else if (typeof func === 'string') {\r\n // eslint-disable-next-line no-undef\r\n cb = eval(func);\r\n } else {\r\n return null;\r\n }\r\n }\r\n \r\n util.consolelog = function(param) {\r\n if (window.console == undefined || window.console.log == undefined) {\r\n return;\r\n }\r\n console.log(param);\r\n }\r\n \r\n util.isEmpty = function(param) {\r\n if (!param) {\r\n return true;\r\n }\r\n if (typeof param == 'string' && param == \"\") {\r\n return true;\r\n }\r\n \r\n return false;\r\n }\r\n\r\n util.loadIECtl = function(clsid, ctlName, checkFunc) {\r\n if (!util.checkBrowserISIE()) {\r\n return null;\r\n }\r\n var ctl = document.getElementById(ctlName);\r\n if (ctl) {\r\n return ctl;\r\n }\r\n try {\r\n var loadObjString = '<object id=\"' + ctlName + '\" classid=\"CLSID:' + clsid + '\" style=\"HEIGHT:0px; WIDTH:0px\">';\r\n loadObjString += '</object>';\r\n document.write(loadObjString);\r\n if (checkFunc != null && checkFunc != \"\" && eval(ctlName + \".\" + checkFunc) == undefined) {\r\n return null; \r\n }\r\n } catch (e) {\r\n util.consolelog(e);\r\n return null;\r\n }\r\n return document.getElementById(ctlName);\r\n }\r\n\r\n util.getAutoExecFunctionString = function (func) {\r\n var ret = \"(\";\r\n ret += func.toString();\r\n ret += \")()\";\r\n \r\n return ret;\r\n }\r\n\r\n util.attachIEEvent = function(ctlName, eventName, eventFunc) {\r\n var ctl;\r\n if (typeof ctlName === 'string') {\r\n ctl = eval(ctlName);\r\n } else {\r\n ctl = ctlName;\r\n }\r\n eventName = eventName.toLowerCase();\r\n\r\n var cb = util.evalFunction(eventFunc);\r\n if (cb == null) {\r\n return;\r\n }\r\n\r\n if (ctl.attachEvent) {\r\n ctl.attachEvent(eventName, cb);\r\n } else { // IE11 not support attachEvent, and addEventListener do not work well, so addEvent ourself\r\n var handler = document.createElement(\"script\");\r\n handler.setAttribute(\"for\", ctlName);\r\n handler.setAttribute(\"event\", eventName);\r\n var eventScript = util.getAutoExecFunctionString(eventFunc);\r\n handler.appendChild(document.createTextNode(eventScript));\r\n document.getElementsByTagName(\"head\")[0].appendChild(handler);\r\n }\r\n }\r\n\r\n util.loadWebSocketCtl = function(wsUrl, wssUrl) {\r\n if (xtxasyn.wsObject) {\r\n return xtxasyn.wsObject;\r\n }\r\n var url;\r\n if (util.checkLocationIsHttps()) {\r\n url = \"wss://\" + wssUrl;\r\n } else {\r\n url = \"ws://\" + wsUrl;\r\n }\r\n \r\n var wsObject = {\r\n socket : undefined,\r\n wsMessageQueue : new xtxasyn.HashMap(),\r\n wsMessageQueueId : 0,\r\n wsEventQueue : new xtxasyn.HashMap(),\r\n wsURL : url,\r\n wsCacheMessage : []\r\n };\r\n xtxasyn.wsObject = wsObject;\r\n xtxasyn.wsObject.wsEventQueue.put(\"onusbkeychange\", util.evalFunction(xtxasyn.custom.defaultUsbkeyChange));\r\n \r\n try {\r\n wsObject.socket = new WebSocket(url); \r\n } catch (e) {\r\n util.consolelog(e);\r\n return null;\r\n }\r\n \r\n // eslint-disable-next-line no-unused-vars\r\n wsObject.socket.onopen = function(evt) {\r\n xtxasyn.util.consolelog(\"open websocket[\" + url + \"] ok...\");\r\n xtxasyn.SOF_GetVersion(function(ret) {\r\n util.consolelog(\"SOF_GetVersion:(\" + ret.retVal + \")\");\r\n });\r\n while (xtxasyn.wsObject.wsCacheMessage.length > 0) {\r\n var tb_send = xtxasyn.wsObject.wsCacheMessage.shift();\r\n //alert(tb_send);\r\n xtxasyn.wsObject.socket.send(tb_send);\r\n }\r\n }\r\n // eslint-disable-next-line no-unused-vars\r\n wsObject.socket.onclose = function(evt) {\r\n util.consolelog(\"websocket[\" + url + \"] closed, reopen it...\");\r\n xtxasyn.wsObject = undefined;\r\n xtxasyn.XTXAppWebSocket = xtxasyn.util.loadWebSocketCtl(wsUrl, wssUrl);\r\n };\r\n wsObject.socket.onmessage = function(evt) {\r\n // eslint-disable-next-line no-unused-vars\r\n var eventCmd = false;\r\n if (xtxasyn.util.isEmpty(evt.data)) {\r\n util.consolelog(\"onmessage evt.data is NULL or empty!!!\");\r\n return;\r\n }\r\n try {\r\n var res = JSON.parse(evt.data);\r\n var cmdId = undefined;\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (res.hasOwnProperty('call_cmd_id')) {\r\n cmdId = res['call_cmd_id'];\r\n } else {\r\n util.consolelog(\"return JSON not include call_cmd_id!!!\");\r\n return;\r\n }\r\n \r\n var retVal = undefined;\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (res.hasOwnProperty('retValue')) {\r\n retVal = res['retValue'];\r\n // eslint-disable-next-line no-prototype-builtins\r\n } else if (res.hasOwnProperty('retVal')) {\r\n retVal = res['retVal'];\r\n }\r\n \r\n var methodName = undefined;\r\n var eventName = cmdId.toLowerCase();\r\n var execFunc = xtxasyn.wsObject.wsEventQueue.get(eventName);\r\n if (execFunc && typeof execFunc == 'function') { // event\r\n execFunc(retVal);\r\n } else { // function\r\n var messageQueue = xtxasyn.wsObject.wsMessageQueue.get(cmdId);\r\n if (!messageQueue || !messageQueue.method) {\r\n util.consolelog(\"can't find call_cmd_id[\" + res['call_cmd_id'] + \"]'s method name!!!\");\r\n return;\r\n }\r\n methodName = messageQueue.method;\r\n execFunc = messageQueue.cb;\r\n if (!execFunc || typeof execFunc != 'function') {\r\n util.consolelog(\"can't find call_cmd_id[\" + res['call_cmd_id'] + \"]'s call back function!!!\");\r\n return;\r\n }\r\n var ctx = messageQueue.ctx;\r\n ctx = ctx || {returnType:\"string\"};\r\n var ret;\r\n if (ctx.returnType == \"bool\"){\r\n if (typeof(retVal) == 'string') {\r\n ret = retVal == \"true\" ? true : false;\r\n } else {\r\n ret = retVal;\r\n }\r\n if (ret == undefined) {\r\n ret = false;\r\n }\r\n } else if (ctx.returnType == \"number\"){\r\n if (typeof(retVal) == 'string') {\r\n ret = Number(retVal);\r\n } else {\r\n ret = retVal;\r\n }\r\n if (ret == undefined) {\r\n ret = -1;\r\n }\r\n } else{\r\n ret = retVal;\r\n if (ret == undefined) {\r\n ret = \"\";\r\n }\r\n }\r\n if (res.token) {\r\n //alert(res.token);\r\n xtxasyn.custom.setToken(res.token);\r\n }\r\n if (((methodName == 'SOF_Login' || methodName == 'SOF_LoginEx') && !ret) || (methodName == 'SOF_Logout' && ret)) {\r\n xtxasyn.custom.setToken(\"\");\r\n } \r\n var retObj = {retVal:ret, ctx:ctx};\r\n execFunc(retObj);\r\n xtxasyn.wsObject.wsMessageQueue.remove(cmdId);\r\n }\r\n } catch (e) {\r\n return;\r\n }\r\n };\r\n wsObject.socket.onerror = function(evt) { \r\n xtxasyn.util.consolelog(evt.data);\r\n };\r\n \r\n return wsObject;\r\n }\r\n \r\n util.attachWebSocketEvent = function(wsObject, eventName, eventFunc) {\r\n if (wsObject == null) {\r\n return;\r\n }\r\n wsObject.wsEventQueue.put(eventName.toLowerCase(), util.evalFunction(eventFunc));\r\n }\r\n \r\n util.callWebSocketMethod = function (wsObject, clsid, method, cb, ctx, returnType, argsArray) {\r\n if (wsObject == null) {\r\n return;\r\n }\r\n wsObject.wsMessageQueueId++;\r\n if (typeof(cb) == 'function'){\r\n ctx = ctx || {};\r\n ctx.returnType = returnType;\r\n var messageQueue = {cb:cb, ctx:ctx, method:method};\r\n wsObject.wsMessageQueue.put('i_' + wsObject.wsMessageQueueId, messageQueue);\r\n }\r\n\r\n var sendArray = {\r\n 'call_cmd_id' : 'i_' + wsObject.wsMessageQueueId,\r\n 'CLSID' : clsid,\r\n 'xtx_func_name' : method,\r\n 'func' : method,\r\n 'URL' : window.location.href\r\n };\r\n if (arguments.length > 6) {\r\n for (var i = 1; i <= argsArray.length; i++) {\r\n var strParam = \"param_\" + i;\r\n sendArray[strParam] = argsArray[i - 1];\r\n }\r\n sendArray[\"param\"] = argsArray;\r\n }\r\n var token = xtxasyn.custom.getToken();\r\n if (token && token != \"\") {\r\n sendArray.token = token;\r\n }\r\n if (wsObject.socket.readyState == WebSocket.OPEN) {\r\n wsObject.socket.send(JSON.stringify(sendArray));\r\n } else if (wsObject.socket.readyState == WebSocket.CONNECTING) {\r\n // The websocket connection has not been successfully created. \r\n // If the html page already has requested data, we will put it in the cache(wsObject.wsCacheMessage),\r\n // and then send the data one by one after the connection is successfully created.\r\n wsObject.wsCacheMessage.push(JSON.stringify(sendArray));\r\n } else {\r\n xtxasyn.util.consolelog(\"Can't connect to WebSocket server[\" + wsObject.wsURL + \"]!!!\");\r\n }\r\n }\r\n\r\n util.SynToAsyn = function(retVal, cb, ctx)\r\n {\r\n if (typeof cb == 'function') {\r\n var retObj = {retVal:retVal, ctx:ctx};\r\n cb(retObj);\r\n } \r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-undef\r\nreturn initUtilObject(xtxasyn);\r\n})();\r\n\r\n// initialize index page and other custom action\r\n(function() {\r\n \r\nfunction initCustomActions(xtxasyn) {\r\n var custom = xtxasyn.custom = xtxasyn.custom || {};\r\n \r\n custom.softCertListID = \"\";\r\n custom.hardCertListID = \"\";\r\n custom.allCertListID = \"\";\r\n custom.loginCertID = \"\";\r\n custom.logoutFunc = null;\r\n custom.UsbkeyChangeFunc = null;\r\n custom.loginToken = \"\";\r\n \r\n custom.errorReportFunc = function(msg) {\r\n alert(msg);\r\n }\r\n \r\n custom.setAutoLogoutParameter = function(strCertID, logoutFunc) {\r\n var custom = xtxasyn.custom;\r\n custom.loginCertID = strCertID;\r\n custom.logoutFunc = logoutFunc;\r\n }\r\n\r\n custom.clearDropList = function(dropListId) {\r\n if (dropListId == \"\") {\r\n return;\r\n }\r\n\r\n var obj = document.getElementById(dropListId);\r\n if (obj == undefined) {\r\n obj = eval(dropListId);\r\n } \r\n if (obj == undefined) {\r\n return;\r\n }\r\n\r\n var i, n = obj.length;\r\n for (i = 0; i < n; i++) {\r\n obj.remove(0);\r\n }\r\n }\r\n\r\n custom.pushOneDropListBox = function(userListArray, strListID) \r\n {\r\n var obj = document.getElementById(strListID);\r\n if (obj == undefined) {\r\n obj = eval(strListID);\r\n }\r\n if (obj == undefined) {\r\n return;\r\n }\r\n \r\n for (var i = 0; i < userListArray.length; i++) {\r\n var certObj = userListArray[i];\r\n var objItem = new Option(certObj.certName, certObj.certID);\r\n obj.options.add(objItem);\r\n } \r\n return;\r\n }\r\n\r\n custom.pushUserListToAllDroplist = function(retObj) {\r\n var custom = xtxasyn.custom;\r\n\r\n custom.clearDropList(custom.softCertListID);\r\n custom.clearDropList(custom.hardCertListID);\r\n custom.clearDropList(custom.allCertListID);\r\n\r\n var strUserList = retObj.retVal;\r\n var allListArray = [];\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n var i = strUserList.indexOf(\"&&&\");\r\n if (i <= 0 ) {\r\n break;\r\n }\r\n var strOneUser = strUserList.substring(0, i);\r\n var strName = strOneUser.substring(0, strOneUser.indexOf(\"||\"));\r\n var strCertID = strOneUser.substring(strOneUser.indexOf(\"||\") + 2, strOneUser.length);\r\n allListArray.push({certName:strName, certID:strCertID});\r\n \r\n if (custom.hardCertListID != \"\") {\r\n xtxasyn.GetDeviceInfo(strCertID, 7, function(retObj) {\r\n if (retObj.retVal == \"HARD\") {\r\n custom.pushOneDropListBox([retObj.ctx], custom.hardCertListID);\r\n }\r\n }, {certName:strName, certID:strCertID});\r\n }\r\n \r\n if (custom.softCertListID != \"\") {\r\n xtxasyn.GetDeviceInfo(strCertID, 7, function(retObj) {\r\n if (retObj.retVal == \"SOFT\") {\r\n custom.pushOneDropListBox([retObj.ctx], custom.softCertListID);\r\n }\r\n }, {certName:strName, certID:strCertID});\r\n }\r\n var len = strUserList.length;\r\n strUserList = strUserList.substring(i + 3, len);\r\n }\r\n\r\n if (custom.allCertListID != \"\") {\r\n custom.pushOneDropListBox(allListArray, custom.allCertListID);\r\n }\r\n }\r\n \r\n custom.setUserCertList = function(certListId, certType) {\r\n var custom = xtxasyn.custom;\r\n\r\n if (certType == CERT_TYPE_ALL || certType == undefined) {\r\n custom.allCertListID = certListId;\r\n }\r\n \r\n if (certType == CERT_TYPE_HARD) {\r\n custom.hardCertListID = certListId;\r\n }\r\n \r\n if (certType == CERT_TYPE_SOFT) {\r\n custom.softCertListID = certListId;\r\n }\r\n xtxasyn.SOF_GetUserList(custom.pushUserListToAllDroplist);\r\n }\r\n \r\n custom.setOnUsbKeyChangeCallBack = function(callback) {\r\n var custom = xtxasyn.custom;\r\n custom.UsbkeyChangeFunc = callback;\r\n }\r\n \r\n custom.setErrorReportFunc = function(errFunc) {\r\n var custom = xtxasyn.custom;\r\n custom.errorReportFunc = errFunc;\r\n }\r\n\r\n custom.autoLogoutCallBack = function(retObj) {\r\n var custom = xtxasyn.custom;\r\n if (retObj.retVal.indexOf(custom.loginCertID) <= 0) {\r\n custom.logoutFunc();\r\n }\r\n }\r\n \r\n custom.defaultUsbkeyChange = function() {\r\n var custom = xtxasyn.custom;\r\n xtxasyn.SOF_GetUserList(custom.pushUserListToAllDroplist);\r\n \r\n if (typeof custom.UsbkeyChangeFunc == 'function') {\r\n custom.UsbkeyChangeFunc();\r\n }\r\n\r\n if (custom.loginCertID != \"\" && typeof custom.logoutFunc == 'function') {\r\n xtxasyn.SOF_GetUserList(custom.autoLogoutCallBack);\r\n }\r\n }\r\n \r\n custom.getToken = function() {\r\n return custom.loginToken;\r\n }\r\n \r\n custom.setToken = function(token) {\r\n custom.loginToken = token;\r\n }\r\n}\r\n\r\n// eslint-disable-next-line no-undef\r\nreturn initCustomActions(xtxasyn);\r\n})();\r\n\r\n// initialize xtxappcom object\r\n(function() {\r\n \r\nfunction initXTXAppCOM(xtxasyn) {\r\n var util = xtxasyn.util;\r\n var custom = xtxasyn.custom; \r\n\r\n xtxasyn.XTXAppCOM = util.loadIECtl(xtxasyn.xtx_clsid, \"XTXAppObj\", \"SOF_GetVersion()\");\r\n if (xtxasyn.XTXAppCOM == null) {\r\n custom.errorReportFunc(\"加载XTXAppCOM控件失败,请确认已正确安装BJCA证书应用环境!\");\r\n return false;\r\n }\r\n var XTXAppCOM = xtxasyn.XTXAppCOM;\r\n \r\n util.attachIEEvent(\"XTXAppObj\", \"onUsbkeyChange\", xtxasyn.custom.defaultUsbkeyChange);\r\n \r\n // get key pic interface\r\n var GetPicObj = util.loadIECtl(xtxasyn.getpic_clsid, \"GetPicObj\", \"Hash('0')\");\r\n if (GetPicObj == null) {\r\n //custom.errorReportFunc(\"加载GetKeyPic控件失败,请确认已正确安装GetKeyPic控件!\");\r\n } else {\r\n XTXAppCOM.GetPic = function(strCertID) {\r\n return GetPicObj.GetPic(strCertID);\r\n }\r\n XTXAppCOM.Hash = function(inData) {\r\n return GetPicObj.Hash(inData);\r\n }\r\n XTXAppCOM.ConvertPicFormat = function(inData, type) {\r\n return GetPicObj.ConvertPicFormat(inData, type);\r\n }\r\n XTXAppCOM.ConvertGif2Jpg = function(inData) {\r\n return GetPicObj.ConvertGif2Jpg(inData);\r\n }\r\n XTXAppCOM.GetPic1 = function(strCertID) {\r\n return GetPicObj.GetPic1(strCertID);\r\n }\r\n XTXAppCOM.ConvertPicSize = function(strPicture, w, h) {\r\n return GetPicObj.ConvertPicSize(strPicture, w, h);\r\n }\r\n }\r\n \r\n // xtxversion interface\r\n var XTXVersionOBJ = util.loadIECtl(xtxasyn.xtx_version_clsid, \"XTXVersionOBJ\", \"GetEnvVersion()\");\r\n if (XTXVersionOBJ == null) {\r\n //custom.errorReportFunc(\"加载XTXVersion控件失败,请确认已正确安装证书应用环境!\");\r\n } else {\r\n XTXAppCOM.GetEnvVersion = function() {\r\n return XTXVersionOBJ.GetEnvVersion();\r\n }\r\n } \r\n \r\n return true;\r\n}\r\n\r\nfunction initXTXAppWebSocket(xtxasyn) { \r\n xtxasyn.XTXAppWebSocket = xtxasyn.util.loadWebSocketCtl(\"127.0.0.1:21051/xtxapp/\", \"127.0.0.1:21061/xtxapp/\");\r\n if (xtxasyn.XTXAppWebSocket == null) {\r\n // eslint-disable-next-line no-undef\r\n custom.errorReportFunc(\"连接XTXAppCOM服务失败,请确认已正确安装BJCA证书应用环境!\");\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nfunction initXTXAppObject(xtxasyn) {\r\n var util = xtxasyn.util;\r\n xtxasyn.xtx_clsid = \"3F367B74-92D9-4C5E-AB93-234F8A91D5E6\";\r\n xtxasyn.getpic_clsid = \"3BC3C868-95B5-47ED-8686-E0E3E94EF366\";\r\n xtxasyn.xtx_version_clsid = \"574887FB-22A5-488B-A49C-2CF25F56BE68\";\r\n var getImplmentFunction;\r\n\r\n if (util.checkBrowserISIE()) { // IE\r\n if (!initXTXAppCOM(xtxasyn)) {\r\n return false;\r\n }\r\n getImplmentFunction = function(methodInfo) {\r\n if (methodInfo.inParams == '') { // 0 input param\r\n window[methodInfo.funcName] = new Function('cb', 'ctx', \r\n 'xtxasyn.util.SynToAsyn(xtxasyn.XTXAppCOM.' + methodInfo.funcName + '(), cb, ctx);');\r\n } else {\r\n window[methodInfo.funcName] = new Function(methodInfo.inParams, 'cb', 'ctx', \r\n 'xtxasyn.util.SynToAsyn(xtxasyn.XTXAppCOM.' + methodInfo.funcName + '(' + methodInfo.inParams + '), cb, ctx);');\r\n }\r\n }\r\n } else { // other brower\r\n if (!initXTXAppWebSocket(xtxasyn)) {\r\n return false;\r\n }\r\n getImplmentFunction = function(methodInfo) {\r\n if (methodInfo.inParams == '') { // 0 input param\r\n window[methodInfo.funcName] = new Function('cb, ctx', \r\n \"xtxasyn.util.callWebSocketMethod(xtxasyn.XTXAppWebSocket, '\" + methodInfo.clsid + \"', '\" + \r\n methodInfo.funcName + \"', cb, ctx, '\" + methodInfo.outParamType + \"', []);\");\r\n } else {\r\n window[methodInfo.funcName] = new Function(methodInfo.inParams + ', cb, ctx', \r\n \"xtxasyn.util.callWebSocketMethod(xtxasyn.XTXAppWebSocket, '\" + methodInfo.clsid + \"', '\" + \r\n methodInfo.funcName + \"', cb, ctx, '\" + methodInfo.outParamType + \"', [\" + methodInfo.inParams + \"]);\");\r\n }\r\n }\r\n }\r\n\r\n var export_functions = [\r\n {funcName:'SOF_SetSignMethod', inParams:'SignMethod', outParamType:'number', clsid:xtxasyn.xtx_clsid, aliasName:'SetSignMethod'},\r\n {funcName:'SOF_GetSignMethod', inParams:'', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SetEncryptMethod', inParams:'EncryptMethod', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetEncryptMethod', inParams:'', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetUserList', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetUserList'},\r\n {funcName:'SOF_ExportUserCert', inParams:'CertID', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetSignCert'},\r\n {funcName:'SOF_Login', inParams:'CertID, PassWd', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifyUserPIN'},\r\n {funcName:'SOF_GetPinRetryCount', inParams:'CertID', outParamType:'number', clsid:xtxasyn.xtx_clsid, aliasName:'GetUserPINRetryCount'},\r\n {funcName:'SOF_ChangePassWd', inParams:'CertID, oldPass, newPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'ChangeUserPassword'},\r\n {funcName:'SOF_GetCertInfo', inParams:'Cert, type', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetCertBasicinfo'},\r\n {funcName:'SOF_GetCertInfoByOid', inParams:'Cert, Oid', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetExtCertInfoByOID'},\r\n {funcName:'SOF_SignData', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'SignedData'},\r\n {funcName:'SOF_VerifySignedData', inParams:'Cert, InData, SignValue', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifySignedData'},\r\n {funcName:'SOF_SignFile', inParams:'CertID, InFile', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'SOF_SignFile'},\r\n {funcName:'SOF_VerifySignedFile', inParams:'Cert, InFile, SignValue', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifySignFile'},\r\n {funcName:'SOF_EncryptData', inParams:'Cert, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'EncodeP7Enveloped'},\r\n {funcName:'SOF_DecryptData', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'DecodeP7Enveloped'},\r\n {funcName:'SOF_EncryptFile', inParams:'Cert, InFile, OutFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_DecryptFile', inParams:'CertID, InFile, OutFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignMessage', inParams:'dwFlag, CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedMessage', inParams:'MessageData, InData', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifyDatabyP7'},\r\n {funcName:'SOF_GetInfoFromSignedMessage', inParams:'SignedMessage, type', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignDataXML', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedDataXML', inParams:'InData', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetXMLSignatureInfo', inParams:'XMLSignedData, type', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GenRandom', inParams:'RandomLen', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GenerateRandom'},\r\n {funcName:'SOF_PubKeyEncrypt', inParams:'Cert, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'PubKeyEncrypt'},\r\n {funcName:'SOF_PriKeyDecrypt', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'PriKeyDecrypt'},\r\n {funcName:'SOF_SecertSegment', inParams:'Secert, m, n, k', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SecertRecovery', inParams:'Seg', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetLastError', inParams:'', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetDeviceCount', inParams:'', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetAllDeviceSN', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetDeviceSNByIndex', inParams:'iIndex', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetDeviceInfo', inParams:'sDeviceSN, iType', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ChangeAdminPass', inParams:'sDeviceSN, sOldPass, sNewPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'UnlockUserPass', inParams:'sDeviceSN, sAdminPass, sNewUserPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GenerateKeyPair', inParams:'sDeviceSN, sContainerName, iKeyType, bSign', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ExportPubKey', inParams:'sDeviceSN, sContainerName, bSign', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportSignCert', inParams:'sDeviceSN, sContainerName, sCert', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportEncCert', inParams:'sDeviceSN, sContainerName, sCert, sPriKeyCipher', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ReadFile', inParams:'sDeviceSN, sFileName', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'readFile'},\r\n {funcName:'WriteFile', inParams:'sDeviceSN, sFileName, sContent, bPrivate', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'writeFile'},\r\n {funcName:'IsContainerExist', inParams:'sDeviceSN, sContainerName', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'DeleteContainer', inParams:'sDeviceSN, sContainerName', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ExportPKCS10', inParams:'sDeviceSN, sContainerName, sDN, bSign', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'InitDevice', inParams:'sDeviceSN, sAdminPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'AddSignInfo', inParams:'sUserPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetVersion', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ExportExChangeUserCert', inParams:'CertID', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetExchCert'},\r\n {funcName:'SOF_ValidateCert', inParams:'Cert', outParamType:'number', clsid:xtxasyn.xtx_clsid, aliasName:'ValidateCert'},\r\n {funcName:'GetENVSN', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SetENVSN', inParams:'sDeviceSN, sEnvsn', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'IsDeviceExist', inParams:'sDeviceSN', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetContainerCount', inParams:'sDeviceSN', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SymEncryptData', inParams:'sKey, indata', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'EncryptData'},\r\n {funcName:'SOF_SymDecryptData', inParams:'sKey, indata', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'DecryptData'},\r\n {funcName:'SOF_SymEncryptFile', inParams:'sKey, inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'EncryptFile'},\r\n {funcName:'SOF_SymDecryptFile', inParams:'sKey, inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'DecryptFile'},\r\n {funcName:'SOF_GetLastErrMsg', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_Base64Encode', inParams:'sIndata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_Base64Decode', inParams:'sIndata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashData', inParams:'hashAlg, sInData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashFile', inParams:'hashAlg, inFile', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'UnlockUserPassEx', inParams:'sDeviceSN, sAdminPin, sNewUserPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'DeleteOldContainer', inParams:'sDeviceSN', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'WriteFileEx', inParams:'sDeviceSN, sFileName, sContent', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ReadFileEx', inParams:'sDeviceSN, sFileName', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'WriteFileBase64', inParams:'sDeviceSN, sFileName, sContent', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'DeleteFile', inParams:'sDeviceSN, sFileName', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EncryptDataEx', inParams:'Cert, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'Base64EncodeFile', inParams:'sInFile', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetRetryCount', inParams:'CertID', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetAllContainerName', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'CreateSoftDevice', inParams:'sDeviceSN, sLabel', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'DeleteSoftDevice', inParams:'sDeviceSN, sPasswd', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'EnableSoftDevice', inParams:'enable, sDeviceSN', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SoftDeviceBackup', inParams:'sDeviceSN, sPasswd', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SoftDeviceRestore', inParams:'sDeviceSN, sPasswd, sInFilePath', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_Logout', inParams:'CertID', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'Logout'},\r\n {funcName:'SetUserConfig', inParams:'type, strConfig', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignByteData', inParams:'CertID, byteLen', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedByteData', inParams:'Cert, byteLen, SignValue', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_GetChallengeCode', inParams:'sCertID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportEncCertEx', inParams:'sDeviceSN, sContainerName, sCert, sPriKeyCipher, ulSymAlg', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetCertEntity', inParams:'sCert', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'GetCertEntity'},\r\n {funcName:'SOF_HMAC', inParams:'hashid, key, indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignDataByPriKey', inParams:'sPriKey, sCert, sInData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportKeyCertToSoftDevice', inParams:'sDeviceSN, sContainerName, sPriKey, sCert, bSign', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'InitDeviceEx', inParams:'sDeviceSN, sAdminPass, sUserPin, sKeyLabel, adminPinMaxRetry, userPinMaxRetry', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SelectFile', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignHashData', inParams:'CertID, b64ashData, hashAlg', outParamType:'string', clsid:xtxasyn.xtx_clsid, aliasName:'SignHashData'},\r\n {funcName:'SOF_VerifySignedHashData', inParams:'Cert, b64ashData, SignValue, hashAlg', outParamType:'bool', clsid:xtxasyn.xtx_clsid, aliasName:'VerifySignedHashData'},\r\n {funcName:'CheckSoftDeviceEnv', inParams:'', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ImportPfxToDevice', inParams:'sDeviceSN, sContainerName, bSign, strPfx, strPfxPass', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashDataEx', inParams:'hashAlg, sInData, sCert, sID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashFileEx', inParams:'hashAlg, inFile, sCert, sID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetDeviceCountEx', inParams:'type', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'GetAllDeviceSNEx', inParams:'type', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_UpdateCert', inParams:'CertID, type', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OpenSpecifiedFolder', inParams:'backupFilePath', outParamType:'', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_GetChallengeCodeEx', inParams:'sCertID, szAccount, money', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'Base64DecodeFile', inParams:'sInData, sFilePath', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'EnumFilesInDevice', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_Halt', inParams:'sCertID', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSGenREQ', inParams:'b64Hash, hashAlg, bReqCert, policyID, b64Nonce, b64Extension', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSCompareNonce', inParams:'b64TSReq, b64TSAResp', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSGenPDFSignature', inParams:'b64TSAResp, b64OriPDFSignature', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSVerifyPDFSignature', inParams:'b64TSPDFSignature', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_TSGetPDFSignatureInfo', inParams:'b64TSPDFSignature, iType', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_GetState', inParams:'sCertID, bCert', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'OTP_GetSyncCode', inParams:'sCertID, ChallengeCode', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_IsLogin', inParams:'CertID', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_LoginEx', inParams:'CertID, PassWd, updateFlag', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'EnumSupportDeviceList', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ExportPfxFromDevice', inParams:'sDeviceSN, sContainerName, bSign, strPfxPass', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignHashMessage', inParams:'CertID, InHashData, hashAlg', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'ExportPfxToFile', inParams:'sDeviceSN, sContainerName, bSign, strPfxPass', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignAPK', inParams:'CertID, strOriSignature', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'YZT_GenerateKeyPair', inParams:'sDeviceSN, sContainerName, iKeyTypeRSA, iKeyTypeSM2', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'YZT_ExportPubKey', inParams:'sDeviceSN, sContainerName, bSign', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'YZT_ImportSignCert', inParams:'sDeviceSN, sContainerName, sRSACert, sSM2Cert', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'YZT_ImportEncCert', inParams:'sDeviceSN, sContainerName, sRSACert, sRSAPriKeyCipher, ulRSASymAlg, sSM2Cert, sSM2PriKeyCipher, ulSM2SymAlg', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ListenUKey', inParams:'Parm', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EnableLoginWindow', inParams:'Parm', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignEnvelope', inParams:'CertID, Cert, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_UnSignEnvelope', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_MAKExportPKCS10', inParams:'sDeviceSN, iKeyType, sDN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_MAKImportSignEncCert', inParams:'sDeviceSN, sSignCert, sEncCert, sPriKeyCipher', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_IssueDAKCert', inParams:'sDeviceSN, iKeyType, sDN', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_InfoCollect', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_GetBioInfo', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetLastLoginCertID', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ReadESealData', inParams:'CertID, ulKeyIndex, ulKeyAlgId, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ReadKFXESealData', inParams:'CertID, ulKeyIndex, ulKeyAlgId, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SymDecryptFileToData', inParams:'sKey, inFile', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignMessageBase64', inParams:'dwFlag, CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedMessageBase64', inParams:'MessageData, InData', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedHashMessage', inParams:'MessageData, InHashData', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SignDataBase64', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedDataBase64', inParams:'Cert, InData, SignValue', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_HashDataExBase64', inParams:'hashAlg, sInData, sCert, sID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetProductVersion', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_UpdateCertEx', inParams:'CertID, PassWd', outParamType:'number', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_GetLastSignDataCertID', inParams:'CertID', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_SetUserConfig', inParams:'CertID, type, strConfig', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'BIO_InvokeCommand', inParams:'CertID, bstrCommand', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_ImportSymmKey', inParams:'CertID, ulKeyIndex, InData, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_WriteESealData', inParams:'CertID, InData, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_Encrypt', inParams:'CertID, ulKeyIndex, ulKeyAlgId, IVData, DivCount, DivComponent, InData, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_Decrypt', inParams:'CertID, ulKeyIndex, ulKeyAlgId, IVData, DivCount, DivComponent, InData, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_Mac', inParams:'CertID, ulKeyIndex, ulKeyAlgId, IVData, DivCount, DivComponent, InData, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_PriKeyDecryptEx', inParams:'CertID, InData', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_ReadESealData', inParams:'CertID, ulKeyIndex, ulKeyAlgId, ulFlags', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_EPS_WriteESealData', inParams:'CertID, InData, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'EnumESeal', inParams:'sDeviceSN', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'GetPicture', inParams:'bstrConName', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_SignEnvelopeFile', inParams:'CertID, Cert, InFile, OutFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_UnSignEnvelopeFile', inParams:'CertID, InFile, OutFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_EncryptFile', inParams:'CertID, Cert, InFile, OutFile, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_DecryptFile', inParams:'CertID, InFile, OutFile, ulFlags', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\t\t\r\n {funcName:'GetPic', inParams:'bstrConName', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'Hash', inParams:'inData', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'ConvertPicFormat', inParams:'inData, type', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'ConvertGif2Jpg', inParams:'inData', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'GetPic1', inParams:'bstrConName', outParamType:'string', clsid:xtxasyn.getpic_clsid},\r\n {funcName:'ConvertPicSize', inParams:'bstrPic, w, h', outParamType:'string', clsid:xtxasyn.getpic_clsid},\t\t\r\n {funcName:'GetEnvVersion', inParams:'', outParamType:'string', clsid:xtxasyn.xtx_version_clsid},\r\n\t\t{funcName:'InitDeviceWithParam', inParams:'sDeviceSN, sAppName, sAdminPass, sUserPin, sKeyLabel, adminPinMaxRetry, userPinMaxRetry, createFileRights', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_SignDataEx', inParams:'CertID, InData,signFlag', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_VerifySignedDataEx', inParams:'Cert, InData, SignValue,signFlag', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_SymEncryptDataEx', inParams:'sKey,sIV,indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SymDecryptDataEx', inParams:'sKey,sIV,indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t\r\n\t\t// 3.8 added \r\n\t\t{funcName:'SOFX_InvokeCommand', inParams:'pluginName,InParam', outParamType:'string', clsid:xtxasyn.xtx_clsid},\t\r\n\t\t\r\n\t\t{funcName:'SOF_SymEncryptFileEx', inParams:'sKey,sIV,inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOF_SymDecryptFileEx', inParams:'sKey,sIV,inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOF_SymDecryptFileToDataEx', inParams:'sKey,sIV,inFile', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_SymEncryptDataWithPadding', inParams:'sKey,sIV,padding,indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOFX_SymDecryptDataWithPadding', inParams:'sKey,sIV,padding,indata', outParamType:'string', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_SymEncryptFileWithPadding', inParams:'sKey,sIV,padding,inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n {funcName:'SOFX_SymDecryptFileWithPadding', inParams:'sKey,sIV,padding,inFile, outFile', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n\t\t{funcName:'SOFX_VerifySignedDataWithID', inParams:'Cert, InData, SignValue,userId', outParamType:'bool', clsid:xtxasyn.xtx_clsid}, \r\n {funcName:'SOFX_VerifySignedFileWithID', inParams:'Cert, InFile, SignValue,userId', outParamType:'bool', clsid:xtxasyn.xtx_clsid},\r\n ];\r\n\r\n for (var i = 0; i < export_functions.length; i++) {\r\n getImplmentFunction(export_functions[i]);\r\n xtxasyn[export_functions[i].funcName] = window[export_functions[i].funcName];\r\n if (export_functions[i].aliasName) {\r\n window[export_functions[i].aliasName] = window[export_functions[i].funcName];\r\n xtxasyn[export_functions[i].aliasName] = window[export_functions[i].funcName];\r\n }\r\n \r\n }\r\n\r\n return true;\r\n}\r\n\r\n// eslint-disable-next-line no-undef\r\nreturn initXTXAppObject(xtxasyn);\r\n})();\r\n\r\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n////////////////////////////////////// EXPORT VAR AND FUNCTIONS ///////////////////////////////////////////\r\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n// const var\r\nvar CERT_TYPE_HARD = 1;\r\nvar CERT_TYPE_SOFT = 2;\r\nvar CERT_TYPE_ALL = 3;\r\n\r\n// set auto logout parameters\r\nfunction SetAutoLogoutParameter(strCertID, logoutFunc) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.setAutoLogoutParameter(strCertID, logoutFunc);\r\n}\r\n\r\n// set user cert list id\r\nfunction SetUserCertList(strListID, certType) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.setUserCertList(strListID, certType);\r\n}\r\n\r\n// set custom usbkeychange callback\r\nfunction SetOnUsbKeyChangeCallBack(callback) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.setOnUsbKeyChangeCallBack(callback);\r\n}\r\n\r\n// set custom alert function\r\nfunction SetAlertFunction(custom_alert) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.setErrorReportFunc(custom_alert);\r\n}\r\n\r\n// get custom userlogin token \r\nfunction GetLoginToken() {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.custom.getToken();\r\n}\r\n\r\nfunction SetLoginToken(tokenData) {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.custom.setToken(tokenData);\r\n}\r\n\r\nfunction GetUserListByType(strType, cb, ctx) { // strType is 'HARD' or 'SOFT'\r\n // eslint-disable-next-line no-undef\r\n SOF_GetUserList(function(retObj) {\r\n var strUserList = retObj.retVal;\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n var i = strUserList.indexOf(\"&&&\");\r\n if (i <= 0 ) {\r\n break;\r\n }\r\n var strOneUser = strUserList.substring(0, i);\r\n var strName = strOneUser.substring(0, strOneUser.indexOf(\"||\"));\r\n var strCertID = strOneUser.substring(strOneUser.indexOf(\"||\") + 2, strOneUser.length);\r\n GetDeviceType(strCertID, function(retObj) {\r\n if (retObj.retVal == retObj.ctx.ctx.type) {\r\n if (typeof retObj.ctx.ctx.cb == 'function') {\r\n retObj.ctx.ctx.cb({retVal:retObj.ctx.userList, ctx:retObj.ctx.ctx.ctx})\r\n }\r\n }\r\n }, {userList:strOneUser, ctx:retObj.ctx});\r\n var len = strUserList.length;\r\n strUserList = strUserList.substring(i + 3, len);\r\n }\r\n }, {type:strType, cb:cb, ctx:ctx});\r\n}\r\n\r\n//get usbKey user list\r\nfunction GetUserList_USBKey(cb, ctx) {\r\n return GetUserListByType(\"HARD\", cb, ctx);\r\n}\r\n\r\n//get soft user list\r\nfunction GetUserList_Soft() {\r\n // eslint-disable-next-line no-undef\r\n return GetUserListByType(\"SOFT\", cb, ctx);\r\n}\r\n\r\n//sign data with pkcs7 format\r\nfunction SignByP7(strCertID, strInData, bDetach) {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.SOF_SignMessage(bDetach ? 1 : 0, strCertID, strInData);\r\n}\r\n\r\n//get symmitric key length \r\n//because xtx and secxv2 secx default symmitric alg is no equal\r\nfunction GetSymKeyLength() {\r\n return 24; \r\n}\r\n\r\n//get device type return SOFT or HARD\r\nfunction GetDeviceType(strCertID) {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.GetDeviceInfo(strCertID, 7); \r\n}\r\n\r\n// calculate file's hash\r\nfunction HashFile(strFilePath) {\r\n // eslint-disable-next-line no-undef\r\n return xtxasyn.SOF_HashFile(2/*sha1*/, strFilePath);\r\n}\r\n\r\nfunction ParseDateString(strDate) {\r\n var strYear = strDate.substring(0, 4);\r\n var strMonth = strDate.substring(4, 6);\r\n var strDay = strDate.substring(6, 8);\r\n var strHour = strDate.substring(8, 10);\r\n var strMin = strDate.substring(10, 12);\r\n var strSecond = strDate.substring(12, 14);\r\n var RtnDate = new Date();\r\n RtnDate.setFullYear(Number(strYear), Number(strMonth) - 1, Number(strDay));\r\n RtnDate.setHours(Number(strHour));\r\n RtnDate.setMinutes(Number(strMin));\r\n RtnDate.setSeconds(Number(strSecond));\r\n return RtnDate;\r\n}\r\n\r\nfunction __loginSignRandomCallBack(retObj) {\r\n if (retObj.retVal == \"\") {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"客户端签名失败!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n var objForm = retObj.ctx.objForm;\r\n objForm.UserSignedData.value = retObj.retVal;\r\n // eslint-disable-next-line no-undef\r\n objForm.LoginToken.value = xtxasyn.custom.getToken();\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(true);\r\n } else {\r\n objForm.action = retObj.ctx.action;\r\n objForm.submit();\r\n }\r\n}\r\n\r\nfunction __loginVerifyServerSignatureCallBack(retObj) {\r\n if (!retObj.retVal) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"验证服务器端信息失败!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n \r\n var strCertID = retObj.ctx.certID;\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_SignData(strCertID, strServerRan, __loginSignRandomCallBack, retObj.ctx);\r\n}\r\nfunction __loginCheckCertValidNotAfter(retObj) {\r\n var notAfterDate = ParseDateString(retObj.retVal);\r\n var milliseconds = notAfterDate.getTime() - new Date().getTime();\r\n if (milliseconds < 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书已过期,请尽快到北京数字证书认证中心办理证书更新手续!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n\r\n // eslint-disable-next-line no-undef\r\n days = parseInt(milliseconds / (1000*60*60*24));\r\n // eslint-disable-next-line no-undef\r\n if (days > 0 && days <= 60) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书还有\" + days + \"天过期\\n请您尽快到北京数字证书认证中心办理证书更新手续!\");\r\n // eslint-disable-next-line no-undef\r\n } else if (days == 0) { // 证书有效期天数小于1天\r\n var hours = parseInt(milliseconds / (1000*60*60));\r\n if (hours > 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书还有\" + hours + \"小时过期\\n请您尽快到北京数字证书认证中心办理证书更新手续!\");\r\n }\r\n // 证书有效期小于1小时\r\n var minutes = parseInt(milliseconds / (1000*60));\r\n if (minutes > 1) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书还有\" + minutes + \"分钟过期\\n请您尽快到北京数字证书认证中心办理证书更新手续!\");\r\n } else {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书已过期,请尽快到北京数字证书认证中心办理证书更新手续!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_VerifySignedData(strServerCert, strServerRan, strServerSignedData, \r\n __loginVerifyServerSignatureCallBack, retObj.ctx);\r\n}\r\n\r\nfunction __loginCheckCertValidNotBefore(retObj) {\r\n var notBeforeDate = ParseDateString(retObj.retVal);\r\n var days = parseInt((notBeforeDate.getTime() - new Date().getTime()) / (1000*60*60*24));\r\n if (days > 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书尚未生效!距离生效日期还剩\" + days + \"天!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n var strUserCert = retObj.ctx.objForm.UserCert.value;\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_GetCertInfo(strUserCert, 12, __loginCheckCertValidNotAfter, retObj.ctx);\r\n}\r\n\r\nfunction __loginGetSignCertCallBack(retObj) {\r\n var strUserCert = retObj.retVal;\r\n if (strUserCert == \"\") {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"导出用户证书失败!\");\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb(false);\r\n }\r\n return;\r\n }\r\n retObj.ctx.objForm.UserCert.value = strUserCert;\r\n \r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_GetCertInfo(strUserCert, 11, __loginCheckCertValidNotBefore, retObj.ctx);\r\n}\r\n\r\nfunction __loginGetPINRetryCallBack(retObj) {\r\n var retryCount = Number(retObj.retVal);\r\n if (retryCount > 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"校验证书密码失败!您还有\" + retryCount + \"次机会重试!\");\r\n } else if (retryCount == 0) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"您的证书密码已被锁死,请联系BJCA进行解锁!\");\r\n } else {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"登录失败!\");\r\n }\r\n if (typeof retObj.ctx.cb === 'function') {\r\n retObj.ctx.cb();\r\n }\r\n}\r\n\r\nfunction __loginVerifyPINCallBack(retObj) {\r\n var strCertID = retObj.ctx.certID;\r\n var objForm = retObj.ctx.objForm;\r\n if (!retObj.retVal) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_GetPinRetryCount(strCertID, __loginGetPINRetryCallBack, retObj.ctx);\r\n return;\r\n }\r\n objForm.CertID.value = strCertID;\r\n objForm.ContainerName.value = strCertID; \r\n \r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_ExportUserCert(strCertID, __loginGetSignCertCallBack, retObj.ctx);\r\n}\r\n\r\n//Form login\r\nfunction Login(formName, strCertID, strPin, strAction, custom_cb) {\r\n var objForm = eval(formName);\r\n if (objForm == null) {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"表单错误!\");\r\n if (typeof(custom_cb) === 'function') {\r\n custom_cb(false);\r\n }\r\n return;\r\n }\r\n if (strCertID == null || strCertID == \"\") {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"请输入证书密码!\");\r\n if (typeof(custom_cb) === 'function') {\r\n custom_cb(false);\r\n }\r\n return;\r\n }\r\n if (strPin == null || strPin == \"\") {\r\n // eslint-disable-next-line no-undef\r\n xtxasyn.custom.errorReportFunc(\"请输入证书密码!\");\r\n if (typeof(custom_cb) === 'function') {\r\n custom_cb(false);\r\n }\r\n return;\r\n }\r\n\r\n //Add a hidden item ...\r\n if (objForm.UserSignedData == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"UserSignedData\\\" value=\\\"\\\">\");\r\n }\r\n if (objForm.UserCert == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"UserCert\\\" value=\\\"\\\">\");\r\n }\r\n if (objForm.CertID == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"CertID\\\" value=\\\"\\\">\");\r\n }\r\n if (objForm.ContainerName == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"ContainerName\\\" value=\\\"\\\">\");\r\n } \r\n if (objForm.LoginToken == null) {\r\n objForm.insertAdjacentHTML(\"BeforeEnd\", \"<input type=\\\"hidden\\\" name=\\\"LoginToken\\\" value=\\\"\\\">\");\r\n }\r\n\r\n var ctx = {certID:strCertID, objForm:objForm, action:strAction, cb:custom_cb};\r\n \r\n // eslint-disable-next-line no-undef\r\n xtxasyn.SOF_Login(strCertID, strPin, __loginVerifyPINCallBack, ctx);\r\n\r\n return;\r\n}\r\n","/*******************************************************\r\n*\r\n* 使用此JS脚本之前请先仔细阅读帮助文档!\r\n*\r\n* @author Fuly\r\n* @version 3.2.3\r\n* @date 2020/12/23\r\n*\r\n**********************************************************/\r\n\r\n\r\n\r\nvar split;\r\n\r\n// Avoid running twice; that would break the `nativeSplit` reference\r\n// eslint-disable-next-line no-unused-vars\r\nsplit = split || function (undef) {\r\n\r\n var nativeSplit = String.prototype.split,\r\n compliantExecNpcg = /()??/.exec(\"\")[1] === undef, // NPCG: nonparticipating capturing group\r\n self;\r\n\r\n self = function (str, separator, limit) {\r\n // If `separator` is not a regex, use `nativeSplit`\r\n if (Object.prototype.toString.call(separator) !== \"[object RegExp]\") {\r\n return nativeSplit.call(str, separator, limit);\r\n }\r\n var output = [],\r\n flags = (separator.ignoreCase ? \"i\" : \"\") +\r\n (separator.multiline ? \"m\" : \"\") +\r\n (separator.extended ? \"x\" : \"\") + // Proposed for ES6\r\n (separator.sticky ? \"y\" : \"\"), // Firefox 3+\r\n lastLastIndex = 0,\r\n // Make `global` and avoid `lastIndex` issues by working with a copy\r\n // eslint-disable-next-line no-redeclare\r\n separator = new RegExp(separator.source, flags + \"g\"),\r\n separator2, match, lastIndex, lastLength;\r\n str += \"\"; // Type-convert\r\n if (!compliantExecNpcg) {\r\n // Doesn't need flags gy, but they don't hurt\r\n separator2 = new RegExp(\"^\" + separator.source + \"$(?!\\\\s)\", flags);\r\n }\r\n /* Values for `limit`, per the spec:\r\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\r\n * If 0, Infinity, or NaN: 0\r\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\r\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\r\n * If other: Type-convert, then use the above rules\r\n */\r\n limit = limit === undef ?\r\n -1 >>> 0 : // Math.pow(2, 32) - 1\r\n limit >>> 0; // ToUint32(limit)\r\n // eslint-disable-next-line no-cond-assign\r\n while (match = separator.exec(str)) {\r\n // `separator.lastIndex` is not reliable cross-browser\r\n lastIndex = match.index + match[0].length;\r\n if (lastIndex > lastLastIndex) {\r\n output.push(str.slice(lastLastIndex, match.index));\r\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\r\n // nonparticipating capturing groups\r\n if (!compliantExecNpcg && match.length > 1) {\r\n match[0].replace(separator2, function () {\r\n for (var i = 1; i < arguments.length - 2; i++) {\r\n if (arguments[i] === undef) {\r\n match[i] = undef;\r\n }\r\n }\r\n });\r\n }\r\n if (match.length > 1 && match.index < str.length) {\r\n Array.prototype.push.apply(output, match.slice(1));\r\n }\r\n lastLength = match[0].length;\r\n lastLastIndex = lastIndex;\r\n if (output.length >= limit) {\r\n break;\r\n }\r\n }\r\n if (separator.lastIndex === match.index) {\r\n separator.lastIndex++; // Avoid an infinite loop\r\n }\r\n }\r\n if (lastLastIndex === str.length) {\r\n if (lastLength || !separator.test(\"\")) {\r\n output.push(\"\");\r\n }\r\n } else {\r\n output.push(str.slice(lastLastIndex));\r\n }\r\n return output.length > limit ? output.slice(0, limit) : output;\r\n };\r\n\r\n // For convenience\r\n String.prototype.split = function (separator, limit) {\r\n return self(this, separator, limit);\r\n };\r\n\r\n return self;\r\n\r\n}();\r\n\r\n\r\nexport function mToken (obj) {\r\n this.obj = obj;\r\n\r\n this.SAR_OK = 0;\r\n this.SAR_FALSE = 1;\r\n\r\n //分组加密算法标识\r\n this.SGD_SM1_ECB = 0x00000101;\r\n this.SGD_SM1_CBC = 0x00000102;\r\n this.SGD_SM1_CFB = 0x00000104;\r\n this.SGD_SM1_OFB = 0x00000108;\r\n this.SGD_SM1_MAC = 0x00000110;\r\n this.SGD_SSF33_ECB = 0x00000201;\r\n this.SGD_SSF33_CBC = 0x00000202;\r\n this.SGD_SSF33_CFB = 0x00000204;\r\n this.SGD_SSF33_OFB = 0x00000208;\r\n this.SGD_SSF33_MAC = 0x00000210;\r\n this.SGD_SM4_ECB = 0x00000401;\r\n this.SGD_SM4_CBC = 0x00000402;\r\n this.SGD_SM4_CFB = 0x00000404;\r\n this.SGD_SM4_OFB = 0x00000408;\r\n this.SGD_SM4_MAC = 0x00000410;\r\n\r\n this.SGD_VENDOR_DEFINED = 0x80000000;\r\n this.SGD_DES_ECB = this.SGD_VENDOR_DEFINED + 0x00000211\r\n this.SGD_DES_CBC = this.SGD_VENDOR_DEFINED + 0x00000212\r\n\r\n this.SGD_3DES168_ECB = this.SGD_VENDOR_DEFINED + 0x00000241\r\n this.SGD_3DES168_CBC = this.SGD_VENDOR_DEFINED + 0x00000242\r\n\r\n this.SGD_3DES112_ECB = this.SGD_VENDOR_DEFINED + 0x00000221\r\n this.SGD_3DES112_CBC = this.SGD_VENDOR_DEFINED + 0x00000222\r\n\r\n this.SGD_AES128_ECB = this.SGD_VENDOR_DEFINED + 0x00000111\r\n this.SGD_AES128_CBC = this.SGD_VENDOR_DEFINED + 0x00000112\r\n\r\n this.SGD_AES192_ECB = this.SGD_VENDOR_DEFINED + 0x00000121\r\n this.SGD_AES192_CBC = this.SGD_VENDOR_DEFINED + 0x00000122\r\n\r\n this.SGD_AES256_ECB = this.SGD_VENDOR_DEFINED + 0x00000141\r\n this.SGD_AES256_CBC = this.SGD_VENDOR_DEFINED + 0x00000142\r\n\r\n\r\n //非对称密码算法标识\r\n this.SGD_RSA = 0x00010000;\r\n this.SGD_SM2_1 = 0x00020100; //ECC签名\r\n this.SGD_SM2_2 = 0x00020200; //ECC密钥交换\r\n this.SGD_SM2_3 = 0x00020400; //ECC加密\r\n\r\n //密码杂凑算法标识\r\n this.SGD_SM3 = 0x00000001;\r\n this.SGD_SHA1 = 0x00000002;\r\n this.SGD_SHA256 = 0x00000004;\r\n this.SGD_RAW = 0x00000080;\r\n this.SGD_MD5 = 0x00000081;\r\n this.SGD_SHA384 = 0x00000082;\r\n this.SGD_SHA512 = 0x00000083;\r\n\r\n\r\n this.SGD_CERT_VERSION = 0x00000001;\r\n this.SGD_CERT_SERIAL = 0x00000002;\r\n this.SGD_CERT_ISSUE = 0x00000005;\r\n this.SGD_CERT_VALID_TIME = 0x00000006;\r\n this.SGD_CERT_SUBJECT = 0x00000007;\r\n this.SGD_CERT_DER_PUBLIC_KEY = 0x00000008;\r\n this.SGD_CERT_DER_EXTENSIONS = 0x00000009;\r\n this.SGD_CERT_NOT_BEFORE = 0x00000010;\r\n this.SGD_CERT_ISSUER_CN = 0x00000021;\r\n this.SGD_CERT_ISSUER_O = 0x00000022;\r\n this.SGD_CERT_ISSUER_OU = 0x00000023;\r\n this.SGD_CERT_ISSUER_C = 0x00000024;\r\n this.SGD_CERT_ISSUER_P = 0x00000025;\r\n this.SGD_CERT_ISSUER_L = 0x00000026;\r\n this.SGD_CERT_ISSUER_S = 0x00000027;\r\n this.SGD_CERT_ISSUER_EMAIL = 0x00000028;\r\n\r\n this.SGD_CERT_SUBJECT_CN = 0x00000031;\r\n this.SGD_CERT_SUBJECT_O = 0x00000032;\r\n this.SGD_CERT_SUBJECT_OU = 0x00000033;\r\n this.SGD_CERT_SUBJECT_EMALL = 0x00000034;\r\n this.SGD_REMAIN_TIME = 0x00000035;\r\n this.SGD_SIGNATURE_ALG = 0x00000036;\r\n this.SGD_CERT_SUBJECT_C = 0x00000037;\r\n this.SGD_CERT_SUBJECT_P = 0x00000038;\r\n this.SGD_CERT_SUBJECT_L = 0x00000039;\r\n this.SGD_CERT_SUBJECT_S = 0x0000003A;\r\n\r\n this.SGD_CERT_CRL = 0x00000041;\r\n\r\n\r\n this.SGD_DEVICE_SORT = 0x00000201;\r\n this.SGD_DEVICE_TYPE = 0x00000202;\r\n this.SGD_DEVICE_NAME = 0x00000203;\r\n this.SGD_DEVICE_MANUFACTURER = 0x00000204;\r\n this.SGD_DEVICE_HARDWARE_VERSION = 0x00000205;\r\n this.SGD_DEVICE_SOFTWARE_VERSION = 0x00000206;\r\n this.SGD_DEVICE_STANDARD_VERSION = 0x00000207;\r\n this.SGD_DEVICE_SERIAL_NUMBER = 0x00000208;\r\n this.SGD_DEVICE_SUPPORT_SYM_ALG = 0x00000209;\r\n this.SGD_DEVICE_SUPPORT_ASYM_ALG = 0x0000020A;\r\n this.SGD_DEVICE_SUPPORT_HASH_ALG = 0x0000020B;\r\n this.SGD_DEVICE_SUPPORT_STORANGE_SPACE = 0x0000020C;\r\n this.SGD_DEVICE_SUPPORT_FREE_SAPCE = 0x0000020D;\r\n this.SGD_DEVICE_RUNTIME = 0x0000020E;\r\n this.SGD_DEVICE_USED_TIMES = 0x0000020F;\r\n this.SGD_DEVICE_LOCATION = 0x00000210;\r\n this.SGD_DEVICE_DESCRIPTION = 0x00000211;\r\n this.SGD_DEVICE_MANAGER_INFO = 0x00000212;\r\n this.SGD_DEVICE_MAX_DATA_SIZE = 0x00000213;\r\n\r\n this.TRUE = 1;\r\n this.FALSE = 0;\r\n\r\n this.GM3000 = 1;\r\n this.K5 = 3;\r\n this.TF = 4;\r\n this.HT = 5;\r\n this.SJK1137 = 2;\r\n\r\n this.TYPE_UKEY = 1; //普通UKEY\r\n this.TYPE_FPKEY = 2; //指纹UKEY\r\n\r\n var g_mTokenPlugin = null;\r\n\r\n\r\n this.SOF_GetLastError = function () {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetLastError();\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n function isIe () {\r\n return (\"ActiveXObject\" in window);\r\n }\r\n\r\n function isMobile () {\r\n var browser = {\r\n versions: function () {\r\n // eslint-disable-next-line no-unused-vars\r\n var u = navigator.userAgent, app = navigator.appVersion;\r\n return {//移动终端浏览器版本信息\r\n trident: u.indexOf('Trident') > -1, //IE内核\r\n presto: u.indexOf('Presto') > -1, //opera内核\r\n webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核\r\n gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核\r\n mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端\r\n ios: !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端\r\n android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器\r\n iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器\r\n iPad: u.indexOf('iPad') > -1, //是否iPad\r\n webApp: u.indexOf('Safari') == -1\r\n //是否web应该程序,没有头部与底部\r\n };\r\n }(),\r\n language: (navigator.browserLanguage || navigator.language).toLowerCase()\r\n }\r\n\r\n if ((browser.versions.mobile) && (browser.versions.ios || browser.versions.android || browser.versions.iPhone || browser.versions.iPad)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n this.SOF_LoadLibrary = function (type) {\r\n os = check_os();\r\n var ret;\r\n if (g_mTokenPlugin == null) {\r\n g_mTokenPlugin = new mTokenPlugin();\r\n }\r\n\r\n if (type == this.GM3000) {\r\n if (isMobile()) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"1\", \"mToken OTG\", \"com.longmai.security.plugin.driver.otg.OTGDriver\");\r\n }\r\n else {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"mtoken_gm3000_hnca.dll\", \"libgm3000.1.0.so\", \"libgm3000.1.0.dylib\");\r\n }\r\n }\r\n else if (type == this.SJK1137) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"SKF_APP.dll\", \"libhunca_hsic_skf.so\", \"libhunca_hsic_skf.dylib\");\r\n }\r\n else if (type == this.HT) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"HUNCA_HT_20522_SKF.dll\", \"libhunca_ht_h2070f63_skf.so\", \"libhunca_ht_h2070f63_skf.dylib\");\r\n }\r\n else if (type == this.K5) {\r\n if (isMobile()) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"2\", \"mToken K5 Bluetooth\", \"com.longmai.security.plugin.driver.ble.BLEDriver\");\r\n }\r\n else {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"mtoken_k5.dll\", \"libgm3000.1.0.so\", \"libk5.1.0.dylib\");\r\n }\r\n }\r\n else if (type == this.TF) {\r\n if (isMobile()) {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"0\", \"mToken TF/SD Card\", \"com.longmai.security.plugin.driver.tf.TFDriver\");\r\n } else {\r\n ret = g_mTokenPlugin.SOF_LoadLibrary(\"mtoken_tf.dll\", \"libgm3000.1.0.so\", \"libtf.dylib\");\r\n }\r\n }\r\n else {\r\n return -1;\r\n }\r\n\r\n if (ret != 0) {\r\n return -2;\r\n }\r\n return this.SAR_OK;\r\n };\r\n\r\n\r\n this.SOF_EnumDevice = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n var array = g_mTokenPlugin.SOF_EnumDevice();\r\n if (array == null || array.length <= 0) {\r\n return null;\r\n }\r\n\r\n return array.split(\"||\");\r\n\r\n };\r\n\r\n\r\n this.SOF_GetVersion = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetVersion();\r\n };\r\n\r\n\r\n this.SOF_GetDeviceInstance = function (DeviceName, ApplicationName) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetDeviceInstance(DeviceName, ApplicationName);\r\n };\r\n\r\n this.SOF_ReleaseDeviceInstance = function () {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ReleaseDeviceInstance()\r\n }\r\n\r\n\r\n this.SOF_GetUserList = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n var array = g_mTokenPlugin.SOF_GetUserList();\r\n if (array == null || array.length <= 0)\r\n return null;\r\n\r\n var list = new Array();\r\n var user = array.split(\"&&&\");\r\n var length = user.length;\r\n for (var i = 0; i < length; i++) {\r\n list[i] = user[i].split(\"||\");\r\n }\r\n\r\n return list;\r\n };\r\n\r\n\r\n this.SOF_ExportUserCert = function (ContainerName, KeySpec) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ExportUserCert(ContainerName, KeySpec);\r\n };\r\n\r\n\r\n this.SOF_GetDeviceInfo = function (Type) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetDeviceInfo(Type);\r\n };\r\n\r\n\r\n this.SOF_GetCertInfo = function (Base64EncodeCert, Type) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetCertInfo(Base64EncodeCert, Type);\r\n };\r\n\r\n this.SOF_GetCertInfoByOid = function (Base64EncodeCert, OID) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetCertInfoByOid(Base64EncodeCert, OID);\r\n }\r\n\r\n this.SOF_Login = function (PassWd) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_Login(PassWd);\r\n };\r\n\r\n\r\n this.SOF_LogOut = function () {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_LogOut();\r\n };\r\n\r\n\r\n this.SOF_GetPinRetryCount = function () {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetPinRetryCount();\r\n };\r\n\r\n\r\n this.SOF_ChangePassWd = function (OldPassWd, NewPassWd) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ChangePassWd(OldPassWd, NewPassWd);\r\n };\r\n\r\n\r\n this.SOF_SetDigestMethod = function (DigestMethod) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SetDigestMethod(DigestMethod);\r\n };\r\n\r\n\r\n this.SOF_SetUserID = function (UserID) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SetUserID(UserID);\r\n };\r\n\r\n\r\n this.SOF_SetEncryptMethodAndIV = function (EncryptMethod, EncryptIV) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SetEncryptMethodAndIV(EncryptMethod, EncryptIV);\r\n };\r\n\r\n\r\n this.SOF_EncryptFileToPKCS7 = function (Cert, InFile, OutFile, type) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_EncryptFileToPKCS7(Cert, InFile, OutFile, type);\r\n };\r\n\r\n\r\n this.SOF_SignFileToPKCS7 = function (ContainerName, InFile, OutFile) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignFileToPKCS7(ContainerName, InFile, OutFile);\r\n };\r\n\r\n this.SOF_VerifyFileToPKCS7 = function (strPkcs7Data, InFilePath) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyFileToPKCS7(strPkcs7Data, InFilePath);\r\n };\r\n\r\n this.SOF_DecryptFileToPKCS7 = function (ContainerName, keySpec, Pkcs7Data, InFile, OutFile, type) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DecryptFileToPKCS7(ContainerName, keySpec, Pkcs7Data, InFile, OutFile, type);\r\n };\r\n\r\n this.SOF_DigestData = function (ContainerName, nData, InDataLen) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DigestData(ContainerName, nData, InDataLen);\r\n };\r\n\r\n this.SOF_SignData = function (ContainerName, ulKeySpec, InData, InDataLen) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignData(ContainerName, ulKeySpec, InData, InDataLen);\r\n };\r\n //交互式签名\r\n this.SOF_SignDataInteractive = function (ContainerName, ulKeySpec, InData, InDataLen) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignDataInteractive(ContainerName, ulKeySpec, InData, InDataLen);\r\n }\r\n\r\n\r\n this.SOF_SignDataToPKCS7 = function (ContainerName, ulKeySpec, InData, ulDetached) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignDataToPKCS7(ContainerName, ulKeySpec, InData, ulDetached);\r\n };\r\n\r\n\r\n\r\n this.SOF_VerifyDataToPKCS7 = function (Base64EncodeCert, InData, SignedValue) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyDataToPKCS7(Base64EncodeCert, InData, SignedValue);\r\n };\r\n\r\n\r\n this.SOF_VerifySignedData = function (Base64EncodeCert, digestMethod, InData, SignedValue) {\r\n if (g_mTokenPlugin == null) {\r\n return -1;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifySignedData(Base64EncodeCert, digestMethod, InData, SignedValue);\r\n };\r\n\r\n\r\n this.SOF_EncryptDataPKCS7 = function (Base64EncodeCert, InData, InDataLen) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_EncryptDataPKCS7(Base64EncodeCert, InData, InDataLen);\r\n };\r\n\r\n\r\n this.SOF_DecryptDataPKCS7 = function (ContainerName, ulKeySpec, InData) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DecryptDataPKCS7(ContainerName, ulKeySpec, InData);\r\n };\r\n\r\n\r\n this.SOF_GenRemoteUnblockRequest = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenRemoteUnblockRequest();\r\n };\r\n\r\n\r\n this.SOF_GenResetpwdResponse = function (request, soPin, userPin) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenResetpwdResponse(request, soPin, userPin);\r\n };\r\n\r\n\r\n this.SOF_RemoteUnblockPIN = function (request) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_RemoteUnblockPIN(request);\r\n };\r\n\r\n\r\n this.SOF_SignDataToPKCS7 = function (ContainerName, ulKeySpec, InData, ulDetached) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignDataToPKCS7(ContainerName, ulKeySpec, InData, ulDetached);\r\n };\r\n\r\n\r\n this.SOF_VerifyDataToPKCS7 = function (strPkcs7Data, OriginalText, ulDetached) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyDataToPKCS7(strPkcs7Data, OriginalText, ulDetached);\r\n };\r\n\r\n //按expType导出的公钥,格式为国密规范指定的格式或DER格式\r\n this.SOF_ExportPubKey = function (containerName, cerType, expType) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ExportPubKey(containerName, cerType, expType);\r\n }\r\n\r\n this.SOF_EncryptByPubKey = function (strPubKey, strInput, cerType) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_EncryptByPubKey(strPubKey, strInput, cerType);\r\n }\r\n\r\n this.SOF_DecryptByPrvKey = function (containerName, cerType, strAsymCipher) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DecryptByPrvKey(containerName, cerType, strAsymCipher);\r\n }\r\n\r\n //RA客户端相关接口:P10及证书导入等\r\n this.SOF_GenerateP10Request = function (deviceName, container, dn, asymAlg, keySpec, keyLength) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenerateP10Request(deviceName, container, dn, asymAlg, keySpec, keyLength);\r\n }\r\n\r\n this.SOF_EnumCertContiner = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_EnumCertContiner();\r\n }\r\n\r\n this.SOF_FindContainer = function (certSN) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_FindContainer(certSN);\r\n }\r\n\r\n this.SOF_DeleteCert = function (certSN) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DeleteCert(certSN);\r\n }\r\n\r\n this.SOF_DeleteContainer = function (certSN) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_DeleteContainer(certSN);\r\n }\r\n\r\n this.SOF_SignByCert = function (certSN, plain) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SignByCert(certSN, plain);\r\n }\r\n\r\n this.SOF_VerifyByCert = function (certSN, plain, signature) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyByCert(certSN, plain, signature);\r\n }\r\n\r\n\r\n this.SOF_ImportCert = function (container, cert, keySpec) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ImportCert(container, cert, keySpec);\r\n }\r\n\r\n this.SOF_ImportCryptoCertAndKey = function (container, cert, nAsymAlg, EncryptedSessionKeyData, symAlg, EncryptedPrivateKeyData, mode) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_ImportCryptoCertAndKey(container, cert, nAsymAlg, EncryptedSessionKeyData, symAlg, EncryptedPrivateKeyData, mode);\r\n }\r\n\r\n this.SOF_VerifyByExtCert = function (cert, plain, signature, digestMethod) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyByExtCert(cert, plain, signature, digestMethod);\r\n }\r\n\r\n this.SOF_GenerateRandom = function (length) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenerateRandom(length);\r\n }\r\n\r\n this.SOF_SymEncryptFile = function (sessionKey, srcfile, destfile, type) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SymEncryptFile(sessionKey, srcfile, destfile, type);\r\n }\r\n\r\n this.SOF_SymDecryptFile = function (sessionKey, srcfile, destfile, type) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SymDecryptFile(sessionKey, srcfile, destfile, type);\r\n }\r\n\r\n this.SOF_SymEncryptData = function (sessionKey, inData) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SymEncryptData(sessionKey, inData);\r\n }\r\n\r\n this.SOF_SymDecryptData = function (sessionKey, inData) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_SymDecryptData(sessionKey, inData);\r\n }\r\n\r\n this.SOF_GenerateQRCode = function (qrcode_text) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GenerateQRCode(qrcode_text);\r\n }\r\n\r\n\r\n this.SOF_VerifyPinMS = function (responseKey) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyPinMS(responseKey);\r\n }\r\n\r\n this.SOF_GetHardwareType = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_GetHardwareType();\r\n }\r\n\r\n this.SOF_VerifyFingerprint = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n return g_mTokenPlugin.SOF_VerifyFingerprint();\r\n }\r\n\r\n\r\n this.SOF_EnumFiles = function () {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n\r\n var array = g_mTokenPlugin.SOF_EnumFiles();\r\n if (array == null || array.length <= 0) {\r\n return null;\r\n }\r\n\r\n return array.split(\"||\");\r\n }\r\n\r\n this.SOF_ReadFile = function (fileName, offset, length) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n return g_mTokenPlugin.SOF_ReadFile(fileName, Number(offset), Number(length));\r\n }\r\n\r\n this.SOF_WriteFile = function (fileName, offset, data) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n return g_mTokenPlugin.SOF_WriteFile(fileName, offset, data);\r\n }\r\n\r\n this.SOF_CreateFile = function (fileName, length, readRight, writeRight) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n return g_mTokenPlugin.SOF_CreateFile(fileName, length, readRight, writeRight);\r\n }\r\n\r\n this.SOF_DeleteFile = function (fileName) {\r\n if (g_mTokenPlugin == null) {\r\n return null;\r\n }\r\n return g_mTokenPlugin.SOF_DeleteFile(fileName);\r\n }\r\n\r\n\r\n}\r\n\r\n//判断插件名称是否存在\r\nfunction hasPlugin (name) {\r\n name = name.toLowerCase();\r\n for (var i = 0; i < navigator.plugins.length; i++) {\r\n if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n//判断系统\r\nfunction check_os () {\r\n var windows = (navigator.userAgent.indexOf(\"Windows\", 0) != -1) ? 1 : 0;\r\n // eslint-disable-next-line no-unused-vars\r\n var mac = (navigator.userAgent.indexOf(\"mac\", 0) != -1) ? 1 : 0;\r\n var linux = (navigator.userAgent.indexOf(\"Linux\", 0) != -1) ? 1 : 0;\r\n // eslint-disable-next-line no-unused-vars\r\n var unix = (navigator.userAgent.indexOf(\"X11\", 0) != -1) ? 1 : 0;\r\n var os_type = \"\";\r\n if (windows) os_type = \"MS Windows\";\r\n // eslint-disable-next-line no-unused-vars\r\n else if (linux) os_type = \"Lunix\";\r\n if (hasPlugin(\"mPlugin1.0.0.1\")) {\r\n linuxWin = 2;\r\n return \"id_mPluginV2Router\";\r\n } else {\r\n linuxWin = 1;\r\n return \"mTokenPlugin\";\r\n }\r\n\r\n\r\n}\r\nvar linuxWin = 0;\r\nvar os;\r\n\r\nfunction mTokenPlugin () {\r\n var _xmlhttp;\r\n var retJSON = \"\";\r\n\r\n function AjaxIO (json_in) {\r\n //id_mPluginV2Router mTokenPlugin\r\n if (os == \"id_mPluginV2Router\") {\r\n var router = null;\r\n //var url = \"http://192.168.1.25:51235/alpha\";\r\n var url = \"http://127.0.0.1:51235/alpha\";\r\n\r\n router = document.getElementById(\"id_mPluginV2Router\");\r\n if (null == router) {\r\n alert(\"无法获取到插件,请确认已经安装好插件!\");\r\n }\r\n /*\r\n if(\"https:\" == document.location.protocol)\r\n {\r\n url = \"https://127.0.0.1:51245/alpha\";\r\n }\r\n */\r\n var json = json_in;\r\n\r\n retJSON = router.invoke(url, json);\r\n return retJSON;\r\n } else {\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n var _curDevName = \"\";\r\n var _url = \"http://127.0.0.1:51235/alpha\";\r\n let json = json_in;\r\n if (_xmlhttp == null) {\r\n if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari\r\n _xmlhttp = new XMLHttpRequest();\r\n } else { // code for IE6, IE5\r\n // eslint-disable-next-line no-undef\r\n _xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");\r\n }\r\n }\r\n\r\n /***\r\n if (\"https:\" == document.location.protocol) {\r\n _url = \"https://127.0.0.1:51245/alpha\";\r\n }\r\n ***/\r\n _xmlhttp.open(\"POST\", _url, false);\r\n _xmlhttp.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\r\n _xmlhttp.send(\"json=\" + json);\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n\r\n function GetHttpResult () {\r\n if (_xmlhttp.readyState == 4 && _xmlhttp.status == 200) {\r\n var obj = eval(\"(\" + _xmlhttp.responseText + \")\");\r\n return obj;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n this.SOF_GetLastError = function () {\r\n var json = '{\"function\":\"SOF_GetLastError\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.errorCode;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_LoadLibrary = function (windows, linux, mac) {\r\n var json = '{\"function\":\"SOF_LoadLibrary\", \"winDllName\":\"' + windows + '\", \"linuxSOName\":\"' + linux + '\", \"macDylibName\":\"' + mac + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_EnumDevice = function () {\r\n var json = '{\"function\":\"SOF_EnumDevice\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.array;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.array;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GetVersion = function () {\r\n var json = '{\"function\":\"SOF_GetVersion\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.version;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.version;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n var _curDevName;\r\n this.SOF_GetDeviceInstance = function (DeviceName, ApplicationName) {\r\n var json = '{\"function\":\"SOF_GetDeviceInstance\", \"deviceName\":\"' + DeviceName + '\", \"applicationName\":\"' + ApplicationName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n _curDevName = DeviceName;\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n if (ret.rtn == 0) {\r\n _curDevName = DeviceName;\r\n }\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n this.SOF_ReleaseDeviceInstance = function () {\r\n var json = '{\"function\":\"SOF_ReleaseDeviceInstance\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.array;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n this.SOF_GetUserList = function () {\r\n var json = '{\"function\":\"SOF_GetUserList\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.array;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.array;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_ExportUserCert = function (ContainerName, KeySpec) {\r\n\r\n var json = '{\"function\":\"SOF_ExportUserCert\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + KeySpec + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.cert;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.cert;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GetDeviceInfo = function (Type) {\r\n var json = '{\"function\":\"SOF_GetDeviceInfo\", \"deviceName\":\"' + _curDevName + '\", \"type\":' + Type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.info;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.info;\r\n }\r\n\r\n return -2;\r\n }\r\n\r\n };\r\n\r\n\r\n this.SOF_GetCertInfo = function (Base64EncodeCert, Type) {\r\n var json = '{\"function\":\"SOF_GetCertInfo\", \"base64EncodeCert\":\"' + Base64EncodeCert + '\", \"type\":' + Type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.info;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.info;\r\n }\r\n\r\n return -2;\r\n }\r\n\r\n };\r\n\r\n\r\n this.SOF_GetCertInfoByOid = function (Base64EncodeCert, OID) {\r\n var json = '{\"function\":\"SOF_GetCertInfoByOid\", \"base64EncodeCert\":\"' + Base64EncodeCert + '\", \"oid\":\"' + OID + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.info;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.info;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n };\r\n\r\n\r\n\r\n this.SOF_Login = function (PassWd) {\r\n\r\n var json = '{\"function\":\"SOF_Login\", \"deviceName\":\"' + _curDevName + '\", \"passWd\":\"' + PassWd + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_LogOut = function () {\r\n\r\n var json = '{\"function\":\"SOF_LogOut\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GetPinRetryCount = function () {\r\n\r\n var json = '{\"function\":\"SOF_GetPinRetryCount\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.retryCount;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.retryCount;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_ChangePassWd = function (OldPassWd, NewPassWd) {\r\n\r\n var json = '{\"function\":\"SOF_ChangePassWd\", \"deviceName\":\"' + _curDevName + '\", \"oldUpin\":\"' + OldPassWd + '\", \"newUpin\":\"' + NewPassWd + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SetDigestMethod = function (DigestMethod) {\r\n\r\n var json = '{\"function\":\"SOF_SetDigestMethod\",\"deviceName\":\"' + _curDevName + '\", \"digestMethod\":' + DigestMethod + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SetUserID = function (UserID) {\r\n\r\n var json = '{\"function\":\"SOF_SetUserID\",\"deviceName\":\"' + _curDevName + '\", \"userID\":\"' + UserID + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SetEncryptMethodAndIV = function (EncryptMethod, EncryptIV) {\r\n\r\n var json = '{\"function\":\"SOF_SetEncryptMethodAndIV\",\"deviceName\":\"' + _curDevName + '\", \"encryptMethod\":' + EncryptMethod + ', \"encryptIV\":\"' + EncryptIV + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_EncryptFileToPKCS7 = function (Cert, InFile, OutFile, type) {\r\n\r\n var json = '{\"function\":\"SOF_EncryptFileToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"cert\":\"' + Cert + '\", \"inFile\":\"' + InFile.replace(/\\\\/g, '\\\\\\\\') + '\", \"outFile\":\"' + OutFile.replace(/\\\\/g, '\\\\\\\\') + '\", \"type\":' + type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.envelopData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.envelopData;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SignFileToPKCS7 = function (ContainerName, KeySpec, InFile) {\r\n\r\n var json = '{\"function\":\"SOF_SignFileToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"KeySpec\":' + KeySpec + ', \"inFile\":\"' + InFile.replace(/\\\\/g, '\\\\\\\\') + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.signed;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.signed;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_VerifyFileToPKCS7 = function (strPkcs7Data, InFilePath) {\r\n var json = '{\"function\":\"SOF_VerifyFileToPKCS7\", \"deviceName\":\"' + _curDevName + '\",\"strPkcs7Data\":\"' + strPkcs7Data + '\", \"inFile\":\"' + InFilePath.replace(/\\\\/g, '\\\\\\\\') + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_DecryptFileToPKCS7 = function (ContainerName, keySpec, Pkcs7Data, InFile, OutFile, type) {\r\n\r\n var json = '{\"function\":\"SOF_DecryptFileToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + keySpec + ', \"pkcs7Data\":\"' + Pkcs7Data + '\", \"inFile\":\"' + InFile.replace(/\\\\/g, '\\\\\\\\') + '\", \"outFile\":\"' + OutFile.replace(/\\\\/g, '\\\\\\\\') + '\", \"type\":' + type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_DigestData = function (ContainerName, InData, InDataLen) {\r\n\r\n var json = '{\"function\":\"SOF_DigestData\",\"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"inData\":\"' + InData + '\", \"inDataLen\":' + InDataLen + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.digest;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.digest;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n //交互式签名\r\n this.SOF_SignDataInteractive = function (ContainerName, ulKeySpec, inData, InDataLen) {\r\n var InDataBase64 = inData; //对报文进行Base64编码\r\n var json = '{\"function\":\"SOF_SignDataInteractive\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + ulKeySpec + ', \"inData\":\"' + InDataBase64 + '\", \"inDataLen\":' + InDataLen + '}';\r\n\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.signed;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.signed;\r\n }\r\n\r\n return null;\r\n }\r\n };\r\n\r\n this.SOF_SignData = function (ContainerName, ulKeySpec, InData, InDataLen) {\r\n\r\n var json = '{\"function\":\"SOF_SignDataEx\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + ulKeySpec + ', \"inData\":\"' + InData + '\", \"inDataLen\":' + InDataLen + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.signed;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.signed;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_VerifySignedData = function (Base64EncodeCert, digestMethod, InData, SignedValue) {\r\n var json = '{\"function\":\"SOF_VerifySignedDataEx\",\"deviceName\":\"' + _curDevName + '\", \"base64EncodeCert\":\"' + Base64EncodeCert + '\", \"digestMethod\":' + digestMethod + ', \"inData\":\"' + InData + '\", \"signedValue\":\"' + SignedValue + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_EncryptDataPKCS7 = function (Base64EncodeCert, InData, InDataLen) {\r\n\r\n var json = '{\"function\":\"SOF_EncryptDataPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"base64EncodeCert\":\"' + Base64EncodeCert + '\", \"inData\":\"' + InData + '\", \"inDataLen\":' + InDataLen + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.encrypedData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.encrypedData;\r\n }\r\n\r\n return -2;\r\n }\r\n\r\n };\r\n\r\n\r\n this.SOF_DecryptDataPKCS7 = function (ContainerName, ulKeySpec, InData) {\r\n\r\n var json = '{\"function\":\"SOF_DecryptDataPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + ulKeySpec + ', \"inData\":\"' + InData + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.decryptedData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.decryptedData;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GenRemoteUnblockRequest = function () {\r\n\r\n var json = '{\"function\":\"SOF_GenRemoteUnblockRequest\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.request;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.request;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_GenResetpwdResponse = function (request, soPin, userPin) {\r\n\r\n var json = '{\"function\":\"SOF_GenResetpwdResponse\", \"deviceName\":\"' + _curDevName + '\", \"request\":\"' + request + '\", \"soPin\":\"' + soPin + '\", \"userPin\":\"' + userPin + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.request;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.request;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_RemoteUnblockPIN = function (request) {\r\n\r\n var json = '{\"function\":\"SOF_RemoteUnblockPIN\", \"deviceName\":\"' + _curDevName + '\", \"request\":\"' + request + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_SignDataToPKCS7 = function (ContainerName, ulKeySpec, InData, ulDetached) {\r\n\r\n var json = '{\"function\":\"SOF_SignDataToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + ContainerName + '\", \"keySpec\":' + ulKeySpec + ', \"inData\":\"' + InData + '\", \"detached\":' + ulDetached + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.pkcs7;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.pkcs7;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n\r\n this.SOF_VerifyDataToPKCS7 = function (strPkcs7Data, OriginalText, ulDetached) {\r\n\r\n var json = '{\"function\":\"SOF_VerifyDataToPKCS7\", \"deviceName\":\"' + _curDevName + '\", \"pkcs7\":\"' + strPkcs7Data + '\", \"original\":\"' + OriginalText + '\", \"detached\":' + ulDetached + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n };\r\n\r\n //按expType导出的公钥,格式为国密规范指定的格式或DER格式或裸数据格式\r\n this.SOF_ExportPubKey = function (containerName, keySpec, expType) //expType=1: 国密格式; 2:DER; 3:RAW (SM2 public key ONLY: X|Y, X,Y各为32字节)\r\n {\r\n var json = '{\"function\":\"SOF_ExportPubKeyEx\",\"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + containerName + '\", \"keySpec\":' + keySpec + ', \"expType\":' + expType + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.pubKey;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.pubKey;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n //公钥加密\r\n this.SOF_EncryptByPubKey = function (strPubKey, strInput, cerType) {\r\n var json = '{\"function\":\"SOF_EncryptByPubKey\", \"deviceName\":\"' + _curDevName + '\", \"pubKey\":\"' + strPubKey + '\", \"asymPlain\":\"' + strInput + '\", \"keySpec\":' + cerType + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.asymCipher;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.asymCipher;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n //私钥解密\r\n this.SOF_DecryptByPrvKey = function (containerName, cerType, strAsymCipher) {\r\n var json = '{\"function\":\"SOF_DecryptByPrvKey\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + containerName + '\", \"asymCipher\":\"' + strAsymCipher + '\", \"keySpec\":' + cerType + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.asymPlain;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.asymPlain;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n //RA客户端控件\r\n this.SOF_CreateKeyPair = function (container, keySpec, asymAlg, keyLength) {\r\n var json = '{\"function\":\"SOF_CreateKeyPair\",\"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"asymAlg\":' + asymAlg + ', \"keySpec\":' + keySpec + ',\"keyLength\":' + keyLength + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_EnumCertContiner = function () {\r\n var json = '{\"function\":\"SOF_EnumCertContiner\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.containerName;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.containerName;\r\n }\r\n\r\n return \"\";\r\n }\r\n }\r\n\r\n this.SOF_FindContainer = function (certSN) {\r\n var json = '{\"function\":\"SOF_FindContainer\",\"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.containerName;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.containerName;\r\n }\r\n\r\n return \"\";\r\n }\r\n }\r\n\r\n this.SOF_DeleteCert = function (certSN) {\r\n var json = '{\"function\":\"SOF_DeleteCert\",\"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_DeleteContainer = function (certSN) {\r\n var json = '{\"function\":\"SOF_DeleteContainer\", \"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_SignByCert = function (certSN, plain) {\r\n var json = '{\"function\":\"SOF_SignByCert\", \"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\", \"inData\":\"' + plain + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.signed;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.signed;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n this.SOF_VerifyByCert = function (certSN, plain, signature, digestMethod) {\r\n\r\n var json = '{\"function\":\"SOF_VerifyByCert\", \"deviceName\":\"' + _curDevName + '\", \"certSN\":\"' + certSN + '\",\"digestMethod\":' + digestMethod + ', \"inData\":\"' + plain + '\", \"signed\":\"' + signature + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_VerifyByExtCert = function (cert, plain, signature, digestMethod) {\r\n var json = '{\"function\":\"SOF_VerifyByExtCert\",\"deviceName\":\"' + _curDevName + '\", \"cert\":\"' + cert + '\", \"digestMethod\":' + digestMethod + ', \"inData\":\"' + plain + '\", \"signed\":\"' + signature + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n // this.SOF_GenerateP10Request = function (container, dn, asymAlg, keySpec, keyLength) {\r\n // var json = '{\"function\":\"SOF_GenerateP10Request\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"certDN\":\"' + dn + '\", \"asymAlg\":' + asymAlg + ', \"keySpec\":' + keySpec + ',\"keyLength\":' + keyLength + '}';\r\n // if (linuxWin == 2) {\r\n // var retJSON = \"\";\r\n // try {\r\n // retJSON = AjaxIO(json);\r\n // } catch (e) {\r\n // return -3;\r\n // }\r\n //\r\n //\r\n // if (retJSON.length > 3) {\r\n // var obj = eval(\"(\" + retJSON + \")\");\r\n // return obj.outData;\r\n // } else {\r\n // return -2;\r\n //\r\n // }\r\n // } else {\r\n // try {\r\n // AjaxIO(json);\r\n // }\r\n // catch (e) {\r\n // return -3;\r\n // }\r\n //\r\n // var ret = GetHttpResult();\r\n // if (ret) {\r\n // return ret.outData;\r\n // }\r\n //\r\n // return null;\r\n // }\r\n // }\r\n this.SOF_GenerateP10Request = function (_curDevName, container, dn, asymAlg, keySpec, keyLength) {\r\n var json = '{\"function\":\"SOF_GenerateP10Request\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"certDN\":\"' + dn + '\", \"asymAlg\":' + asymAlg + ', \"keySpec\":' + keySpec + ',\"keyLength\":' + keyLength + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n this.SOF_ImportCert = function (container, cert, keySpec) {\r\n var json = '{\"function\":\"SOF_ImportCert\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"cert\":\"' + cert + '\", \"keySpec\":' + keySpec + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_ImportCryptoCertAndKey = function (container, cert, nAsymAlg, EncryptedSessionKeyData, symAlg, EncryptedPrivateKeyData, mode) {\r\n var json = '{\"function\":\"SOF_ImportCryptoCertAndKey\", \"deviceName\":\"' + _curDevName + '\", \"containerName\":\"' + container + '\", \"cert\":\"' + cert + '\", \"asymAlg\":' + nAsymAlg + ', \"sessionKey\":\"' + EncryptedSessionKeyData + '\", \"symAlg\":\"' + symAlg + '\", \"encrypedData\":\"' + EncryptedPrivateKeyData + ', + \"mode\":' + mode + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_GenerateRandom = function (length) {\r\n var json = '{\"function\":\"SOF_GenRandom\", \"deviceName\":\"' + _curDevName + '\", \"inDataLen\":' + length + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_SymEncryptFile = function (sessionKey, srcfile, destfile, type) {\r\n var json = '{\"function\":\"SOF_SymEncryptFile\", \"deviceName\":\"' + _curDevName + '\", \"sessionKey\":\"' + sessionKey + '\", \"inFile\":\"' + srcfile.replace(/\\\\/g, '\\\\\\\\') + '\", \"outFile\":\"' + destfile.replace(/\\\\/g, '\\\\\\\\') + '\", \"type\":' + type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_SymDecryptFile = function (sessionKey, srcfile, destfile, type) {\r\n var json = '{\"function\":\"SOF_SymDecryptFile\", \"deviceName\":\"' + _curDevName + '\", \"sessionKey\":\"' + sessionKey + '\", \"inFile\":\"' + srcfile.replace(/\\\\/g, '\\\\\\\\') + '\", \"outFile\":\"' + destfile.replace(/\\\\/g, '\\\\\\\\') + '\", \"type\":' + type + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_SymEncryptData = function (sessionKey, inData) {\r\n var json = '{\"function\":\"SOF_SymEncryptData\", \"deviceName\":\"' + _curDevName + '\", \"sessionKey\":\"' + sessionKey + '\", \"inData\":\"' + inData + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n this.SOF_SymDecryptData = function (sessionKey, inData) {\r\n var json = '{\"function\":\"SOF_SymDecryptData\", \"deviceName\":\"' + _curDevName + '\", \"sessionKey\":\"' + sessionKey + '\", \"inData\":\"' + inData + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n /////////////////////////////////////////////////////////////////\r\n this.SOF_GenerateQRCode = function (qrcode_text_in) {\r\n var qrcode_text = qrcode_text_in.replace(/\"/g, '\\\\\"');\r\n var json = '{\"module\":\"libQR\",\"function\":\"SOF_GenerateQRCode\", \"inData\":\"' + qrcode_text + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n\r\n this.SOF_VerifyPinMS = function (responseKey) {\r\n var json = '{\"function\":\"SOF_VerifyPinMS\", \"deviceName\":\"' + _curDevName + '\", \"passWd\":\"' + responseKey + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n /////////////////////////////////////////////////////////////////\r\n this.SOF_GetHardwareType = function () {\r\n var json = '{\"function\":\"SOF_GetHardwareType\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.type;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.type;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_VerifyFingerprint = function () {\r\n var json = '{\"function\":\"SOF_VerifyFingerprint\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_EnumFiles = function () {\r\n var json = '{\"function\":\"SOF_EnumFiles\", \"deviceName\":\"' + _curDevName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.array;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.array;\r\n }\r\n\r\n return -2;\r\n }\r\n }\r\n\r\n this.SOF_ReadFile = function (fileName, offset, length) {\r\n var json = '{\"function\":\"SOF_ReadFile\", \"deviceName\":\"' + _curDevName + '\", \"fileName\":\"' + fileName + '\", \"offset\":' + offset + ',\"length\":' + length + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.outData;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.outData;\r\n }\r\n }\r\n }\r\n\r\n this.SOF_WriteFile = function (fileName, offset, data) {\r\n var json = '{\"function\":\"SOF_WriteFile\", \"deviceName\":\"' + _curDevName + '\", \"fileName\":\"' + fileName + '\", \"offset\":' + offset + ',\"inData\":\"' + data + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n this.SOF_CreateFile = function (fileName, length, readRight, writeRight) {\r\n var json = '{\"function\":\"SOF_CreateFile\", \"deviceName\":\"' + _curDevName + '\",\"fileName\":\"' + fileName + '\", \"length\" :' + length + ', \"readRight\":' + readRight + ',\"writeRight\":' + writeRight + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n this.SOF_DeleteFile = function (fileName) {\r\n var json = '{\"function\":\"SOF_DeleteFile\", \"deviceName\":\"' + _curDevName + '\",\"fileName\":\"' + fileName + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n //Socket API\r\n this.SocketConnect = function (HostName, Port) {\r\n var json = '{\"module\":\"libSocket\",\"function\":\"SocketConnect\", \"HostName\":\"' + HostName + '\", \"Port\":' + Port + '}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n this.SocketDisConnect = function () {\r\n var json = '{\"module\":\"libSocket\",\"function\":\"SocketDisConnect\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.rtn;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.rtn;\r\n }\r\n }\r\n }\r\n\r\n this.SocketSendText = function (SendText) {\r\n var json = '{\"module\":\"libSocket\",\"function\":\"SocketSendText\", \"SendText\":\"' + SendText + '\"}';\r\n if (linuxWin == 2) {\r\n var retJSON = \"\";\r\n try {\r\n retJSON = AjaxIO(json);\r\n } catch (e) {\r\n return -3;\r\n }\r\n\r\n\r\n if (retJSON.length > 3) {\r\n var obj = eval(\"(\" + retJSON + \")\");\r\n return obj.RecvText;\r\n } else {\r\n return -2;\r\n\r\n }\r\n } else {\r\n try {\r\n AjaxIO(json);\r\n }\r\n catch (e) {\r\n return -3;\r\n }\r\n\r\n var ret = GetHttpResult();\r\n if (ret) {\r\n return ret.RecvText;\r\n }\r\n }\r\n }\r\n}\r\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].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-dialog',{attrs:{\"title\":_vm.title,\"visible\":_vm.isShow,\"width\":\"350px\",\"append-to-body\":true},on:{\"close\":_vm.handleClose}},[_c('slide-verify',{ref:\"slideblock\",attrs:{\"l\":42,\"r\":10,\"w\":310,\"h\":155,\"imgs\":_vm.imgs,\"accuracy\":_vm.accuracy,\"slider-text\":_vm.sliderText},on:{\"success\":_vm.onSuccess,\"fail\":_vm.onFail,\"again\":_vm.onAgain,\"refresh\":_vm.onRefresh,\"fulfilled\":_vm.onFulfilled}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <el-dialog\r\n :title=\"title\"\r\n :visible=\"isShow\"\r\n width=\"350px\"\r\n :append-to-body=\"true\"\r\n @close=\"handleClose\"\r\n >\r\n <slide-verify\r\n ref=\"slideblock\"\r\n :l=\"42\"\r\n :r=\"10\"\r\n :w=\"310\"\r\n :h=\"155\"\r\n :imgs=\"imgs\"\r\n :accuracy=\"accuracy\"\r\n :slider-text=\"sliderText\"\r\n @success=\"onSuccess\"\r\n @fail=\"onFail\"\r\n @again=\"onAgain\"\r\n @refresh=\"onRefresh\"\r\n @fulfilled=\"onFulfilled\"\r\n ></slide-verify>\r\n </el-dialog>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"YcSlideVerify\",\r\n props: {\r\n title: {\r\n type: String,\r\n default: \"滑动验证\",\r\n },\r\n isShow: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n accuracy: 5,\r\n sliderText: \"拖动完成上方拼图\",\r\n countDownNum: 120,\r\n }\r\n },\r\n computed: {\r\n imgs() {\r\n const list = []\r\n for (let i = 1; i < 9; i++) {\r\n list.push(`/cloud-img/${i}.jpg`)\r\n }\r\n return list\r\n },\r\n },\r\n watch: {\r\n isShow(newVal) {\r\n // 这里第三方引用,ref没有渲染完成,reset报错,还不能用?号\r\n newVal &&\r\n this.$refs.slideblock &&\r\n this.$refs.slideblock.reset &&\r\n this.$refs.slideblock.reset()\r\n },\r\n },\r\n created() {},\r\n methods: {\r\n onSuccess() {\r\n this.$emit(\"success\")\r\n },\r\n onFail() {},\r\n onAgain() {},\r\n onRefresh() {},\r\n onFulfilled() {},\r\n handleClose() {\r\n this.$emit(\"close\")\r\n },\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.el-dialog__wrapper {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n::v-deep .el-dialog {\r\n margin-top: 0 !important;\r\n border-radius: 8px;\r\n}\r\n::v-deep .el-dialog__header {\r\n background-color: #f2f6fc;\r\n border-radius: 8px 8px 0 0;\r\n}\r\n.el-dialog__body {\r\n display: flex;\r\n justify-content: center;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=33a7114a&prod&lang=scss&scoped=true&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=33a7114a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=33a7114a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33a7114a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"customer\",staticStyle:{\"display\":\"none\"}},[_c('chat-vue',{attrs:{\"visible\":_vm.visible,\"jumpPage\":_vm.jumpPage,\"title\":_vm.title,\"json\":_vm.json,\"regular\":_vm.regular},on:{\"update:visible\":function($event){_vm.visible=$event}}}),_c('div',{staticClass:\"customerService\"},[_c('div',{staticClass:\"mobile\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"headset\",on:{\"click\":function($event){_vm.visible = !_vm.visible}}},[_vm._m(0),_vm._m(1)])])],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('i',{staticClass:\"el-icon-headset\"})])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('a',[_vm._v(\"在线客服\")])])\n}]\n\nexport { render, staticRenderFns }","export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=template&id=849349a0&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"chat\"},[_c('header',[_c('img',{attrs:{\"src\":\"/cloud-img/customerService/admin.jpg\"}}),_c('span',[_vm._v(_vm._s(_vm.title))]),(_vm.jumpPage)?_c('i',{staticClass:\"icon-enlarge\",on:{\"click\":_vm.enlarge}},[_c('img',{attrs:{\"src\":\"/cloud-img/customerService/enlarge.png\"}})]):_vm._e(),_c('i',{staticClass:\"el-icon-close\",on:{\"click\":_vm.close}})]),_c('main',{ref:\"main\"},_vm._l((_vm.messagelist),function(item,index){return _c('div',{key:index,class:['message', item.id]},[_c('img',{staticClass:\"avatar\",attrs:{\"src\":`/cloud-img/customerService/${item.id}.jpg`}}),_c('div',{staticClass:\"content\"},[_vm._l((item.msg),function(msg,index){return _c('span',{key:msg + index,class:item.msg.length > 1 ? 'href' : '',domProps:{\"innerHTML\":_vm._s((item.msg.length > 1 ? 1 + index + '. ' : ' ') + msg)},on:{\"click\":function($event){item.msg.length > 1 && _vm.regularClick(msg)}}})}),(item.based)?_c('div',{staticClass:\"based\",on:{\"click\":function($event){return _vm.handExpand(item)}}},[_c('span',[_vm._v(\"依据\")]),_c('span',{class:{ 'is-active': item.isActive }},[_vm._v(_vm._s(item.based)),_c('i',{staticClass:\"el-icon-d-arrow-right\"})])]):_vm._e()],2)])}),0),_c('nav',_vm._l((_vm.regular),function(item,index){return _c('el-button',{key:item + index,attrs:{\"size\":\"mini\",\"round\":\"\"},on:{\"click\":function($event){return _vm.regularClick(item)}}},[_vm._v(_vm._s(item))])}),1),_c('el-input',{attrs:{\"type\":\"textarea\",\"maxlength\":\"500\",\"autosize\":{ minRows: 2, maxRows: 3 },\"autofocus\":\"true\",\"resize\":\"none\",\"placeholder\":\"请反馈您的问题,我们将尽快回复\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.carriageReturn.apply(null, arguments)}},model:{value:(_vm.textareaValue),callback:function ($$v) {_vm.textareaValue=$$v},expression:\"textareaValue\"}}),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\",\"disabled\":!_vm.textareaValue},on:{\"click\":_vm.send}},[_vm._v(\"发送\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\r\n props: {\r\n visible: Boolean,\r\n jumpPage: String,\r\n json: String,\r\n title: String,\r\n commit: String,\r\n regular: Array\r\n },\r\n data() {\r\n return {\r\n textareaValue: \"\",\r\n // regular: ['发票增值税率', '城市维护建设税', '教育费附加征收率'],\r\n messagelist: [\r\n {id: 'admin', msg: ['您好,38号客服很高兴为你服务!'], isActive: false},\r\n // {id: 'personal', msg: ['消费税?']}\r\n ],\r\n isActive: false\r\n }\r\n },\r\n computed: {\r\n questions() {\r\n return JSON.parse(this.json)\r\n }\r\n },\r\n methods: {\r\n close() {\r\n this.$emit(\"update:visible\", false);\r\n },\r\n carriageReturn() {\r\n let e = window.event || arguments[0];\r\n if ((e.key == \"Enter\" || e.code == \"Enter\" || e.keyCode == 13) && this.textareaValue) {\r\n this.send()\r\n }\r\n },\r\n send() {\r\n if(!this.textareaValue.replace(/[^\\w\\u4E00-\\u9FA5]/g, ''))\r\n return\r\n\r\n this.add(this.textareaValue, \"personal\", ()=> {this.textareaValue = ''})\r\n this.search(this.textareaValue)\r\n },\r\n regularClick(msg) {\r\n this.add(msg)\r\n this.search(msg)\r\n },\r\n search(msg) {\r\n const list = this.questions.filter(item => item.faq.replace(/[^\\w\\u4E00-\\u9FA5]/g, '').toLowerCase().includes(msg.replace(/[^\\w\\u4E00-\\u9FA5]/g, '').toLowerCase()))\r\n let [vlaue, based] = ['', '']\r\n \r\n if(list.length > 1) {\r\n vlaue = list.reduce((prev, curr) => [...prev, curr.faq], [])\r\n } else if(list.length == 1) {\r\n [vlaue, based] = [list[0].msg, list[0].based]\r\n } else if([\"您好\",\"你好\"].includes(msg.replace(/[^\\w\\u4E00-\\u9FA5]/g, ''))) {\r\n vlaue = '您好!'\r\n } else {\r\n vlaue = '请提关键词问题?<br/> 比如: 税率<br/><br/><a href=\"tel:4000770168\">客服热线:<span style=\"color: #FF575F;\">400 0770 168</span></a>'\r\n }\r\n this.add(vlaue, 'admin', null, based)\r\n },\r\n add(msg, id=\"personal\", fun, based = \"\") {\r\n this.messagelist.push({\r\n id,\r\n msg: Array.isArray(msg) ? msg : [msg],\r\n based,\r\n isActive: false\r\n })\r\n this.$nextTick(() => {\r\n fun && fun()\r\n // this.$refs.main.scrollTop += 70\r\n this.$refs.main.scrollTop = this.$refs.main.scrollHeight\r\n // console.log(this.$refs.main.scrollTop, this.$refs.main.scrollHeight)\r\n })\r\n },\r\n enlarge() {\r\n // this.$router.resolve({\r\n // name: this.jumpPage\r\n // })\r\n \r\n window.open(this.jumpPage, '_blank')\r\n },\r\n handExpand(item) {\r\n item.isActive = !item.isActive\r\n }\r\n }\r\n}","<template>\r\n <div class=\"chat\" v-show=\"visible\">\r\n <header>\r\n <img src=\"/cloud-img/customerService/admin.jpg\" />\r\n <span>{{ title }}</span>\r\n <i class=\"icon-enlarge\" v-if=\"jumpPage\" @click=\"enlarge\"\r\n ><img src=\"/cloud-img/customerService/enlarge.png\"\r\n /></i>\r\n <i class=\"el-icon-close\" @click=\"close\"></i>\r\n </header>\r\n <main ref=\"main\">\r\n <div\r\n v-for=\"(item, index) in messagelist\"\r\n :key=\"index\"\r\n :class=\"['message', item.id]\"\r\n >\r\n <img\r\n class=\"avatar\"\r\n :src=\"`/cloud-img/customerService/${item.id}.jpg`\"\r\n />\r\n <div class=\"content\">\r\n <span\r\n v-for=\"(msg, index) in item.msg\"\r\n :key=\"msg + index\"\r\n v-html=\"(item.msg.length > 1 ? 1 + index + '. ' : ' ') + msg\"\r\n :class=\"item.msg.length > 1 ? 'href' : ''\"\r\n @click=\"item.msg.length > 1 && regularClick(msg)\"\r\n ></span>\r\n <div class=\"based\" v-if=\"item.based\" @click=\"handExpand(item)\">\r\n <span>依据</span\r\n ><span :class=\"{ 'is-active': item.isActive }\"\r\n >{{ item.based }}<i class=\"el-icon-d-arrow-right\"></i\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n </main>\r\n <nav>\r\n <el-button\r\n size=\"mini\"\r\n round\r\n v-for=\"(item, index) in regular\"\r\n :key=\"item + index\"\r\n @click=\"regularClick(item)\"\r\n >{{ item }}</el-button\r\n >\r\n </nav>\r\n <el-input\r\n type=\"textarea\"\r\n maxlength=\"500\"\r\n :autosize=\"{ minRows: 2, maxRows: 3 }\"\r\n autofocus=\"true\"\r\n resize=\"none\"\r\n placeholder=\"请反馈您的问题,我们将尽快回复\"\r\n v-model=\"textareaValue\"\r\n @keyup.enter.native=\"carriageReturn\"\r\n >\r\n </el-input>\r\n <!-- <el-button size=\"mini\" type=\"primary\">发送</el-button> -->\r\n <el-button\r\n type=\"primary\"\r\n size=\"mini\"\r\n :disabled=\"!textareaValue\"\r\n @click=\"send\"\r\n >发送</el-button\r\n >\r\n </div>\r\n</template>\r\n<script>\r\nimport chatMixin from \"./chatMixin\"\r\nexport default {\r\n name: \"ChatMini\",\r\n mixins: [chatMixin],\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.chat {\r\n width: 350px;\r\n height: 480px;\r\n position: fixed;\r\n bottom: 10px;\r\n right: 55px;\r\n z-index: 2001;\r\n background-color: #ffffff;\r\n border-radius: 12px;\r\n border: 1px solid #e6ebf5;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);\r\n overflow: hidden;\r\n > header {\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n background-color: #ff575f;\r\n font-size: 16px;\r\n padding: 10px;\r\n font-weight: 400;\r\n color: #fafdff;\r\n > img {\r\n width: 44px;\r\n height: 44px;\r\n border-radius: 50%;\r\n margin-right: 10px;\r\n transition: all 0.3s linear;\r\n &:focus,\r\n &:hover {\r\n transform: scale(1.2, 1.2) rotate(15deg);\r\n }\r\n }\r\n i {\r\n cursor: pointer;\r\n position: absolute;\r\n top: 5px;\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 6px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n transition: all 0.3s linear;\r\n &:focus,\r\n &:hover {\r\n transform: scale(1.2, 1.2);\r\n background-color: rgba(255, 137, 122, 0.8);\r\n }\r\n &.el-icon-close {\r\n right: 10px;\r\n }\r\n &.icon-enlarge {\r\n right: 35px;\r\n }\r\n > img {\r\n width: 12px;\r\n }\r\n }\r\n }\r\n\r\n > main {\r\n width: 100%;\r\n height: 60%;\r\n overflow-y: auto;\r\n padding-bottom: 20px;\r\n background-color: #f7f7f9;\r\n // 滚动条宽度\r\n &::-webkit-scrollbar {\r\n width: 6px;\r\n }\r\n // 滚动条轨道\r\n &::-webkit-scrollbar-track {\r\n background: rgb(239, 239, 239);\r\n border-radius: 2px;\r\n }\r\n // 小滑块\r\n &::-webkit-scrollbar-thumb {\r\n background: #ff8879;\r\n border-radius: 10px;\r\n }\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #ff755d;\r\n }\r\n .message {\r\n display: flex;\r\n gap: 15px;\r\n position: relative;\r\n margin: 20px 5px 0px 5px;\r\n opacity: 0;\r\n .avatar {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 50%;\r\n }\r\n .content {\r\n width: fit-content;\r\n max-width: 250px;\r\n font-weight: 400;\r\n font-size: 12px;\r\n color: #4c4c4d;\r\n line-height: 20px;\r\n padding: 10px;\r\n border-radius: 10px;\r\n background-color: #ffffff;\r\n .href {\r\n cursor: pointer;\r\n display: block;\r\n color: #ff575f;\r\n margin-bottom: 0.5rem;\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n > .based {\r\n cursor: pointer;\r\n color: #909399;\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: flex-start;\r\n border-top: 1px solid #ebebed;\r\n padding-top: 5px;\r\n margin-top: 5px;\r\n gap: 5px;\r\n\r\n & > span:first-child {\r\n white-space: nowrap;\r\n color: #4c4c4d;\r\n border-radius: 10px;\r\n background-color: #eeeef0;\r\n padding: 0px 7px;\r\n }\r\n\r\n & > span:last-child {\r\n width: 100%;\r\n position: relative;\r\n display: inline-block;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n padding-right: 12px;\r\n\r\n .el-icon-d-arrow-right {\r\n position: absolute;\r\n right: 0px;\r\n bottom: 5px;\r\n transform: rotate(90deg);\r\n transition: all 0.35s linear;\r\n }\r\n &.is-active {\r\n overflow: visible;\r\n white-space: normal;\r\n .el-icon-d-arrow-right {\r\n transform: rotate(270deg);\r\n }\r\n }\r\n\r\n &:hover {\r\n color: #ff575f;\r\n }\r\n }\r\n }\r\n }\r\n &.admin {\r\n animation: animation01 0.3s linear 1.5s forwards;\r\n .content::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 2px;\r\n left: 37px;\r\n transform: rotate(-45deg);\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #ffffff;\r\n }\r\n }\r\n &.personal {\r\n animation: animation01 0.3s linear 0.3s forwards;\r\n flex-direction: row-reverse;\r\n .content::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 2px;\r\n right: 37px;\r\n transform: rotate(-45deg);\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent #ffffff transparent;\r\n }\r\n }\r\n @keyframes animation01 {\r\n 0% {\r\n transform: translateY(20px);\r\n opacity: 0;\r\n }\r\n\r\n 100% {\r\n transform: translateY(0px);\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n }\r\n > nav {\r\n // overflow-x: auto;\r\n background-color: #f7f7f9;\r\n border-bottom: 1px solid #e7e7ea;\r\n padding: 5px 10px;\r\n display: flex;\r\n .el-button {\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #4c4c4d;\r\n background-color: #fff !important;\r\n border: 1px solid #e7e7ea;\r\n padding: 5px 8px;\r\n }\r\n }\r\n > .el-textarea {\r\n border-color: transparent;\r\n textarea {\r\n overflow-y: hidden;\r\n padding-right: 65px;\r\n font-weight: 400;\r\n color: #19191a;\r\n font-size: 12px;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n }\r\n textarea,\r\n textarea:focus {\r\n border-color: transparent;\r\n }\r\n }\r\n > .el-button {\r\n position: absolute;\r\n bottom: 10px;\r\n right: 10px;\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./chat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./chat.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./chat.vue?vue&type=style&index=0&id=42a8b467&prod&lang=scss&scoped=true&\"","import { render, staticRenderFns } from \"./chat.vue?vue&type=template&id=42a8b467&scoped=true&\"\nimport script from \"./chat.vue?vue&type=script&lang=js&\"\nexport * from \"./chat.vue?vue&type=script&lang=js&\"\nimport style0 from \"./chat.vue?vue&type=style&index=0&id=42a8b467&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"42a8b467\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div ref=\"customer\" style=\"display: none\">\r\n <chat-vue\r\n :visible.sync=\"visible\"\r\n :jumpPage=\"jumpPage\"\r\n :title=\"title\"\r\n :json=\"json\"\r\n :regular=\"regular\"\r\n />\r\n <div class=\"customerService\">\r\n <div class=\"mobile\">\r\n <slot></slot>\r\n <!-- <div><i class=\"el-icon-mobile\"></i></div>\r\n <div>\r\n <span>客服热线</span>\r\n <a href=\"tel:4000770168\">400 0770 168</a>\r\n <template v-if=\"!['/login', '/register'].includes($route.path)\">\r\n <span style=\"margin-top: 10px\">银行服务电话</span>\r\n <a href=\"tel:13973004180\">13973004180(蒋行长)</a>\r\n <a href=\"tel:15773001997\">15773001997(彭经理)</a>\r\n </template>\r\n </div> -->\r\n </div>\r\n <div class=\"headset\" @click=\"visible = !visible\">\r\n <div><i class=\"el-icon-headset\"></i></div>\r\n <div><a>在线客服</a></div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport chatVue from \"./chat.vue\"\r\nexport default {\r\n name: \"YcCustomerService\",\r\n components: {\r\n chatVue,\r\n },\r\n props: {\r\n jumpPage: String,\r\n title: String,\r\n json: String,\r\n regular: Array,\r\n },\r\n data() {\r\n return {\r\n visible: false,\r\n }\r\n },\r\n computed: {\r\n hasSlot() {\r\n return Boolean(this.$slots.default)\r\n },\r\n },\r\n watch: {\r\n $route(to) {\r\n if (to.path != this.jumpPage) {\r\n this.$refs.customer.style.display = \"block\"\r\n } else {\r\n this.$refs.customer.style.display = \"none\"\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.$refs.customer.style.display = \"block\"\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.customerService {\r\n position: fixed;\r\n right: 0px;\r\n bottom: 35px;\r\n z-index: 2001;\r\n > div {\r\n cursor: pointer;\r\n position: absolute;\r\n right: 0px;\r\n display: flex;\r\n align-items: center;\r\n background-color: #ffffff;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);\r\n &:hover {\r\n > div:first-child {\r\n color: #ff4949;\r\n i {\r\n animation-name: animateRotate;\r\n animation-duration: 0.5s;\r\n animation-iteration-count: infinite;\r\n }\r\n }\r\n }\r\n > div:first-child {\r\n width: 50px;\r\n height: 50px;\r\n text-align: center;\r\n line-height: 50px;\r\n font-size: 18px;\r\n }\r\n > div:last-child {\r\n opacity: 0;\r\n // transition: all 0.3s linear;\r\n padding: 10px;\r\n border-radius: 6px;\r\n position: absolute;\r\n min-height: 50px;\r\n display: flex;\r\n flex-direction: column;\r\n // align-items: center;\r\n justify-content: space-around;\r\n background-color: #ffffff;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n top: calc(50% - 10px);\r\n right: -20px;\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #ffffff;\r\n filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, 0.2));\r\n }\r\n a {\r\n color: #333;\r\n font-size: 14px;\r\n display: block;\r\n }\r\n }\r\n }\r\n .mobile {\r\n bottom: 50px;\r\n border-bottom: 1px solid #e6ebf5;\r\n &:hover {\r\n > div:last-child {\r\n left: -210px;\r\n opacity: 1;\r\n animation-name: animateMobile;\r\n animation-duration: 0.5s;\r\n }\r\n }\r\n > div:last-child {\r\n left: -120vw;\r\n width: 190px;\r\n bottom: 0px;\r\n a {\r\n width: fit-content;\r\n position: relative;\r\n margin-top: 5px;\r\n text-indent: 5px;\r\n &:hover {\r\n color: #ff4949;\r\n &::before {\r\n width: 100%;\r\n right: auto;\r\n left: 0px;\r\n }\r\n }\r\n &::before {\r\n content: \"\";\r\n width: 0%;\r\n height: 1px;\r\n opacity: 0.6;\r\n background: #ff4949;\r\n transition: all 0.5s linear;\r\n position: absolute;\r\n right: 0px;\r\n bottom: -2px;\r\n }\r\n }\r\n &::after {\r\n top: calc(100% - 35px);\r\n }\r\n }\r\n @keyframes animateMobile {\r\n 0% {\r\n left: -200vw;\r\n opacity: 0;\r\n }\r\n 0.1% {\r\n left: -310px;\r\n opacity: 0;\r\n }\r\n 100% {\r\n left: -210px;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n .headset {\r\n bottom: 0px;\r\n &:hover {\r\n > div:last-child {\r\n left: -110px;\r\n opacity: 1;\r\n animation-name: animateHeadset;\r\n animation-duration: 0.5s;\r\n }\r\n }\r\n > div:last-child {\r\n left: -120vw;\r\n width: 90px;\r\n }\r\n @keyframes animateHeadset {\r\n 0% {\r\n left: -120vw;\r\n opacity: 0;\r\n }\r\n 0.1% {\r\n left: -210px;\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n left: -110px;\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n @keyframes animateRotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 20% {\r\n transform: rotate(7deg);\r\n }\r\n 40% {\r\n transform: rotate(0deg);\r\n }\r\n 80% {\r\n transform: rotate(-7deg);\r\n }\r\n 100% {\r\n transform: rotate(0deg);\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=849349a0&prod&lang=scss&scoped=true&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=849349a0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=849349a0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"849349a0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"YcQuestion\"},[_c('div',{staticClass:\"chatPage\"},[_c('header',{staticStyle:{\"background\":\"url('/cloud-img/customerService/chatTop.png') center\",\"background-size\":\"cover\"}},[_c('div',[_c('h3',[_vm._v(_vm._s(_vm.title))]),_c('span',[_vm._v(\"Problem Help\")])]),_c('p',[_vm._v(\"小优为您提供24小时服务\")])]),_c('div',{staticClass:\"main\"},[_c('div',[_c('main',{ref:\"main\"},[_c('p',[_vm._v(\"今天\"+_vm._s(_vm.currData))]),_vm._l((_vm.messagelist),function(item,index){return _c('div',{key:index,class:['message', item.id]},[_c('img',{staticClass:\"avatar\",attrs:{\"src\":'/cloud-img/customerService/' + item.id + '.jpg'}}),_c('div',{staticClass:\"content\"},[_vm._l((item.msg),function(msg,index){return _c('span',{key:msg + index,class:item.msg.length > 1 ? 'href' : '',domProps:{\"innerHTML\":_vm._s((item.msg.length > 1 ? 1 + index + '. ' : ' ') + msg)},on:{\"click\":function($event){item.msg.length > 1 && _vm.regularClick(msg)}}})}),(item.based)?_c('div',{staticClass:\"based\",on:{\"click\":function($event){$event.preventDefault();return _vm.handExpand(item)}}},[_c('span',[_vm._v(\"依据\")]),_c('span',{class:{ 'is-active': item.isActive }},[_vm._v(_vm._s(item.based)),_c('i',{staticClass:\"el-icon-d-arrow-right\"})])]):_vm._e()],2)])})],2),_c('footer',[_c('el-input',{attrs:{\"type\":\"textarea\",\"maxlength\":\"500\",\"autosize\":{ minRows: 6, maxRows: 6 },\"autofocus\":\"true\",\"resize\":\"none\",\"placeholder\":\"请输入你要咨询的问题\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.carriageReturn.apply(null, arguments)}},model:{value:(_vm.textareaValue),callback:function ($$v) {_vm.textareaValue=$$v},expression:\"textareaValue\"}}),_c('el-button',{style:(!_vm.textareaValue\n ? 'background-color: #F7F7F9;color: #FF575F;border-color: transparent;'\n : ''),attrs:{\"type\":\"primary\",\"disabled\":!_vm.textareaValue},on:{\"click\":_vm.send}},[_vm._v(\"发送\")])],1)]),_c('aside',[_c('el-collapse',{attrs:{\"accordion\":\"\"},model:{value:(_vm.activeNames),callback:function ($$v) {_vm.activeNames=$$v},expression:\"activeNames\"}},_vm._l((_vm.questionsList),function(item,key,index){return _c('el-collapse-item',{key:key,attrs:{\"name\":index}},[_c('template',{slot:\"title\"},[_c('img',{attrs:{\"src\":\"/cloud-img/customerService/ellipticalWenh.png\"}}),_vm._v(_vm._s(key)+\" \")]),_vm._l((item),function(faq){return _c('div',{key:faq,domProps:{\"innerHTML\":_vm._s(faq)},on:{\"click\":function($event){return _vm.regularClick(faq)}}})})],2)}),1)],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"YcQuestion\">\r\n <div class=\"chatPage\">\r\n <header\r\n style=\"\r\n background: url('/cloud-img/customerService/chatTop.png') center\r\n no-repeat cover;\r\n background-size: cover;\r\n \"\r\n >\r\n <div>\r\n <h3>{{ title }}</h3>\r\n <span>Problem Help</span>\r\n </div>\r\n <p>小优为您提供24小时服务</p>\r\n </header>\r\n <div class=\"main\">\r\n <div>\r\n <main ref=\"main\">\r\n <p>今天{{ currData }}</p>\r\n <div\r\n v-for=\"(item, index) in messagelist\"\r\n :key=\"index\"\r\n :class=\"['message', item.id]\"\r\n >\r\n <img\r\n class=\"avatar\"\r\n :src=\"'/cloud-img/customerService/' + item.id + '.jpg'\"\r\n />\r\n <div class=\"content\">\r\n <span\r\n v-for=\"(msg, index) in item.msg\"\r\n :key=\"msg + index\"\r\n v-html=\"(item.msg.length > 1 ? 1 + index + '. ' : ' ') + msg\"\r\n :class=\"item.msg.length > 1 ? 'href' : ''\"\r\n @click=\"item.msg.length > 1 && regularClick(msg)\"\r\n ></span>\r\n <div\r\n class=\"based\"\r\n v-if=\"item.based\"\r\n @click.prevent=\"handExpand(item)\"\r\n >\r\n <span>依据</span\r\n ><span :class=\"{ 'is-active': item.isActive }\"\r\n >{{ item.based }}<i class=\"el-icon-d-arrow-right\"></i\r\n ></span>\r\n </div>\r\n </div>\r\n </div>\r\n </main>\r\n <footer>\r\n <el-input\r\n type=\"textarea\"\r\n maxlength=\"500\"\r\n :autosize=\"{ minRows: 6, maxRows: 6 }\"\r\n autofocus=\"true\"\r\n resize=\"none\"\r\n placeholder=\"请输入你要咨询的问题\"\r\n v-model=\"textareaValue\"\r\n @keyup.enter.native=\"carriageReturn\"\r\n >\r\n </el-input>\r\n <el-button\r\n type=\"primary\"\r\n :disabled=\"!textareaValue\"\r\n :style=\"\r\n !textareaValue\r\n ? 'background-color: #F7F7F9;color: #FF575F;border-color: transparent;'\r\n : ''\r\n \"\r\n @click=\"send\"\r\n >发送</el-button\r\n >\r\n </footer>\r\n </div>\r\n <aside>\r\n <el-collapse v-model=\"activeNames\" accordion>\r\n <el-collapse-item\r\n v-for=\"(item, key, index) in questionsList\"\r\n :key=\"key\"\r\n :name=\"index\"\r\n >\r\n <template slot=\"title\">\r\n <img src=\"/cloud-img/customerService/ellipticalWenh.png\" />{{\r\n key\r\n }}\r\n </template>\r\n <div\r\n v-for=\"faq in item\"\r\n :key=\"faq\"\r\n v-html=\"faq\"\r\n @click=\"regularClick(faq)\"\r\n ></div>\r\n </el-collapse-item>\r\n </el-collapse>\r\n </aside>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport chatMixin from \"comp/YcCustomerService/chatMixin\"\r\nexport default {\r\n name: \"YcQuestion\",\r\n mixins: [chatMixin],\r\n data() {\r\n return {\r\n activeNames: [1],\r\n }\r\n },\r\n computed: {\r\n currData() {\r\n const currData = new Date()\r\n return `${currData.getHours()}:${currData.getMinutes()}`\r\n },\r\n questionsList() {\r\n return this.questions.reduce((prev, curr) => {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (prev.hasOwnProperty(curr.type)) {\r\n prev[curr.type].push(curr.faq)\r\n } else {\r\n prev[curr.type] = [curr.faq]\r\n }\r\n return prev\r\n }, {})\r\n },\r\n },\r\n}\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.YcQuestion {\r\n // min-width: auto;\r\n // overflow: hidden;\r\n // height: 100vh;\r\n ::v-deep .chatPage {\r\n background-color: #ffffff;\r\n\r\n > header {\r\n height: 8vw;\r\n display: flex;\r\n justify-content: flex-start;\r\n align-items: center;\r\n gap: 5vw;\r\n padding-left: 8vw;\r\n // background: url(\"/cloud-img/customerService/chatTop.png\");\r\n background-position: center center;\r\n background-repeat: no-repeat;\r\n background-size: cover;\r\n\r\n > div {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n\r\n // flex-direction: row-reverse;\r\n h3 {\r\n height: 1vw;\r\n margin-top: 0px;\r\n font-size: 2.125rem;\r\n font-weight: bold;\r\n color: #191a2c;\r\n font-family: Source Han Sans CN-Bold, Source Han Sans CN;\r\n }\r\n\r\n span {\r\n font-size: 1rem;\r\n font-family: LXGW New Clear Gothic-Regular, LXGW New Clear Gothic;\r\n font-weight: 400;\r\n color: #666;\r\n }\r\n }\r\n\r\n p {\r\n font-size: 1rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n font-weight: 400;\r\n color: #2e2f42;\r\n }\r\n }\r\n\r\n .main {\r\n display: flex;\r\n\r\n > div {\r\n width: 74vw;\r\n position: relative;\r\n\r\n > main {\r\n height: 62vh;\r\n overflow-y: auto;\r\n padding-bottom: 2vw;\r\n background-color: #f7f7f9;\r\n\r\n // 滚动条宽度\r\n &::-webkit-scrollbar {\r\n width: 6px;\r\n }\r\n\r\n // 滚动条轨道\r\n &::-webkit-scrollbar-track {\r\n background: rgb(239, 239, 239);\r\n border-radius: 2px;\r\n }\r\n\r\n // 小滑块\r\n &::-webkit-scrollbar-thumb {\r\n background: #ff8879;\r\n border-radius: 10px;\r\n }\r\n\r\n &::-webkit-scrollbar-thumb:hover {\r\n background: #ff755d;\r\n }\r\n\r\n > p {\r\n text-align: center;\r\n font-size: 0.875rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n font-weight: 400;\r\n color: #909399;\r\n }\r\n\r\n .message {\r\n display: flex;\r\n gap: 15px;\r\n margin: 1.5vw 1.5vw 0px 1.5vw;\r\n opacity: 0;\r\n\r\n .avatar {\r\n width: 2.5vw;\r\n height: 2.5vw;\r\n min-width: 35px;\r\n min-height: 35px;\r\n border-radius: 50%;\r\n transition: all 0.3s linear;\r\n &:focus,\r\n &:hover {\r\n transform: scale(1.2, 1.2) rotate(15deg);\r\n }\r\n }\r\n\r\n .content {\r\n width: fit-content;\r\n max-width: 50vw;\r\n font-weight: 400;\r\n font-size: 1rem;\r\n color: #4c4c4d;\r\n padding: 10px;\r\n border-radius: 10px;\r\n position: relative;\r\n background-color: #ffffff;\r\n\r\n .href {\r\n cursor: pointer;\r\n display: block;\r\n color: #ff575f;\r\n margin-bottom: 1.5rem;\r\n\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n > .based {\r\n cursor: pointer;\r\n font-size: 1rem;\r\n font-weight: 400;\r\n color: #909399;\r\n display: flex;\r\n align-items: flex-start;\r\n justify-content: flex-start;\r\n border-top: 1px solid #ebebed;\r\n padding-top: 0.625rem;\r\n margin-top: 0.625rem;\r\n gap: 0.625rem;\r\n\r\n & > span:first-child {\r\n white-space: nowrap;\r\n color: #4c4c4d;\r\n border-radius: 18px;\r\n background-color: #eeeef0;\r\n padding: 0.1875rem 0.625rem;\r\n margin-top: -0.1875rem;\r\n }\r\n\r\n & > span:last-child {\r\n width: 100%;\r\n position: relative;\r\n display: inline-block;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n padding-right: 12px;\r\n\r\n .el-icon-d-arrow-right {\r\n position: absolute;\r\n right: 0px;\r\n bottom: 0px;\r\n transform: rotate(90deg);\r\n transition: all 0.35s linear;\r\n }\r\n &.is-active {\r\n overflow: visible;\r\n white-space: normal;\r\n .el-icon-d-arrow-right {\r\n transform: rotate(270deg);\r\n }\r\n }\r\n\r\n &:hover {\r\n color: #ff575f;\r\n }\r\n }\r\n }\r\n }\r\n\r\n &.admin {\r\n animation: animation01 0.3s linear 1.5s forwards;\r\n\r\n .content {\r\n margin-top: 20px;\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 2px;\r\n left: -10px;\r\n transform: rotate(-45deg);\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #fff;\r\n }\r\n\r\n &::after {\r\n content: \"小优客服【38号为您服务】\";\r\n width: 200px;\r\n font-size: 0.875rem;\r\n font-family: Source Han Sans CN-Medium, Source Han Sans CN;\r\n font-weight: 500;\r\n color: #8b8c8f;\r\n position: absolute;\r\n left: 0px;\r\n top: -20px;\r\n }\r\n }\r\n }\r\n\r\n &.personal {\r\n animation: animation01 0.3s linear 0.3s forwards;\r\n flex-direction: row-reverse;\r\n\r\n .content::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 2px;\r\n right: -10px;\r\n transform: rotate(-45deg);\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent #ffffff transparent;\r\n }\r\n }\r\n\r\n @keyframes animation01 {\r\n 0% {\r\n transform: translateY(20px);\r\n opacity: 0;\r\n }\r\n\r\n 100% {\r\n transform: translateY(0px);\r\n opacity: 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n footer {\r\n height: 30vh;\r\n border: 1px solid #e7e7ea;\r\n\r\n > .el-textarea {\r\n border-color: transparent;\r\n\r\n textarea {\r\n overflow-y: hidden;\r\n // padding-right: 65px;\r\n font-weight: 400;\r\n color: #19191a;\r\n font-size: 1rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n }\r\n\r\n textarea,\r\n textarea:focus {\r\n border-color: transparent;\r\n }\r\n }\r\n\r\n > .el-button {\r\n float: right;\r\n // position: absolute;\r\n // bottom: 40px;\r\n // right: 40px;\r\n z-index: 1;\r\n font-size: 0.875rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n font-weight: 400;\r\n border-radius: 4px;\r\n margin-right: 2vw;\r\n width: 5vw;\r\n min-width: 92px;\r\n }\r\n }\r\n }\r\n\r\n aside {\r\n width: 26vw;\r\n height: calc(100vh - 8vw);\r\n padding: 1vw;\r\n overflow-y: auto;\r\n background-color: #ffffff;\r\n\r\n .el-collapse-item__header {\r\n color: #373a3c;\r\n font-size: 1.5rem;\r\n font-weight: 500;\r\n font-family: Source Han Sans CN-Medium, Source Han Sans CN;\r\n padding: 2rem;\r\n background-color: #f00;\r\n background: linear-gradient(#ffdad4, #ffa9a3);\r\n\r\n &.is-active {\r\n color: #ffffff;\r\n background: linear-gradient(#ff897a, #ff645a);\r\n\r\n i {\r\n color: #ffffff;\r\n }\r\n }\r\n\r\n img {\r\n width: 2.25rem;\r\n height: 2.25rem;\r\n float: left;\r\n margin-left: -0.5rem;\r\n margin-right: 0.5rem;\r\n }\r\n\r\n i {\r\n font-size: 2rem;\r\n color: #ff575f;\r\n font-weight: 900;\r\n }\r\n }\r\n\r\n .el-collapse-item__content {\r\n font-size: 1rem;\r\n font-family: Source Han Sans CN-Regular, Source Han Sans CN;\r\n font-weight: 400;\r\n padding: 20px 20px 20px 40px;\r\n color: #000000;\r\n background-color: #f7f7f9;\r\n\r\n > div {\r\n position: relative;\r\n margin-top: 1rem;\r\n cursor: pointer;\r\n transition: all 0.3s linear;\r\n\r\n &:first-child {\r\n margin-top: 0px;\r\n }\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n top: 5px;\r\n left: -15px;\r\n // transform: rotate(-45deg);\r\n // float: left;\r\n border-width: 10px;\r\n border-style: solid;\r\n border-color: transparent transparent transparent #ffa9a3;\r\n }\r\n\r\n &:hover {\r\n color: #ff575f;\r\n transform: translate(0.5rem);\r\n\r\n &::before {\r\n border-color: transparent transparent transparent #ff575f;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=b15e6fbc&prod&lang=scss&scoped=true&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b15e6fbc&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=b15e6fbc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b15e6fbc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('el-form',{ref:\"loginForm\",staticClass:\"login-form\",attrs:{\"model\":_vm.loginForm,\"rules\":_vm.loginRules}},[(_vm.loginForm.username == undefined)?_c('div',{staticClass:\"ca-bg-box\"},[_c('div',{staticClass:\"ca-bg-img\"}),_c('div',{staticClass:\"ca-bg-text\"},[_vm._v(\"请插入UKEY证书\")]),_c('img',{staticClass:\"ca-refresh\",attrs:{\"src\":require('comp/YcCA/images/refresh.png'),\"alt\":\"\"},on:{\"click\":_vm.caRead}})]):_c('div',{staticClass:\"ca-bg-info\"},[_c('div',{staticClass:\"ca-bg-text\"},[_vm._v(\" CA名称:\"),_c('span',{staticClass:\"caName\"},[_vm._v(_vm._s(_vm.loginForm.username))])]),_c('img',{staticClass:\"ca-refresh\",attrs:{\"src\":require('comp/YcCA/images/refresh.png'),\"alt\":\"\"},on:{\"click\":_vm.caRead}})]),_c('el-form-item',{attrs:{\"prop\":\"password\"}},[_c('el-input',{attrs:{\"type\":\"password\",\"auto-complete\":\"off\",\"placeholder\":\"密码\",\"show-password\":\"\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.handleLogin.apply(null, arguments)}},model:{value:(_vm.loginForm.password),callback:function ($$v) {_vm.$set(_vm.loginForm, \"password\", $$v)},expression:\"loginForm.password\"}},[_c('img',{staticClass:\"el-input__icon input-icon\",attrs:{\"slot\":\"prefix\",\"src\":require('./images/password.svg')},slot:\"prefix\"})])],1),_c('el-form-item',[_c('el-button',{staticClass:\"login-btn\",staticStyle:{\"width\":\"100%\"},attrs:{\"loading\":_vm.loading,\"size\":\"medium\",\"type\":\"primary\"},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.handleLogin.apply(null, arguments)}}},[(!_vm.loading)?_c('span',[_vm._v(\"登 录\")]):_c('span',[_vm._v(\"登 录 中...\")])])],1),_vm._t(\"default\")],2),_c('el-dialog',{attrs:{\"title\":\"提示\",\"visible\":_vm.dialogVisible.showInfo,\"width\":\"30%\",\"center\":\"\"},on:{\"update:visible\":function($event){return _vm.$set(_vm.dialogVisible, \"showInfo\", $event)}}},[_c('span',{staticStyle:{\"color\":\"red\"}},[_vm._v(\"4444\"+_vm._s(_vm.caInfo.error_text))]),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.dialogVisible.showInfo = false}}},[_vm._v(\"取 消\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){_vm.dialogVisible.showInfo = false}}},[_vm._v(\"确 定\")])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=template&id=f0d3063c&scoped=true&\"","/* eslint-disable no-unused-vars */\r\n/*******************************************************\r\n *\r\n * 函数名称:Base64encode()\r\n * 功 能:对数据进行Base64加密\r\n * 说\t明:函数中将数据使用_utf8_encode()进行编码转换后再加密,保证数据完整\r\n *\r\n **********************************************************/\r\n\r\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n\r\nexport function _Base64encode (input) {\r\n\r\n var output = \"\";\r\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\r\n var i = 0;\r\n\r\n input = _utf8_encode(input);\r\n\r\n while (i < input.length) {\r\n\r\n chr1 = input.charCodeAt(i++);\r\n chr2 = input.charCodeAt(i++);\r\n chr3 = input.charCodeAt(i++);\r\n\r\n enc1 = chr1 >> 2;\r\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n enc4 = chr3 & 63;\r\n\r\n if (isNaN(chr2)) {\r\n enc3 = enc4 = 64;\r\n } else if (isNaN(chr3)) {\r\n enc4 = 64;\r\n }\r\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\r\n }\r\n return output;\r\n}\r\n\r\n/*******************************************************\r\n *\r\n * 函数名称:Base64decode()\r\n * 功 能:对数据进行Base64解密\r\n * 说\t明:函数中将数据使用_utf8_decode()将解密后的数据编码,保证数据完整\r\n *\r\n **********************************************************/\r\nfunction _Base64decode (input) {\r\n var output = \"\";\r\n var chr1, chr2, chr3;\r\n var enc1, enc2, enc3, enc4;\r\n var i = 0;\r\n\r\n //input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n // eslint-disable-next-line no-useless-escape\r\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n while (i < input.length) {\r\n\r\n enc1 = _keyStr.indexOf(input.charAt(i++));\r\n enc2 = _keyStr.indexOf(input.charAt(i++));\r\n enc3 = _keyStr.indexOf(input.charAt(i++));\r\n enc4 = _keyStr.indexOf(input.charAt(i++));\r\n\r\n chr1 = (enc1 << 2) | (enc2 >> 4);\r\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n chr3 = ((enc3 & 3) << 6) | enc4;\r\n\r\n output = output + String.fromCharCode(chr1);\r\n\r\n if (enc3 != 64) {\r\n output = output + String.fromCharCode(chr2);\r\n }\r\n if (enc4 != 64) {\r\n output = output + String.fromCharCode(chr3);\r\n }\r\n\r\n }\r\n\r\n output = _utf8_decode(output);\r\n\r\n return output;\r\n}\r\n\r\n/*******************************************************\r\n *\r\n * 函数名称:_utf8_encode()\r\n * 功 能:将数据进行utf8编码\r\n * 说\t明:\r\n *\r\n **********************************************************/\r\nfunction _utf8_encode (in_string) {\r\n var string = \"\" + in_string;\r\n string = string.replace(/\\r\\n/g, \"\\n\");\r\n var utftext = \"\";\r\n\r\n for (var n = 0; n < string.length; n++) {\r\n\r\n var c = string.charCodeAt(n);\r\n\r\n if (c < 128) {\r\n utftext += String.fromCharCode(c);\r\n } else if ((c > 127) && (c < 2048)) {\r\n utftext += String.fromCharCode((c >> 6) | 192);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n } else {\r\n utftext += String.fromCharCode((c >> 12) | 224);\r\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n utftext += String.fromCharCode((c & 63) | 128);\r\n }\r\n }\r\n return utftext;\r\n}\r\n\r\n/*******************************************************\r\n *\r\n * 函数名称:_utf8_decode()\r\n * 功 能:将数据进行utf8解码\r\n * 说\t明:\r\n *\r\n **********************************************************/\r\nfunction _utf8_decode (utftext) {\r\n var string = \"\";\r\n var i = 0;\r\n var c1 = 0;\r\n var c2 = 0;\r\n var c3 = 0;\r\n var c = c1 = c2 = 0;\r\n\r\n while (i < utftext.length) {\r\n\r\n c = utftext.charCodeAt(i);\r\n\r\n if (c < 128) {\r\n string += String.fromCharCode(c);\r\n i++;\r\n } else if ((c > 191) && (c < 224)) {\r\n c2 = utftext.charCodeAt(i + 1);\r\n string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\r\n i += 2;\r\n } else {\r\n c2 = utftext.charCodeAt(i + 1);\r\n c3 = utftext.charCodeAt(i + 2);\r\n string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n i += 3;\r\n }\r\n }\r\n return string;\r\n}\r\n","/**\r\n * @name mTokenPlugin集成代码\r\n * @author Akay\r\n * @version 0.7.12\r\n * @date 2020.07.21\r\n *\r\n * @description\r\n *ver 0.7.12 2020.12.21\r\n * 1. 新增操作系统判断,根据不同的系统加载不同的配置\r\n *\r\n *ver 0.7.11 2020.07.21\r\n *\t1. 解决Https的问题\r\n *\r\n * ver 0.7.10 2020.04.04\r\n * 1. 新增获取设备序号\r\n * 2. 支持多Key\r\n *\r\n * ver 0.7.9 2020.01.08\r\n * 1. 支持SJK1137型号\r\n *\r\n * ver 0.7.8 2019.10.23\r\n * 1. 新增UKey适配\r\n *\r\n * ver 0.7.4 2019.09.18\r\n * 1. 新增证书生效,失效时间\r\n *\r\n * ver 0.7.3 2019.08.19\r\n * 1. 获取证书使用者信息\r\n *\r\n * ver 0.7.2 2019.08.08\r\n * 1. 新增远程解锁接口\r\n *\r\n * ver 0.7.1 2019.07.17\r\n * TODO: 未安装组件时,判断组件是否安装(暂定,未解决)\r\n *\r\n * ver 0.7.0 2019.07.04\r\n * 1. 更新核心文件,解决多Key插入问题\r\n * 2. Ukey目前仅支持国密证书\r\n *\r\n * ver 0.6.3 2019.06.24\r\n * 1. 修复部分Bug\r\n *\r\n * ver 0.6.1 2019.06.24\r\n * 1. 支持数字信封数据解密接口\r\n * 2. 修复加密接口错误部分。\r\n *\r\n * ver 0.6.0 2019.06.20\r\n * 1. 支持数字信封数据加密接口\r\n * 2. 暂不支持多Ukey\r\n *\r\n * ver 0.5.1 2019.06.19\r\n * 1. 修正新Ukey引入导致的Bug\r\n *\r\n * ver 0.5 2019.06.18\r\n * 1. 适配SJK1137型号Ukey\r\n *\r\n * ver 0.4 2019.03.16\r\n * 1. 新增方法 枚举Ukey获取证书“G项信息”列表\r\n * 2. 新增方法 将“证书G项信息”转化为“证书名称”方法\r\n *\r\n * ver 0.3 2018.12.10\r\n * 1. 新增修改Ukey密码的方法\r\n *\r\n * ver 0.2 2018.09.26\r\n * 1. 新增获取签名证书SN号的方法\r\n * 2. 修正部分Bug\r\n *\r\n * ver 0.1 2018.09.21\r\n * 1. 搭建初步框架\r\n * 2. 完成签名功能\r\n *\r\n */\r\nimport { mToken } from \"comp/YcCA/mTokenPlugin/mToken\";\r\nimport { _Base64encode } from \"comp/YcCA/mTokenPlugin/base64\";\r\nexport function hunca_mToken_core () {\r\n\r\n var token = new mToken(\"mTokenPlugin\");\r\n // eslint-disable-next-line no-unused-vars\r\n var certInfoList = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var singleKey = 0;\r\n var libraryNameList = null;\r\n\r\n if ((navigator.platform == \"Win32\") || (navigator.platform == \"Windows\")) {\r\n libraryNameList = Array(\"GM3000\", \"HT\", \"SJK1137\");\r\n } else {\r\n //libraryNameList = Array(\"GM3000\"); //国产操作系统支持GM3000型号\r\n libraryNameList = Array(\"HT\"); //国产操作系统支持海泰型号\r\n }\r\n /**\r\n * 错误信息\r\n */\r\n var LAST_ERRORSTRING = \"\";\r\n\r\n /**\r\n * 证书用途\r\n */\r\n var KEY_SPEC_TYPE_ENCRYPT = 0;\r\n var KEY_SPEC_TYPE_SIGN = 1;\r\n\r\n /**\r\n * 摘要算法\r\n */\r\n var SGD_SM3 = 1;\r\n // eslint-disable-next-line no-unused-vars\r\n var SGD_SHA1 = 2;\r\n\r\n /**\r\n * 加密算法\r\n */\r\n //分组加密算法标识\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_ECB = 0x00000101;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_CBC = 0x00000102;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_CFB = 0x00000104;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_OFB = 0x00000108;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM1_MAC = 0x00000110;\r\n let SGD_SM4_ECB = 0x00000401;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM4_CBC = 0x00000402;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM4_CFB = 0x00000404;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM4_OFB = 0x00000408;\r\n // eslint-disable-next-line no-unused-vars\r\n let SGD_SM4_MAC = 0x00000410;\r\n\r\n\r\n /**\r\n * 用户ID(固定)\r\n */\r\n var USER_ID = \"1234567812345678\";\r\n\r\n\r\n /**\r\n * 错误信息提示列表\r\n */\r\n var ERROR_MESSAGE_NOT_LOADLIBRARY = \"控件加载失败,错误码:\";\r\n var ERROR_MESSAGE_NOT_FIND_UKEY = \"未找到UKey!\\n1.请确认是否安装最新驱动!\\n2.计算机是否插入湖南CA UKey!\";\r\n // eslint-disable-next-line no-unused-vars\r\n var ERROR_MSSSAGE_FIND_MORE_UKEY = \"计算机插入多个UKey,请拔除多余“湖南CA UKey”!\";\r\n var ERROR_MESSAGE_NOT_INSTANCE_DEVICE = \"USBKey实例化失败,请确认此UKey是否插入计算机!\\n点击‘刷新’按钮,更新设备列表。\\n错误码:\";\r\n var ERROR_MESSAGE_USERPIN_LENGTH = \"Ukey密码必须为4~16位!\";\r\n var ERROR_MESSAGE_USERPIN_IS_ERROR = \"UKey密码错误\";\r\n var ERROR_MESSAGE_USERPIN_CHANGE_ERROR = \"UKey密码修改失败\";\r\n var ERROR_MESSAGE_KEY_NOT_EXIT = \"UKey不存在,请确认此UKey是否插入计算机,并点击'刷新'按钮,更新设备列表!\";\r\n var ERROR_MESSAGE_USERNAME_IS_NULL = \"请点击‘刷新’按钮,更新设备列表并选择相应设备!\";\r\n var ERROR_MESSAGE_KEY_EXPORT_CERT = \"证书获取失败,请加检测Key中是否存在证书!\";\r\n var ERROR_MESSAGE_SET_DIGEST_METHOD_ERROR = \"设置摘要算法失败,请重新刷新浏览器!\";\r\n var ERROR_MESSAGE_SET_USERID_ERROR = \"设置用户ID失败,请重新刷新浏览器\";\r\n var ERROR_MESSAGE_SIGN_ORIGINALDATA_IS_NULL = \"签名失败,待签名原文不能为空\";\r\n var ERROR_MESSAGE_SIGN_ERROR = \"签名失败,返回错误码:\";\r\n var ERROR_MESSAGE_USERNAMEGN_IS_NULL = \"请点击‘刷新’按钮,更新设备列表并选择相应设备!\";\r\n var ERROR_MESSAGE_USERNAMEGN_TO_USERNAME_ERROR = \"证书G项信息转化证书名称失败,请点击“刷新”按钮!\";\r\n var ERROR_MESSAGE_KEY_LIBRAY = \"加载国密库失败!\";\r\n var ERROR_MESSAGE_ENCRYPT_DATA_IS_NULL = \"加密失败:待加密原文不能为空!\";\r\n var ERROR_MESSAGE_DECRYPT_DATA_IS_NULL = \"解密失败:待解密密文不能为空!\";\r\n var ERROR_MESSAGE_DECRYPT_DATA_IS_ERROR = \"解密失败:请确认密文是否完整!\\n解密所采用的Ukey是否为加密时的Ukey!\";\r\n var ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_FAIL = \"申请解锁请求失败!\";\r\n var ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_NOT_SUPPORT = \"此型号Ukey不支持解锁!\";\r\n var ERROR_MESSAGE_REMOTE_UNLOCK_FAIL = \"Ukey解锁失败!\";\r\n\r\n /**\r\n * 私有变量\r\n */\r\n var tokenInfoList = null;\r\n\r\n /**\r\n * 私有变量\r\n */\r\n var signResultSignData = null;\r\n var signResultCert = null;\r\n\r\n /**\r\n * 证书信息\r\n */\r\n var certSn = null; //证书Sn\r\n var cert_subject_GN = null; //证书Gn\r\n var cert_subject = null; //证书使用者\r\n var cert_validTime = null; //证书失效时间\r\n var cert_notbeforetime = null; //证书生效时间\r\n\r\n /**\r\n * 返回错误信息\r\n */\r\n this.Hunca_GetLastError = function () {\r\n return LAST_ERRORSTRING;\r\n }\r\n\r\n /**\r\n * 获取证书列表\r\n */\r\n this.Hunca_GetUserList = function () {\r\n var deviceArray = null;\r\n var containerName = null;\r\n var userName = null;\r\n var tmpInfo = null;\r\n\r\n signResultCert = null;\r\n signResultSignData = null;\r\n tokenInfoList = new Array(); //清空信息\r\n\r\n for (var index = 0; index < libraryNameList.length; index++) {\r\n var libraryName = libraryNameList[index];\r\n if (!SOF_LoadLibrary(libraryName)) {\r\n continue;\r\n }\r\n\r\n deviceArray = SOF_EnumDevice();\r\n if (null == deviceArray) {\r\n continue;\r\n }\r\n\r\n for (var i = 0; i < deviceArray.length; i++) {\r\n var tokenInfo = new Object();\r\n //实例化设备失败\r\n if (!SOF_GetDeviceInstance(deviceArray[i])) {\r\n break;\r\n }\r\n\r\n //获取设备信息\r\n tmpInfo = SOF_GetUserList();\r\n if (null != tmpInfo || tmpInfo.length != 0) {\r\n containerName = tmpInfo[0][1];\r\n userName = tmpInfo[0][0];\r\n\r\n tokenInfo.libraryName = libraryName; //Ukey型号\r\n tokenInfo.serial = deviceArray[i]; //设备序列号\r\n tokenInfo.userName = userName; //证书名称\r\n tokenInfo.containerName = containerName; //应用名称\r\n\r\n tokenInfoList.push(tokenInfo);\r\n } else {\r\n continue;\r\n }\r\n SOF_LogOut();\r\n }\r\n }\r\n\r\n //返回证书信息\r\n var userNameList = new Array();\r\n for (let i = 0; i < tokenInfoList.length; i++) {\r\n userNameList[i] = tokenInfoList[i].userName;\r\n }\r\n\r\n if (userNameList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return \"\";\r\n }\r\n\r\n return userNameList;\r\n }\r\n\r\n /**\r\n * 获取证书G项信息列表\r\n */\r\n this.Hunca_GetUserListGN = function Hunca_GetUserListGN () {\r\n var deviceArray = null;\r\n var containerName = null;\r\n var userName = null;\r\n var tmpInfo = null;\r\n var certB64 = null;\r\n var deviceSerial = \"\";\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultCert = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultSignData = null;\r\n tokenInfoList = new Array(); //清空信息\r\n var LAST_ERRORSTRING = \"\";\r\n\r\n for (var index = 0; index < libraryNameList.length; index++) {\r\n var libraryName = libraryNameList[index];\r\n //加载控件\r\n if (!SOF_LoadLibrary(libraryName)) {\r\n continue;\r\n }\r\n\r\n deviceArray = SOF_EnumDevice();\r\n if (null == deviceArray) {\r\n continue;\r\n }\r\n\r\n for (var i = 0; i < deviceArray.length; i++) {\r\n cert_subject_GN = null;\r\n certSn = null;\r\n deviceSerial = deviceArray[i];\r\n\r\n var tokenInfo = new Object();\r\n\r\n //实例化设备失败\r\n if (!SOF_GetDeviceInstance(deviceSerial)) {\r\n break;\r\n }\r\n\r\n //获取设备信息\r\n tmpInfo = SOF_GetUserList();\r\n if (null != tmpInfo || tmpInfo.length != 0) {\r\n containerName = tmpInfo[0][1];\r\n userName = tmpInfo[0][0];\r\n\r\n tokenInfo.libraryName = libraryName;\r\n tokenInfo.serial = deviceArray[i]; //设备序列号\r\n tokenInfo.userName = userName; //证书名称\r\n tokenInfo.containerName = containerName;\r\n } else {\r\n continue;\r\n }\r\n\r\n //获取证书G项信息\r\n certB64 = SOF_ExportUserCert(tokenInfo.containerName, KEY_SPEC_TYPE_SIGN);\r\n if (SOF_GetCertInfo(certB64)) {\r\n tokenInfo.subjectGN = cert_subject_GN; //设备证书G项目;\r\n } else {\r\n continue;\r\n }\r\n\r\n tokenInfoList.push(tokenInfo);\r\n SOF_LogOut();\r\n }\r\n }\r\n\r\n //返回证书G项信息\r\n var userNameGNList = new Array();\r\n for (let i = 0; i < tokenInfoList.length; i++) {\r\n userNameGNList[i] = tokenInfoList[i].subjectGN;\r\n }\r\n\r\n if (userNameGNList.length == 0) {\r\n // eslint-disable-next-line no-unused-vars\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return \"\";\r\n }\r\n\r\n /*****\r\n if (userNameGNList.length > 1){\r\n LAST_ERRORSTRING = ERROR_MSSSAGE_FIND_MORE_UKEY;\r\n return \"\";\r\n }\r\n ****/\r\n return userNameGNList;\r\n }\r\n\r\n /**\r\n * 将证书G项信息转化为证书名称\r\n */\r\n this.Hunca_userNameGNToUserName = function (userNameGN) {\r\n var userName = null;\r\n LAST_ERRORSTRING = \"\";\r\n if (null == userNameGN || userNameGN.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAMEGN_IS_NULL;\r\n }\r\n\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n if (userNameGN == tokenInfoList[i].subjectGN) {\r\n userName = tokenInfoList[i].userName;\r\n break;\r\n }\r\n }\r\n\r\n if (null == userName || userName.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAMEGN_TO_USERNAME_ERROR;\r\n return null;\r\n }\r\n return userName;\r\n }\r\n\r\n this.Hunca_GenRemoteUnblockRequest = function (userName) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var request = \"\";\r\n\r\n LAST_ERRORSTRING = \"\";\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //判断设备是否支持远程解锁\r\n if (tokenInfo.libraryName != \"GM3000\") {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_NOT_SUPPORT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return false;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //枚举容器,并选择第一个容器\r\n if (SOF_GetUserList() == null) {\r\n return false;\r\n }\r\n\r\n //远程解锁\r\n request = SOF_GenRemoteUnblockRequest()\r\n\r\n return request;\r\n }\r\n\r\n this.HUnca_GetDeviceNumber = function (userName) {\r\n var m_devNumber = null;\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n let tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n // eslint-disable-next-line no-undef\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n // eslint-disable-next-line no-undef\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n // eslint-disable-next-line no-undef\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return false;\r\n }\r\n\r\n //实例化设备\r\n // eslint-disable-next-line no-undef\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n m_devNumber = SOF_GetDeviceNumber();\r\n\r\n return m_devNumber + \"\";\r\n }\r\n\r\n this.Hunca_RemoteUnlockPIN = function (userName, response) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var result = false;\r\n\r\n LAST_ERRORSTRING = \"\";\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //判断设备是否支持远程解锁\r\n if (tokenInfo.libraryName != \"GM3000\") {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_NOT_SUPPORT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return false;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //枚举容器,并选择第一个容器\r\n if (SOF_GetUserList() == null) {\r\n return false;\r\n }\r\n\r\n //远程解锁\r\n result = SOF_RemoteUnlockPIN(response)\r\n return result;\r\n }\r\n\r\n /**\r\n * 修改Ukey密码\r\n */\r\n this.Hunca_ChangeUserPin = function (userName, oldUserPin, newUserPin) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n LAST_ERRORSTRING = \"\";\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //修改密码\r\n if (!SOF_ChangeUserPin(oldUserPin, newUserPin)) {\r\n return false;\r\n }\r\n\r\n SOF_LogOut();\r\n return true;\r\n }\r\n\r\n /**\r\n * 对数据进行签名,并返回签名是否成功\r\n * @param {string} originalData 待签名原文\r\n * @param {string} userName Ukey用户名称\r\n * @param {string} userPin Ukey密码\r\n */\r\n this.Hunca_PKCS1 = function (originalData, userName, userPin) {\r\n // eslint-disable-next-line no-unused-vars\r\n var libraryName = null;\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var certBase64 = null; //签名证书值\r\n\r\n var LAST_ERRORSTRING = \"\";\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultInfo = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var certInfo = new Object();\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n //加载库文件\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n // eslint-disable-next-line no-unused-vars\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //登陆应用\r\n if (!SOF_Login(userPin)) {\r\n return false;\r\n }\r\n\r\n //获取签名证书Base64\r\n certBase64 = SOF_ExportUserCert(tokenInfo.containerName, KEY_SPEC_TYPE_SIGN);\r\n if (null == certBase64) {\r\n return false;\r\n }\r\n\r\n //设置摘要算法\r\n if (!SOF_SetDigestMethod(SGD_SM3)) {\r\n return false;\r\n }\r\n\r\n if (!SOF_SetUserID()) {\r\n return false;\r\n }\r\n\r\n //进行签名\r\n if (!SOF_SignData(tokenInfo.containerName, SGD_SM3, originalData, certBase64)) {\r\n return false;\r\n }\r\n\r\n //获取证书信息\r\n if (!SOF_GetCertInfo(certBase64)) {\r\n return false;\r\n }\r\n\r\n SOF_LogOut();\r\n return true;\r\n }\r\n\r\n /**\r\n * 获取签名结果\r\n */\r\n this.Hunca_GetSignData = function () {\r\n return signResultSignData;\r\n }\r\n\r\n /**\r\n * 获取签名证书\r\n */\r\n this.Hunca_GetSignCert = function () {\r\n return signResultCert;\r\n }\r\n\r\n this.Hunca_GetSignCertSn = function () {\r\n return certSn\r\n }\r\n\r\n this.Hunca_GetSignCertSubject = function () {\r\n return cert_subject;\r\n }\r\n\r\n this.Hunca_GetValidTime = function () {\r\n return cert_validTime;\r\n }\r\n\r\n this.HUnca_GetNotBeforeTime = function () {\r\n return cert_notbeforetime;\r\n }\r\n /**\r\n * 处理设备中签名证书信息\r\n * @param {*} userName\r\n */\r\n this.Hunca_DealCertInfo = function (userName) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var certBase64 = null; //签名证书值\r\n\r\n LAST_ERRORSTRING = \"\";\r\n // eslint-disable-next-line no-undef\r\n signResultInfo = null;\r\n // eslint-disable-next-line no-undef\r\n certInfo = new Object();\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return false;\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return false;\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return false;\r\n }\r\n\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return false;\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return false;\r\n }\r\n\r\n //导出证书\r\n certBase64 = SOF_ExportUserCert(tokenInfo.containerName, KEY_SPEC_TYPE_SIGN);\r\n if (null == certBase64 || certBase64.length == 0) {\r\n return false;\r\n }\r\n\r\n SOF_GetCertInfo(certBase64);\r\n SOF_LogOut();\r\n return true;\r\n }\r\n\r\n /**\r\n * 对数据进行数字信封加密\r\n * @param {string} inData 待加密原文\r\n * @param {string} userName Ukey用户名称\r\n * @param {string} EncryptMethod 对称加密方式\r\n * @param {string} EncryptIV 加密IV值\r\n * @returns {string} \"\",加密失败;非空,加密成功\r\n */\r\n this.Hunca_EncryptDataPKCS7 = function (inData, userName, EncryptMethod, EncryptIV) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var certBase64 = null; //签名证书值\r\n var m_EncryptMethod = \"\",\r\n m_EncryptIV = \"\";\r\n\r\n var LAST_ERRORSTRING = \"\";\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultInfo = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var certInfo = new Object();\r\n\r\n\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return \"\";\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return \"\";\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return \"\";\r\n }\r\n\r\n //加载链接库\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n // eslint-disable-next-line no-unused-vars\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return \"\";\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return \"\";\r\n }\r\n\r\n //导出加密证书\r\n certBase64 = SOF_ExportUserCert(tokenInfo.containerName, KEY_SPEC_TYPE_ENCRYPT);\r\n if (null == certBase64 || certBase64.length == 0) {\r\n return \"\";\r\n }\r\n\r\n //设置加密方式\r\n\r\n m_EncryptMethod = EncryptMethod + \"\";\r\n m_EncryptIV = EncryptIV + \"\";\r\n\r\n if (m_EncryptMethod == null || m_EncryptMethod.length == 0) {\r\n m_EncryptMethod = SGD_SM4_ECB;\r\n m_EncryptIV = \"\";\r\n }\r\n\r\n if (!SOF_SetEncryptMethodAndIV(m_EncryptMethod, m_EncryptIV)) {\r\n return \"\";\r\n }\r\n\r\n //对数据进行加密\r\n // eslint-disable-next-line no-undef\r\n encryptData = SOF_EncryptDataPKCS7(certBase64, inData);\r\n\r\n SOF_LogOut();\r\n\r\n // eslint-disable-next-line no-undef\r\n return encryptData;\r\n }\r\n\r\n /**\r\n * 对密文进行数字信封解密操作\r\n * @param {string} encryptData 待解密密文\r\n * @param {string} userName Ukey用户名称\r\n * @param {string} userPin Ukey用户PIN码\r\n * @param {string} EncryptMethod 对称加密方式\r\n * @param {string} EncryptIV 加密IV值\r\n * @returns {string} \"\",加密失败;非空,加密成功\r\n */\r\n this.Hunca_DecryptDataPKCS7 = function (encryptData, userName, userPin, EncryptMethod, EncryptIV) {\r\n var tokenInfo = null; //Ukey设备信息\r\n var tempTokenInfo = null; //临时设备信息,循环遍历用\r\n var m_EncryptMethod = \"\",\r\n m_EncryptIV = \"\";\r\n var m_EncryptData = \"\";\r\n var m_DecryptData = \"\";\r\n var resData = \"\";\r\n\r\n var LAST_ERRORSTRING = \"\";\r\n // eslint-disable-next-line no-unused-vars\r\n var signResultInfo = null;\r\n // eslint-disable-next-line no-unused-vars\r\n var certInfo = new Object();\r\n\r\n\r\n m_EncryptData = \"\" + encryptData;\r\n //设备名称为空\r\n if (null == userName || userName.length == null) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERNAME_IS_NULL;\r\n return \"\";\r\n }\r\n\r\n //查找匹配的设备序列号\r\n if (null == tokenInfoList || tokenInfoList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return \"\";\r\n }\r\n\r\n //索引设备编号\r\n for (var i = 0; i < tokenInfoList.length; i++) {\r\n tempTokenInfo = tokenInfoList[i];\r\n if (tempTokenInfo.userName == userName) {\r\n tokenInfo = tempTokenInfo;\r\n break;\r\n }\r\n }\r\n\r\n //如果所选择的设备不存在\r\n if (null == tokenInfo) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_NOT_EXIT;\r\n return \"\";\r\n }\r\n\r\n //加载链接库\r\n if (!SOF_LoadLibrary(tokenInfo.libraryName)) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_LIBRAY;\r\n return \"\";\r\n }\r\n\r\n //实例化设备\r\n if (!SOF_GetDeviceInstance(tokenInfo.serial)) {\r\n return \"\";\r\n }\r\n\r\n //登陆应用\r\n if (!SOF_Login(userPin)) {\r\n return \"\";\r\n }\r\n\r\n //设置加密方式\r\n m_EncryptMethod = EncryptMethod + \"\";\r\n m_EncryptIV = EncryptIV + \"\";\r\n if (m_EncryptMethod == null || m_EncryptMethod.length == 0) {\r\n m_EncryptMethod = SGD_SM4_ECB;\r\n m_EncryptIV = \"\";\r\n }\r\n\r\n if (!SOF_SetEncryptMethodAndIV(m_EncryptMethod, m_EncryptIV)) {\r\n return \"\";\r\n }\r\n\r\n m_DecryptData = SOF_DecryptDataPKCS7(tokenInfo.containerName, KEY_SPEC_TYPE_ENCRYPT, m_EncryptData);\r\n if (m_DecryptData.length == 0) {\r\n return \"\";\r\n }\r\n\r\n try {\r\n // eslint-disable-next-line no-undef\r\n resData = _Base64decode(m_DecryptData);\r\n } catch (e) {\r\n resData = m_DecryptData;\r\n // eslint-disable-next-line no-unused-vars\r\n LAST_ERRORSTRING = \"解密失败:Base64解码失败\";\r\n }\r\n\r\n return resData;\r\n }\r\n\r\n /**\r\n * 加载底层文件\r\n * @returns {boolean} true,加载成功;false加载失败;\r\n */\r\n function SOF_LoadLibrary (libraryName) {\r\n var resultCode = 0;\r\n if (libraryName == \"GM3000\") {\r\n resultCode = token.SOF_LoadLibrary(token.GM3000);\r\n }\r\n else if (libraryName == \"HT\") {\r\n resultCode = token.SOF_LoadLibrary(token.HT);\r\n }\r\n else if (libraryName == \"SJK1137\") {\r\n resultCode = token.SOF_LoadLibrary(token.SJK1137);\r\n }\r\n\r\n if (resultCode != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_LOADLIBRARY + token.SOF_GetLastError();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 枚举设备\r\n */\r\n function SOF_EnumDevice () {\r\n var deviceNameList = \"\";\r\n\r\n deviceNameList = token.SOF_EnumDevice();\r\n\r\n //检测是否插入USBKey\r\n if (null == deviceNameList || deviceNameList.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_FIND_UKEY;\r\n return null;\r\n }\r\n\r\n return deviceNameList;\r\n }\r\n\r\n /**\r\n * 实例化设备,为后续一系列操作准备\r\n * @param {string} deviceName 设备名称\r\n */\r\n function SOF_GetDeviceInstance (deviceName) {\r\n var resultCode = 0;\r\n\r\n resultCode = token.SOF_GetDeviceInstance(deviceName, \"\");\r\n //设备未正常实例化\r\n if (resultCode != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_NOT_INSTANCE_DEVICE + token.SOF_GetLastError();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 枚举应用中的容器\r\n */\r\n function SOF_GetUserList () {\r\n var userList = \"\";\r\n\r\n userList = token.SOF_GetUserList();\r\n if (null == userList || userList.length == 0) {\r\n LAST_ERRORSTRING = \"USBkey中未找到证书!\";\r\n return null;\r\n }\r\n\r\n return userList;\r\n }\r\n\r\n /**\r\n * 登陆应用,验证密码是否正确\r\n * @param {string} userPin\r\n */\r\n function SOF_Login (userPin) {\r\n var resultCode = 0;\r\n var m_userPin = \"\" + userPin;\r\n var RetryCount = 0;\r\n\r\n if (null == m_userPin || m_userPin.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n if (m_userPin.length < 4 || m_userPin.length > 16) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n resultCode = token.SOF_Login(m_userPin);\r\n if (resultCode != 0) {\r\n RetryCount = SOF_GetPinRetryCount();\r\n if (RetryCount > 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_IS_ERROR + \",还剩 \" + RetryCount + \" 次重试机会!\";\r\n } else {\r\n LAST_ERRORSTRING = \"UKey已经锁死,请联系管理员进行解锁!\"\r\n }\r\n return false;\r\n }\r\n return true\r\n }\r\n\r\n /**\r\n * 修改UKey密码\r\n * @param {*} oldUserPin\r\n * @param {*} newUserPin\r\n */\r\n function SOF_ChangeUserPin (oldUserPin, newUserPin) {\r\n var resultCode = 0;\r\n var m_oldUserPin = \"\" + oldUserPin;\r\n var m_newUserPin = \"\" + newUserPin;\r\n var RetryCount = 0;\r\n\r\n if (null == m_oldUserPin || m_oldUserPin.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n if (null == m_newUserPin || m_newUserPin.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n if (m_oldUserPin.length < 4 || m_oldUserPin.length > 16) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n if (m_newUserPin.length < 4 || m_newUserPin.length > 16) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_LENGTH;\r\n return false;\r\n }\r\n\r\n resultCode = token.SOF_ChangePassWd(m_oldUserPin, m_newUserPin);\r\n if (resultCode != 0) {\r\n RetryCount = SOF_GetPinRetryCount();\r\n if (RetryCount > 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_USERPIN_CHANGE_ERROR + \",还剩 \" + RetryCount + \" 次重试机会!\";\r\n } else {\r\n LAST_ERRORSTRING = \"UKey已经锁死,请联系管理员进行解锁!\"\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 返回重试次数\r\n */\r\n function SOF_GetPinRetryCount () {\r\n var retryCount = 0;\r\n retryCount = token.SOF_GetPinRetryCount();\r\n return retryCount;\r\n }\r\n\r\n function SOF_GetDeviceNumber () {\r\n var deviceNumber = null;\r\n deviceNumber = token.SOF_GetDeviceInfo(token.SGD_DEVICE_SERIAL_NUMBER);\r\n return deviceNumber;\r\n }\r\n\r\n /**\r\n * 导出证书值\r\n * @param {string} containerName 容器名称\r\n * @param {int} keySec 证书用途\r\n */\r\n function SOF_ExportUserCert (containerName, keySec) {\r\n var certBase64;\r\n certBase64 = token.SOF_ExportUserCert(containerName, keySec);\r\n if (null == certBase64 || certBase64.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_KEY_EXPORT_CERT;\r\n return null;\r\n }\r\n return certBase64;\r\n }\r\n\r\n /**\r\n * 设置加密算法\r\n * @param {*} EncryptMethod 设置加密算法\r\n * @param {*} EncryptIV 设置IV值\r\n */\r\n function SOF_SetEncryptMethodAndIV (EncryptMethod, EncryptIV) {\r\n var resCode = 1;\r\n\r\n if (EncryptMethod == undefined || EncryptMethod == null) {\r\n LAST_ERRORSTRING = \"请设置加密方式!\";\r\n return false;\r\n }\r\n\r\n resCode = token.SOF_SetEncryptMethodAndIV(EncryptMethod, _Base64encode(EncryptIV));\r\n if (resCode != 0) {\r\n LAST_ERRORSTRING = token.SOF_GetLastError();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 设置签名算法\r\n * @param {}} digestMethod\r\n */\r\n function SOF_SetDigestMethod (digestMethod) {\r\n var resultCode = 0;\r\n resultCode = token.SOF_SetDigestMethod(digestMethod);\r\n if (resultCode != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_SET_DIGEST_METHOD_ERROR;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * 设置默认USERID\r\n */\r\n function SOF_SetUserID () {\r\n var resultCode = 0;\r\n resultCode = token.SOF_SetUserID(USER_ID);\r\n if (resultCode != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_SET_USERID_ERROR;\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * 数字信封加密\r\n * @param {String} Base64EncodeCert 加密证书值\r\n * @param {String} inData 待加密原文\r\n * @returns {*} \"\",表示加密失败;非空,加密成功\r\n */\r\n function SOF_EncryptDataPKCS7 (Base64EncodeCert, inData) {\r\n var encryptData = \"\";\r\n var inDataBase64 = \"\";\r\n var m_inData = \"\";\r\n\r\n m_inData = \"\" + inData;\r\n if (m_inData.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_ENCRYPT_DATA_IS_NULL;\r\n return \"\";\r\n }\r\n\r\n inDataBase64 = _Base64encode(m_inData)\r\n encryptData = token.SOF_EncryptDataPKCS7(Base64EncodeCert, inDataBase64, inData.length);\r\n\r\n if (encryptData == null || encryptData.length == 0) {\r\n LAST_ERRORSTRING = \"加密失败,\" + token.SOF_GetLastError();\r\n return \"\";\r\n }\r\n return encryptData;\r\n }\r\n\r\n /**\r\n * 数字信封解密\r\n * @param {*} containerName 应用名称\r\n * @param {int} cerType\r\n * @param {*} encrypedData\r\n */\r\n function SOF_DecryptDataPKCS7 (containerName, cerType, encrypedData) {\r\n var m_EncrypedData = \"\",\r\n m_DecryptData = \"\";\r\n\r\n m_EncrypedData = \"\" + encrypedData;\r\n if (containerName == null || containerName.length == 0) {\r\n LAST_ERRORSTRING = \"应用名称不能为空!\";\r\n return \"\";\r\n }\r\n\r\n if (m_EncrypedData.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_DECRYPT_DATA_IS_NULL;\r\n return \"\";\r\n }\r\n\r\n try {\r\n m_DecryptData = token.SOF_DecryptDataPKCS7(containerName, cerType, m_EncrypedData);\r\n } catch (e) {\r\n m_DecryptData = \"\";\r\n }\r\n if (undefined == m_DecryptData || m_DecryptData == null || m_DecryptData == \"\") {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_DECRYPT_DATA_IS_ERROR;\r\n return \"\";\r\n }\r\n\r\n return m_DecryptData;\r\n }\r\n\r\n /**\r\n * 数据签名\r\n * @param {*} containerName\r\n * @param {*} ulKeySpec\r\n * @param {*} data\r\n * @param {*} certBase64\r\n */\r\n function SOF_SignData (containerName, ulKeySpec, data, certBase64) {\r\n var signData = null;\r\n var b64Data = null;\r\n var m_data = \"\" + data;\r\n\r\n\r\n if (null == m_data || m_data.length == 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_SIGN_ORIGINALDATA_IS_NULL;\r\n return false;\r\n }\r\n\r\n b64Data = _Base64encode(m_data);\r\n signData = token.SOF_SignData(containerName, ulKeySpec, _Base64encode(b64Data), b64Data.length)\r\n if (null == signData || signData.length == 0) {\r\n // eslint-disable-next-line no-undef\r\n LAST_ERRORSTRING = ERROR_MESSAGE_SIGN_ERROR + SOF_GetLastError();\r\n return false;\r\n }\r\n\r\n signResultCert = certBase64;\r\n signResultSignData = signData;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * 导出证书\r\n * @param {*} certBase64\r\n */\r\n function SOF_GetCertInfo (certBase64) {\r\n var str = null;\r\n var subject = null;\r\n var tmpList = null;\r\n var validTime = null;\r\n var notBeforetime = null;\r\n var key, value;\r\n\r\n if (null == certBase64 || certBase64.length == 0) {\r\n return false;\r\n }\r\n\r\n cert_subject_GN = \"\";\r\n certSn = \"\";\r\n cert_subject = \"\";\r\n\r\n str = token.SOF_GetCertInfo(certBase64, token.SGD_CERT_SERIAL);\r\n certSn = hexToDec(str);\r\n\r\n subject = token.SOF_GetCertInfo(certBase64, token.SGD_CERT_SUBJECT);\r\n cert_subject = subject;\r\n\r\n validTime = token.SOF_GetCertInfo(certBase64, token.SGD_CERT_VALID_TIME);\r\n cert_validTime = validTime;\r\n\r\n notBeforetime = token.SOF_GetCertInfo(certBase64, token.SGD_CERT_NOT_BEFORE);\r\n cert_notbeforetime = notBeforetime;\r\n\r\n tmpList = subject.split(',');\r\n for (var i = 0; i < tmpList.length; i++) {\r\n if (tmpList[i].indexOf(\"=\") == -1) {\r\n continue;\r\n }\r\n\r\n key = tmpList[i].split('=')[0];\r\n value = tmpList[i].split('=')[1];\r\n\r\n if (key == 'GN') {\r\n cert_subject_GN = value;\r\n break;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n\r\n /**\r\n * 登出UKey\r\n */\r\n function SOF_LogOut () {\r\n token.SOF_LogOut();\r\n }\r\n\r\n /**\r\n * 生成解锁请求\r\n */\r\n function SOF_GenRemoteUnblockRequest () {\r\n var request = token.SOF_GenRemoteUnblockRequest();\r\n if (request == null || request == \"\") {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_FAIL;\r\n return \"\";\r\n }\r\n\r\n return request;\r\n }\r\n\r\n function SOF_RemoteUnlockPIN (response) {\r\n var result = false;\r\n\r\n if (null == response || response.length == 0) {\r\n LAST_ERRORSTRING = \"解锁失败解:响应不能为空!\";\r\n return false;\r\n }\r\n\r\n result = token.SOF_RemoteUnblockPIN(response);\r\n if (result != 0) {\r\n LAST_ERRORSTRING = ERROR_MESSAGE_REMOTE_UNLOCK_FAIL;\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n function add (x, y, base) {\r\n var z = [];\r\n var n = Math.max(x.length, y.length);\r\n var carry = 0;\r\n var i = 0;\r\n while (i < n || carry) {\r\n var xi = i < x.length ? x[i] : 0;\r\n var yi = i < y.length ? y[i] : 0;\r\n var zi = carry + xi + yi;\r\n z.push(zi % base);\r\n carry = Math.floor(zi / base);\r\n i++;\r\n }\r\n return z;\r\n }\r\n\r\n function multiplyByNumber (num, x, base) {\r\n if (num < 0) return null;\r\n if (num == 0) return [];\r\n\r\n var result = [];\r\n var power = x;\r\n // eslint-disable-next-line no-constant-condition\r\n while (true) {\r\n if (num & 1) {\r\n result = add(result, power, base);\r\n }\r\n num = num >> 1;\r\n if (num === 0) break;\r\n power = add(power, power, base);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n function parseToDigitsArray (str, base) {\r\n var digits = str.split('');\r\n var ary = [];\r\n for (var i = digits.length - 1; i >= 0; i--) {\r\n var n = parseInt(digits[i], base);\r\n if (isNaN(n)) return null;\r\n ary.push(n);\r\n }\r\n return ary;\r\n }\r\n\r\n\r\n function convertBase (str, fromBase, toBase) {\r\n var digits = parseToDigitsArray(str, fromBase);\r\n if (digits === null) return null;\r\n\r\n var outArray = [];\r\n var power = [1];\r\n for (var i = 0; i < digits.length; i++) {\r\n // invariant: at this point, fromBase^i = power\r\n if (digits[i]) {\r\n outArray = add(outArray, multiplyByNumber(digits[i], power, toBase), toBase);\r\n }\r\n power = multiplyByNumber(fromBase, power, toBase);\r\n }\r\n\r\n var out = '';\r\n for (let i = outArray.length - 1; i >= 0; i--) {\r\n out += outArray[i].toString(toBase);\r\n }\r\n return out;\r\n }\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n function decToHex (decStr) {\r\n var hex = convertBase(decStr, 10, 16);\r\n return hex ? '0x' + hex : null;\r\n }\r\n\r\n\r\n function hexToDec (hexStr) {\r\n if (hexStr.substring(0, 2) === '0x') hexStr = hexStr.substring(2);\r\n hexStr = hexStr.toLowerCase();\r\n return convertBase(hexStr, 16, 10);\r\n }\r\n}\r\n","// 过滤时间\r\nexport function formateTime(dateStr) {\r\n let year = dateStr.slice(0, 4);\r\n let month = dateStr.slice(4, 6);\r\n let date = dateStr.slice(6, 8);\r\n let hours = dateStr.slice(8, 10);\r\n let minute = dateStr.slice(10, 12);\r\n let second = dateStr.slice(12);\r\n return `${year}-${month}-${date} ${hours}:${minute}:${second}`;\r\n}\r\n","<template>\r\n <div>\r\n <el-form\r\n ref=\"loginForm\"\r\n :model=\"loginForm\"\r\n :rules=\"loginRules\"\r\n class=\"login-form\"\r\n >\r\n <div class=\"ca-bg-box\" v-if=\"loginForm.username == undefined\">\r\n <div class=\"ca-bg-img\"></div>\r\n <div class=\"ca-bg-text\">请插入UKEY证书</div>\r\n <img\r\n :src=\"require('comp/YcCA/images/refresh.png')\"\r\n class=\"ca-refresh\"\r\n @click=\"caRead\"\r\n alt=\"\"\r\n />\r\n </div>\r\n <div class=\"ca-bg-info\" v-else>\r\n <div class=\"ca-bg-text\">\r\n CA名称:<span class=\"caName\">{{ loginForm.username }}</span>\r\n </div>\r\n <img\r\n :src=\"require('comp/YcCA/images/refresh.png')\"\r\n class=\"ca-refresh\"\r\n @click=\"caRead\"\r\n alt=\"\"\r\n />\r\n </div>\r\n <el-form-item prop=\"password\">\r\n <el-input\r\n v-model=\"loginForm.password\"\r\n type=\"password\"\r\n auto-complete=\"off\"\r\n placeholder=\"密码\"\r\n show-password\r\n @keyup.enter.native=\"handleLogin\"\r\n >\r\n <img\r\n slot=\"prefix\"\r\n class=\"el-input__icon input-icon\"\r\n :src=\"require('./images/password.svg')\"\r\n />\r\n </el-input>\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button\r\n :loading=\"loading\"\r\n size=\"medium\"\r\n type=\"primary\"\r\n class=\"login-btn\"\r\n style=\"width: 100%\"\r\n @click.native.prevent=\"handleLogin\"\r\n >\r\n <span v-if=\"!loading\">登 录</span>\r\n <span v-else>登 录 中...</span>\r\n </el-button>\r\n </el-form-item>\r\n <slot></slot>\r\n </el-form>\r\n <el-dialog\r\n title=\"提示\"\r\n :visible.sync=\"dialogVisible.showInfo\"\r\n width=\"30%\"\r\n center\r\n >\r\n <span style=\"color: red\">4444{{ caInfo.error_text }}</span>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"dialogVisible.showInfo = false\">取 消</el-button>\r\n <el-button type=\"primary\" @click=\"dialogVisible.showInfo = false\"\r\n >确 定</el-button\r\n >\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { hunca_mToken_core } from \"comp/YcCA/mTokenPlugin/hunca_mToken_core2\"\r\n// 北京ca\r\nimport \"comp/YcCA/mTokenPluginBeijin/xtxasyn\"\r\nimport { formateTime } from \"comp/YcCA/mTokenPluginBeijin/formateTime\"\r\nexport default {\r\n name: \"YcCA\",\r\n props: {\r\n region: {\r\n /** 1背景CA,0湖南CA */\r\n type: Number,\r\n default: 0,\r\n },\r\n },\r\n data() {\r\n return {\r\n form: {},\r\n caInfo: {\r\n error_text: \"\",\r\n have_error_info: false,\r\n },\r\n loginForm: {\r\n username: \"\",\r\n password: \"\",\r\n uuid: \"\",\r\n caInfo: \"\",\r\n },\r\n dialogVisible: {\r\n ca: false,\r\n showInfo: false,\r\n },\r\n loginRules: {\r\n password: [\r\n { required: true, trigger: \"blur\", message: \"请输入您的密码\" },\r\n ],\r\n },\r\n loading: false,\r\n }\r\n },\r\n computed: {\r\n isBJCA() {\r\n return this.region == 1\r\n },\r\n },\r\n watch: {\r\n region() {\r\n this.caRead()\r\n },\r\n },\r\n created() {\r\n // this.caRead()\r\n },\r\n methods: {\r\n //读取CA\r\n caRead() {\r\n if (this.isBJCA) {\r\n this.caReadBeijin()\r\n } else {\r\n window.mToken = new hunca_mToken_core()\r\n let tempName = window.mToken.Hunca_GetUserListGN()\r\n this.loginForm.username = tempName[0]\r\n }\r\n },\r\n async caReadBeijin() {\r\n let retObj = await new Promise((resolve) => {\r\n window.SOF_GetUserList(function (retObj) {\r\n resolve(retObj)\r\n })\r\n })\r\n this.loginForm.username = retObj.retVal.split(\"||\")[0]\r\n },\r\n // CA登录选择\r\n caLogin(flag) {\r\n switch (flag) {\r\n case 0:\r\n this.HNCALogin()\r\n break\r\n default:\r\n this.$message({\r\n type: \"warning\",\r\n message: \"请选择CA平台!!!\",\r\n })\r\n }\r\n },\r\n // 湖南CA平台登录\r\n HNCALogin() {\r\n window.mToken = new hunca_mToken_core()\r\n this.loginForm.username = window.mToken.Hunca_GetUserListGN()\r\n let tempuserName = window.mToken.Hunca_userNameGNToUserName(\r\n this.loginForm.username[0]\r\n ) //将证书G项信息转化为证书名称\r\n let rn = Math.random()\r\n if (\r\n !window.mToken.Hunca_PKCS1(rn, tempuserName, this.loginForm.password)\r\n ) {\r\n this.caInfo.error_text = window.mToken.Hunca_GetLastError()\r\n this.caInfo.have_error_info = true\r\n this.dialogVisible.showInfo = true\r\n return false\r\n }\r\n this.ca_cert = window.mToken.Hunca_GetSignCert()\r\n this.sign = window.mToken.Hunca_GetSignData()\r\n this.certSn = window.mToken.Hunca_GetSignCertSn() //CA唯一码\r\n this.cert_subject = window.mToken.Hunca_GetSignCertSubject() //CA信息\r\n this.cert_validTime = window.mToken.Hunca_GetValidTime() //过期时间\r\n this.cert_notBeforeTime = window.mToken.HUnca_GetNotBeforeTime() //生效时间\r\n let tempinfo = this.cert_subject.split(\",\")\r\n let tempinfo1 = {}\r\n tempinfo.forEach((e) => {\r\n tempinfo1[e.split(\"=\")[0]] = e.split(\"=\")[1]\r\n })\r\n this.loginForm = {\r\n cert: this.ca_cert,\r\n sign: this.sign,\r\n rn: rn,\r\n caInfo: this.cert_subject, //CA信息\r\n caAddr: tempinfo1.ST + tempinfo1.OU, //设备归属地\r\n caCode: tempinfo1.TITLE, //证书代码\r\n caName: tempinfo1.GN, //ca名字\r\n caSn: this.certSn, //CA唯一码\r\n caEffectiveDate: this.cert_notBeforeTime, //生效时间\r\n caExpireDate: this.cert_validTime, //过期时间\r\n loginType: \"3\",\r\n username: tempinfo1.GN,\r\n }\r\n return true\r\n },\r\n handleLogin() {\r\n this.$refs.loginForm.validate((valid) => {\r\n if (valid) {\r\n this.loading = true\r\n if (this.isBJCA) {\r\n this.BJCALogin()\r\n } else {\r\n this.HNCALogin()\r\n if (this.dialogVisible.showInfo == true) {\r\n this.loading = false\r\n } else if (this.loginForm.username != undefined) {\r\n this.loading = true\r\n this.$emit(\"caSuccess\", this.loginForm, () => {\r\n this.loading = false\r\n })\r\n } else {\r\n this.msgErr(\"请插入CA\")\r\n }\r\n }\r\n }\r\n })\r\n },\r\n async BJCALogin() {\r\n if (this.loginForm.password == undefined) {\r\n this.msgErr(\"请插入CA\")\r\n return\r\n } else {\r\n let certId = await new Promise((resolve) => {\r\n window.SOF_GetUserList(function (retObj) {\r\n resolve(retObj.retVal.split(\"&&&\")[0].split(\"||\")[1])\r\n })\r\n })\r\n // --------------执行ca登录接口开始\r\n var time_begin = new Date()\r\n let passwd = this.loginForm.password\r\n if (!certId || !passwd) {\r\n return\r\n }\r\n var platform = navigator.platform.toLowerCase()\r\n if (platform.indexOf(\"win\") != -1) {\r\n window.SOF_LoginEx(certId, passwd, 0, this.login_callback, {\r\n begin: time_begin,\r\n certId: certId,\r\n })\r\n } else {\r\n window.SOF_Login(certId, passwd, this.login_callback, {\r\n begin: time_begin,\r\n certId: certId,\r\n })\r\n }\r\n // --------------执行ca登录接口结束\r\n }\r\n },\r\n login_callback(retObj) {\r\n const that = this\r\n var certId = retObj.ctx.certId\r\n if (retObj.retVal) {\r\n // 登录成功对数据进行签名\r\n this.BJSignData()\r\n } else {\r\n //当登录失败时,调用SOF_GetLastError取错误码,errcode为79时表示pin码复杂度不符合\r\n window.SOF_GetLastError(function (retObj) {\r\n var err = retObj.retVal\r\n if (err == 79) {\r\n that.msgErr(\"请核对pin码复杂度是否符合要求\")\r\n }\r\n }, retObj.ctx)\r\n // 实际情况可能仅在登录失败时获取一下重试次数做个提醒\r\n window.SOF_GetPinRetryCount(\r\n certId,\r\n function (retObj) {\r\n var certId = retObj.ctx.certId\r\n that.msgErr(\r\n \"证书[\" + certId + \"]重试次数剩余:\" + retObj.retVal + \"次...\"\r\n )\r\n },\r\n retObj.ctx\r\n )\r\n }\r\n },\r\n async BJSignData() {\r\n let certId = await new Promise((resolve) => {\r\n window.SOF_GetUserList(function (retObj) {\r\n resolve(retObj.retVal.split(\"&&&\")[0].split(\"||\")[1])\r\n })\r\n })\r\n let rn = Math.random()\r\n this.form[\"rn\"] = rn\r\n window.SOF_SignData(certId, rn, this.signData_callback, {\r\n certId: certId,\r\n })\r\n // --------------登录成功对数据进行签名结束\r\n },\r\n async signData_callback(retObj) {\r\n if (retObj.retVal == \"\") {\r\n this.caInfo.error_text = \"数据签名失败\"\r\n this.caInfo.have_error_info = true\r\n this.dialogVisible.showInfo = true\r\n return\r\n }\r\n this.form[\"sign\"] = retObj.retVal\r\n // 签名成功获取其他信息后端登录接口所需信息-------\r\n var certId = retObj.ctx.certId\r\n // 导出用户证书\r\n let userCert = await new Promise((resolve) => {\r\n window.SOF_ExportUserCert(certId, function (retObj) {\r\n resolve(retObj.retVal)\r\n })\r\n })\r\n this.form[\"username\"] = userCert\r\n if (userCert) {\r\n var certInfoTypeArray = {\r\n caAddrProvince: { type: 16, label: \"使用者省州名ST\" }, //caAddr\r\n caAddrcity: { type: 18, label: \"使用者城市名L\" }, //caAddr\r\n caEffectiveDate: { type: 11, label: \"证书有效开始日期\" }, //caEffectiveDate\r\n caExpireDate: { type: 12, label: \"证书有效结束日期\" }, //caExpireDate\r\n caInfo: { type: 35, label: \"使用者DN项第2种格式\" }, //caInfo\r\n //caCode\r\n //username\r\n caSn: { type: 2, label: \"证书序列号\" }, //caSn\r\n caType: { type: 34, label: \"颁发者DN项第1种格式\" }, //caType\r\n }\r\n // 导出证书成功,解析证书基本项\r\n for (let key in certInfoTypeArray) {\r\n let certInfo = await new Promise((resolve) => {\r\n window.SOF_GetCertInfo(\r\n userCert,\r\n certInfoTypeArray[key].type,\r\n function (retObj) {\r\n resolve(retObj)\r\n },\r\n { key: key }\r\n )\r\n })\r\n this.form[certInfo.ctx.key] = certInfo.retVal\r\n }\r\n let bindParams = {\r\n caSn: this.form[\"caSn\"],\r\n caInfo: this.form[\"caInfo\"],\r\n caAddr: this.form[\"caAddrProvince\"] + this.form[\"caAddrcity\"],\r\n caCode: this.form[\"caInfo\"]\r\n .split(\",\")\r\n .filter((v) => {\r\n return v.search(/^title=/i) != -1\r\n })[0]\r\n .replace(/title=/i, \"\"),\r\n username: this.form[\"caInfo\"]\r\n .split(\",\")\r\n .filter((v) => {\r\n return v.search(/^cn=/i) != -1\r\n })[0]\r\n .replace(/cn=/i, \"\"),\r\n caEffectiveDate: formateTime(this.form[\"caEffectiveDate\"]),\r\n caExpireDate: formateTime(this.form[\"caExpireDate\"]),\r\n // region: this.readForm.region,\r\n pass: this.loginForm.password,\r\n caType: \"北京ca\",\r\n sign: this.form.sign,\r\n rn: this.form.rn,\r\n cert: this.form.username,\r\n }\r\n this.form = bindParams\r\n this.loginForm = {\r\n cert: this.form.cert,\r\n sign: this.form.sign,\r\n rn: this.form.rn,\r\n caInfo: this.form.caInfo, //CA信息\r\n caAddr: this.form.caAddr, //设备归属地\r\n caCode: this.form.caCode, //证书代码\r\n caName: this.form.username, //证书名称\r\n caSn: this.form.caSn, //CA唯一码\r\n caEffectiveDate: this.form.caEffectiveDate, //生效时间\r\n caExpireDate: this.form.caExpireDate, //过期时间\r\n loginType: \"3\",\r\n username: this.form.username,\r\n }\r\n if (this.dialogVisible.showInfo == true) {\r\n this.loading = false\r\n } else if (this.loginForm.username != undefined) {\r\n this.$emit(\"caSuccess\", this.loginForm, () => {\r\n this.loading = false\r\n })\r\n } else {\r\n this.msgErr(\"请插入CA\")\r\n }\r\n }\r\n },\r\n handleClose(done) {\r\n this.$confirm(\"确认关闭?\")\r\n .then(() => {\r\n done()\r\n this.loading = false\r\n })\r\n .catch(() => {})\r\n },\r\n msgErr(msg) {\r\n this.loading = false\r\n this.$message.error(msg)\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n::v-deep .el-input__prefix {\r\n display: flex;\r\n align-items: center;\r\n left: 1.04vw;\r\n}\r\n::v-deep .el-form-item__error {\r\n font-size: 0.04vw;\r\n}\r\n::v-deep .el-input__icon {\r\n color: #409eff;\r\n width: 0.98vw;\r\n height: 1.14vw;\r\n}\r\n::v-deep .el-input__inner {\r\n padding: 0 3.64vw;\r\n height: 2.81vw;\r\n font-size: 1.04vw;\r\n border: 0.1vw solid #409eff;\r\n}\r\n::v-deep .el-input .el-input__clear {\r\n font-size: 1.24vw;\r\n}\r\n::v-deep .el-input__suffix {\r\n right: 1.04vw;\r\n top: 0.46vw;\r\n}\r\n.el-form-item {\r\n margin-bottom: 1.2vw;\r\n margin-top: 1vw;\r\n}\r\n.ca-download-box {\r\n display: flex;\r\n justify-content: right;\r\n align-items: center;\r\n margin: 10px 0;\r\n .ca-download-text {\r\n color: #53a8ff;\r\n font-size: 14px;\r\n font-weight: 400;\r\n }\r\n .ca-download-img {\r\n width: 10px;\r\n height: 10px;\r\n background: url(\"comp/YcCA/images/ca-download.png\") no-repeat;\r\n background-size: 100% 100%;\r\n margin-left: 2px;\r\n }\r\n}\r\n.contentBox {\r\n width: 100%;\r\n height: 50px;\r\n margin-bottom: 15px;\r\n}\r\n.ca-bg-box {\r\n background-color: #ecf5ff;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 30px 70px;\r\n position: relative;\r\n -webkit-animation: fadeinout 1s linear forwards;\r\n animation: fadeinout 1s linear forwards;\r\n .ca-bg-img {\r\n width: 97px;\r\n height: 57px;\r\n background: url(\"comp/YcCA/images/ca-bg.png\") no-repeat;\r\n background-size: 100% 100%;\r\n }\r\n}\r\n@-webkit-keyframes fadeinout {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 50% {\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n@keyframes fadeinout {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 50% {\r\n opacity: 0.5;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n.ca-bg-info {\r\n display: flex;\r\n padding: 40px 70px 40px 25px;\r\n position: relative;\r\n background: url(\"comp/YcCA/images/caBg.png\") no-repeat;\r\n background-size: 100% 100%;\r\n -webkit-animation: fadeinout 1s linear forwards;\r\n animation: fadeinout 1s linear forwards;\r\n}\r\n.ca-bg-text {\r\n margin-left: 15px;\r\n font-size: 18px;\r\n font-weight: 500;\r\n color: #53a8ff;\r\n}\r\n.caName {\r\n margin-left: 10px;\r\n color: #303133;\r\n}\r\n.ca-refresh {\r\n position: absolute;\r\n top: 6px;\r\n right: 8px;\r\n width: 25px;\r\n height: 25px;\r\n}\r\n.login-btn {\r\n height: 2.81vw;\r\n font-size: 1.04vw;\r\n font-weight: bold;\r\n background: url(\"comp/YcCA/images/login-btn-bg.png\") no-repeat;\r\n background-size: 100% 100%;\r\n border: none;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","// extracted by mini-css-extract-plugin\nexport {};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=f0d3063c&prod&lang=scss&scoped=true&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f0d3063c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f0d3063c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f0d3063c\",\n null\n \n)\n\nexport default component.exports","import YcSlideVerify from 'comp/YcSlideVerify'\r\nimport YcCustomerService from 'comp/YcCustomerService'\r\nimport YcQuestion from 'comp/YcQuestion'\r\nimport YcCA from 'comp/YcCA'\r\n\r\n\r\nconst components = [\r\n YcSlideVerify,\r\n YcCustomerService,\r\n YcQuestion,\r\n YcCA\r\n]\r\n// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册\r\nconst install = function (Vue) {\r\n // 遍历注册全局组件\r\n components.forEach(component => {\r\n Vue.component(component.name, component)\r\n })\r\n\r\n // 判断是否是直接引入文件,如果是,就不用调用 Vue.use()\r\n if (typeof window !== 'undefined' && window.Vue) {\r\n install(window.Vue)\r\n }\r\n}\r\n\r\n// 导出的对象必须具有 install,才能被 Vue.use() 方法安装\r\nexport default {\r\n install\r\n}\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"names":["xtxasyn","XTXAsynHashMap","map","prototype","put","key","value","get","hasOwnProperty","remove","removeAll","keySet","_keys","i","push","constructor","HashMap","initUtilObject","util","checkBrowserISIE","window","ActiveXObject","checkLocationIsHttps","document","location","protocol","evalFunction","func","cb","eval","consolelog","param","console","undefined","log","isEmpty","loadIECtl","clsid","ctlName","checkFunc","ctl","getElementById","loadObjString","write","e","getAutoExecFunctionString","ret","toString","attachIEEvent","eventName","eventFunc","toLowerCase","attachEvent","handler","createElement","setAttribute","eventScript","appendChild","createTextNode","getElementsByTagName","loadWebSocketCtl","wsUrl","wssUrl","wsObject","url","socket","wsMessageQueue","wsMessageQueueId","wsEventQueue","wsURL","wsCacheMessage","custom","defaultUsbkeyChange","WebSocket","onopen","evt","SOF_GetVersion","retVal","length","tb_send","shift","send","onclose","XTXAppWebSocket","onmessage","eventCmd","data","res","JSON","parse","cmdId","methodName","execFunc","messageQueue","method","ctx","returnType","Number","token","setToken","retObj","onerror","attachWebSocketEvent","callWebSocketMethod","argsArray","sendArray","href","arguments","strParam","getToken","readyState","OPEN","stringify","CONNECTING","SynToAsyn","initCustomActions","softCertListID","hardCertListID","allCertListID","loginCertID","logoutFunc","UsbkeyChangeFunc","loginToken","errorReportFunc","msg","alert","setAutoLogoutParameter","strCertID","clearDropList","dropListId","obj","n","pushOneDropListBox","userListArray","strListID","certObj","objItem","Option","certName","certID","options","add","pushUserListToAllDroplist","strUserList","allListArray","indexOf","strOneUser","substring","strName","GetDeviceInfo","len","setUserCertList","certListId","certType","CERT_TYPE_ALL","CERT_TYPE_HARD","CERT_TYPE_SOFT","SOF_GetUserList","setOnUsbKeyChangeCallBack","callback","setErrorReportFunc","errFunc","autoLogoutCallBack","initXTXAppCOM","XTXAppCOM","xtx_clsid","GetPicObj","getpic_clsid","GetPic","Hash","inData","ConvertPicFormat","type","ConvertGif2Jpg","GetPic1","ConvertPicSize","strPicture","w","h","XTXVersionOBJ","xtx_version_clsid","GetEnvVersion","initXTXAppWebSocket","initXTXAppObject","getImplmentFunction","methodInfo","inParams","funcName","Function","outParamType","export_functions","aliasName","SetAutoLogoutParameter","SetUserCertList","SetOnUsbKeyChangeCallBack","SetAlertFunction","custom_alert","GetLoginToken","SetLoginToken","tokenData","GetUserListByType","strType","GetDeviceType","userList","GetUserList_USBKey","GetUserList_Soft","SignByP7","strInData","bDetach","SOF_SignMessage","GetSymKeyLength","HashFile","strFilePath","SOF_HashFile","ParseDateString","strDate","strYear","strMonth","strDay","strHour","strMin","strSecond","RtnDate","Date","setFullYear","setHours","setMinutes","setSeconds","__loginSignRandomCallBack","objForm","UserSignedData","LoginToken","action","submit","__loginVerifyServerSignatureCallBack","SOF_SignData","strServerRan","__loginCheckCertValidNotAfter","notAfterDate","milliseconds","getTime","days","parseInt","hours","minutes","SOF_VerifySignedData","strServerCert","strServerSignedData","__loginCheckCertValidNotBefore","notBeforeDate","strUserCert","UserCert","SOF_GetCertInfo","__loginGetSignCertCallBack","__loginGetPINRetryCallBack","retryCount","__loginVerifyPINCallBack","SOF_GetPinRetryCount","CertID","ContainerName","SOF_ExportUserCert","Login","formName","strPin","strAction","custom_cb","insertAdjacentHTML","SOF_Login","split","undef","nativeSplit","String","compliantExecNpcg","exec","self","str","separator","limit","Object","call","output","flags","ignoreCase","multiline","extended","sticky","lastLastIndex","RegExp","source","separator2","match","lastIndex","lastLength","index","slice","replace","Array","apply","test","mToken","SAR_OK","SAR_FALSE","SGD_SM1_ECB","SGD_SM1_CBC","SGD_SM1_CFB","SGD_SM1_OFB","SGD_SM1_MAC","SGD_SSF33_ECB","SGD_SSF33_CBC","SGD_SSF33_CFB","SGD_SSF33_OFB","SGD_SSF33_MAC","SGD_SM4_ECB","SGD_SM4_CBC","SGD_SM4_CFB","SGD_SM4_OFB","SGD_SM4_MAC","SGD_VENDOR_DEFINED","SGD_DES_ECB","SGD_DES_CBC","SGD_3DES168_ECB","SGD_3DES168_CBC","SGD_3DES112_ECB","SGD_3DES112_CBC","SGD_AES128_ECB","SGD_AES128_CBC","SGD_AES192_ECB","SGD_AES192_CBC","SGD_AES256_ECB","SGD_AES256_CBC","SGD_RSA","SGD_SM2_1","SGD_SM2_2","SGD_SM2_3","SGD_SM3","SGD_SHA1","SGD_SHA256","SGD_RAW","SGD_MD5","SGD_SHA384","SGD_SHA512","SGD_CERT_VERSION","SGD_CERT_SERIAL","SGD_CERT_ISSUE","SGD_CERT_VALID_TIME","SGD_CERT_SUBJECT","SGD_CERT_DER_PUBLIC_KEY","SGD_CERT_DER_EXTENSIONS","SGD_CERT_NOT_BEFORE","SGD_CERT_ISSUER_CN","SGD_CERT_ISSUER_O","SGD_CERT_ISSUER_OU","SGD_CERT_ISSUER_C","SGD_CERT_ISSUER_P","SGD_CERT_ISSUER_L","SGD_CERT_ISSUER_S","SGD_CERT_ISSUER_EMAIL","SGD_CERT_SUBJECT_CN","SGD_CERT_SUBJECT_O","SGD_CERT_SUBJECT_OU","SGD_CERT_SUBJECT_EMALL","SGD_REMAIN_TIME","SGD_SIGNATURE_ALG","SGD_CERT_SUBJECT_C","SGD_CERT_SUBJECT_P","SGD_CERT_SUBJECT_L","SGD_CERT_SUBJECT_S","SGD_CERT_CRL","SGD_DEVICE_SORT","SGD_DEVICE_TYPE","SGD_DEVICE_NAME","SGD_DEVICE_MANUFACTURER","SGD_DEVICE_HARDWARE_VERSION","SGD_DEVICE_SOFTWARE_VERSION","SGD_DEVICE_STANDARD_VERSION","SGD_DEVICE_SERIAL_NUMBER","SGD_DEVICE_SUPPORT_SYM_ALG","SGD_DEVICE_SUPPORT_ASYM_ALG","SGD_DEVICE_SUPPORT_HASH_ALG","SGD_DEVICE_SUPPORT_STORANGE_SPACE","SGD_DEVICE_SUPPORT_FREE_SAPCE","SGD_DEVICE_RUNTIME","SGD_DEVICE_USED_TIMES","SGD_DEVICE_LOCATION","SGD_DEVICE_DESCRIPTION","SGD_DEVICE_MANAGER_INFO","SGD_DEVICE_MAX_DATA_SIZE","TRUE","FALSE","GM3000","K5","TF","HT","SJK1137","TYPE_UKEY","TYPE_FPKEY","g_mTokenPlugin","SOF_GetLastError","isIe","isMobile","browser","versions","u","navigator","userAgent","app","appVersion","trident","presto","webKit","gecko","mobile","ios","android","iPhone","iPad","webApp","language","browserLanguage","SOF_LoadLibrary","os","check_os","mTokenPlugin","SOF_EnumDevice","array","SOF_GetDeviceInstance","DeviceName","ApplicationName","SOF_ReleaseDeviceInstance","list","user","KeySpec","SOF_GetDeviceInfo","Type","Base64EncodeCert","SOF_GetCertInfoByOid","OID","PassWd","SOF_LogOut","SOF_ChangePassWd","OldPassWd","NewPassWd","SOF_SetDigestMethod","DigestMethod","SOF_SetUserID","UserID","SOF_SetEncryptMethodAndIV","EncryptMethod","EncryptIV","SOF_EncryptFileToPKCS7","Cert","InFile","OutFile","SOF_SignFileToPKCS7","SOF_VerifyFileToPKCS7","strPkcs7Data","InFilePath","SOF_DecryptFileToPKCS7","keySpec","Pkcs7Data","SOF_DigestData","nData","InDataLen","ulKeySpec","InData","SOF_SignDataInteractive","SOF_SignDataToPKCS7","ulDetached","SOF_VerifyDataToPKCS7","SignedValue","digestMethod","SOF_EncryptDataPKCS7","SOF_DecryptDataPKCS7","SOF_GenRemoteUnblockRequest","SOF_GenResetpwdResponse","request","soPin","userPin","SOF_RemoteUnblockPIN","OriginalText","SOF_ExportPubKey","containerName","cerType","expType","SOF_EncryptByPubKey","strPubKey","strInput","SOF_DecryptByPrvKey","strAsymCipher","SOF_GenerateP10Request","deviceName","container","dn","asymAlg","keyLength","SOF_EnumCertContiner","SOF_FindContainer","certSN","SOF_DeleteCert","SOF_DeleteContainer","SOF_SignByCert","plain","SOF_VerifyByCert","signature","SOF_ImportCert","cert","SOF_ImportCryptoCertAndKey","nAsymAlg","EncryptedSessionKeyData","symAlg","EncryptedPrivateKeyData","mode","SOF_VerifyByExtCert","SOF_GenerateRandom","SOF_SymEncryptFile","sessionKey","srcfile","destfile","SOF_SymDecryptFile","SOF_SymEncryptData","SOF_SymDecryptData","SOF_GenerateQRCode","qrcode_text","SOF_VerifyPinMS","responseKey","SOF_GetHardwareType","SOF_VerifyFingerprint","SOF_EnumFiles","SOF_ReadFile","fileName","offset","SOF_WriteFile","SOF_CreateFile","readRight","writeRight","SOF_DeleteFile","hasPlugin","name","plugins","windows","mac","linux","unix","os_type","linuxWin","_xmlhttp","retJSON","AjaxIO","json_in","router","json","invoke","_curDevName","_url","XMLHttpRequest","open","setRequestHeader","GetHttpResult","status","responseText","errorCode","rtn","version","info","envelopData","signed","digest","InDataBase64","encrypedData","decryptedData","pkcs7","pubKey","asymCipher","asymPlain","SOF_CreateKeyPair","outData","qrcode_text_in","SocketConnect","HostName","Port","SocketDisConnect","SocketSendText","SendText","RecvText","render","_vm","_c","_self","attrs","title","isShow","on","handleClose","ref","imgs","accuracy","sliderText","onSuccess","onFail","onAgain","onRefresh","onFulfilled","staticRenderFns","props","default","Boolean","countDownNum","computed","watch","newVal","$refs","slideblock","reset","created","methods","$emit","staticStyle","visible","jumpPage","regular","update:visible","$event","staticClass","_t","click","_m","_v","directives","rawName","expression","_s","enlarge","_e","close","_l","messagelist","item","class","id","domProps","regularClick","based","handExpand","isActive","minRows","maxRows","nativeOn","keyup","_k","keyCode","carriageReturn","model","textareaValue","$$v","commit","questions","event","code","search","filter","faq","includes","vlaue","reduce","prev","curr","fun","isArray","$nextTick","main","scrollTop","scrollHeight","chatMixin","mixins","chatVue","components","hasSlot","$slots","$route","to","path","customer","style","display","mounted","currData","preventDefault","activeNames","questionsList","slot","getHours","getMinutes","loginForm","loginRules","username","require","caRead","handleLogin","password","$set","loading","dialogVisible","showInfo","caInfo","error_text","_keyStr","_Base64encode","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","_utf8_encode","charCodeAt","isNaN","charAt","_Base64decode","fromCharCode","_utf8_decode","in_string","string","utftext","c","c1","c2","c3","hunca_mToken_core","certInfoList","singleKey","libraryNameList","platform","LAST_ERRORSTRING","KEY_SPEC_TYPE_ENCRYPT","KEY_SPEC_TYPE_SIGN","USER_ID","ERROR_MESSAGE_NOT_LOADLIBRARY","ERROR_MESSAGE_NOT_FIND_UKEY","ERROR_MSSSAGE_FIND_MORE_UKEY","ERROR_MESSAGE_NOT_INSTANCE_DEVICE","ERROR_MESSAGE_USERPIN_LENGTH","ERROR_MESSAGE_USERPIN_IS_ERROR","ERROR_MESSAGE_USERPIN_CHANGE_ERROR","ERROR_MESSAGE_KEY_NOT_EXIT","ERROR_MESSAGE_USERNAME_IS_NULL","ERROR_MESSAGE_KEY_EXPORT_CERT","ERROR_MESSAGE_SET_DIGEST_METHOD_ERROR","ERROR_MESSAGE_SET_USERID_ERROR","ERROR_MESSAGE_SIGN_ORIGINALDATA_IS_NULL","ERROR_MESSAGE_SIGN_ERROR","ERROR_MESSAGE_USERNAMEGN_IS_NULL","ERROR_MESSAGE_USERNAMEGN_TO_USERNAME_ERROR","ERROR_MESSAGE_KEY_LIBRAY","ERROR_MESSAGE_ENCRYPT_DATA_IS_NULL","ERROR_MESSAGE_DECRYPT_DATA_IS_NULL","ERROR_MESSAGE_DECRYPT_DATA_IS_ERROR","ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_FAIL","ERROR_MESSAGE_GET_REMOTEUNLOCKREQUEST_NOT_SUPPORT","ERROR_MESSAGE_REMOTE_UNLOCK_FAIL","tokenInfoList","signResultSignData","signResultCert","certSn","cert_subject_GN","cert_subject","cert_validTime","cert_notbeforetime","Hunca_GetLastError","Hunca_GetUserList","deviceArray","userName","tmpInfo","libraryName","tokenInfo","serial","userNameList","Hunca_GetUserListGN","certB64","deviceSerial","subjectGN","userNameGNList","Hunca_userNameGNToUserName","userNameGN","Hunca_GenRemoteUnblockRequest","tempTokenInfo","HUnca_GetDeviceNumber","m_devNumber","SOF_GetDeviceNumber","Hunca_RemoteUnlockPIN","response","result","SOF_RemoteUnlockPIN","Hunca_ChangeUserPin","oldUserPin","newUserPin","SOF_ChangeUserPin","Hunca_PKCS1","originalData","certBase64","signResultInfo","certInfo","Hunca_GetSignData","Hunca_GetSignCert","Hunca_GetSignCertSn","Hunca_GetSignCertSubject","Hunca_GetValidTime","HUnca_GetNotBeforeTime","Hunca_DealCertInfo","Hunca_EncryptDataPKCS7","m_EncryptMethod","m_EncryptIV","encryptData","Hunca_DecryptDataPKCS7","m_EncryptData","m_DecryptData","resData","resultCode","deviceNameList","m_userPin","RetryCount","m_oldUserPin","m_newUserPin","deviceNumber","keySec","resCode","inDataBase64","m_inData","m_EncrypedData","signData","b64Data","m_data","subject","tmpList","validTime","notBeforetime","hexToDec","x","y","base","z","Math","max","carry","xi","yi","zi","floor","multiplyByNumber","num","power","parseToDigitsArray","digits","ary","convertBase","fromBase","toBase","outArray","out","decToHex","decStr","hex","hexStr","formateTime","dateStr","year","month","date","minute","second","region","form","have_error_info","uuid","ca","required","trigger","message","isBJCA","caReadBeijin","tempName","Promise","resolve","caLogin","flag","HNCALogin","$message","tempuserName","rn","random","ca_cert","sign","cert_notBeforeTime","tempinfo","tempinfo1","forEach","caAddr","ST","OU","caCode","TITLE","caName","GN","caSn","caEffectiveDate","caExpireDate","loginType","validate","valid","BJCALogin","msgErr","certId","time_begin","passwd","SOF_LoginEx","login_callback","begin","that","BJSignData","err","signData_callback","userCert","certInfoTypeArray","caAddrProvince","label","caAddrcity","caType","bindParams","v","pass","done","$confirm","then","catch","error","YcSlideVerify","YcCustomerService","YcQuestion","YcCA","install","Vue","component"],"sourceRoot":""}