@shipload/sdk 1.0.0-next.70 → 1.0.0-next.72
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/lib/shipload.d.ts +266 -101
- package/lib/shipload.js +898 -404
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +880 -398
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +51 -13
- package/lib/testing.js +209 -64
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +209 -64
- package/lib/testing.m.js.map +1 -1
- package/package.json +1 -1
- package/src/contracts/server.ts +140 -34
- package/src/data/capability-formulas.ts +4 -4
- package/src/data/entities.json +84 -68
- package/src/data/item-ids.ts +5 -4
- package/src/data/items.json +30 -24
- package/src/data/kind-registry.json +75 -39
- package/src/data/kind-registry.ts +13 -0
- package/src/data/metadata.ts +35 -0
- package/src/data/recipes.json +194 -155
- package/src/derivation/build-methods.test.ts +4 -4
- package/src/derivation/capabilities.test.ts +14 -10
- package/src/derivation/capabilities.ts +8 -10
- package/src/derivation/capability-mappings.ts +4 -4
- package/src/derivation/capacity-fn-registry.test.ts +9 -0
- package/src/derivation/capacity-fn-registry.ts +18 -0
- package/src/derivation/recipe-usage.test.ts +7 -11
- package/src/index-module.ts +28 -8
- package/src/influence/influence.test.ts +1 -1
- package/src/managers/actions.ts +19 -4
- package/src/managers/context.ts +9 -0
- package/src/managers/fund.ts +49 -0
- package/src/managers/index.ts +3 -0
- package/src/managers/jobs.test.ts +25 -9
- package/src/managers/jobs.ts +8 -4
- package/src/nft/description.ts +5 -10
- package/src/receipts.ts +9 -9
- package/src/resolution/resolve-item.test.ts +15 -10
- package/src/scheduling/jobs.test.ts +417 -18
- package/src/scheduling/jobs.ts +222 -16
- package/src/scheduling/lanes.ts +53 -1
- package/src/shipload.ts +5 -0
package/lib/shipload.m.js
CHANGED
|
@@ -851,7 +851,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
851
851
|
Contract: Contract$2
|
|
852
852
|
});
|
|
853
853
|
|
|
854
|
-
const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDi1AgthYmFuZG9ucGxvdAABB3Bsb3RfaWQGdWludDY0CmFkZGNvbnRyaWIABQZwbGF5ZXIEbmFtZQllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAZidW5kbGUMY2FyZ29faXRlbVtdCWFkZG1vZHVsZQAECWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCnRhcmdldF9yZWYKY2FyZ29fcmVmPwhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAlhZGRvcmFjbGUAAQlvcmFjbGVfaWQEbmFtZQ1iYWxsb3RfY3JlZGl0AAIHYWNjb3VudARuYW1lBmFtb3VudAZ1aW50NjQKYmFsbG90X3JvdwAHCWJhbGxvdF9pZAZ1aW50NjQEa2luZAV1aW50OAdzdWJqZWN0BnVpbnQ2NAVzZWF0cwZ1aW50MzINc2V0dGxlZF9lcG9jaAZ1aW50MzIFcXVldWUIdWludDMyW10GcGFya2VkD2JhbGxvdF9jcmVkaXRbXQ5iYWxsb3Rfc2VxX3JvdwADB25leHRfaWQGdWludDY0BmN1cnNvcgZ1aW50NjQJcGFnZV9yb3dzBnVpbnQzMgxiYWxsb3RfdGFsbHkAAgZvcHRpb24GdWludDMyBndlaWdodAZ1aW50NjQPYmFsbG90cGlja3Nfcm93AAIHYWNjb3VudARuYW1lBXBpY2tzCHVpbnQzMltdEGJhbGxvdHNldHRsZV9yb3cABgliYWxsb3RfaWQGdWludDY0BXJvdW5kBnVpbnQzMgZjdXJzb3IGdWludDY0DHRhcmdldF9lcG9jaAZ1aW50MzIHdGFsbGllcw5iYWxsb3RfdGFsbHlbXQZzZWF0ZWQIdWludDMyW10FYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQ9ib29raW5nX3JlY2VpcHQAAwZqb2JfaWQGdWludDY0CGxhbmRzX2F0CnRpbWVfcG9pbnQHcnVudGltZQZ1aW50MzIMYnVpbGRlcl9sYW5lAAQKc2xvdF9pbmRleAV1aW50OAVzcGVlZAZ1aW50MTYFZHJhaW4GdWludDMyCm91dHB1dF9wY3QGdWludDE2DWJ1aWxkaW5nc19yb3cAAgllbnRpdHlfaWQGdWludDY0CGJ1aWxkaW5nBXVpbnQ4CGJ1aWxkam9iAAUJdGFyZ2V0X2lkBnVpbnQ2NAdkb2NrX2lkBnVpbnQ2NARzbG90BXVpbnQ4DnRhcmdldF9pdGVtX2lkBnVpbnQxNgZpbnB1dHMMY2FyZ29faXRlbVtdDGJ1aWxkam9iX3JvdwALAmlkBnVpbnQ2NAhidWlsZGluZwZ1aW50NjQGc29ja2V0BXVpbnQ4BnRhcmdldAZ1aW50NjQFb3duZXIEbmFtZQZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbBBidWlsZGpvYnNfcmVzdWx0AAEEam9icw5idWlsZGpvYl9yb3dbXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAwJpZAZ1aW50NjQIbGFuZV9rZXkFdWludDgFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/C2NhbmNlbGJ1aWxkAAEGam9iX2lkBnVpbnQ2NAtjYW5jZWxjaXZpYwADCGJ1aWxkaW5nBnVpbnQ2NAhsYW5lX2tleQV1aW50OAdmcm9tX2lkBnVpbnQ2NApjYXJnb19pdGVtAAUHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10IcXVhbnRpdHkGdWludDMyCWVudGl0eV9pZAd1aW50NjQ/CWNhcmdvX3JlZgAEB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCWVudGl0eV9pZAd1aW50NjQ/CWNhcmdvX3JvdwAHAmlkBnVpbnQ2NAllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQtzZXF1ZW5jZV9pZAd1aW50NjQ/CmNhcmdvX3ZpZXcABgdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzICaWQGdWludDY0CWVudGl0eV9pZAd1aW50NjQ/CmNhc3RiYWxsb3QAAwZwbGF5ZXIEbmFtZQliYWxsb3RfaWQGdWludDY0BXBpY2tzCHVpbnQzMltdEGNoYXJ0ZXJfbm9kZV9kZWYABgdub2RlX2lkBnVpbnQzMgRjb3N0BnVpbnQ2NAdwcmVyZXFzCHVpbnQzMltdBmdyYW50cw1jaXZpY19ncmFudFtdD2V4Y2x1c2lvbl9ncm91cAZ1aW50MTYKcmVwZWF0X2NhcAV1aW50OBJjaGFydGVyX3JlYWR5X3ZpZXcAAwF4BWludDY0AXkFaW50NjQHbWFuZGF0ZQZ1aW50MzIOY2hhcnRlcl9yZXN1bHQADgtsb2NhdGlvbl9pZAZ1aW50NjQIbGlmZXRpbWUGdWludDY0BXNwZW50BnVpbnQ2NAp1bmFzc2lnbmVkBnVpbnQ2NAdtYW5kYXRlBnVpbnQzMgluZXh0X2Nvc3QGdWludDY0C3ByZXJlcXNfbWV0BGJvb2wJYnVpbGRhYmxlBGJvb2wFZXBvY2gGdWludDMyBWJ1aWx0DmNoYXJ0ZXJfdmlld1tdCWJhbGxvdF9pZAZ1aW50NjQIc2V0dGxpbmcEYm9vbAVxdWV1ZQtzZWF0X3ZpZXdbXQhwcm9ncmVzcw9wcm9ncmVzc192aWV3W10TY2hhcnRlcl90cmVlX3Jlc3VsdAABBW5vZGVzEmNoYXJ0ZXJfbm9kZV9kZWZbXQxjaGFydGVyX3ZpZXcAAgdub2RlX2lkBnVpbnQzMgdyZXBlYXRzBnVpbnQxNgxjaGFydGVycmVhZHkAAgF4BWludDY0AXkFaW50NjQTY2hhcnRlcnJlYWR5X3Jlc3VsdAABBndvcmxkcxRjaGFydGVyX3JlYWR5X3ZpZXdbXQ9jaXRpemVuc2hpcF9yb3cABAtsb2NhdGlvbl9pZAZ1aW50NjQIbGlmZXRpbWUGdWludDY0BmFjdGl2ZQZ1aW50NjQMYWN0aXZlX2Vwb2NoBnVpbnQzMgtjaXZpY19ncmFudAAEBGtpbmQFdWludDgIYnVpbGRpbmcFdWludDgEc3RhdAV1aW50OAV2YWx1ZQZ1aW50MTYPY2l2aWNjb25maWdfcm93AAELY2l2aWNfb3duZXIEbmFtZQxjaXZpY3NodXR0bGUABAhidWlsZGluZwZ1aW50NjQHZnJvbV9pZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQljbGFpbV9yb3cAAQVvd25lcgRuYW1lCmNsYWltYnVpbGQAAQZqb2JfaWQGdWludDY0CmNsYWltY3JhZnQAAgZqb2JfaWQGdWludDY0B3NoaXBfaWQGdWludDY0CWNsYWltcGxvdAADCmJ1aWxkZXJfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgRzbG90DGNsdXN0ZXJfc2xvdAxjbGFpbXN0YXJ0ZXIAAQVvd25lcgRuYW1lCWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/CmNsb3NlZXBvY2gAAQVlcG9jaAZ1aW50NjQMY2x1c3Rlcl9jZWxsAAMCZ3gEaW50OAJneQRpbnQ4BmVudGl0eQZ1aW50NjQLY2x1c3Rlcl9yb3cAAgRyb290BnVpbnQ2NAVjZWxscw5jbHVzdGVyX2NlbGxbXQxjbHVzdGVyX3Nsb3QAAwNodWIGdWludDY0Amd4BGludDgCZ3kEaW50OA5jbHVzdGVyX3NvdXJjZQACCXNvdXJjZV9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdDGNsdXN0ZXJjcmFmdAAGAmlkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgdzb3VyY2VzEGNsdXN0ZXJfc291cmNlW10GdGFyZ2V0B3VpbnQ2ND8Ec2xvdAZ1aW50OD8GY29tbWl0AAMJb3JhY2xlX2lkBG5hbWUFZXBvY2gGdWludDY0BmNvbW1pdAtjaGVja3N1bTI1Ngpjb21taXRfcm93AAQCaWQGdWludDY0BWVwb2NoBnVpbnQ2NAlvcmFjbGVfaWQEbmFtZQZjb21taXQLY2hlY2tzdW0yNTYJY29uZmlnbG9nAAEGY29uZmlnC2dhbWVfY29uZmlnC2Nvb3JkaW5hdGVzAAMBeAVpbnQ2NAF5BWludDY0AXoHdWludDE2Pwhjb3VwbGluZwADC2NvdW50ZXJwYXJ0CmVudGl0eV9yZWYEaG9sZAZ1aW50NjQEa2luZAV1aW50OAVjcmFmdAAGAmlkBnVpbnQ2NAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdBnRhcmdldAd1aW50NjQ/BHNsb3QGdWludDg/DGNyYWZ0ZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgFc3BlZWQGdWludDE2BWRyYWluBnVpbnQzMgpvdXRwdXRfcGN0BnVpbnQxNghjcmFmdGpvYgAGB3NoaXBfaWQGdWludDY0C3dvcmtzaG9wX2lkBnVpbnQ2NARzbG90BXVpbnQ4CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10MY3JhZnRqb2Jfcm93AA0CaWQGdWludDY0CGJ1aWxkaW5nBnVpbnQ2NAZzb2NrZXQFdWludDgFb3duZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzILZW5lcmd5X3BhaWQGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbBBjcmFmdGpvYnNfcmVzdWx0AAEEam9icw5jcmFmdGpvYl9yb3dbXQlkYmdjcmVkaXQABQVvd25lcgRuYW1lAXgFaW50NjQBeQVpbnQ2NA1hbW91bnRfYXRvbWljBnVpbnQ2NARub2RlB3VpbnQzMj8KZGJnbWFuZGF0ZQADAXgFaW50NjQBeQVpbnQ2NAdub2RlX2lkBnVpbnQzMgpkYmdvbGRqb2JzAAIGY3JhZnRzDmNyYWZ0am9iX3Jvd1tdBmJ1aWxkcw5idWlsZGpvYl9yb3dbXQtkYmdwYWdlcm93cwABBHJvd3MGdWludDMyCGRiZ3B1cmdlAAIKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CGRiZ3NlYXRzAAMBeAVpbnQ2NAF5BWludDY0BXNlYXRzBnVpbnQzMg1kZWNvbXBfYnVja2V0AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAhyYXdfbWFzcwZ1aW50MzINZGVjb21wX3Jlc3VsdAADB2l0ZW1faWQGdWludDE2DnByb2Nlc3NlZF9tYXNzBnVpbnQ2NAdidWNrZXRzD2RlY29tcF9idWNrZXRbXQlkZWxlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DWRlbWFuZF9yZXN1bHQABQ1hYnVuZGFudF9tYXNrBXVpbnQ4DGxhY2tpbmdfbWFzawV1aW50OAVhY3V0ZQV1aW50OAduZWVkX2ZwCHVpbnQ2NFtdBWVwb2NoBnVpbnQzMghkZW1vbGlzaAABCWVudGl0eV9pZAZ1aW50NjQGZGVwbG95AAMCaWQGdWludDY0A3JlZgljYXJnb19yZWYEc2xvdA1jbHVzdGVyX3Nsb3Q/CmRlcG90X3ZpZXcABApwbGF5ZXJfY2FwBnVpbnQ2NAtzdG9yZWRfbWFzcwZ1aW50NjQNcmVzZXJ2ZWRfbWFzcwZ1aW50NjQEcm93cw1zdG9yYWdlX3Jvd1tdCmRlcG90c3RvcmUAAwdzaGlwX2lkBnVpbnQ2NAhkZXBvdF9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdCWRlcG90dGFrZQADB3NoaXBfaWQGdWludDY0CGRlcG90X2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10KZGVzY2VudGl0eQAEB2l0ZW1faWQGdWludDE2Cmh1bGxfc3RhdHMGdWludDY0DG1vZHVsZV9pdGVtcwh1aW50MTZbXQxtb2R1bGVfc3RhdHMIdWludDY0W10GZW5hYmxlAAEHZW5hYmxlZARib29sDGVuZXJneV9zdGF0cwACCGNhcGFjaXR5BnVpbnQzMghyZWNoYXJnZQZ1aW50MzIUZW50aXR5X2N1cnJlbnRfc3RhdGUAAgtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kGdWludDMyD2VudGl0eV9kZWZhdWx0cwACC3dhcmVob3VzZV96BnVpbnQxNgtjb250YWluZXJfegZ1aW50MTYLZW50aXR5X2luZm8AGAR0eXBlBG5hbWUCaWQGdWludDY0BW93bmVyBG5hbWULZW50aXR5X25hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzB2l0ZW1faWQGdWludDE2CWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29fdmlld1tdB21vZHVsZXMObW9kdWxlX2VudHJ5W10GZW5lcmd5B3VpbnQzMj8IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10NYnVpbGRlcl9sYW5lcw5idWlsZGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQxwcm9qZWN0ZWRfYXQKdGltZV9wb2ludA1lbnRpdHlfbGF5b3V0AAMOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10NYmFzZV9odWxsbWFzcwZ1aW50MzIVZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwAMAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBWxhbmVzBmxhbmVbXQVob2xkcwZob2xkW10OZW50aXR5X3NlcV9yb3cAAQduZXh0X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQGdWludDMyEHNjaGVkdWxlX3N0YXJ0ZWQKdGltZV9wb2ludA9lbnRpdHlncm91cF9yb3cAAgJpZAZ1aW50NjQMcGFydGljaXBhbnRzDGVudGl0eV9yZWZbXQtlbnVtX21lbWJlcgACBXZhbHVlBXVpbnQ4BG5hbWUGc3RyaW5nC2VudW1fcmVzdWx0AAEHbWVtYmVycw1lbnVtX21lbWJlcltdCWVwb2NoX3JvdwAEBWVwb2NoBnVpbnQ2NApvcmFjbGVfaWRzBm5hbWVbXQl0aHJlc2hvbGQFdWludDgEc2VlZAtjaGVja3N1bTI1NgxmaXhjYXJnb21hc3MAAQllbnRpdHlfaWQGdWludDY0CmZpeGl0ZW1pZHMAABBmb290cHJpbnRfcmVzdWx0AAEFY2VsbHMLZ3JpZF9jZWxsW10LZm9yY2VyZXZlYWwAAQVlcG9jaAZ1aW50NjQFZm91bmQABAZwbGF5ZXIEbmFtZQllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdBmdhdGhlcgAFCXNvdXJjZV9pZAZ1aW50NjQOZGVzdGluYXRpb25faWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMgRzbG90BnVpbnQ4Pw1nYXRoZXJlcl9sYW5lAAUKc2xvdF9pbmRleAV1aW50OAV5aWVsZAZ1aW50MTYFZHJhaW4GdWludDMyBWRlcHRoBnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNgpnYXRoZXJwbGFuAAYJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyCHJlY2hhcmdlBGJvb2wFc2xvdHMFYnl0ZXMMZ2VuZXNpc2ZsZWV0AAEIZW50aXRpZXMMZW50aXR5X3Jvd1tdDGdlbmVzaXN3b3JsZAAEB2ZvdW5kZXIEbmFtZQF4BWludDY0AXkFaW50NjQIbm9kZV9pZHMIdWludDMyW10MZ2V0YnVpbGRqb2JzAAELYnVpbGRpbmdfaWQGdWludDY0CmdldGNoYXJ0ZXIAAgF4BWludDY0AXkFaW50NjQMZ2V0Y2hhcnR0cmVlAAAMZ2V0Y2hydHJlYWR5AAAKZ2V0Y2x1c3RlcgABBmh1Yl9pZAZ1aW50NjQJZ2V0Y29uZmlnAAAMZ2V0Y3JhZnRqb2JzAAELYnVpbGRpbmdfaWQGdWludDY0CWdldGRlY29tcAABB2l0ZW1faWQGdWludDE2CWdldGRlbWFuZAACAXgFaW50NjQBeQVpbnQ2NApnZXRkZXBvc2l0AAIFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQIZ2V0ZGVwb3QAAghkZXBvdF9pZAZ1aW50NjQFb3duZXIEbmFtZQtnZXRkaXN0YW5jZQAEAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dldGVsaWdpYmxlAAIGY29vcmRzC2Nvb3JkaW5hdGVzB3N0cmF0dW0GdWludDE2CWdldGVudGNscwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DGdldGZvb3RwcmludAABB2l0ZW1faWQGdWludDE2C2dldGluZmRlY2F5AAIGYWN0aXZlBnVpbnQ2NAZlcG9jaHMGdWludDMyDGdldGluZmx1ZW5jZQADBW93bmVyBG5hbWUBeAVpbnQ2NAF5BWludDY0C2dldGluZnZhbHVlAAMFaXRlbXMMY2FyZ29faXRlbVtdAXgFaW50NjQBeQVpbnQ2NAtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0CmdldG1pbnRjZmcAAAxnZXRtaW50cmVhZHkAAAtnZXRtb2R0eXBlcwAACmdldG1vZHVsZXMAAAlnZXRuZWFyYnkAAgllbnRpdHlfaWQGdWludDY0CHJlY2hhcmdlBGJvb2wKZ2V0bmZ0YmFzZQAACmdldG5mdGluZm8AAAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUHZ2V0cG9vbAACCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgIZ2V0cG9vbHMAAAxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwxnZXR2b3RlcmVhZHkAAAhnZXR2b3RlcwADAXgFaW50NjQBeQVpbnQ2NAZwbGF5ZXIEbmFtZQtnZXR3b3JtaG9sZQACAXgFaW50NjQBeQVpbnQ2NAlncmlkX2NlbGwAAgJneARpbnQ4Amd5BGludDgMZ3JvdXB0cmFuc2l0AAUIZW50aXRpZXMMZW50aXR5X3JlZltdAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMABAhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MzIQY2FwYWNpdHlfYnlfdGllchFoYXVsZXJfdGllcl9jYXBbXQ9oYXVsZXJfdGllcl9jYXAAAgR0aWVyBXVpbnQ4CGNhcGFjaXR5BXVpbnQ4BGhvbGQABQJpZAZ1aW50NjQEa2luZAV1aW50OAtjb3VudGVycGFydAplbnRpdHlfcmVmBXVudGlsCnRpbWVfcG9pbnQNaW5jb21pbmdfbWFzcwZ1aW50MzILaW1wb3J0Y2FyZ28AAQNyb3cJY2FyZ29fcm93CmltcG9ydGNlbGwABARyb290BnVpbnQ2NAJneARpbnQ4Amd5BGludDgJZW50aXR5X2lkBnVpbnQ2NAxpbXBvcnRlbnRpdHkAAQNyb3cKZW50aXR5X3JvdwtpbXBvcnRlcG9jaAABA3JvdwllcG9jaF9yb3cLaW1wb3J0Z3JvdXAAAQNyb3cPZW50aXR5Z3JvdXBfcm93DGltcG9ydG5mdGNmZwABA3Jvdw1uZnRjb25maWdfcm93DGltcG9ydHBsYXllcgABBW93bmVyBG5hbWUNaW1wb3J0cmVzZXJ2ZQACC2Vwb2NoX3Njb3BlBnVpbnQzMgNyb3cLcmVzZXJ2ZV9yb3cLaW1wb3J0c3RhdGUAAQNyb3cJc3RhdGVfcm93C2luZmJ1cm5fcm93AAEDYnBzBnVpbnQxNg1pbmZkZW1hbmRfcm93AAMEcGVhawZ1aW50NjQEYmFzZQZ1aW50NjQFZmxvb3IGdWludDY0EGluZmx1ZW5jZV90b3RhbHMACxFzdGFuZGluZ19saWZldGltZQZ1aW50NjQPc3RhbmRpbmdfYWN0aXZlBnVpbnQ2NBRjaXRpemVuc2hpcF9saWZldGltZQZ1aW50NjQSY2l0aXplbnNoaXBfYWN0aXZlBnVpbnQ2NBFsb2NhdGlvbl9saWZldGltZQZ1aW50NjQPbG9jYXRpb25fYWN0aXZlBnVpbnQ2NAVzcGVudAZ1aW50NjQHbWFuZGF0ZQZ1aW50MzIHZm91bmRlcgRuYW1lB2ZvdW5kZWQGdWludDMyBWVwb2NoBnVpbnQzMgtpbmZtaW50X3JvdwADCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgJdGhyZXNob2xkBnVpbnQ2NAtpbmZwb29sX3JvdwAGCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgFZ3JhZGUFdWludDgIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NANiYXIGdWludDY0DmluZnF1YWxpdHlfcm93AAECZDEGdWludDMyD2luZnZhbHVlX3Jlc3VsdAACDHRvdGFsX2F0b21pYwZ1aW50NjQPcGVyX2l0ZW1fYXRvbWljCHVpbnQ2NFtdDWluZndlaWdodF9yb3cAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXdlaWdodF9mcAZ1aW50NjQIaXRlbV9kZWYABQJpZAZ1aW50MTYEbWFzcwZ1aW50MzIEdHlwZQV1aW50OAdzdWJ0eXBlBXVpbnQ4BHRpZXIFdWludDgMaXRlbV9pZF9wYWlyAAICaWQGdWludDE2BG5hbWUGc3RyaW5nD2l0ZW1faWRzX3Jlc3VsdAABBWl0ZW1zDml0ZW1faWRfcGFpcltdD2l0ZW1kYXRhX3Jlc3VsdAACBWl0ZW1zCml0ZW1fZGVmW10HcmVjaXBlcw5yZWNpcGVzX3Jlc3VsdAppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lEGtpbmRfbWV0YV9yZXN1bHQAAgVraW5kcw9raW5kX21ldGFfcm93W10JdGVtcGxhdGVzE3RlbXBsYXRlX21ldGFfcm93W10Na2luZF9tZXRhX3JvdwAFBGtpbmQEbmFtZQ5jbGFzc2lmaWNhdGlvbgV1aW50OBBjYXBhYmlsaXR5X2ZsYWdzBXVpbnQ4B3pfY29vcmQGdWludDMyDWRlZmF1bHRfbGFiZWwGc3RyaW5nBGxhbmUAAghsYW5lX2tleQV1aW50OAhzY2hlZHVsZQhzY2hlZHVsZQZsYXVuY2gAAwtsYXVuY2hlcl9pZAZ1aW50NjQKY2F0Y2hlcl9pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdDmxhdW5jaGVyX3N0YXRzAAMLY2hhcmdlX3JhdGUGdWludDE2CHZlbG9jaXR5BnVpbnQxNgVkcmFpbgZ1aW50MTYEbG9hZAADAmlkBnVpbnQ2NAdmcm9tX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10LbG9hZGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYKb3V0cHV0X3BjdAZ1aW50MTYQbG9jYXRpb25fZGVyaXZlZAACDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMEc2l6ZQZ1aW50MTYNbG9jYXRpb25faW5mbwADBmNvb3Jkcwtjb29yZGluYXRlcwlpc19zeXN0ZW0EYm9vbAtpc193b3JtaG9sZQRib29sD2xvY2F0aW9uX3N0YXRpYwAFBmNvb3Jkcwtjb29yZGluYXRlcwR0eXBlDWxvY2F0aW9uX3R5cGUHc3VidHlwZQV1aW50OAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OApsb2NrZXJfcm93AAMIZGVwb3RfaWQGdWludDY0C3N0b3JlZF9tYXNzBnVpbnQ2NA1yZXNlcnZlZF9tYXNzBnVpbnQ2NAxtYW5kYXRlc19yb3cAAgdub2RlX2lkBnVpbnQzMgdyZXBlYXRzBnVpbnQxNgttaWdyYXRlam9icwAAE21pbnRfdGhyZXNob2xkX3ZpZXcAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXRocmVzaG9sZAZ1aW50NjQObWludGNmZ19yZXN1bHQAAgp0aHJlc2hvbGRzFW1pbnRfdGhyZXNob2xkX3ZpZXdbXQhidXJuX2JwcwZ1aW50MTYJbWludHFfcm93AAICaWQGdWludDY0BWdyYWRlBXVpbnQ4CW1pbnRyZWFkeQABCW1heF9taW50cwd1aW50MzI/DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgKbmF0dXJhbGl6ZQADBnBsYXllcgRuYW1lAXgFaW50NjQBeQVpbnQ2NAtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQzMgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbw5uZnRfY2FyZ29faXRlbQAEB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMhBuZnRfaXRlbV9wYXlsb2FkAAIEaXRlbQ5uZnRfY2FyZ29faXRlbQhsb2NhdGlvbgxjb29yZGluYXRlcz8ObmZ0X3NjaGVtYV9kZWYAAgtzY2hlbWFfbmFtZQRuYW1lBmZpZWxkcw5zY2hlbWFfZmllbGRbXRBuZnRfdGVtcGxhdGVfZGVmAAMHaXRlbV9pZAZ1aW50MTYLc2NoZW1hX25hbWUEbmFtZQt0ZW1wbGF0ZV9pZAVpbnQzMg1uZnRjb25maWdfcm93AAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQluZnRpbWd1cmwAAgRpdGVtCmNhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdGluZm9fcmVzdWx0AAIHc2NoZW1hcxBuZnRfc2NoZW1hX2RlZltdCXRlbXBsYXRlcxJuZnRfdGVtcGxhdGVfZGVmW10Gbm90aWZ5AAEFZXZlbnQKdGFza19ldmVudBFvcmFjbGVfY29uZmlnX3JvdwACCXRocmVzaG9sZAV1aW50OAhkZWFkbGluZQZ1aW50MzIKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lEHBvb2xfcGFpcl9yZXN1bHQACQhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4B2l0ZW1faWQGdWludDE2EXN0YW5kYXJkX3F1YW50aXR5BnVpbnQ2NA5zdGFuZGFyZF9zdGF0cwZ1aW50NjQQcHJlbWl1bV9xdWFudGl0eQZ1aW50NjQNcHJlbWl1bV9zdGF0cwZ1aW50NjQDYmFyBnVpbnQ2NAl0aHJlc2hvbGQGdWludDY0CXBvb2xfdmlldwAHCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgFZ3JhZGUFdWludDgHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NANiYXIGdWludDY0DHBvb2xzX3Jlc3VsdAABBXBvb2xzC3Bvb2xfdmlld1tdDHByb2dyZXNzX3JvdwACB25vZGVfaWQGdWludDMyBmFtb3VudAZ1aW50NjQNcHJvZ3Jlc3NfdmlldwACB25vZGVfaWQGdWludDMyBmFtb3VudAZ1aW50NjQPcHJvamVjdGVkX3N0YXRlABEFb3duZXIEbmFtZQtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwR0aWVyBXVpbnQ4CHJlY2hhcmdlAAECaWQGdWludDY0DHJlY2lwZV9pbnB1dAACB2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMhByZWNpcGVfaXRlbV9pbmZvAAICaWQGdWludDE2BG1hc3MGdWludDMyD3JlY2lwZV9yZXNwb25zZQAIDm91dHB1dF9pdGVtX2lkBnVpbnQxNgtvdXRwdXRfbWFzcwZ1aW50MzIGaW5wdXRzDnJlY2lwZV9pbnB1dFtdCnN0YXRfc2xvdHMUc3RhdF9zbG90X3Jlc3BvbnNlW10NYmxlbmRfd2VpZ2h0cwVieXRlcwtvdXRwdXRfaXRlbRByZWNpcGVfaXRlbV9pbmZvC2lucHV0X2l0ZW1zEnJlY2lwZV9pdGVtX2luZm9bXQ9zb3VyY2Vfc3ViY2xhc3MHdWludDE2Pw5yZWNpcGVzX3Jlc3VsdAABB3JlY2lwZXMRcmVjaXBlX3Jlc3BvbnNlW10IcmVmaXRfb3AAAgJvcAV1aW50OARzbG90BXVpbnQ4DHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUGcmVuYW1lAAICaWQGdWludDY0BG5hbWUGc3RyaW5nC3Jlc2VydmVfcm93AAUCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUHcmVzb2x2ZQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAZ1aW50MzIUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KcmVzb2x2ZWFsbAABBW93bmVyBG5hbWUScmVzb2x2ZWFsbF9yZXN1bHRzAAIHc2Nhbm5lZAZ1aW50MzIIcmVzb2x2ZWQGdWludDMyDHJlc29sdmVlYXJseQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/DXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYOcm91dGVfd2F5cG9pbnQAAgF4BWludDY0AXkFaW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nCXNlYXRfdmlldwAEB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0CHByb2dyZXNzBnVpbnQ2NANnYXAGdWludDY0CHNldGNpdmljAAEHYWNjb3VudARuYW1lCnNldGNsdXN0ZXIAAQNyb3cLY2x1c3Rlcl9yb3cJc2V0Y29vcmRzAAMJZW50aXR5X2lkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQLc2V0ZGVhZGxpbmUAAQhkZWFkbGluZQZ1aW50MzIKc2V0aW5mYnVybgABA2JwcwZ1aW50MTYIc2V0aW5mZDEAAQJkMQZ1aW50MzIMc2V0aW5mZGVtYW5kAAMEcGVhawZ1aW50NjQEYmFzZQZ1aW50NjQFZmxvb3IGdWludDY0CnNldGluZm1pbnQAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXRocmVzaG9sZAZ1aW50NjQMc2V0aW5md2VpZ2h0AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAl3ZWlnaHRfZnAGdWludDY0CXNldG5leHRpZAABB25leHRfaWQGdWludDY0CXNldG5mdGNmZwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4DHNldHRsZWJhbGxvdAACCWJhbGxvdF9pZAZ1aW50NjQJbWF4X3BhZ2VzBnVpbnQzMgxzZXR1bndyYXBtaW4AAQhhc3NldF9pZAZ1aW50NjQLc2V0d3JhcGNvc3QAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0CnNldHdyYXBmZWUAAgdmZWVfcGN0BnVpbnQxNgtmZWVfYWNjb3VudARuYW1lB3NodXR0bGUABAdjYXJyaWVyBnVpbnQ2NAdmcm9tX2lkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdCHNsb3RfZGVmAAMEdHlwZQV1aW50OApvdXRwdXRfcGN0BnVpbnQxNghtYXhfdGllcgV1aW50OAxzdGFuZGluZ19yb3cABAdhY2NvdW50BG5hbWUIbGlmZXRpbWUGdWludDY0BmFjdGl2ZQZ1aW50NjQMYWN0aXZlX2Vwb2NoBnVpbnQzMhJzdGF0X3Nsb3RfcmVzcG9uc2UAAQdzb3VyY2VzDXN0YXRfc291cmNlW10Lc3RhdF9zb3VyY2UAAgtpbnB1dF9pbmRleAV1aW50OBBpbnB1dF9zdGF0X2luZGV4BXVpbnQ4CXN0YXRlX3JvdwADB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2VlZAtjaGVja3N1bTI1NgtzdG9yYWdlX3JvdwAHAmlkBnVpbnQ2NAVvd25lcgRuYW1lB2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQtzZXF1ZW5jZV9pZAd1aW50NjQ/CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZghzd2FwdGlsZQAFBmh1Yl9pZAZ1aW50NjQEYV9neARpbnQ4BGFfZ3kEaW50OARiX2d4BGludDgEYl9neQRpbnQ4BHRhc2sADAR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10JY291cGxpbmdzCmNvdXBsaW5nW10Hc3ViamVjdAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQzMj8OdGFyZ2V0X2l0ZW1faWQHdWludDE2PwVyZWZpdAlyZWZpdF9vcD8MY2hhcnRlcl9ub2RlB3VpbnQzMj8KdGFza19ldmVudAAKCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAZ1aW50MzIEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDMyPwhsYW5lX2tleQV1aW50OAx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10RdGVtcGxhdGVfbWV0YV9yb3cAAwdpdGVtX2lkBnVpbnQxNgRraW5kBG5hbWUNZGlzcGxheV9sYWJlbAZzdHJpbmcHdHJhbnNpdAAFAmlkBnVpbnQ2NAJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAZ0cmF2ZWwABAJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wKdHJhdmVscGxhbgADCGVudGl0aWVzDGVudGl0eV9yZWZbXQl3YXlwb2ludHMQcm91dGVfd2F5cG9pbnRbXQhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAQAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcWc3RyYXR1bV9yZW1haW5pbmdfdHlwZRFzdHJhdHVtX3JlbWFpbmluZxVuZnRfaXRlbV9wYXlsb2FkX3R5cGUQbmZ0X2l0ZW1fcGF5bG9hZBJkZWNvbXBfcmVzdWx0X3R5cGUNZGVjb21wX3Jlc3VsdBJkZW1hbmRfcmVzdWx0X3R5cGUNZGVtYW5kX3Jlc3VsdBRpbmZ2YWx1ZV9yZXN1bHRfdHlwZQ9pbmZ2YWx1ZV9yZXN1bHQVaW5mbHVlbmNlX3RvdGFsc190eXBlEGluZmx1ZW5jZV90b3RhbHMRcG9vbHNfcmVzdWx0X3R5cGUMcG9vbHNfcmVzdWx0FXBvb2xfcGFpcl9yZXN1bHRfdHlwZRBwb29sX3BhaXJfcmVzdWx0E21pbnRjZmdfcmVzdWx0X3R5cGUObWludGNmZ19yZXN1bHQTY2hhcnRlcl9yZXN1bHRfdHlwZQ5jaGFydGVyX3Jlc3VsdBhjaGFydGVycmVhZHlfcmVzdWx0X3R5cGUTY2hhcnRlcnJlYWR5X3Jlc3VsdBB2b3RlX3Jlc3VsdF90eXBlC3ZvdGVfcmVzdWx0D2RlcG90X3ZpZXdfdHlwZQpkZXBvdF92aWV3CHVuZGVwbG95AAIHaG9zdF9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NAZ1bmxvYWQAAwJpZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQd1cGdyYWRlAAUKYnVpbGRlcl9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYGaW5wdXRzDGNhcmdvX2l0ZW1bXQRzbG90BnVpbnQ4Pwt2b3RlX29wdGlvbgAFB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0BHNlYXQGdWludDMyBndlaWdodAZ1aW50NjQEcmFuawZ1aW50MzILdm90ZV9yZXN1bHQACQtsb2NhdGlvbl9pZAZ1aW50NjQJYmFsbG90X2lkBnVpbnQ2NAVlcG9jaAZ1aW50MzINc2V0dGxlZF9lcG9jaAZ1aW50MzIFc2VhdHMGdWludDMyCHNldHRsaW5nBGJvb2wFcXVldWUIdWludDMyW10Hb3B0aW9ucw12b3RlX29wdGlvbltdBXBpY2tzCHVpbnQzMltdCXZvdGVyZWFkeQABCW1heF9wYWdlcwZ1aW50MzIEd2FycAADAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAAKd29ybGRzX3JvdwAJC2xvY2F0aW9uX2lkBnVpbnQ2NAhsaWZldGltZQZ1aW50NjQGYWN0aXZlBnVpbnQ2NAxhY3RpdmVfZXBvY2gGdWludDMyBXNwZW50BnVpbnQ2NAp1bmFzc2lnbmVkBnVpbnQ2NAliYWxsb3RfaWQGdWludDY0B2ZvdW5kZXIEbmFtZQdmb3VuZGVkBnVpbnQzMg13b3JtaG9sZV9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzC2lzX3dvcm1ob2xlBGJvb2wLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMOd3JhcGNvbmZpZ19yb3cAAwdmZWVfcGN0BnVpbnQxNgtmZWVfYWNjb3VudARuYW1lDG1pbl9hc3NldF9pZAZ1aW50NjQMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NKEBADKNddI0zTELYWJhbmRvbnBsb3QAAMBxN0+KUjIKYWRkY29udHJpYgAAAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAACHvhSdPghidWlsZGpvYgAAAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAFJ0+kSFpkELY2FuY2VsYnVpbGQAAJDbDkWFpkELY2FuY2VsY2l2aWMAAECmMZqTsUEKY2FzdGJhbGxvdADgk1H3qnxNQwxjaGFydGVycmVhZHkAoGLOumHktkMMY2l2aWNzaHV0dGxlAABAik4f6UxECmNsYWltYnVpbGQAAEBe5iLpTEQKY2xhaW1jcmFmdAAAAMg0VulMRAljbGFpbXBsb3QAcFW+JmPpTEQMY2xhaW1zdGFydGVyAAAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AQEO0KoVpRApjbG9zZWVwb2NoAJCXueiqjHVEDGNsdXN0ZXJjcmFmdAAAAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLgAAAIe+vMxFCGNyYWZ0am9iAAAAyC6pi9hJCWRiZ2NyZWRpdAAAgMomTSPZSQpkYmdtYW5kYXRlAAAAPvSlSNlJCmRiZ29sZGpvYnMAADCnVzFT2UkLZGJncGFnZXJvd3MAAAAAil1d2UkIZGJncHVyZ2UAAAAAOBuF2UkIZGJnc2VhdHMAAADw2eWpokoJZGVsZW50aXR5AAAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAujTjTKtKCmRlcG90c3RvcmUAAABQ0ORMq0oJZGVwb3R0YWtlAACAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAABOTqrsulsKZml4aXRlbWlkcwAAolFbXYUuXQtmb3JjZXJldmVhbL4ELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvcmNlcmV2ZWFsCnN1bW1hcnk6ICdERUJVRzogZm9yY2UtZmluYWxpemUgYW4gZXBvY2ggZnJvbSBleGlzdGluZyByZXZlYWxzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpGaW5hbGl6ZSBhIHN0dWNrIGVwb2NoIGJ5IGNvbXB1dGluZyBpdHMgc2VlZCBmcm9tIHRoZSByZXZlYWxzIGFscmVhZHkgc3VibWl0dGVkLCB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBjb25maWd1cmVkIHRocmVzaG9sZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LiBUaGUgc2VlZCBpcyBkZXJpdmVkIHNvbGVseSBmcm9tIHRoZSBwcmUtaW1hZ2UtbG9ja2VkIHJldmVhbHMgYWxyZWFkeSBvbiBjaGFpbjsgbm8gYWRtaW4tc3VwcGxpZWQgZW50cm9weSBpcyBpbnRyb2R1Y2VkLiBVc2VkIHRvIHVuYmxvY2sgZXBvY2ggcHJvZ3Jlc3Npb24gd2hlbiB0aGUgdGhyZXNob2xkIGNhbm5vdCBvdGhlcndpc2UgYmUgbWV0LgAAAACANDVdBWZvdW5kAAAAAABc1bJhBmdhdGhlcpcDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdhdGhlcgpzdW1tYXJ5OiAnR2F0aGVyIHJlc291cmNlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKR2F0aGVyIHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZ2F0aGVyYWJsZSBsb2NhdGlvbiB0eXBlcy4gU2NoZWR1bGVzIGEgZ2F0aGVyIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGdhdGhlcmVyIHN0YXRzIGFuZCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBjb21wb3NpdGlvbi4AwDSxXtWyYQpnYXRoZXJwbGFuAJCVigs7rKZiDGdlbmVzaXNmbGVldKkELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdlbmVzaXNmbGVldApzdW1tYXJ5OiAnTWludCB0aGUgb25lLXRpbWUgZ2VuZXNpcyBmbGVldCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW1wbGFjZSB0aGUgb25lLXRpbWUgZ2VuZXNpcyBmbGVldDogYSBjYWxsZXItc3VwcGxpZWQgc2V0IG9mIGVudGl0aWVzIChzaGlwcywgc3RydWN0dXJlcywgYW5kIGNvbnRhaW5lcnMpIHdyaXR0ZW4gdG8gdGhlIHdvcmxkIGFzLWlzLiBWYWxpZCBvbmx5IGR1cmluZyB0aGUgcHJlLWdlbmVzaXMgd2luZG93LCBiZWZvcmUgZXBvY2ggMSBpcyBmaW5hbGl6ZWQuIFRoZSBzdXBwbGllZCBlbnRpdHkgaWRzIGFyZSBob25vcmVkIGFuZCB0aGUgaWQgc2VxdWVuY2UgaXMgYWR2YW5jZWQgcGFzdCB0aGVtOyBpZCAwIGlzIHJlc2VydmVkIGZvciB0aGUgR2VuZXNpcyBOZXh1cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LpDipRw7rKZiDGdlbmVzaXN3b3JsZOcHLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdlbmVzaXN3b3JsZApzdW1tYXJ5OiAnRm91bmQgYSB3b3JsZCBhdCBnYW1lIGxhdW5jaCB3aXRoIGl0cyBjaXZpYyBjaGFydGVycyBhbHJlYWR5IGNvbXBsZXRlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRm91bmQgYSBwbGFuZXQgYXMgYSB3b3JsZCBkdXJpbmcgdGhlIHByZS1nZW5lc2lzIHdpbmRvdywgYmVmb3JlIGVwb2NoIDEgaXMgZmluYWxpemVkLCB3aXRoIHRoZSBsaXN0ZWQgY2hhcnRlciBub2RlcyBjb21wbGV0ZWQgaW4gb3JkZXIuIFRoZSBmb3VuZGVyIG11c3QgaG9sZCBhIGNvbXBhbnkgb24gdGhlIHBsYXRmb3JtOyB0aGUgZm91bmRlciBpcyBjcmVkaXRlZCB3aXRoIGxpZmV0aW1lIGluZmx1ZW5jZSBlcXVhbCB0byB0aGUgc3VtbWVkIGNvc3Qgb2YgdGhlIGxpc3RlZCBub2RlcywgYW5kIGVhY2ggbm9kZSBpcyB0aGVuIGNvbXBsZXRlZCB0aHJvdWdoIHRoZSBzYW1lIHJ1bGVzIGEgY2hhcnRlciBjcmFuayBhcHBsaWVzOiBwcmVyZXF1aXNpdGVzIG11c3QgYmUgc2F0aXNmaWVkIGJ5IGVhcmxpZXIgbm9kZXMgaW4gdGhlIGxpc3QsIGEgc3Bhd24gbm9kZSBhZG9wdHMgYSBjaXZpYyBlbnRpdHkgb2YgaXRzIGtpbmQgYWxyZWFkeSBzdGFuZGluZyBhdCB0aGUgbG9jYXRpb24gb3Igc3Bhd25zIG9uZSwgYW5kIGEgcmVmaXQgbm9kZSByZWZpdHMgdGhlIGVudGl0eSByZWNvcmRlZCBmb3IgaXRzIHRhcmdldC4gU3BlbnQgYWR2YW5jZXMgYnkgZXZlcnkgbm9kZSdzIGNvc3QsIHNvIHRoZSByZXN1bHRpbmcgd29ybGQgaXMgb25lIGEgc2luZ2xlIGZvdW5kZXIgY291bGQgaGF2ZSBhZHZhbmNlZCBhbG9uZS4gRWFjaCBsb2NhdGlvbiBjYW4gYmUgZm91bmRlZCB0aGlzIHdheSBvbmNlLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkugA99KTp9smIMZ2V0YnVpbGRqb2JzAADAVfmahrJiCmdldGNoYXJ0ZXIAoNTN+ZqGsmIMZ2V0Y2hhcnR0cmVlAOCTUTffhrJiDGdldGNocnRyZWFkeQAAwFUZ64iyYgpnZXRjbHVzdGVyAAAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUugA99eZmLsmIMZ2V0Y3JhZnRqb2JzAAAAqJIilbJiCWdldGRlY29tcAAAAEjTSJWyYglnZXRkZW1hbmQAAEB2mFaVsmIKZ2V0ZGVwb3NpdAAAAACZVpWyYghnZXRkZXBvdAAAFJomY5eyYgtnZXRkaXN0YW5jZQAAVDyOuaiyYgtnZXRlbGlnaWJsZcgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVsaWdpYmxlCnN1bW1hcnk6ICdHZXQgZWxpZ2libGUgcmVzb3VyY2UgaXRlbSBJRHMgYXQgYSBsb2NhdGlvbiBhbmQgc3RyYXR1bScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGxpc3Qgb2YgcmVzb3VyY2UgaXRlbSBJRHMgZWxpZ2libGUgdG8gYmUgZ2F0aGVyZWQgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGFuZCBzdHJhdHVtIGRlcHRoLiBJdGVtcyBhcmUgZ2F0ZWQgYnkgYm90aCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBwcm9maWxlIGFuZCB0aGUgZGVwdGggdGhyZXNob2xkIGZvciBlYWNoIHRpZXIuAADAEeWpsmIJZ2V0ZW50Y2xzjAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50Y2xzCnN1bW1hcnk6ICdHZXQgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKE9yYml0YWxWZXNzZWwsIFBsYW5ldGFyeVN0cnVjdHVyZSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGVudGl0eSBjbGFzcyBpZGVudGlmaWVycy4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy6Qp7s1U7qyYgxnZXRmb290cHJpbnQAALxBKq3psmILZ2V0aW5mZGVjYXkAoNBUOq7psmIMZ2V0aW5mbHVlbmNlAACUjmav6bJiC2dldGluZnZhbHVlAABMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgBU9Vmq7LJiC2dldGl0ZW10eXBlAIBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4ATFYyTQezYgtnZXRraW5kbWV0YfgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGtpbmRtZXRhCnN1bW1hcnk6ICdHZXQgZW50aXR5IGtpbmQgbWV0YWRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBlbnRpdHkga2luZCByZWdpc3RyeSBhbmQgdGVtcGxhdGUgcmVnaXN0cnksIGluY2x1ZGluZyBlYWNoIGtpbmQncyBjbGFzc2lmaWNhdGlvbiwgY2FwYWJpbGl0eSBmbGFncywgWi1jb29yZGluYXRlLCBhbmQgZGVmYXVsdCBsYWJlbCwgcGx1cyB0aGUgbWFwcGluZyBvZiBlbnRpdHkgaXRlbSBpZHMgdG8ga2luZHMgd2l0aCBkaXNwbGF5IGxhYmVscy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBpbnRlcnByZXQgZW50aXR5IGtpbmRzIGFuZCBjYXBhYmlsaXRpZXMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AAFsoTyezYgpnZXRtaW50Y2ZnAOCTUTdPJ7NiDGdldG1pbnRyZWFkeQAAsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnnKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBhbmQgZmxpZ2h0IHRpbWUuAIDC5uQ1s2IKZ2V0bmZ0YmFzZQAAAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS4AAAAgUlqzYgdnZXRwb29sAAAAADhSWrNiCGdldHBvb2xzAKCyyfjRW7NiDGdldHByb2pzdGF0ZcsDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHByb2pzdGF0ZQpzdW1tYXJ5OiAnR2V0IHByb2plY3RlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBwcm9qZWN0ZWQgc3RhdGUgb2YgYW4gZW50aXR5IGFmdGVyIGFwcGx5aW5nIHRoZSBuZXh0IHRhc2tfY291bnQgc2NoZWR1bGVkIHRhc2tzIChvciBhbGwgdGFza3MgaWYgdGFza19jb3VudCBpcyBvbWl0dGVkKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBwcmV2aWV3IHRoZSByZXN1bHQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUgd2l0aG91dCByZXNvbHZpbmcgb24tY2hhaW4uAABQ1SF1s2IJZ2V0cmVjaXBlpgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlCnN1bW1hcnk6ICdHZXQgYSBzaW5nbGUgY3JhZnRpbmcgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcmVjaXBlIHdob3NlIG91dHB1dCBtYXRjaGVzIHRoZSBnaXZlbiBpdGVtIGlkLCBpbmNsdWRpbmcgaXRzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRpc3BsYXkgY3JhZnRpbmcgcmVxdWlyZW1lbnRzLgAAVtUhdbNiCmdldHJlY2lwZXOsAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGVzCnN1bW1hcnk6ICdMaXN0IGNyYWZ0aW5nIHJlY2lwZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgcGFnaW5hdGVkIGxpc3Qgb2YgY3JhZnRpbmcgcmVjaXBlcyBzdGFydGluZyBhdCB0aGUgcHJvdmlkZWQgbG93ZXIgYm91bmQgb3V0cHV0IGl0ZW0gaWQsIHVwIHRvIHRoZSBzcGVjaWZpZWQgbGltaXQuIEVhY2ggZW50cnkgaW5jbHVkZXMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uAADOBmF1s2IKZ2V0cmVzY2F0c54DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2NhdHMKc3VtbWFyeTogJ0dldCByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKG9yZSwgZ2FzLCByZWdvbGl0aCwgYmlvbWFzcywgY3J5c3RhbCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIHJlc291cmNlIHN1YnR5cGUgaWRlbnRpZmllcnMuALDaV2F1s2ILZ2V0cmVzZXJ2ZXP8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNlcnZlcwpzdW1tYXJ5OiAnR2V0IGN1cnJlbnQgcmVzZXJ2ZSBtb2RpZmljYXRpb25zIGF0IGEgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGNoYWluJ3MgbW9kaWZpY2F0aW9ucyB0byBkZXJpdmVkIHJlc2VydmVzIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlIGZvciB0aGUgY3VycmVudCBlcG9jaCBhcyBhIGxpc3Qgb2Yge3N0cmF0dW0sIHJlbWFpbmluZ30gcGFpcnMuIFN0cmF0YSBub3QgcHJlc2VudCBpbiB0aGUgcmVzcG9uc2UgdXNlIHRoZWlyIGRlcml2ZWQgaW5pdGlhbCByZXNlcnZlLiBDb21wb3NlIHdpdGggU0RLIGRlcml2YXRpb24gdG8gZ2V0IHRoZSBmdWxsIHBlci1sb2NhdGlvbiBzdHJhdGEgdmlldy6AFbqaYnWzYgxnZXRyZXNvdXJjZXOHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNvdXJjZXMKc3VtbWFyeTogJ0dldCBhbGwgcmVzb3VyY2UgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyByZXNvdXJjZXMsIGluY2x1ZGluZyBlYWNoIHJlc291cmNlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBnYXRoZXJhYmxlIG1hdGVyaWFscy4AAAA404izYghnZXRzbG90c7sDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHNsb3RzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHNsb3QgbGF5b3V0cycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIG1vZHVsZSBzbG90IGxheW91dCBmb3IgZXZlcnkgZW50aXR5IGl0ZW0gdHlwZSwgbGlzdGluZyB0aGUgb3JkZXJlZCBzbG90IHR5cGVzIGF2YWlsYWJsZSBmb3IgbW9kdWxlIGluc3RhbGxhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZXRlcm1pbmUgd2hpY2ggbW9kdWxlIHR5cGVzIGFyZSBjb21wYXRpYmxlIHdpdGggYSBnaXZlbiBlbnRpdHkgaHVsbC4AgNTZ3IyzYgpnZXRzdHJhdHVt0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3RyYXR1bQpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIHN0cmF0dW0gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyByZXNvdXJjZSBzdHJhdHVtIGRhdGEgZm9yIGEgc3BlY2lmaWMgZGVwdGggbGF5ZXIgYXQgYSBjb29yZGluYXRlLCBpbmNsdWRpbmcgdGhlIHN0cmF0dW0gc2VlZCBpbmZvIGFuZCBkZXJpdmVkIHJlc291cmNlIHN0YXRzLoCVu0ZKjbNiDGdldHN1bW1hcmllc+gCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN1bW1hcmllcwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdW1tYXJpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGxpZ2h0d2VpZ2h0IHN1bW1hcmllcyBvZiBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIgaW5jbHVkaW5nIHR5cGUsIGlkLCBvd25lciwgbmFtZSwgbG9jYXRpb24sIGFuZCBpZGxlIHN0YXR1cy4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUu4JNRV2W6s2IMZ2V0dm90ZXJlYWR5AAAAAFhlurNiCGdldHZvdGVzAABUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwAAQIwK5UurdAppbXBvcnRjZWxsAOCzy1PlS6t0DGltcG9ydGVudGl0eQAAGqJV5UurdAtpbXBvcnRlcG9jaAAAqqaX5UurdAtpbXBvcnRncm91cADAFspr5kurdAxpbXBvcnRuZnRjZmcAcJU3seZLq3QMaW1wb3J0cGxheWVyALqvwurmS6t0DWltcG9ydHJlc2VydmUAAFQ2GedLq3QLaW1wb3J0c3RhdGUAAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAA0NLWJBmxhdW5jaAAAAAAAAJAMjQRsb2FkAADwoU9lc5mTC21pZ3JhdGVqb2JzAAAA8Mmom6eTCW1pbnRyZWFkeQAAAAAquqw2lQhtb3ZldGlsZQAAgPoumquzmQpuYXR1cmFsaXplAAAAiFcz6fKaCW5mdGltZ3VybLIDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5mdGltZ3VybApzdW1tYXJ5OiAnR2V0IE5GVCBpbWFnZSBVUkwgZm9yIGEgY2FyZ28gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGltYWdlIFVSTCB0aGUgY29udHJhY3QgZW1pdHMgZm9yIGEgZ2l2ZW4gY2FyZ28gaXRlbSwgb3B0aW9uYWxseSBzY29wZWQgdG8gYSBsb2NhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBmZXRjaCB0aGUgY2Fub25pY2FsIGFydHdvcmsgZm9yIGFuIGl0ZW0gb3IgcGFja2VkIGVudGl0eS4AAAAA+OUynQZub3RpZnmKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBub3RpZnkKc3VtbWFyeTogJ1Rhc2sgbGlmZWN5Y2xlIG5vdGlmaWNhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbm90aWZpZXMgZW50aXR5IG93bmVycyBvZiB0YXNrIGxpZmVjeWNsZSBldmVudHMgKHJlc29sdmVkLCBjYW5jZWxsZWQpLiBDYWxsZWQgaW5saW5lIHdoZW4gdGFza3MgY2hhbmdlIHN0YXRlLiBVc2VzIHJlcXVpcmVfcmVjaXBpZW50IHRvIGVuYWJsZSBvZmYtY2hhaW4gbW9uaXRvcmluZyB2aWEgYWN0aW9uIHRyYWNlcy4AAGXXIIVMrApwbGFjZWNhcmdvyQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VjYXJnbwpzdW1tYXJ5OiAnUmVzdG9yZSBORlQgY2FyZ28gb250byBhIGhvc3QgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzdG9yZXMgdGhlIGNhcmdvIHJlY29yZGVkIGluIGFuIHVud3JhcHBlZCBORlQgb250byBhIGhvc3QgZW50aXR5LiBWYWxpZGF0ZXMgaG9zdCBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCByZW1haW5pbmcgY2FwYWNpdHksIGRlc2VyaWFsaXplcyB0aGUgTkZUJ3MgaXRlbSBkYXRhLCBhbmQgYXBwZW5kcyBhbiB1bndyYXAgdGFzayB0byBkZWxpdmVyIHRoZSBjYXJnbyB0byB0aGUgaG9zdC4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AfHZ5KoVMrAtwbGFjZWVudGl0ecAELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlZW50aXR5CnN1bW1hcnk6ICdNYXRlcmlhbGl6ZSBhIHBhY2tlZC1lbnRpdHkgTkZUIGFzIGEgbGl2ZSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBFbXBsYWNlcyBhIGxpdmUgb3JiaXRhbCB2ZXNzZWwgKHNoaXAgb3IgY29udGFpbmVyKSBmcm9tIGl0cyBwYWNrZWQtZW50aXR5IE5GVCBkYXRhIGF0IHRoZSByZWNvcmRlZCB3cmFwIG9yaWdpbiwgdGhlbiBxdWV1ZXMgdHJhdmVsIGFuZCByZWNoYXJnZSB0YXNrcyB0byBkZWxpdmVyIGl0IHRvIHRoZSB0YXJnZXQgbmV4dXMgYXQgZnVsbCBlbmVyZ3kuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAil3TkLoIcmVjaGFyZ2XNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWNoYXJnZQpzdW1tYXJ5OiAnUmVjaGFyZ2Ugc2hpcCBlbmVyZ3knCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNjaGVkdWxlIGEgcmVjaGFyZ2UgdGFzayBmb3IgYW4gZW50aXR5IHRvIHJlc3RvcmUgZW5lcmd5IHRvIGZ1bGwgY2FwYWNpdHkuIFRoZSByZWNoYXJnZSBkdXJhdGlvbiBkZXBlbmRzIG9uIGN1cnJlbnQgZW5lcmd5IGxldmVsIGFuZCByZWNoYXJnZSByYXRlLuCzy1M1fJe6DHJlZnJzaGVudGl0ebgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlZnJzaGVudGl0eQpzdW1tYXJ5OiAnUmVmcmVzaCBkZXJpdmVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGRlcml2ZWQgZmllbGRzIG9uIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGNhcmdvIGFuZCBtb2R1bGVzLCByZWZyZXNoaW5nIGNhcGFiaWxpdHkgc3RhdHMgYW5kIGNhcmdvIG1hc3MuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBVc2VkIHRvIHJlY29uY2lsZSBkZXJpdmVkIHN0YXRlIGFmdGVyIGRhdGEgbWlncmF0aW9ucyBvciBjb250cmFjdCB1cGdyYWRlcy6gIjKXqk2lugxyZW1vdmVvcmFjbGUAAAAAAChpproGcmVuYW1lAAAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAECMRu1IsboKcmVzb2x2ZWFsbADg4zVK7UixugxyZXNvbHZlZWFybHkAAAAAAESjtroGcmV2ZWFsAAAAACrqRKW8CHJtbW9kdWxlvAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1tb2R1bGUKc3VtbWFyeTogJ1JlbW92ZSBhIG1vZHVsZSBmcm9tIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIGFuIGluc3RhbGxlZCBtb2R1bGUgZnJvbSBhIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIGlzIHJldHVybmVkIHRvIGNhcmdvLiBGYWlscyBpZiB0aGUgZW50aXR5IGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcmdvIGNhcGFjaXR5IHRvIGhvbGQgdGhlIHJldHVybmVkIG1vZHVsZS4AAABsobymvAhybW5mdGNmZ6EDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbmZ0Y2ZnCnN1bW1hcnk6ICdSZW1vdmUgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSB0aGUgQXRvbWljQXNzZXRzIHRlbXBsYXRlIG1hcHBpbmcgZm9yIHRoZSBzcGVjaWZpZWQgaXRlbSBpZCBmcm9tIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gQWZ0ZXIgcmVtb3ZhbCB0aGUgaXRlbSBjYW4gbm8gbG9uZ2VyIGJlIHdyYXBwZWQgb3IgdW53cmFwcGVkIHVudGlsIGEgbmV3IG1hcHBpbmcgaXMgc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAyG2HssIIc2V0Y2l2aWMAAMBVGeuIssIKc2V0Y2x1c3RlcgAAAMDpUoqywglzZXRjb29yZHMAANR0MRmVssILc2V0ZGVhZGxpbmUAAMC8+qzpssIKc2V0aW5mYnVybgAAAAAhremywghzZXRpbmZkMQCQppEqremywgxzZXRpbmZkZW1hbmQAAECeTq7pssIKc2V0aW5mbWludACQG3OKr+mywgxzZXRpbmZ3ZWlnaHQAAABILnc1s8IJc2V0bmV4dGlkAAAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6QIm1Y3ZazwgxzZXR0aHJlc2hvbGQAkGmM5qiYs8IMc2V0dGxlYmFsbG90ADCdrObyqbPCDHNldHVud3JhcG1pbgAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAAEDFnHXDB3NodXR0bGUAAACg7BrEacYJc3Rvd2Nhcmdv1QUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2NhcmdvCnN1bW1hcnk6ICdSZXNlcnZlIGEgY2FyZ28gc3RhY2sgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYW5kIGNvbnN1bWVzIGEgY2FyZ28gc3RhY2sgb24gYSBsaXZlIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFZhbGlkYXRlcyBlbnRpdHkgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcHJlc2VuY2UgYXQgdGhlIG5leHVzLCBhbmQgY29uZmlybXMgdGhlIHRhcmdldCBjYXJnbyBzdGFjayBpcyBhdmFpbGFibGUgYW5kIG5vdCByZXNlcnZlZCBieSBhIHBlbmRpbmcgdGFzay4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIGFuZCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCBiZWZvcmUgY29uc3VtaW5nIHRoZSBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAzy5PxWnGCnN0b3dlbnRpdHmZBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93ZW50aXR5CnN1bW1hcnk6ICdSZXNlcnZlIGFuIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhIHdob2xlIGVudGl0eSAoc2hpcCwgY29udGFpbmVyLCBvciBwbGFuZXRhcnkgc3RydWN0dXJlKSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28gYW5kIG5vIHNjaGVkdWxlZCB0YXNrcy4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgZW50aXR5IE5GVCdzIGltbXV0YWJsZSBkYXRhLCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCwgYW5kIGVyYXNlcyB0aGUgZW50aXR5IGZyb20gdGhlIHdvcmxkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAICKOlFZDccKc3dhcG1vZHVsZQAAAAAqulwNxwhzd2FwdGlsZQAAAAAgOzzNzQd0cmFuc2l0AAAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AwDSxRrXNzQp0cmF2ZWxwbGFuAAAAAJ7GqtLUCHVuZGVwbG955wQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW5kZXBsb3kKc3VtbWFyeTogJ1BhY2sgYSBkZXBsb3llZCBlbnRpdHkgaW50byBhIGhvc3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClBhY2sgYW4gZW50aXR5IGludG8gYSBob3N0IGVudGl0eSdzIGNhcmdvIGFzIGEgcGFja2VkLWVudGl0eSBpdGVtLiBIb3N0IGFuZCB0YXJnZXQgbXVzdCBzaGFyZSB0aGUgc2FtZSBvd25lciBhbmQgY29vcmRpbmF0ZXMsIHRoZSBob3N0IG11c3QgaGF2ZSBsb2FkZXJzIGFuZCBlbm91Z2ggY2FwYWNpdHkgZm9yIHRoZSBwYWNrZWQgbWFzcywgYW5kIHRoZSB0YXJnZXQgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28uIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgYW5kIHNjaGVkdWxlcyB1bmRlcGxveSB0YXNrcyBvbiBib3RoIGVudGl0aWVzOyBvbiByZXNvbHV0aW9uIHRoZSB0YXJnZXQgaXMgZXJhc2VkIGFuZCB0aGUgcGFja2VkIGVudGl0eSBpcyBhZGRlZCB0byB0aGUgaG9zdCdzIGNhcmdvLiBJbnZlcnNlIG9mIGRlcGxveS4AAAAAJEPj1AZ1bmxvYWQAAAAAQCVzWdUHdXBncmFkZQAAAPDJqKsy3Ql2b3RlcmVhZHkAAAAAAABQr+EEd2FycJ8DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdhcnAKc3VtbWFyeTogJ1dhcnAgdG8gYSBkZXN0aW5hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFudGx5IHRlbGVwb3J0IGFuIGVudGl0eSB0byBhIGRlc3RpbmF0aW9uIHN5c3RlbS4gUmVxdWlyZXMgd2FycCBjYXBhYmlsaXR5LCBmdWxsIGVuZXJneSwgZW1wdHkgY2FyZ28sIGFuZCBhbiBlbXB0eSBzY2hlZHVsZS4gVGhlIGRlc3RpbmF0aW9uIG11c3QgYmUgYSB2YWxpZCBzeXN0ZW0gd2l0aGluIHdhcnAgcmFuZ2UuIFJlc29sdmVzIGltbWVkaWF0ZWx5IGFzIGEgemVyby1kdXJhdGlvbiB0YXNrLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0oAAAAAGQaozkDaTY0AAAKYmFsbG90X3JvdwAwRK5mGqM5A2k2NAAAD2JhbGxvdHBpY2tzX3JvdwAAsApnGqM5A2k2NAAADmJhbGxvdF9zZXFfcm93oGLOCmcaozkDaTY0AAAQYmFsbG90c2V0dGxlX3JvdwAAwGy6FJ0+A2k2NAAADWJ1aWxkaW5nc19yb3cAAMCHvhSdPgNpNjQAAAxidWlsZGpvYl9yb3cAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAqmt4qu+yQwNpNjQAAA9jaXRpemVuc2hpcF9yb3cAmFuTIuS2QwNpNjQAAA9jaXZpY2NvbmZpZ19yb3cAAAAAYOlMRANpNjQAAAljbGFpbV9yb3cAAADgqox1RANpNjQAAAtjbHVzdGVyX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAMCHvrzMRQNpNjQAAAxjcmFmdGpvYl9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AACwCvvs8lQDaTY0AAAOZW50aXR5X3NlcV9yb3cAAAAAgIZoVQNpNjQAAAllcG9jaF9yb3cAAABgXn3WdANpNjQAAAtpbmZidXJuX3JvdwAASNNIldZ0A2k2NAAADWluZmRlbWFuZF9yb3cAAAAgTyfXdANpNjQAAAtpbmZtaW50X3JvdwAAACBSWtd0A2k2NAAAC2luZnBvb2xfcm93AIDPLhpt13QDaTY0AAAOaW5mcXVhbGl0eV9yb3cAAMiNOcXXdANpNjQAAA1pbmZ3ZWlnaHRfcm93AAAAAF8FEY0DaTY0AAAKbG9ja2VyX3JvdwAAAFhlk6aRA2k2NAAADG1hbmRhdGVzX3JvdwAAAAAAm6eTA2k2NAAACW1pbnRxX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAGALqYjMpQNpNjQAABFvcmFjbGVfY29uZmlnX3JvdwAAAACriMylA2k2NAAACm9yYWNsZV9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAGKvL6K0DaTY0AAAMcHJvZ3Jlc3Nfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAARKO2ugNpNjQAAApyZXZlYWxfcm93AAAAbLo0TcYDaTY0AAAMc3RhbmRpbmdfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAQDFzacYDaTY0AAALc3RvcmFnZV9yb3cAAAAAAKyqzwNpNjQAAAl0eXBlc19yb3cAAAAA4BQv5QNpNjQAAAp3b3JsZHNfcm93AABza1JUzeUDaTY0AAAOd3JhcGNvbmZpZ19yb3cAAAAZU1TN5QNpNjQAAAx3cmFwY29zdF9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAAXwAyjXXSNM0xDHRhc2tfcmVzdWx0cwDAcTdPilIyDHRhc2tfcmVzdWx0cwAAAIe+FJ0+D2Jvb2tpbmdfcmVjZWlwdAAAyDTWFJ0+DHRhc2tfcmVzdWx0cwAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAFJ0+kSFpkEMdGFza19yZXN1bHRzAJDbDkWFpkEOY2FuY2VsX3Jlc3VsdHOgYs66YeS2Qwx0YXNrX3Jlc3VsdHMAQF7mIulMRAx0YXNrX3Jlc3VsdHMAAMg0VulMRAx0YXNrX3Jlc3VsdHOQl7noqox1RAx0YXNrX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAACHvrzMRQ9ib29raW5nX3JlY2VpcHQAAAANu0ilSgx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAgLo040yrSgx0YXNrX3Jlc3VsdHMAAFDQ5EyrSgx0YXNrX3Jlc3VsdHMAgM8uT4WwSgZzdHJpbmcAAAAAXNWyYQx0YXNrX3Jlc3VsdHMAwDSxXtWyYQx0YXNrX3Jlc3VsdHOAD30pOn2yYhBidWlsZGpvYnNfcmVzdWx0AMBV+ZqGsmIOY2hhcnRlcl9yZXN1bHSg1M35moayYhNjaGFydGVyX3RyZWVfcmVzdWx04JNRN9+GsmITY2hhcnRlcnJlYWR5X3Jlc3VsdADAVRnriLJiC2NsdXN0ZXJfcm93AABgbk2KsmILZ2FtZV9jb25maWeAD315mYuyYhBjcmFmdGpvYnNfcmVzdWx0AACokiKVsmINZGVjb21wX3Jlc3VsdAAASNNIlbJiDWRlbWFuZF9yZXN1bHQAQHaYVpWyYg5leHRlbmRlZF9hc3NldAAAAJlWlbJiCmRlcG90X3ZpZXcAFJomY5eyYgZ1aW50NjQAVDyOuaiyYgh1aW50MTZbXQAAwBHlqbJiC2VudW1fcmVzdWx0ALBy2eWpsmINZW50aXR5X2luZm9bXQAA8NnlqbJiC2VudGl0eV9pbmZvkKe7NVO6smIQZm9vdHByaW50X3Jlc3VsdAC8QSqt6bJiBnVpbnQ2NKDQVDqu6bJiEGluZmx1ZW5jZV90b3RhbHMAlI5mr+myYg9pbmZ2YWx1ZV9yZXN1bHQATDZJquyyYg9pdGVtZGF0YV9yZXN1bHQAAE5OquyyYg9pdGVtX2lkc19yZXN1bHQAAABYquyyYgppdGVtc19pbmZvAFT1WarssmIFdWludDiAVfVZquyyYgtlbnVtX3Jlc3VsdABMVjJNB7NiEGtpbmRfbWV0YV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAAWyhPJ7NiDm1pbnRjZmdfcmVzdWx04JNRN08ns2IGdWludDMyALCqPicqs2ILZW51bV9yZXN1bHQAAFZRJyqzYg5tb2R1bGVzX3Jlc3VsdAAA8OcaNbNiC25lYXJieV9pbmZvAIDC5uQ1s2IIc3RyaW5nW10AAF3T5TWzYg5uZnRpbmZvX3Jlc3VsdAAAuMqbWLNiC3BsYXllcl9pbmZvAAAAIFJas2IQcG9vbF9wYWlyX3Jlc3VsdAAAADhSWrNiDHBvb2xzX3Jlc3VsdKCyyfjRW7NiD3Byb2plY3RlZF9zdGF0ZQAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AAAAONOIs2IVZW50aXR5X2xheW91dHNfcmVzdWx0AIDU2dyMs2IMc3RyYXR1bV9kYXRhgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXeCTUVdlurNiBnVpbnQzMgAAAFhlurNiC3ZvdGVfcmVzdWx0AFSkTV7Ks2INd29ybWhvbGVfaW5mb5AdnubmqullDHRhc2tfcmVzdWx0cwCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAAAANDS1iQx0YXNrX3Jlc3VsdHMAAAAAAJAMjQx0YXNrX3Jlc3VsdHMAAAAquqw2lQx0YXNrX3Jlc3VsdHMAAIhXM+nymgZzdHJpbmcAAGXXIIVMrAx0YXNrX3Jlc3VsdHMAfHZ5KoVMrAx0YXNrX3Jlc3VsdHMAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAQIxG7UixuhJyZXNvbHZlYWxsX3Jlc3VsdHPg4zVK7Uixug9yZXNvbHZlX3Jlc3VsdHMAAABAxZx1wwx0YXNrX3Jlc3VsdHMAAKDsGsRpxgx0YXNrX3Jlc3VsdHMAgM8uT8Vpxgx0YXNrX3Jlc3VsdHMAAAAqulwNxwx0YXNrX3Jlc3VsdHMAAAAgOzzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHMAwDSxRrXNzQx0YXNrX3Jlc3VsdHMAAACexqrS1Ax0YXNrX3Jlc3VsdHMAAAAAJEPj1Ax0YXNrX3Jlc3VsdHMAAABAJXNZ1Qx0YXNrX3Jlc3VsdHMAAAAAAFCv4Qx0YXNrX3Jlc3VsdHM=');
|
|
854
|
+
const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDi8AgthYmFuZG9ucGxvdAABB3Bsb3RfaWQGdWludDY0CmFkZGNvbnRyaWIABQZwbGF5ZXIEbmFtZQllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAZidW5kbGUMY2FyZ29faXRlbVtdCWFkZG1vZHVsZQAECWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCnRhcmdldF9yZWYKY2FyZ29fcmVmPwhhZGRuZXh1cwADCm5leHVzX25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAlhZGRvcmFjbGUAAQlvcmFjbGVfaWQEbmFtZQ1iYWxsb3RfY3JlZGl0AAIHYWNjb3VudARuYW1lBmFtb3VudAZ1aW50NjQKYmFsbG90X3JvdwAHCWJhbGxvdF9pZAZ1aW50NjQEa2luZAV1aW50OAdzdWJqZWN0BnVpbnQ2NAVzZWF0cwZ1aW50MzINc2V0dGxlZF9lcG9jaAZ1aW50MzIFcXVldWUIdWludDMyW10GcGFya2VkD2JhbGxvdF9jcmVkaXRbXQ5iYWxsb3Rfc2VxX3JvdwADB25leHRfaWQGdWludDY0BmN1cnNvcgZ1aW50NjQJcGFnZV9yb3dzBnVpbnQzMgxiYWxsb3RfdGFsbHkAAgZvcHRpb24GdWludDMyBndlaWdodAZ1aW50NjQPYmFsbG90cGlja3Nfcm93AAIHYWNjb3VudARuYW1lBXBpY2tzCHVpbnQzMltdEGJhbGxvdHNldHRsZV9yb3cABgliYWxsb3RfaWQGdWludDY0BXJvdW5kBnVpbnQzMgZjdXJzb3IGdWludDY0DHRhcmdldF9lcG9jaAZ1aW50MzIHdGFsbGllcw5iYWxsb3RfdGFsbHlbXQZzZWF0ZWQIdWludDMyW10FYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQxidWlsZGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYNYnVpbGRpbmdzX3JvdwACCWVudGl0eV9pZAZ1aW50NjQIYnVpbGRpbmcFdWludDgIYnVpbGRqb2IABAl0YXJnZXRfaWQGdWludDY0B2RvY2tfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgZpbnB1dHMMY2FyZ29faXRlbVtdDGJ1aWxkam9iX3JvdwAMAmlkBnVpbnQ2NAhidWlsZGluZwZ1aW50NjQGc29ja2V0BXVpbnQ4BnRhcmdldAZ1aW50NjQFb3duZXIEbmFtZQZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbAphcnJpdmVzX2F0CnRpbWVfcG9pbnQQYnVpbGRqb2JzX3Jlc3VsdAABBGpvYnMOYnVpbGRqb2Jfcm93W10JYnVpbGRwbG90AAIKYnVpbGRlcl9pZAZ1aW50NjQHcGxvdF9pZAZ1aW50NjQGY2FuY2VsAAMCaWQGdWludDY0CGxhbmVfa2V5BXVpbnQ4BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwtjYW5jZWxidWlsZAABBmpvYl9pZAZ1aW50NjQLY2FuY2VsY2l2aWMAAwhidWlsZGluZwZ1aW50NjQIbGFuZV9rZXkFdWludDgHZnJvbV9pZAZ1aW50NjQLY2FuY2VsY3JhZnQAAQZqb2JfaWQGdWludDY0CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8KY2FzdGJhbGxvdAADBnBsYXllcgRuYW1lCWJhbGxvdF9pZAZ1aW50NjQFcGlja3MIdWludDMyW10QY2hhcnRlcl9ub2RlX2RlZgAGB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0B3ByZXJlcXMIdWludDMyW10GZ3JhbnRzDWNpdmljX2dyYW50W10PZXhjbHVzaW9uX2dyb3VwBnVpbnQxNgpyZXBlYXRfY2FwBXVpbnQ4EmNoYXJ0ZXJfcmVhZHlfdmlldwADAXgFaW50NjQBeQVpbnQ2NAdtYW5kYXRlBnVpbnQzMg5jaGFydGVyX3Jlc3VsdAAOC2xvY2F0aW9uX2lkBnVpbnQ2NAhsaWZldGltZQZ1aW50NjQFc3BlbnQGdWludDY0CnVuYXNzaWduZWQGdWludDY0B21hbmRhdGUGdWludDMyCW5leHRfY29zdAZ1aW50NjQLcHJlcmVxc19tZXQEYm9vbAlidWlsZGFibGUEYm9vbAVlcG9jaAZ1aW50MzIFYnVpbHQOY2hhcnRlcl92aWV3W10JYmFsbG90X2lkBnVpbnQ2NAhzZXR0bGluZwRib29sBXF1ZXVlC3NlYXRfdmlld1tdCHByb2dyZXNzD3Byb2dyZXNzX3ZpZXdbXRNjaGFydGVyX3RyZWVfcmVzdWx0AAEFbm9kZXMSY2hhcnRlcl9ub2RlX2RlZltdDGNoYXJ0ZXJfdmlldwACB25vZGVfaWQGdWludDMyB3JlcGVhdHMGdWludDE2DGNoYXJ0ZXJyZWFkeQACAXgFaW50NjQBeQVpbnQ2NBNjaGFydGVycmVhZHlfcmVzdWx0AAEGd29ybGRzFGNoYXJ0ZXJfcmVhZHlfdmlld1tdD2NpdGl6ZW5zaGlwX3JvdwAEC2xvY2F0aW9uX2lkBnVpbnQ2NAhsaWZldGltZQZ1aW50NjQGYWN0aXZlBnVpbnQ2NAxhY3RpdmVfZXBvY2gGdWludDMyC2NpdmljX2dyYW50AAQEa2luZAV1aW50OAhidWlsZGluZwV1aW50OARzdGF0BXVpbnQ4BXZhbHVlBnVpbnQxNg9jaXZpY2NvbmZpZ19yb3cAAQtjaXZpY19vd25lcgRuYW1lDGNpdmljc2h1dHRsZQAECGJ1aWxkaW5nBnVpbnQ2NAdmcm9tX2lkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdCWNsYWltX3JvdwABBW93bmVyBG5hbWUKY2xhaW1idWlsZAABBmpvYl9pZAZ1aW50NjQKY2xhaW1jcmFmdAACBmpvYl9pZAZ1aW50NjQHc2hpcF9pZAZ1aW50NjQJY2xhaW1wbG90AAMKYnVpbGRlcl9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BHNsb3QMY2x1c3Rlcl9zbG90DGNsYWltc3RhcnRlcgABBW93bmVyBG5hbWUJY2xlYW5yc3ZwAAIFZXBvY2gGdWludDY0CG1heF9yb3dzBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8KY2xvc2VlcG9jaAABBWVwb2NoBnVpbnQ2NAxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4DmNsdXN0ZXJfc291cmNlAAIJc291cmNlX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10MY2x1c3RlcmNyYWZ0AAYCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyB3NvdXJjZXMQY2x1c3Rlcl9zb3VyY2VbXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwZjb21taXQAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGY29tbWl0C2NoZWNrc3VtMjU2CmNvbW1pdF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcLY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/CGNvdXBsaW5nAAMLY291bnRlcnBhcnQKZW50aXR5X3JlZgRob2xkBnVpbnQ2NARraW5kBXVpbnQ4BWNyYWZ0AAYCaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10GdGFyZ2V0B3VpbnQ2ND8Ec2xvdAZ1aW50OD8MY3JhZnRlcl9sYW5lAAQKc2xvdF9pbmRleAV1aW50OAVzcGVlZAZ1aW50MTYFZHJhaW4GdWludDMyCm91dHB1dF9wY3QGdWludDE2CGNyYWZ0am9iAAUHc2hpcF9pZAZ1aW50NjQLd29ya3Nob3BfaWQGdWludDY0CXJlY2lwZV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBmlucHV0cwxjYXJnb19pdGVtW10MY3JhZnRqb2Jfcm93AA4CaWQGdWludDY0CGJ1aWxkaW5nBnVpbnQ2NAZzb2NrZXQFdWludDgFb3duZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzILZW5lcmd5X3BhaWQGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQlkZXBvc2l0ZWQEYm9vbAphcnJpdmVzX2F0CnRpbWVfcG9pbnQQY3JhZnRqb2JzX3Jlc3VsdAABBGpvYnMOY3JhZnRqb2Jfcm93W10JZGJnY3JlZGl0AAUFb3duZXIEbmFtZQF4BWludDY0AXkFaW50NjQNYW1vdW50X2F0b21pYwZ1aW50NjQEbm9kZQd1aW50MzI/B2RiZ2pvYnMAAgZjcmFmdHMOY3JhZnRqb2Jfcm93W10GYnVpbGRzDmJ1aWxkam9iX3Jvd1tdCmRiZ21hbmRhdGUAAwF4BWludDY0AXkFaW50NjQHbm9kZV9pZAZ1aW50MzILZGJncGFnZXJvd3MAAQRyb3dzBnVpbnQzMgdkYmdwaWNrAAQHc29ja2V0cxJzb2NrZXRfY2FuZGlkYXRlW10CaWQGdWludDY0B2Fycml2YWwKdGltZV9wb2ludANjYXAGdWludDE2CGRiZ3BsYWNlAAQHd2luZG93cxFyZXNlcnZlZF93aW5kb3dbXQJpZAZ1aW50NjQHYXJyaXZhbAp0aW1lX3BvaW50CGR1cmF0aW9uBnVpbnQzMghkYmdwdXJnZQACCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwlkYmdyZXBhY2sAAwd3aW5kb3dzEXJlc2VydmVkX3dpbmRvd1tdDGNhbmNlbGxlZF9pZAZ1aW50NjQDbm93CnRpbWVfcG9pbnQIZGJnc2VhdHMAAwF4BWludDY0AXkFaW50NjQFc2VhdHMGdWludDMyDWRlY29tcF9idWNrZXQAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CHJhd19tYXNzBnVpbnQzMg1kZWNvbXBfcmVzdWx0AAMHaXRlbV9pZAZ1aW50MTYOcHJvY2Vzc2VkX21hc3MGdWludDY0B2J1Y2tldHMPZGVjb21wX2J1Y2tldFtdCWRlbGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQNZGVtYW5kX3Jlc3VsdAAFDWFidW5kYW50X21hc2sFdWludDgMbGFja2luZ19tYXNrBXVpbnQ4BWFjdXRlBXVpbnQ4B25lZWRfZnAIdWludDY0W10FZXBvY2gGdWludDMyCGRlbW9saXNoAAEJZW50aXR5X2lkBnVpbnQ2NAZkZXBsb3kAAwJpZAZ1aW50NjQDcmVmCWNhcmdvX3JlZgRzbG90DWNsdXN0ZXJfc2xvdD8KZGVwb3RfdmlldwAECnBsYXllcl9jYXAGdWludDY0C3N0b3JlZF9tYXNzBnVpbnQ2NA1yZXNlcnZlZF9tYXNzBnVpbnQ2NARyb3dzDXN0b3JhZ2Vfcm93W10KZGVwb3RzdG9yZQADB3NoaXBfaWQGdWludDY0CGRlcG90X2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10JZGVwb3R0YWtlAAMHc2hpcF9pZAZ1aW50NjQIZGVwb3RfaWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAYBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwVsYW5lcwZsYW5lW10FaG9sZHMGaG9sZFtdDHByb2plY3RlZF9hdAp0aW1lX3BvaW50DWVudGl0eV9sYXlvdXQAAw5lbnRpdHlfaXRlbV9pZAZ1aW50MTYFc2xvdHMKc2xvdF9kZWZbXQ1iYXNlX2h1bGxtYXNzBnVpbnQzMhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAAQhlbnRpdGllcw9lbnRpdHlfbGF5b3V0W10KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAplbnRpdHlfcm93AAwCaWQGdWludDY0BW93bmVyBG5hbWUEa2luZARuYW1lB2l0ZW1faWQGdWludDE2BG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyB21vZHVsZXMObW9kdWxlX2VudHJ5W10FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ5lbnRpdHlfc2VxX3JvdwABB25leHRfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAZ1aW50MzIQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQKZml4aXRlbWlkcwAAEGZvb3RwcmludF9yZXN1bHQAAQVjZWxscwtncmlkX2NlbGxbXQtmb3JjZXJldmVhbAABBWVwb2NoBnVpbnQ2NAVmb3VuZAAEBnBsYXllcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2CmdhdGhlcnBsYW4ABglzb3VyY2VfaWQGdWludDY0DmRlc3RpbmF0aW9uX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIIcmVjaGFyZ2UEYm9vbAVzbG90cwVieXRlcwxnZW5lc2lzZmxlZXQAAQhlbnRpdGllcwxlbnRpdHlfcm93W10MZ2VuZXNpc3dvcmxkAAQHZm91bmRlcgRuYW1lAXgFaW50NjQBeQVpbnQ2NAhub2RlX2lkcwh1aW50MzJbXQxnZXRidWlsZGpvYnMAAQtidWlsZGluZ19pZAZ1aW50NjQKZ2V0Y2hhcnRlcgACAXgFaW50NjQBeQVpbnQ2NAxnZXRjaGFydHRyZWUAAAxnZXRjaHJ0cmVhZHkAAApnZXRjbHVzdGVyAAEGaHViX2lkBnVpbnQ2NAlnZXRjb25maWcAAAxnZXRjcmFmdGpvYnMAAQtidWlsZGluZ19pZAZ1aW50NjQJZ2V0ZGVjb21wAAEHaXRlbV9pZAZ1aW50MTYJZ2V0ZGVtYW5kAAIBeAVpbnQ2NAF5BWludDY0CmdldGRlcG9zaXQAAgVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NAhnZXRkZXBvdAACCGRlcG90X2lkBnVpbnQ2NAVvd25lcgRuYW1lC2dldGRpc3RhbmNlAAQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ2V0ZWxpZ2libGUAAgZjb29yZHMLY29vcmRpbmF0ZXMHc3RyYXR1bQZ1aW50MTYJZ2V0ZW50Y2xzAAALZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMZ2V0Zm9vdHByaW50AAEHaXRlbV9pZAZ1aW50MTYLZ2V0aW5mZGVjYXkAAgZhY3RpdmUGdWludDY0BmVwb2NocwZ1aW50MzIMZ2V0aW5mbHVlbmNlAAMFb3duZXIEbmFtZQF4BWludDY0AXkFaW50NjQLZ2V0aW5mdmFsdWUAAwVpdGVtcwxjYXJnb19pdGVtW10BeAVpbnQ2NAF5BWludDY0C2dldGl0ZW1kYXRhAAAKZ2V0aXRlbWlkcwAACGdldGl0ZW1zAAALZ2V0aXRlbXR5cGUAAQdpdGVtX2lkBnVpbnQxNgxnZXRpdGVtdHlwZXMAAAtnZXRraW5kbWV0YQAAC2dldGxvY2F0aW9uAAIBeAVpbnQ2NAF5BWludDY0CmdldGxvY2RhdGEAAgF4BWludDY0AXkFaW50NjQKZ2V0bWludGNmZwAADGdldG1pbnRyZWFkeQAAC2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQdnZXRwb29sAAIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAhnZXRwb29scwAADGdldHByb2pzdGF0ZQACCWVudGl0eV9pZAZ1aW50NjQKdGFza19jb3VudAZ1aW50OD8JZ2V0cmVjaXBlAAEOb3V0cHV0X2l0ZW1faWQGdWludDE2CmdldHJlY2lwZXMAAgtsb3dlcl9ib3VuZAZ1aW50MTYFbGltaXQFdWludDgKZ2V0cmVzY2F0cwAAC2dldHJlc2VydmVzAAIBeAVpbnQ2NAF5BWludDY0DGdldHJlc291cmNlcwAACGdldHNsb3RzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/DGdldHZvdGVyZWFkeQAACGdldHZvdGVzAAMBeAVpbnQ2NAF5BWludDY0BnBsYXllcgRuYW1lC2dldHdvcm1ob2xlAAIBeAVpbnQ2NAF5BWludDY0CWdyaWRfY2VsbAACAmd4BGludDgCZ3kEaW50OAxncm91cHRyYW5zaXQABQhlbnRpdGllcwxlbnRpdHlfcmVmW10CYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nDGhhdWxlcl9zdGF0cwAECGNhcGFjaXR5BXVpbnQ4CmVmZmljaWVuY3kGdWludDE2BWRyYWluBnVpbnQzMhBjYXBhY2l0eV9ieV90aWVyEWhhdWxlcl90aWVyX2NhcFtdD2hhdWxlcl90aWVyX2NhcAACBHRpZXIFdWludDgIY2FwYWNpdHkFdWludDgEaG9sZAAFAmlkBnVpbnQ2NARraW5kBXVpbnQ4C2NvdW50ZXJwYXJ0CmVudGl0eV9yZWYFdW50aWwKdGltZV9wb2ludA1pbmNvbWluZ19tYXNzBnVpbnQzMgtpbXBvcnRjYXJnbwABA3JvdwljYXJnb19yb3cKaW1wb3J0Y2VsbAAEBHJvb3QGdWludDY0Amd4BGludDgCZ3kEaW50OAllbnRpdHlfaWQGdWludDY0DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGVwb2NoAAEDcm93CWVwb2NoX3JvdwtpbXBvcnRncm91cAABA3Jvdw9lbnRpdHlncm91cF9yb3cMaW1wb3J0bmZ0Y2ZnAAEDcm93DW5mdGNvbmZpZ19yb3cMaW1wb3J0cGxheWVyAAEFb3duZXIEbmFtZQ1pbXBvcnRyZXNlcnZlAAILZXBvY2hfc2NvcGUGdWludDMyA3JvdwtyZXNlcnZlX3JvdwtpbXBvcnRzdGF0ZQABA3JvdwlzdGF0ZV9yb3cLaW5mYnVybl9yb3cAAQNicHMGdWludDE2DWluZmRlbWFuZF9yb3cAAwRwZWFrBnVpbnQ2NARiYXNlBnVpbnQ2NAVmbG9vcgZ1aW50NjQQaW5mbHVlbmNlX3RvdGFscwALEXN0YW5kaW5nX2xpZmV0aW1lBnVpbnQ2NA9zdGFuZGluZ19hY3RpdmUGdWludDY0FGNpdGl6ZW5zaGlwX2xpZmV0aW1lBnVpbnQ2NBJjaXRpemVuc2hpcF9hY3RpdmUGdWludDY0EWxvY2F0aW9uX2xpZmV0aW1lBnVpbnQ2NA9sb2NhdGlvbl9hY3RpdmUGdWludDY0BXNwZW50BnVpbnQ2NAdtYW5kYXRlBnVpbnQzMgdmb3VuZGVyBG5hbWUHZm91bmRlZAZ1aW50MzIFZXBvY2gGdWludDMyC2luZm1pbnRfcm93AAMIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAl0aHJlc2hvbGQGdWludDY0C2luZnBvb2xfcm93AAYIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OAVncmFkZQV1aW50OAhxdWFudGl0eQZ1aW50NjQFc3RhdHMGdWludDY0A2JhcgZ1aW50NjQOaW5mcXVhbGl0eV9yb3cAAQJkMQZ1aW50MzIPaW5mdmFsdWVfcmVzdWx0AAIMdG90YWxfYXRvbWljBnVpbnQ2NA9wZXJfaXRlbV9hdG9taWMIdWludDY0W10NaW5md2VpZ2h0X3JvdwADCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgJd2VpZ2h0X2ZwBnVpbnQ2NAhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4CmxvY2tlcl9yb3cAAwhkZXBvdF9pZAZ1aW50NjQLc3RvcmVkX21hc3MGdWludDY0DXJlc2VydmVkX21hc3MGdWludDY0DG1hbmRhdGVzX3JvdwACB25vZGVfaWQGdWludDMyB3JlcGVhdHMGdWludDE2E21pbnRfdGhyZXNob2xkX3ZpZXcAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXRocmVzaG9sZAZ1aW50NjQObWludGNmZ19yZXN1bHQAAgp0aHJlc2hvbGRzFW1pbnRfdGhyZXNob2xkX3ZpZXdbXQhidXJuX2JwcwZ1aW50MTYJbWludHFfcm93AAICaWQGdWludDY0BWdyYWRlBXVpbnQ4CW1pbnRyZWFkeQABCW1heF9taW50cwd1aW50MzI/DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgKbmF0dXJhbGl6ZQADBnBsYXllcgRuYW1lAXgFaW50NjQBeQVpbnQ2NAtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQzMgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbw5uZnRfY2FyZ29faXRlbQAEB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMhBuZnRfaXRlbV9wYXlsb2FkAAIEaXRlbQ5uZnRfY2FyZ29faXRlbQhsb2NhdGlvbgxjb29yZGluYXRlcz8ObmZ0X3NjaGVtYV9kZWYAAgtzY2hlbWFfbmFtZQRuYW1lBmZpZWxkcw5zY2hlbWFfZmllbGRbXRBuZnRfdGVtcGxhdGVfZGVmAAMHaXRlbV9pZAZ1aW50MTYLc2NoZW1hX25hbWUEbmFtZQt0ZW1wbGF0ZV9pZAVpbnQzMg1uZnRjb25maWdfcm93AAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQluZnRpbWd1cmwAAgRpdGVtCmNhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdGluZm9fcmVzdWx0AAIHc2NoZW1hcxBuZnRfc2NoZW1hX2RlZltdCXRlbXBsYXRlcxJuZnRfdGVtcGxhdGVfZGVmW10Gbm90aWZ5AAEFZXZlbnQKdGFza19ldmVudBFvcmFjbGVfY29uZmlnX3JvdwACCXRocmVzaG9sZAV1aW50OAhkZWFkbGluZQZ1aW50MzIKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lEHBvb2xfcGFpcl9yZXN1bHQACQhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4B2l0ZW1faWQGdWludDE2EXN0YW5kYXJkX3F1YW50aXR5BnVpbnQ2NA5zdGFuZGFyZF9zdGF0cwZ1aW50NjQQcHJlbWl1bV9xdWFudGl0eQZ1aW50NjQNcHJlbWl1bV9zdGF0cwZ1aW50NjQDYmFyBnVpbnQ2NAl0aHJlc2hvbGQGdWludDY0CXBvb2xfdmlldwAHCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgFZ3JhZGUFdWludDgHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NANiYXIGdWludDY0DHBvb2xzX3Jlc3VsdAABBXBvb2xzC3Bvb2xfdmlld1tdDHByb2dyZXNzX3JvdwACB25vZGVfaWQGdWludDMyBmFtb3VudAZ1aW50NjQNcHJvZ3Jlc3NfdmlldwACB25vZGVfaWQGdWludDMyBmFtb3VudAZ1aW50NjQPcHJvamVjdGVkX3N0YXRlABEFb3duZXIEbmFtZQtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX3ZpZXdbXQhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwR0aWVyBXVpbnQ4CHJlY2hhcmdlAAECaWQGdWludDY0DHJlY2lwZV9pbnB1dAACB2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMhByZWNpcGVfaXRlbV9pbmZvAAICaWQGdWludDE2BG1hc3MGdWludDMyD3JlY2lwZV9yZXNwb25zZQAIDm91dHB1dF9pdGVtX2lkBnVpbnQxNgtvdXRwdXRfbWFzcwZ1aW50MzIGaW5wdXRzDnJlY2lwZV9pbnB1dFtdCnN0YXRfc2xvdHMUc3RhdF9zbG90X3Jlc3BvbnNlW10NYmxlbmRfd2VpZ2h0cwVieXRlcwtvdXRwdXRfaXRlbRByZWNpcGVfaXRlbV9pbmZvC2lucHV0X2l0ZW1zEnJlY2lwZV9pdGVtX2luZm9bXQ9zb3VyY2Vfc3ViY2xhc3MHdWludDE2Pw5yZWNpcGVzX3Jlc3VsdAABB3JlY2lwZXMRcmVjaXBlX3Jlc3BvbnNlW10IcmVmaXRfb3AAAgJvcAV1aW50OARzbG90BXVpbnQ4DHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUGcmVuYW1lAAICaWQGdWludDY0BG5hbWUGc3RyaW5nDXJlcGFja19yZXN1bHQAAQd3aW5kb3dzEXJlc2VydmVkX3dpbmRvd1tdC3Jlc2VydmVfcm93AAUCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUPcmVzZXJ2ZWRfd2luZG93AAQCaWQGdWludDY0B2Fycml2YWwKdGltZV9wb2ludAlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludAdyZXNvbHZlAAICaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BnVpbnQzMhRuZXdfc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwpyZXNvbHZlYWxsAAEFb3duZXIEbmFtZRJyZXNvbHZlYWxsX3Jlc3VsdHMAAgdzY2FubmVkBnVpbnQzMghyZXNvbHZlZAZ1aW50MzIMcmVzb2x2ZWVhcmx5AAICaWQGdWludDY0BWNvdW50B3VpbnQ2ND8NcmVzb3VyY2VfaW5mbwAEAmlkBnVpbnQxNgRtYXNzBnVpbnQzMghjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYQcmVzb3VyY2VzX3Jlc3VsdAABCXJlc291cmNlcw9yZXNvdXJjZV9pbmZvW10GcmV2ZWFsAAMJb3JhY2xlX2lkBG5hbWUFZXBvY2gGdWludDY0BnJldmVhbAtjaGVja3N1bTI1NgpyZXZlYWxfcm93AAQCaWQGdWludDY0BWVwb2NoBnVpbnQ2NAlvcmFjbGVfaWQEbmFtZQZyZXZlYWwLY2hlY2tzdW0yNTYIcm1tb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAp0YXJnZXRfcmVmCmNhcmdvX3JlZj8Icm1uZnRjZmcAAQdpdGVtX2lkBnVpbnQxNg5yb3V0ZV93YXlwb2ludAACAXgFaW50NjQBeQVpbnQ2NAhzY2hlZHVsZQACB3N0YXJ0ZWQKdGltZV9wb2ludAV0YXNrcwZ0YXNrW10Mc2NoZW1hX2ZpZWxkAAIEbmFtZQZzdHJpbmcKZmllbGRfdHlwZQZzdHJpbmcJc2VhdF92aWV3AAQHbm9kZV9pZAZ1aW50MzIEY29zdAZ1aW50NjQIcHJvZ3Jlc3MGdWludDY0A2dhcAZ1aW50NjQIc2V0Y2l2aWMAAQdhY2NvdW50BG5hbWUKc2V0Y2x1c3RlcgABA3JvdwtjbHVzdGVyX3JvdwlzZXRjb29yZHMAAwllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAtzZXRkZWFkbGluZQABCGRlYWRsaW5lBnVpbnQzMgpzZXRpbmZidXJuAAEDYnBzBnVpbnQxNghzZXRpbmZkMQABAmQxBnVpbnQzMgxzZXRpbmZkZW1hbmQAAwRwZWFrBnVpbnQ2NARiYXNlBnVpbnQ2NAVmbG9vcgZ1aW50NjQKc2V0aW5mbWludAADCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgJdGhyZXNob2xkBnVpbnQ2NAxzZXRpbmZ3ZWlnaHQAAwhjYXRlZ29yeQV1aW50OAR0aWVyBXVpbnQ4CXdlaWdodF9mcAZ1aW50NjQJc2V0bmV4dGlkAAEHbmV4dF9pZAZ1aW50NjQJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQxzZXR0aHJlc2hvbGQAAQl0aHJlc2hvbGQFdWludDgMc2V0dGxlYmFsbG90AAIJYmFsbG90X2lkBnVpbnQ2NAltYXhfcGFnZXMGdWludDMyDHNldHVud3JhcG1pbgABCGFzc2V0X2lkBnVpbnQ2NAtzZXR3cmFwY29zdAADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjQKc2V0d3JhcGZlZQACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUHc2h1dHRsZQAEB2NhcnJpZXIGdWludDY0B2Zyb21faWQGdWludDY0BXRvX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10Ic2xvdF9kZWYAAwR0eXBlBXVpbnQ4Cm91dHB1dF9wY3QGdWludDE2CG1heF90aWVyBXVpbnQ4EHNvY2tldF9jYW5kaWRhdGUAAwd3aW5kb3dzEXJlc2VydmVkX3dpbmRvd1tdCGR1cmF0aW9uBnVpbnQzMgZhY3RpdmUGdWludDE2C3NvY2tldF9waWNrAAMFZm91bmQEYm9vbAZzb2NrZXQFdWludDgGd2luZG93D3Jlc2VydmVkX3dpbmRvdwxzdGFuZGluZ19yb3cABAdhY2NvdW50BG5hbWUIbGlmZXRpbWUGdWludDY0BmFjdGl2ZQZ1aW50NjQMYWN0aXZlX2Vwb2NoBnVpbnQzMhJzdGF0X3Nsb3RfcmVzcG9uc2UAAQdzb3VyY2VzDXN0YXRfc291cmNlW10Lc3RhdF9zb3VyY2UAAgtpbnB1dF9pbmRleAV1aW50OBBpbnB1dF9zdGF0X2luZGV4BXVpbnQ4CXN0YXRlX3JvdwADB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2VlZAtjaGVja3N1bTI1NgtzdG9yYWdlX3JvdwAHAmlkBnVpbnQ2NAVvd25lcgRuYW1lB2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQtzZXF1ZW5jZV9pZAd1aW50NjQ/CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZghzd2FwdGlsZQAFBmh1Yl9pZAZ1aW50NjQEYV9neARpbnQ4BGFfZ3kEaW50OARiX2d4BGludDgEYl9neQRpbnQ4BHRhc2sADAR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10JY291cGxpbmdzCmNvdXBsaW5nW10Hc3ViamVjdAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQzMj8OdGFyZ2V0X2l0ZW1faWQHdWludDE2PwVyZWZpdAlyZWZpdF9vcD8MY2hhcnRlcl9ub2RlB3VpbnQzMj8KdGFza19ldmVudAAKCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAZ1aW50MzIEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDMyPwhsYW5lX2tleQV1aW50OAx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10RdGVtcGxhdGVfbWV0YV9yb3cABAdpdGVtX2lkBnVpbnQxNgRraW5kBG5hbWUNZGlzcGxheV9sYWJlbAZzdHJpbmcQYmFzZV9jYXBhY2l0eV9mbgZzdHJpbmcHdHJhbnNpdAAFAmlkBnVpbnQ2NAJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAZ0cmF2ZWwABAJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wKdHJhdmVscGxhbgADCGVudGl0aWVzDGVudGl0eV9yZWZbXQl3YXlwb2ludHMQcm91dGVfd2F5cG9pbnRbXQhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAQAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcWc3RyYXR1bV9yZW1haW5pbmdfdHlwZRFzdHJhdHVtX3JlbWFpbmluZxVuZnRfaXRlbV9wYXlsb2FkX3R5cGUQbmZ0X2l0ZW1fcGF5bG9hZBJkZWNvbXBfcmVzdWx0X3R5cGUNZGVjb21wX3Jlc3VsdBJkZW1hbmRfcmVzdWx0X3R5cGUNZGVtYW5kX3Jlc3VsdBRpbmZ2YWx1ZV9yZXN1bHRfdHlwZQ9pbmZ2YWx1ZV9yZXN1bHQVaW5mbHVlbmNlX3RvdGFsc190eXBlEGluZmx1ZW5jZV90b3RhbHMRcG9vbHNfcmVzdWx0X3R5cGUMcG9vbHNfcmVzdWx0FXBvb2xfcGFpcl9yZXN1bHRfdHlwZRBwb29sX3BhaXJfcmVzdWx0E21pbnRjZmdfcmVzdWx0X3R5cGUObWludGNmZ19yZXN1bHQTY2hhcnRlcl9yZXN1bHRfdHlwZQ5jaGFydGVyX3Jlc3VsdBhjaGFydGVycmVhZHlfcmVzdWx0X3R5cGUTY2hhcnRlcnJlYWR5X3Jlc3VsdBB2b3RlX3Jlc3VsdF90eXBlC3ZvdGVfcmVzdWx0D2RlcG90X3ZpZXdfdHlwZQpkZXBvdF92aWV3CHVuZGVwbG95AAIHaG9zdF9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NAZ1bmxvYWQAAwJpZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQd1cGdyYWRlAAUKYnVpbGRlcl9pZAZ1aW50NjQJdGFyZ2V0X2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYGaW5wdXRzDGNhcmdvX2l0ZW1bXQRzbG90BnVpbnQ4Pwt2b3RlX29wdGlvbgAFB25vZGVfaWQGdWludDMyBGNvc3QGdWludDY0BHNlYXQGdWludDMyBndlaWdodAZ1aW50NjQEcmFuawZ1aW50MzILdm90ZV9yZXN1bHQACQtsb2NhdGlvbl9pZAZ1aW50NjQJYmFsbG90X2lkBnVpbnQ2NAVlcG9jaAZ1aW50MzINc2V0dGxlZF9lcG9jaAZ1aW50MzIFc2VhdHMGdWludDMyCHNldHRsaW5nBGJvb2wFcXVldWUIdWludDMyW10Hb3B0aW9ucw12b3RlX29wdGlvbltdBXBpY2tzCHVpbnQzMltdCXZvdGVyZWFkeQABCW1heF9wYWdlcwZ1aW50MzIEd2FycAADAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMg53aW5kb3dfcmVjZWlwdAADBmpvYl9pZAZ1aW50NjQJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQEd2lwZQAACndvcmxkc19yb3cACQtsb2NhdGlvbl9pZAZ1aW50NjQIbGlmZXRpbWUGdWludDY0BmFjdGl2ZQZ1aW50NjQMYWN0aXZlX2Vwb2NoBnVpbnQzMgVzcGVudAZ1aW50NjQKdW5hc3NpZ25lZAZ1aW50NjQJYmFsbG90X2lkBnVpbnQ2NAdmb3VuZGVyBG5hbWUHZm91bmRlZAZ1aW50MzINd29ybWhvbGVfaW5mbwADBmNvb3Jkcwtjb29yZGluYXRlcwtpc193b3JtaG9sZQRib29sC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDndyYXBjb25maWdfcm93AAMHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQxtaW5fYXNzZXRfaWQGdWludDY0DHdyYXBjb3N0X3JvdwADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjSkAQAyjXXSNM0xC2FiYW5kb25wbG90AADAcTdPilIyCmFkZGNvbnRyaWIAAABQUScqUzIJYWRkbW9kdWxlxwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbW9kdWxlCnN1bW1hcnk6ICdJbnN0YWxsIGEgbW9kdWxlIGludG8gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YWxsIGEgbW9kdWxlIGZyb20gY2FyZ28gaW50byBhIG1vZHVsZSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSB0eXBlIG11c3QgYmUgY29tcGF0aWJsZSB3aXRoIHRoZSB0YXJnZXQgc2xvdCB0eXBlLiBUaGUgbW9kdWxlIGl0ZW0gaXMgcmVtb3ZlZCBmcm9tIGNhcmdvIHVwb24gaW5zdGFsbGF0aW9uLgAAAFh3NVMyCGFkZG5leHVzpwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWRkbmV4dXMKc3VtbWFyeTogJ0FkZCBhIG5leHVzIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDcmVhdGUgYSBuZXcgbmV4dXMgZW50aXR5IGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcy4gTmV4dXNlcyBhcmUgb3duZWQgYnkgdGhlIGNvbnRyYWN0IGFuZCBzZXJ2ZSBhcyBmaXhlZCBnYXRoZXJpbmcgcG9pbnRzIHdoZXJlIHBsYXllcnMgY2FuIHdyYXAsIHVud3JhcCwgZGVwbG95LCBhbmQgb3RoZXJ3aXNlIGludGVyYWN0IHdpdGggTkZULWJhY2tlZCBhc3NldHMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAFARmUtTMglhZGRvcmFjbGUAAAAAAIA0VTwFYmxlbmT8Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBibGVuZApzdW1tYXJ5OiAnQmxlbmQgY2FyZ28gc3RhY2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDb21iaW5lIG11bHRpcGxlIGNhcmdvIHN0YWNrcyBvZiB0aGUgc2FtZSBpdGVtIHR5cGUgaW50byBhIHNpbmdsZSBzdGFjayB3aXRoIG5ldyBibGVuZGVkIHN0YXRzLiBBbGwgaW5wdXQgc3RhY2tzIG11c3Qgc2hhcmUgdGhlIHNhbWUgaXRlbSBpZC4gVGhlIG91dHB1dCBzdGFjayBoYXMgdGhlIGNvbWJpbmVkIHF1YW50aXR5IG9mIGFsbCBpbnB1dHMuAAAAh74UnT4IYnVpbGRqb2IAAADINNYUnT4JYnVpbGRwbG90AAAAAABEhaZBBmNhbmNlbMICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNhbmNlbApzdW1tYXJ5OiAnQ2FuY2VsIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FuY2VsIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHRhc2tzIGZyb20gdGhlIGVuZCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZS4gVGFza3MgdGhhdCBhcmUgaW1tdXRhYmxlIGFuZCBpbiBwcm9ncmVzcyBjYW5ub3QgYmUgY2FuY2VsbGVkLgBSdPpEhaZBC2NhbmNlbGJ1aWxkAACQ2w5FhaZBC2NhbmNlbGNpdmljAADyMhdFhaZBC2NhbmNlbGNyYWZ0AABApjGak7FBCmNhc3RiYWxsb3QA4JNR96p8TUMMY2hhcnRlcnJlYWR5AKBizrph5LZDDGNpdmljc2h1dHRsZQAAQIpOH+lMRApjbGFpbWJ1aWxkAABAXuYi6UxECmNsYWltY3JhZnQAAADINFbpTEQJY2xhaW1wbG90AHBVviZj6UxEDGNsYWltc3RhcnRlcgAAAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEBDtCqFaUQKY2xvc2VlcG9jaACQl7noqox1RAxjbHVzdGVyY3JhZnQAAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy4AAACHvrzMRQhjcmFmdGpvYgAAAMguqYvYSQlkYmdjcmVkaXQAAAAAAB/62EkHZGJnam9icwAAgMomTSPZSQpkYmdtYW5kYXRlAAAwp1cxU9lJC2RiZ3BhZ2Vyb3dzAAAAAAAiV9lJB2RiZ3BpY2sAAAAACplY2UkIZGJncGxhY2UAAAAAil1d2UkIZGJncHVyZ2UAAACAyFR12UkJZGJncmVwYWNrAAAAADgbhdlJCGRiZ3NlYXRzAAAA8NnlqaJKCWRlbGVudGl0eQAAAAANu0ilSghkZW1vbGlzaPEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlbW9saXNoCnN1bW1hcnk6ICdEZW1vbGlzaCBhIHN0YXRpb25hcnkgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZWNvbW1pc3Npb24gYW4gZW50aXR5LCBlcmFzaW5nIGl0IGZyb20gdGhlIGdhbWUuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlLCBoYXZlIGVtcHR5IGNhcmdvLCBhbmQgaGF2ZSBubyBpbnN0YWxsZWQgbW9kdWxlcyAocmVtb3ZlIGVhY2ggdmlhIHJtbW9kdWxlIGZpcnN0KS4gU2NoZWR1bGVzIGEgZGVtb2xpc2ggdGFzayB0aGF0IGVyYXNlcyB0aGUgZW50aXR5IG9uIHJlc29sdXRpb24uIE9ubHkgdmFsaWQgZm9yIGVudGl0aWVzIHRoYXQgY2Fubm90IG1vdmU7IHVzZSB1bmRlcGxveSBvciB3cmFwZW50aXR5IGZvciB0aGUgcmVzdC4AAAAAeBqrSgZkZXBsb3nsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXBsb3kKc3VtbWFyeTogJ0RlcGxveSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClVucGFjayBhIHBhY2tlZCBlbnRpdHkgaXRlbSAocGFja2VkIHNoaXAgb3IgcGFja2VkIGNvbnRhaW5lcikgZnJvbSBjYXJnbywgc2NoZWR1bGluZyBhIGRlcGxveSB0YXNrIHRoYXQgY3JlYXRlcyB0aGUgbmV3IGVudGl0eSBhdCB0aGUgZGVwbG95aW5nIGVudGl0eSdzIGxvY2F0aW9uIHVwb24gcmVzb2x1dGlvbi4AgLo040yrSgpkZXBvdHN0b3JlAAAAUNDkTKtKCWRlcG90dGFrZQAAgM8uT4WwSgpkZXNjZW50aXR5yQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVzY2VudGl0eQpzdW1tYXJ5OiAnRGVzY3JpYmUgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIHN0cmluZyBmb3IgYSBwYWNrZWQgZW50aXR5LCBkZXJpdmVkIGZyb20gdGhlIGVudGl0eSBpdGVtIGlkLCBodWxsIHN0YXRzLCBhbmQgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIG1vZHVsZSBpdGVtIGlkcyBhbmQgc3RhdHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZGlzcGxheSBwYWNrZWQgZW50aXRpZXMuAAAAAKh4zFQGZW5hYmxl3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLoCxkZRdg7pbDGZpeGNhcmdvbWFzc5ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZpeGNhcmdvbWFzcwpzdW1tYXJ5OiAnREVCVUc6IHJlY29tcHV0ZSBlbnRpdHkgY2FyZ28gbWFzcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGFuZCByZXdyaXRlIGFuIGVudGl0eSdzIGNhcmdvIG1hc3MgZnJvbSBpdHMgY3VycmVudCBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LiBBdmFpbGFibGUgZm9yIHJlcGFpcmluZyBkcmlmdCBiZXR3ZWVuIGNhY2hlZCBjYXJnbyBtYXNzIGFuZCB0aGUgdHJ1ZSBtYXNzIGRlcml2ZWQgZnJvbSBjYXJnbyByb3dzLgAATk6q7LpbCmZpeGl0ZW1pZHMAAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAgDQ1XQVmb3VuZAAAAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAMA0sV7VsmEKZ2F0aGVycGxhbgCQlYoLO6ymYgxnZW5lc2lzZmxlZXSpBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzZmxlZXQKc3VtbWFyeTogJ01pbnQgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVtcGxhY2UgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQ6IGEgY2FsbGVyLXN1cHBsaWVkIHNldCBvZiBlbnRpdGllcyAoc2hpcHMsIHN0cnVjdHVyZXMsIGFuZCBjb250YWluZXJzKSB3cml0dGVuIHRvIHRoZSB3b3JsZCBhcy1pcy4gVmFsaWQgb25seSBkdXJpbmcgdGhlIHByZS1nZW5lc2lzIHdpbmRvdywgYmVmb3JlIGVwb2NoIDEgaXMgZmluYWxpemVkLiBUaGUgc3VwcGxpZWQgZW50aXR5IGlkcyBhcmUgaG9ub3JlZCBhbmQgdGhlIGlkIHNlcXVlbmNlIGlzIGFkdmFuY2VkIHBhc3QgdGhlbTsgaWQgMCBpcyByZXNlcnZlZCBmb3IgdGhlIEdlbmVzaXMgTmV4dXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6Q4qUcO6ymYgxnZW5lc2lzd29ybGTnBy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzd29ybGQKc3VtbWFyeTogJ0ZvdW5kIGEgd29ybGQgYXQgZ2FtZSBsYXVuY2ggd2l0aCBpdHMgY2l2aWMgY2hhcnRlcnMgYWxyZWFkeSBjb21wbGV0ZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkZvdW5kIGEgcGxhbmV0IGFzIGEgd29ybGQgZHVyaW5nIHRoZSBwcmUtZ2VuZXNpcyB3aW5kb3csIGJlZm9yZSBlcG9jaCAxIGlzIGZpbmFsaXplZCwgd2l0aCB0aGUgbGlzdGVkIGNoYXJ0ZXIgbm9kZXMgY29tcGxldGVkIGluIG9yZGVyLiBUaGUgZm91bmRlciBtdXN0IGhvbGQgYSBjb21wYW55IG9uIHRoZSBwbGF0Zm9ybTsgdGhlIGZvdW5kZXIgaXMgY3JlZGl0ZWQgd2l0aCBsaWZldGltZSBpbmZsdWVuY2UgZXF1YWwgdG8gdGhlIHN1bW1lZCBjb3N0IG9mIHRoZSBsaXN0ZWQgbm9kZXMsIGFuZCBlYWNoIG5vZGUgaXMgdGhlbiBjb21wbGV0ZWQgdGhyb3VnaCB0aGUgc2FtZSBydWxlcyBhIGNoYXJ0ZXIgY3JhbmsgYXBwbGllczogcHJlcmVxdWlzaXRlcyBtdXN0IGJlIHNhdGlzZmllZCBieSBlYXJsaWVyIG5vZGVzIGluIHRoZSBsaXN0LCBhIHNwYXduIG5vZGUgYWRvcHRzIGEgY2l2aWMgZW50aXR5IG9mIGl0cyBraW5kIGFscmVhZHkgc3RhbmRpbmcgYXQgdGhlIGxvY2F0aW9uIG9yIHNwYXducyBvbmUsIGFuZCBhIHJlZml0IG5vZGUgcmVmaXRzIHRoZSBlbnRpdHkgcmVjb3JkZWQgZm9yIGl0cyB0YXJnZXQuIFNwZW50IGFkdmFuY2VzIGJ5IGV2ZXJ5IG5vZGUncyBjb3N0LCBzbyB0aGUgcmVzdWx0aW5nIHdvcmxkIGlzIG9uZSBhIHNpbmdsZSBmb3VuZGVyIGNvdWxkIGhhdmUgYWR2YW5jZWQgYWxvbmUuIEVhY2ggbG9jYXRpb24gY2FuIGJlIGZvdW5kZWQgdGhpcyB3YXkgb25jZS4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LoAPfSk6fbJiDGdldGJ1aWxkam9icwAAwFX5moayYgpnZXRjaGFydGVyAKDUzfmahrJiDGdldGNoYXJ0dHJlZQDgk1E334ayYgxnZXRjaHJ0cmVhZHkAAMBVGeuIsmIKZ2V0Y2x1c3RlcgAAAGBuTYqyYglnZXRjb25maWfKAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRjb25maWcKc3VtbWFyeTogJ0dldCBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGdhbWUgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgZGVmYXVsdCBlbnRpdHkgc3RhdHMgZm9yIHdhcmVob3VzZXMgYW5kIGNvbnRhaW5lcnMsIGFuZCB0aGUgZnVsbCBpdGVtIGRlZmluaXRpb25zIHRhYmxlLoAPfXmZi7JiDGdldGNyYWZ0am9icwAAAKiSIpWyYglnZXRkZWNvbXAAAABI00iVsmIJZ2V0ZGVtYW5kAABAdphWlbJiCmdldGRlcG9zaXQAAAAAmVaVsmIIZ2V0ZGVwb3QAABSaJmOXsmILZ2V0ZGlzdGFuY2UAAFQ8jrmosmILZ2V0ZWxpZ2libGXIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbGlnaWJsZQpzdW1tYXJ5OiAnR2V0IGVsaWdpYmxlIHJlc291cmNlIGl0ZW0gSURzIGF0IGEgbG9jYXRpb24gYW5kIHN0cmF0dW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBsaXN0IG9mIHJlc291cmNlIGl0ZW0gSURzIGVsaWdpYmxlIHRvIGJlIGdhdGhlcmVkIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcyBhbmQgc3RyYXR1bSBkZXB0aC4gSXRlbXMgYXJlIGdhdGVkIGJ5IGJvdGggdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgcHJvZmlsZSBhbmQgdGhlIGRlcHRoIHRocmVzaG9sZCBmb3IgZWFjaCB0aWVyLgAAwBHlqbJiCWdldGVudGNsc4wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGNscwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChPcmJpdGFsVmVzc2VsLCBQbGFuZXRhcnlTdHJ1Y3R1cmUpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBlbnRpdHkgY2xhc3MgaWRlbnRpZmllcnMuALBy2eWpsmILZ2V0ZW50aXRpZXOkAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdGllcwpzdW1tYXJ5OiAnR2V0IGFsbCBlbnRpdGllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgZnVsbCBlbnRpdHkgaW5mbyBmb3IgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4AAPDZ5amyYglnZXRlbnRpdHmiAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdHkKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gZW50aXR5IGluY2x1ZGluZyBpZGVudGl0eSwgY2FyZ28sIHNjaGVkdWxlIHN0YXRlLCBhbmQgdHlwZS1zcGVjaWZpYyBmaWVsZHMukKe7NVO6smIMZ2V0Zm9vdHByaW50AAC8QSqt6bJiC2dldGluZmRlY2F5AKDQVDqu6bJiDGdldGluZmx1ZW5jZQAAlI5mr+myYgtnZXRpbmZ2YWx1ZQAATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AVPVZquyyYgtnZXRpdGVtdHlwZQCAVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuAABbKE8ns2IKZ2V0bWludGNmZwDgk1E3TyezYgxnZXRtaW50cmVhZHkAALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ5ygMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgYW5kIGZsaWdodCB0aW1lLgCAwubkNbNiCmdldG5mdGJhc2UAAABd0+U1s2IKZ2V0bmZ0aW5mb/ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5mdGluZm8Kc3VtbWFyeTogJ0dldCBORlQgc2NoZW1hIGFuZCB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgQXRvbWljQXNzZXRzIHNjaGVtYXMgYW5kIHRlbXBsYXRlcyB0aGUgZ2FtZSBjb250cmFjdCBleHBlY3RzLCBwbHVzIHRoZSBjdXJyZW50IGBpdGVtX2lkIOKGkiAodGVtcGxhdGVfaWQsIHNjaGVtYV9uYW1lKWAgbWFwcGluZyBzdG9yZWQgaW4gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHN5bmMgYXRvbWljYXNzZXRzIHN0YXRlIHdpdGggdGhlIGNvbnRyYWN0LgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuAAAAIFJas2IHZ2V0cG9vbAAAAAA4UlqzYghnZXRwb29scwCgssn40VuzYgxnZXRwcm9qc3RhdGXLAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwcm9qc3RhdGUKc3VtbWFyeTogJ0dldCBwcm9qZWN0ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcHJvamVjdGVkIHN0YXRlIG9mIGFuIGVudGl0eSBhZnRlciBhcHBseWluZyB0aGUgbmV4dCB0YXNrX2NvdW50IHNjaGVkdWxlZCB0YXNrcyAob3IgYWxsIHRhc2tzIGlmIHRhc2tfY291bnQgaXMgb21pdHRlZCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcHJldmlldyB0aGUgcmVzdWx0IG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlIHdpdGhvdXQgcmVzb2x2aW5nIG9uLWNoYWluLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLuCTUVdlurNiDGdldHZvdGVyZWFkeQAAAABYZbqzYghnZXR2b3RlcwAAVKRNXsqzYgtnZXR3b3JtaG9sZQCQHZ7m5qrpZQxncm91cHRyYW5zaXQAAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo+AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuACi7BuVLq3QLaW1wb3J0Y2FyZ28AAECMCuVLq3QKaW1wb3J0Y2VsbADgs8tT5UurdAxpbXBvcnRlbnRpdHkAABqiVeVLq3QLaW1wb3J0ZXBvY2gAAKqml+VLq3QLaW1wb3J0Z3JvdXAAwBbKa+ZLq3QMaW1wb3J0bmZ0Y2ZnAHCVN7HmS6t0DGltcG9ydHBsYXllcgC6r8Lq5kurdA1pbXBvcnRyZXNlcnZlAABUNhnnS6t0C2ltcG9ydHN0YXRlAAAAAAAAMB19BGpvaW7EAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQAAAAANDS1iQZsYXVuY2gAAAAAAACQDI0EbG9hZAAAAPDJqJunkwltaW50cmVhZHkAAAAAKrqsNpUIbW92ZXRpbGUAAID6Lpqrs5kKbmF0dXJhbGl6ZQAAAIhXM+nymgluZnRpbWd1cmyyAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBuZnRpbWd1cmwKc3VtbWFyeTogJ0dldCBORlQgaW1hZ2UgVVJMIGZvciBhIGNhcmdvIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBpbWFnZSBVUkwgdGhlIGNvbnRyYWN0IGVtaXRzIGZvciBhIGdpdmVuIGNhcmdvIGl0ZW0sIG9wdGlvbmFsbHkgc2NvcGVkIHRvIGEgbG9jYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZmV0Y2ggdGhlIGNhbm9uaWNhbCBhcnR3b3JrIGZvciBhbiBpdGVtIG9yIHBhY2tlZCBlbnRpdHkuAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAABl1yCFTKwKcGxhY2VjYXJnb8kELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlY2FyZ28Kc3VtbWFyeTogJ1Jlc3RvcmUgTkZUIGNhcmdvIG9udG8gYSBob3N0IGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc3RvcmVzIHRoZSBjYXJnbyByZWNvcmRlZCBpbiBhbiB1bndyYXBwZWQgTkZUIG9udG8gYSBob3N0IGVudGl0eS4gVmFsaWRhdGVzIGhvc3Qgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcmVtYWluaW5nIGNhcGFjaXR5LCBkZXNlcmlhbGl6ZXMgdGhlIE5GVCdzIGl0ZW0gZGF0YSwgYW5kIGFwcGVuZHMgYW4gdW53cmFwIHRhc2sgdG8gZGVsaXZlciB0aGUgY2FyZ28gdG8gdGhlIGhvc3QuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAHx2eSqFTKwLcGxhY2VlbnRpdHnABC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWVudGl0eQpzdW1tYXJ5OiAnTWF0ZXJpYWxpemUgYSBwYWNrZWQtZW50aXR5IE5GVCBhcyBhIGxpdmUgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gRW1wbGFjZXMgYSBsaXZlIG9yYml0YWwgdmVzc2VsIChzaGlwIG9yIGNvbnRhaW5lcikgZnJvbSBpdHMgcGFja2VkLWVudGl0eSBORlQgZGF0YSBhdCB0aGUgcmVjb3JkZWQgd3JhcCBvcmlnaW4sIHRoZW4gcXVldWVzIHRyYXZlbCBhbmQgcmVjaGFyZ2UgdGFza3MgdG8gZGVsaXZlciBpdCB0byB0aGUgdGFyZ2V0IG5leHVzIGF0IGZ1bGwgZW5lcmd5LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS7gs8tTNXyXugxyZWZyc2hlbnRpdHm4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWZyc2hlbnRpdHkKc3VtbWFyeTogJ1JlZnJlc2ggZGVyaXZlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlY29tcHV0ZSBkZXJpdmVkIGZpZWxkcyBvbiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBjYXJnbyBhbmQgbW9kdWxlcywgcmVmcmVzaGluZyBjYXBhYmlsaXR5IHN0YXRzIGFuZCBjYXJnbyBtYXNzLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVXNlZCB0byByZWNvbmNpbGUgZGVyaXZlZCBzdGF0ZSBhZnRlciBkYXRhIG1pZ3JhdGlvbnMgb3IgY29udHJhY3QgdXBncmFkZXMuoCIyl6pNpboMcmVtb3Zlb3JhY2xlAAAAAAAoaaa6BnJlbmFtZQAAAABA7UixugdyZXNvbHZl0AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgBAjEbtSLG6CnJlc29sdmVhbGwA4OM1Su1IsboMcmVzb2x2ZWVhcmx5AAAAAABEo7a6BnJldmVhbAAAAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAMhth7LCCHNldGNpdmljAADAVRnriLLCCnNldGNsdXN0ZXIAAADA6VKKssIJc2V0Y29vcmRzAADUdDEZlbLCC3NldGRlYWRsaW5lAADAvPqs6bLCCnNldGluZmJ1cm4AAAAAIa3pssIIc2V0aW5mZDEAkKaRKq3pssIMc2V0aW5mZGVtYW5kAABAnk6u6bLCCnNldGluZm1pbnQAkBtziq/pssIMc2V0aW5md2VpZ2h0AAAASC53NbPCCXNldG5leHRpZAAAAGAL5TWzwglzZXRuZnRjZmfEAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXRuZnRjZmcKc3VtbWFyeTogJ1NldCBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQmluZCBhbiBpdGVtIGlkIHRvIGFuIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBpZCBhbmQgc2NoZW1hIG5hbWUuIFVzZWQgdG8gY29uZmlndXJlIGhvdyB0aGUgY29udHJhY3QgbWludHMgYW5kIHJlY29nbml6ZXMgTkZUcyBmb3IgYSBnaXZlbiBpdGVtLiBJbnNlcnRzIGEgbmV3IG1hcHBpbmcgaWYgb25lIGRvZXMgbm90IGV4aXN0LCBvciB1cGRhdGVzIHRoZSBleGlzdGluZyBtYXBwaW5nLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkukCJtWN2Ws8IMc2V0dGhyZXNob2xkAJBpjOaomLPCDHNldHRsZWJhbGxvdAAwnazm8qmzwgxzZXR1bndyYXBtaW4AADKmqJrLs8ILc2V0d3JhcGNvc3QAAIBSq5rLs8IKc2V0d3JhcGZlZQAAAABAxZx1wwdzaHV0dGxlAAAAoOwaxGnGCXN0b3djYXJnb9UFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3djYXJnbwpzdW1tYXJ5OiAnUmVzZXJ2ZSBhIGNhcmdvIHN0YWNrIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGFuZCBjb25zdW1lcyBhIGNhcmdvIHN0YWNrIG9uIGEgbGl2ZSBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBWYWxpZGF0ZXMgZW50aXR5IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHByZXNlbmNlIGF0IHRoZSBuZXh1cywgYW5kIGNvbmZpcm1zIHRoZSB0YXJnZXQgY2FyZ28gc3RhY2sgaXMgYXZhaWxhYmxlIGFuZCBub3QgcmVzZXJ2ZWQgYnkgYSBwZW5kaW5nIHRhc2suIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIE5GVCdzIGltbXV0YWJsZSBkYXRhLCBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QgYmVmb3JlIGNvbnN1bWluZyB0aGUgY2FyZ28uIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgM8uT8VpxgpzdG93ZW50aXR5mQUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2VudGl0eQpzdW1tYXJ5OiAnUmVzZXJ2ZSBhbiBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYSB3aG9sZSBlbnRpdHkgKHNoaXAsIGNvbnRhaW5lciwgb3IgcGxhbmV0YXJ5IHN0cnVjdHVyZSkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvIGFuZCBubyBzY2hlZHVsZWQgdGFza3MuIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIGVudGl0eSBORlQncyBpbW11dGFibGUgZGF0YSwgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QsIGFuZCBlcmFzZXMgdGhlIGVudGl0eSBmcm9tIHRoZSB3b3JsZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAijpRWQ3HCnN3YXBtb2R1bGUAAAAAKrpcDccIc3dhcHRpbGUAAAAAIDs8zc0HdHJhbnNpdAAAAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAMA0sUa1zc0KdHJhdmVscGxhbgAAAACexqrS1Ah1bmRlcGxveecELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVuZGVwbG95CnN1bW1hcnk6ICdQYWNrIGEgZGVwbG95ZWQgZW50aXR5IGludG8gYSBob3N0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQYWNrIGFuIGVudGl0eSBpbnRvIGEgaG9zdCBlbnRpdHkncyBjYXJnbyBhcyBhIHBhY2tlZC1lbnRpdHkgaXRlbS4gSG9zdCBhbmQgdGFyZ2V0IG11c3Qgc2hhcmUgdGhlIHNhbWUgb3duZXIgYW5kIGNvb3JkaW5hdGVzLCB0aGUgaG9zdCBtdXN0IGhhdmUgbG9hZGVycyBhbmQgZW5vdWdoIGNhcGFjaXR5IGZvciB0aGUgcGFja2VkIG1hc3MsIGFuZCB0aGUgdGFyZ2V0IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGFuZCBzY2hlZHVsZXMgdW5kZXBsb3kgdGFza3Mgb24gYm90aCBlbnRpdGllczsgb24gcmVzb2x1dGlvbiB0aGUgdGFyZ2V0IGlzIGVyYXNlZCBhbmQgdGhlIHBhY2tlZCBlbnRpdHkgaXMgYWRkZWQgdG8gdGhlIGhvc3QncyBjYXJnby4gSW52ZXJzZSBvZiBkZXBsb3kuAAAAACRD49QGdW5sb2FkAAAAAEAlc1nVB3VwZ3JhZGUAAADwyairMt0Jdm90ZXJlYWR5AAAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tKAAAAABkGqM5A2k2NAAACmJhbGxvdF9yb3cAMESuZhqjOQNpNjQAAA9iYWxsb3RwaWNrc19yb3cAALAKZxqjOQNpNjQAAA5iYWxsb3Rfc2VxX3Jvd6BizgpnGqM5A2k2NAAAEGJhbGxvdHNldHRsZV9yb3cAAMBsuhSdPgNpNjQAAA1idWlsZGluZ3Nfcm93AADAh74UnT4DaTY0AAAMYnVpbGRqb2Jfcm93AAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AKpreKrvskMDaTY0AAAPY2l0aXplbnNoaXBfcm93AJhbkyLktkMDaTY0AAAPY2l2aWNjb25maWdfcm93AAAAAGDpTEQDaTY0AAAJY2xhaW1fcm93AAAA4KqMdUQDaTY0AAALY2x1c3Rlcl9yb3cAAAAAZCclRQNpNjQAAApjb21taXRfcm93AADAh768zEUDaTY0AAAMY3JhZnRqb2Jfcm93AAAAAPjs8lQDaTY0AAAKZW50aXR5X3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAsAr77PJUA2k2NAAADmVudGl0eV9zZXFfcm93AAAAAICGaFUDaTY0AAAJZXBvY2hfcm93AAAAYF591nQDaTY0AAALaW5mYnVybl9yb3cAAEjTSJXWdANpNjQAAA1pbmZkZW1hbmRfcm93AAAAIE8n13QDaTY0AAALaW5mbWludF9yb3cAAAAgUlrXdANpNjQAAAtpbmZwb29sX3JvdwCAzy4abdd0A2k2NAAADmluZnF1YWxpdHlfcm93AADIjTnF13QDaTY0AAANaW5md2VpZ2h0X3JvdwAAAABfBRGNA2k2NAAACmxvY2tlcl9yb3cAAABYZZOmkQNpNjQAAAxtYW5kYXRlc19yb3cAAAAAAJunkwNpNjQAAAltaW50cV9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAABiry+itA2k2NAAADHByb2dyZXNzX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAGy6NE3GA2k2NAAADHN0YW5kaW5nX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAEAxc2nGA2k2NAAAC3N0b3JhZ2Vfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AAAAAOAUL+UDaTY0AAAKd29ybGRzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAAGIAMo110jTNMQx0YXNrX3Jlc3VsdHMAwHE3T4pSMgx0YXNrX3Jlc3VsdHMAAACHvhSdPg53aW5kb3dfcmVjZWlwdAAAyDTWFJ0+DHRhc2tfcmVzdWx0cwAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAFJ0+kSFpkEMdGFza19yZXN1bHRzAJDbDkWFpkEOY2FuY2VsX3Jlc3VsdHOgYs66YeS2Qwx0YXNrX3Jlc3VsdHMAQF7mIulMRAx0YXNrX3Jlc3VsdHMAAMg0VulMRAx0YXNrX3Jlc3VsdHOQl7noqox1RAx0YXNrX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAACHvrzMRQ53aW5kb3dfcmVjZWlwdAAAAAAiV9lJC3NvY2tldF9waWNrAAAACplY2UkPcmVzZXJ2ZWRfd2luZG93AACAyFR12UkNcmVwYWNrX3Jlc3VsdAAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAujTjTKtKDHRhc2tfcmVzdWx0cwAAUNDkTKtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwDANLFe1bJhDHRhc2tfcmVzdWx0c4APfSk6fbJiEGJ1aWxkam9ic19yZXN1bHQAwFX5moayYg5jaGFydGVyX3Jlc3VsdKDUzfmahrJiE2NoYXJ0ZXJfdHJlZV9yZXN1bHTgk1E334ayYhNjaGFydGVycmVhZHlfcmVzdWx0AMBVGeuIsmILY2x1c3Rlcl9yb3cAAGBuTYqyYgtnYW1lX2NvbmZpZ4APfXmZi7JiEGNyYWZ0am9ic19yZXN1bHQAAKiSIpWyYg1kZWNvbXBfcmVzdWx0AABI00iVsmINZGVtYW5kX3Jlc3VsdABAdphWlbJiDmV4dGVuZGVkX2Fzc2V0AAAAmVaVsmIKZGVwb3RfdmlldwAUmiZjl7JiBnVpbnQ2NABUPI65qLJiCHVpbnQxNltdAADAEeWpsmILZW51bV9yZXN1bHQAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm+Qp7s1U7qyYhBmb290cHJpbnRfcmVzdWx0ALxBKq3psmIGdWludDY0oNBUOq7psmIQaW5mbHVlbmNlX3RvdGFscwCUjmav6bJiD2luZnZhbHVlX3Jlc3VsdABMNkmq7LJiD2l0ZW1kYXRhX3Jlc3VsdAAATk6q7LJiD2l0ZW1faWRzX3Jlc3VsdAAAAFiq7LJiCml0ZW1zX2luZm8AVPVZquyyYgV1aW50OIBV9Vmq7LJiC2VudW1fcmVzdWx0AExWMk0Hs2IQa2luZF9tZXRhX3Jlc3VsdAAmddkgGrNiDWxvY2F0aW9uX2luZm8AgMkmIRqzYhBsb2NhdGlvbl9kZXJpdmVkAABbKE8ns2IObWludGNmZ19yZXN1bHTgk1E3TyezYgZ1aW50MzIAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm8AAAAgUlqzYhBwb29sX3BhaXJfcmVzdWx0AAAAOFJas2IMcG9vbHNfcmVzdWx0oLLJ+NFbs2IPcHJvamVjdGVkX3N0YXRlAABQ1SF1s2IOcmVjaXBlc19yZXN1bHQAAFbVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAzgZhdbNiC2VudW1fcmVzdWx0ALDaV2F1s2ITc3RyYXR1bV9yZW1haW5pbmdbXYAVuppidbNiEHJlc291cmNlc19yZXN1bHQAAAA404izYhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtd4JNRV2W6s2IGdWludDMyAAAAWGW6s2ILdm90ZV9yZXN1bHQAVKRNXsqzYg13b3JtaG9sZV9pbmZvkB2e5uaq6WUMdGFza19yZXN1bHRzAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAAA0NLWJDHRhc2tfcmVzdWx0cwAAAAAAkAyNDHRhc2tfcmVzdWx0cwAAACq6rDaVDHRhc2tfcmVzdWx0cwAAiFcz6fKaBnN0cmluZwAAZdcghUysDHRhc2tfcmVzdWx0cwB8dnkqhUysDHRhc2tfcmVzdWx0cwAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwBAjEbtSLG6EnJlc29sdmVhbGxfcmVzdWx0c+DjNUrtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAEDFnHXDDHRhc2tfcmVzdWx0cwAAoOwaxGnGDHRhc2tfcmVzdWx0cwCAzy5PxWnGDHRhc2tfcmVzdWx0cwAAACq6XA3HDHRhc2tfcmVzdWx0cwAAACA7PM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwDANLFGtc3NDHRhc2tfcmVzdWx0cwAAAJ7GqtLUDHRhc2tfcmVzdWx0cwAAAAAkQ+PUDHRhc2tfcmVzdWx0cwAAAEAlc1nVDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
|
|
855
855
|
const abi$1 = ABI.from(abiBlob$1);
|
|
856
856
|
var Types$1;
|
|
857
857
|
(function (Types) {
|
|
@@ -1104,21 +1104,6 @@ var Types$1;
|
|
|
1104
1104
|
Struct.type('blend')
|
|
1105
1105
|
], blend);
|
|
1106
1106
|
Types.blend = blend;
|
|
1107
|
-
let booking_receipt = class booking_receipt extends Struct {
|
|
1108
|
-
};
|
|
1109
|
-
__decorate([
|
|
1110
|
-
Struct.field(UInt64)
|
|
1111
|
-
], booking_receipt.prototype, "job_id", void 0);
|
|
1112
|
-
__decorate([
|
|
1113
|
-
Struct.field(TimePoint)
|
|
1114
|
-
], booking_receipt.prototype, "lands_at", void 0);
|
|
1115
|
-
__decorate([
|
|
1116
|
-
Struct.field(UInt32)
|
|
1117
|
-
], booking_receipt.prototype, "runtime", void 0);
|
|
1118
|
-
booking_receipt = __decorate([
|
|
1119
|
-
Struct.type('booking_receipt')
|
|
1120
|
-
], booking_receipt);
|
|
1121
|
-
Types.booking_receipt = booking_receipt;
|
|
1122
1107
|
let builder_lane = class builder_lane extends Struct {
|
|
1123
1108
|
};
|
|
1124
1109
|
__decorate([
|
|
@@ -1157,9 +1142,6 @@ var Types$1;
|
|
|
1157
1142
|
__decorate([
|
|
1158
1143
|
Struct.field(UInt64)
|
|
1159
1144
|
], buildjob.prototype, "dock_id", void 0);
|
|
1160
|
-
__decorate([
|
|
1161
|
-
Struct.field(UInt8)
|
|
1162
|
-
], buildjob.prototype, "slot", void 0);
|
|
1163
1145
|
__decorate([
|
|
1164
1146
|
Struct.field(UInt16)
|
|
1165
1147
|
], buildjob.prototype, "target_item_id", void 0);
|
|
@@ -1220,6 +1202,9 @@ var Types$1;
|
|
|
1220
1202
|
__decorate([
|
|
1221
1203
|
Struct.field('bool')
|
|
1222
1204
|
], buildjob_row.prototype, "deposited", void 0);
|
|
1205
|
+
__decorate([
|
|
1206
|
+
Struct.field(TimePoint)
|
|
1207
|
+
], buildjob_row.prototype, "arrives_at", void 0);
|
|
1223
1208
|
buildjob_row = __decorate([
|
|
1224
1209
|
Struct.type('buildjob_row')
|
|
1225
1210
|
], buildjob_row);
|
|
@@ -1320,6 +1305,15 @@ var Types$1;
|
|
|
1320
1305
|
Struct.type('cancelcivic')
|
|
1321
1306
|
], cancelcivic);
|
|
1322
1307
|
Types.cancelcivic = cancelcivic;
|
|
1308
|
+
let cancelcraft = class cancelcraft extends Struct {
|
|
1309
|
+
};
|
|
1310
|
+
__decorate([
|
|
1311
|
+
Struct.field(UInt64)
|
|
1312
|
+
], cancelcraft.prototype, "job_id", void 0);
|
|
1313
|
+
cancelcraft = __decorate([
|
|
1314
|
+
Struct.type('cancelcraft')
|
|
1315
|
+
], cancelcraft);
|
|
1316
|
+
Types.cancelcraft = cancelcraft;
|
|
1323
1317
|
let cargo_row = class cargo_row extends Struct {
|
|
1324
1318
|
};
|
|
1325
1319
|
__decorate([
|
|
@@ -1931,9 +1925,6 @@ var Types$1;
|
|
|
1931
1925
|
__decorate([
|
|
1932
1926
|
Struct.field(UInt64)
|
|
1933
1927
|
], craftjob.prototype, "workshop_id", void 0);
|
|
1934
|
-
__decorate([
|
|
1935
|
-
Struct.field(UInt8)
|
|
1936
|
-
], craftjob.prototype, "slot", void 0);
|
|
1937
1928
|
__decorate([
|
|
1938
1929
|
Struct.field(UInt16)
|
|
1939
1930
|
], craftjob.prototype, "recipe_id", void 0);
|
|
@@ -1988,6 +1979,9 @@ var Types$1;
|
|
|
1988
1979
|
__decorate([
|
|
1989
1980
|
Struct.field('bool')
|
|
1990
1981
|
], craftjob_row.prototype, "deposited", void 0);
|
|
1982
|
+
__decorate([
|
|
1983
|
+
Struct.field(TimePoint)
|
|
1984
|
+
], craftjob_row.prototype, "arrives_at", void 0);
|
|
1991
1985
|
craftjob_row = __decorate([
|
|
1992
1986
|
Struct.type('craftjob_row')
|
|
1993
1987
|
], craftjob_row);
|
|
@@ -2022,6 +2016,18 @@ var Types$1;
|
|
|
2022
2016
|
Struct.type('dbgcredit')
|
|
2023
2017
|
], dbgcredit);
|
|
2024
2018
|
Types.dbgcredit = dbgcredit;
|
|
2019
|
+
let dbgjobs = class dbgjobs extends Struct {
|
|
2020
|
+
};
|
|
2021
|
+
__decorate([
|
|
2022
|
+
Struct.field(craftjob_row, { array: true })
|
|
2023
|
+
], dbgjobs.prototype, "crafts", void 0);
|
|
2024
|
+
__decorate([
|
|
2025
|
+
Struct.field(buildjob_row, { array: true })
|
|
2026
|
+
], dbgjobs.prototype, "builds", void 0);
|
|
2027
|
+
dbgjobs = __decorate([
|
|
2028
|
+
Struct.type('dbgjobs')
|
|
2029
|
+
], dbgjobs);
|
|
2030
|
+
Types.dbgjobs = dbgjobs;
|
|
2025
2031
|
let dbgmandate = class dbgmandate extends Struct {
|
|
2026
2032
|
};
|
|
2027
2033
|
__decorate([
|
|
@@ -2037,18 +2043,6 @@ var Types$1;
|
|
|
2037
2043
|
Struct.type('dbgmandate')
|
|
2038
2044
|
], dbgmandate);
|
|
2039
2045
|
Types.dbgmandate = dbgmandate;
|
|
2040
|
-
let dbgoldjobs = class dbgoldjobs extends Struct {
|
|
2041
|
-
};
|
|
2042
|
-
__decorate([
|
|
2043
|
-
Struct.field(craftjob_row, { array: true })
|
|
2044
|
-
], dbgoldjobs.prototype, "crafts", void 0);
|
|
2045
|
-
__decorate([
|
|
2046
|
-
Struct.field(buildjob_row, { array: true })
|
|
2047
|
-
], dbgoldjobs.prototype, "builds", void 0);
|
|
2048
|
-
dbgoldjobs = __decorate([
|
|
2049
|
-
Struct.type('dbgoldjobs')
|
|
2050
|
-
], dbgoldjobs);
|
|
2051
|
-
Types.dbgoldjobs = dbgoldjobs;
|
|
2052
2046
|
let dbgpagerows = class dbgpagerows extends Struct {
|
|
2053
2047
|
};
|
|
2054
2048
|
__decorate([
|
|
@@ -2058,6 +2052,75 @@ var Types$1;
|
|
|
2058
2052
|
Struct.type('dbgpagerows')
|
|
2059
2053
|
], dbgpagerows);
|
|
2060
2054
|
Types.dbgpagerows = dbgpagerows;
|
|
2055
|
+
let reserved_window = class reserved_window extends Struct {
|
|
2056
|
+
};
|
|
2057
|
+
__decorate([
|
|
2058
|
+
Struct.field(UInt64)
|
|
2059
|
+
], reserved_window.prototype, "id", void 0);
|
|
2060
|
+
__decorate([
|
|
2061
|
+
Struct.field(TimePoint)
|
|
2062
|
+
], reserved_window.prototype, "arrival", void 0);
|
|
2063
|
+
__decorate([
|
|
2064
|
+
Struct.field(TimePoint)
|
|
2065
|
+
], reserved_window.prototype, "starts_at", void 0);
|
|
2066
|
+
__decorate([
|
|
2067
|
+
Struct.field(TimePoint)
|
|
2068
|
+
], reserved_window.prototype, "completes_at", void 0);
|
|
2069
|
+
reserved_window = __decorate([
|
|
2070
|
+
Struct.type('reserved_window')
|
|
2071
|
+
], reserved_window);
|
|
2072
|
+
Types.reserved_window = reserved_window;
|
|
2073
|
+
let socket_candidate = class socket_candidate extends Struct {
|
|
2074
|
+
};
|
|
2075
|
+
__decorate([
|
|
2076
|
+
Struct.field(reserved_window, { array: true })
|
|
2077
|
+
], socket_candidate.prototype, "windows", void 0);
|
|
2078
|
+
__decorate([
|
|
2079
|
+
Struct.field(UInt32)
|
|
2080
|
+
], socket_candidate.prototype, "duration", void 0);
|
|
2081
|
+
__decorate([
|
|
2082
|
+
Struct.field(UInt16)
|
|
2083
|
+
], socket_candidate.prototype, "active", void 0);
|
|
2084
|
+
socket_candidate = __decorate([
|
|
2085
|
+
Struct.type('socket_candidate')
|
|
2086
|
+
], socket_candidate);
|
|
2087
|
+
Types.socket_candidate = socket_candidate;
|
|
2088
|
+
let dbgpick = class dbgpick extends Struct {
|
|
2089
|
+
};
|
|
2090
|
+
__decorate([
|
|
2091
|
+
Struct.field(socket_candidate, { array: true })
|
|
2092
|
+
], dbgpick.prototype, "sockets", void 0);
|
|
2093
|
+
__decorate([
|
|
2094
|
+
Struct.field(UInt64)
|
|
2095
|
+
], dbgpick.prototype, "id", void 0);
|
|
2096
|
+
__decorate([
|
|
2097
|
+
Struct.field(TimePoint)
|
|
2098
|
+
], dbgpick.prototype, "arrival", void 0);
|
|
2099
|
+
__decorate([
|
|
2100
|
+
Struct.field(UInt16)
|
|
2101
|
+
], dbgpick.prototype, "cap", void 0);
|
|
2102
|
+
dbgpick = __decorate([
|
|
2103
|
+
Struct.type('dbgpick')
|
|
2104
|
+
], dbgpick);
|
|
2105
|
+
Types.dbgpick = dbgpick;
|
|
2106
|
+
let dbgplace = class dbgplace extends Struct {
|
|
2107
|
+
};
|
|
2108
|
+
__decorate([
|
|
2109
|
+
Struct.field(reserved_window, { array: true })
|
|
2110
|
+
], dbgplace.prototype, "windows", void 0);
|
|
2111
|
+
__decorate([
|
|
2112
|
+
Struct.field(UInt64)
|
|
2113
|
+
], dbgplace.prototype, "id", void 0);
|
|
2114
|
+
__decorate([
|
|
2115
|
+
Struct.field(TimePoint)
|
|
2116
|
+
], dbgplace.prototype, "arrival", void 0);
|
|
2117
|
+
__decorate([
|
|
2118
|
+
Struct.field(UInt32)
|
|
2119
|
+
], dbgplace.prototype, "duration", void 0);
|
|
2120
|
+
dbgplace = __decorate([
|
|
2121
|
+
Struct.type('dbgplace')
|
|
2122
|
+
], dbgplace);
|
|
2123
|
+
Types.dbgplace = dbgplace;
|
|
2061
2124
|
let dbgpurge = class dbgpurge extends Struct {
|
|
2062
2125
|
};
|
|
2063
2126
|
__decorate([
|
|
@@ -2070,6 +2133,21 @@ var Types$1;
|
|
|
2070
2133
|
Struct.type('dbgpurge')
|
|
2071
2134
|
], dbgpurge);
|
|
2072
2135
|
Types.dbgpurge = dbgpurge;
|
|
2136
|
+
let dbgrepack = class dbgrepack extends Struct {
|
|
2137
|
+
};
|
|
2138
|
+
__decorate([
|
|
2139
|
+
Struct.field(reserved_window, { array: true })
|
|
2140
|
+
], dbgrepack.prototype, "windows", void 0);
|
|
2141
|
+
__decorate([
|
|
2142
|
+
Struct.field(UInt64)
|
|
2143
|
+
], dbgrepack.prototype, "cancelled_id", void 0);
|
|
2144
|
+
__decorate([
|
|
2145
|
+
Struct.field(TimePoint)
|
|
2146
|
+
], dbgrepack.prototype, "now", void 0);
|
|
2147
|
+
dbgrepack = __decorate([
|
|
2148
|
+
Struct.type('dbgrepack')
|
|
2149
|
+
], dbgrepack);
|
|
2150
|
+
Types.dbgrepack = dbgrepack;
|
|
2073
2151
|
let dbgseats = class dbgseats extends Struct {
|
|
2074
2152
|
};
|
|
2075
2153
|
__decorate([
|
|
@@ -3878,6 +3956,9 @@ var Types$1;
|
|
|
3878
3956
|
__decorate([
|
|
3879
3957
|
Struct.field('string')
|
|
3880
3958
|
], template_meta_row.prototype, "display_label", void 0);
|
|
3959
|
+
__decorate([
|
|
3960
|
+
Struct.field('string')
|
|
3961
|
+
], template_meta_row.prototype, "base_capacity_fn", void 0);
|
|
3881
3962
|
template_meta_row = __decorate([
|
|
3882
3963
|
Struct.type('template_meta_row')
|
|
3883
3964
|
], template_meta_row);
|
|
@@ -3999,12 +4080,6 @@ var Types$1;
|
|
|
3999
4080
|
Struct.type('mandates_row')
|
|
4000
4081
|
], mandates_row);
|
|
4001
4082
|
Types.mandates_row = mandates_row;
|
|
4002
|
-
let migratejobs = class migratejobs extends Struct {
|
|
4003
|
-
};
|
|
4004
|
-
migratejobs = __decorate([
|
|
4005
|
-
Struct.type('migratejobs')
|
|
4006
|
-
], migratejobs);
|
|
4007
|
-
Types.migratejobs = migratejobs;
|
|
4008
4083
|
let mint_threshold_view = class mint_threshold_view extends Struct {
|
|
4009
4084
|
};
|
|
4010
4085
|
__decorate([
|
|
@@ -4545,6 +4620,15 @@ var Types$1;
|
|
|
4545
4620
|
Struct.type('rename')
|
|
4546
4621
|
], rename);
|
|
4547
4622
|
Types.rename = rename;
|
|
4623
|
+
let repack_result = class repack_result extends Struct {
|
|
4624
|
+
};
|
|
4625
|
+
__decorate([
|
|
4626
|
+
Struct.field(reserved_window, { array: true })
|
|
4627
|
+
], repack_result.prototype, "windows", void 0);
|
|
4628
|
+
repack_result = __decorate([
|
|
4629
|
+
Struct.type('repack_result')
|
|
4630
|
+
], repack_result);
|
|
4631
|
+
Types.repack_result = repack_result;
|
|
4548
4632
|
let resolve = class resolve extends Struct {
|
|
4549
4633
|
};
|
|
4550
4634
|
__decorate([
|
|
@@ -4929,6 +5013,21 @@ var Types$1;
|
|
|
4929
5013
|
Struct.type('shuttle')
|
|
4930
5014
|
], shuttle);
|
|
4931
5015
|
Types.shuttle = shuttle;
|
|
5016
|
+
let socket_pick = class socket_pick extends Struct {
|
|
5017
|
+
};
|
|
5018
|
+
__decorate([
|
|
5019
|
+
Struct.field('bool')
|
|
5020
|
+
], socket_pick.prototype, "found", void 0);
|
|
5021
|
+
__decorate([
|
|
5022
|
+
Struct.field(UInt8)
|
|
5023
|
+
], socket_pick.prototype, "socket", void 0);
|
|
5024
|
+
__decorate([
|
|
5025
|
+
Struct.field(reserved_window)
|
|
5026
|
+
], socket_pick.prototype, "window", void 0);
|
|
5027
|
+
socket_pick = __decorate([
|
|
5028
|
+
Struct.type('socket_pick')
|
|
5029
|
+
], socket_pick);
|
|
5030
|
+
Types.socket_pick = socket_pick;
|
|
4932
5031
|
let standing_row = class standing_row extends Struct {
|
|
4933
5032
|
};
|
|
4934
5033
|
__decorate([
|
|
@@ -5310,6 +5409,21 @@ var Types$1;
|
|
|
5310
5409
|
Struct.type('warp')
|
|
5311
5410
|
], warp);
|
|
5312
5411
|
Types.warp = warp;
|
|
5412
|
+
let window_receipt = class window_receipt extends Struct {
|
|
5413
|
+
};
|
|
5414
|
+
__decorate([
|
|
5415
|
+
Struct.field(UInt64)
|
|
5416
|
+
], window_receipt.prototype, "job_id", void 0);
|
|
5417
|
+
__decorate([
|
|
5418
|
+
Struct.field(TimePoint)
|
|
5419
|
+
], window_receipt.prototype, "starts_at", void 0);
|
|
5420
|
+
__decorate([
|
|
5421
|
+
Struct.field(TimePoint)
|
|
5422
|
+
], window_receipt.prototype, "completes_at", void 0);
|
|
5423
|
+
window_receipt = __decorate([
|
|
5424
|
+
Struct.type('window_receipt')
|
|
5425
|
+
], window_receipt);
|
|
5426
|
+
Types.window_receipt = window_receipt;
|
|
5313
5427
|
let wipe = class wipe extends Struct {
|
|
5314
5428
|
};
|
|
5315
5429
|
wipe = __decorate([
|
|
@@ -5948,12 +6062,8 @@ const ITEM_LAUNCHER_T1 = 10109;
|
|
|
5948
6062
|
const ITEM_BUILDER_T1 = 10110;
|
|
5949
6063
|
const ITEM_CONTAINER_T1_PACKED = 10200;
|
|
5950
6064
|
const ITEM_SHIP_T1_PACKED = 10201;
|
|
5951
|
-
const ITEM_WAREHOUSE_T1_PACKED = 10202;
|
|
5952
|
-
const ITEM_EXTRACTOR_T1_PACKED = 10203;
|
|
5953
|
-
const ITEM_FACTORY_T1_PACKED = 10204;
|
|
5954
6065
|
const ITEM_MASS_DRIVER_T1_PACKED = 10205;
|
|
5955
6066
|
const ITEM_MASS_CATCHER_T1_PACKED = 10206;
|
|
5956
|
-
const ITEM_HUB_T1_PACKED = 10207;
|
|
5957
6067
|
const ITEM_WORKSHOP_T1_PACKED = 10208;
|
|
5958
6068
|
const ITEM_CONSTRUCTION_DOCK_T1_PACKED = 10209;
|
|
5959
6069
|
const ITEM_ROUSTABOUT_T1A_PACKED = 10210;
|
|
@@ -5986,6 +6096,11 @@ const ITEM_WARP_T2 = 11107;
|
|
|
5986
6096
|
const ITEM_BATTERY_T2 = 11108;
|
|
5987
6097
|
const ITEM_BUILDER_T2 = 11110;
|
|
5988
6098
|
const ITEM_CONTAINER_T2_PACKED = 11200;
|
|
6099
|
+
const ITEM_WAREHOUSE_T2_PACKED = 11202;
|
|
6100
|
+
const ITEM_EXTRACTOR_T2_PACKED = 11203;
|
|
6101
|
+
const ITEM_FACTORY_T2_PACKED = 11204;
|
|
6102
|
+
const ITEM_HUB_T2_PACKED = 11207;
|
|
6103
|
+
const ITEM_ASSEMBLY_YARD_T2_PACKED = 11209;
|
|
5989
6104
|
const ITEM_PROSPECTOR_T2A_PACKED = 11212;
|
|
5990
6105
|
const ITEM_PROSPECTOR_T2B_PACKED = 11213;
|
|
5991
6106
|
const ITEM_DREDGER_T2A_PACKED = 11214;
|
|
@@ -6866,170 +6981,6 @@ var recipes = [
|
|
|
6866
6981
|
blendWeights: [
|
|
6867
6982
|
]
|
|
6868
6983
|
},
|
|
6869
|
-
{
|
|
6870
|
-
outputItemId: 10202,
|
|
6871
|
-
outputMass: 32000,
|
|
6872
|
-
inputs: [
|
|
6873
|
-
{
|
|
6874
|
-
itemId: 10001,
|
|
6875
|
-
quantity: 1000
|
|
6876
|
-
},
|
|
6877
|
-
{
|
|
6878
|
-
itemId: 10008,
|
|
6879
|
-
quantity: 1000
|
|
6880
|
-
}
|
|
6881
|
-
],
|
|
6882
|
-
statSlots: [
|
|
6883
|
-
{
|
|
6884
|
-
sources: [
|
|
6885
|
-
{
|
|
6886
|
-
inputIndex: 0,
|
|
6887
|
-
statIndex: 0
|
|
6888
|
-
}
|
|
6889
|
-
]
|
|
6890
|
-
},
|
|
6891
|
-
{
|
|
6892
|
-
sources: [
|
|
6893
|
-
{
|
|
6894
|
-
inputIndex: 0,
|
|
6895
|
-
statIndex: 1
|
|
6896
|
-
}
|
|
6897
|
-
]
|
|
6898
|
-
},
|
|
6899
|
-
{
|
|
6900
|
-
sources: [
|
|
6901
|
-
{
|
|
6902
|
-
inputIndex: 1,
|
|
6903
|
-
statIndex: 0
|
|
6904
|
-
}
|
|
6905
|
-
]
|
|
6906
|
-
},
|
|
6907
|
-
{
|
|
6908
|
-
sources: [
|
|
6909
|
-
{
|
|
6910
|
-
inputIndex: 1,
|
|
6911
|
-
statIndex: 1
|
|
6912
|
-
}
|
|
6913
|
-
]
|
|
6914
|
-
}
|
|
6915
|
-
],
|
|
6916
|
-
blendWeights: [
|
|
6917
|
-
]
|
|
6918
|
-
},
|
|
6919
|
-
{
|
|
6920
|
-
outputItemId: 10203,
|
|
6921
|
-
outputMass: 19000,
|
|
6922
|
-
inputs: [
|
|
6923
|
-
{
|
|
6924
|
-
itemId: 10008,
|
|
6925
|
-
quantity: 600
|
|
6926
|
-
},
|
|
6927
|
-
{
|
|
6928
|
-
itemId: 10006,
|
|
6929
|
-
quantity: 600
|
|
6930
|
-
}
|
|
6931
|
-
],
|
|
6932
|
-
statSlots: [
|
|
6933
|
-
{
|
|
6934
|
-
sources: [
|
|
6935
|
-
]
|
|
6936
|
-
},
|
|
6937
|
-
{
|
|
6938
|
-
sources: [
|
|
6939
|
-
{
|
|
6940
|
-
inputIndex: 0,
|
|
6941
|
-
statIndex: 1
|
|
6942
|
-
}
|
|
6943
|
-
]
|
|
6944
|
-
},
|
|
6945
|
-
{
|
|
6946
|
-
sources: [
|
|
6947
|
-
{
|
|
6948
|
-
inputIndex: 0,
|
|
6949
|
-
statIndex: 0
|
|
6950
|
-
}
|
|
6951
|
-
]
|
|
6952
|
-
},
|
|
6953
|
-
{
|
|
6954
|
-
sources: [
|
|
6955
|
-
]
|
|
6956
|
-
}
|
|
6957
|
-
],
|
|
6958
|
-
blendWeights: [
|
|
6959
|
-
]
|
|
6960
|
-
},
|
|
6961
|
-
{
|
|
6962
|
-
outputItemId: 10204,
|
|
6963
|
-
outputMass: 19000,
|
|
6964
|
-
inputs: [
|
|
6965
|
-
{
|
|
6966
|
-
itemId: 10008,
|
|
6967
|
-
quantity: 600
|
|
6968
|
-
},
|
|
6969
|
-
{
|
|
6970
|
-
itemId: 10007,
|
|
6971
|
-
quantity: 600
|
|
6972
|
-
}
|
|
6973
|
-
],
|
|
6974
|
-
statSlots: [
|
|
6975
|
-
{
|
|
6976
|
-
sources: [
|
|
6977
|
-
]
|
|
6978
|
-
},
|
|
6979
|
-
{
|
|
6980
|
-
sources: [
|
|
6981
|
-
{
|
|
6982
|
-
inputIndex: 0,
|
|
6983
|
-
statIndex: 1
|
|
6984
|
-
}
|
|
6985
|
-
]
|
|
6986
|
-
},
|
|
6987
|
-
{
|
|
6988
|
-
sources: [
|
|
6989
|
-
{
|
|
6990
|
-
inputIndex: 0,
|
|
6991
|
-
statIndex: 0
|
|
6992
|
-
}
|
|
6993
|
-
]
|
|
6994
|
-
},
|
|
6995
|
-
{
|
|
6996
|
-
sources: [
|
|
6997
|
-
]
|
|
6998
|
-
}
|
|
6999
|
-
],
|
|
7000
|
-
blendWeights: [
|
|
7001
|
-
]
|
|
7002
|
-
},
|
|
7003
|
-
{
|
|
7004
|
-
outputItemId: 10207,
|
|
7005
|
-
outputMass: 24000,
|
|
7006
|
-
inputs: [
|
|
7007
|
-
{
|
|
7008
|
-
itemId: 10005,
|
|
7009
|
-
quantity: 200
|
|
7010
|
-
},
|
|
7011
|
-
{
|
|
7012
|
-
itemId: 10010,
|
|
7013
|
-
quantity: 200
|
|
7014
|
-
}
|
|
7015
|
-
],
|
|
7016
|
-
statSlots: [
|
|
7017
|
-
{
|
|
7018
|
-
sources: [
|
|
7019
|
-
]
|
|
7020
|
-
},
|
|
7021
|
-
{
|
|
7022
|
-
sources: [
|
|
7023
|
-
{
|
|
7024
|
-
inputIndex: 1,
|
|
7025
|
-
statIndex: 1
|
|
7026
|
-
}
|
|
7027
|
-
]
|
|
7028
|
-
}
|
|
7029
|
-
],
|
|
7030
|
-
blendWeights: [
|
|
7031
|
-
]
|
|
7032
|
-
},
|
|
7033
6984
|
{
|
|
7034
6985
|
outputItemId: 10210,
|
|
7035
6986
|
outputMass: 16000,
|
|
@@ -8657,6 +8608,212 @@ var recipes = [
|
|
|
8657
8608
|
],
|
|
8658
8609
|
sourceSubclass: 10200
|
|
8659
8610
|
},
|
|
8611
|
+
{
|
|
8612
|
+
outputItemId: 11202,
|
|
8613
|
+
outputMass: 51200,
|
|
8614
|
+
inputs: [
|
|
8615
|
+
{
|
|
8616
|
+
itemId: 11001,
|
|
8617
|
+
quantity: 1000
|
|
8618
|
+
},
|
|
8619
|
+
{
|
|
8620
|
+
itemId: 11008,
|
|
8621
|
+
quantity: 1000
|
|
8622
|
+
}
|
|
8623
|
+
],
|
|
8624
|
+
statSlots: [
|
|
8625
|
+
{
|
|
8626
|
+
sources: [
|
|
8627
|
+
{
|
|
8628
|
+
inputIndex: 0,
|
|
8629
|
+
statIndex: 0
|
|
8630
|
+
}
|
|
8631
|
+
]
|
|
8632
|
+
},
|
|
8633
|
+
{
|
|
8634
|
+
sources: [
|
|
8635
|
+
{
|
|
8636
|
+
inputIndex: 0,
|
|
8637
|
+
statIndex: 1
|
|
8638
|
+
}
|
|
8639
|
+
]
|
|
8640
|
+
},
|
|
8641
|
+
{
|
|
8642
|
+
sources: [
|
|
8643
|
+
{
|
|
8644
|
+
inputIndex: 1,
|
|
8645
|
+
statIndex: 0
|
|
8646
|
+
}
|
|
8647
|
+
]
|
|
8648
|
+
},
|
|
8649
|
+
{
|
|
8650
|
+
sources: [
|
|
8651
|
+
{
|
|
8652
|
+
inputIndex: 1,
|
|
8653
|
+
statIndex: 1
|
|
8654
|
+
}
|
|
8655
|
+
]
|
|
8656
|
+
}
|
|
8657
|
+
],
|
|
8658
|
+
blendWeights: [
|
|
8659
|
+
]
|
|
8660
|
+
},
|
|
8661
|
+
{
|
|
8662
|
+
outputItemId: 11203,
|
|
8663
|
+
outputMass: 30400,
|
|
8664
|
+
inputs: [
|
|
8665
|
+
{
|
|
8666
|
+
itemId: 11008,
|
|
8667
|
+
quantity: 600
|
|
8668
|
+
},
|
|
8669
|
+
{
|
|
8670
|
+
itemId: 11006,
|
|
8671
|
+
quantity: 600
|
|
8672
|
+
}
|
|
8673
|
+
],
|
|
8674
|
+
statSlots: [
|
|
8675
|
+
{
|
|
8676
|
+
sources: [
|
|
8677
|
+
]
|
|
8678
|
+
},
|
|
8679
|
+
{
|
|
8680
|
+
sources: [
|
|
8681
|
+
{
|
|
8682
|
+
inputIndex: 0,
|
|
8683
|
+
statIndex: 1
|
|
8684
|
+
}
|
|
8685
|
+
]
|
|
8686
|
+
},
|
|
8687
|
+
{
|
|
8688
|
+
sources: [
|
|
8689
|
+
{
|
|
8690
|
+
inputIndex: 0,
|
|
8691
|
+
statIndex: 0
|
|
8692
|
+
}
|
|
8693
|
+
]
|
|
8694
|
+
},
|
|
8695
|
+
{
|
|
8696
|
+
sources: [
|
|
8697
|
+
]
|
|
8698
|
+
}
|
|
8699
|
+
],
|
|
8700
|
+
blendWeights: [
|
|
8701
|
+
]
|
|
8702
|
+
},
|
|
8703
|
+
{
|
|
8704
|
+
outputItemId: 11204,
|
|
8705
|
+
outputMass: 30400,
|
|
8706
|
+
inputs: [
|
|
8707
|
+
{
|
|
8708
|
+
itemId: 11008,
|
|
8709
|
+
quantity: 600
|
|
8710
|
+
},
|
|
8711
|
+
{
|
|
8712
|
+
itemId: 11007,
|
|
8713
|
+
quantity: 600
|
|
8714
|
+
}
|
|
8715
|
+
],
|
|
8716
|
+
statSlots: [
|
|
8717
|
+
{
|
|
8718
|
+
sources: [
|
|
8719
|
+
]
|
|
8720
|
+
},
|
|
8721
|
+
{
|
|
8722
|
+
sources: [
|
|
8723
|
+
{
|
|
8724
|
+
inputIndex: 0,
|
|
8725
|
+
statIndex: 1
|
|
8726
|
+
}
|
|
8727
|
+
]
|
|
8728
|
+
},
|
|
8729
|
+
{
|
|
8730
|
+
sources: [
|
|
8731
|
+
{
|
|
8732
|
+
inputIndex: 0,
|
|
8733
|
+
statIndex: 0
|
|
8734
|
+
}
|
|
8735
|
+
]
|
|
8736
|
+
},
|
|
8737
|
+
{
|
|
8738
|
+
sources: [
|
|
8739
|
+
]
|
|
8740
|
+
}
|
|
8741
|
+
],
|
|
8742
|
+
blendWeights: [
|
|
8743
|
+
]
|
|
8744
|
+
},
|
|
8745
|
+
{
|
|
8746
|
+
outputItemId: 11207,
|
|
8747
|
+
outputMass: 38400,
|
|
8748
|
+
inputs: [
|
|
8749
|
+
{
|
|
8750
|
+
itemId: 11005,
|
|
8751
|
+
quantity: 200
|
|
8752
|
+
},
|
|
8753
|
+
{
|
|
8754
|
+
itemId: 11010,
|
|
8755
|
+
quantity: 200
|
|
8756
|
+
}
|
|
8757
|
+
],
|
|
8758
|
+
statSlots: [
|
|
8759
|
+
{
|
|
8760
|
+
sources: [
|
|
8761
|
+
]
|
|
8762
|
+
},
|
|
8763
|
+
{
|
|
8764
|
+
sources: [
|
|
8765
|
+
{
|
|
8766
|
+
inputIndex: 1,
|
|
8767
|
+
statIndex: 1
|
|
8768
|
+
}
|
|
8769
|
+
]
|
|
8770
|
+
}
|
|
8771
|
+
],
|
|
8772
|
+
blendWeights: [
|
|
8773
|
+
]
|
|
8774
|
+
},
|
|
8775
|
+
{
|
|
8776
|
+
outputItemId: 11209,
|
|
8777
|
+
outputMass: 30400,
|
|
8778
|
+
inputs: [
|
|
8779
|
+
{
|
|
8780
|
+
itemId: 11001,
|
|
8781
|
+
quantity: 600
|
|
8782
|
+
},
|
|
8783
|
+
{
|
|
8784
|
+
itemId: 11003,
|
|
8785
|
+
quantity: 600
|
|
8786
|
+
}
|
|
8787
|
+
],
|
|
8788
|
+
statSlots: [
|
|
8789
|
+
{
|
|
8790
|
+
sources: [
|
|
8791
|
+
{
|
|
8792
|
+
inputIndex: 0,
|
|
8793
|
+
statIndex: 0
|
|
8794
|
+
}
|
|
8795
|
+
]
|
|
8796
|
+
},
|
|
8797
|
+
{
|
|
8798
|
+
sources: [
|
|
8799
|
+
{
|
|
8800
|
+
inputIndex: 0,
|
|
8801
|
+
statIndex: 1
|
|
8802
|
+
}
|
|
8803
|
+
]
|
|
8804
|
+
},
|
|
8805
|
+
{
|
|
8806
|
+
sources: [
|
|
8807
|
+
]
|
|
8808
|
+
},
|
|
8809
|
+
{
|
|
8810
|
+
sources: [
|
|
8811
|
+
]
|
|
8812
|
+
}
|
|
8813
|
+
],
|
|
8814
|
+
blendWeights: [
|
|
8815
|
+
]
|
|
8816
|
+
},
|
|
8660
8817
|
{
|
|
8661
8818
|
outputItemId: 11212,
|
|
8662
8819
|
outputMass: 43200,
|
|
@@ -8969,81 +9126,18 @@ var entities = [
|
|
|
8969
9126
|
outputPct: 80,
|
|
8970
9127
|
maxTier: 1
|
|
8971
9128
|
},
|
|
8972
|
-
{
|
|
8973
|
-
type: "any",
|
|
8974
|
-
outputPct: 80,
|
|
8975
|
-
maxTier: 1
|
|
8976
|
-
},
|
|
8977
|
-
{
|
|
8978
|
-
type: "any",
|
|
8979
|
-
outputPct: 80,
|
|
8980
|
-
maxTier: 1
|
|
8981
|
-
}
|
|
8982
|
-
],
|
|
8983
|
-
baseHullmass: 40000
|
|
8984
|
-
},
|
|
8985
|
-
{
|
|
8986
|
-
entityItemId: 10202,
|
|
8987
|
-
slots: [
|
|
8988
|
-
{
|
|
8989
|
-
type: "loader",
|
|
8990
|
-
outputPct: 100,
|
|
8991
|
-
maxTier: 1
|
|
8992
|
-
},
|
|
8993
|
-
{
|
|
8994
|
-
type: "storage",
|
|
8995
|
-
outputPct: 100,
|
|
8996
|
-
maxTier: 1
|
|
8997
|
-
},
|
|
8998
|
-
{
|
|
8999
|
-
type: "storage",
|
|
9000
|
-
outputPct: 100,
|
|
9001
|
-
maxTier: 1
|
|
9002
|
-
},
|
|
9003
|
-
{
|
|
9004
|
-
type: "storage",
|
|
9005
|
-
outputPct: 100,
|
|
9006
|
-
maxTier: 1
|
|
9007
|
-
},
|
|
9008
|
-
{
|
|
9009
|
-
type: "storage",
|
|
9010
|
-
outputPct: 100,
|
|
9011
|
-
maxTier: 1
|
|
9012
|
-
}
|
|
9013
|
-
],
|
|
9014
|
-
baseHullmass: 1000
|
|
9015
|
-
},
|
|
9016
|
-
{
|
|
9017
|
-
entityItemId: 10203,
|
|
9018
|
-
slots: [
|
|
9019
|
-
{
|
|
9020
|
-
type: "generator",
|
|
9021
|
-
outputPct: 200,
|
|
9022
|
-
maxTier: 1
|
|
9023
|
-
},
|
|
9024
|
-
{
|
|
9025
|
-
type: "gatherer",
|
|
9026
|
-
outputPct: 200,
|
|
9027
|
-
maxTier: 1
|
|
9028
|
-
}
|
|
9029
|
-
],
|
|
9030
|
-
baseHullmass: 1000
|
|
9031
|
-
},
|
|
9032
|
-
{
|
|
9033
|
-
entityItemId: 10204,
|
|
9034
|
-
slots: [
|
|
9035
|
-
{
|
|
9036
|
-
type: "generator",
|
|
9037
|
-
outputPct: 200,
|
|
9129
|
+
{
|
|
9130
|
+
type: "any",
|
|
9131
|
+
outputPct: 80,
|
|
9038
9132
|
maxTier: 1
|
|
9039
9133
|
},
|
|
9040
9134
|
{
|
|
9041
|
-
type: "
|
|
9042
|
-
outputPct:
|
|
9135
|
+
type: "any",
|
|
9136
|
+
outputPct: 80,
|
|
9043
9137
|
maxTier: 1
|
|
9044
9138
|
}
|
|
9045
9139
|
],
|
|
9046
|
-
baseHullmass:
|
|
9140
|
+
baseHullmass: 40000
|
|
9047
9141
|
},
|
|
9048
9142
|
{
|
|
9049
9143
|
entityItemId: 10205,
|
|
@@ -9082,12 +9176,6 @@ var entities = [
|
|
|
9082
9176
|
],
|
|
9083
9177
|
baseHullmass: 1000
|
|
9084
9178
|
},
|
|
9085
|
-
{
|
|
9086
|
-
entityItemId: 10207,
|
|
9087
|
-
slots: [
|
|
9088
|
-
],
|
|
9089
|
-
baseHullmass: 1000
|
|
9090
|
-
},
|
|
9091
9179
|
{
|
|
9092
9180
|
entityItemId: 10208,
|
|
9093
9181
|
slots: [
|
|
@@ -9330,6 +9418,91 @@ var entities = [
|
|
|
9330
9418
|
],
|
|
9331
9419
|
baseHullmass: 1000
|
|
9332
9420
|
},
|
|
9421
|
+
{
|
|
9422
|
+
entityItemId: 11202,
|
|
9423
|
+
slots: [
|
|
9424
|
+
{
|
|
9425
|
+
type: "loader",
|
|
9426
|
+
outputPct: 100,
|
|
9427
|
+
maxTier: 2
|
|
9428
|
+
},
|
|
9429
|
+
{
|
|
9430
|
+
type: "storage",
|
|
9431
|
+
outputPct: 100,
|
|
9432
|
+
maxTier: 2
|
|
9433
|
+
},
|
|
9434
|
+
{
|
|
9435
|
+
type: "storage",
|
|
9436
|
+
outputPct: 100,
|
|
9437
|
+
maxTier: 2
|
|
9438
|
+
},
|
|
9439
|
+
{
|
|
9440
|
+
type: "storage",
|
|
9441
|
+
outputPct: 100,
|
|
9442
|
+
maxTier: 2
|
|
9443
|
+
},
|
|
9444
|
+
{
|
|
9445
|
+
type: "storage",
|
|
9446
|
+
outputPct: 100,
|
|
9447
|
+
maxTier: 2
|
|
9448
|
+
}
|
|
9449
|
+
],
|
|
9450
|
+
baseHullmass: 1000
|
|
9451
|
+
},
|
|
9452
|
+
{
|
|
9453
|
+
entityItemId: 11203,
|
|
9454
|
+
slots: [
|
|
9455
|
+
{
|
|
9456
|
+
type: "generator",
|
|
9457
|
+
outputPct: 200,
|
|
9458
|
+
maxTier: 2
|
|
9459
|
+
},
|
|
9460
|
+
{
|
|
9461
|
+
type: "gatherer",
|
|
9462
|
+
outputPct: 200,
|
|
9463
|
+
maxTier: 2
|
|
9464
|
+
}
|
|
9465
|
+
],
|
|
9466
|
+
baseHullmass: 1000
|
|
9467
|
+
},
|
|
9468
|
+
{
|
|
9469
|
+
entityItemId: 11204,
|
|
9470
|
+
slots: [
|
|
9471
|
+
{
|
|
9472
|
+
type: "generator",
|
|
9473
|
+
outputPct: 200,
|
|
9474
|
+
maxTier: 2
|
|
9475
|
+
},
|
|
9476
|
+
{
|
|
9477
|
+
type: "crafter",
|
|
9478
|
+
outputPct: 200,
|
|
9479
|
+
maxTier: 2
|
|
9480
|
+
}
|
|
9481
|
+
],
|
|
9482
|
+
baseHullmass: 1000
|
|
9483
|
+
},
|
|
9484
|
+
{
|
|
9485
|
+
entityItemId: 11207,
|
|
9486
|
+
slots: [
|
|
9487
|
+
],
|
|
9488
|
+
baseHullmass: 1000
|
|
9489
|
+
},
|
|
9490
|
+
{
|
|
9491
|
+
entityItemId: 11209,
|
|
9492
|
+
slots: [
|
|
9493
|
+
{
|
|
9494
|
+
type: "generator",
|
|
9495
|
+
outputPct: 200,
|
|
9496
|
+
maxTier: 2
|
|
9497
|
+
},
|
|
9498
|
+
{
|
|
9499
|
+
type: "builder",
|
|
9500
|
+
outputPct: 200,
|
|
9501
|
+
maxTier: 2
|
|
9502
|
+
}
|
|
9503
|
+
],
|
|
9504
|
+
baseHullmass: 1000
|
|
9505
|
+
},
|
|
9333
9506
|
{
|
|
9334
9507
|
entityItemId: 11212,
|
|
9335
9508
|
slots: [
|
|
@@ -9957,24 +10130,6 @@ var items = [
|
|
|
9957
10130
|
type: "entity",
|
|
9958
10131
|
tier: 1
|
|
9959
10132
|
},
|
|
9960
|
-
{
|
|
9961
|
-
id: 10202,
|
|
9962
|
-
mass: 32000,
|
|
9963
|
-
type: "entity",
|
|
9964
|
-
tier: 1
|
|
9965
|
-
},
|
|
9966
|
-
{
|
|
9967
|
-
id: 10203,
|
|
9968
|
-
mass: 19000,
|
|
9969
|
-
type: "entity",
|
|
9970
|
-
tier: 1
|
|
9971
|
-
},
|
|
9972
|
-
{
|
|
9973
|
-
id: 10204,
|
|
9974
|
-
mass: 19000,
|
|
9975
|
-
type: "entity",
|
|
9976
|
-
tier: 1
|
|
9977
|
-
},
|
|
9978
10133
|
{
|
|
9979
10134
|
id: 10205,
|
|
9980
10135
|
mass: 80000,
|
|
@@ -9987,12 +10142,6 @@ var items = [
|
|
|
9987
10142
|
type: "entity",
|
|
9988
10143
|
tier: 1
|
|
9989
10144
|
},
|
|
9990
|
-
{
|
|
9991
|
-
id: 10207,
|
|
9992
|
-
mass: 24000,
|
|
9993
|
-
type: "entity",
|
|
9994
|
-
tier: 1
|
|
9995
|
-
},
|
|
9996
10145
|
{
|
|
9997
10146
|
id: 10208,
|
|
9998
10147
|
mass: 48000,
|
|
@@ -10195,6 +10344,36 @@ var items = [
|
|
|
10195
10344
|
type: "entity",
|
|
10196
10345
|
tier: 2
|
|
10197
10346
|
},
|
|
10347
|
+
{
|
|
10348
|
+
id: 11202,
|
|
10349
|
+
mass: 51200,
|
|
10350
|
+
type: "entity",
|
|
10351
|
+
tier: 2
|
|
10352
|
+
},
|
|
10353
|
+
{
|
|
10354
|
+
id: 11203,
|
|
10355
|
+
mass: 30400,
|
|
10356
|
+
type: "entity",
|
|
10357
|
+
tier: 2
|
|
10358
|
+
},
|
|
10359
|
+
{
|
|
10360
|
+
id: 11204,
|
|
10361
|
+
mass: 30400,
|
|
10362
|
+
type: "entity",
|
|
10363
|
+
tier: 2
|
|
10364
|
+
},
|
|
10365
|
+
{
|
|
10366
|
+
id: 11207,
|
|
10367
|
+
mass: 38400,
|
|
10368
|
+
type: "entity",
|
|
10369
|
+
tier: 2
|
|
10370
|
+
},
|
|
10371
|
+
{
|
|
10372
|
+
id: 11209,
|
|
10373
|
+
mass: 30400,
|
|
10374
|
+
type: "entity",
|
|
10375
|
+
tier: 2
|
|
10376
|
+
},
|
|
10198
10377
|
{
|
|
10199
10378
|
id: 11212,
|
|
10200
10379
|
mass: 43200,
|
|
@@ -10622,6 +10801,31 @@ const itemMetadata = {
|
|
|
10622
10801
|
description: 'A gathering ship that stores what it digs. Its limpet bay works alongside a cargo hold.',
|
|
10623
10802
|
color: '#4AE898',
|
|
10624
10803
|
},
|
|
10804
|
+
11202: {
|
|
10805
|
+
name: 'Warehouse',
|
|
10806
|
+
description: 'The tier 2 Warehouse. Massive stationary storage facility with a single loader module slot.',
|
|
10807
|
+
color: '#EAB308',
|
|
10808
|
+
},
|
|
10809
|
+
11203: {
|
|
10810
|
+
name: 'Mining Rig',
|
|
10811
|
+
description: 'The tier 2 Mining Rig. Planetary resource extraction with generator and gatherer module slots.',
|
|
10812
|
+
color: '#D4726F',
|
|
10813
|
+
},
|
|
10814
|
+
11204: {
|
|
10815
|
+
name: 'Factory',
|
|
10816
|
+
description: 'The tier 2 Factory. Planetary fabrication with generator and crafter module slots.',
|
|
10817
|
+
color: '#7BA7D4',
|
|
10818
|
+
},
|
|
10819
|
+
11207: {
|
|
10820
|
+
name: 'Station Hub',
|
|
10821
|
+
description: 'The tier 2 Station Hub. Anchors a player station cluster.',
|
|
10822
|
+
color: '#A0B8D0',
|
|
10823
|
+
},
|
|
10824
|
+
11209: {
|
|
10825
|
+
name: 'Assembly Yard',
|
|
10826
|
+
description: 'Orbital construction facility with amplified power core and assembly arm module slots.',
|
|
10827
|
+
color: '#FFB347',
|
|
10828
|
+
},
|
|
10625
10829
|
};
|
|
10626
10830
|
const entityMetadata = {
|
|
10627
10831
|
10201: { moduleSlotLabels: ['Engine', 'Power Core', 'Limpet Bay', 'Shuttle Bay', 'Cargo Hold'] },
|
|
@@ -10656,6 +10860,12 @@ const entityMetadata = {
|
|
|
10656
10860
|
11212: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay'] },
|
|
10657
10861
|
11213: { moduleSlotLabels: ['Power Core', 'Engine', 'Auxiliary System', 'Limpet Bay'] },
|
|
10658
10862
|
11214: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Cargo Hold'] },
|
|
10863
|
+
11202: {
|
|
10864
|
+
moduleSlotLabels: ['Shuttle Bay', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold'],
|
|
10865
|
+
},
|
|
10866
|
+
11203: { moduleSlotLabels: ['Power Core', 'Limpet Bay'] },
|
|
10867
|
+
11204: { moduleSlotLabels: ['Power Core', 'Fabricator'] },
|
|
10868
|
+
11209: { moduleSlotLabels: ['Power Core', 'Assembly Arm'] },
|
|
10659
10869
|
};
|
|
10660
10870
|
for (const item of items) {
|
|
10661
10871
|
if (!itemMetadata[item.id]) {
|
|
@@ -13571,6 +13781,13 @@ var kinds = [
|
|
|
13571
13781
|
zCoord: 0,
|
|
13572
13782
|
defaultLabel: "Construction Dock"
|
|
13573
13783
|
},
|
|
13784
|
+
{
|
|
13785
|
+
kind: "asmblyard",
|
|
13786
|
+
classification: "OrbitalStructure",
|
|
13787
|
+
capabilityFlags: 20,
|
|
13788
|
+
zCoord: 0,
|
|
13789
|
+
defaultLabel: "Assembly Yard"
|
|
13790
|
+
},
|
|
13574
13791
|
{
|
|
13575
13792
|
kind: "depot",
|
|
13576
13793
|
classification: "PlanetaryStructure",
|
|
@@ -13583,117 +13800,146 @@ var templates = [
|
|
|
13583
13800
|
{
|
|
13584
13801
|
itemId: 10201,
|
|
13585
13802
|
kind: "ship",
|
|
13586
|
-
displayLabel: "Ship"
|
|
13803
|
+
displayLabel: "Ship",
|
|
13804
|
+
baseCapacityFn: "ship"
|
|
13587
13805
|
},
|
|
13588
13806
|
{
|
|
13589
13807
|
itemId: 10210,
|
|
13590
13808
|
kind: "ship",
|
|
13591
|
-
displayLabel: "Roustabout"
|
|
13809
|
+
displayLabel: "Roustabout",
|
|
13810
|
+
baseCapacityFn: "ship"
|
|
13592
13811
|
},
|
|
13593
13812
|
{
|
|
13594
13813
|
itemId: 10211,
|
|
13595
13814
|
kind: "ship",
|
|
13596
|
-
displayLabel: "Prospector"
|
|
13815
|
+
displayLabel: "Prospector",
|
|
13816
|
+
baseCapacityFn: "ship"
|
|
13597
13817
|
},
|
|
13598
13818
|
{
|
|
13599
13819
|
itemId: 10212,
|
|
13600
13820
|
kind: "ship",
|
|
13601
|
-
displayLabel: "Tender"
|
|
13821
|
+
displayLabel: "Tender",
|
|
13822
|
+
baseCapacityFn: "ship"
|
|
13602
13823
|
},
|
|
13603
13824
|
{
|
|
13604
13825
|
itemId: 10213,
|
|
13605
13826
|
kind: "ship",
|
|
13606
|
-
displayLabel: "Wright"
|
|
13827
|
+
displayLabel: "Wright",
|
|
13828
|
+
baseCapacityFn: "ship"
|
|
13607
13829
|
},
|
|
13608
13830
|
{
|
|
13609
13831
|
itemId: 10214,
|
|
13610
13832
|
kind: "ship",
|
|
13611
|
-
displayLabel: "Tug"
|
|
13833
|
+
displayLabel: "Tug",
|
|
13834
|
+
baseCapacityFn: "ship"
|
|
13612
13835
|
},
|
|
13613
13836
|
{
|
|
13614
13837
|
itemId: 10215,
|
|
13615
13838
|
kind: "ship",
|
|
13616
|
-
displayLabel: "Porter"
|
|
13839
|
+
displayLabel: "Porter",
|
|
13840
|
+
baseCapacityFn: "ship"
|
|
13617
13841
|
},
|
|
13618
13842
|
{
|
|
13619
13843
|
itemId: 10218,
|
|
13620
13844
|
kind: "ship",
|
|
13621
|
-
displayLabel: "Smith"
|
|
13622
|
-
|
|
13623
|
-
{
|
|
13624
|
-
itemId: 10202,
|
|
13625
|
-
kind: "warehouse",
|
|
13626
|
-
displayLabel: ""
|
|
13627
|
-
},
|
|
13628
|
-
{
|
|
13629
|
-
itemId: 10203,
|
|
13630
|
-
kind: "extractor",
|
|
13631
|
-
displayLabel: ""
|
|
13632
|
-
},
|
|
13633
|
-
{
|
|
13634
|
-
itemId: 10204,
|
|
13635
|
-
kind: "factory",
|
|
13636
|
-
displayLabel: ""
|
|
13845
|
+
displayLabel: "Smith",
|
|
13846
|
+
baseCapacityFn: "ship"
|
|
13637
13847
|
},
|
|
13638
13848
|
{
|
|
13639
13849
|
itemId: 10205,
|
|
13640
13850
|
kind: "mdriver",
|
|
13641
|
-
displayLabel: ""
|
|
13851
|
+
displayLabel: "",
|
|
13852
|
+
baseCapacityFn: "container"
|
|
13642
13853
|
},
|
|
13643
13854
|
{
|
|
13644
13855
|
itemId: 10206,
|
|
13645
13856
|
kind: "mcatcher",
|
|
13646
|
-
displayLabel: ""
|
|
13857
|
+
displayLabel: "",
|
|
13858
|
+
baseCapacityFn: "container"
|
|
13647
13859
|
},
|
|
13648
13860
|
{
|
|
13649
13861
|
itemId: 10200,
|
|
13650
13862
|
kind: "container",
|
|
13651
|
-
displayLabel: ""
|
|
13863
|
+
displayLabel: "",
|
|
13864
|
+
baseCapacityFn: "container"
|
|
13652
13865
|
},
|
|
13653
13866
|
{
|
|
13654
13867
|
itemId: 11200,
|
|
13655
13868
|
kind: "container",
|
|
13656
|
-
displayLabel: ""
|
|
13657
|
-
|
|
13658
|
-
{
|
|
13659
|
-
itemId: 10207,
|
|
13660
|
-
kind: "hub",
|
|
13661
|
-
displayLabel: ""
|
|
13869
|
+
displayLabel: "",
|
|
13870
|
+
baseCapacityFn: "container"
|
|
13662
13871
|
},
|
|
13663
13872
|
{
|
|
13664
13873
|
itemId: 10208,
|
|
13665
13874
|
kind: "workshop",
|
|
13666
|
-
displayLabel: ""
|
|
13875
|
+
displayLabel: "",
|
|
13876
|
+
baseCapacityFn: "workshop"
|
|
13667
13877
|
},
|
|
13668
13878
|
{
|
|
13669
13879
|
itemId: 10209,
|
|
13670
13880
|
kind: "builddock",
|
|
13671
|
-
displayLabel: ""
|
|
13881
|
+
displayLabel: "",
|
|
13882
|
+
baseCapacityFn: "container"
|
|
13672
13883
|
},
|
|
13673
13884
|
{
|
|
13674
13885
|
itemId: 10216,
|
|
13675
13886
|
kind: "nexus",
|
|
13676
|
-
displayLabel: ""
|
|
13887
|
+
displayLabel: "",
|
|
13888
|
+
baseCapacityFn: "container"
|
|
13677
13889
|
},
|
|
13678
13890
|
{
|
|
13679
13891
|
itemId: 11212,
|
|
13680
13892
|
kind: "ship",
|
|
13681
|
-
displayLabel: "Prospector"
|
|
13893
|
+
displayLabel: "Prospector",
|
|
13894
|
+
baseCapacityFn: "ship"
|
|
13682
13895
|
},
|
|
13683
13896
|
{
|
|
13684
13897
|
itemId: 11213,
|
|
13685
13898
|
kind: "ship",
|
|
13686
|
-
displayLabel: "Prospector"
|
|
13899
|
+
displayLabel: "Prospector",
|
|
13900
|
+
baseCapacityFn: "ship"
|
|
13687
13901
|
},
|
|
13688
13902
|
{
|
|
13689
13903
|
itemId: 11214,
|
|
13690
13904
|
kind: "ship",
|
|
13691
|
-
displayLabel: "Dredger"
|
|
13905
|
+
displayLabel: "Dredger",
|
|
13906
|
+
baseCapacityFn: "ship"
|
|
13692
13907
|
},
|
|
13693
13908
|
{
|
|
13694
13909
|
itemId: 10219,
|
|
13695
13910
|
kind: "depot",
|
|
13696
|
-
displayLabel: ""
|
|
13911
|
+
displayLabel: "",
|
|
13912
|
+
baseCapacityFn: "depot"
|
|
13913
|
+
},
|
|
13914
|
+
{
|
|
13915
|
+
itemId: 11202,
|
|
13916
|
+
kind: "warehouse",
|
|
13917
|
+
displayLabel: "",
|
|
13918
|
+
baseCapacityFn: "warehouse"
|
|
13919
|
+
},
|
|
13920
|
+
{
|
|
13921
|
+
itemId: 11203,
|
|
13922
|
+
kind: "extractor",
|
|
13923
|
+
displayLabel: "",
|
|
13924
|
+
baseCapacityFn: "container"
|
|
13925
|
+
},
|
|
13926
|
+
{
|
|
13927
|
+
itemId: 11204,
|
|
13928
|
+
kind: "factory",
|
|
13929
|
+
displayLabel: "",
|
|
13930
|
+
baseCapacityFn: "container"
|
|
13931
|
+
},
|
|
13932
|
+
{
|
|
13933
|
+
itemId: 11207,
|
|
13934
|
+
kind: "hub",
|
|
13935
|
+
displayLabel: "",
|
|
13936
|
+
baseCapacityFn: ""
|
|
13937
|
+
},
|
|
13938
|
+
{
|
|
13939
|
+
itemId: 11209,
|
|
13940
|
+
kind: "asmblyard",
|
|
13941
|
+
displayLabel: "Assembly Yard",
|
|
13942
|
+
baseCapacityFn: "container"
|
|
13697
13943
|
}
|
|
13698
13944
|
];
|
|
13699
13945
|
var kindRegistryJson = {
|
|
@@ -13747,6 +13993,7 @@ const TEMPLATE_BY_ITEM_ID = (() => {
|
|
|
13747
13993
|
itemId: r.itemId,
|
|
13748
13994
|
kind: Name.from(r.kind),
|
|
13749
13995
|
displayLabel: r.displayLabel,
|
|
13996
|
+
baseCapacityFn: r.baseCapacityFn,
|
|
13750
13997
|
});
|
|
13751
13998
|
}
|
|
13752
13999
|
return m;
|
|
@@ -13762,6 +14009,10 @@ function getKindMeta(kind) {
|
|
|
13762
14009
|
function getTemplateMeta(itemId) {
|
|
13763
14010
|
return TEMPLATE_BY_ITEM_ID.get(itemId);
|
|
13764
14011
|
}
|
|
14012
|
+
function getBaseCapacityFnName(itemId) {
|
|
14013
|
+
const fn = TEMPLATE_BY_ITEM_ID.get(itemId)?.baseCapacityFn;
|
|
14014
|
+
return fn ? fn : undefined;
|
|
14015
|
+
}
|
|
13765
14016
|
function getPackedEntityType(itemId) {
|
|
13766
14017
|
return TEMPLATE_BY_ITEM_ID.get(itemId)?.kind ?? null;
|
|
13767
14018
|
}
|
|
@@ -13794,6 +14045,7 @@ Name.from('mdriver');
|
|
|
13794
14045
|
Name.from('mcatcher');
|
|
13795
14046
|
const ENTITY_HUB = Name.from('hub');
|
|
13796
14047
|
const ENTITY_DEPOT = Name.from('depot');
|
|
14048
|
+
const ENTITY_ASSEMBLY_YARD = Name.from('asmblyard');
|
|
13797
14049
|
function isShip(entity) {
|
|
13798
14050
|
return entity.type?.equals(ENTITY_SHIP) ?? false;
|
|
13799
14051
|
}
|
|
@@ -13827,6 +14079,9 @@ function isHub(entity) {
|
|
|
13827
14079
|
function isDepot(entity) {
|
|
13828
14080
|
return entity.type?.equals(ENTITY_DEPOT) ?? false;
|
|
13829
14081
|
}
|
|
14082
|
+
function isAssemblyYard(entity) {
|
|
14083
|
+
return entity.type?.equals(ENTITY_ASSEMBLY_YARD) ?? false;
|
|
14084
|
+
}
|
|
13830
14085
|
|
|
13831
14086
|
class EntityInventory extends Types$1.cargo_item {
|
|
13832
14087
|
get item() {
|
|
@@ -18180,17 +18435,29 @@ class ActionsManager extends BaseManager {
|
|
|
18180
18435
|
}
|
|
18181
18436
|
return this.server.action('craft', params);
|
|
18182
18437
|
}
|
|
18183
|
-
craftjob(shipId, workshopId,
|
|
18438
|
+
craftjob(shipId, workshopId, recipeId, quantity, inputs) {
|
|
18184
18439
|
const params = {
|
|
18185
18440
|
ship_id: UInt64.from(shipId),
|
|
18186
18441
|
workshop_id: UInt64.from(workshopId),
|
|
18187
|
-
slot: UInt8.from(slot),
|
|
18188
18442
|
recipe_id: UInt16.from(recipeId),
|
|
18189
18443
|
quantity: UInt32.from(quantity),
|
|
18190
18444
|
inputs,
|
|
18191
18445
|
};
|
|
18192
18446
|
return this.server.action('craftjob', params);
|
|
18193
18447
|
}
|
|
18448
|
+
cancelcraft(jobId) {
|
|
18449
|
+
const params = {
|
|
18450
|
+
job_id: UInt64.from(jobId),
|
|
18451
|
+
};
|
|
18452
|
+
return this.server.action('cancelcraft', params);
|
|
18453
|
+
}
|
|
18454
|
+
canceljob(route) {
|
|
18455
|
+
if (route.kind === 'dropoff')
|
|
18456
|
+
return this.cancel(route.shipId, route.laneKey, route.count);
|
|
18457
|
+
if (route.kind === 'build')
|
|
18458
|
+
return this.cancelbuild(route.jobId);
|
|
18459
|
+
return this.cancelcraft(route.jobId);
|
|
18460
|
+
}
|
|
18194
18461
|
clustercraft(entityId, recipeId, quantity, sources, target, slot) {
|
|
18195
18462
|
const params = {
|
|
18196
18463
|
id: UInt64.from(entityId),
|
|
@@ -18213,11 +18480,10 @@ class ActionsManager extends BaseManager {
|
|
|
18213
18480
|
};
|
|
18214
18481
|
return this.server.action('claimcraft', params);
|
|
18215
18482
|
}
|
|
18216
|
-
buildjob(targetId, dockId,
|
|
18483
|
+
buildjob(targetId, dockId, targetItemId, inputs) {
|
|
18217
18484
|
const params = {
|
|
18218
18485
|
target_id: UInt64.from(targetId),
|
|
18219
18486
|
dock_id: UInt64.from(dockId),
|
|
18220
|
-
slot: UInt8.from(slot),
|
|
18221
18487
|
target_item_id: UInt16.from(targetItemId),
|
|
18222
18488
|
inputs,
|
|
18223
18489
|
};
|
|
@@ -18546,6 +18812,9 @@ class ActionsManager extends BaseManager {
|
|
|
18546
18812
|
token_contract: Name.from(tokenContract),
|
|
18547
18813
|
});
|
|
18548
18814
|
}
|
|
18815
|
+
claimFund(beneficiary) {
|
|
18816
|
+
return this.fund.action('claim', { beneficiary_account: Name.from(beneficiary) });
|
|
18817
|
+
}
|
|
18549
18818
|
collectFund() {
|
|
18550
18819
|
return this.fund.action('collect', {});
|
|
18551
18820
|
}
|
|
@@ -18765,6 +19034,30 @@ class BalancesManager extends BaseManager {
|
|
|
18765
19034
|
}
|
|
18766
19035
|
}
|
|
18767
19036
|
|
|
19037
|
+
class FundManager extends BaseManager {
|
|
19038
|
+
async getBeneficiaries() {
|
|
19039
|
+
const rows = (await this.fund
|
|
19040
|
+
.table('benefs', this.fund.account)
|
|
19041
|
+
.all());
|
|
19042
|
+
return rows.map((row) => ({ account: row.account, bps: row.bps }));
|
|
19043
|
+
}
|
|
19044
|
+
async getTokens() {
|
|
19045
|
+
const rows = (await this.fund
|
|
19046
|
+
.table('tokens', this.fund.account)
|
|
19047
|
+
.all());
|
|
19048
|
+
return rows.map((row) => ({ tokenContract: row.token_contract, symbol: row.token_symbol }));
|
|
19049
|
+
}
|
|
19050
|
+
async getAccrued(beneficiary) {
|
|
19051
|
+
const rows = (await this.fund
|
|
19052
|
+
.table('accrued', Name.from(beneficiary))
|
|
19053
|
+
.all());
|
|
19054
|
+
return rows.map((row) => ({ tokenContract: row.token_contract, balance: row.balance }));
|
|
19055
|
+
}
|
|
19056
|
+
async getUncollected() {
|
|
19057
|
+
return this.context.balances.getPlatformBalances(this.fund.account);
|
|
19058
|
+
}
|
|
19059
|
+
}
|
|
19060
|
+
|
|
18768
19061
|
const JOB_QUEUE_CAP = 25;
|
|
18769
19062
|
function activeOn(jobs, socket, now) {
|
|
18770
19063
|
return jobs
|
|
@@ -18792,35 +19085,164 @@ function socketTail(jobs, socket, now) {
|
|
|
18792
19085
|
const last = active[active.length - 1];
|
|
18793
19086
|
return last && last.completesAt > now ? last.completesAt : now;
|
|
18794
19087
|
}
|
|
18795
|
-
function pickFabricator(jobs, sockets, durationBySocketMinutes, now) {
|
|
19088
|
+
function pickFabricator(jobs, sockets, durationBySocketMinutes, arrival, now = arrival) {
|
|
18796
19089
|
let best = null;
|
|
18797
19090
|
for (let slot = 0; slot < sockets.length; slot++) {
|
|
18798
19091
|
if (!sockets[slot].open)
|
|
18799
19092
|
continue;
|
|
18800
19093
|
if (activeOn(jobs, slot, now).length >= JOB_QUEUE_CAP)
|
|
18801
19094
|
continue;
|
|
18802
|
-
const
|
|
18803
|
-
|
|
19095
|
+
const durationMs = durationBySocketMinutes[slot] * 60000;
|
|
19096
|
+
let startsAt = arrival;
|
|
19097
|
+
for (const job of activeOn(jobs, slot, now)) {
|
|
19098
|
+
if (job.completesAt <= startsAt)
|
|
19099
|
+
continue;
|
|
19100
|
+
if (job.startsAt.getTime() - startsAt.getTime() >= durationMs)
|
|
19101
|
+
break;
|
|
19102
|
+
startsAt = job.completesAt;
|
|
19103
|
+
}
|
|
19104
|
+
const completesAt = new Date(startsAt.getTime() + durationMs);
|
|
18804
19105
|
if (!best || completesAt < best.completesAt) {
|
|
18805
19106
|
best = { slot, startsAt, completesAt };
|
|
18806
19107
|
}
|
|
18807
19108
|
}
|
|
18808
19109
|
return best;
|
|
18809
19110
|
}
|
|
18810
|
-
function
|
|
18811
|
-
|
|
18812
|
-
|
|
19111
|
+
function workshopAvailability(jobs, socketCount, now) {
|
|
19112
|
+
let open = 0;
|
|
19113
|
+
let nextOpeningAt = null;
|
|
19114
|
+
for (let socket = 0; socket < socketCount; socket++) {
|
|
19115
|
+
const tail = socketTail(jobs, socket, now);
|
|
19116
|
+
if (tail <= now) {
|
|
19117
|
+
open++;
|
|
19118
|
+
}
|
|
19119
|
+
else if (!nextOpeningAt || tail < nextOpeningAt) {
|
|
19120
|
+
nextOpeningAt = tail;
|
|
19121
|
+
}
|
|
19122
|
+
}
|
|
19123
|
+
return { open, nextOpeningAt: open > 0 ? null : nextOpeningAt };
|
|
19124
|
+
}
|
|
19125
|
+
function modulesEqual(a, b) {
|
|
19126
|
+
const length = Math.max(a?.length ?? 0, b?.length ?? 0);
|
|
19127
|
+
for (let i = 0; i < length; i++) {
|
|
19128
|
+
const installed = a?.[i]?.installed;
|
|
19129
|
+
const other = b?.[i]?.installed;
|
|
19130
|
+
if (Boolean(installed) !== Boolean(other))
|
|
19131
|
+
return false;
|
|
19132
|
+
if (installed &&
|
|
19133
|
+
other &&
|
|
19134
|
+
(String(installed.item_id) !== String(other.item_id) ||
|
|
19135
|
+
String(installed.stats) !== String(other.stats))) {
|
|
19136
|
+
return false;
|
|
19137
|
+
}
|
|
19138
|
+
}
|
|
19139
|
+
return true;
|
|
19140
|
+
}
|
|
19141
|
+
function cargoEquals(a, b) {
|
|
19142
|
+
if (a.length !== b.length)
|
|
19143
|
+
return false;
|
|
19144
|
+
return a.every((x, i) => {
|
|
19145
|
+
const y = b[i];
|
|
19146
|
+
if (String(x.item_id) !== String(y.item_id) ||
|
|
19147
|
+
String(x.stats) !== String(y.stats) ||
|
|
19148
|
+
String(x.quantity) !== String(y.quantity) ||
|
|
19149
|
+
String(x.entity_id ?? 0) !== String(y.entity_id ?? 0) ||
|
|
19150
|
+
!modulesEqual(x.modules, y.modules)) {
|
|
19151
|
+
return false;
|
|
19152
|
+
}
|
|
19153
|
+
return true;
|
|
19154
|
+
});
|
|
19155
|
+
}
|
|
19156
|
+
function matchesJob(t, job) {
|
|
19157
|
+
const subject = t.task.subject;
|
|
19158
|
+
if (job.building !== undefined && Number(subject?.entity_id) !== job.building)
|
|
19159
|
+
return false;
|
|
19160
|
+
if (job.inputs !== undefined && !cargoEquals(t.task.cargo, job.inputs))
|
|
19161
|
+
return false;
|
|
19162
|
+
return true;
|
|
19163
|
+
}
|
|
19164
|
+
function jobDropoffTask(job, tasks) {
|
|
19165
|
+
const matches = tasks?.filter((t) => Number(t.task.type) === TaskType.CIVIC_DEPOSIT &&
|
|
19166
|
+
matchesJob(t, job) &&
|
|
19167
|
+
(job.arrivesAt === undefined || t.completesAt.getTime() === job.arrivesAt.getTime()));
|
|
19168
|
+
return matches?.length === 1 ? matches[0] : undefined;
|
|
19169
|
+
}
|
|
19170
|
+
function jobStatus(job, now, tasks) {
|
|
19171
|
+
if (job.deposited === false) {
|
|
19172
|
+
const dropoff = jobDropoffTask(job, tasks);
|
|
19173
|
+
return dropoff && now < dropoff.startsAt ? 'booked' : 'dropping';
|
|
19174
|
+
}
|
|
19175
|
+
if (job.quantity === 0)
|
|
19176
|
+
return 'ready';
|
|
18813
19177
|
if (now < job.startsAt)
|
|
18814
|
-
return '
|
|
19178
|
+
return 'queued';
|
|
18815
19179
|
if (now < job.completesAt)
|
|
18816
19180
|
return 'crafting';
|
|
18817
19181
|
return 'ready';
|
|
18818
19182
|
}
|
|
19183
|
+
function jobCancellable(status) {
|
|
19184
|
+
return status === 'booked' || status === 'dropping' || status === 'queued';
|
|
19185
|
+
}
|
|
19186
|
+
function jobCancellationBlockReason(job, tasks) {
|
|
19187
|
+
if (job.deposited === true &&
|
|
19188
|
+
(job.quantity ?? 0) > 0 &&
|
|
19189
|
+
job.inputs !== undefined &&
|
|
19190
|
+
job.inputs.length === 0) {
|
|
19191
|
+
return 'legacy-inputs-unavailable';
|
|
19192
|
+
}
|
|
19193
|
+
if (job.deposited === false && job.arrivesAt !== undefined && tasks) {
|
|
19194
|
+
const matches = tasks.filter((task) => Number(task.task.type) === TaskType.CIVIC_DEPOSIT &&
|
|
19195
|
+
matchesJob(task, job) &&
|
|
19196
|
+
task.completesAt.getTime() === job.arrivesAt?.getTime());
|
|
19197
|
+
if (matches.length > 1)
|
|
19198
|
+
return 'ambiguous-dropoff';
|
|
19199
|
+
}
|
|
19200
|
+
return null;
|
|
19201
|
+
}
|
|
19202
|
+
function cancelRoute(job, queued, now, tasks) {
|
|
19203
|
+
if (!jobCancellable(jobStatus(job, now, tasks)))
|
|
19204
|
+
return null;
|
|
19205
|
+
if (queued === 'craft' && jobCancellationBlockReason(job, tasks))
|
|
19206
|
+
return null;
|
|
19207
|
+
if (job.deposited !== false)
|
|
19208
|
+
return { kind: queued, jobId: job.id };
|
|
19209
|
+
if (job.shipId === undefined || !tasks)
|
|
19210
|
+
return null;
|
|
19211
|
+
const dropoff = jobDropoffTask(job, tasks);
|
|
19212
|
+
if (!dropoff || dropoff.completesAt <= now)
|
|
19213
|
+
return null;
|
|
19214
|
+
const laneLength = tasks.filter((t) => t.laneKey === dropoff.laneKey).length;
|
|
19215
|
+
return {
|
|
19216
|
+
kind: 'dropoff',
|
|
19217
|
+
shipId: job.shipId,
|
|
19218
|
+
laneKey: dropoff.laneKey,
|
|
19219
|
+
count: laneLength - dropoff.taskIndex,
|
|
19220
|
+
};
|
|
19221
|
+
}
|
|
19222
|
+
function jobCancelRoute(job, now, tasks) {
|
|
19223
|
+
return cancelRoute(job, 'craft', now, tasks);
|
|
19224
|
+
}
|
|
19225
|
+
function buildJobCancelRoute(job, now, tasks) {
|
|
19226
|
+
return cancelRoute({ ...job, shipId: job.targetId }, 'build', now, tasks);
|
|
19227
|
+
}
|
|
19228
|
+
function pickupsInFlight(tasks, building) {
|
|
19229
|
+
return tasks
|
|
19230
|
+
.filter((t) => Number(t.task.type) === TaskType.CIVIC_WITHDRAW &&
|
|
19231
|
+
(building === undefined || Number(t.task.subject?.entity_id) === building))
|
|
19232
|
+
.map((t) => ({
|
|
19233
|
+
building: Number(t.task.subject?.entity_id),
|
|
19234
|
+
cargo: [...t.task.cargo],
|
|
19235
|
+
startsAt: t.startsAt,
|
|
19236
|
+
completesAt: t.completesAt,
|
|
19237
|
+
}));
|
|
19238
|
+
}
|
|
18819
19239
|
const JOB_STATUS_LABELS = {
|
|
18820
|
-
|
|
18821
|
-
|
|
19240
|
+
booked: 'Booked',
|
|
19241
|
+
dropping: 'Dropping off',
|
|
19242
|
+
queued: 'Queued',
|
|
18822
19243
|
crafting: 'Crafting',
|
|
18823
19244
|
ready: 'Ready for Pickup',
|
|
19245
|
+
pickingup: 'Picking up',
|
|
18824
19246
|
};
|
|
18825
19247
|
function jobStatusLabel(status) {
|
|
18826
19248
|
return JOB_STATUS_LABELS[status];
|
|
@@ -18830,12 +19252,12 @@ function jobDeposited(value) {
|
|
|
18830
19252
|
return true;
|
|
18831
19253
|
return Boolean(value);
|
|
18832
19254
|
}
|
|
18833
|
-
function splitJobCargo(cargo, deposited) {
|
|
19255
|
+
function splitJobCargo(cargo, deposited, quantity) {
|
|
18834
19256
|
if (cargo.length === 0)
|
|
18835
19257
|
return { output: null, inputs: [] };
|
|
18836
|
-
if (!deposited)
|
|
19258
|
+
if (!deposited || quantity === 0)
|
|
18837
19259
|
return { output: null, inputs: [...cargo] };
|
|
18838
|
-
return { output: cargo[
|
|
19260
|
+
return { output: cargo[cargo.length - 1], inputs: cargo.slice(0, -1) };
|
|
18839
19261
|
}
|
|
18840
19262
|
|
|
18841
19263
|
class JobsManager extends BaseManager {
|
|
@@ -18862,19 +19284,23 @@ class JobsManager extends BaseManager {
|
|
|
18862
19284
|
parseOwnedJob(r, now) {
|
|
18863
19285
|
const startsAt = r.starts_at.toDate();
|
|
18864
19286
|
const completesAt = r.completes_at.toDate();
|
|
19287
|
+
const arrivesAt = r.arrives_at.toDate();
|
|
18865
19288
|
const deposited = jobDeposited(r.deposited);
|
|
18866
|
-
const
|
|
19289
|
+
const quantity = r.quantity.toNumber();
|
|
19290
|
+
const building = r.building.toNumber();
|
|
19291
|
+
const { output, inputs } = splitJobCargo(r.cargo, deposited, quantity);
|
|
18867
19292
|
return {
|
|
18868
19293
|
id: r.id.toNumber(),
|
|
18869
|
-
building
|
|
19294
|
+
building,
|
|
18870
19295
|
socket: r.socket.toNumber(),
|
|
18871
19296
|
shipId: r.ship_id.toNumber(),
|
|
18872
19297
|
coords: { x: r.coords.x.toNumber(), y: r.coords.y.toNumber() },
|
|
18873
19298
|
startsAt,
|
|
18874
19299
|
completesAt,
|
|
19300
|
+
arrivesAt,
|
|
18875
19301
|
recipeId: r.recipe_id.toNumber(),
|
|
18876
|
-
quantity
|
|
18877
|
-
status: jobStatus({ startsAt, completesAt, deposited }, now),
|
|
19302
|
+
quantity,
|
|
19303
|
+
status: jobStatus({ startsAt, completesAt, deposited, quantity, building, inputs }, now),
|
|
18878
19304
|
deposited,
|
|
18879
19305
|
output,
|
|
18880
19306
|
inputs,
|
|
@@ -19241,6 +19667,20 @@ function computeEffectiveModuleStat(stat) {
|
|
|
19241
19667
|
Math.floor(((stat - MODULE_STAT_SCALING_ANCHOR) * MODULE_STAT_SCALING_POST_ANCHOR_PERCENT) / 100));
|
|
19242
19668
|
}
|
|
19243
19669
|
|
|
19670
|
+
const CAPACITY_FN_NAMES = ['ship', 'warehouse', 'depot', 'container', 'workshop'];
|
|
19671
|
+
function isCapacityFnName(name) {
|
|
19672
|
+
return CAPACITY_FN_NAMES.includes(name);
|
|
19673
|
+
}
|
|
19674
|
+
function resolveCapacityFnName(itemId) {
|
|
19675
|
+
const name = getBaseCapacityFnName(itemId);
|
|
19676
|
+
if (!name)
|
|
19677
|
+
return undefined;
|
|
19678
|
+
if (!isCapacityFnName(name)) {
|
|
19679
|
+
throw new Error(`unrecognized base capacity function "${name}" for item ${itemId}`);
|
|
19680
|
+
}
|
|
19681
|
+
return name;
|
|
19682
|
+
}
|
|
19683
|
+
|
|
19244
19684
|
const U16_MAX$1 = 65535;
|
|
19245
19685
|
function packedModulesToInstalled(entries) {
|
|
19246
19686
|
const installed = [];
|
|
@@ -19431,15 +19871,10 @@ function computeGathererYield(str, tier) {
|
|
|
19431
19871
|
const pct = GATHERER_YIELD_TIER_TABLE[clampedTier - 1];
|
|
19432
19872
|
return Math.floor(((200 + str) * pct) / 100);
|
|
19433
19873
|
}
|
|
19434
|
-
const
|
|
19874
|
+
const CAPACITY_FN_BY_NAME$1 = {
|
|
19435
19875
|
warehouse: (stats) => computeWarehouseHullCapabilities(stats).capacity,
|
|
19436
19876
|
depot: (stats) => computeDepotHullCapabilities(stats).capacity,
|
|
19437
19877
|
workshop: (stats) => computeWorkshopHullCapabilities(stats).capacity,
|
|
19438
|
-
extractor: (stats) => computeContainerCapabilities(stats).capacity,
|
|
19439
|
-
factory: (stats) => computeContainerCapabilities(stats).capacity,
|
|
19440
|
-
builddock: (stats) => computeContainerCapabilities(stats).capacity,
|
|
19441
|
-
mdriver: (stats) => computeContainerCapabilities(stats).capacity,
|
|
19442
|
-
mcatcher: (stats) => computeContainerCapabilities(stats).capacity,
|
|
19443
19878
|
container: (stats) => computeContainerCapabilities(stats).capacity,
|
|
19444
19879
|
};
|
|
19445
19880
|
function computeBaseCapacity(itemId, stats) {
|
|
@@ -19448,8 +19883,8 @@ function computeBaseCapacity(itemId, stats) {
|
|
|
19448
19883
|
base = computeShipHullCapabilities(stats, itemId).capacity;
|
|
19449
19884
|
}
|
|
19450
19885
|
else {
|
|
19451
|
-
const
|
|
19452
|
-
const capacityFn =
|
|
19886
|
+
const fnName = resolveCapacityFnName(itemId);
|
|
19887
|
+
const capacityFn = fnName ? CAPACITY_FN_BY_NAME$1[fnName] : undefined;
|
|
19453
19888
|
if (!capacityFn)
|
|
19454
19889
|
return 0;
|
|
19455
19890
|
base = capacityFn(stats);
|
|
@@ -19466,7 +19901,7 @@ function computeWarehouseHullCapabilities(stats) {
|
|
|
19466
19901
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
19467
19902
|
const exponent = statSum / 1998.0;
|
|
19468
19903
|
return {
|
|
19469
|
-
hullmass: computeBaseHullmass$1(
|
|
19904
|
+
hullmass: computeBaseHullmass$1(ITEM_WAREHOUSE_T2_PACKED, stats),
|
|
19470
19905
|
capacity: Math.floor(1000000 * 6 ** exponent),
|
|
19471
19906
|
};
|
|
19472
19907
|
}
|
|
@@ -19767,24 +20202,18 @@ function computeBaseCapacityDepot(stats) {
|
|
|
19767
20202
|
const s = decodeStat(stats, 0) + decodeStat(stats, 2);
|
|
19768
20203
|
return Math.floor(500000 * 6 ** (s / 1998));
|
|
19769
20204
|
}
|
|
19770
|
-
const
|
|
20205
|
+
const CAPACITY_FN_BY_NAME = {
|
|
19771
20206
|
ship: computeBaseCapacityShip,
|
|
19772
20207
|
warehouse: computeBaseCapacityWarehouse,
|
|
19773
20208
|
workshop: computeBaseCapacityWorkshop,
|
|
19774
|
-
extractor: computeBaseCapacityContainer,
|
|
19775
|
-
factory: computeBaseCapacityContainer,
|
|
19776
|
-
builddock: computeBaseCapacityContainer,
|
|
19777
|
-
mdriver: computeBaseCapacityContainer,
|
|
19778
|
-
mcatcher: computeBaseCapacityContainer,
|
|
19779
20209
|
container: computeBaseCapacityContainer,
|
|
19780
|
-
nexus: computeBaseCapacityContainer,
|
|
19781
20210
|
depot: computeBaseCapacityDepot,
|
|
19782
20211
|
};
|
|
19783
20212
|
function computeBaseCapacityForEntity(itemId, stats) {
|
|
19784
|
-
const
|
|
19785
|
-
if (!
|
|
20213
|
+
const fnName = resolveCapacityFnName(itemId);
|
|
20214
|
+
if (!fnName)
|
|
19786
20215
|
return 0;
|
|
19787
|
-
return
|
|
20216
|
+
return CAPACITY_FN_BY_NAME[fnName](stats);
|
|
19788
20217
|
}
|
|
19789
20218
|
const computeEngineThrust = (vol, tier) => idiv((400 + idiv(vol * 3, 4)) * moduleTierPct(ENGINE_THRUST_TIER_PCT, tier), 100);
|
|
19790
20219
|
const computeEngineDrain = (thm) => 2 * Math.max(30, 50 - idiv(thm, 70));
|
|
@@ -20094,6 +20523,50 @@ function candidateLaneCompletesAt(entity, laneKey, durationSec, now) {
|
|
|
20094
20523
|
: now.getTime();
|
|
20095
20524
|
return new Date(startMs + durationSec * 1000);
|
|
20096
20525
|
}
|
|
20526
|
+
function candidateCivicDepositWindow(entity, durationSec, now, minStartsAt = now) {
|
|
20527
|
+
const lanes = entity.lanes ?? [];
|
|
20528
|
+
let lowestLoader;
|
|
20529
|
+
let laneKey;
|
|
20530
|
+
for (let slotIndex = 0; slotIndex < entity.modules.length; slotIndex++) {
|
|
20531
|
+
const installed = entity.modules[slotIndex].installed;
|
|
20532
|
+
if (!installed || getItem(installed.item_id).moduleType !== 'loader')
|
|
20533
|
+
continue;
|
|
20534
|
+
const key = laneKeyForModule(slotIndex);
|
|
20535
|
+
if (lowestLoader === undefined)
|
|
20536
|
+
lowestLoader = key;
|
|
20537
|
+
if (laneIsFree(lanes, key)) {
|
|
20538
|
+
laneKey = key;
|
|
20539
|
+
break;
|
|
20540
|
+
}
|
|
20541
|
+
}
|
|
20542
|
+
laneKey ?? (laneKey = lowestLoader ?? LANE_MOBILITY);
|
|
20543
|
+
const floorNowMs = Math.floor(now.getTime() / 1000) * 1000;
|
|
20544
|
+
const lane = getLane(entity, laneKey);
|
|
20545
|
+
const laneEndMs = lane ? rawScheduleEnd(lane.schedule).getTime() : floorNowMs;
|
|
20546
|
+
let barrierMs = minStartsAt.getTime();
|
|
20547
|
+
for (const entry of lanes) {
|
|
20548
|
+
let completesMs = entry.schedule.started.toDate().getTime();
|
|
20549
|
+
for (const task of entry.schedule.tasks) {
|
|
20550
|
+
completesMs += task.duration.toNumber() * 1000;
|
|
20551
|
+
const type = task.type.toNumber();
|
|
20552
|
+
if (type === TaskType.TRAVEL ||
|
|
20553
|
+
type === TaskType.WARP ||
|
|
20554
|
+
type === TaskType.TRANSIT ||
|
|
20555
|
+
type === TaskType.RECHARGE) {
|
|
20556
|
+
barrierMs = Math.max(barrierMs, completesMs);
|
|
20557
|
+
}
|
|
20558
|
+
}
|
|
20559
|
+
}
|
|
20560
|
+
let startMs = Math.max(laneEndMs, barrierMs);
|
|
20561
|
+
if (startMs > laneEndMs) {
|
|
20562
|
+
startMs = laneEndMs + Math.ceil((startMs - laneEndMs) / 1000) * 1000;
|
|
20563
|
+
}
|
|
20564
|
+
return {
|
|
20565
|
+
laneKey,
|
|
20566
|
+
startsAt: new Date(startMs),
|
|
20567
|
+
completesAt: new Date(startMs + durationSec * 1000),
|
|
20568
|
+
};
|
|
20569
|
+
}
|
|
20097
20570
|
|
|
20098
20571
|
function civicLoader() {
|
|
20099
20572
|
return {
|
|
@@ -21988,6 +22461,12 @@ class GameContext {
|
|
|
21988
22461
|
}
|
|
21989
22462
|
return this._balances;
|
|
21990
22463
|
}
|
|
22464
|
+
get funds() {
|
|
22465
|
+
if (!this._funds) {
|
|
22466
|
+
this._funds = new FundManager(this);
|
|
22467
|
+
}
|
|
22468
|
+
return this._funds;
|
|
22469
|
+
}
|
|
21991
22470
|
get jobs() {
|
|
21992
22471
|
if (!this._jobs) {
|
|
21993
22472
|
this._jobs = new JobsManager(this);
|
|
@@ -22130,6 +22609,9 @@ class Shipload {
|
|
|
22130
22609
|
get nft() {
|
|
22131
22610
|
return this._context.nft;
|
|
22132
22611
|
}
|
|
22612
|
+
get funds() {
|
|
22613
|
+
return this._context.funds;
|
|
22614
|
+
}
|
|
22133
22615
|
get balances() {
|
|
22134
22616
|
return this._context.balances;
|
|
22135
22617
|
}
|
|
@@ -22297,20 +22779,20 @@ function makeEntity(packedItemId, state) {
|
|
|
22297
22779
|
return new Entity(entityInfo);
|
|
22298
22780
|
}
|
|
22299
22781
|
|
|
22300
|
-
function
|
|
22782
|
+
function decodeWindowReceipt(data) {
|
|
22301
22783
|
if (data === null || data === undefined) {
|
|
22302
|
-
throw new Error('
|
|
22784
|
+
throw new Error('decodeWindowReceipt: no return value');
|
|
22303
22785
|
}
|
|
22304
22786
|
if (data instanceof Uint8Array || typeof data === 'string') {
|
|
22305
|
-
return Serializer.decode({ data, type: Types$1.
|
|
22787
|
+
return Serializer.decode({ data, type: Types$1.window_receipt });
|
|
22306
22788
|
}
|
|
22307
|
-
return Types$1.
|
|
22789
|
+
return Types$1.window_receipt.from(data);
|
|
22308
22790
|
}
|
|
22309
|
-
function
|
|
22310
|
-
return receipt.
|
|
22791
|
+
function windowReceiptStartsAtMs(receipt) {
|
|
22792
|
+
return receipt.starts_at.toMilliseconds();
|
|
22311
22793
|
}
|
|
22312
|
-
function
|
|
22313
|
-
return
|
|
22794
|
+
function windowReceiptCompletesAtMs(receipt) {
|
|
22795
|
+
return receipt.completes_at.toMilliseconds();
|
|
22314
22796
|
}
|
|
22315
22797
|
|
|
22316
22798
|
function capsHasCrafter(caps) {
|
|
@@ -24857,8 +25339,8 @@ const SLOT_FORMULAS = {
|
|
|
24857
25339
|
},
|
|
24858
25340
|
'ship-t1': ENTITY_HULL_SLOTS,
|
|
24859
25341
|
'container-t1': ENTITY_HULL_SLOTS,
|
|
24860
|
-
'warehouse-
|
|
24861
|
-
'extractor-
|
|
25342
|
+
'warehouse-t2': ENTITY_HULL_SLOTS,
|
|
25343
|
+
'extractor-t2': ENTITY_HULL_SLOTS,
|
|
24862
25344
|
'container-t2': ENTITY_HULL_SLOTS,
|
|
24863
25345
|
};
|
|
24864
25346
|
|
|
@@ -24875,8 +25357,8 @@ const KIND_TO_ITEM_ID = {
|
|
|
24875
25357
|
battery: ITEM_BATTERY_T1,
|
|
24876
25358
|
'ship-t1': ITEM_SHIP_T1_PACKED,
|
|
24877
25359
|
'container-t1': ITEM_CONTAINER_T1_PACKED,
|
|
24878
|
-
'warehouse-
|
|
24879
|
-
'extractor-
|
|
25360
|
+
'warehouse-t2': ITEM_WAREHOUSE_T2_PACKED,
|
|
25361
|
+
'extractor-t2': ITEM_EXTRACTOR_T2_PACKED,
|
|
24880
25362
|
'container-t2': ITEM_CONTAINER_T2_PACKED,
|
|
24881
25363
|
};
|
|
24882
25364
|
function traceToRawCategoryStat(recipe, source, visited = new Set()) {
|
|
@@ -26209,5 +26691,5 @@ function planParallelTransfer(entity, target) {
|
|
|
26209
26691
|
return allocateProportional(laneWeights, requestedQty).filter((e) => e.quantity > 0);
|
|
26210
26692
|
}
|
|
26211
26693
|
|
|
26212
|
-
export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, ActionsManager, BALLOT_CHARTER, BALLOT_MAX_PICKS, BALLOT_NONE_DUE, BALLOT_NOT_DUE, BALLOT_SETTLING, BAR_SEED, BAR_STEP_DOWN, BAR_STEP_UNIT, BAR_STEP_UP, BASE_HAUL_PENALTY_MILLI$1 as BASE_HAUL_PENALTY_MILLI, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, BalancesManager, CANCEL_CONTAINS_GROUPED_TASK, CAPACITY_TIER_TABLE, CAP_CATCH, CAP_DEMOLISH, CAP_MODULES, CAP_STORE_CARGO, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, CHARTER_BASELINE_STAT, CHARTER_INELIGIBILITY_MESSAGES, CHARTER_MAX_GRANTS, CHARTER_MAX_PREREQS, CHARTER_NONE, CHARTER_REGISTRY, CHARTER_RUNG_STEP, CHARTER_WORKSHOP, CHARTER_WORKSHOP_COST, CIVIC_DEPOT, CIVIC_DOCK, CIVIC_GRANT_ADVANCEMENT, CIVIC_GRANT_LEVEL_GATE, CIVIC_GRANT_MODULE, CIVIC_GRANT_NONE, CIVIC_GRANT_RUNG, CIVIC_LOADER_STAT, CIVIC_LOADER_TIER, CIVIC_NEXUS, CIVIC_SPEED_CAP, CIVIC_STAT_BUILD_SPEED, CIVIC_STAT_CRAFT_SPEED, CIVIC_STAT_DEFS, CIVIC_STAT_NONE, CIVIC_STAT_STORAGE_CAPACITY, CIVIC_STAT_TRANSFER_SPEED, CIVIC_TRANSFER_PER_PLAYER_CAP, CIVIC_WORKSHOP, CIVIC_WORLD, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, ClusterManager, ConstructionManager, Coordinates, DECAY_MAX_ITERATIONS, DECAY_RETAIN_DEN, DECAY_RETAIN_NUM, DECOMP_MAX_BUCKETS, DECOMP_MAX_DEPTH, DECOMP_PROCESSED_MASS_MAX, DECOMP_RAW_MASS_MAX, DECOMP_REGISTRY, DEFAULT_BASE_HULLMASS, DEFAULT_ORBITAL_Z, DEMAND_TRIPLE_SEED, DEPLOY_ENTITY_HAS_SCHEDULE, DEPOT_LOADER_SLOT, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, ENGINE_DRAIN_BASE, ENGINE_DRAIN_REF_THM, ENGINE_DRAIN_REF_THRUST, ENTITY_ALREADY_THERE, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONSTRUCTION_DOCK, ENTITY_CONTAINER, ENTITY_DEPOT, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_HUB, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, ENTITY_WORKSHOP, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, Entity, EntityClass, EntityInventory, EpochsManager, fund as FundContract, Types$3 as FundTypes, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, GATHER_NOT_ENOUGH_ENERGY, GRADE_PREMIUM, GRADE_STANDARD, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, HAULER_EFFICIENCY_DENOM$1 as HAULER_EFFICIENCY_DENOM, HoldKind, INFLUENCE_ATOMIC_PER_POINT, INFLUENCE_D1_SEED, INFLUENCE_MASS_MAX, INFLUENCE_NEED_FP_MAX, INFLUENCE_WEIGHT_FP_MAX, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INTAKE_RATE, INVALID_AMOUNT, ITEM_BATTERY_T1, ITEM_BATTERY_T2, ITEM_BEAM, ITEM_BEAM_T2, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_BUILDER_T1, ITEM_BUILDER_T2, ITEM_CERAMIC, ITEM_CERAMIC_T2, ITEM_CONSTRUCTION_DOCK_T1_PACKED, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRAFTER_T2, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DEPOT_T1_PACKED, ITEM_DOES_NOT_EXIST, ITEM_DREDGER_T2A_PACKED, ITEM_ENGINE_T1, ITEM_ENGINE_T2, ITEM_EXTRACTOR_T1_PACKED, ITEM_FACTORY_T1_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GATHERER_T2, ITEM_GENERATOR_T1, ITEM_GENERATOR_T2, ITEM_HAULER_T1, ITEM_HAULER_T2, ITEM_HUB_T1_PACKED, ITEM_LAUNCHER_T1, ITEM_LOADER_T1, ITEM_LOADER_T2, ITEM_MASS_CATCHER_T1_PACKED, ITEM_MASS_DRIVER_T1_PACKED, ITEM_NEXUS_T1_PACKED, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLASMA_CELL_T2, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_POLYMER_T2, ITEM_PORTER_T1A_PACKED, ITEM_PROSPECTOR_T1A_PACKED, ITEM_PROSPECTOR_T2A_PACKED, ITEM_PROSPECTOR_T2B_PACKED, ITEM_REACTOR, ITEM_REACTOR_T2, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESIN, ITEM_RESIN_T2, ITEM_RESONATOR, ITEM_RESONATOR_T2, ITEM_ROUSTABOUT_T1A_PACKED, ITEM_SENSOR, ITEM_SENSOR_T2, ITEM_SHIP_T1_PACKED, ITEM_SMITH_T1A_PACKED, ITEM_STORAGE_T1, ITEM_STORAGE_T2, ITEM_TENDER_T1A_PACKED, ITEM_TUG_T1A_PACKED, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T1_PACKED, ITEM_WARP_T1, ITEM_WARP_T2, ITEM_WORKSHOP_T1_PACKED, ITEM_WRIGHT_T1A_PACKED, InfluenceManager, InventoryAccessor, JOB_QUEUE_CAP, JobsManager, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MASS_STAT_SCALE, MASS_UNITS_PER_TONNE, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MINTREADY_DEFAULT_CAP, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_AUX, MODULE_BATTERY, MODULE_BUILDER, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STAT_SCALING_ANCHOR, MODULE_STAT_SCALING_POST_ANCHOR_PERCENT, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, NEED_FP_SCALE, index as NFT, NO_SCHEDULE, NftManager, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION, platform as PlatformContract, Types$2 as PlatformTypes, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_BIOMASS, RESOURCE_CATEGORY_COUNT, RESOURCE_CRYSTAL, RESOURCE_GAS, RESOURCE_ORE, RESOURCE_REGOLITH, RESOURCE_TIER_ADJECTIVES, RESOURCE_TIER_MULT_TENTHS, RefitOp, SECTORS_PER_AXIS, SECTOR_DIV, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, STAR_STEP, ScheduleAccessor, server as ServerContract, Types$1 as ServerTypes, Shipload, SubscriptionsManager, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, token as TokenContract, VOTE_NOT_CITIZEN, VOTE_READY_DEFAULT_MAX, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WEIGHT_FP_SCALE, WH, WOULD_OVERFILL, WOULD_STRAND, W_EFF_ATOMIC_PER_UNIT, WebSocketConnection, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, abundantMaskFor, addressFromCoordinates, allBuildableItems, allCategoryIndexes, allPlotBuildableItems, allocateProportional, appliedTaskCount, applyCapacityTier, applyResourceTierMultiplier, atomicToPoints, availableBuildMethods, availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, bookingReceiptLandsAtMs, bookingReceiptRuntimeSeconds, buildComponentImmutable, buildDemand, buildEntityDescription, buildEntityImmutable, buildGatherPlan, buildImmutableData, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcClusterIntake, calcClustercraftDuration, calcCounterpartDelivery, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_build_duration, calc_build_energy, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_group_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calc_travel_flighttime, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canCatch, canMove, canStoreCargo, cancelEligibility, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capacityTierMultiplier, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLauncher, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoInputKey, cargoItem, cargoItemToStack, cargoKey, cargoReadyAt, cargoRef, cargoUtils, categoryAtIndex, categoryColors, categoryFromIndex, categoryIndex, categoryLabel, categoryLabelFromIndex, charterBuildingEntity, charterEligible, charterEligibleChained, charterGateNodeFor, charterIneligible, charterMetadata, charterModuleCount, charterName, charterNode, charterPrereqsMet, charterRungValue, charterSignature, charterSingletonMandate, charterSummary, citizenryName, citizenryPatternCount, civicBuildingFor, civicBuildingKind, civicBuildingLabel, civicDropoffDuration, civicHullItem, civicLoader, civicModuleItemFor, civicShuttleBays, civicStatLabel, civicStatModuleType, civicTransfersAtCap, civicTransfersFrom, clusterStockAvailable, compareByStars, componentBaseAtomic, componentEffortAtomic, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityContainer, computeBaseCapacityDepot, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeBatteryCapabilities, computeBuilderCapabilities, computeBuilderDrain, computeBuilderSpeed, computeComponentStats, computeContainerCapabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeDepotHullCapabilities, computeEffectiveModuleStat, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeFreeCells, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerEfficiency, computeInputMass, computeLauncherCapabilities, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeTravelDrain, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, contractRouteHeuristic, contractRouteLegCost, contributeDuration, contributeDurationForTonnes, coordsToLocationId, craftEnergyCost, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decayActive, decodeAddress, decodeAtomicAsset, decodeBookingReceipt, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, Shipload as default, demandRoll, depotTransferDuration, deriveDemand, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, derivedLoaders, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, eligibleCharters, eligibleUpgrades, emptyCivicModules, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, entityDisplayName, entityToRouteMover, estimateDealTravelTime, estimateTravelTime, estimateUnwrapDuration, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findCivicStatDef, findDecomp, findNearbyPlanets, fitCivicModules, flightSpeedFactor, formatInfluence, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatNeedMultiplier, formatTier, gatherEnergyCost, gathererDepthForTier, getAllRecipes, getBaseHullmassFor, getCapabilityAttributeRows, getCapabilityAttributes, getCategoryInfo, getComponentDemand, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getProducersForAttribute, getRecipe, getRecipeConsumers, getResourceDemand, getResourceTier, getResourceWeight, getResources, getStatCount, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasIncomingCoupling, hasLoaders, hasMass, hasSchedule, hasSourceCoupling, hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, hydrateEntityLanes, incomingHoldMass, incomingSources, influenceWeightKey, interpolateFlightPosition, isAbundant, isAcute, isBuildable, isCivicEntity, isCivicKind, isConstructionDock, isContainer, isCraftedItem, isDepot, isExtractor, isFactory, isFull, isFullFromMass, isGatherableLocation, isHub, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isSettling, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, isWorkshop, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, itemTypeIndex, jobDeposited, jobStatus, jobStatusLabel, jobsToLanes, kindCan, lackingMaskFrom, laneKeyForModule, lerp$1 as lerp, locationIdToCoords, makeEntity, mapEntity, maxCraftable, maxQtyForCharge, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, nearbyWormholes, needForCategory, needMultiplier, needsRecharge, normalizeActive, normalizeDisplayName, parseWireEntity, partnerRegion, pendingCivicTransfers, pickAcuteCategory, pickFabricator, planParallelTransfer, planRoute, planRouteWithRetry, planSingleGather, poolKey, popcount5, previewCharterGrants, pricingFromWeights, projectBallot, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, projectedPeakCargomass, qualityFactor, raiseCivicStat, rawScheduleEnd, readCommonBase, receiveFits, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneBuilder, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, resourceValueAtomic, rollTier, rollWithinTier, rollupBuilder, rollupCrafter, rollupGatherer, rollupLoaders, romanNumeral, rotation, schedule, sdkSystemGraph, selectCivicShuttleBay, selectGatherLane, setSubscriptionsDebug, simulateRoute, slotAcceptsModule, socketTail, sourceLabelForOutput, splitCost, splitJobCargo, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, statsSumSq, subtractFromStacks, taskCargoChanges, taskCargoChangesChecked, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, tryGetItem, typeLabel, unappliedTasks, unwrapLoadDuration, unwrapTransitDuration, usedInputStatKeys, validateDisplayName, validateSchedule, valueCargoItem, valueContribution, weightedQualityAtomic, workerLaneKey, wormholeAt, wormholeAtRegionEndpoint, wrapCostKey, yieldThresholdAt };
|
|
26694
|
+
export { ALL_ENTITY_TYPES, ATOMICASSETS_ACCOUNT, ActionsManager, BALLOT_CHARTER, BALLOT_MAX_PICKS, BALLOT_NONE_DUE, BALLOT_NOT_DUE, BALLOT_SETTLING, BAR_SEED, BAR_STEP_DOWN, BAR_STEP_UNIT, BAR_STEP_UP, BASE_HAUL_PENALTY_MILLI$1 as BASE_HAUL_PENALTY_MILLI, BASE_ORBITAL_MASS, BLEND_INPUTS_MUST_MATCH, BLEND_REQUIRES_MULTIPLE, BLEND_STAT_LESS_NOT_SUPPORTED, BalancesManager, CANCEL_CONTAINS_GROUPED_TASK, CAPACITY_TIER_TABLE, CAP_CATCH, CAP_DEMOLISH, CAP_MODULES, CAP_STORE_CARGO, CAP_UNDEPLOY, CAP_WRAP, CATEGORY_LABELS, CHARTER_BASELINE_STAT, CHARTER_INELIGIBILITY_MESSAGES, CHARTER_MAX_GRANTS, CHARTER_MAX_PREREQS, CHARTER_NONE, CHARTER_REGISTRY, CHARTER_RUNG_STEP, CHARTER_WORKSHOP, CHARTER_WORKSHOP_COST, CIVIC_DEPOT, CIVIC_DOCK, CIVIC_GRANT_ADVANCEMENT, CIVIC_GRANT_LEVEL_GATE, CIVIC_GRANT_MODULE, CIVIC_GRANT_NONE, CIVIC_GRANT_RUNG, CIVIC_LOADER_STAT, CIVIC_LOADER_TIER, CIVIC_NEXUS, CIVIC_SPEED_CAP, CIVIC_STAT_BUILD_SPEED, CIVIC_STAT_CRAFT_SPEED, CIVIC_STAT_DEFS, CIVIC_STAT_NONE, CIVIC_STAT_STORAGE_CAPACITY, CIVIC_STAT_TRANSFER_SPEED, CIVIC_TRANSFER_PER_PLAYER_CAP, CIVIC_WORKSHOP, CIVIC_WORLD, COMMIT_ALREADY_SET, COMMIT_CANNOT_MATCH, COMMIT_NOT_SET, COMPANY_NOT_FOUND, COMPONENT_TIER_PREFIXES, CONTAINER_NOT_FOUND, CONTAINER_Z, COORD_MAX, COORD_MIN, COORD_OFFSET, CRAFT_ENERGY_DIVISOR, CRAFT_EXCEEDS_ENERGY_CAPACITY, CRAFT_NOT_ENOUGH_ENERGY, CancelBlockReason, ClusterManager, ConstructionManager, Coordinates, DECAY_MAX_ITERATIONS, DECAY_RETAIN_DEN, DECAY_RETAIN_NUM, DECOMP_MAX_BUCKETS, DECOMP_MAX_DEPTH, DECOMP_PROCESSED_MASS_MAX, DECOMP_RAW_MASS_MAX, DECOMP_REGISTRY, DEFAULT_BASE_HULLMASS, DEFAULT_ORBITAL_Z, DEMAND_TRIPLE_SEED, DEPLOY_ENTITY_HAS_SCHEDULE, DEPOT_LOADER_SLOT, DEPTH_THRESHOLD_T1, DEPTH_THRESHOLD_T2, DEPTH_THRESHOLD_T3, DEPTH_THRESHOLD_T4, DEPTH_THRESHOLD_T5, DESTINATION_CAPACITY_EXCEEDED, ENGINE_DRAIN_BASE, ENGINE_DRAIN_REF_THM, ENGINE_DRAIN_REF_THRUST, ENTITY_ALREADY_THERE, ENTITY_ASSEMBLY_YARD, ENTITY_CAPACITY_EXCEEDED, ENTITY_CARGO_NOT_LOADED, ENTITY_CARGO_NOT_OWNED, ENTITY_CONSTRUCTION_DOCK, ENTITY_CONTAINER, ENTITY_DEPOT, ENTITY_EXTRACTOR, ENTITY_FACTORY, ENTITY_HUB, ENTITY_INVALID_CARGO, ENTITY_INVALID_DESTINATION, ENTITY_INVALID_TRAVEL_DURATION, ENTITY_NEXUS, ENTITY_NOT_ENOUGH_ENERGY, ENTITY_NOT_ENOUGH_ENERGY_CAPACITY, ENTITY_NO_CRAFTER, ENTITY_SHIP, ENTITY_WAREHOUSE, ENTITY_WORKSHOP, EPOCH_NON_ZERO, EPOCH_NOT_READY, ERROR_SYSTEM_ALREADY_INITIALIZED, ERROR_SYSTEM_DISABLED, ERROR_SYSTEM_NOT_INITIALIZED, EntitiesManager, Entity, EntityClass, EntityInventory, EpochsManager, fund as FundContract, FundManager, Types$3 as FundTypes, GAME_NOT_FOUND, GAME_SEED_NOT_SET, GATHERER_DEPTH_MAX_TIER, GATHERER_DEPTH_TABLE, GATHER_EXCEEDS_ENERGY_CAPACITY, GATHER_MASS_DIVISOR, GATHER_NOT_ENOUGH_ENERGY, GRADE_PREMIUM, GRADE_STANDARD, GROUP_DUPLICATE_ENTITY, GROUP_EMPTY, GROUP_ENTITY_NOT_MOVABLE, GROUP_HAUL_CAPACITY_EXCEEDED, GROUP_NOT_FOUND, GROUP_NOT_SAME_LOCATION, GROUP_NOT_SAME_OWNER, GROUP_NO_THRUST, GameState, HAULER_EFFICIENCY_DENOM$1 as HAULER_EFFICIENCY_DENOM, HoldKind, INFLUENCE_ATOMIC_PER_POINT, INFLUENCE_D1_SEED, INFLUENCE_MASS_MAX, INFLUENCE_NEED_FP_MAX, INFLUENCE_WEIGHT_FP_MAX, INSUFFICIENT_BALANCE, INSUFFICIENT_ITEM_QUANTITY, INSUFFICIENT_ITEM_SUPPLY, INTAKE_RATE, INVALID_AMOUNT, ITEM_ASSEMBLY_YARD_T2_PACKED, ITEM_BATTERY_T1, ITEM_BATTERY_T2, ITEM_BEAM, ITEM_BEAM_T2, ITEM_BIOMASS_T1, ITEM_BIOMASS_T10, ITEM_BIOMASS_T2, ITEM_BIOMASS_T3, ITEM_BIOMASS_T4, ITEM_BIOMASS_T5, ITEM_BIOMASS_T6, ITEM_BIOMASS_T7, ITEM_BIOMASS_T8, ITEM_BIOMASS_T9, ITEM_BUILDER_T1, ITEM_BUILDER_T2, ITEM_CERAMIC, ITEM_CERAMIC_T2, ITEM_CONSTRUCTION_DOCK_T1_PACKED, ITEM_CONTAINER_T1_PACKED, ITEM_CONTAINER_T2_PACKED, ITEM_CRAFTER_T1, ITEM_CRAFTER_T2, ITEM_CRYSTAL_T1, ITEM_CRYSTAL_T10, ITEM_CRYSTAL_T2, ITEM_CRYSTAL_T3, ITEM_CRYSTAL_T4, ITEM_CRYSTAL_T5, ITEM_CRYSTAL_T6, ITEM_CRYSTAL_T7, ITEM_CRYSTAL_T8, ITEM_CRYSTAL_T9, ITEM_DEPOT_T1_PACKED, ITEM_DOES_NOT_EXIST, ITEM_DREDGER_T2A_PACKED, ITEM_ENGINE_T1, ITEM_ENGINE_T2, ITEM_EXTRACTOR_T2_PACKED, ITEM_FACTORY_T2_PACKED, ITEM_FRAME, ITEM_FRAME_T2, ITEM_GAS_T1, ITEM_GAS_T10, ITEM_GAS_T2, ITEM_GAS_T3, ITEM_GAS_T4, ITEM_GAS_T5, ITEM_GAS_T6, ITEM_GAS_T7, ITEM_GAS_T8, ITEM_GAS_T9, ITEM_GATHERER_T1, ITEM_GATHERER_T2, ITEM_GENERATOR_T1, ITEM_GENERATOR_T2, ITEM_HAULER_T1, ITEM_HAULER_T2, ITEM_HUB_T2_PACKED, ITEM_LAUNCHER_T1, ITEM_LOADER_T1, ITEM_LOADER_T2, ITEM_MASS_CATCHER_T1_PACKED, ITEM_MASS_DRIVER_T1_PACKED, ITEM_NEXUS_T1_PACKED, ITEM_NOT_AVAILABLE_AT_LOCATION, ITEM_NOT_DEPLOYABLE, ITEM_NOT_PACKED_ENTITY, ITEM_ORE_T1, ITEM_ORE_T10, ITEM_ORE_T2, ITEM_ORE_T3, ITEM_ORE_T4, ITEM_ORE_T5, ITEM_ORE_T6, ITEM_ORE_T7, ITEM_ORE_T8, ITEM_ORE_T9, ITEM_PLASMA_CELL, ITEM_PLASMA_CELL_T2, ITEM_PLATE, ITEM_PLATE_T2, ITEM_POLYMER, ITEM_POLYMER_T2, ITEM_PORTER_T1A_PACKED, ITEM_PROSPECTOR_T1A_PACKED, ITEM_PROSPECTOR_T2A_PACKED, ITEM_PROSPECTOR_T2B_PACKED, ITEM_REACTOR, ITEM_REACTOR_T2, ITEM_REGOLITH_T1, ITEM_REGOLITH_T10, ITEM_REGOLITH_T2, ITEM_REGOLITH_T3, ITEM_REGOLITH_T4, ITEM_REGOLITH_T5, ITEM_REGOLITH_T6, ITEM_REGOLITH_T7, ITEM_REGOLITH_T8, ITEM_REGOLITH_T9, ITEM_RESIN, ITEM_RESIN_T2, ITEM_RESONATOR, ITEM_RESONATOR_T2, ITEM_ROUSTABOUT_T1A_PACKED, ITEM_SENSOR, ITEM_SENSOR_T2, ITEM_SHIP_T1_PACKED, ITEM_SMITH_T1A_PACKED, ITEM_STORAGE_T1, ITEM_STORAGE_T2, ITEM_TENDER_T1A_PACKED, ITEM_TUG_T1A_PACKED, ITEM_TYPE_COMPONENT, ITEM_TYPE_ENTITY, ITEM_TYPE_MODULE, ITEM_TYPE_RESOURCE, ITEM_WAREHOUSE_T2_PACKED, ITEM_WARP_T1, ITEM_WARP_T2, ITEM_WORKSHOP_T1_PACKED, ITEM_WRIGHT_T1A_PACKED, InfluenceManager, InventoryAccessor, JOB_QUEUE_CAP, JobsManager, LANE_BARRIER, LANE_MOBILITY, LOCAL_HALF, LOCATION_MAX_DEPTH, LOCATION_MIN_DEPTH, Location, LocationType, LocationsManager, MASS_STAT_SCALE, MASS_UNITS_PER_TONNE, MAX_LEGS, MAX_ORBITAL_ALTITUDE, MAX_STARS_PER_STAT, MAX_STAR_RATING, MINTREADY_DEFAULT_CAP, MIN_ORBITAL_ALTITUDE, MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL, MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE, MODULE_ANY, MODULE_AUX, MODULE_BATTERY, MODULE_BUILDER, MODULE_CARGO_NOT_FOUND, MODULE_CRAFTER, MODULE_ENGINE, MODULE_ENTITY_BUSY, MODULE_GATHERER, MODULE_GENERATOR, MODULE_HAULER, MODULE_LAUNCHER, MODULE_LOADER, MODULE_NOT_MODULE, MODULE_SLOT_EMPTY, MODULE_SLOT_INVALID, MODULE_SLOT_OCCUPIED, MODULE_STAT_SCALING_ANCHOR, MODULE_STAT_SCALING_POST_ANCHOR_PERCENT, MODULE_STORAGE, MODULE_TIER_PREFIXES, MODULE_TYPE_MISMATCH, MODULE_WARP, NEED_FP_SCALE, index as NFT, NO_SCHEDULE, NftManager, PLANETARY_STRUCTURE_Z, PLANET_SUBTYPE_GAS_GIANT, PLANET_SUBTYPE_ICY, PLANET_SUBTYPE_INDUSTRIAL, PLANET_SUBTYPE_OCEAN, PLANET_SUBTYPE_ROCKY, PLANET_SUBTYPE_TERRESTRIAL, PLAYER_ALREADY_JOINED, PLAYER_NOT_FOUND, PLAYER_NOT_JOINED, PRECISION, platform as PlatformContract, Types$2 as PlatformTypes, Player, PlayersManager, RECIPE_INPUTS_EXCESS, RECIPE_INPUTS_INSUFFICIENT, RECIPE_INPUTS_INVALID, RECIPE_INPUTS_MIXED, RECIPE_NOT_FOUND, REGION_DIV, REGION_PER_AXIS, REQUIRES_MORE_THAN_ONE, REQUIRES_POSITIVE_VALUE, RESERVE_TIERS, RESOLVE_COUNT_EXCEEDS_COMPLETED, RESOURCE_BIOMASS, RESOURCE_CATEGORY_COUNT, RESOURCE_CRYSTAL, RESOURCE_GAS, RESOURCE_ORE, RESOURCE_REGOLITH, RESOURCE_TIER_ADJECTIVES, RESOURCE_TIER_MULT_TENTHS, RefitOp, SECTORS_PER_AXIS, SECTOR_DIV, SHIPLOAD_COLLECTION, SHIP_ALREADY_TRAVELING, SHIP_CANNOT_BUY_TRAVELING, SHIP_CANNOT_CANCEL_TASK, SHIP_CANNOT_UPDATE_TRAVELING, SHIP_NOT_ARRIVED, SHIP_NOT_FOUND, SHIP_NOT_IDLE, SHIP_NOT_OWNED, SHIP_NO_COMPLETED_TASKS, SHIP_NO_TASKS_TO_CANCEL, SLOT_FORMULAS, STAR_STEP, ScheduleAccessor, server as ServerContract, Types$1 as ServerTypes, Shipload, SubscriptionsManager, TIER_ROLL_MAX, TRAVEL_MAX_DURATION, TaskCancelable, TaskType, token as TokenContract, VOTE_NOT_CITIZEN, VOTE_READY_DEFAULT_MAX, WAREHOUSE_ALREADY_AT_LOCATION, WAREHOUSE_NOT_FOUND, WARP_HAS_CARGO, WARP_HAS_SCHEDULE, WARP_NOT_FULL_ENERGY, WARP_NO_CAPABILITY, WARP_OUT_OF_RANGE, WEIGHT_FP_SCALE, WH, WOULD_OVERFILL, WOULD_STRAND, W_EFF_ATOMIC_PER_UNIT, WebSocketConnection, YIELD_FRACTION_DEEP, YIELD_FRACTION_SHALLOW, abundantMaskFor, addressFromCoordinates, allBuildableItems, allCategoryIndexes, allPlotBuildableItems, allocateProportional, appliedTaskCount, applyCapacityTier, applyResourceTierMultiplier, atomicToPoints, availableBuildMethods, availableCapacity, availableCapacityFromMass, availableForItem, baseName, blendCargoStacks, blendComponentStacks, blendCrossGroup, blendStacks, buildComponentImmutable, buildDemand, buildEntityDescription, buildEntityImmutable, buildGatherPlan, buildImmutableData, buildJobCancelRoute, buildMintAssetAction, buildModuleImmutable, buildResourceImmutable, calcCargoItemMass, calcCargoMass, calcClusterIntake, calcClustercraftDuration, calcCounterpartDelivery, calcEnergyUsage, calcStacksMass, calc_acceleration, calc_build_duration, calc_build_energy, calc_craft_duration, calc_craft_energy, calc_energyusage, calc_flighttime, calc_gather_duration, calc_gather_energy, calc_gather_rate, calc_group_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_onesided_duration, calc_orbital_altitude, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_mass, calc_ship_rechargetime, calc_transfer_duration, calc_transit_duration, calc_travel_flighttime, calculateFlightTime, calculateLoadTimeBreakdown, calculateRefuelingTime, calculateTransferTime, canCatch, canMove, canStoreCargo, cancelEligibility, candidateCivicDepositWindow, candidateLaneCompletesAt, capabilityAttributes, capabilityNames, capacityTierMultiplier, capsHasCrafter, capsHasGatherer, capsHasHauler, capsHasLauncher, capsHasLoaders, capsHasMass, capsHasMovement, capsHasStorage, cargoInputKey, cargoItem, cargoItemToStack, cargoKey, cargoReadyAt, cargoRef, cargoUtils, categoryAtIndex, categoryColors, categoryFromIndex, categoryIndex, categoryLabel, categoryLabelFromIndex, charterBuildingEntity, charterEligible, charterEligibleChained, charterGateNodeFor, charterIneligible, charterMetadata, charterModuleCount, charterName, charterNode, charterPrereqsMet, charterRungValue, charterSignature, charterSingletonMandate, charterSummary, citizenryName, citizenryPatternCount, civicBuildingFor, civicBuildingKind, civicBuildingLabel, civicDropoffDuration, civicHullItem, civicLoader, civicModuleItemFor, civicShuttleBays, civicStatLabel, civicStatModuleType, civicTransfersAtCap, civicTransfersFrom, clusterStockAvailable, compareByStars, componentBaseAtomic, componentEffortAtomic, componentIcon, composeIdleResolve, computeBaseCapacity, computeBaseCapacityContainer, computeBaseCapacityDepot, computeBaseCapacityShip, computeBaseCapacityWarehouse, computeBaseHullmass, computeBatteryCapabilities, computeBuilderCapabilities, computeBuilderDrain, computeBuilderSpeed, computeComponentStats, computeContainerCapabilities, computeCraftedOutputStats, computeCrafterCapabilities, computeCrafterDrain, computeCrafterSpeed, computeDepotHullCapabilities, computeEffectiveModuleStat, computeEngineCapabilities, computeEngineDrain, computeEngineThrust, computeEntityCapabilities, computeEntityStats, computeFreeCells, computeGathererCapabilities, computeGathererDepth, computeGathererDrain, computeGathererYield, computeGeneratorCap, computeGeneratorCapabilities, computeGeneratorRech, computeGroupPerLegReach, computeHaulPenalty, computeHaulerCapabilities, computeHaulerCapacity, computeHaulerEfficiency, computeInputMass, computeLauncherCapabilities, computeLoaderCapabilities, computeLoaderMass, computeLoaderThrust, computeNftImageUrl, computePerLegReach, computeShipHullCapabilities, computeStorageCapabilities, computeTravelDrain, computeWarehouseHullCapabilities, computeWarpCapabilities, computeWarpRange, contractRouteHeuristic, contractRouteLegCost, contributeDuration, contributeDurationForTonnes, coordsToLocationId, craftEnergyCost, createInventoryAccessor, createProjectedEntity, createScheduleAccessor, decayActive, decodeAddress, decodeAtomicAsset, decodeCraftedItemStats, decodeRegion, decodeSector, decodeStat, decodeStats, decodeWindowReceipt, Shipload as default, demandRoll, depotTransferDuration, deriveDemand, deriveLocation, deriveLocationSize, deriveLocationStatic, deriveResourceStats, deriveStatMappings, deriveStrata, deriveStratum, derivedLoaders, describeItem, describeModule, describeModuleForItem, describeModuleForSlot, deserializeAsset, deserializeAtomicData, deserializeComponent, deserializeEntity, deserializeModule, deserializeResource, displayName, distanceBetweenCoordinates, distanceBetweenPoints, easeFlightProgress, eligibleCharters, eligibleUpgrades, emptyCivicModules, encodeAddress, encodeAddressMemo, encodeGatheredCargoStats, encodeRegion, encodeSector, encodeStats, energyAtTime, energyPercent, entityDisplayName, entityToRouteMover, estimateDealTravelTime, estimateTravelTime, estimateUnwrapDuration, feistel, feistelInv, fetchAtomicAssetsForOwner, fetchAtomicSchemas, filterByBuildMethod, findCivicStatDef, findDecomp, findNearbyPlanets, fitCivicModules, flightSpeedFactor, formatInfluence, formatLocation, formatMass, formatMassDelta, formatMassScaled, formatModuleLine, formatNeedMultiplier, formatTier, gatherEnergyCost, gathererDepthForTier, getAllRecipes, getBaseHullmassFor, getCapabilityAttributeRows, getCapabilityAttributes, getCategoryInfo, getComponentDemand, getComponents, getCurrentEpoch, getDepthThreshold, getDestinationLocation, getEffectiveReserve, getEligibleResources, getEntityClass, getEntityItems, getEntityLayout, getEpochInfo, getFlightOrigin, getInterpolatedPosition, getItem, getItems, getKindMeta, getLocationCandidates, getLocationKind, getLocationProfile, getLocationType, getLocationTypeName, getModuleCapabilityType, getModules, getPackedEntityType, getPlanetSubtype, getPlanetSubtypes, getPositionAt, getProducersForAttribute, getRecipe, getRecipeConsumers, getResourceDemand, getResourceTier, getResourceWeight, getResources, getStatCount, getStatDefinitions, getStatMappings, getStatMappingsForCapability, getStatMappingsForStat, getStatName, getSystemName, getTemplateMeta, hasEnergy, hasEnergyForDistance, hasGatherer, hasIncomingCoupling, hasLoaders, hasMass, hasSchedule, hasSourceCoupling, hasSpace, hasSpaceForMass, hasStorage, hasSystem, hash, hash512, hydrateEntityLanes, incomingHoldMass, incomingSources, influenceWeightKey, interpolateFlightPosition, isAbundant, isAcute, isAssemblyYard, isBuildable, isCivicEntity, isCivicKind, isConstructionDock, isContainer, isCraftedItem, isDepot, isExtractor, isFactory, isFull, isFullFromMass, isGatherableLocation, isHub, isInvertedAttribute, isLocationBuildable, isModuleItem, isNexus, isPlot, isPlotBuildable, isRelatedItem, isSettling, isShip, isSubscriptionsDebugEnabled, isValidWormholePair, isWarehouse, isWorkshop, itemAbbreviations, itemCategory, itemIds, itemOffset, itemTier, itemTypeCode, itemTypeIndex, jobCancelRoute, jobCancellable, jobCancellationBlockReason, jobDeposited, jobDropoffTask, jobStatus, jobStatusLabel, jobsToLanes, kindCan, lackingMaskFrom, laneKeyForModule, lerp$1 as lerp, locationIdToCoords, makeEntity, mapEntity, maxCraftable, maxQtyForCharge, maxTravelDistance, mergeStacks, moduleAccepts, moduleDisplayName, moduleIcon, moduleSlotTypeToCode, nearbyWormholes, needForCategory, needMultiplier, needsRecharge, normalizeActive, normalizeDisplayName, parseWireEntity, partnerRegion, pendingCivicTransfers, pickAcuteCategory, pickFabricator, pickupsInFlight, planParallelTransfer, planRoute, planRouteWithRetry, planSingleGather, poolKey, popcount5, previewCharterGrants, pricingFromWeights, projectBallot, projectEntity, projectEntityAt, projectRemainingAt, projectedCargoAvailableAt, projectedPeakCargomass, qualityFactor, raiseCivicStat, rawScheduleEnd, readCommonBase, receiveFits, regionOf, removeFromStacks, renderDescription, resolveItem, resolveItemCategory, resolveLaneBuilder, resolveLaneCrafter, resolveLaneGatherer, resolveLaneLoader, resolveLockedAmount, resolveStats, resourceValueAtomic, rollTier, rollWithinTier, rollupBuilder, rollupCrafter, rollupGatherer, rollupLoaders, romanNumeral, rotation, schedule, sdkSystemGraph, selectCivicShuttleBay, selectGatherLane, setSubscriptionsDebug, simulateRoute, slotAcceptsModule, socketTail, sourceLabelForOutput, splitCost, splitJobCargo, stackKey, stackToCargoItem, stacksEqual, starRating, starsForStat, statMagnitude, statsSumSq, subtractFromStacks, taskCargoChanges, taskCargoChangesChecked, taskCargoEffect, tierAdjective, tierColors, tierOfReserve, toLocation, tryGetItem, typeLabel, unappliedTasks, unwrapLoadDuration, unwrapTransitDuration, usedInputStatKeys, validateDisplayName, validateSchedule, valueCargoItem, valueContribution, weightedQualityAtomic, windowReceiptCompletesAtMs, windowReceiptStartsAtMs, workerLaneKey, workshopAvailability, wormholeAt, wormholeAtRegionEndpoint, wrapCostKey, yieldThresholdAt };
|
|
26213
26695
|
//# sourceMappingURL=shipload.m.js.map
|