@decaf-ts/for-fabric 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/for-fabric.cjs +1 -1
- package/dist/for-fabric.cjs.map +1 -1
- package/dist/for-fabric.js +1 -1
- package/dist/for-fabric.js.map +1 -1
- package/lib/contracts/ContractAdapter.cjs +0 -4
- package/lib/contracts/ContractAdapter.d.ts +1 -2
- package/lib/contracts/ContractAdapter.js.map +1 -1
- package/lib/contracts/ContractPrivateDataAdapter.cjs +0 -5
- package/lib/contracts/ContractPrivateDataAdapter.js.map +1 -1
- package/lib/contracts/index.cjs +1 -2
- package/lib/contracts/index.d.ts +1 -2
- package/lib/contracts/index.js.map +1 -1
- package/lib/esm/contracts/ContractAdapter.d.ts +1 -2
- package/lib/esm/contracts/ContractAdapter.js +0 -4
- package/lib/esm/contracts/ContractAdapter.js.map +1 -1
- package/lib/esm/contracts/ContractPrivateDataAdapter.js +0 -5
- package/lib/esm/contracts/ContractPrivateDataAdapter.js.map +1 -1
- package/lib/esm/contracts/index.d.ts +1 -2
- package/lib/esm/contracts/index.js +1 -2
- package/lib/esm/contracts/index.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/lib/contracts/FabricContractSequence.cjs +0 -119
- package/lib/contracts/FabricContractSequence.d.ts +0 -50
- package/lib/contracts/FabricContractSequence.js.map +0 -1
- package/lib/esm/contracts/FabricContractSequence.d.ts +0 -50
- package/lib/esm/contracts/FabricContractSequence.js +0 -115
- package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
package/dist/for-fabric.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as r,CouchDBOperator as i,CouchDBAdapter as a}from"@decaf-ts/for-couchdb";import{Model as n,required as s,model as o,JSONSerializer as c,type as l,list as u}from"@decaf-ts/decorator-validation";import{Context as p,OperationKeys as d,BulkCrudOperationKeys as h,DBKeys as g,NotFoundError as y,InternalError as w,SerializationError as f,ConflictError as m,BadRequestError as b,onCreate as x,onCreateUpdate as A,readonly as v,onUpdate as S,onDelete as C,afterAny as O,BaseError as E,ValidationError as k}from"@decaf-ts/db-decorators";import{Property as N,Object as R,Contract as z,Context as T,Transaction as P}from"fabric-contract-api";import{ObserverHandler as D,Adapter as I,Repository as $,Condition as F,pk as j,index as B,table as _,BaseModel as L,Sequence as J,repositoryFromTypeMetadata as q,cacheModelForPopulate as M,Cascade as U,createOrUpdate as Y,getPopulateKey as V,UnsupportedError as H,QueryError as K,PagingError as Q,MigrationError as G,ObserverError as W,AuthorizationError as X,ForbiddenError as Z,ConnectionError as tt,PersistenceKeys as et,relation as rt,oneToManyOnUpdate as it,column as at}from"@decaf-ts/core";import{Metadata as nt,Decoration as st,propMetadata as ot,apply as ct,prop as lt}from"@decaf-ts/decoration";import{__decorate as ut,__metadata as pt}from"tslib";import{Logging as dt,MiniLogger as ht,NumericLogLevels as gt,LogLevel as yt}from"@decaf-ts/logging";class wt extends p{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx"+(this.stub?" with stub":"without stub")}}class ft extends D{constructor(t=[d.CREATE,d.UPDATE,d.DELETE,h.CREATE_ALL,h.UPDATE_ALL,h.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,r,...i){const{log:a,ctx:n}=I.logCtx(i,this.updateObservers),{stub:s}=n,[o,c]=i,l="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){a.debug(`Emitting ${e} event`);const t=((t,e,r)=>{const i=[t,e];return r&&i.push(r),i.join("_")})(l,e,o);s.setEvent(t,Buffer.from(JSON.stringify({id:r})))}else s.setEvent(e,Buffer.from(JSON.stringify(c)))}}class mt extends ${constructor(t,e,r){super(t,e),this.trackedEvents=r}ObserverHandler(){return new ft}async updateObservers(t,e,r,...i){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,r,...i)}}class bt extends t{constructor(t){super(t)}async raw(t,...e){const{ctx:r}=this.logCtx(e,this.raw),i=await this.adapter.raw(t,!0,r),a=n.pk(this.fromSelector),s=nt.get(this.fromSelector,nt.key(g.ID,a))?.type;return this.selectSelector?i:i.map((t=>this.processRecord(t,a,s,r)))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=n.tableName(this.fromSelector);const a={selector:t};if(this.selectSelector&&(a.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(F.and(this.whereCondition,F.attribute(e.TABLE).eq(a.selector[e.TABLE]))).selector,i=Object.keys(t);if(1===i.length&&-1!==Object.values(r).indexOf(i[0]))switch(i[0]){case r.AND:t[r.AND]=[...Object.values(t[r.AND]).reduce(((t,e)=>{const i=Object.keys(e);if(1!==i.length)throw Error("Too many keys in query selector. should be one");const a=i[0];return a===r.AND?t.push(...e[a]):t.push(e),t}),[])],a.selector=t;break;case r.OR:{const e={};e[r.AND]=[t,...Object.entries(a.selector).map((([t,e])=>{const r={};return r[t]=e,r}))],a.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach((([t,e])=>{a.selector[t],a.selector[t]=e}))}if(this.orderBySelector){a.sort=a.sort||[],a.selector=a.selector||{};const[t,e]=this.orderBySelector,r={};r[t]=e,a.sort.push(r),a.selector[t]||(a.selector[t]={},a.selector[t][i.BIGGER]=null)}return this.limitSelector&&(a.limit=this.limitSelector),this.offsetSelector&&(a.skip=this.offsetSelector),a}}let xt=class extends L{constructor(t){super(t)}};ut([j(),pt("design:type",String)],xt.prototype,"id",void 0),ut([s(),B(),pt("design:type",Object)],xt.prototype,"current",void 0),xt=ut([_(e.SEQUENCE),o(),pt("design:paramtypes",[Object])],xt);class At extends J{constructor(t,e){super(t,e),this.repo=$.forModel(xt,e.alias)}async current(...t){const e=(await p.args(d.READ,xt,t,this.adapter)).context,{name:r,startWith:i}=this.options;try{const t=await this.repo.read(r,e);return this.parse(t.current)}catch(t){if(t instanceof y){if(void 0===i)throw new w("Starting value is not defined for a non existing sequence");try{return this.parse(i)}catch(t){throw new w(`Failed to parse initial value for sequence ${i}: ${t}`)}}throw new w(`Failed to retrieve current value for sequence ${r}: ${t}`)}}async increment(t,e,r){const{type:i,incrementBy:a,name:n}=this.options;let s;const o=e||a;if(o%a!=0)throw new w("Value to increment does not consider the incrementBy setting: "+a);switch(i){case"Number":s=this.parse(t)+o;break;case"BigInt":s=this.parse(t)+BigInt(o);break;default:throw new w("Should never happen")}let c;try{c=await this.repo.update(new xt({id:n,current:s}),r)}catch(t){if(!(t instanceof y))throw t;c=await this.repo.create(new xt({id:n,current:s}),r)}return c.current}async next(...t){const e=await p.args(d.UPDATE,xt,t,this.adapter),{context:r,args:i}=e,a=await this.current(...i);return this.increment(a,void 0,r)}async range(t,...e){const r=await p.args(d.UPDATE,xt,e,this.adapter),{context:i,args:a}=r,n=await this.current(...a),s=this.parse(this.options.incrementBy),o=await this.increment(n,this.parse(t)*s,i),c=[];for(let e=1;t>=e;e++)c.push(n+s*this.parse(e));if(c[c.length-1]!==o&&"String"!==this.options.type)throw new w("Miscalculation of range");return c}}var vt,St;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(vt||(vt={})),(t=>{t.X509="X.509"})(St||(St={}));const Ct="hlf-fabric";class Ot extends c{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function Et(t,e,r,i){const a=i[r];if(!a)return;if("object"!=typeof a){const e=q(i,r,this.adapter.alias),n=await e.read(a,t);return await M(t,i,r,a,n),void(i[r]=a)}e.class="string"==typeof e.class?e.class:e.class().name;const s=n.get(e.class);if(!s)throw new w("Could not find model "+e.class);const o=$.forModel(s,this.adapter.alias),c=await o.create(a,t),l=n.pk(c);await M(t,i,r,c[l],c),i[r]=c[l]}async function kt(t,e,r,i){const a=i[r];if(!a)return;if(e.cascade.update!==U.CASCADE)return;if("object"!=typeof a){const e=q(i,r,this.adapter.alias),n=await e.read(a,t);return await M(t,i,r,a,n),void(i[r]=a)}const s=await Y(i[r],t,this.adapter.alias),o=n.pk(s);await M(t,i,r,s[o],s),i[r]=s[o]}async function Nt(t,e,r,i){const a=i[r];if(!a)return;if(e.cascade.update!==U.CASCADE)return;const s=q(i,r,this.adapter.alias);let o;o=a instanceof n?await s.delete(i[r][n.pk(s.class)],t):await s.delete(i[r],t),await M(t,i,r,o[n.pk(s.class)],o)}async function Rt(t,e,r,i){const a=i[r];if(!a||!a.length)return;const s=typeof a[0];if(!a.every((t=>typeof t===s)))throw new w(`Invalid operation. All elements of property ${r} must match the same type.`);const o=new Set([...a]);if("object"!==s){const e=q(i,r,this.adapter.alias);for(const a of o){const n=await e.read(a,t);await M(t,i,r,a,n)}return void(i[r]=[...o])}const c=n.pk(a[0]),l=new Set;for(const e of a){const a=await Y(e,t,this.adapter.alias);await M(t,i,r,a[c],a),l.add(a[c])}i[r]=[...l]}async function zt(t,e,r,i){if(e.cascade.delete!==U.CASCADE)return;const a=i[r];if(!a||!a.length)return;const s=typeof a[0];if(!a.every((t=>typeof t===s)))throw new w(`Invalid operation. All elements of property ${r} must match the same type.`);const o="object"===s,c=o?$.forModel(a[0],this.adapter.alias):q(i,r,this.adapter.alias),l=new Set([...o?a.map((t=>t[n.pk(this.class)])):a]);for(const e of l.values()){const a=await c.delete(e,t);await M(t,i,r,e,a)}i[r]=[...l]}async function Tt(t,e,r,i){if(!e.populate)return;const a=i[r],n=Array.isArray(a);if(void 0===a||n&&0===a.length)return;const s=await(async(e,r,i,a,n)=>{let s,o;const c=[];for(const l of a){s=V(r.constructor.name,i,l);try{o=await e.get(s)}catch(e){const a=q(r,i,n);if(!a)throw new w("Could not find repo");o=await a.read(l,t)}c.push(o)}return c})(t,i,r,n?a:[a],this.adapter.alias);i[r]=n?s:s[0]}async function Pt(t,e,r,i){try{const e=t.get("identity");i[r]=e.getID()}catch(t){throw new H("No User found in context. Please provide a user in the context")}}async function Dt(t,e,r,i){if(!e.type||i[r])return;let a;e.name||(e.name=n.sequenceName(i,"pk"));try{a=await this.adapter.Sequence(e)}catch(t){throw new w(`Failed to instantiate Sequence ${e.name}: ${t}`)}const s=await a.next(t);Object.defineProperty(i,r,{enumerable:!0,writable:!1,configurable:!0,value:s})}class It extends a{getClient(){throw new H("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new Ot}repository(){return mt}constructor(t,e){super(t,Ct,e),this.Context=wt}for(t,...e){return super.for(t,...e)}async create(t,e,r,...i){const{ctx:a,log:s}=this.logCtx(i,this.create);s.info("in ADAPTER create with args "+i);const{stub:o}=a,c=n.tableName(t);try{s.info(`adding entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);r=await this.putState(t,r,a)}catch(t){throw this.parseError(t)}return r}async read(t,e,...r){const{ctx:i,log:a}=this.logCtx(r,this.read);a.info("in ADAPTER read with args "+r);const{stub:s}=i,o=n.tableName(t);let c;try{const t=s.createCompositeKey(o,[e+""]);c=await this.readState(t,i)}catch(t){throw this.parseError(t)}return c}async update(t,e,r,...i){const{ctx:a,log:s}=this.logCtx(i,this.update),{stub:o}=a,c=n.tableName(t);try{s.verbose(`updating entry to ${c} table with pk ${e}`);const t=o.createCompositeKey(c,[e+""]);r=await this.putState(t,r,a)}catch(t){throw this.parseError(t)}return r}async delete(t,e,...r){const{ctx:i,log:a,ctxArgs:s}=this.logCtx(r,this.delete),{stub:o}=i,c=n.tableName(t);let l;try{const r=o.createCompositeKey(c,[e+""]);l=await this.read(t,e,...s),a.verbose(`deleting entry with pk ${e} from ${c} table`),await this.deleteState(r,i)}catch(t){throw this.parseError(t)}return l}async deleteState(t,e){const{stub:r,logger:i}=e;i.for(this.deleteState),await r.deleteState(t)}forPrivate(t){const e=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map((t=>t.name));return new Proxy(this,{get:(r,i,a)=>e.includes(i)?new Proxy(r[i],{async apply(e,r,a){switch(i){case"putState":{const[e,r,i]=a;return await e.putPrivateData(t,r.toString(),i),i}case"deleteState":{const[e,r]=a;return e.deletePrivateData(t,r)}case"readState":{const[e,r]=a;return e.getPrivateData(t,r)}case"queryResult":{const[e,r]=a;return e.getPrivateDataQueryResult(t,r)}case"queryResultPaginated":{const[e,r,i,n]=a,s=await e.getPrivateDataQueryResult(t,r),o=[];let c=0,l=!n,u=null;for(;;){const t=await s.next();if(t.value&&t.value.value.toString()){const e=t.value.key,r=t.value.value.toString("utf8");if(!l){e===n?.toString()&&(l=!0);continue}if(o.push({Key:e,Record:JSON.parse(r)}),u=e,c++,c>=i)return await s.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await s.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new w("Unsupported method override "+i)}}}):Reflect.get(r,i,a)})}async putState(t,e,r){let i;const{stub:a,logger:n}=r,s=n.for(this.putState);try{i=Buffer.from(It.serializer.serialize(e))}catch(e){throw new f(`Failed to serialize record with id ${t}: ${e}`)}return await a.putState(t.toString(),i),s.silly("state stored under id "+t),e}async readState(t,e){let r;const{stub:i,logger:a}=e,n=a.for(this.readState),s=(await i.getState(t)).toString();if(!s)throw new y(`Record with id ${t} not found`);n.silly("Read state for id "+t);try{r=It.serializer.deserialize(s.toString())}catch(t){throw new f("Failed to parse record: "+t)}return r}async queryResult(t,e,...r){return await t.getQueryResult(JSON.stringify(e))}async queryResultPaginated(t,e,r=250,i,...a){return await t.getQueryResultWithPagination(JSON.stringify(e),r,i?.toString())}mergeModels(t){const e=t=>Object.entries(t).reduce(((t,[e,r])=>(void 0!==r&&(t[e]=r),t)),{});let r=t.pop();for(const i of t)r=Object.assign({},e(r),e(i));return r}decode(t){return It.textDecoder.decode(t)}async flags(t,e,r,i,...a){const n=t=>{const e=t??this.log.for(this.flags);return"function"!=typeof e.clear&&(e.clear=()=>e),"function"!=typeof e.for&&(e.for=()=>e),e},s=i instanceof wt?i.accumulate({logger:n(i.logger)}):(new wt).accumulate({stub:i.stub,identity:i.clientIdentity,logger:n()}),o=Object.assign({},r,{logger:s.logger});return Object.assign(await super.flags(t,e,o,...a),{stub:i.stub,identity:i.clientIdentity??s.identity,logger:s.logger,correlationId:i.stub.getTxID()})}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,r=!1){const i=[];let a=await e.next();for(;!a.done;){if(a.value&&a.value.value.toString()){let e={};if(t.debug(a.value.value.toString("utf8")),r){e.TxId=a.value.txId,e.Timestamp=a.value.timestamp;try{e.Value=JSON.parse(a.value.value.toString("utf8"))}catch(r){t.error(r),e.Value=a.value.value.toString("utf8")}}else try{e=JSON.parse(a.value.value.toString("utf8"))}catch(r){t.error(r),e=a.value.value.toString("utf8")}i.push(e)}a=await e.next()}return t.debug(`Closing iterator after ${i.length} results`),e.close(),i}async raw(t,...e){const{ctx:r,log:i,ctxArgs:a}=this.logCtx(e,this.raw);"boolean"==typeof a[0]&&a.shift();const{stub:n}=r,{skip:s,limit:o}=t;let c;o||s?(delete t.limit,delete t.skip,i.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${s}`),c=(await this.queryResultPaginated(n,t,o||250,s?.toString())).iterator):(i.debug("Retrieving iterator"),c=await this.queryResult(n,t)),i.debug("Iterator acquired");const l=await this.resultIterator(i,c);return i.debug("returning {0} results",""+(Array.isArray(l)?l.length:1)),l}Statement(){return new bt(this)}async Sequence(t){return new At(t,this)}async createAll(t,e,r,...i){if(e.length!==r.length)throw new w("Ids and models must have the same length");const{log:a,ctxArgs:s}=this.logCtx(i,this.createAll),o=n.tableName(t);return a.debug(`Creating ${e.length} entries ${o} table`),Promise.all(e.map(((e,i)=>this.create(t,e,r[i],...s))))}async updateAll(t,e,r,...i){if(e.length!==r.length)throw new w("Ids and models must have the same length");const{log:a,ctxArgs:s}=this.logCtx(i,this.updateAll),o=n.tableName(t);return a.debug(`Updating ${e.length} entries ${o} table`),Promise.all(e.map(((e,i)=>this.update(t,e,r[i],...s))))}prepare(t,...e){const{log:r}=this.logCtx(e,this.prepare),i=n.tableName(t.constructor),a=n.pk(t.constructor),s=n.segregate(t),o=Object.entries(s.model).reduce(((e,[r,i])=>{if(void 0===i)return e;const a=n.columnName(t,r);if(this.isReserved(a))throw new w(`Property name ${a} is reserved`);return e[a]=i,e}),{});return r.silly(`Preparing record for ${i} table with pk ${t[a]}`),{record:o,id:t[a],transient:s.transient}}revert(t,e,r,i,...a){const{log:s}=this.logCtx(a,this.revert),o={};o[n.pk(e)]=r;const c="string"==typeof e?n.build(o,e):new e(o);s.silly(`Rebuilding model ${c.constructor.name} id ${r}`);const l=Object.keys(c).reduce(((e,r)=>(e[r]=t[n.columnName(e,r)],e)),c);return i&&(s.debug("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach((([t,e])=>{if(t in l&&void 0!==l[t])throw new w(`Transient property ${t} already exists on model ${c.constructor.name}. should be impossible`);l[t]=e}))),l}createPrefix(t,r,i,...a){const{ctxArgs:s}=this.logCtx(a,this.createPrefix),o={};return o[e.TABLE]=n.tableName(t),Object.assign(o,i),[t,r,o,...s]}updatePrefix(t,r,i,...a){const{ctxArgs:s}=this.logCtx(a,this.updatePrefix),o={};return o[e.TABLE]=n.tableName(t),Object.assign(o,i),[t,r,o,...s]}createAllPrefix(t,r,i,...a){if(r.length!==i.length)throw new w("Ids and models must have the same length");const n=a.pop(),s=r.map(((r,a)=>{const n={};return n[e.TABLE]=t,Object.assign(n,i[a]),n}));return[t,r,s,n]}updateAllPrefix(t,r,i,...a){if(r.length!==i.length)throw new w("Ids and models must have the same length");const n=a.pop(),s=r.map(((r,a)=>{const n={};return n[e.TABLE]=t,Object.assign(n,i[a]),n}));return[t,r,s,n]}parseError(t,e){return It.parseError(e||t)}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(y.name)?new y(t):e.includes(m.name)?new m(t):e.includes(b.name)?new b(t):e.includes(K.name)?new K(t):e.includes(Q.name)?new Q(t):e.includes(H.name)?new H(t):e.includes(G.name)?new G(t):e.includes(W.name)?new W(t):e.includes(X.name)?new X(t):e.includes(Z.name)?new Z(t):e.includes(tt.name)?new tt(t):e.includes(f.name)?new f(t):new w(t)}static decoration(){super.decoration(),st.flavouredAs(Ct).for(et.CREATED_BY).define(x(Pt),ot(et.CREATED_BY,{})).apply(),st.flavouredAs(Ct).for(et.UPDATED_BY).define(A(Pt),ot(et.UPDATED_BY,{})).apply(),st.flavouredAs(Ct).for(g.ID).define({decorator:(t,e)=>(r,i)=>ct(s(),v(),ot(nt.key(g.ID,i),t),x(Dt,t,e))(r,i)}).apply(),st.flavouredAs(Ct).for(et.COLUMN).extend(N()).apply(),st.flavouredAs(Ct).for(et.TABLE).extend((t=>R()(t))).apply(),st.flavouredAs(Ct).for(et.ONE_TO_ONE).define({decorator:(t,e,r,i,a)=>{const n={class:t,cascade:e,populate:r};return i&&(n.joinTable=i),a&&(n.name=a),ct(lt(),rt(et.ONE_TO_ONE,n),l([t,String,Number,BigInt]),x(Et,n),S(kt,n),C(Nt,n),O(Tt,n),ot(et.ONE_TO_ONE,n))}}).apply(),st.for(et.ONE_TO_MANY).define({decorator:(t,e,r,i,a)=>{const n={class:t,cascade:e,populate:r};return i&&(n.joinTable=i),a&&(n.name=a),ct(lt(),rt(et.ONE_TO_MANY,n),u([t,String,Number]),x(Rt,n),S(it,n),C(zt,n),O(Tt,n),ot(et.ONE_TO_MANY,n))}}).apply()}}It.decoration(),I.setCurrent(Ct);class $t extends c{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class Ft extends z{static{this.adapter=new It}static{this.serializer=new $t}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=$.forModel(e)}async create(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.create);i.info("CONTRACT CREATE, "+a),"string"==typeof e&&(e=this.deserialize(e)),i.info("Creating model: "+JSON.stringify(e));const s=this.getTransientData(t);return i.info("Merging transient data..."),e=n.merge(e,s,this.clazz),this.repo.create(e,...a)}async read(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.read);return i.info(`reading entry with pk ${e} `),this.repo.read(e,...a)}getTransientData(t){const e=t.stub.getTransient();let r={};return e.has(this.repo.tableName)&&(r=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),r}async update(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),i.info("Updating model: "+JSON.stringify(e));const s=this.getTransientData(t);return i.info("Merging transient data..."),e=n.merge(e,s,this.clazz),this.repo.update(e,...a)}async delete(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.delete);return i.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...a)}async deleteAll(t,e,...r){const{ctxArgs:i}=await this.logCtx([...r,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...i)}async readAll(t,e,...r){const{ctxArgs:i}=await this.logCtx([...r,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...i)}async updateAll(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.updateAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),i.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...a)}async raw(t,e,r,...i){const{ctxArgs:a}=await this.logCtx([...i,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),Ft.adapter.raw(e,r,...a)}serialize(t){return Ft.serializer.serialize(t)}deserialize(t){return Ft.serializer.deserialize(t)}async init(t){const{log:e}=await this.logCtx([t],this.init);e.info("Running contract initialization..."),this.initialized=!0,e.info("Contract initialization completed.")}async healthcheck(t){const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...r){const{log:i}=await this.logCtx([...r,t],this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),i.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,t,...r)}async logCtx(t,e){return Ft.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new w("No context provided");const r=t.pop();if(r instanceof wt)return{ctx:r,log:r.logger.clear().for(this).for(e),ctxArgs:[...t,r]};if(!(r instanceof T))throw new w("No valid context provided");const i={correlationId:r.stub.getTxID()},a=await Ft.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case d.CREATE:case d.READ:case d.UPDATE:case d.DELETE:case h.CREATE_ALL:case h.READ_ALL:case h.UPDATE_ALL:case h.DELETE_ALL:}return e.name})(),i,this.clazz,r),n=this?a.logger.for(this).for(e):a.logger.clear().for(this).for(e);return{ctx:a,log:n,ctxArgs:[...t,a]}}}class jt extends Ft{constructor(t,e){super(t,e)}async create(t,e){const{log:r}=await this.logCtx([t],this.create);r.info("Creating model: "+e);const i=this.deserialize(e);return r.info("Model deserialized: "+JSON.stringify(i)),this.serialize(await super.create(t,i))}async read(t,e){const{log:r}=await this.logCtx([t],this.read);return r.info("Reading id: "+e),this.serialize(await super.read(t,e))}async update(t,e){const{log:r}=await this.logCtx([t],this.update);return r.info("Updating model: "+e),this.serialize(await super.update(t,e))}async delete(t,e){const{log:r}=await this.logCtx([t],this.delete);return r.info("Deleting id: "+e),this.serialize(await super.delete(t,e))}async deleteAll(t,e){const r=JSON.parse(e),{log:i}=await this.logCtx([t],this.deleteAll);return i.info(`deleting ${r.length} entries from the table`),JSON.stringify((await super.deleteAll(t,r)).map((t=>this.serialize(t))))}async readAll(t,e){const r=JSON.parse(e),{log:i}=await this.logCtx([t],this.readAll);return i.info(`reading ${r.length} entries from the table`),JSON.stringify((await super.readAll(t,r)).map((t=>this.serialize(t))))}async updateAll(t,e){const{log:r}=await this.logCtx([t],this.updateAll),i=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return r.info(`Updating ${i.length} entries to the table`),JSON.stringify((await super.updateAll(t,i)).map((t=>this.serialize(t))))}async raw(t,e,r){const{ctx:i}=await this.logCtx([t],this.raw),a=JSON.parse(e);return super.raw(i,a,r)}async init(t){await super.init(t)}async healthcheck(t){return JSON.stringify(await super.healthcheck(t))}async createAll(t,e){const{log:r}=await this.logCtx([t],this.createAll),i=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return r.info(`Adding ${i.length} entries to the table`),JSON.stringify((await super.createAll(t,i)).map((t=>this.serialize(t))))}}ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],jt.prototype,"create",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],jt.prototype,"read",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],jt.prototype,"update",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],jt.prototype,"delete",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],jt.prototype,"deleteAll",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],jt.prototype,"readAll",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],jt.prototype,"updateAll",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T,String,Boolean]),pt("design:returntype",Promise)],jt.prototype,"raw",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],jt.prototype,"init",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],jt.prototype,"healthcheck",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],jt.prototype,"createAll",null);class Bt extends w{constructor(t){super(t,Bt.name)}}class _t extends w{constructor(t){super(t,_t.name)}}class Lt extends w{constructor(t){super(t,Lt.name)}}class Jt extends E{constructor(t){super(Jt.name,t,409)}}function qt(t,e){const r=t+e;if(t!==r-e||e!==r-t)throw new Bt(`Addition overflow: ${t} + ${e}`);return r}function Mt(t,e){const r=t-e;if(t!==r+e||e!==t-r)throw new Bt(`Subtraction overflow: ${t} - ${e}`);return r}let Ut=class extends L{constructor(t){super(t)}};ut([j({type:"String"}),pt("design:type",String)],Ut.prototype,"name",void 0),ut([at(),s(),pt("design:type",String)],Ut.prototype,"owner",void 0),ut([at(),s(),pt("design:type",String)],Ut.prototype,"symbol",void 0),ut([at(),s(),pt("design:type",Number)],Ut.prototype,"decimals",void 0),Ut=ut([_("erc20_tokens"),o(),pt("design:paramtypes",[Object])],Ut);let Yt=class extends L{constructor(t){super(t)}};ut([j({type:"String"}),pt("design:type",String)],Yt.prototype,"id",void 0),ut([at(),s(),pt("design:type",String)],Yt.prototype,"token",void 0),ut([at(),s(),pt("design:type",Number)],Yt.prototype,"balance",void 0),ut([at(),pt("design:type",String)],Yt.prototype,"captive",void 0),Yt=ut([_("erc20_wallets"),o(),pt("design:paramtypes",[Object])],Yt);let Vt=class extends L{constructor(t){super(t)}};function Ht(){return function(t,e,r){const i=r.value;return r.value=async function(...t){const r=t[0],a=r.clientIdentity.getID(),n=await this.tokenRepository.select(),s=await n.execute(r);if(0==s.length)throw new y("No tokens avaialble");if(s.length>1)throw new y("To many token available : "+s.length);if(s[0].owner!=a)throw new X(`User not authorized to run ${e} on the token`);return await i.apply(this,t)},r}}var Kt;ut([j({type:"String"}),at(),s(),pt("design:type",String)],Vt.prototype,"owner",void 0),ut([at(),s(),pt("design:type",String)],Vt.prototype,"spender",void 0),ut([at(),s(),pt("design:type",Number)],Vt.prototype,"value",void 0),Vt=ut([_("erc20_allowances"),o(),pt("design:paramtypes",[Object])],Vt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Kt||(Kt={}));class Qt extends Ft{constructor(t){super(t,Yt),Qt.adapter=Qt.adapter||new It,this.walletRepository=mt.forModel(Yt,Qt.adapter.alias),this.tokenRepository=mt.forModel(Ut,Qt.adapter.alias),this.allowanceRepository=mt.forModel(Vt,Qt.adapter.alias)}async TokenName(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].name}async Symbol(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].symbol}async Decimals(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].decimals}async TotalSupply(t){await this.CheckInitialized(t);const e=await this.walletRepository.select(),r=await e.execute(t);if(0==r.length)throw new y(`The token ${this.getName()} does not exist`);let i=0;return r.forEach((t=>{i+=t.balance})),i}async BalanceOf(t,e){return await this.CheckInitialized(t),(await this.walletRepository.read(e,t)).balance}async Transfer(t,e,r){await this.CheckInitialized(t);const{ctx:i}=await this.logCtx([t],this.Transfer),a=i.identity.getID();if(!await this._transfer(a,e,r,i))throw new w("Failed to transfer");return!0}async TransferFrom(t,e,r,i){await this.CheckInitialized(t);const{ctx:a}=await this.logCtx([t],this.BurnFrom),n=a.identity.getID(),s=await this._getAllowance(e,n,a);if(!s||0>s.value)throw new Lt(`spender ${n} has no allowance from ${e}`);const o=s.value;if(i>o)throw new _t("The spender does not have enough allowance to spend.");const c=Mt(o,i),l=Object.assign({},s,{value:c});if(await this.allowanceRepository.update(l,a),!await this._transfer(e,r,i,a))throw new w("Failed to transfer");return!0}async _transfer(t,e,r,i){const a=i.logger;if(t===e)throw new X("cannot transfer to and from same client account");if(0>r)throw new _t("transfer amount cannot be negative");const n=await this.walletRepository.read(t,i),s=n.balance;if(r>s)throw new _t(`client account ${t} has insufficient funds.`);let o,c=!1;try{o=await this.walletRepository.read(e,i)}catch(t){if(!(t instanceof E))throw new w(t);if(404!==t.code)throw new w(t.message);o=new Yt({id:e,balance:0,token:await this.TokenName(i)}),c=!0}const l=o.balance,u=Mt(s,r),p=qt(l,r),d=Object.assign({},n,{balance:u});await this.walletRepository.update(d,i);const h=Object.assign({},o,{balance:p});c?await this.walletRepository.create(h,i):await this.walletRepository.update(h,i);const g={from:t,to:e,value:r};return this.repo.refresh(Ut,Kt.TRANSFER,"",g,i).catch((t=>a.error("Failed to notify transfer: "+t))),!0}async Approve(t,e,r){await this.CheckInitialized(t);const{ctx:i,ctxArgs:a}=await this.logCtx([t],this.Approve),n=i.identity.getID();let s=await this._getAllowance(n,e,i);if((await this.walletRepository.read(n,...a)).balance<r)throw new _t(`client account ${n} has insufficient funds.`);s?(s.value=r,await this.allowanceRepository.update(s,...a)):(s=new Vt({owner:n,spender:e,value:r}),await this.allowanceRepository.create(s,...a));const o={owner:n,spender:e,value:r};return this.repo.refresh(Ut,Kt.APPROVAL,"",o,i),!0}async Allowance(t,e,r){await this.CheckInitialized(t);const{ctx:i}=await this.logCtx([t],this.Allowance),a=await this._getAllowance(e,r,i);if(!a)throw new Lt(`spender ${r} has no allowance from ${e}`);return a.value}async _getAllowance(t,e,r){const i=F.and(F.attribute("owner").eq(t),F.attribute("spender").eq(e)),a=await this.allowanceRepository.select().where(i).execute(r);return a?.[0]}async Initialize(t,e){const{ctx:r}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(r)).length>0)throw new X("contract options are already set, client is not authorized to change them");return e.owner=r.identity.getID(),await this.tokenRepository.create(e,r),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new Jt("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){await this.CheckInitialized(t);const{ctx:r}=await this.logCtx([t],this.Mint),i=r.identity.getID();if(0>=e)throw new k("mint amount must be a positive integer");let a;try{a=await this.walletRepository.read(i,r);const t=qt(a.balance,e),n=Object.assign({},a,{balance:t});await this.walletRepository.update(n,r)}catch(a){if(!(a instanceof E))throw new w(a);if(404!==a.code)throw new w(a.message);{const a=new Yt({id:i,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(a,r)}}const n={from:"0x0",to:i,value:e};this.repo.ObserverHandler().updateObservers(Ut,Kt.TRANSFER,"",n,r)}async Burn(t,e){await this.CheckInitialized(t);const{log:r,ctx:i}=await this.logCtx([t],this.Burn),a=i.identity.getID(),n=await this.walletRepository.read(a,i),s=n.balance;if(e>s)throw new _t("Minter has insufficient funds.");const o=Mt(s,e),c=Object.assign({},n,{balance:o});await this.walletRepository.update(c,i),r.info(e+" tokens were burned");const l={from:a,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Ut,Kt.TRANSFER,"",l,i)}async BurnFrom(t,e,r){await this.CheckInitialized(t);const{log:i,ctx:a}=await this.logCtx([t],this.BurnFrom),n=await this.walletRepository.read(e,a),s=n.balance;if(r>s)throw new _t(e+" has insufficient funds.");const o=Mt(s,r),c=Object.assign({},n,{balance:o});await this.walletRepository.update(c,a),i.info(`${r} tokens were burned from ${e}`);const l={from:e,to:"0x0",value:r};this.repo.ObserverHandler().updateObservers(Ut,Kt.TRANSFER,"",l,a)}async ClientAccountBalance(t){await this.CheckInitialized(t);const e=t.clientIdentity.getID(),r=await this.walletRepository.read(e,t);if(!r)throw new _t(`The account ${e} does not exist`);return r.balance}async ClientAccountID(t){await this.CheckInitialized(t);const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return e.identity.getID()}}ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],Qt.prototype,"TokenName",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],Qt.prototype,"Symbol",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],Qt.prototype,"Decimals",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],Qt.prototype,"TotalSupply",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T,String]),pt("design:returntype",Promise)],Qt.prototype,"BalanceOf",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String,Number]),pt("design:returntype",Promise)],Qt.prototype,"Transfer",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String,String,Number]),pt("design:returntype",Promise)],Qt.prototype,"TransferFrom",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,String,Number]),pt("design:returntype",Promise)],Qt.prototype,"Approve",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T,String,String]),pt("design:returntype",Promise)],Qt.prototype,"Allowance",null),ut([P(),pt("design:type",Function),pt("design:paramtypes",[T,Ut]),pt("design:returntype",Promise)],Qt.prototype,"Initialize",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],Qt.prototype,"CheckInitialized",null),ut([Ht(),P(),pt("design:type",Function),pt("design:paramtypes",[T,Number]),pt("design:returntype",Promise)],Qt.prototype,"Mint",null),ut([Ht(),P(),pt("design:type",Function),pt("design:paramtypes",[T,Number]),pt("design:returntype",Promise)],Qt.prototype,"Burn",null),ut([Ht(),P(),pt("design:type",Function),pt("design:paramtypes",[T,String,Number]),pt("design:returntype",Promise)],Qt.prototype,"BurnFrom",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],Qt.prototype,"ClientAccountBalance",null),ut([P(!1),pt("design:type",Function),pt("design:paramtypes",[T]),pt("design:returntype",Promise)],Qt.prototype,"ClientAccountID",null);const Gt=[Qt];class Wt extends ht{constructor(t,e,r){super(t,e),this.logger=r?r.logging.getLogger(t):new ht(t,e)}log(t,e,r){if(gt[this.config("level")]<gt[t])return;let i;switch(t){case yt.info:i=this.logger.info;break;case yt.verbose:i=this.logger.verbose;break;case yt.debug:i=this.logger.debug;break;case yt.error:i=this.logger.error;break;case yt.silly:i=this.logger.silly;break;default:throw new w("Invalid log level")}i.call(this.logger,this.createLog(t,e,r))}}dt.setFactory(((t,e,r)=>new Wt(t||Wt.name,e||{},r)));const Xt="##VERSION##",Zt="##PACKAGE##";nt.registerLibrary(Zt,Xt);export{Wt as ContractLogger,It as FabricContractAdapter,wt as FabricContractContext,mt as FabricContractRepository,ft as FabricContractRepositoryObservableHandler,At as FabricContractSequence,Ft as FabricCrudContract,bt as FabricStatement,Zt as PACKAGE_NAME,jt as SerializedCrudContract,Xt as VERSION,Gt as contracts,Pt as createdByOnFabricCreateUpdate,Dt as pkFabricOnCreate};
|
|
1
|
+
import{CouchDBStatement as t,CouchDBKeys as e,CouchDBGroupOperator as r,CouchDBOperator as i,CouchDBAdapter as a}from"@decaf-ts/for-couchdb";import{Model as s,JSONSerializer as n,required as o,type as l,list as c,model as u}from"@decaf-ts/decorator-validation";import{Context as p,OperationKeys as d,BulkCrudOperationKeys as h,DBKeys as g,InternalError as y,SerializationError as w,NotFoundError as f,ConflictError as m,BadRequestError as b,onCreate as x,onCreateUpdate as A,readonly as v,onUpdate as S,onDelete as C,afterAny as O,BaseError as k,ValidationError as E}from"@decaf-ts/db-decorators";import{Property as N,Object as R,Contract as z,Context as T,Transaction as P}from"fabric-contract-api";import{ObserverHandler as I,Adapter as D,Repository as $,Condition as F,repositoryFromTypeMetadata as j,cacheModelForPopulate as B,Cascade as _,createOrUpdate as L,getPopulateKey as J,UnsupportedError as q,QueryError as M,PagingError as U,MigrationError as Y,ObserverError as H,AuthorizationError as K,ForbiddenError as V,ConnectionError as Q,PersistenceKeys as G,relation as W,oneToManyOnUpdate as X,pk as Z,column as tt,table as et,BaseModel as rt}from"@decaf-ts/core";import{Metadata as it,Decoration as at,propMetadata as st,apply as nt,prop as ot}from"@decaf-ts/decoration";import{__decorate as lt,__metadata as ct}from"tslib";import{Logging as ut,MiniLogger as pt,NumericLogLevels as dt,LogLevel as ht}from"@decaf-ts/logging";class gt extends p{constructor(){super()}get stub(){return this.get("stub")}get timestamp(){return this.stub.getDateTimestamp()}get identity(){return this.get("identity")}toString(){return"fabric ctx"+(this.stub?" with stub":"without stub")}}class yt extends I{constructor(t=[d.CREATE,d.UPDATE,d.DELETE,h.CREATE_ALL,h.UPDATE_ALL,h.DELETE_ALL]){super(),this.supportedEvents=t}async updateObservers(t,e,r,...i){const{log:a,ctx:s}=D.logCtx(i,this.updateObservers),{stub:n}=s,[o,l]=i,c="string"==typeof t?t:t.name;if(-1!==this.supportedEvents.indexOf(e)){a.debug(`Emitting ${e} event`);const t=((t,e,r)=>{const i=[t,e];return r&&i.push(r),i.join("_")})(c,e,o);n.setEvent(t,Buffer.from(JSON.stringify({id:r})))}else n.setEvent(e,Buffer.from(JSON.stringify(l)))}}class wt extends ${constructor(t,e,r){super(t,e),this.trackedEvents=r}ObserverHandler(){return new yt}async updateObservers(t,e,r,...i){if(!this.trackedEvents||-1!==this.trackedEvents.indexOf(e))return await super.updateObservers(t,e,r,...i)}}class ft extends t{constructor(t){super(t)}async raw(t,...e){const{ctx:r}=this.logCtx(e,this.raw),i=await this.adapter.raw(t,!0,r),a=s.pk(this.fromSelector),n=it.get(this.fromSelector,it.key(g.ID,a))?.type;return this.selectSelector?i:i.map((t=>this.processRecord(t,a,n,r)))}build(){const t={};t[e.TABLE]={},t[e.TABLE]=s.tableName(this.fromSelector);const a={selector:t};if(this.selectSelector&&(a.fields=this.selectSelector),this.whereCondition){const t=this.parseCondition(F.and(this.whereCondition,F.attribute(e.TABLE).eq(a.selector[e.TABLE]))).selector,i=Object.keys(t);if(1===i.length&&-1!==Object.values(r).indexOf(i[0]))switch(i[0]){case r.AND:t[r.AND]=[...Object.values(t[r.AND]).reduce(((t,e)=>{const i=Object.keys(e);if(1!==i.length)throw Error("Too many keys in query selector. should be one");const a=i[0];return a===r.AND?t.push(...e[a]):t.push(e),t}),[])],a.selector=t;break;case r.OR:{const e={};e[r.AND]=[t,...Object.entries(a.selector).map((([t,e])=>{const r={};return r[t]=e,r}))],a.selector=e;break}default:throw Error("This should be impossible")}else Object.entries(t).forEach((([t,e])=>{a.selector[t],a.selector[t]=e}))}if(this.orderBySelector){a.sort=a.sort||[],a.selector=a.selector||{};const[t,e]=this.orderBySelector,r={};r[t]=e,a.sort.push(r),a.selector[t]||(a.selector[t]={},a.selector[t][i.BIGGER]=null)}return this.limitSelector&&(a.limit=this.limitSelector),this.offsetSelector&&(a.skip=this.offsetSelector),a}}var mt,bt;(t=>{t.PRIVATE="private",t.SHARED="shared",t.FABRIC="fabric.",t.OWNEDBY="owned-by"})(mt||(mt={})),(t=>{t.X509="X.509"})(bt||(bt={}));const xt="hlf-fabric";class At extends n{constructor(){super()}deserialize(t,e){return JSON.parse(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}preSerialize(t){return Object.assign({},t)}}async function vt(t,e,r,i){const a=i[r];if(!a)return;if("object"!=typeof a){const e=j(i,r,this.adapter.alias),s=await e.read(a,t);return await B(t,i,r,a,s),void(i[r]=a)}e.class="string"==typeof e.class?e.class:e.class().name;const n=s.get(e.class);if(!n)throw new y("Could not find model "+e.class);const o=$.forModel(n,this.adapter.alias),l=await o.create(a,t),c=s.pk(l);await B(t,i,r,l[c],l),i[r]=l[c]}async function St(t,e,r,i){const a=i[r];if(!a)return;if(e.cascade.update!==_.CASCADE)return;if("object"!=typeof a){const e=j(i,r,this.adapter.alias),s=await e.read(a,t);return await B(t,i,r,a,s),void(i[r]=a)}const n=await L(i[r],t,this.adapter.alias),o=s.pk(n);await B(t,i,r,n[o],n),i[r]=n[o]}async function Ct(t,e,r,i){const a=i[r];if(!a)return;if(e.cascade.update!==_.CASCADE)return;const n=j(i,r,this.adapter.alias);let o;o=a instanceof s?await n.delete(i[r][s.pk(n.class)],t):await n.delete(i[r],t),await B(t,i,r,o[s.pk(n.class)],o)}async function Ot(t,e,r,i){const a=i[r];if(!a||!a.length)return;const n=typeof a[0];if(!a.every((t=>typeof t===n)))throw new y(`Invalid operation. All elements of property ${r} must match the same type.`);const o=new Set([...a]);if("object"!==n){const e=j(i,r,this.adapter.alias);for(const a of o){const s=await e.read(a,t);await B(t,i,r,a,s)}return void(i[r]=[...o])}const l=s.pk(a[0]),c=new Set;for(const e of a){const a=await L(e,t,this.adapter.alias);await B(t,i,r,a[l],a),c.add(a[l])}i[r]=[...c]}async function kt(t,e,r,i){if(e.cascade.delete!==_.CASCADE)return;const a=i[r];if(!a||!a.length)return;const n=typeof a[0];if(!a.every((t=>typeof t===n)))throw new y(`Invalid operation. All elements of property ${r} must match the same type.`);const o="object"===n,l=o?$.forModel(a[0],this.adapter.alias):j(i,r,this.adapter.alias),c=new Set([...o?a.map((t=>t[s.pk(this.class)])):a]);for(const e of c.values()){const a=await l.delete(e,t);await B(t,i,r,e,a)}i[r]=[...c]}async function Et(t,e,r,i){if(!e.populate)return;const a=i[r],s=Array.isArray(a);if(void 0===a||s&&0===a.length)return;const n=await(async(e,r,i,a,s)=>{let n,o;const l=[];for(const c of a){n=J(r.constructor.name,i,c);try{o=await e.get(n)}catch(e){const a=j(r,i,s);if(!a)throw new y("Could not find repo");o=await a.read(c,t)}l.push(o)}return l})(t,i,r,s?a:[a],this.adapter.alias);i[r]=s?n:n[0]}async function Nt(t,e,r,i){try{const e=t.get("identity");i[r]=e.getID()}catch(t){throw new q("No User found in context. Please provide a user in the context")}}async function Rt(t,e,r,i){if(!e.type||i[r])return;let a;e.name||(e.name=s.sequenceName(i,"pk"));try{a=await this.adapter.Sequence(e)}catch(t){throw new y(`Failed to instantiate Sequence ${e.name}: ${t}`)}const n=await a.next(t);Object.defineProperty(i,r,{enumerable:!0,writable:!1,configurable:!0,value:n})}class zt extends a{getClient(){throw new q("Client is not supported in Fabric contracts")}static{this.textDecoder=new TextDecoder("utf8")}static{this.serializer=new At}repository(){return wt}constructor(t,e){super(t,xt,e),this.Context=gt}for(t,...e){return super.for(t,...e)}async create(t,e,r,...i){const{ctx:a,log:n}=this.logCtx(i,this.create);n.info("in ADAPTER create with args "+i);const{stub:o}=a,l=s.tableName(t);try{n.info(`adding entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);r=await this.putState(t,r,a)}catch(t){throw this.parseError(t)}return r}async read(t,e,...r){const{ctx:i,log:a}=this.logCtx(r,this.read);a.info("in ADAPTER read with args "+r);const{stub:n}=i,o=s.tableName(t);let l;try{const t=n.createCompositeKey(o,[e+""]);l=await this.readState(t,i)}catch(t){throw this.parseError(t)}return l}async update(t,e,r,...i){const{ctx:a,log:n}=this.logCtx(i,this.update),{stub:o}=a,l=s.tableName(t);try{n.verbose(`updating entry to ${l} table with pk ${e}`);const t=o.createCompositeKey(l,[e+""]);r=await this.putState(t,r,a)}catch(t){throw this.parseError(t)}return r}async delete(t,e,...r){const{ctx:i,log:a,ctxArgs:n}=this.logCtx(r,this.delete),{stub:o}=i,l=s.tableName(t);let c;try{const r=o.createCompositeKey(l,[e+""]);c=await this.read(t,e,...n),a.verbose(`deleting entry with pk ${e} from ${l} table`),await this.deleteState(r,i)}catch(t){throw this.parseError(t)}return c}async deleteState(t,e){const{stub:r,logger:i}=e;i.for(this.deleteState),await r.deleteState(t)}forPrivate(t){const e=[this.putState,this.readState,this.deleteState,this.queryResult,this.queryResultPaginated].map((t=>t.name));return new Proxy(this,{get:(r,i,a)=>e.includes(i)?new Proxy(r[i],{async apply(e,r,a){switch(i){case"putState":{const[e,r,i]=a;return await e.putPrivateData(t,r.toString(),i),i}case"deleteState":{const[e,r]=a;return e.deletePrivateData(t,r)}case"readState":{const[e,r]=a;return e.getPrivateData(t,r)}case"queryResult":{const[e,r]=a;return e.getPrivateDataQueryResult(t,r)}case"queryResultPaginated":{const[e,r,i,s]=a,n=await e.getPrivateDataQueryResult(t,r),o=[];let l=0,c=!s,u=null;for(;;){const t=await n.next();if(t.value&&t.value.value.toString()){const e=t.value.key,r=t.value.value.toString("utf8");if(!c){e===s?.toString()&&(c=!0);continue}if(o.push({Key:e,Record:JSON.parse(r)}),u=e,l++,l>=i)return await n.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:u}}}if(t.done)return await n.close(),{iterator:o,metadata:{fetchedRecordsCount:o.length,bookmark:""}}}}default:throw new y("Unsupported method override "+i)}}}):Reflect.get(r,i,a)})}async putState(t,e,r){let i;const{stub:a,logger:s}=r,n=s.for(this.putState);try{i=Buffer.from(zt.serializer.serialize(e))}catch(e){throw new w(`Failed to serialize record with id ${t}: ${e}`)}return await a.putState(t.toString(),i),n.silly("state stored under id "+t),e}async readState(t,e){let r;const{stub:i,logger:a}=e,s=a.for(this.readState),n=(await i.getState(t)).toString();if(!n)throw new f(`Record with id ${t} not found`);s.silly("Read state for id "+t);try{r=zt.serializer.deserialize(n.toString())}catch(t){throw new w("Failed to parse record: "+t)}return r}async queryResult(t,e,...r){return await t.getQueryResult(JSON.stringify(e))}async queryResultPaginated(t,e,r=250,i,...a){return await t.getQueryResultWithPagination(JSON.stringify(e),r,i?.toString())}mergeModels(t){const e=t=>Object.entries(t).reduce(((t,[e,r])=>(void 0!==r&&(t[e]=r),t)),{});let r=t.pop();for(const i of t)r=Object.assign({},e(r),e(i));return r}decode(t){return zt.textDecoder.decode(t)}async flags(t,e,r,i,...a){const s=t=>{const e=t??this.log.for(this.flags);return"function"!=typeof e.clear&&(e.clear=()=>e),"function"!=typeof e.for&&(e.for=()=>e),e},n=i instanceof gt?i.accumulate({logger:s(i.logger)}):(new gt).accumulate({stub:i.stub,identity:i.clientIdentity,logger:s()}),o=Object.assign({},r,{logger:n.logger});return Object.assign(await super.flags(t,e,o,...a),{stub:i.stub,identity:i.clientIdentity??n.identity,logger:n.logger,correlationId:i.stub.getTxID()})}index(t){return Promise.resolve(void 0)}async resultIterator(t,e,r=!1){const i=[];let a=await e.next();for(;!a.done;){if(a.value&&a.value.value.toString()){let e={};if(t.debug(a.value.value.toString("utf8")),r){e.TxId=a.value.txId,e.Timestamp=a.value.timestamp;try{e.Value=JSON.parse(a.value.value.toString("utf8"))}catch(r){t.error(r),e.Value=a.value.value.toString("utf8")}}else try{e=JSON.parse(a.value.value.toString("utf8"))}catch(r){t.error(r),e=a.value.value.toString("utf8")}i.push(e)}a=await e.next()}return t.debug(`Closing iterator after ${i.length} results`),e.close(),i}async raw(t,...e){const{ctx:r,log:i,ctxArgs:a}=this.logCtx(e,this.raw);"boolean"==typeof a[0]&&a.shift();const{stub:s}=r,{skip:n,limit:o}=t;let l;o||n?(delete t.limit,delete t.skip,i.debug(`Retrieving paginated iterator: limit: ${o}/ skip: ${n}`),l=(await this.queryResultPaginated(s,t,o||250,n?.toString())).iterator):(i.debug("Retrieving iterator"),l=await this.queryResult(s,t)),i.debug("Iterator acquired");const c=await this.resultIterator(i,l);return i.debug("returning {0} results",""+(Array.isArray(c)?c.length:1)),c}Statement(){return new ft(this)}async createAll(t,e,r,...i){if(e.length!==r.length)throw new y("Ids and models must have the same length");const{log:a,ctxArgs:n}=this.logCtx(i,this.createAll),o=s.tableName(t);return a.debug(`Creating ${e.length} entries ${o} table`),Promise.all(e.map(((e,i)=>this.create(t,e,r[i],...n))))}async updateAll(t,e,r,...i){if(e.length!==r.length)throw new y("Ids and models must have the same length");const{log:a,ctxArgs:n}=this.logCtx(i,this.updateAll),o=s.tableName(t);return a.debug(`Updating ${e.length} entries ${o} table`),Promise.all(e.map(((e,i)=>this.update(t,e,r[i],...n))))}prepare(t,...e){const{log:r}=this.logCtx(e,this.prepare),i=s.tableName(t.constructor),a=s.pk(t.constructor),n=s.segregate(t),o=Object.entries(n.model).reduce(((e,[r,i])=>{if(void 0===i)return e;const a=s.columnName(t,r);if(this.isReserved(a))throw new y(`Property name ${a} is reserved`);return e[a]=i,e}),{});return r.silly(`Preparing record for ${i} table with pk ${t[a]}`),{record:o,id:t[a],transient:n.transient}}revert(t,e,r,i,...a){const{log:n}=this.logCtx(a,this.revert),o={};o[s.pk(e)]=r;const l="string"==typeof e?s.build(o,e):new e(o);n.silly(`Rebuilding model ${l.constructor.name} id ${r}`);const c=Object.keys(l).reduce(((e,r)=>(e[r]=t[s.columnName(e,r)],e)),l);return i&&(n.debug("re-adding transient properties: "+Object.keys(i).join(", ")),Object.entries(i).forEach((([t,e])=>{if(t in c&&void 0!==c[t])throw new y(`Transient property ${t} already exists on model ${l.constructor.name}. should be impossible`);c[t]=e}))),c}createPrefix(t,r,i,...a){const{ctxArgs:n}=this.logCtx(a,this.createPrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,i),[t,r,o,...n]}updatePrefix(t,r,i,...a){const{ctxArgs:n}=this.logCtx(a,this.updatePrefix),o={};return o[e.TABLE]=s.tableName(t),Object.assign(o,i),[t,r,o,...n]}createAllPrefix(t,r,i,...a){if(r.length!==i.length)throw new y("Ids and models must have the same length");const s=a.pop(),n=r.map(((r,a)=>{const s={};return s[e.TABLE]=t,Object.assign(s,i[a]),s}));return[t,r,n,s]}updateAllPrefix(t,r,i,...a){if(r.length!==i.length)throw new y("Ids and models must have the same length");const s=a.pop(),n=r.map(((r,a)=>{const s={};return s[e.TABLE]=t,Object.assign(s,i[a]),s}));return[t,r,n,s]}parseError(t,e){return zt.parseError(e||t)}static parseError(t){const e="string"==typeof t?t:t.message;return e.includes(f.name)?new f(t):e.includes(m.name)?new m(t):e.includes(b.name)?new b(t):e.includes(M.name)?new M(t):e.includes(U.name)?new U(t):e.includes(q.name)?new q(t):e.includes(Y.name)?new Y(t):e.includes(H.name)?new H(t):e.includes(K.name)?new K(t):e.includes(V.name)?new V(t):e.includes(Q.name)?new Q(t):e.includes(w.name)?new w(t):new y(t)}static decoration(){super.decoration(),at.flavouredAs(xt).for(G.CREATED_BY).define(x(Nt),st(G.CREATED_BY,{})).apply(),at.flavouredAs(xt).for(G.UPDATED_BY).define(A(Nt),st(G.UPDATED_BY,{})).apply(),at.flavouredAs(xt).for(g.ID).define({decorator:(t,e)=>(r,i)=>nt(o(),v(),st(it.key(g.ID,i),t),x(Rt,t,e))(r,i)}).apply(),at.flavouredAs(xt).for(G.COLUMN).extend(N()).apply(),at.flavouredAs(xt).for(G.TABLE).extend((t=>R()(t))).apply(),at.flavouredAs(xt).for(G.ONE_TO_ONE).define({decorator:(t,e,r,i,a)=>{const s={class:t,cascade:e,populate:r};return i&&(s.joinTable=i),a&&(s.name=a),nt(ot(),W(G.ONE_TO_ONE,s),l([t,String,Number,BigInt]),x(vt,s),S(St,s),C(Ct,s),O(Et,s),st(G.ONE_TO_ONE,s))}}).apply(),at.for(G.ONE_TO_MANY).define({decorator:(t,e,r,i,a)=>{const s={class:t,cascade:e,populate:r};return i&&(s.joinTable=i),a&&(s.name=a),nt(ot(),W(G.ONE_TO_MANY,s),c([t,String,Number]),x(Ot,s),S(X,s),C(kt,s),O(Et,s),st(G.ONE_TO_MANY,s))}}).apply()}}zt.decoration(),D.setCurrent(xt);class Tt extends n{constructor(){super()}deserialize(t){return super.deserialize(t)}serialize(t){return require("json-stringify-deterministic")(require("sort-keys-recursive")(this.preSerialize(t)))}}class Pt extends z{static{this.adapter=new zt}static{this.serializer=new Tt}constructor(t,e){super(t),this.clazz=e,this.initialized=!1,this.repo=$.forModel(e)}async create(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.create);i.info("CONTRACT CREATE, "+a),"string"==typeof e&&(e=this.deserialize(e)),i.info("Creating model: "+JSON.stringify(e));const n=this.getTransientData(t);return i.info("Merging transient data..."),e=s.merge(e,n,this.clazz),this.repo.create(e,...a)}async read(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.read);return i.info(`reading entry with pk ${e} `),this.repo.read(e,...a)}getTransientData(t){const e=t.stub.getTransient();let r={};return e.has(this.repo.tableName)&&(r=JSON.parse(e.get(this.repo.tableName)?.toString("utf8"))),r}async update(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.update);"string"==typeof e&&(e=this.deserialize(e)),i.info("Updating model: "+JSON.stringify(e));const n=this.getTransientData(t);return i.info("Merging transient data..."),e=s.merge(e,n,this.clazz),this.repo.update(e,...a)}async delete(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.delete);return i.info(`deleting entry with pk ${e} `),this.repo.delete(e+"",...a)}async deleteAll(t,e,...r){const{ctxArgs:i}=await this.logCtx([...r,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.deleteAll(e,...i)}async readAll(t,e,...r){const{ctxArgs:i}=await this.logCtx([...r,t],this.readAll);return"string"==typeof e&&(e=JSON.parse(e)),this.repo.readAll(e,...i)}async updateAll(t,e,...r){const{log:i,ctxArgs:a}=await this.logCtx([...r,t],this.updateAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),i.info(`updating ${e.length} entries to the table`),this.repo.updateAll(e,...a)}async raw(t,e,r,...i){const{ctxArgs:a}=await this.logCtx([...i,t],this.raw);return"string"==typeof e&&(e=JSON.parse(e)),Pt.adapter.raw(e,r,...a)}serialize(t){return Pt.serializer.serialize(t)}deserialize(t){return Pt.serializer.deserialize(t)}async init(t){const{log:e}=await this.logCtx([t],this.init);e.info("Running contract initialization..."),this.initialized=!0,e.info("Contract initialization completed.")}async healthcheck(t){const{log:e}=await this.logCtx([t],this.healthcheck);return e.info(`Running Healthcheck: ${this.initialized}...`),{healthcheck:this.initialized}}async createAll(t,e,...r){const{log:i}=await this.logCtx([...r,t],this.createAll);return"string"==typeof e&&(e=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)))),i.info(`adding ${e.length} entries to the table`),this.repo.createAll(e,t,...r)}async logCtx(t,e){return Pt.logCtx.bind(this)(t,e)}static async logCtx(t,e){if(1>t.length)throw new y("No context provided");const r=t.pop();if(r instanceof gt)return{ctx:r,log:r.logger.clear().for(this).for(e),ctxArgs:[...t,r]};if(!(r instanceof T))throw new y("No valid context provided");const i={correlationId:r.stub.getTxID()},a=await Pt.adapter.context((()=>{if("string"==typeof e)return e;switch(e.name){case d.CREATE:case d.READ:case d.UPDATE:case d.DELETE:case h.CREATE_ALL:case h.READ_ALL:case h.UPDATE_ALL:case h.DELETE_ALL:}return e.name})(),i,this.clazz,r),s=this?a.logger.for(this).for(e):a.logger.clear().for(this).for(e);return{ctx:a,log:s,ctxArgs:[...t,a]}}}class It extends Pt{constructor(t,e){super(t,e)}async create(t,e){const{log:r}=await this.logCtx([t],this.create);r.info("Creating model: "+e);const i=this.deserialize(e);return r.info("Model deserialized: "+JSON.stringify(i)),this.serialize(await super.create(t,i))}async read(t,e){const{log:r}=await this.logCtx([t],this.read);return r.info("Reading id: "+e),this.serialize(await super.read(t,e))}async update(t,e){const{log:r}=await this.logCtx([t],this.update);return r.info("Updating model: "+e),this.serialize(await super.update(t,e))}async delete(t,e){const{log:r}=await this.logCtx([t],this.delete);return r.info("Deleting id: "+e),this.serialize(await super.delete(t,e))}async deleteAll(t,e){const r=JSON.parse(e),{log:i}=await this.logCtx([t],this.deleteAll);return i.info(`deleting ${r.length} entries from the table`),JSON.stringify((await super.deleteAll(t,r)).map((t=>this.serialize(t))))}async readAll(t,e){const r=JSON.parse(e),{log:i}=await this.logCtx([t],this.readAll);return i.info(`reading ${r.length} entries from the table`),JSON.stringify((await super.readAll(t,r)).map((t=>this.serialize(t))))}async updateAll(t,e){const{log:r}=await this.logCtx([t],this.updateAll),i=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return r.info(`Updating ${i.length} entries to the table`),JSON.stringify((await super.updateAll(t,i)).map((t=>this.serialize(t))))}async raw(t,e,r){const{ctx:i}=await this.logCtx([t],this.raw),a=JSON.parse(e);return super.raw(i,a,r)}async init(t){await super.init(t)}async healthcheck(t){return JSON.stringify(await super.healthcheck(t))}async createAll(t,e){const{log:r}=await this.logCtx([t],this.createAll),i=JSON.parse(e).map((t=>this.deserialize(t))).map((t=>new this.clazz(t)));return r.info(`Adding ${i.length} entries to the table`),JSON.stringify((await super.createAll(t,i)).map((t=>this.serialize(t))))}}lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],It.prototype,"create",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],It.prototype,"read",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],It.prototype,"update",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],It.prototype,"delete",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],It.prototype,"deleteAll",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],It.prototype,"readAll",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],It.prototype,"updateAll",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T,String,Boolean]),ct("design:returntype",Promise)],It.prototype,"raw",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],It.prototype,"init",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],It.prototype,"healthcheck",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],It.prototype,"createAll",null);class Dt extends y{constructor(t){super(t,Dt.name)}}class $t extends y{constructor(t){super(t,$t.name)}}class Ft extends y{constructor(t){super(t,Ft.name)}}class jt extends k{constructor(t){super(jt.name,t,409)}}function Bt(t,e){const r=t+e;if(t!==r-e||e!==r-t)throw new Dt(`Addition overflow: ${t} + ${e}`);return r}function _t(t,e){const r=t-e;if(t!==r+e||e!==t-r)throw new Dt(`Subtraction overflow: ${t} - ${e}`);return r}let Lt=class extends rt{constructor(t){super(t)}};lt([Z({type:"String"}),ct("design:type",String)],Lt.prototype,"name",void 0),lt([tt(),o(),ct("design:type",String)],Lt.prototype,"owner",void 0),lt([tt(),o(),ct("design:type",String)],Lt.prototype,"symbol",void 0),lt([tt(),o(),ct("design:type",Number)],Lt.prototype,"decimals",void 0),Lt=lt([et("erc20_tokens"),u(),ct("design:paramtypes",[Object])],Lt);let Jt=class extends rt{constructor(t){super(t)}};lt([Z({type:"String"}),ct("design:type",String)],Jt.prototype,"id",void 0),lt([tt(),o(),ct("design:type",String)],Jt.prototype,"token",void 0),lt([tt(),o(),ct("design:type",Number)],Jt.prototype,"balance",void 0),lt([tt(),ct("design:type",String)],Jt.prototype,"captive",void 0),Jt=lt([et("erc20_wallets"),u(),ct("design:paramtypes",[Object])],Jt);let qt=class extends rt{constructor(t){super(t)}};function Mt(){return function(t,e,r){const i=r.value;return r.value=async function(...t){const r=t[0],a=r.clientIdentity.getID(),s=await this.tokenRepository.select(),n=await s.execute(r);if(0==n.length)throw new f("No tokens avaialble");if(n.length>1)throw new f("To many token available : "+n.length);if(n[0].owner!=a)throw new K(`User not authorized to run ${e} on the token`);return await i.apply(this,t)},r}}var Ut;lt([Z({type:"String"}),tt(),o(),ct("design:type",String)],qt.prototype,"owner",void 0),lt([tt(),o(),ct("design:type",String)],qt.prototype,"spender",void 0),lt([tt(),o(),ct("design:type",Number)],qt.prototype,"value",void 0),qt=lt([et("erc20_allowances"),u(),ct("design:paramtypes",[Object])],qt),(t=>{t.TRANSFER="Transfer",t.APPROVAL="Approval"})(Ut||(Ut={}));class Yt extends Pt{constructor(t){super(t,Jt),Yt.adapter=Yt.adapter||new zt,this.walletRepository=wt.forModel(Jt,Yt.adapter.alias),this.tokenRepository=wt.forModel(Lt,Yt.adapter.alias),this.allowanceRepository=wt.forModel(qt,Yt.adapter.alias)}async TokenName(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].name}async Symbol(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].symbol}async Decimals(t){await this.CheckInitialized(t);const e=await this.tokenRepository.select();return(await e.execute(t))[0].decimals}async TotalSupply(t){await this.CheckInitialized(t);const e=await this.walletRepository.select(),r=await e.execute(t);if(0==r.length)throw new f(`The token ${this.getName()} does not exist`);let i=0;return r.forEach((t=>{i+=t.balance})),i}async BalanceOf(t,e){return await this.CheckInitialized(t),(await this.walletRepository.read(e,t)).balance}async Transfer(t,e,r){await this.CheckInitialized(t);const{ctx:i}=await this.logCtx([t],this.Transfer),a=i.identity.getID();if(!await this._transfer(a,e,r,i))throw new y("Failed to transfer");return!0}async TransferFrom(t,e,r,i){await this.CheckInitialized(t);const{ctx:a}=await this.logCtx([t],this.BurnFrom),s=a.identity.getID(),n=await this._getAllowance(e,s,a);if(!n||0>n.value)throw new Ft(`spender ${s} has no allowance from ${e}`);const o=n.value;if(i>o)throw new $t("The spender does not have enough allowance to spend.");const l=_t(o,i),c=Object.assign({},n,{value:l});if(await this.allowanceRepository.update(c,a),!await this._transfer(e,r,i,a))throw new y("Failed to transfer");return!0}async _transfer(t,e,r,i){const a=i.logger;if(t===e)throw new K("cannot transfer to and from same client account");if(0>r)throw new $t("transfer amount cannot be negative");const s=await this.walletRepository.read(t,i),n=s.balance;if(r>n)throw new $t(`client account ${t} has insufficient funds.`);let o,l=!1;try{o=await this.walletRepository.read(e,i)}catch(t){if(!(t instanceof k))throw new y(t);if(404!==t.code)throw new y(t.message);o=new Jt({id:e,balance:0,token:await this.TokenName(i)}),l=!0}const c=o.balance,u=_t(n,r),p=Bt(c,r),d=Object.assign({},s,{balance:u});await this.walletRepository.update(d,i);const h=Object.assign({},o,{balance:p});l?await this.walletRepository.create(h,i):await this.walletRepository.update(h,i);const g={from:t,to:e,value:r};return this.repo.refresh(Lt,Ut.TRANSFER,"",g,i).catch((t=>a.error("Failed to notify transfer: "+t))),!0}async Approve(t,e,r){await this.CheckInitialized(t);const{ctx:i,ctxArgs:a}=await this.logCtx([t],this.Approve),s=i.identity.getID();let n=await this._getAllowance(s,e,i);if((await this.walletRepository.read(s,...a)).balance<r)throw new $t(`client account ${s} has insufficient funds.`);n?(n.value=r,await this.allowanceRepository.update(n,...a)):(n=new qt({owner:s,spender:e,value:r}),await this.allowanceRepository.create(n,...a));const o={owner:s,spender:e,value:r};return this.repo.refresh(Lt,Ut.APPROVAL,"",o,i),!0}async Allowance(t,e,r){await this.CheckInitialized(t);const{ctx:i}=await this.logCtx([t],this.Allowance),a=await this._getAllowance(e,r,i);if(!a)throw new Ft(`spender ${r} has no allowance from ${e}`);return a.value}async _getAllowance(t,e,r){const i=F.and(F.attribute("owner").eq(t),F.attribute("spender").eq(e)),a=await this.allowanceRepository.select().where(i).execute(r);return a?.[0]}async Initialize(t,e){const{ctx:r}=await this.logCtx([t],this.Initialize);if((await this.tokenRepository.select().execute(r)).length>0)throw new K("contract options are already set, client is not authorized to change them");return e.owner=r.identity.getID(),await this.tokenRepository.create(e,r),!0}async CheckInitialized(t){const{ctx:e}=await this.logCtx([t],this.CheckInitialized);if(0==(await this.tokenRepository.select().execute(e)).length)throw new jt("contract options need to be set before calling any function, call Initialize() to initialize contract")}async Mint(t,e){await this.CheckInitialized(t);const{ctx:r}=await this.logCtx([t],this.Mint),i=r.identity.getID();if(0>=e)throw new E("mint amount must be a positive integer");let a;try{a=await this.walletRepository.read(i,r);const t=Bt(a.balance,e),s=Object.assign({},a,{balance:t});await this.walletRepository.update(s,r)}catch(a){if(!(a instanceof k))throw new y(a);if(404!==a.code)throw new y(a.message);{const a=new Jt({id:i,balance:e,token:await this.TokenName(t)});await this.walletRepository.create(a,r)}}const s={from:"0x0",to:i,value:e};this.repo.ObserverHandler().updateObservers(Lt,Ut.TRANSFER,"",s,r)}async Burn(t,e){await this.CheckInitialized(t);const{log:r,ctx:i}=await this.logCtx([t],this.Burn),a=i.identity.getID(),s=await this.walletRepository.read(a,i),n=s.balance;if(e>n)throw new $t("Minter has insufficient funds.");const o=_t(n,e),l=Object.assign({},s,{balance:o});await this.walletRepository.update(l,i),r.info(e+" tokens were burned");const c={from:a,to:"0x0",value:e};this.repo.ObserverHandler().updateObservers(Lt,Ut.TRANSFER,"",c,i)}async BurnFrom(t,e,r){await this.CheckInitialized(t);const{log:i,ctx:a}=await this.logCtx([t],this.BurnFrom),s=await this.walletRepository.read(e,a),n=s.balance;if(r>n)throw new $t(e+" has insufficient funds.");const o=_t(n,r),l=Object.assign({},s,{balance:o});await this.walletRepository.update(l,a),i.info(`${r} tokens were burned from ${e}`);const c={from:e,to:"0x0",value:r};this.repo.ObserverHandler().updateObservers(Lt,Ut.TRANSFER,"",c,a)}async ClientAccountBalance(t){await this.CheckInitialized(t);const e=t.clientIdentity.getID(),r=await this.walletRepository.read(e,t);if(!r)throw new $t(`The account ${e} does not exist`);return r.balance}async ClientAccountID(t){await this.CheckInitialized(t);const{ctx:e}=await this.logCtx([t],this.ClientAccountID);return e.identity.getID()}}lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],Yt.prototype,"TokenName",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],Yt.prototype,"Symbol",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],Yt.prototype,"Decimals",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],Yt.prototype,"TotalSupply",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T,String]),ct("design:returntype",Promise)],Yt.prototype,"BalanceOf",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String,Number]),ct("design:returntype",Promise)],Yt.prototype,"Transfer",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String,String,Number]),ct("design:returntype",Promise)],Yt.prototype,"TransferFrom",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,String,Number]),ct("design:returntype",Promise)],Yt.prototype,"Approve",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T,String,String]),ct("design:returntype",Promise)],Yt.prototype,"Allowance",null),lt([P(),ct("design:type",Function),ct("design:paramtypes",[T,Lt]),ct("design:returntype",Promise)],Yt.prototype,"Initialize",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],Yt.prototype,"CheckInitialized",null),lt([Mt(),P(),ct("design:type",Function),ct("design:paramtypes",[T,Number]),ct("design:returntype",Promise)],Yt.prototype,"Mint",null),lt([Mt(),P(),ct("design:type",Function),ct("design:paramtypes",[T,Number]),ct("design:returntype",Promise)],Yt.prototype,"Burn",null),lt([Mt(),P(),ct("design:type",Function),ct("design:paramtypes",[T,String,Number]),ct("design:returntype",Promise)],Yt.prototype,"BurnFrom",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],Yt.prototype,"ClientAccountBalance",null),lt([P(!1),ct("design:type",Function),ct("design:paramtypes",[T]),ct("design:returntype",Promise)],Yt.prototype,"ClientAccountID",null);const Ht=[Yt];class Kt extends pt{constructor(t,e,r){super(t,e),this.logger=r?r.logging.getLogger(t):new pt(t,e)}log(t,e,r){if(dt[this.config("level")]<dt[t])return;let i;switch(t){case ht.info:i=this.logger.info;break;case ht.verbose:i=this.logger.verbose;break;case ht.debug:i=this.logger.debug;break;case ht.error:i=this.logger.error;break;case ht.silly:i=this.logger.silly;break;default:throw new y("Invalid log level")}i.call(this.logger,this.createLog(t,e,r))}}ut.setFactory(((t,e,r)=>new Kt(t||Kt.name,e||{},r)));const Vt="##VERSION##",Qt="##PACKAGE##";it.registerLibrary(Qt,Vt);export{Kt as ContractLogger,zt as FabricContractAdapter,gt as FabricContractContext,wt as FabricContractRepository,yt as FabricContractRepositoryObservableHandler,Pt as FabricCrudContract,ft as FabricStatement,Qt as PACKAGE_NAME,It as SerializedCrudContract,Vt as VERSION,Ht as contracts,Nt as createdByOnFabricCreateUpdate,Rt as pkFabricOnCreate};
|
|
2
2
|
//# sourceMappingURL=for-fabric.js.map
|
package/dist/for-fabric.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/model/Sequence.ts","../src/contracts/FabricContractSequence.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/contracts/logging.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","SequenceModel","BaseModel","seq","__decorate","prototype","required","index","SEQUENCE","model","FabricContractSequence","Sequence","options","repo","forModel","alias","current","READ","context","startWith","sequence","read","parse","e","NotFoundError","InternalError","increment","count","incrementBy","next","toIncrementBy","BigInt","update","create","argz","contextArgs","undefined","range","i","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","serialize","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","data","propertyValue","innerRepo","repositoryFromTypeMetadata","cacheModelForPopulate","class","created","oneToOneOnUpdate","cascade","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","fetchPopulateValues","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequenceName","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","config","for","info","composedKey","createCompositeKey","String","putState","parseError","readState","verbose","ctxArgs","deleteState","logger","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","silly","getState","getQueryResult","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","ensureLogger","base","clear","fabricCtx","accumulate","clientIdentity","baseFlags","correlationId","getTxID","models","Promise","resolve","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","error","shift","Statement","createAll","tableLabel","all","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","msg","message","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","groupsort","attr","readonly","COLUMN","extend","FabricProperty","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","docsOnly","init","healthcheck","method","bind","overrides","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","parsedInput","Transaction","Ctx","Boolean","OverflowError","BalanceError","AllowanceError","NotInitializedError","BaseError","a","b","sub","ERC20Token","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","getName","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","ContractLogger","MiniLogger","conf","logging","getLogger","level","stack","NumericLogLevels","LogLevel","call","createLog","Logging","setFactory","object","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"m7CAkCM,MAAOA,WAA8BC,EAKzC,WAAAC,GACEC,OACD,CAOD,QAAIC,GACF,OAAOC,KAAKC,IAAI,OACjB,CAOD,aAAaC,GACX,OAAOF,KAAKD,KAAKI,kBAClB,CAOD,YAAIC,GACF,OAAOJ,KAAKC,IAAI,WACjB,CAEQ,QAAAI,GACP,MAAO,cAAaL,KAAKD,KAAO,aAAe,eAChD,EC1BG,MAAOO,WAAkDC,EAM7D,WAAAV,CACUW,EAIF,CACJC,EAAcC,OACdD,EAAcE,OACdF,EAAcG,OACdC,EAAsBC,WACtBD,EAAsBE,WACtBF,EAAsBG,aAGxBlB,QAbQE,KAAeQ,gBAAfA,CAcT,CAeQ,qBAAMS,CACbC,EACAC,EACAC,KACGC,GAEH,MAAMC,IAAEA,EAAGC,IAAEA,GAAQC,EAAQC,OAC3BJ,EACArB,KAAKiB,kBAEDlB,KAAEA,GAASwB,GACVG,EAAOC,GAAWN,EACnBO,EAAyB,iBAAVV,EAAqBA,EAAQA,EAAMW,KACxD,IAA6C,IAAzC7B,KAAKQ,gBAAgBsB,QAAQX,GAAe,CAC9CG,EAAIS,MAAM,YAAYZ,WACtB,MAAMa,ICpFVJ,EACAT,EACAO,KAEA,MAAMO,EAAS,CAACL,EAAOT,GAEvB,OADIO,GAAOO,EAAOC,KAAKR,GAChBO,EAAOE,KAAK,IACrB,ED6EwBC,CAAwBR,EAAOT,EAAOO,GACxD3B,EAAKsC,SAASL,EAAWM,OAAOC,KAAKC,KAAKC,UAAU,CAAErB,GAAIA,KAC3D,MACCrB,EAAKsC,SAASlB,EAAOmB,OAAOC,KAAKC,KAAKC,UAAUd,IAEnD,EEzBG,MAAOe,WAAkDC,EAI7D,WAAA9C,CACE+C,EACA1B,EACU2B,GAEV/C,MAAM8C,EAAS1B,GAFLlB,KAAa6C,cAAbA,CAGX,CAOQ,eAAAtC,GACP,OAAO,IAAID,EACZ,CAYQ,qBAAMW,CACbW,EACAT,EACAC,KACGC,GAEH,IAAKrB,KAAK6C,gBAAwD,IAAvC7C,KAAK6C,cAAcf,QAAQX,GACpD,aAAarB,MAAMmB,gBAAgBW,EAAOT,EAAOC,KAAOC,EAC3D,EC5EG,MAAOyB,WAA4CC,EAKvD,WAAAlD,CAAY+C,GACV9C,MAAM8C,EACP,CAEQ,SAAMI,CAAOC,KAAyB5B,GAC7C,MAAME,IAAEA,GAAQvB,KAAKyB,OAAOJ,EAAMrB,KAAKgD,KAEjCE,QAAuBlD,KAAK4C,QAAQI,IAAIC,GAAU,EAAM1B,GAExD4B,EAASC,EAAMC,GAAGrD,KAAKsD,cACvBC,EAAOC,GAASvD,IACpBD,KAAKsD,aACLE,GAASC,IAAIC,EAAOC,GAAIR,KACvBI,KAEH,OAAKvD,KAAK4D,eAEHV,EADEA,EAAQW,KAAKC,GAAM9D,KAAK+D,cAAcD,EAAGX,EAAQI,EAAMhC,IAEjE,CAEQ,KAAAyC,GACP,MAAMC,EAA2B,CAAA,EACjCA,EAAUC,EAAYC,OAAS,GAC/BF,EAAUC,EAAYC,OAASf,EAAMgB,UAAUpE,KAAKsD,cACpD,MAAMe,EAAoB,CAAEC,SAAUL,GAGtC,GAFIjE,KAAK4D,iBAAgBS,EAAME,OAASvE,KAAK4D,gBAEzC5D,KAAKwE,eAAgB,CACvB,MAAMC,EAA2BzE,KAAK0E,eACpCC,EAAUC,IACR5E,KAAKwE,eACLG,EAAUE,UAAaX,EAAYC,OAAkBW,GACnDT,EAAMC,SAASJ,EAAYC,UAG/BG,SACIS,EAAeC,OAAOC,KAAKR,GACjC,GAC0B,IAAxBM,EAAaG,SACqD,IAAlEF,OAAOG,OAAOC,GAAsBtD,QAAQiD,EAAa,IAEzD,OAAQA,EAAa,IACnB,KAAKK,EAAqBC,IACxBZ,EAAUW,EAAqBC,KAAO,IACjCL,OAAOG,OACRV,EAAUW,EAAqBC,MAC/BC,QAAO,CAACC,EAAwBC,KAChC,MAAMP,EAAOD,OAAOC,KAAKO,GACzB,GAAoB,IAAhBP,EAAKC,OACP,MAAUO,MACR,kDAEJ,MAAMC,EAAIT,EAAK,GAIf,OAHIS,IAAMN,EAAqBC,IAC7BE,EAAMrD,QAASsD,EAAIE,IAChBH,EAAMrD,KAAKsD,GACTD,CAAK,GACX,KAELlB,EAAMC,SAAWG,EACjB,MACF,KAAKW,EAAqBO,GAAI,CAC5B,MAAMC,EAAsB,CAAA,EAC5BA,EAAER,EAAqBC,KAAO,CAC5BZ,KACGO,OAAOa,QAAQxB,EAAMC,UAAUT,KAAI,EAAEJ,EAAK+B,MAC3C,MAAMM,EAA2B,CAAA,EAEjC,OADAA,EAAOrC,GAAO+B,EACPM,CAAM,KAGjBzB,EAAMC,SAAWsB,EACjB,KACD,CACD,QACE,MAAUH,MAAM,kCAGpBT,OAAOa,QAAQpB,GAAWsB,SAAQ,EAAEtC,EAAK+B,MACnCnB,EAAMC,SAASb,GAInBY,EAAMC,SAASb,GAAO+B,CAAG,GAG9B,CAED,GAAIxF,KAAKgG,gBAAiB,CACxB3B,EAAM4B,KAAO5B,EAAM4B,MAAQ,GAC3B5B,EAAMC,SAAWD,EAAMC,UAAa,CAAA,EACpC,MAAOA,EAAU4B,GAASlG,KAAKgG,gBAIzBG,EAAW,CAAA,EACjBA,EAAI7B,GAAY4B,EACf7B,EAAM4B,KAAe/D,KAAKiE,GACtB9B,EAAMC,SAASA,KAClBD,EAAMC,SAASA,GAAY,GAC1BD,EAAMC,SAASA,GAA4B8B,EAAgBC,QAC1D,KAEL,CAMD,OAJIrG,KAAKsG,gBAAejC,EAAMkC,MAAQvG,KAAKsG,eAEvCtG,KAAKwG,iBAAgBnC,EAAMoC,KAAOzG,KAAKwG,gBAEpCnC,CACR,ECpJI,IAAMqC,GAAN,cAA4BC,EAejC,WAAA9G,CAAY+G,GACV9G,MAAM8G,EACP,GAZDC,GAAA,CADCxD,8BACWqD,GAAAI,UAAA,UAAA,GAQZD,GAAA,CAFCE,IACAC,8BACyBN,GAAAI,UAAA,eAAA,GAbfJ,GAAaG,GAAA,CAFzBjF,EAAMsC,EAAY+C,UAClBC,sCACYR,ICeP,MAAOS,WAA+BC,EAG1C,WAAAvH,CACEwH,EACAzE,GAEA9C,MAAMuH,EAASzE,GACf5C,KAAKsH,KAAO3E,EAAW4E,SAASb,GAAe9D,EAAQ4E,MACxD,CAMD,aAAMC,IACDpG,GAEH,MAMME,SANoB3B,EAAQyB,KAChCZ,EAAciH,KACdhB,GACArF,EACArB,KAAK4C,UAEiB+E,SAClB9F,KAAEA,EAAI+F,UAAEA,GAAc5H,KAAKqH,QACjC,IACE,MAAMQ,QAAgC7H,KAAKsH,KAAKQ,KAAKjG,EAAgBN,GACrE,OAAOvB,KAAK+H,MAAMF,EAASJ,QAC5B,CAAC,MAAOO,GACP,GAAIA,aAAaC,EAAe,CAC9B,QAAyB,IAAdL,EACT,MAAM,IAAIM,EACR,6DAEJ,IACE,OAAOlI,KAAK+H,MAAMH,EACnB,CAAC,MAAOI,GACP,MAAM,IAAIE,EACR,8CAA8CN,MAAcI,IAE/D,CACF,CACD,MAAM,IAAIE,EACR,iDAAiDrG,MAASmG,IAE7D,CACF,CAUO,eAAMG,CACZV,EACAW,EACA7G,GAEA,MAAMgC,KAAEA,EAAI8E,YAAEA,EAAWxG,KAAEA,GAAS7B,KAAKqH,QACzC,IAAIiB,EACJ,MAAMC,EAAgBH,GAASC,EAC/B,GAAIE,EAAgBF,GAAgB,EAClC,MAAM,IAAIH,EACR,iEAAiEG,GAErE,OAAQ9E,GACN,IAAK,SACH+E,EAAQtI,KAAK+H,MAAMN,GAAsBc,EACzC,MACF,IAAK,SACHD,EAAQtI,KAAK+H,MAAMN,GAAsBe,OAAOD,GAChD,MACF,QACE,MAAM,IAAIL,EAAc,uBAE5B,IAAItB,EACJ,IACEA,QAAY5G,KAAKsH,KAAKmB,OACpB,IAAI/B,GAAc,CAAEtF,GAAIS,EAAM4F,QAASa,IACvC/G,EAEH,CAAC,MAAOyG,GACP,KAAMA,aAAaC,GAAgB,MAAMD,EACzCpB,QAAY5G,KAAKsH,KAAKoB,OACpB,IAAIhC,GAAc,CAAEtF,GAAIS,EAAM4F,QAASa,IACvC/G,EAEH,CAED,OAAOqF,EAAIa,OACZ,CAQD,UAAMa,IACDK,GAEH,MAAMC,QAAoBhJ,EAAQyB,KAChCZ,EAAcE,OACd+F,GACAiC,EACA3I,KAAK4C,UAED+E,QAAEA,EAAOtG,KAAEA,GAASuH,EACpBnB,QAAgBzH,KAAKyH,WAAWpG,GACtC,OAAOrB,KAAKmI,UAAUV,OAASoB,EAAWlB,EAC3C,CAUD,WAAMmB,CACJV,KACGO,GAEH,MAAMC,QAAoBhJ,EAAQyB,KAChCZ,EAAcE,OACd+F,GACAiC,EACA3I,KAAK4C,UAED+E,QAAEA,EAAOtG,KAAEA,GAASuH,EACpBnB,QAAiBzH,KAAKyH,WAAWpG,GACjCgH,EAAcrI,KAAK+H,MACvB/H,KAAKqH,QAAQgB,aAETC,QAAuCtI,KAAKmI,UAChDV,EACCzH,KAAK+H,MAAMK,GAAoBC,EAChCV,GAEImB,EAAsC,GAC5C,IAAK,IAAIC,EAAY,EAAQX,GAALW,EAAYA,IAClCD,EAAM5G,KAAKuF,EAAUY,EAAerI,KAAK+H,MAAMgB,IAEjD,GAAID,EAAMA,EAAM5D,OAAS,KAAOoD,GAA8B,WAAtBtI,KAAKqH,QAAQ9D,KACnD,MAAM,IAAI2E,EAAc,2BAC1B,OAAOY,CACR,ECtKH,IAAYE,GAeAC,GAfZ,CAAYD,IAEVA,EAAA,QAAA,UACAA,EAAA,OAAA,SAEAA,EAAA,OAAA,UACAA,EAAA,QAAA,UACD,EAPD,CAAYA,KAAAA,GAOX,CAAA,IAQD,CAAYC,IAEVA,EAAA,KAAA,OACD,EAHD,CAAYA,KAAAA,GAGX,CAAA,IAQM,MAAMC,GAAgB,aC/BvB,MAAOC,WAEHC,EACR,WAAAvJ,GACEC,OACD,CAGQ,WAAAuJ,CAAYC,EAAalF,GAyBhC,OAxBwB5B,KAAKuF,MAAMuB,EAyBpC,CAEQ,SAAAC,CAAUrC,GAKjB,OAHkBsC,QAAQ,+BAGnB/G,CADmB+G,QAAQ,sBACjBC,CAAkBzJ,KAAK0J,aAAaxC,IACtD,CAEQ,YAAAwC,CAAaxC,GAEpB,OADyClC,OAAO2E,OAAO,CAAE,EAAEzC,EAE5D,ECgBI0C,eAAeC,GAMpBlC,EACAmC,EACArG,EACAyD,GAEA,MAAM6C,EAAqB7C,EAAMzD,GACjC,IAAKsG,EAAe,OAEpB,GAA6B,iBAAlBA,EAA4B,CACrC,MAAMC,EAAYC,EAChB/C,EACAzD,EACAzD,KAAK4C,QAAQ4E,OAETM,QAAakC,EAAUlC,KAAKiC,EAAepC,GAGjD,aAFMuC,EAAsBvC,EAAST,EAAOzD,EAAKsG,EAAejC,QAC/DZ,EAAczD,GAAOsG,EAEvB,CAEDD,EAAKK,MACmB,iBAAfL,EAAKK,MAAqBL,EAAKK,MAASL,EAAKK,QAAgBtI,KAEtE,MAAMhC,EAAcuD,EAAMnD,IAAI6J,EAAKK,OACnC,IAAKtK,EACH,MAAM,IAAIqI,EAAc,wBAAwB4B,EAAKK,OACvD,MAAM7C,EAAkB3E,EAAW4E,SAAS1H,EAAaG,KAAK4C,QAAQ4E,OAChE4C,QAAgB9C,EAAKoB,OAAOqB,EAAepC,GAC3CtE,EAAKD,EAAMC,GAAG+G,SACdF,EAAsBvC,EAAST,EAAOzD,EAAK2G,EAAQ/G,GAAK+G,GAC7DlD,EAAczD,GAAO2G,EAAQ/G,EAChC,CAiDOuG,eAAeS,GAMpB1C,EACAmC,EACArG,EACAyD,GAEA,MAAM6C,EAAqB7C,EAAMzD,GACjC,IAAKsG,EAAe,OACpB,GAAID,EAAKQ,QAAQ7B,SAAW8B,EAAQC,QAAS,OAE7C,GAA6B,iBAAlBT,EAA4B,CACrC,MAAMC,EAAYC,EAChB/C,EACAzD,EACAzD,KAAK4C,QAAQ4E,OAETM,QAAakC,EAAUlC,KAAKiC,EAAepC,GAGjD,aAFMuC,EAAsBvC,EAAST,EAAOzD,EAAKsG,EAAejC,QAC/DZ,EAAczD,GAAOsG,EAEvB,CAED,MAAMU,QAAqBC,EACzBxD,EAAMzD,GACNkE,EACA3H,KAAK4C,QAAQ4E,OAETnE,EAAKD,EAAMC,GAAGoH,SACdP,EACJvC,EACAT,EACAzD,EACAgH,EAAQpH,GACRoH,GAEFvD,EAAMzD,GAAOgH,EAAQpH,EACvB,CA2COuG,eAAee,GAMpBhD,EACAmC,EACArG,EACAyD,GAEA,MAAM6C,EAAqB7C,EAAMzD,GACjC,IAAKsG,EAAe,OACpB,GAAID,EAAKQ,QAAQ7B,SAAW8B,EAAQC,QAAS,OAC7C,MAAMR,EAAqBC,EACzB/C,EACAzD,EACAzD,KAAK4C,QAAQ4E,OAEf,IAAIoD,EAIFA,EAHIb,aAAyB3G,QAGb4G,EAAUa,OACvB3D,EAAMzD,GAAWL,EAAMC,GAAG2G,EAAUG,QACrCxC,SAJcqC,EAAUa,OAAO3D,EAAMzD,GAAgBkE,SAMnDuC,EACJvC,EACAT,EACAzD,EACAmH,EAAQxH,EAAMC,GAAG2G,EAAUG,QAC3BS,EAEJ,CAwDOhB,eAAekB,GAMpBnD,EACAmC,EACArG,EACAyD,GAEA,MAAM6D,EAAsB7D,EAAMzD,GAClC,IAAKsH,IAAmBA,EAAe7F,OAAQ,OAC/C,MAAM8F,SAAmBD,EAAe,GACxC,IAAKA,EAAeE,OAAOC,UAAqBA,IAASF,IACvD,MAAM,IAAI9C,EACR,+CAA+CzE,+BAEnD,MAAM0H,EAAe,IAAIC,IAAI,IAAIL,IACjC,GAAkB,WAAdC,EAAwB,CAC1B,MAAM1D,EAAO2C,EAA2B/C,EAAOzD,EAAKzD,KAAK4C,QAAQ4E,OACjE,IAAK,MAAMpG,KAAM+J,EAAc,CAC7B,MAAMrD,QAAaR,EAAKQ,KAAK1G,EAAIuG,SAC3BuC,EAAsBvC,EAAST,EAAOzD,EAAKrC,EAAI0G,EACtD,CAED,YADCZ,EAAczD,GAAO,IAAI0H,GAE3B,CAED,MAAME,EAASjI,EAAMC,GAAG0H,EAAe,IAEjCjF,EAAsB,IAAIsF,IAEhC,IAAK,MAAME,KAAKP,EAAgB,CAC9B,MAAMQ,QAAeb,EAAeY,EAAG3D,EAAS3H,KAAK4C,QAAQ4E,aACvD0C,EAAsBvC,EAAST,EAAOzD,EAAK8H,EAAOF,GAASE,GACjEzF,EAAO0F,IAAID,EAAOF,GACnB,CAEAnE,EAAczD,GAAO,IAAIqC,EAC5B,CAkDO8D,eAAe6B,GAMpB9D,EACAmC,EACArG,EACAyD,GAEA,GAAI4C,EAAKQ,QAAQO,SAAWN,EAAQC,QAAS,OAC7C,MAAMrF,EAAS+B,EAAMzD,GACrB,IAAK0B,IAAWA,EAAOD,OAAQ,OAC/B,MAAM8F,SAAmB7F,EAAO,GAEhC,IADuBA,EAAO8F,OAAOC,UAAqBA,IAASF,IAEjE,MAAM,IAAI9C,EACR,+CAA+CzE,+BAEnD,MAAMiI,EAA+B,WAAdV,EACjB1D,EAAOoE,EACT/I,EAAW4E,SAASpC,EAAO,GAAInF,KAAK4C,QAAQ4E,OAC5CyC,EAA2B/C,EAAOzD,EAAKzD,KAAK4C,QAAQ4E,OAElD2D,EAAe,IAAIC,IAAI,IACvBM,EACAvG,EAAOtB,KACJ8H,GAA2BA,EAAEvI,EAAMC,GAAGrD,KAAKmK,UAE9ChF,IAGN,IAAK,MAAM/D,KAAM+J,EAAahG,SAAU,CACtC,MAAMyF,QAAgBtD,EAAKuD,OAAOzJ,EAAIuG,SAChCuC,EAAsBvC,EAAST,EAAOzD,EAAKrC,EAAIwJ,EACtD,CACA1D,EAAczD,GAAO,IAAI0H,EAC5B,CAwDOvB,eAAegC,GAMpBjE,EACAmC,EACArG,EACAyD,GAEA,IAAK4C,EAAK8B,SAAU,OACpB,MAAMC,EAAc3E,EAAMzD,GACpBqI,EAAQC,MAAMC,QAAQH,GAC5B,QAAsB,IAAXA,GAA2BC,GAA2B,IAAlBD,EAAO3G,OAAe,OA8BrE,MAAM+G,OA5BNrC,OACEsC,EACAhF,EACAiF,EACAC,EACA5E,KAEA,IAAI6E,EACA7G,EACJ,MAAMtC,EAAe,GACrB,IAAK,MAAMoJ,KAAeF,EAAe,CACvCC,EAAWE,EAAerF,EAAMrH,YAAYgC,KAAMsK,EAAUG,GAC5D,IACE9G,QAAY0G,EAAEjM,IAAIoM,EAEnB,CAAC,MAAOrE,GACP,MAAMV,EAAO2C,EACX/C,EACAiF,EACA3E,GAEF,IAAKF,EAAM,MAAM,IAAIY,EAAc,uBACnC1C,QAAY8B,EAAKQ,KAAKwE,EAAa3E,EACpC,CACDzE,EAAQhB,KAAKsD,EACd,CACD,OAAOtC,CACR,EACiBsJ,CAChB7E,EACAT,EACAzD,EACAqI,EAAQD,EAAS,CAACA,GAClB7L,KAAK4C,QAAQ4E,OAEdN,EAAczD,GAAOqI,EAAQG,EAAMA,EAAI,EAC1C,CCpcOrC,eAAe6C,GAMpB9E,EACAmC,EACArG,EACAyD,GAEA,IACE,MAAMwF,EAAO/E,EAAQ1H,IAAI,YACzBiH,EAAMzD,GAAOiJ,EAAKC,OAEnB,CAAC,MAAO3E,GACP,MAAM,IAAI4E,EACR,iEAEH,CACH,CA8BOhD,eAAeiD,GAKpBlF,EACAmC,EACArG,EACAyD,GAEA,IAAK4C,EAAKvG,MAAQ2D,EAAMzD,GACtB,OAgBF,IAAIoE,EADCiC,EAAKjI,OAAMiI,EAAKjI,KAAOuB,EAAM0J,aAAa5F,EAAO,OAEtD,IACEW,QAAkB7H,KAAK4C,QAAQwE,SAAS0C,EACzC,CAAC,MAAO9B,GACP,MAAM,IAAIE,EACR,kCAAkC4B,EAAKjI,SAASmG,IAEnD,CAED,MAAMM,QAAaT,EAASS,KAAKX,GAjB/B3C,OAAO+H,eAkBU7F,EAAOzD,EAlBmB,CACzCuJ,YAAY,EACZC,UAAU,EACVC,cAAc,EACdhH,MAcqCoC,GAC3C,CAuCM,MAAO6E,WAA8BC,EAKtB,SAAAC,GACjB,MAAM,IAAIT,EAAiB,8CAC5B,QAIc5M,KAAAsN,YAAc,IAAIC,YAAY,OAAQ,QAE3BvN,KAAAwN,WAAa,IAAIrE,EAAgC,CAclE,UAAAsE,GAMP,OAAO/K,EACR,CAQD,WAAA7C,CAAY6N,EAAalG,GACvB1H,MAAM4N,EAAOxE,GAAe1B,GAxBrBxH,KAAOJ,QAAGD,EAyBlB,CAEQ,IAAIgO,KAAyBtM,GACpC,OAAOvB,MAAM8N,IAAID,KAAWtM,EAC7B,CAYQ,YAAMqH,CACbxH,EACAE,EACA8F,KACG7F,GAEH,MAAME,IAAEA,EAAGD,IAAEA,GAAQtB,KAAKyB,OAAOJ,EAAMrB,KAAK0I,QAC5CpH,EAAIuM,KAAK,+BAA+BxM,GACxC,MAAMtB,KAAEA,GAASwB,EACX6C,EAAYhB,EAAMgB,UAAUlD,GAClC,IACEI,EAAIuM,KAAK,mBAAmBzJ,mBAA2BhD,KACvD,MAAM0M,EAAc/N,EAAKgO,mBAAmB3J,EAAW,CAAQhD,EAAP4M,KACxD9G,QAAclH,KAAKiO,SAASH,EAAa5G,EAAO3F,EACjD,CAAC,MAAOyG,GACP,MAAMhI,KAAKkO,WAAWlG,EACvB,CAED,OAAOd,CACR,CAUQ,UAAMY,CACb5G,EACAE,KACGC,GAEH,MAAME,IAAEA,EAAGD,IAAEA,GAAQtB,KAAKyB,OAAOJ,EAAMrB,KAAK8H,MAC5CxG,EAAIuM,KAAK,6BAA6BxM,GACtC,MAAMtB,KAAEA,GAASwB,EACX6C,EAAYhB,EAAMgB,UAAUlD,GAElC,IAAIgG,EACJ,IACE,MAAM4G,EAAc/N,EAAKgO,mBAAmB3J,EAAW,CAAQhD,EAAP4M,KACxD9G,QAAclH,KAAKmO,UAAUL,EAAavM,EAC3C,CAAC,MAAOyG,GACP,MAAMhI,KAAKkO,WAAWlG,EACvB,CAED,OAAOd,CACR,CAYQ,YAAMuB,CACbvH,EACAE,EACA8F,KACG7F,GAEH,MAAME,IAAEA,EAAGD,IAAEA,GAAQtB,KAAKyB,OAAOJ,EAAMrB,KAAKyI,SACtC1I,KAAEA,GAASwB,EACX6C,EAAYhB,EAAMgB,UAAUlD,GAElC,IACEI,EAAI8M,QAAQ,qBAAqBhK,mBAA2BhD,KAC5D,MAAM0M,EAAc/N,EAAKgO,mBAAmB3J,EAAW,CAAQhD,EAAP4M,KACxD9G,QAAclH,KAAKiO,SAASH,EAAa5G,EAAO3F,EACjD,CAAC,MAAOyG,GACP,MAAMhI,KAAKkO,WAAWlG,EACvB,CAED,OAAOd,CACR,CAUD,YAAM,CACJhG,EACAE,KACGC,GAEH,MAAME,IAAEA,EAAGD,IAAEA,EAAG+M,QAAEA,GAAYrO,KAAKyB,OAAOJ,EAAMrB,KAAK6K,SAC/C9K,KAAEA,GAASwB,EACX6C,EAAYhB,EAAMgB,UAAUlD,GAClC,IAAIgG,EACJ,IACE,MAAM4G,EAAc/N,EAAKgO,mBAAmB3J,EAAW,CAAQhD,EAAP4M,KACxD9G,QAAclH,KAAK8H,KAAK5G,EAAOE,KAAOiN,GACtC/M,EAAI8M,QAAQ,0BAA0BhN,UAAWgD,iBAC3CpE,KAAKsO,YAAYR,EAAavM,EACrC,CAAC,MAAOyG,GACP,MAAMhI,KAAKkO,WAAWlG,EACvB,CAED,OAAOd,CACR,CAES,iBAAMoH,CAAYlN,EAAYG,GACtC,MAAMxB,KAAEA,EAAIwO,OAAEA,GAAWhN,EACbgN,EAAOX,IAAI5N,KAAKsO,mBACtBvO,EAAKuO,YAAYlN,EACxB,CAED,UAAAoN,CAAWC,GACT,MAAMC,EAAa,CACjB1O,KAAKiO,SACLjO,KAAKmO,UACLnO,KAAKsO,YACLtO,KAAK2O,YACL3O,KAAK4O,sBACL/K,KAAKgL,GAAOA,EAAGhN,OACjB,OAAO,IAAIiN,MAAM9O,KAAM,CACrBC,IAAG,CAAC8O,EAAQC,EAAMC,IACXP,EAAWQ,SAASF,GAElB,IAAIF,MAAOC,EAAeC,GAAO,CACtC,WAAMG,CAAMN,EAAIO,EAASC,GACvB,OAAQL,GACN,IAAK,WAAY,CACf,MAAOjP,EAAMqB,EAAI8F,GAASmI,EAE1B,aADMtP,EAAKuP,eAAeb,EAAYrN,EAAGf,WAAY6G,GAC9CA,CACR,CACD,IAAK,cAAe,CAClB,MAAOnH,EAAMqB,GAAMiO,EACnB,OAAQtP,EAAuBwP,kBAC7Bd,EACArN,EAEH,CACD,IAAK,YAAa,CAChB,MAAOrB,EAAMqB,GAAMiO,EACnB,OAAOtP,EAAKyP,eAAef,EAAYrN,EACxC,CACD,IAAK,cAAe,CAClB,MAAOrB,EAAMkD,GAAYoM,EACzB,OAAOtP,EAAK0P,0BAA0BhB,EAAYxL,EACnD,CACD,IAAK,uBAAwB,CAC3B,MAAOlD,EAAMkD,EAAUsD,EAAOE,GAAQ4I,EAChCK,QACJ3P,EACA0P,0BAA0BhB,EAAYxL,GAClCC,EAAiB,GACvB,IAAIkF,EAAQ,EACRuH,GAAkBlJ,EAClBmJ,EAAyB,KAE7B,OAAa,CACX,MAAM3D,QAAYyD,EAASpH,OAE3B,GAAI2D,EAAI/F,OAAS+F,EAAI/F,MAAMA,MAAM7F,WAAY,CAC3C,MAAMwP,EAAY5D,EAAI/F,MAAMzC,IACtBqM,EAAe7D,EAAI/F,MAAMA,MAAc7F,SAC3C,QAIF,IAAKsP,EAAiB,CAChBE,IAAcpJ,GAAMpG,aACtBsP,GAAkB,GAEpB,QACD,CASD,GAPAzM,EAAQhB,KAAK,CACX6N,IAAKF,EACLG,OAAQxN,KAAKuF,MAAM+H,KAErBF,EAAUC,EACVzH,IAEIA,GAAS7B,EAEX,aADMmJ,EAASO,QACR,CACLP,SACExM,EACFgN,SAAU,CACRC,oBAAqBjN,EAAQgC,OAC7BkL,SAAUR,GAIjB,CAED,GAAI3D,EAAIoE,KAEN,aADMX,EAASO,QACR,CACLP,SACExM,EACFgN,SAAU,CACRC,oBAAqBjN,EAAQgC,OAC7BkL,SAAU,IAIjB,CACF,CACD,QACE,MAAM,IAAIlI,EACR,+BAAsC8G,GAG7C,IAzFMsB,QAAQrQ,IAAI8O,EAAQC,EAAMC,IA6FxC,CAES,cAAMhB,CACd7M,EACA8F,EACA3F,GAEA,IAAIuI,EAEJ,MAAM/J,KAAEA,EAAIwO,OAAEA,GAAWhN,EACnBD,EAAMiN,EAAOX,IAAI5N,KAAKiO,UAC5B,IACEnE,EAAOxH,OAAOC,KACZ4K,GAAsBK,WAAWjE,UAAUrC,GAE9C,CAAC,MAAOc,GACP,MAAM,IAAIuI,EACR,sCAAsCnP,MAAO4G,IAEhD,CAID,aAHMjI,EAAKkO,SAAS7M,EAAGf,WAAYyJ,GACnCxI,EAAIkP,MAAM,yBAAyBpP,GAE5B8F,CACR,CAES,eAAMiH,CAAU/M,EAAYG,GACpC,IAAIuE,EAEJ,MAAM/F,KAAEA,EAAIwO,OAAEA,GAAWhN,EACnBD,EAAMiN,EAAOX,IAAI5N,KAAKmO,WACtBlC,SAAqBlM,EAAK0Q,SAASrP,IAAKf,WAE9C,IAAK4L,EAAK,MAAM,IAAIhE,EAAc,kBAAkB7G,eAEpDE,EAAIkP,MAAM,qBAAqBpP,GAC/B,IACE0E,EAASqH,GAAsBK,WAAWnE,YAAY4C,EAAI5L,WAC3D,CAAC,MAAO2H,GACP,MAAM,IAAIuI,EAAmB,2BAA2BvI,EACzD,CAED,OAAOlC,CACR,CAES,iBAAM6I,CACd5O,EACAkD,KAEG5B,GAEH,aAActB,EAAK2Q,eACjBlO,KAAKC,UAAUQ,GAElB,CAES,0BAAM2L,CACd7O,EACAkD,EACAsD,EAAgB,IAChBE,KAEGpF,GAEH,aAActB,EAAK4Q,6BACjBnO,KAAKC,UAAUQ,GACfsD,EACAE,GAAMpG,WAET,CAES,WAAAuQ,CAAY1N,GACpB,MAAM2N,EAAW3J,GACflC,OAAOa,QAAQqB,GAAO5B,QAAO,CAACC,GAA6B9B,EAAK+B,WAC3C,IAARA,IAAqBD,EAAM9B,GAAO+B,GACtCD,IACN,CAAE,GAEP,IAAIuL,EAAkC5N,EAAQ6N,MAE9C,IAAK,MAAM9E,KAAO/I,EAChB4N,EAAa9L,OAAO2E,OAAO,GAAIkH,EAAQC,GAAaD,EAAQ5E,IAG9D,OAAO6E,CACR,CAQS,MAAAE,CAAOC,GACf,OAAO9D,GAAsBG,YAAY0D,OAAOC,EACjD,CAYkB,WAAMC,CACvBC,EACAjK,EACAgK,EACA3P,KACGF,GAEH,MAAM+P,EAAgB7C,IACpB,MAAM8C,EAAO9C,GAAWvO,KAAKsB,IAAIsM,IAAI5N,KAAKkR,OAG1C,MAF0B,mBAAfG,EAAKC,QAAuBD,EAAaC,MAAQ,IAAMD,GAC1C,mBAAbA,EAAKzD,MAAqByD,EAAazD,IAAM,IAAMyD,GACvDA,CAAI,EAEPE,EACJhQ,aAAe5B,GACV4B,EAAIiQ,WAAW,CACdjD,OAAQ6C,EAAa7P,EAAIgN,WAE1B,IAAI5O,IAAwB6R,WAAW,CACtCzR,KAAMwB,EAAIxB,KACVK,SAAUmB,EAAIkQ,eACdlD,OAAQ6C,MAEVM,EAAY1M,OAAO2E,OAAO,CAAA,EAAIuH,EAAO,CACzC3C,OAAQgD,EAAUhD,SAEpB,OAAOvJ,OAAO2E,aACN7J,MAAMoR,MAAMC,EAAWjK,EAAOwK,KAAcrQ,GAClD,CACEtB,KAAMwB,EAAIxB,KACVK,SAAYmB,EAAYkQ,gBACtBF,EAAUnR,SACZmO,OAAQgD,EAAUhD,OAClBoD,cAAepQ,EAAIxB,KAAK6R,WAG7B,CAUS,KAAA5K,CAAS6K,GACjB,OAAOC,QAAQC,aAAQlJ,EACxB,CA2BS,oBAAMmJ,CACd1Q,EACAoO,EACAuC,GAAY,GAEZ,MAAMC,EAAa,GACnB,IAAIjG,QAA2CyD,EAASpH,OACxD,MAAQ2D,EAAIoE,MAAM,CAChB,GAAIpE,EAAI/F,OAAS+F,EAAI/F,MAAMA,MAAM7F,WAAY,CAC3C,IAAI8R,EAAe,CAAA,EAEnB,GADA7Q,EAAIS,MAAMkK,EAAI/F,MAAMA,MAAM7F,SAAS,SAC/B4R,EAAsC,CACxCE,EAAQC,KAAOnG,EAAI/F,MAAMmM,KACzBF,EAAQG,UAAYrG,EAAI/F,MAAMhG,UAC9B,IACEiS,EAAQI,MAAQ/P,KAAKuF,MAAMkE,EAAI/F,MAAMA,MAAM7F,SAAS,QACrD,CAAC,MAAOmS,GACPlR,EAAImR,MAAMD,GACVL,EAAQI,MAAQtG,EAAI/F,MAAMA,MAAM7F,SAAS,OAC1C,CACF,MACC,IACE8R,EAAU3P,KAAKuF,MAAMkE,EAAI/F,MAAMA,MAAM7F,SAAS,QAC/C,CAAC,MAAOmS,GACPlR,EAAImR,MAAMD,GACVL,EAAUlG,EAAI/F,MAAMA,MAAM7F,SAAS,OACpC,CAEH6R,EAAWhQ,KAAKiQ,EACjB,CACDlG,QAAYyD,EAASpH,MACtB,CAGD,OAFAhH,EAAIS,MAAM,0BAA0BmQ,EAAWhN,kBAC/CwK,EAASO,QACFiC,CACR,CA8BD,SAAMlP,CACJC,KACG5B,GAEH,MAAME,IAAEA,EAAGD,IAAEA,EAAG+M,QAAEA,GAAYrO,KAAKyB,OAAOJ,EAAMrB,KAAKgD,KAE7B,kBAAfqL,EAAQ,IAAoBA,EAAQqE,QAE7C,MAAM3S,KAAEA,GAASwB,GACXkF,KAAEA,EAAIF,MAAEA,GAAUtD,EACxB,IAAIyM,EACAnJ,GAASE,UACJxD,EAAgB,aAChBA,EAAe,KACtB3B,EAAIS,MACF,yCAAyCwE,YAAgBE,KAS3DiJ,SANS1P,KAAK4O,qBACV7O,EACAkD,EACAsD,GAAS,IACRE,GAAcpG,aAECqP,WAEpBpO,EAAIS,MAAM,uBACV2N,QAAkB1P,KAAK2O,YACrB5O,EACAkD,IAGJ3B,EAAIS,MAAM,qBAEV,MAAMmB,QAAiBlD,KAAKgS,eAAe1Q,EAAKoO,GAKhD,OAJApO,EAAIS,MACF,wBACA,IAAGgK,MAAMC,QAAQ9I,GAAWA,EAAQgC,OAAS,IAExChC,CACR,CAEQ,SAAAyP,GACP,OAAO,IAAI7P,GAAgB9C,KAC5B,CAEQ,cAAMoH,CAASC,GACtB,OAAO,IAAIF,GAAuBE,EAASrH,KAC5C,CAEQ,eAAM4S,CACbxO,EACAhD,EACA8F,KACG7F,GAEH,GAAID,EAAG8D,SAAWgC,EAAMhC,OACtB,MAAM,IAAIgD,EAAc,4CAC1B,MAAM5G,IAAEA,EAAG+M,QAAEA,GAAYrO,KAAKyB,OAAOJ,EAAMrB,KAAK4S,WAC1CC,EAAazP,EAAMgB,UAAUA,GAEnC,OADA9C,EAAIS,MAAM,YAAYX,EAAG8D,kBAAkB2N,WACpCf,QAAQgB,IACb1R,EAAGyC,KAAI,CAACkF,EAAGX,IAAUpI,KAAK0I,OAAOtE,EAAW2E,EAAG7B,EAAMkB,MAAWiG,KAEnE,CAEQ,eAAM0E,CACb3O,EACAhD,EACA8F,KACG7F,GAEH,GAAID,EAAG8D,SAAWgC,EAAMhC,OACtB,MAAM,IAAIgD,EAAc,4CAC1B,MAAM5G,IAAEA,EAAG+M,QAAEA,GAAYrO,KAAKyB,OAAOJ,EAAMrB,KAAK+S,WAC1CF,EAAazP,EAAMgB,UAAUA,GAEnC,OADA9C,EAAIS,MAAM,YAAYX,EAAG8D,kBAAkB2N,WACpCf,QAAQgB,IACb1R,EAAGyC,KAAI,CAACkF,EAAGX,IAAUpI,KAAKyI,OAAOrE,EAAW2E,EAAG7B,EAAMkB,MAAWiG,KAEnE,CAQQ,OAAA2E,CACP9L,KACG7F,GAEH,MAAMC,IAAEA,GAAQtB,KAAKyB,OAAOJ,EAAMrB,KAAKgT,SAEjC5O,EAAYhB,EAAMgB,UAAU8C,EAAMrH,aAClCwD,EAAKD,EAAMC,GAAG6D,EAAMrH,aACpBoT,EAAQ7P,EAAM8P,UAAUhM,GACxBpB,EAASd,OAAOa,QAAQoN,EAAM/L,OAAO5B,QACzC,CAACC,GAA6B9B,EAAK+B,MACjC,QAAmB,IAARA,EAAqB,OAAOD,EACvC,MAAM4N,EAAa/P,EAAMgQ,WAAWlM,EAAOzD,GAC3C,GAAIzD,KAAKqT,WAAWF,GAClB,MAAM,IAAIjL,EAAc,iBAAiBiL,iBAE3C,OADA5N,EAAM4N,GAAc3N,EACbD,CAAK,GAEd,CAAE,GAOJ,OAJAjE,EAAIkP,MACF,wBAAwBpM,mBAA4B8C,EAAc7D,MAG7D,CACLkI,OAAQzF,EACR1E,GAAK8F,EAAc7D,GACnBiQ,UAAWL,EAAMK,UAEpB,CAEQ,MAAAC,CACPC,EACAtS,EACAE,EACAkS,KACGjS,GAEH,MAAMC,IAAEA,GAAQtB,KAAKyB,OAAOJ,EAAMrB,KAAKuT,QACjCE,EAA0B,CAAA,EAEhCA,EADWrQ,EAAMC,GAAGnC,IACDE,EACnB,MAAMkK,EACa,iBAAVpK,EAAqBkC,EAAMY,MAAMyP,EAAIvS,GAAS,IAAIA,EAAMuS,GAEjEnS,EAAIkP,MAAM,oBAAoBlF,EAAEzL,YAAYgC,WAAWT,KACvD,MAAM0E,EAASd,OAAOC,KAAKqG,GAAGhG,QAAO,CAACC,EAAU9B,KAC7C8B,EAA8B9B,GAC7B+P,EAAIpQ,EAAMgQ,WAAW7N,EAAO9B,IACvB8B,IACN+F,GAeH,OAbIgI,IACFhS,EAAIS,MACF,mCAAmCiD,OAAOC,KAAKqO,GAAWnR,KAAK,OAEjE6C,OAAOa,QAAQyN,GAAWvN,SAAQ,EAAEtC,EAAK+B,MACvC,GAAI/B,KAAOqC,QAAmC+C,IAAxB/C,EAAerC,GACnC,MAAM,IAAIyE,EACR,sBAAsBzE,6BAA+B6H,EAAEzL,YAAYgC,8BAEvEiE,EAAOrC,GAAkB+B,CAAG,KAIzBM,CACR,CAEQ,YAAA4N,CACPtP,EACAhD,EACA8F,KACG7F,GAEH,MAAMgN,QAAEA,GAAYrO,KAAKyB,OAAOJ,EAAMrB,KAAK0T,cACrCnI,EAA8B,CAAA,EAIpC,OAHAA,EAAOrH,EAAYC,OAASf,EAAMgB,UAAUA,GAC5CY,OAAO2E,OAAO4B,EAAQrE,GAEf,CAAC9C,EAAWhD,EAAImK,KAAW8C,EAOnC,CAEQ,YAAAsF,CACPvP,EACAhD,EACA8F,KACG7F,GAEH,MAAMgN,QAAEA,GAAYrO,KAAKyB,OAAOJ,EAAMrB,KAAK2T,cACrCpI,EAA8B,CAAA,EAIpC,OAHAA,EAAOrH,EAAYC,OAASf,EAAMgB,UAAUA,GAC5CY,OAAO2E,OAAO4B,EAAQrE,GAEf,CAAC9C,EAAWhD,EAAImK,KAAW8C,EAOnC,CAEkB,eAAAuF,CACjBxP,EACAyP,EACAhC,KACGxQ,GAEH,GAAIwS,EAAI3O,SAAW2M,EAAO3M,OACxB,MAAM,IAAIgD,EAAc,4CAE1B,MAAM3G,EAA6BF,EAAK0P,MAElC+C,EAAUD,EAAIhQ,KAAI,CAACzC,EAAIgH,KAC3B,MAAMmD,EAA8B,CAAA,EAGpC,OAFAA,EAAOrH,EAAYC,OAASC,EAC5BY,OAAO2E,OAAO4B,EAAQsG,EAAOzJ,IACtBmD,CAAM,IAEf,MAAO,CAACnH,EAAWyP,EAAKC,EAASvS,EAClC,CAEkB,eAAAwS,CACjB3P,EACAyP,EACAhC,KACGxQ,GAEH,GAAIwS,EAAI3O,SAAW2M,EAAO3M,OACxB,MAAM,IAAIgD,EAAc,4CAE1B,MAAM3G,EAA6BF,EAAK0P,MAElC+C,EAAUD,EAAIhQ,KAAI,CAACzC,EAAIgH,KAC3B,MAAMmD,EAA8B,CAAA,EAGpC,OAFAA,EAAOrH,EAAYC,OAASC,EAC5BY,OAAO2E,OAAO4B,EAAQsG,EAAOzJ,IACtBmD,CAAM,IAEf,MAAO,CAACnH,EAAWyP,EAAKC,EAASvS,EAClC,CAEQ,UAAA2M,CACPsE,EACAwB,GAEA,OAAO7G,GAAsBe,WAAW8F,GAAUxB,EACnD,CAED,iBAAgBtE,CAAgCsE,GAO9C,MAAMyB,EAAqB,iBAARzB,EAAmBA,EAAMA,EAAI0B,QAChD,OAAID,EAAI/E,SAASjH,EAAcpG,MAAc,IAAIoG,EAAcuK,GAC3DyB,EAAI/E,SAASiF,EAActS,MAAc,IAAIsS,EAAc3B,GAC3DyB,EAAI/E,SAASkF,EAAgBvS,MACxB,IAAIuS,EAAgB5B,GACzByB,EAAI/E,SAASmF,EAAWxS,MAAc,IAAIwS,EAAW7B,GACrDyB,EAAI/E,SAASoF,EAAYzS,MAAc,IAAIyS,EAAY9B,GACvDyB,EAAI/E,SAAStC,EAAiB/K,MACzB,IAAI+K,EAAiB4F,GAC1ByB,EAAI/E,SAASqF,EAAe1S,MAAc,IAAI0S,EAAe/B,GAC7DyB,EAAI/E,SAASsF,EAAc3S,MAAc,IAAI2S,EAAchC,GAC3DyB,EAAI/E,SAASuF,EAAmB5S,MAC3B,IAAI4S,EAAmBjC,GAC5ByB,EAAI/E,SAASwF,EAAe7S,MAAc,IAAI6S,EAAelC,GAC7DyB,EAAI/E,SAASyF,GAAgB9S,MACxB,IAAI8S,GAAgBnC,GACzByB,EAAI/E,SAASqB,EAAmB1O,MAC3B,IAAI0O,EAAmBiC,GACzB,IAAItK,EAAcsK,EAC1B,CASD,iBAAgBoC,GACd9U,MAAM8U,aACNC,GAAWC,YAAY5L,IACpB0E,IAAImH,GAAgBC,YACpBC,OACCC,EAASzI,IACT0I,GAAaJ,GAAgBC,WAAY,CAAA,IAE1C7F,QAEH0F,GAAWC,YAAY5L,IACpB0E,IAAImH,GAAgBK,YACpBH,OACCI,EAAe5I,IACf0I,GAAaJ,GAAgBK,WAAY,CAAA,IAE1CjG,QAEH0F,GAAWC,YAAY5L,IACpB0E,IAAIlK,EAAOC,IACXsR,OAAO,CACNK,UAAW,CACTjO,EACAkO,IAEO,CAAe/B,EAAUgC,IACvBrG,GACLpI,IACA0O,IACAN,GAAa3R,GAASC,IAAIC,EAAOC,GAAI6R,GAAOnO,GAC5C6N,EAASrI,GAAyBxF,EAASkO,GAJtCpG,CAKLqE,EAAKgC,KAIZrG,QAEH0F,GAAWC,YAAY5L,IACpB0E,IAAImH,GAAgBW,QACpBC,OAAOC,KACPzG,QAEH0F,GAAWC,YAAY5L,IACpB0E,IAAImH,GAAgB5Q,OACpBwR,QAAsBnC,GAiBdqC,IAAerC,KAEvBrE,QA4BH0F,GAAWC,YAAY5L,IACpB0E,IAAImH,GAAgBe,YACpBb,OAAO,CACNK,UA7BJ,CACEpU,EACAoJ,EACAsB,EACAmK,EACAC,KAEA,MAAMC,EAA0B,CAC9B9L,MAAOjJ,EACPoJ,QAASA,EACTsB,SAAUA,GAIZ,OAFImK,IAAgBE,EAAKC,UAAYH,GACjCC,IAAIC,EAAKpU,KAAOmU,GACb7G,GACLH,KACAmH,GAASpB,GAAgBe,WAAYG,GACrC1S,EAAK,CAACrC,EAAO8M,OAAQoI,OAAQ5N,SAC7B0M,EAASrL,GAAyBoM,GAClCI,EAAShM,GAAyB4L,GAClCK,EAAS3L,GAAyBsL,GAClCM,EAASxF,GAAKkF,GACdd,GAAaJ,GAAgBe,WAAYG,GAE5C,IAOE9G,QA4BH0F,GAAWjH,IAAImH,GAAgByB,aAC5BvB,OAAO,CACNK,UA5BJ,CACEpU,EACAoJ,EACAsB,EACA6K,EACAT,KAEA,MAAM9F,EAA8B,CAClC/F,MAAOjJ,EACPoJ,QAASA,EACTsB,SAAUA,GAIZ,OAFI6K,IAAevG,EAASgG,UAAYO,GACpCT,IAAI9F,EAASrO,KAAOmU,GACjB7G,GACLH,KACAmH,GAASpB,GAAgByB,YAAatG,GACtCwG,EAAK,CAACxV,EAAyB8M,OAAQoI,SACvClB,EAASpK,GAA0BoF,GACnCmG,EAASM,GAAmBzG,GAC5BoG,EAAS7K,GAA0ByE,GACnCqG,EAASxF,GAAKb,GACdiF,GAAaJ,GAAgByB,YAAatG,GAE7C,IAMEf,OACJ,EAGHhC,GAAsByH,aACtBpT,EAAQoV,WAAW1N,IC9nCb,MAAO2N,WAEHzN,EACR,WAAAvJ,GACEC,OACD,CAQQ,WAAAuJ,CAAYC,GACnB,OAAOxJ,MAAMuJ,YAAYC,EAC1B,CAQQ,SAAAC,CAAUrC,GAGjB,OAFkBsC,QAAQ,+BAEnB/G,CADmB+G,QAAQ,sBACjBC,CAAkBzJ,KAAK0J,aAAaxC,IACtD,ECYG,MAAgB4P,WACZC,SAMS/W,KAAA4C,QAAiC,IAAIuK,EAAwB,QAIpDnN,KAAAwN,WAAa,IAAIqJ,EAA0B,CAUrE,WAAAhX,CACEgC,EACmBX,GAEnBpB,MAAM+B,GAFa7B,KAAKkB,MAALA,EAVXlB,KAAWgX,aAAY,EAa/BhX,KAAKsH,KAAO3E,EAAW4E,SAASrG,EACjC,CAUD,YAAMwH,CACJnH,EACA2F,KACG7F,GAEH,MAAMC,IAAEA,EAAG+M,QAAEA,SAAkBrO,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAK0I,QAChEpH,EAAIuM,KAAK,oBAAoBQ,GAER,iBAAVnH,IAAoBA,EAAQlH,KAAKqJ,YAAenC,IAE3D5F,EAAIuM,KAAK,mBAAmBrL,KAAKC,UAAUyE,IAE3C,MAAMoM,EAAYtT,KAAKiX,iBAAiB1V,GAKxC,OAHAD,EAAIuM,KAAK,6BACT3G,EAAQ9D,EAAM8T,MAAMhQ,EAAOoM,EAAWtT,KAAKkB,OAEpClB,KAAKsH,KAAKoB,OAAOxB,KAAUmH,EACnC,CAUD,UAAMvG,CACJvG,EACAkC,KACGpC,GAEH,MAAMC,IAAEA,EAAG+M,QAAEA,SAAkBrO,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAK8H,MAIhE,OAFAxG,EAAIuM,KAAK,yBAAyBpK,MAE3BzD,KAAKsH,KAAKQ,KAAKrE,KAAQ4K,EAC/B,CAES,gBAAA4I,CAAiB1V,GACzB,MAAM4V,EAAe5V,EAAIxB,KAAKqX,eAC9B,IAAI9D,EAAiB,CAAA,EAUrB,OARI6D,EAAaE,IAAKrX,KAAKsH,KAAalD,aACtCkP,EAAY9Q,KAAKuF,MACdoP,EAAalX,IAAKD,KAAKsH,KAAalD,YAAuB/D,SAC1D,UAKCiT,CACR,CAUD,YAAM7K,CACJlH,EACA2F,KACG7F,GAEH,MAAMC,IAAEA,EAAG+M,QAAEA,SAAkBrO,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAKyI,QAE3C,iBAAVvB,IAAoBA,EAAQlH,KAAKqJ,YAAenC,IAE3D5F,EAAIuM,KAAK,mBAAmBrL,KAAKC,UAAUyE,IAE3C,MAAMoM,EAAYtT,KAAKiX,iBAAiB1V,GAIxC,OAFAD,EAAIuM,KAAK,6BACT3G,EAAQ9D,EAAM8T,MAAMhQ,EAAOoM,EAAWtT,KAAKkB,OACpClB,KAAKsH,KAAKmB,OAAOvB,KAAUmH,EACnC,CAUD,YAAM,CACJ9M,EACAkC,KACGpC,GAEH,MAAMC,IAAEA,EAAG+M,QAAEA,SAAkBrO,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAK6K,QAEhE,OADAvJ,EAAIuM,KAAK,0BAA0BpK,MAC5BzD,KAAKsH,KAAKuD,OAAcpH,EAAPuK,MAAgBK,EACzC,CAUD,eAAMiJ,CACJ/V,EACA0D,KACG5D,GAEH,MAAMgN,QAAEA,SAAkBrO,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAKuX,SAE3D,MADoB,iBAATtS,IAAmBA,EAAOzC,KAAKuF,MAAM9C,IACzCjF,KAAKsH,KAAKgQ,UAAUrS,KAASoJ,EACrC,CAUD,aAAMkJ,CACJhW,EACA0D,KACG5D,GAEH,MAAMgN,QAAEA,SAAkBrO,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAKuX,SAE3D,MADoB,iBAATtS,IAAmBA,EAAOzC,KAAKuF,MAAM9C,IACzCjF,KAAKsH,KAAKiQ,QAAQtS,KAASoJ,EACnC,CAUD,eAAM0E,CACJxR,EACAsQ,KACGxQ,GAEH,MAAMC,IAAEA,EAAG+M,QAAEA,SAAkBrO,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAK+S,WAOhE,MANsB,iBAAXlB,IACTA,EAAUrP,KAAKuF,MAAM8J,GAClBhO,KAAKyH,GAAMtL,KAAKqJ,YAAYiC,KAC5BzH,KAAKyH,GAAM,IAAItL,KAAKkB,MAAMoK,MAE/BhK,EAAIuM,KAAK,YAAYgE,EAAO3M,+BACrBlF,KAAKsH,KAAKyL,UAAUlB,KAA6BxD,EACzD,CAWD,SAAMrL,CACJzB,EACA0B,EACAuU,KACGnW,GAEH,MAAMgN,QAAEA,SAAkBrO,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAKgD,KAG3D,MAFwB,iBAAbC,IACTA,EAAWT,KAAKuF,MAAM9E,IACjB6T,GAAmBlU,QAAQI,IAAIC,EAAUuU,KAAanJ,EAC9D,CAES,SAAA9E,CAAUrC,GAClB,OAAO4P,GAAmBtJ,WAAWjE,UAAUrC,EAChD,CAES,WAAAmC,CAA6BC,GACrC,OACEwN,GAAmBtJ,WACnBnE,YAAYC,EACf,CAES,UAAMmO,CAAKlW,GACnB,MAAMD,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAKyX,MAC9CnW,EAAIuM,KAAK,sCACT7N,KAAKgX,aAAc,EACnB1V,EAAIuM,KAAK,qCACV,CAED,iBAAM6J,CAAYnW,GAChB,MAAMD,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAK0X,aAE9C,OADApW,EAAIuM,KAAK,wBAAwB7N,KAAKgX,kBAC/B,CAAEU,YAAa1X,KAAKgX,YAC5B,CAUD,eAAMpE,CACJrR,EACAsQ,KACGxQ,GAEH,MAAMC,IAAEA,SAActB,KAAKyB,OAAO,IAAIJ,EAAME,GAAMvB,KAAK4S,WAQvD,MANsB,iBAAXf,IACTA,EAAUrP,KAAKuF,MAAM8J,GAClBhO,KAAKyH,GAAMtL,KAAKqJ,YAAYiC,KAC5BzH,KAAKyH,GAAM,IAAItL,KAAKkB,MAAMoK,MAE/BhK,EAAIuM,KAAK,UAAUgE,EAAO3M,+BACnBlF,KAAKsH,KAAKsL,UAAUf,EAA0BtQ,KAAQF,EAC9D,CAED,YAAMI,CACJJ,EACAsW,GAEA,OAAOb,GAAmBrV,OAAOmW,KAAK5X,KAA/B8W,CAAqCzV,EAAMsW,EACnD,CAYS,mBAAalW,CAErBJ,EACAsW,GAEA,GAAkB,EAAdtW,EAAK6D,OAAY,MAAM,IAAIgD,EAAc,uBAC7C,MAAM3G,EAAMF,EAAK0P,MACjB,GAAIxP,aAAe5B,GACjB,MAAO,CACL4B,MACAD,IAAKC,EAAIgN,OAAO+C,QAAQ1D,IAAI5N,MAAM4N,IAAI+J,GACtCtJ,QAAS,IAAIhN,EAAME,IAEvB,KAAMA,aAAe3B,GACnB,MAAM,IAAIsI,EAAc,6BAmB1B,MAAM2P,EAAY,CAChBlG,cAAepQ,EAAIxB,KAAK6R,WAGpBjK,QAAgBmP,GAAmBlU,QAAQ+E,QArBjD,MACE,GAAsB,iBAAXgQ,EAAqB,OAAOA,EACvC,OAAQA,EAAO9V,MACb,KAAKpB,EAAcC,OACnB,KAAKD,EAAciH,KACnB,KAAKjH,EAAcE,OACnB,KAAKF,EAAcG,OACnB,KAAKC,EAAsBC,WAC3B,KAAKD,EAAsBiX,SAC3B,KAAKjX,EAAsBE,WAC3B,KAAKF,EAAsBG,YAGzB,OAAO2W,EAAO9V,IAEnB,EAOCkW,GACAF,EACA7X,KAAKkB,MACLK,GAEID,EACJtB,KACI2H,EAAQ4G,OAAOX,IAAI5N,MAAM4N,IAAI+J,GAC7BhQ,EAAQ4G,OAAO+C,QAAQ1D,IAAI5N,MAAM4N,IAAI+J,GAE3C,MAAO,CACLpW,IAAKoG,EACLrG,IAAKA,EACL+M,QAAS,IAAIhN,EAAMsG,GAEtB,EC3XG,MAAOqQ,WAEHlB,GACR,WAAAjX,CAAYgC,EAAcX,GACxBpB,MAAM+B,EAAMX,EACb,CAGQ,YAAMwH,CAAOnH,EAAU2F,GAC9B,MAAM5F,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAK0I,QAC9CpH,EAAIuM,KAAK,mBAAmB3G,GAE5B,MAAMoE,EAAItL,KAAKqJ,YAAenC,GAG9B,OADA5F,EAAIuM,KAAK,uBAAuBrL,KAAKC,UAAU6I,IACxCtL,KAAKuJ,gBAAiBzJ,MAAM4I,OAAOnH,EAAK+J,GAChD,CAGQ,UAAMxD,CAAKvG,EAAUkC,GAC5B,MAAMnC,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAK8H,MAE9C,OADAxG,EAAIuM,KAAK,eAAepK,GACjBzD,KAAKuJ,gBAAiBzJ,MAAMgI,KAAKvG,EAAKkC,GAC9C,CAGQ,YAAMgF,CAAOlH,EAAU2F,GAC9B,MAAM5F,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAKyI,QAE9C,OADAnH,EAAIuM,KAAK,mBAAmB3G,GACrBlH,KAAKuJ,gBAAiBzJ,MAAM2I,OAAOlH,EAAK2F,GAChD,CAGQ,YAAM,CAAO3F,EAAUkC,GAC9B,MAAMnC,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAK6K,QAE9C,OADAvJ,EAAIuM,KAAK,gBAAgBpK,GAClBzD,KAAKuJ,gBAAiBzJ,MAAM+K,OAAOtJ,EAAKkC,GAChD,CAGQ,eAAM6T,CAAU/V,EAAU0D,GACjC,MAAMgT,EAAuBzV,KAAKuF,MAAM9C,IAClC3D,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAKsX,WAI9C,OAFAhW,EAAIuM,KAAK,YAAYoK,EAAW/S,iCAEzB1C,KAAKC,iBACF3C,MAAMwX,UAAU/V,EAAK0W,IAAqBpU,KAC/CyH,GAAMtL,KAAKuJ,UAAU+B,KAG3B,CAGQ,aAAMiM,CAAQhW,EAAU0D,GAC/B,MAAMgT,EAAuBzV,KAAKuF,MAAM9C,IAElC3D,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAKuX,SAG9C,OAFAjW,EAAIuM,KAAK,WAAWoK,EAAW/S,iCAExB1C,KAAKC,iBACF3C,MAAMyX,QAAQhW,EAAK0W,IAAqBpU,KAAKyH,GACnDtL,KAAKuJ,UAAU+B,KAGpB,CAGQ,eAAMyH,CAAUxR,EAAUsQ,GACjC,MAAMvQ,IAAEA,SAActB,KAAKyB,OAAO,CAACF,GAAMvB,KAAK+S,WAExCmF,EADiB1V,KAAKuF,MAAM8J,GAE/BhO,KAAKyH,GAAMtL,KAAKqJ,YAAYiC,KAC5BzH,KAAKyH,GAAM,IAAItL,KAAKkB,MAAMoK,KAG7B,OADAhK,EAAIuM,KAAK,YAAYqK,EAAUhT,+BACxB1C,KAAKC,iBACF3C,MAAMiT,UAAUxR,EAAK2W,IAAoBrU,KAC9CyH,GAAMtL,KAAKuJ,UAAU+B,KAG3B,CAGc,SAAAtI,CACb2E,EACA1E,EACAuU,GAEA,MAAMjW,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAKgD,KAC5CmV,EAA0B3V,KAAKuF,MAAM9E,GAC3C,OAAOnD,MAAMkD,IAAIzB,EAAK4W,EAAaX,EACpC,CAGQ,UAAMC,CAAKlW,SACZzB,MAAM2X,KAAKlW,EAClB,CAGQ,iBAAMmW,CAAYnW,GAEzB,OAAOiB,KAAKC,gBAAgB3C,MAAM4X,YAAYnW,GAC/C,CAGQ,eAAMqR,CAAUjL,EAAckK,GACrC,MAAMvQ,IAAEA,SAActB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAK4S,WAE5CsF,EADiB1V,KAAKuF,MAAM8J,GAE/BhO,KAAKyH,GAAMtL,KAAKqJ,YAAYiC,KAC5BzH,KAAKyH,GAAM,IAAItL,KAAKkB,MAAMoK,KAG7B,OADAhK,EAAIuM,KAAK,UAAUqK,EAAUhT,+BACtB1C,KAAKC,iBACF3C,MAAM8S,UAAUjL,EAASuQ,IAAoBrU,KAClDyH,GAAMtL,KAAKuJ,UAAU+B,KAG3B,EA/GczE,GAAA,CADduR,uDAC0BC,EAAGrK,0CAQ7BgK,GAAAlR,UAAA,SAAA,MAGcD,GAAA,CADduR,GAAY,sDACYC,EAAGrK,0CAI3BgK,GAAAlR,UAAA,OAAA,MAGcD,GAAA,CADduR,uDAC0BC,EAAGrK,0CAI7BgK,GAAAlR,UAAA,SAAA,MAGcD,GAAA,CADduR,uDAC0BC,EAAGrK,0CAI7BgK,GAAAlR,UAAA,SAAA,MAGcD,GAAA,CADduR,uDAC6BC,EAAGrK,0CAWhCgK,GAAAlR,UAAA,YAAA,MAGcD,GAAA,CADduR,GAAY,sDACeC,EAAGrK,0CAW9BgK,GAAAlR,UAAA,UAAA,MAGcD,GAAA,CADduR,uDAC6BC,EAAGrK,0CAahCgK,GAAAlR,UAAA,YAAA,MAGcD,GAAA,CADduR,GAAY,sDAEFC,EAAGrK,OAAAsK,2CAObN,GAAAlR,UAAA,MAAA,MAGcD,GAAA,CADduR,uDACwBC,qCAExBL,GAAAlR,UAAA,OAAA,MAGcD,GAAA,CADduR,GAAY,sDACmBC,qCAG/BL,GAAAlR,UAAA,cAAA,MAGcD,GAAA,CADduR,uDACiCC,EAAGrK,0CAapCgK,GAAAlR,UAAA,YAAA,MC5HG,MAAOyR,WAAsBrQ,EACjC,WAAArI,CAAYoU,GACVnU,MAAMmU,EAAKsE,GAAc1W,KAC1B,EAaG,MAAO2W,WAAqBtQ,EAChC,WAAArI,CAAYoU,GACVnU,MAAMmU,EAAKuE,GAAa3W,KACzB,EAaG,MAAO4W,WAAuBvQ,EAClC,WAAArI,CAAYoU,GACVnU,MAAMmU,EAAKwE,GAAe5W,KAC3B,EAoFG,MAAO6W,WAA4BC,EACvC,WAAA9Y,CAAYoU,GACVnU,MAAM4Y,GAAoB7W,KAAMoS,EAAK,IACtC,ECzHa,SAAAzI,GAAIoN,EAAWC,GAC7B,MAAM3M,EAAI0M,EAAIC,EACd,GAAID,IAAM1M,EAAI2M,GAAKA,IAAM3M,EAAI0M,EAC3B,MAAM,IAAIL,GAAc,sBAAsBK,OAAOC,KAEvD,OAAO3M,CACT,CAYgB,SAAA4M,GAAIF,EAAWC,GAC7B,MAAM3M,EAAI0M,EAAIC,EACd,GAAID,IAAM1M,EAAI2M,GAAKA,IAAMD,EAAI1M,EAC3B,MAAM,IAAIqM,GAAc,yBAAyBK,OAAOC,KAE1D,OAAO3M,CACT,CCdO,IAAM6M,GAAN,cAAyBpS,EA8B9B,WAAA9G,CAAYyL,GACVxL,MAAMwL,EACP,GA1BDzE,GAAA,CALCxD,EAAG,CAAEE,KAAM,qCAKEwV,GAAAjS,UAAA,YAAA,GAQdD,GAAA,CANCmS,KACAjS,8BAKcgS,GAAAjS,UAAA,aAAA,GAOfD,GAAA,CANCmS,KACAjS,8BAKegS,GAAAjS,UAAA,cAAA,GAOhBD,GAAA,CANCmS,KACAjS,8BAKiBgS,GAAAjS,UAAA,gBAAA,GA5BPiS,GAAUlS,GAAA,CAFtBjF,EAAM,gBACNsF,sCACY6R,IAqDN,IAAME,GAAN,cAA0BtS,EA+B/B,WAAA9G,CAAYyL,GACVxL,MAAMwL,EACP,GA3BDzE,GAAA,CALCxD,EAAG,CAAEE,KAAM,qCAKA0V,GAAAnS,UAAA,UAAA,GAQZD,GAAA,CANCmS,KACAjS,8BAKckS,GAAAnS,UAAA,aAAA,GAQfD,GAAA,CANCmS,KACAjS,8BAKgBkS,GAAAnS,UAAA,eAAA,GAOjBD,GAAA,CALCmS,+BAKgBC,GAAAnS,UAAA,eAAA,GA7BNmS,GAAWpS,GAAA,CAFvBjF,EAAM,iBACNsF,sCACY+R,IAmDN,IAAMC,GAAN,cAAwBvS,EA8B7B,WAAA9G,CAAYyL,GACVxL,MAAMwL,EACP,YCpHa6N,KACd,OAAO,SACLpK,EACAqK,EACAC,GAEA,MAAMC,EAAiBD,EAAWnT,MAgClC,OA9BAmT,EAAWnT,MAAQ0D,kBAEdvI,GAEH,MAAME,EAAiBF,EAAK,GACtBkY,EAAWhY,EAAIkQ,eAAe9E,QAE9B6M,QAAgBxZ,KACH,gBACjBwZ,SAEIC,QAAeD,EAAOE,QAAQnY,GAEpC,GAAqB,GAAjBkY,EAAOvU,OACT,MAAM,IAAI+C,EAAc,uBAG1B,GAAIwR,EAAOvU,OAAS,EAClB,MAAM,IAAI+C,EAAc,6BAA6BwR,EAAOvU,QAG9D,GAAIuU,EAAO,GAAG/X,OAAS6X,EACrB,MAAM,IAAI9E,EACR,8BAA8B2E,kBAIlC,aAAaE,EAAenK,MAAMnP,KAAMqB,EAC1C,EAEOgY,CACT,CACF,CC7EA,IAAYM,GFqIV9S,GAAA,CAXCxD,EAAG,CAAEE,KAAM,WAKXyV,KACAjS,8BAKcmS,GAAApS,UAAA,aAAA,GAQfD,GAAA,CANCmS,KACAjS,8BAKgBmS,GAAApS,UAAA,eAAA,GAQjBD,GAAA,CANCmS,KACAjS,8BAKcmS,GAAApS,UAAA,aAAA,GA5BJoS,GAASrS,GAAA,CAFrBjF,EAAM,oBACNsF,sCACYgS,IEzHb,CAAYS,IAQVA,EAAA,SAAA,WASAA,EAAA,SAAA,UACD,EAlBD,CAAYA,KAAAA,GAkBX,CAAA,ICuBK,MAAgBC,WAA4B9C,GAOhD,WAAAjX,CAAsBgC,GACpB/B,MAAM+B,EAAMoX,IAEZW,GAAoBhX,QAClBgX,GAAoBhX,SAAW,IAAIuK,GAErCnN,KAAK6Z,iBAAmBnX,GAAyB6E,SAC/C0R,GACAW,GAAoBhX,QAAQ4E,OAG9BxH,KAAK8Z,gBAAkBpX,GAAyB6E,SAC9CwR,GACAa,GAAoBhX,QAAQ4E,OAG9BxH,KAAK+Z,oBAAsBrX,GAAyB6E,SAClD2R,GACAU,GAAoBhX,QAAQ4E,MAE/B,CAGD,eAAMwS,CAAUzY,SAERvB,KAAKia,iBAAiB1Y,GAE5B,MAAMiY,QAAexZ,KAAK8Z,gBAAgBN,SAG1C,aAFqBA,EAAOE,QAAQnY,IAAM,GAE7BM,IACd,CASD,YAAMqY,CAAO3Y,SAELvB,KAAKia,iBAAiB1Y,GAE5B,MAAMiY,QAAexZ,KAAK8Z,gBAAgBN,SAG1C,aAFqBA,EAAOE,QAAQnY,IAAM,GAE7B4Y,MACd,CAUD,cAAMC,CAAS7Y,SAEPvB,KAAKia,iBAAiB1Y,GAE5B,MAAMiY,QAAexZ,KAAK8Z,gBAAgBN,SAG1C,aAFqBA,EAAOE,QAAQnY,IAAM,GAE7B8Y,QACd,CASD,iBAAMC,CAAY/Y,SAEVvB,KAAKia,iBAAiB1Y,GAE5B,MAAMiY,QAAexZ,KAAK6Z,iBAAiBL,SACrCe,QAAgBf,EAAOE,QAAQnY,GAErC,GAAsB,GAAlBgZ,EAAQrV,OACV,MAAM,IAAI+C,EAAc,aAAajI,KAAKwa,4BAG5C,IAAIC,EAAQ,EAMZ,OAJAF,EAAQxU,SAAS2U,IACfD,GAASC,EAAOC,OAAO,IAGlBF,CACR,CAUD,eAAMG,CAAUrZ,EAAcG,GAM5B,aAJM1B,KAAKia,iBAAiB1Y,UAEPvB,KAAK6Z,iBAAiB/R,KAAKpG,EAAOH,IAEzCoZ,OACf,CAaK,cAAAE,CACJlT,EACAmT,EACA5U,SAGMlG,KAAKia,iBAAiBtS,GAC5B,MAAMpG,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAK6a,UAE5CtY,EAAOhB,EAAInB,SAASuM,QAG1B,UAD2B3M,KAAK+a,UAAUxY,EAAMuY,EAAI5U,EAAO3E,GAEzD,MAAM,IAAI2G,EAAc,sBAG1B,OAAO,CACR,CAYK,kBAAA8S,CACJrT,EACApF,EACAuY,EACA5U,SAGMlG,KAAKia,iBAAiBtS,GAC5B,MAAMpG,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAKib,UAI5CC,EAAU3Z,EAAInB,SAASuM,QAEvBwO,QAAkBnb,KAAKob,cAAc7Y,EAAM2Y,EAAS3Z,GAC1D,IAAK4Z,GAA+B,EAAlBA,EAAUjV,MAC1B,MAAM,IAAIuS,GACR,WAAWyC,2BAAiC3Y,KAIhD,MAAM8Y,EAAmBF,EAAUjV,MAGnC,GAAuBA,EAAnBmV,EACF,MAAM,IAAI7C,GACR,wDAKJ,MAAM8C,EAAmBxC,GAAIuC,EAAkBnV,GACzCqV,EAAevW,OAAO2E,OAAO,CAAA,EAAIwR,EAAW,CAChDjV,MAAOoV,IAOT,SAJMtb,KAAK+Z,oBAAoBtR,OAAO8S,EAAcha,UAGzBvB,KAAK+a,UAAUxY,EAAMuY,EAAI5U,EAAO3E,GAEzD,MAAM,IAAI2G,EAAc,sBAG1B,OAAO,CACR,CAED,eAAM6S,CACJxY,EACAuY,EACA5U,EACA3E,GAEA,MAAMD,EAAMC,EAAIgN,OAEhB,GAAIhM,IAASuY,EACX,MAAM,IAAIrG,EACR,mDAIJ,GAAY,EAARvO,EAEF,MAAM,IAAIsS,GAAa,sCAKzB,MAAMgD,QAAmBxb,KAAK6Z,iBAAiB/R,KAAKvF,EAAMhB,GAEpDka,EAAcD,EAAWb,QAG/B,GAAkBzU,EAAduV,EACF,MAAM,IAAIjD,GAAa,kBAAkBjW,6BAK3C,IAAImZ,EACAC,GAAuB,EAC3B,IACED,QAAiB1b,KAAK6Z,iBAAiB/R,KAAKgT,EAAIvZ,EACjD,CAAC,MAAOyG,GACP,KAAIA,aAAa2Q,GAaf,MAAM,IAAIzQ,EAAcF,GAZxB,GAAe,MAAXA,EAAE4T,KASJ,MAAM,IAAI1T,EAAcF,EAAEkM,SAP1BwH,EAAW,IAAIzC,GAAY,CACzB7X,GAAI0Z,EACJH,QAAS,EACTkB,YAAa7b,KAAKga,UAAUzY,KAE9Boa,GAAc,CAOnB,CAED,MAAMG,EAAYJ,EAASf,QAGrBoB,EAAqBjD,GAAI2C,EAAavV,GACtC8V,EAAmBxQ,GAAIsQ,EAAW5V,GAElC+V,EAAoBjX,OAAO2E,OAAO,CAAA,EAAI6R,EAAY,CACtDb,QAASoB,UAGL/b,KAAK6Z,iBAAiBpR,OAAOwT,EAAmB1a,GAEtD,MAAM2a,EAAkBlX,OAAO2E,OAAO,CAAA,EAAI+R,EAAU,CAClDf,QAASqB,IAGPL,QACI3b,KAAK6Z,iBAAiBnR,OAAOwT,EAAiB3a,SAE9CvB,KAAK6Z,iBAAiBpR,OAAOyT,EAAiB3a,GAItD,MAAM4a,EAAgB,CAAE5Z,OAAMuY,KAAI5U,MAAOA,GAYzC,OAVAlG,KAAKsH,KACF8U,QACCrD,GACAY,GAAY0C,SACZ,GACAF,EACA5a,GAED+a,OAAOtU,GAAM1G,EAAImR,MAAM,8BAA8BzK,MAEjD,CACR,CAYK,aAAAuU,CACJ5U,EACAuT,EACAhV,SAGMlG,KAAKia,iBAAiBtS,GAC5B,MAAMpG,IAAEA,EAAG8M,QAAEA,SAAkBrO,KAAKyB,OAAO,CAACkG,GAAU3H,KAAKuc,SAErD7a,EAAQH,EAAInB,SAASuM,QAE3B,IAAIwO,QAAkBnb,KAAKob,cAAc1Z,EAAOwZ,EAAS3Z,GAIzD,UAF0BvB,KAAK6Z,iBAAiB/R,KAAKpG,KAAU2M,IAE/CsM,QAAUzU,EACxB,MAAM,IAAIsS,GAAa,kBAAkB9W,6BAGvCyZ,GAEFA,EAAUjV,MAAQA,QACZlG,KAAK+Z,oBAAoBtR,OAAO0S,KAAc9M,KAEpD8M,EAAY,IAAIjC,GAAU,CACxBxX,MAAOA,EACPwZ,QAASA,EACThV,MAAOA,UAGHlG,KAAK+Z,oBAAoBrR,OAAOyS,KAAc9M,IAItD,MAAMmO,EAAgB,CAAE9a,QAAOwZ,UAAShV,MAAOA,GAS/C,OARAlG,KAAKsH,KAAK8U,QACRrD,GACAY,GAAY8C,SACZ,GACAD,EACAjb,IAGK,CACR,CAWK,eAAA2X,CACJvR,EACAjG,EACAwZ,SAGMlb,KAAKia,iBAAiBtS,GAC5B,MAAMpG,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAKkZ,WAE5CiC,QAAkBnb,KAAKob,cAAc1Z,EAAOwZ,EAAS3Z,GAE3D,IAAK4Z,EACH,MAAM,IAAI1C,GACR,WAAWyC,2BAAiCxZ,KAGhD,OAAOyZ,EAAUjV,KAClB,CAED,mBAAMkV,CACJ1Z,EACAwZ,EACA3Z,GAEA,MAAMmb,EAAqB/X,EAAUC,IACnCD,EAAUE,UAAqB,SAASC,GAAGpD,GAC3CiD,EAAUE,UAAqB,WAAWC,GAAGoW,IAGzCC,QAAkBnb,KAAK+Z,oBAC1BP,SACAmD,MAAMD,GACNhD,QAAQnY,GACX,OAAO4Z,IAAY,EACpB,CAcD,gBAAMyB,CAAWjV,EAAkBkU,GACjC,MAAMta,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAK4c,YAGlD,UADqB5c,KAAK8Z,gBAAgBN,SAASE,QAAQnY,IAChD2D,OAAS,EAClB,MAAM,IAAIuP,EACR,6EAQJ,OAJAoH,EAAMna,MAAQH,EAAInB,SAASuM,cAErB3M,KAAK8Z,gBAAgBpR,OAAOmT,EAAOta,IAElC,CACR,CAID,sBAAM0Y,CAAiBtS,GACrB,MAAMpG,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAKia,kBAElD,GAAqB,UADAja,KAAK8Z,gBAAgBN,SAASE,QAAQnY,IAChD2D,OACT,MAAM,IAAIwT,GACR,wGAGL,CAWD,UAAMmE,CAAKlV,EAAkBmV,SAErB9c,KAAKia,iBAAiBtS,GAE5B,MAAMpG,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAK6c,MAG5CE,EAASxb,EAAInB,SAASuM,QAE5B,GAAc,GAAVmQ,EACF,MAAM,IAAIE,EAAgB,0CAG5B,IAAIC,EACJ,IACEA,QAAqBjd,KAAK6Z,iBAAiB/R,KAAKiV,EAAQxb,GAExD,MAEM2b,EAAiB1R,GAFAyR,EAAatC,QAEOmC,GAErCK,EAAgBnY,OAAO2E,OAAO,CAAA,EAAIsT,EAAc,CACpDtC,QAASuC,UAGLld,KAAK6Z,iBAAiBpR,OAAO0U,EAAe5b,EACnD,CAAC,MAAOyG,GACP,KAAIA,aAAa2Q,GAaf,MAAM,IAAIzQ,EAAcF,GAZxB,GAAe,MAAXA,EAAE4T,KASJ,MAAM,IAAI1T,EAAcF,EAAEkM,SATR,CAElB,MAAMkJ,EAAY,IAAInE,GAAY,CAChC7X,GAAI2b,EACJpC,QAASmC,EACTjB,YAAa7b,KAAKga,UAAUrS,WAExB3H,KAAK6Z,iBAAiBnR,OAAO0U,EAAW7b,EAC/C,CAMJ,CAGD,MAAM4a,EAAgB,CAAE5Z,KAAM,MAAOuY,GAAIiC,EAAQ7W,MAAO4W,GAEtD9c,KAAKsH,KAAK/G,kBACCU,gBACX8X,GACAY,GAAY0C,SACZ,GACAF,EACA5a,EAEH,CAWD,UAAM8b,CAAK1V,EAAkBmV,SAErB9c,KAAKia,iBAAiBtS,GAE5B,MAAMrG,IAAEA,EAAGC,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAKqd,MAEjDN,EAASxb,EAAInB,SAASuM,QAEtBsQ,QAAqBjd,KAAK6Z,iBAAiB/R,KAAKiV,EAAQxb,GAExD+b,EAAiBL,EAAatC,QAEpC,GAAqBmC,EAAjBQ,EACF,MAAM,IAAI9E,GAAa,kCAGzB,MAAM0E,EAAiBpE,GAAIwE,EAAgBR,GAErCK,EAAgBnY,OAAO2E,OAAO,CAAA,EAAIsT,EAAc,CACpDtC,QAASuC,UAGLld,KAAK6Z,iBAAiBpR,OAAO0U,EAAe5b,GAElDD,EAAIuM,KAAQiP,EAAH,uBAGT,MAAMX,EAAgB,CAAE5Z,KAAMwa,EAAQjC,GAAI,MAAO5U,MAAO4W,GAEtD9c,KAAKsH,KAAK/G,kBACCU,gBACX8X,GACAY,GAAY0C,SACZ,GACAF,EACA5a,EAEH,CAYK,cAAA0Z,CACJtT,EACA4V,EACAT,SAGM9c,KAAKia,iBAAiBtS,GAE5B,MAAMrG,IAAEA,EAAGC,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAKib,UAEjDuC,QAAsBxd,KAAK6Z,iBAAiB/R,KAAKyV,EAAShc,GAE1D+b,EAAiBE,EAAc7C,QAErC,GAAqBmC,EAAjBQ,EACF,MAAM,IAAI9E,GAAgB+E,EAAH,4BAGzB,MAAML,EAAiBpE,GAAIwE,EAAgBR,GAErCW,EAAiBzY,OAAO2E,OAAO,CAAA,EAAI6T,EAAe,CACtD7C,QAASuC,UAGLld,KAAK6Z,iBAAiBpR,OAAOgV,EAAgBlc,GAEnDD,EAAIuM,KAAK,GAAGiP,6BAAkCS,KAG9C,MAAMpB,EAAgB,CAAE5Z,KAAMgb,EAASzC,GAAI,MAAO5U,MAAO4W,GAEvD9c,KAAKsH,KAAK/G,kBACCU,gBACX8X,GACAY,GAAY0C,SACZ,GACAF,EACA5a,EAEH,CASD,0BAAMmc,CAAqBnc,SAEnBvB,KAAKia,iBAAiB1Y,GAG5B,MAAMoc,EAAkBpc,EAAIkQ,eAAe9E,QAErCiR,QAAqB5d,KAAK6Z,iBAAiB/R,KAAK6V,EAAiBpc,GAEvE,IAAKqc,EACH,MAAM,IAAIpF,GAAa,eAAemF,oBAGxC,OAAOC,EAAajD,OACrB,CAMD,qBAAMkD,CAAgBlW,SAEd3H,KAAKia,iBAAiBtS,GAC5B,MAAMpG,IAAEA,SAAcvB,KAAKyB,OAAO,CAACkG,GAAU3H,KAAK6d,iBAIlD,OADwBtc,EAAInB,SAASuM,OAEtC,EAlmBK9F,GAAA,CADLuR,GAAY,sDACQxY,qCAQpBga,GAAA9S,UAAA,YAAA,MASKD,GAAA,CADLuR,GAAY,sDACKxY,qCAQjBga,GAAA9S,UAAA,SAAA,MAUKD,GAAA,CADLuR,GAAY,sDACOxY,qCAQnBga,GAAA9S,UAAA,WAAA,MASKD,GAAA,CADLuR,GAAY,sDACUxY,qCAkBtBga,GAAA9S,UAAA,cAAA,MAUKD,GAAA,CADLuR,GAAY,sDACQxY,EAAOoO,0CAO3B4L,GAAA9S,UAAA,YAAA,MAaKD,GAAA,CADLuR,uDAEUxY,EAAOoO,OAAAoI,0CAgBjBwD,GAAA9S,UAAA,WAAA,MAYKD,GAAA,CADLuR,uDAEUxY,EAAOoO,OAAAA,OAAAoI,0CA4CjBwD,GAAA9S,UAAA,eAAA,MAwGKD,GAAA,CADLuR,uDAEUxY,EAAOoO,OAAAoI,0CA2CjBwD,GAAA9S,UAAA,UAAA,MAWKD,GAAA,CADLuR,GAAY,sDAEFxY,EAAOoO,OAAAA,0CAgBjB4L,GAAA9S,UAAA,YAAA,MA+BKD,GAAA,CADLuR,+BACyB0F,GAAA,oBAAA,CAAAle,EAAgBmZ,sCAezCa,GAAA9S,UAAA,aAAA,MAIKD,GAAA,CADLuR,GAAY,sDACmBxY,qCAQ/Bga,GAAA9S,UAAA,mBAAA,MAWKD,GAAA,CAFLsS,KACAf,uDACmBxY,EAAOwW,0CAuD1BwD,GAAA9S,UAAA,OAAA,MAWKD,GAAA,CAFLsS,KACAf,uDACmBxY,EAAOwW,0CAqC1BwD,GAAA9S,UAAA,OAAA,MAYKD,GAAA,CAFLsS,KACAf,uDAEUxY,EAAOoO,OAAAoI,0CAsCjBwD,GAAA9S,UAAA,WAAA,MASKD,GAAA,CADLuR,GAAY,sDACmBxY,qCAc/Bga,GAAA9S,UAAA,uBAAA,MAMKD,GAAA,CADLuR,GAAY,sDACkBxY,qCAQ9Bga,GAAA9S,UAAA,kBAAA,MC5qBU,MAAAiX,GAAmB,CAACnE,ICuC3B,MAAOoE,WAAuBC,GAMlC,WAAApe,CACE8H,EACAuW,EACA3c,GAEAzB,MAAM6H,EAASuW,GAKble,KAAKuO,OAHFhN,EAGWA,EAAI4c,QAAQC,UAAUzW,GAFtB,IAAIsW,GAAWtW,EAASuW,EAIzC,CAUkB,GAAA5c,CACjB+c,EACApK,EACAqK,GAEA,GACEC,GAAiBve,KAAK2N,OAAO,UAC7B4Q,GAAiBF,GAEjB,OAEF,IAAI1G,EACJ,OAAQ0G,GACN,KAAKG,GAAS3Q,KACZ8J,EAAS3X,KAAKuO,OAAOV,KACrB,MACF,KAAK2Q,GAASpQ,QACZuJ,EAAS3X,KAAKuO,OAAOH,QACrB,MACF,KAAKoQ,GAASzc,MACZ4V,EAAS3X,KAAKuO,OAAOxM,MACrB,MACF,KAAKyc,GAAS/L,MACZkF,EAAS3X,KAAKuO,OAAOkE,MACrB,MACF,KAAK+L,GAAShO,MACZmH,EAAS3X,KAAKuO,OAAOiC,MACrB,MACF,QACE,MAAM,IAAItI,EAAc,qBAE5ByP,EAAO8G,KAAKze,KAAKuO,OAAQvO,KAAK0e,UAAUL,EAAOpK,EAAKqK,GACrD,EA0BHK,GAAQC,YAbuB,CAC7BC,EACAlR,EACApM,IAEO,IAAIyc,GACTa,GAAUb,GAAenc,KACzB8L,GAAU,CAAA,EACVpM,KC1HG,MAAMud,GAAU,cACVC,GAAe,cAE5Bvb,GAASwb,gBAAgBD,GAAcD"}
|
|
1
|
+
{"version":3,"file":"for-fabric.js","sources":["../src/contracts/ContractContext.ts","../src/contracts/FabricContractRepositoryObservableHandler.ts","../src/shared/events.ts","../src/contracts/FabricContractRepository.ts","../src/contracts/FabricContractStatement.ts","../src/shared/constants.ts","../src/shared/SimpleDeterministicSerializer.ts","../src/contracts/FabricConstruction.ts","../src/contracts/ContractAdapter.ts","../src/shared/DeterministicSerializer.ts","../src/contracts/crud/crud-contract.ts","../src/contracts/crud/serialized-crud-contract.ts","../src/shared/errors.ts","../src/shared/math.ts","../src/contracts/erc20/models.ts","../src/shared/decorators.ts","../src/shared/erc20/erc20-constants.ts","../src/contracts/erc20/erc20contract.ts","../src/contracts/erc20/index.ts","../src/contracts/logging.ts","../src/version.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["FabricContractContext","Context","constructor","super","stub","this","get","timestamp","getDateTimestamp","identity","toString","FabricContractRepositoryObservableHandler","ObserverHandler","supportedEvents","OperationKeys","CREATE","UPDATE","DELETE","BulkCrudOperationKeys","CREATE_ALL","UPDATE_ALL","DELETE_ALL","updateObservers","clazz","event","id","args","log","ctx","Adapter","logCtx","owner","payload","table","name","indexOf","debug","eventName","params","push","join","generateFabricEventName","setEvent","Buffer","from","JSON","stringify","FabricContractRepository","Repository","adapter","trackedEvents","FabricStatement","CouchDBStatement","raw","rawInput","results","pkAttr","Model","pk","fromSelector","type","Metadata","key","DBKeys","ID","selectSelector","map","r","processRecord","build","selectors","CouchDBKeys","TABLE","tableName","query","selector","fields","whereCondition","condition","parseCondition","Condition","and","attribute","eq","selectorKeys","Object","keys","length","values","CouchDBGroupOperator","AND","reduce","accum","val","Error","k","OR","s","entries","result","forEach","orderBySelector","sort","value","rec","CouchDBOperator","BIGGER","limitSelector","limit","offsetSelector","skip","FabricModelKeys","IdentityType","FabricFlavour","SimpleDeterministicSerializer","JSONSerializer","deserialize","str","parse","serialize","model","require","sortKeysRecursive","preSerialize","assign","async","oneToOneOnCreate","context","data","propertyValue","innerRepo","repositoryFromTypeMetadata","alias","read","cacheModelForPopulate","class","InternalError","repo","forModel","created","create","oneToOneOnUpdate","cascade","update","Cascade","CASCADE","updated","createOrUpdate","oneToOneOnDelete","deleted","delete","oneToManyOnCreate","propertyValues","arrayType","every","item","uniqueValues","Set","pkName","m","record","add","oneToManyOnDelete","isInstantiated","v","populate","nested","isArr","Array","isArray","res","c","propName","propKeyValues","cacheKey","proKeyValue","getPopulateKey","e","fetchPopulateValues","createdByOnFabricCreateUpdate","user","getID","UnsupportedError","pkFabricOnCreate","sequence","sequenceName","Sequence","next","defineProperty","enumerable","writable","configurable","FabricContractAdapter","CouchDBAdapter","getClient","textDecoder","TextDecoder","serializer","repository","scope","config","for","info","composedKey","createCompositeKey","String","putState","parseError","readState","verbose","ctxArgs","deleteState","logger","forPrivate","collection","toOverride","queryResult","queryResultPaginated","fn","Proxy","target","prop","receiver","includes","apply","thisArg","argsList","putPrivateData","deletePrivateData","getPrivateData","getPrivateDataQueryResult","iterator","count","reachedBookmark","lastKey","recordKey","recordValue","Key","Record","close","metadata","fetchedRecordsCount","bookmark","done","Reflect","SerializationError","silly","getState","NotFoundError","getQueryResult","getQueryResultWithPagination","mergeModels","extract","finalModel","pop","decode","buffer","flags","operation","ensureLogger","base","clear","fabricCtx","accumulate","clientIdentity","baseFlags","correlationId","getTxID","index","models","Promise","resolve","undefined","resultIterator","isHistory","allResults","jsonRes","TxId","txId","Timestamp","Value","err","error","shift","Statement","createAll","tableLabel","all","i","updateAll","prepare","split","segregate","mappedProp","columnName","isReserved","transient","revert","obj","ob","createPrefix","updatePrefix","createAllPrefix","ids","records","updateAllPrefix","reason","msg","message","ConflictError","BadRequestError","QueryError","PagingError","MigrationError","ObserverError","AuthorizationError","ForbiddenError","ConnectionError","decoration","Decoration","flavouredAs","PersistenceKeys","CREATED_BY","define","onCreate","propMetadata","UPDATED_BY","onCreateUpdate","decorator","options","groupsort","attr","required","readonly","COLUMN","extend","FabricProperty","FabricObject","ONE_TO_ONE","joinColumnOpts","fk","meta","joinTable","relation","Number","BigInt","onUpdate","onDelete","afterAny","ONE_TO_MANY","joinTableOpts","list","oneToManyOnUpdate","setCurrent","DeterministicSerializer","FabricCrudContract","Contract","initialized","getTransientData","merge","transientMap","getTransient","has","deleteAll","readAll","docsOnly","init","healthcheck","method","bind","overrides","READ","READ_ALL","getOp","SerializedCrudContract","parsedKeys","modelList","parsedInput","__decorate","Transaction","Ctx","prototype","Boolean","OverflowError","BalanceError","AllowanceError","NotInitializedError","BaseError","a","b","sub","ERC20Token","BaseModel","column","ERC20Wallet","Allowance","Owner","propertyKey","descriptor","originalMethod","acountId","select","tokens","execute","ERC20Events","FabricERC20Contract","walletRepository","tokenRepository","allowanceRepository","TokenName","CheckInitialized","Symbol","symbol","Decimals","decimals","TotalSupply","wallets","getName","total","wallet","balance","BalanceOf","Transfer","to","_transfer","TransferFrom","BurnFrom","spender","allowance","_getAllowance","currentAllowance","updatedAllowance","newAllowance","fromWallet","fromBalance","toWallet","newToWallet","code","token","toBalance","fromUpdatedBalance","toUpdatedBalance","updatedFromWallet","updatedToWallet","transferEvent","refresh","TRANSFER","catch","Approve","approvalEvent","APPROVAL","allowanceCondition","where","Initialize","Mint","amount","minter","ValidationError","minterWallet","updatedBalance","updatedminter","newWallet","Burn","currentBalance","account","accountWallet","updatedaccount","ClientAccountBalance","clientAccountID","clientWallet","ClientAccountID","__metadata","contracts","ContractLogger","MiniLogger","conf","logging","getLogger","level","stack","NumericLogLevels","LogLevel","call","createLog","Logging","setFactory","object","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@ const fabric_contract_api_1 = require("fabric-contract-api");
|
|
|
11
11
|
const core_1 = require("@decaf-ts/core");
|
|
12
12
|
const FabricContractRepository_1 = require("./FabricContractRepository.cjs");
|
|
13
13
|
const FabricContractStatement_1 = require("./FabricContractStatement.cjs");
|
|
14
|
-
const FabricContractSequence_1 = require("./FabricContractSequence.cjs");
|
|
15
14
|
const constants_1 = require("./../shared/constants.cjs");
|
|
16
15
|
const SimpleDeterministicSerializer_1 = require("./../shared/SimpleDeterministicSerializer.cjs");
|
|
17
16
|
const FabricConstruction_1 = require("./FabricConstruction.cjs");
|
|
@@ -589,9 +588,6 @@ class FabricContractAdapter extends for_couchdb_1.CouchDBAdapter {
|
|
|
589
588
|
Statement() {
|
|
590
589
|
return new FabricContractStatement_1.FabricStatement(this);
|
|
591
590
|
}
|
|
592
|
-
async Sequence(options) {
|
|
593
|
-
return new FabricContractSequence_1.FabricContractSequence(options, this);
|
|
594
|
-
}
|
|
595
591
|
async createAll(tableName, id, model, ...args) {
|
|
596
592
|
if (id.length !== model.length)
|
|
597
593
|
throw new db_decorators_1.InternalError("Ids and models must have the same length");
|
|
@@ -5,7 +5,7 @@ import { FabricContractContext } from "./ContractContext";
|
|
|
5
5
|
import { BaseError, Context, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
6
6
|
import { Context as Ctx } from "fabric-contract-api";
|
|
7
7
|
import { Logger } from "@decaf-ts/logging";
|
|
8
|
-
import { RelationsMetadata,
|
|
8
|
+
import { RelationsMetadata, SequenceOptions, Adapter, PreparedModel, Repository } from "@decaf-ts/core";
|
|
9
9
|
import type { ContextualArgs, MaybeContextualArg } from "@decaf-ts/core";
|
|
10
10
|
import { FabricContractRepository } from "./FabricContractRepository";
|
|
11
11
|
import { ChaincodeStub, Iterators, StateQueryResponse } from "fabric-shim-api";
|
|
@@ -261,7 +261,6 @@ export declare class FabricContractAdapter extends CouchDBAdapter<any, void, Fab
|
|
|
261
261
|
*/
|
|
262
262
|
raw<R>(rawInput: MangoQuery, ...args: ContextualArgs<FabricContractContext>): Promise<R>;
|
|
263
263
|
Statement<M extends Model>(): FabricStatement<M, any>;
|
|
264
|
-
Sequence(options: SequenceOptions): Promise<Sequence>;
|
|
265
264
|
createAll<M extends Model>(tableName: Constructor<M>, id: PrimaryKeyType[], model: Record<string, any>[], ...args: ContextualArgs<FabricContractContext>): Promise<Record<string, any>[]>;
|
|
266
265
|
updateAll<M extends Model>(tableName: Constructor<M>, id: PrimaryKeyType[], model: Record<string, any>[], ...args: ContextualArgs<FabricContractContext>): Promise<Record<string, any>[]>;
|
|
267
266
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ContractAdapter.js","sourceRoot":"","sources":["../../src/contracts/ContractAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
// processModel,
|
|
14
14
|
// } from "./private-data";
|
|
15
15
|
// import { UnauthorizedPrivateDataAccess } from "../shared/errors";
|
|
16
|
-
// import { FabricContractSequence } from "./FabricContractSequence";
|
|
17
16
|
// import { Sequence, SequenceOptions } from "@decaf-ts/core";
|
|
18
17
|
// import { FabricContractContext } from "./ContractContext";
|
|
19
18
|
// import { CouchDBKeys, MangoQuery } from "@decaf-ts/for-couchdb";
|
|
@@ -34,10 +33,6 @@
|
|
|
34
33
|
// this.collections = collections || [];
|
|
35
34
|
// }
|
|
36
35
|
//
|
|
37
|
-
// override async Sequence(options: SequenceOptions): Promise<Sequence> {
|
|
38
|
-
// return new FabricContractSequence(options, this, this.collections);
|
|
39
|
-
// }
|
|
40
|
-
//
|
|
41
36
|
// /**
|
|
42
37
|
// * @description Reads a record from the state database
|
|
43
38
|
// * @summary Retrieves and deserializes a record from the Fabric state database
|