@super-protocol/sdk-js 3.11.7 → 3.11.8-beta.0
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/dist/cjs/RIGenerator.js +2 -2
- package/dist/cjs/TIIGenerator.js +2 -2
- package/dist/cjs/TeeInputGeneratorBase.d.ts +2 -2
- package/dist/cjs/TeeInputGeneratorBase.js +5 -5
- package/dist/cjs/contracts/abi.d.ts +750 -729
- package/dist/cjs/contracts/abi.js +952 -928
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.js +3 -5
- package/dist/cjs/models/Provider.d.ts +0 -1
- package/dist/cjs/models/Provider.js +1 -7
- package/dist/cjs/models/TCB.d.ts +1 -28
- package/dist/cjs/models/TCB.js +1 -61
- package/dist/cjs/models/TeeOffer.d.ts +3 -18
- package/dist/cjs/models/TeeOffer.js +14 -100
- package/dist/cjs/staticModels/Consensus.d.ts +5 -15
- package/dist/cjs/staticModels/Consensus.js +16 -86
- package/dist/cjs/staticModels/TeeOffers.d.ts +0 -6
- package/dist/cjs/staticModels/TeeOffers.js +3 -14
- package/dist/cjs/tee/TeeBlockVerifier.d.ts +7 -2
- package/dist/cjs/tee/TeeBlockVerifier.js +6 -18
- package/dist/cjs/tee/statuses.d.ts +0 -7
- package/dist/cjs/tee/statuses.js +2 -10
- package/dist/cjs/types/Consensus.d.ts +14 -31
- package/dist/cjs/types/Consensus.js +2 -10
- package/dist/cjs/types/TeeOfferInfo.d.ts +2 -2
- package/dist/cjs/utils/helper.d.ts +2 -4
- package/dist/cjs/utils/helper.js +50 -34
- package/dist/mjs/RIGenerator.js +2 -2
- package/dist/mjs/TIIGenerator.js +2 -2
- package/dist/mjs/TeeInputGeneratorBase.d.ts +2 -2
- package/dist/mjs/TeeInputGeneratorBase.js +5 -5
- package/dist/mjs/contracts/abi.d.ts +750 -729
- package/dist/mjs/contracts/abi.js +950 -926
- package/dist/mjs/index.d.ts +0 -1
- package/dist/mjs/index.js +1 -2
- package/dist/mjs/models/Provider.d.ts +0 -1
- package/dist/mjs/models/Provider.js +1 -7
- package/dist/mjs/models/TCB.d.ts +1 -28
- package/dist/mjs/models/TCB.js +2 -62
- package/dist/mjs/models/TeeOffer.d.ts +3 -18
- package/dist/mjs/models/TeeOffer.js +9 -95
- package/dist/mjs/staticModels/Consensus.d.ts +5 -15
- package/dist/mjs/staticModels/Consensus.js +17 -87
- package/dist/mjs/staticModels/TeeOffers.d.ts +0 -6
- package/dist/mjs/staticModels/TeeOffers.js +4 -15
- package/dist/mjs/tee/TeeBlockVerifier.d.ts +7 -2
- package/dist/mjs/tee/TeeBlockVerifier.js +6 -18
- package/dist/mjs/tee/statuses.d.ts +0 -7
- package/dist/mjs/tee/statuses.js +1 -9
- package/dist/mjs/types/Consensus.d.ts +14 -31
- package/dist/mjs/types/Consensus.js +1 -9
- package/dist/mjs/types/TeeOfferInfo.d.ts +2 -2
- package/dist/mjs/utils/helper.d.ts +2 -4
- package/dist/mjs/utils/helper.js +48 -30
- package/package.json +2 -2
- package/dist/cjs/tee/QuoteValidator.d.ts +0 -46
- package/dist/cjs/tee/QuoteValidator.js +0 -456
- package/dist/cjs/tee/TcbSerializer.d.ts +0 -20
- package/dist/cjs/tee/TcbSerializer.js +0 -27
- package/dist/mjs/tee/QuoteValidator.d.ts +0 -46
- package/dist/mjs/tee/QuoteValidator.js +0 -449
- package/dist/mjs/tee/TcbSerializer.d.ts +0 -20
- package/dist/mjs/tee/TcbSerializer.js +0 -23
package/dist/cjs/RIGenerator.js
CHANGED
|
@@ -31,7 +31,7 @@ class RIGenerator extends TeeInputGeneratorBase_js_1.default {
|
|
|
31
31
|
runtimeInputInfos: params.runtimeInputInfos,
|
|
32
32
|
...(params.argsHash && { argsHash: params.argsHash }),
|
|
33
33
|
};
|
|
34
|
-
const encryptedInfo = await this.encryptByTeeBlock(params.offerId, JSON.stringify(orderInfoToEncrypt)
|
|
34
|
+
const encryptedInfo = await this.encryptByTeeBlock(params.offerId, JSON.stringify(orderInfoToEncrypt));
|
|
35
35
|
return {
|
|
36
36
|
publicKey: JSON.stringify(publicKey),
|
|
37
37
|
encryptedInfo: JSON.stringify(encryptedInfo),
|
|
@@ -46,4 +46,4 @@ class RIGenerator extends TeeInputGeneratorBase_js_1.default {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
exports.default = RIGenerator;
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUklHZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUklHZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtREFRZ0M7QUFDaEMsbUNBQW9DO0FBRXBDLGlFQUF1QztBQUN2QywwRkFBK0Q7QUFFL0QsTUFBTSxXQUFZLFNBQVEsa0NBQXFCO0lBQzdDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsbUJBQWtDO1FBQ2xFLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxrQkFBTSxDQUFDLFVBQVUsQ0FDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFJLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQ25FLEVBQUUsUUFBUSxFQUFFLGlCQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxzQkFBYSxDQUFDLE1BQU0sRUFBRSxDQUMxRCxDQUFDO1FBRUYsT0FBTztZQUNMLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO1lBQzNCLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO1lBQ3BDLElBQUksRUFBRSx3QkFBZSxDQUFDLEtBQUs7U0FDNUIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQU1yQjtRQUNDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFMUUsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sSUFBSSxHQUFHLElBQUEsbUJBQVUsRUFBQyxXQUFXLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEYsTUFBTSxTQUFTLEdBQUc7WUFDaEIsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQ2xELFFBQVEsRUFBRSxpQkFBUSxDQUFDLE1BQU07WUFDekIsSUFBSSxFQUFFLHdCQUFlLENBQUMsS0FBSztTQUNkLENBQUM7UUFFaEIsTUFBTSxrQkFBa0IsR0FBdUI7WUFDN0MsU0FBUyxFQUFFLGdCQUFnQjtZQUMzQixpQkFBaUIsRUFBRSxNQUFNLENBQUMsaUJBQWlCO1lBQzNDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN0RCxDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQ2hELE1BQU0sQ0FBQyxPQUFPLEVBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUNuQyxDQUFDO1FBRUYsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUNwQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDeEIsbUJBQStCLEVBQy9CLFVBQWtCO1FBRWxCLE1BQU0sR0FBRyxHQUFHLE1BQU0sa0JBQU0sQ0FBQyxPQUFPLENBQUM7WUFDL0IsR0FBRyxtQkFBbUI7WUFDdEIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1NBQ3ZELENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFFRCxrQkFBZSxXQUFXLENBQUMifQ==
|
package/dist/cjs/TIIGenerator.js
CHANGED
|
@@ -8,7 +8,7 @@ const index_js_2 = require("./models/index.js");
|
|
|
8
8
|
const TeeInputGeneratorBase_js_1 = __importDefault(require("./TeeInputGeneratorBase.js"));
|
|
9
9
|
class TIIGenerator extends TeeInputGeneratorBase_js_1.default {
|
|
10
10
|
static async buildTII(params) {
|
|
11
|
-
const triEncryption = await this.getVerifiedBlockEncryption(params.offerId
|
|
11
|
+
const triEncryption = await this.getVerifiedBlockEncryption(params.offerId);
|
|
12
12
|
const teeOffer = new index_js_2.TeeOffer(params.offerId);
|
|
13
13
|
const teeOfferInfo = await teeOffer.getInfo();
|
|
14
14
|
const resourceEncryption = JSON.parse(teeOfferInfo.argsPublicKey);
|
|
@@ -57,4 +57,4 @@ class TIIGenerator extends TeeInputGeneratorBase_js_1.default {
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
exports.default = TIIGenerator;
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVElJR2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RJSUdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlFQUF1QztBQUN2QyxnREFBb0Q7QUFVcEQsMEZBQStEO0FBRS9ELE1BQU0sWUFBYSxTQUFRLGtDQUFxQjtJQUNwQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDN0IsTUFHQztRQUVELE1BQU0sYUFBYSxHQUFlLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RixNQUFNLFFBQVEsR0FBYSxJQUFJLG1CQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFpQixNQUFNLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1RCxNQUFNLGtCQUFrQixHQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sR0FBRyxHQUFlO1lBQ3RCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7WUFDM0MsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1NBQzlCLENBQUM7UUFDRixPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsTUFBTSxrQkFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxrQkFBa0IsQ0FBQztZQUM1RixZQUFZLEVBQUUsTUFBTSxrQkFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLGFBQWEsQ0FBQztTQUN2RSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQTZCO1FBQ3hELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUMxQixPQUFxQixFQUNyQixRQUFrQixFQUNsQixJQUFhLEVBQ2IsVUFBc0IsRUFDdEIsU0FBaUI7UUFFakIsTUFBTSxLQUFLLEdBQVUsSUFBSSxnQkFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLE1BQU0sYUFBYSxHQUFHLE1BQU0sS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFVLElBQUksZ0JBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxNQUFNLGVBQWUsR0FBYyxNQUFNLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDMUIsT0FBTyxFQUFFLGVBQWUsQ0FBQyxPQUFPO1lBQ2hDLFFBQVE7WUFDUixJQUFJO1lBQ0osVUFBVTtZQUNWLFNBQVM7WUFDVCxpQkFBaUIsRUFBRSxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUN6RixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBVyxFQUFFLGFBQXFCO1FBQzNELE1BQU0sTUFBTSxHQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRSxNQUFNLFNBQVMsR0FBVyxNQUFNLGtCQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVwRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQVcsRUFBRSxhQUFxQjtRQUNwRCxNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxXQUFXLENBQWMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUksR0FBVyxFQUFFLGFBQXFCO1FBQzVELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxpQkFBK0IsQ0FBQztRQUMxRSxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzRSxNQUFNLFFBQVEsR0FBVyxNQUFNLGtCQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFakUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBTSxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQVdELGtCQUFlLFlBQVksQ0FBQyJ9
|
|
@@ -4,6 +4,6 @@ export default class TeeInputGeneratorBase {
|
|
|
4
4
|
protected static generateRiiByOfferId(offerId: VersionedOfferId): Promise<RuntimeInputInfo | null>;
|
|
5
5
|
static generateRiiByOfferIds(inputOffersIds: BlockchainId[]): Promise<RuntimeInputInfo[]>;
|
|
6
6
|
static generateRiiByOfferIds(inputOffersIds: VersionedOfferId[]): Promise<RuntimeInputInfo[]>;
|
|
7
|
-
static encryptByTeeBlock(offerId: string, data: string
|
|
8
|
-
protected static getVerifiedBlockEncryption(offerId: string
|
|
7
|
+
static encryptByTeeBlock(offerId: string, data: string): Promise<Encryption>;
|
|
8
|
+
protected static getVerifiedBlockEncryption(offerId: string): Promise<Encryption>;
|
|
9
9
|
}
|
|
@@ -67,11 +67,11 @@ class TeeInputGeneratorBase {
|
|
|
67
67
|
const inputs = await Promise.all(versionedOfferIds.map(TeeInputGeneratorBase.generateRiiByOfferId));
|
|
68
68
|
return inputs.filter(Boolean);
|
|
69
69
|
}
|
|
70
|
-
static async encryptByTeeBlock(offerId, data
|
|
71
|
-
const encryption = await TeeInputGeneratorBase.getVerifiedBlockEncryption(offerId
|
|
70
|
+
static async encryptByTeeBlock(offerId, data) {
|
|
71
|
+
const encryption = await TeeInputGeneratorBase.getVerifiedBlockEncryption(offerId);
|
|
72
72
|
return index_js_3.default.encrypt(data, encryption);
|
|
73
73
|
}
|
|
74
|
-
static async getVerifiedBlockEncryption(offerId
|
|
74
|
+
static async getVerifiedBlockEncryption(offerId) {
|
|
75
75
|
const teeOffer = new index_js_1.TeeOffer(offerId);
|
|
76
76
|
const tcbId = await teeOffer.getActualTcbId();
|
|
77
77
|
if (Number.parseInt(tcbId) === 0) {
|
|
@@ -79,7 +79,7 @@ class TeeInputGeneratorBase {
|
|
|
79
79
|
}
|
|
80
80
|
const tcb = new index_js_1.TCB(tcbId);
|
|
81
81
|
const utilityData = await tcb.getUtilityData();
|
|
82
|
-
await TeeBlockVerifier_js_1.TeeBlockVerifier.verifyTcb(tcb, utilityData
|
|
82
|
+
await TeeBlockVerifier_js_1.TeeBlockVerifier.verifyTcb(tcb, utilityData);
|
|
83
83
|
// TODO: must be 'blockEncryption = JSON.parse(pubKey);'
|
|
84
84
|
return {
|
|
85
85
|
algo: dto_js_1.CryptoAlgorithm.ECIES,
|
|
@@ -89,4 +89,4 @@ class TeeInputGeneratorBase {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
exports.default = TeeInputGeneratorBase;
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVlSW5wdXRHZW5lcmF0b3JCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RlZUlucHV0R2VuZXJhdG9yQmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1EQU1nQztBQUNoQyxnREFBeUQ7QUFDekQsK0NBQXdGO0FBQ3hGLGlFQUF1QztBQUN2QyxtRUFBNkQ7QUFDN0QsaURBQTJDO0FBRTNDLE1BQU0sa0JBQWtCLEdBQUcsQ0FDekIsR0FBMkMsRUFDbEIsRUFBRTtJQUMzQixJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNsRCxPQUFPLENBQ0wsSUFBSSxJQUFJLEdBQUcsSUFBSSxTQUFTLElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FDakcsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQXFCLHFCQUFxQjtJQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUN6QyxPQUF5QjtRQUV6QixNQUFNLEtBQUssR0FBVSxJQUFJLGdCQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFjLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxTQUFvQixFQUFFLEtBQVksRUFBZ0MsRUFBRTtZQUMxRixRQUFRLFNBQVMsRUFBRSxDQUFDO2dCQUNsQixLQUFLLG9CQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztvQkFDeEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQzlDLE1BQU0sYUFBYSxHQUFHLE1BQU0sS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNsRCxJQUFJLENBQUMs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
|