@shipload/sdk 1.0.0-next.50 → 1.0.0-next.52
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 +544 -149
- package/lib/shipload.js +2424 -448
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2390 -447
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +131 -7
- package/lib/testing.js +469 -11
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +470 -12
- package/lib/testing.m.js.map +1 -1
- package/package.json +1 -1
- package/src/capabilities/crafting.ts +10 -1
- package/src/capabilities/gathering.ts +1 -1
- package/src/capabilities/hauling.ts +0 -5
- package/src/capabilities/modules.ts +6 -0
- package/src/capabilities/movement.ts +1 -1
- package/src/contracts/server.ts +315 -8
- package/src/data/capabilities.ts +11 -2
- package/src/data/entities.json +235 -20
- package/src/data/item-ids.ts +10 -0
- package/src/data/items.json +61 -0
- package/src/data/kind-registry.json +53 -1
- package/src/data/kind-registry.ts +5 -0
- package/src/data/metadata.ts +74 -5
- package/src/data/recipes-runtime.ts +1 -0
- package/src/data/recipes.json +887 -118
- package/src/derivation/capabilities.test.ts +81 -4
- package/src/derivation/capabilities.ts +162 -57
- package/src/derivation/crafting.ts +2 -0
- package/src/derivation/recipe-usage.test.ts +10 -7
- package/src/derivation/rollups.ts +16 -0
- package/src/derivation/stat-scaling.ts +12 -0
- package/src/entities/makers.ts +10 -1
- package/src/index-module.ts +33 -3
- package/src/managers/actions.ts +89 -44
- package/src/managers/construction-types.ts +2 -2
- package/src/managers/construction.ts +15 -15
- package/src/managers/plot.ts +1 -1
- package/src/nft/buildImmutableData.ts +55 -9
- package/src/nft/description.ts +99 -36
- package/src/planner/planner.test.ts +50 -41
- package/src/resolution/resolve-item.test.ts +1 -1
- package/src/resolution/resolve-item.ts +26 -11
- package/src/scheduling/availability.ts +7 -6
- package/src/scheduling/cancel.test.ts +40 -6
- package/src/scheduling/cancel.ts +21 -29
- package/src/scheduling/jobs.ts +71 -0
- package/src/scheduling/lanes.ts +29 -0
- package/src/scheduling/projection.ts +42 -25
- package/src/scheduling/task-cargo.ts +1 -1
- package/src/testing/projection-parity.ts +2 -2
- package/src/travel/reach.ts +4 -6
- package/src/travel/route-planner.ts +60 -49
- package/src/travel/route-simulator.ts +170 -0
- package/src/travel/travel.ts +40 -5
- package/src/types/capabilities.ts +9 -3
- package/src/types.ts +8 -3
- package/src/managers/flatten-gather-plan.test.ts +0 -80
package/lib/shipload.js
CHANGED
|
@@ -448,7 +448,7 @@ var platform = /*#__PURE__*/Object.freeze({
|
|
|
448
448
|
Contract: Contract$1
|
|
449
449
|
});
|
|
450
450
|
|
|
451
|
-
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDi/AQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAwJpZAZ1aW50NjQIbGFuZV9rZXkFdWludDgFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1fcm93AAEFb3duZXIEbmFtZQljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYEc2xvdAxjbHVzdGVyX3Nsb3QMY2xhaW1zdGFydGVyAAEFb3duZXIEbmFtZQljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4BmNvbW1pdAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZjb21taXQLY2hlY2tzdW0yNTYKY29tbWl0X3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGY29tbWl0C2NoZWNrc3VtMjU2CWNvbmZpZ2xvZwABBmNvbmZpZwtnYW1lX2NvbmZpZwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8FY3JhZnQABgJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwxjcmFmdGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQADAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmBHNsb3QNY2x1c3Rlcl9zbG90PwpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAWBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwAMAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBWxhbmVzBmxhbmVbXQVob2xkcwZob2xkW10OZW50aXR5X3NlcV9yb3cAAQduZXh0X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQQZm9vdHByaW50X3Jlc3VsdAABBWNlbGxzC2dyaWRfY2VsbFtdC2ZvcmNlcmV2ZWFsAAEFZXBvY2gGdWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2DGdlbmVzaXNmbGVldAABCGVudGl0aWVzDGVudGl0eV9yb3dbXQpnZXRjbHVzdGVyAAEGaHViX2lkBnVpbnQ2NAlnZXRjb25maWcAAApnZXRkZXBvc2l0AAIFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQLZ2V0ZGlzdGFuY2UABAJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAtnZXRlbGlnaWJsZQACBmNvb3Jkcwtjb29yZGluYXRlcwdzdHJhdHVtBnVpbnQxNglnZXRlbnRjbHMAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAxnZXRmb290cHJpbnQAAQdpdGVtX2lkBnVpbnQxNgtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtnZXR3b3JtaG9sZQACAXgFaW50NjQBeQVpbnQ2NAlncmlkX2NlbGwAAgJneARpbnQ4Amd5BGludDgMZ3JvdXB0cmFuc2l0AAUIZW50aXRpZXMMZW50aXR5X3JlZltdAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMABAhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MzIQY2FwYWNpdHlfYnlfdGllchFoYXVsZXJfdGllcl9jYXBbXQ9oYXVsZXJfdGllcl9jYXAAAgR0aWVyBXVpbnQ4CGNhcGFjaXR5BXVpbnQ4BGhvbGQABQJpZAZ1aW50NjQEa2luZAV1aW50OAtjb3VudGVycGFydAplbnRpdHlfcmVmBXVudGlsCnRpbWVfcG9pbnQNaW5jb21pbmdfbWFzcwZ1aW50MzILaW1wb3J0Y2FyZ28AAQNyb3cJY2FyZ29fcm93DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRwbGF5ZXIAAQVvd25lcgRuYW1lDWltcG9ydHJlc2VydmUAAgtlcG9jaF9zY29wZQZ1aW50MzIDcm93C3Jlc2VydmVfcm93C2ltcG9ydHN0YXRlAAEDcm93CXN0YXRlX3JvdwhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAQl0aHJlc2hvbGQFdWludDgKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lD3Byb2plY3RlZF9zdGF0ZQAQBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10MbG9hZGVyX2xhbmVzDWxvYWRlcl9sYW5lW10IbGF1bmNoZXIPbGF1bmNoZXJfc3RhdHM/BHRpZXIFdWludDgIcmVjaGFyZ2UAAQJpZAZ1aW50NjQMcmVjaXBlX2lucHV0AAIHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyEHJlY2lwZV9pdGVtX2luZm8AAgJpZAZ1aW50MTYEbWFzcwZ1aW50MzIPcmVjaXBlX3Jlc3BvbnNlAAgOb3V0cHV0X2l0ZW1faWQGdWludDE2C291dHB1dF9tYXNzBnVpbnQzMgZpbnB1dHMOcmVjaXBlX2lucHV0W10Kc3RhdF9zbG90cxRzdGF0X3Nsb3RfcmVzcG9uc2VbXQ1ibGVuZF93ZWlnaHRzBWJ5dGVzC291dHB1dF9pdGVtEHJlY2lwZV9pdGVtX2luZm8LaW5wdXRfaXRlbXMScmVjaXBlX2l0ZW1faW5mb1tdD3NvdXJjZV9zdWJjbGFzcwd1aW50MTY/DnJlY2lwZXNfcmVzdWx0AAEHcmVjaXBlcxFyZWNpcGVfcmVzcG9uc2VbXQxyZWZyc2hlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DHJlbW92ZW9yYWNsZQABCW9yYWNsZV9pZARuYW1lBnJlbmFtZQACAmlkBnVpbnQ2NARuYW1lBnN0cmluZwtyZXNlcnZlX3JvdwAFAmlkBnVpbnQ2NAhjb29yZF9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlB3Jlc29sdmUAAgJpZAZ1aW50NjQFY291bnQHdWludDY0Pw9yZXNvbHZlX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUOcmVzb2x2ZWRfY291bnQGdWludDMyFG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CnJlc29sdmVhbGwAAQVvd25lcgRuYW1lEnJlc29sdmVhbGxfcmVzdWx0cwACB3NjYW5uZWQGdWludDMyCHJlc29sdmVkBnVpbnQzMg1yZXNvdXJjZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgOcmVzb3VyY2Vfc3RhdHMAAwVzdGF0MQZ1aW50MTYFc3RhdDIGdWludDE2BXN0YXQzBnVpbnQxNhByZXNvdXJjZXNfcmVzdWx0AAEJcmVzb3VyY2VzD3Jlc291cmNlX2luZm9bXQZyZXZlYWwAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGcmV2ZWFsC2NoZWNrc3VtMjU2CnJldmVhbF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBnJldmVhbAtjaGVja3N1bTI1NghybW1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4CnRhcmdldF9yZWYKY2FyZ29fcmVmPwhybW5mdGNmZwABB2l0ZW1faWQGdWludDE2CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzY2hlbWFfZmllbGQAAgRuYW1lBnN0cmluZwpmaWVsZF90eXBlBnN0cmluZwlzZXRjb29yZHMAAwllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAlzZXRuZnRjZmcAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lDHNldHRocmVzaG9sZAABCXRocmVzaG9sZAV1aW50OAtzZXR3cmFwY29zdAADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjQKc2V0d3JhcGZlZQACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUIc2xvdF9kZWYAAwR0eXBlBXVpbnQ4Cm91dHB1dF9wY3QGdWludDE2CG1heF90aWVyBXVpbnQ4EnN0YXRfc2xvdF9yZXNwb25zZQABB3NvdXJjZXMNc3RhdF9zb3VyY2VbXQtzdGF0X3NvdXJjZQACC2lucHV0X2luZGV4BXVpbnQ4EGlucHV0X3N0YXRfaW5kZXgFdWludDgJc3RhdGVfcm93AAMHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZghzd2FwdGlsZQAFBmh1Yl9pZAZ1aW50NjQEYV9neARpbnQ4BGFfZ3kEaW50OARiX2d4BGludDgEYl9neQRpbnQ4BHRhc2sACgR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10MZW50aXR5dGFyZ2V0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDMyPwRob2xkB3VpbnQ2ND8OdGFyZ2V0X2l0ZW1faWQHdWludDE2Pwp0YXNrX2V2ZW50AAoKZXZlbnRfdHlwZQV1aW50OAVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAp0YXNrX2luZGV4BnVpbnQzMgR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MzI/CGxhbmVfa2V5BXVpbnQ4DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXRF0ZW1wbGF0ZV9tZXRhX3JvdwADB2l0ZW1faWQGdWludDE2BGtpbmQEbmFtZQ1kaXNwbGF5X2xhYmVsBnN0cmluZwd0cmFuc2l0AAUCaWQGdWludDY0AmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0BnRyYXZlbAAEAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABQJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcVbmZ0X2l0ZW1fcGF5bG9hZF90eXBlEG5mdF9pdGVtX3BheWxvYWQIdW5kZXBsb3kAAgdob3N0X2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0BnVubG9hZAADAmlkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdB3VwZ3JhZGUABQpidWlsZGVyX2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgZpbnB1dHMMY2FyZ29faXRlbVtdBHNsb3QGdWludDg/BHdhcnAAAwJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIEd2lwZQAADXdvcm1ob2xlX2luZm8AAwZjb29yZHMLY29vcmRpbmF0ZXMLaXNfd29ybWhvbGUEYm9vbAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcw53cmFwY29uZmlnX3JvdwACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NGEAAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAADINFbpTEQJY2xhaW1wbG90AHBVviZj6UxEDGNsYWltc3RhcnRlcgAAAKgb32lURAljbGVhbnJzdnDsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhbnJzdnAKc3VtbWFyeTogJ0NsZWFuIHVwIHBhc3QgZXBvY2ggcmVzZXJ2ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVyYXNlIHJlc2VydmUgdGFibGUgcm93cyBmcm9tIGEgcGFzdCBlcG9jaC4gQ2Fubm90IGNsZWFuIHRoZSBjdXJyZW50IG9yIGZ1dHVyZSBlcG9jaHMuIFRoZSBtYXhfcm93cyBwYXJhbWV0ZXIgY2FwcyB0aGUgbnVtYmVyIG9mIHJvd3MgZXJhc2VkIHBlciBjYWxsIHRvIGxpbWl0IENQVSB1c2FnZS4AgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl07AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgAAYDQytyZFCWNvbmZpZ2xvZ90CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbmZpZ2xvZwpzdW1tYXJ5OiAnTG9nIGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbG9ncyB0aGUgY3VycmVudCBnYW1lIGNvbmZpZ3VyYXRpb24uIENhbGxlZCBpbmxpbmUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24gdG8gYnJvYWRjYXN0IGNvbmZpZyB2aWEgYWN0aW9uIHRyYWNlcy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAACAvMxFBWNyYWZ0yAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY3JhZnQKc3VtbWFyeTogJ0NyYWZ0IGl0ZW1zIGZyb20gYSByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRyYW5zZm9ybSBjYXJnbyBpdGVtcyBpbnRvIGEgbmV3IGl0ZW0gdXNpbmcgYSByZWNpcGUuIFRoZSBlbnRpdHkgbXVzdCBoYXZlIGEgY3JhZnRlciBtb2R1bGUgaW5zdGFsbGVkLiBDb25zdW1lcyBlbmVyZ3kgYW5kIHNjaGVkdWxlcyBhIGNyYWZ0aW5nIHRhc2sgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiB0b3RhbCBpbnB1dCBtYXNzIGFuZCBjcmFmdGVyIHNwZWVkLiBJbnB1dCBxdWFudGl0aWVzIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcmVjaXBlIHJlcXVpcmVtZW50cy4AAAANu0ilSghkZW1vbGlzaPEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlbW9saXNoCnN1bW1hcnk6ICdEZW1vbGlzaCBhIHN0YXRpb25hcnkgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpEZWNvbW1pc3Npb24gYW4gZW50aXR5LCBlcmFzaW5nIGl0IGZyb20gdGhlIGdhbWUuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlLCBoYXZlIGVtcHR5IGNhcmdvLCBhbmQgaGF2ZSBubyBpbnN0YWxsZWQgbW9kdWxlcyAocmVtb3ZlIGVhY2ggdmlhIHJtbW9kdWxlIGZpcnN0KS4gU2NoZWR1bGVzIGEgZGVtb2xpc2ggdGFzayB0aGF0IGVyYXNlcyB0aGUgZW50aXR5IG9uIHJlc29sdXRpb24uIE9ubHkgdmFsaWQgZm9yIGVudGl0aWVzIHRoYXQgY2Fubm90IG1vdmU7IHVzZSB1bmRlcGxveSBvciB3cmFwZW50aXR5IGZvciB0aGUgcmVzdC4AAAAAeBqrSgZkZXBsb3nsAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXBsb3kKc3VtbWFyeTogJ0RlcGxveSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClVucGFjayBhIHBhY2tlZCBlbnRpdHkgaXRlbSAocGFja2VkIHNoaXAgb3IgcGFja2VkIGNvbnRhaW5lcikgZnJvbSBjYXJnbywgc2NoZWR1bGluZyBhIGRlcGxveSB0YXNrIHRoYXQgY3JlYXRlcyB0aGUgbmV3IGVudGl0eSBhdCB0aGUgZGVwbG95aW5nIGVudGl0eSdzIGxvY2F0aW9uIHVwb24gcmVzb2x1dGlvbi4AgM8uT4WwSgpkZXNjZW50aXR5yQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVzY2VudGl0eQpzdW1tYXJ5OiAnRGVzY3JpYmUgYSBwYWNrZWQgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIGh1bWFuLXJlYWRhYmxlIGRlc2NyaXB0aW9uIHN0cmluZyBmb3IgYSBwYWNrZWQgZW50aXR5LCBkZXJpdmVkIGZyb20gdGhlIGVudGl0eSBpdGVtIGlkLCBodWxsIHN0YXRzLCBhbmQgdGhlIGxpc3Qgb2YgaW5zdGFsbGVkIG1vZHVsZSBpdGVtIGlkcyBhbmQgc3RhdHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZGlzcGxheSBwYWNrZWQgZW50aXRpZXMuAAAAAKh4zFQGZW5hYmxl3QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLoCxkZRdg7pbDGZpeGNhcmdvbWFzc5ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZpeGNhcmdvbWFzcwpzdW1tYXJ5OiAnREVCVUc6IHJlY29tcHV0ZSBlbnRpdHkgY2FyZ28gbWFzcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGFuZCByZXdyaXRlIGFuIGVudGl0eSdzIGNhcmdvIG1hc3MgZnJvbSBpdHMgY3VycmVudCBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LiBBdmFpbGFibGUgZm9yIHJlcGFpcmluZyBkcmlmdCBiZXR3ZWVuIGNhY2hlZCBjYXJnbyBtYXNzIGFuZCB0aGUgdHJ1ZSBtYXNzIGRlcml2ZWQgZnJvbSBjYXJnbyByb3dzLgCiUVtdhS5dC2ZvcmNlcmV2ZWFsvgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZm9yY2VyZXZlYWwKc3VtbWFyeTogJ0RFQlVHOiBmb3JjZS1maW5hbGl6ZSBhbiBlcG9jaCBmcm9tIGV4aXN0aW5nIHJldmVhbHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkZpbmFsaXplIGEgc3R1Y2sgZXBvY2ggYnkgY29tcHV0aW5nIGl0cyBzZWVkIGZyb20gdGhlIHJldmVhbHMgYWxyZWFkeSBzdWJtaXR0ZWQsIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIGNvbmZpZ3VyZWQgdGhyZXNob2xkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIFRoZSBzZWVkIGlzIGRlcml2ZWQgc29sZWx5IGZyb20gdGhlIHByZS1pbWFnZS1sb2NrZWQgcmV2ZWFscyBhbHJlYWR5IG9uIGNoYWluOyBubyBhZG1pbi1zdXBwbGllZCBlbnRyb3B5IGlzIGludHJvZHVjZWQuIFVzZWQgdG8gdW5ibG9jayBlcG9jaCBwcm9ncmVzc2lvbiB3aGVuIHRoZSB0aHJlc2hvbGQgY2Fubm90IG90aGVyd2lzZSBiZSBtZXQuAAAAAFzVsmEGZ2F0aGVylwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2F0aGVyCnN1bW1hcnk6ICdHYXRoZXIgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpHYXRoZXIgcmVzb3VyY2VzIGF0IHRoZSBzaGlwJ3MgY3VycmVudCBsb2NhdGlvbi4gT25seSB3b3JrcyBhdCBnYXRoZXJhYmxlIGxvY2F0aW9uIHR5cGVzLiBTY2hlZHVsZXMgYSBnYXRoZXIgdGFzayB0aGF0IGNvbnN1bWVzIGVuZXJneSBhbmQgeWllbGRzIGNhcmdvIGJhc2VkIG9uIHRoZSBzaGlwJ3MgZ2F0aGVyZXIgc3RhdHMgYW5kIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIGNvbXBvc2l0aW9uLpCVigs7rKZiDGdlbmVzaXNmbGVldKkELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdlbmVzaXNmbGVldApzdW1tYXJ5OiAnTWludCB0aGUgb25lLXRpbWUgZ2VuZXNpcyBmbGVldCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW1wbGFjZSB0aGUgb25lLXRpbWUgZ2VuZXNpcyBmbGVldDogYSBjYWxsZXItc3VwcGxpZWQgc2V0IG9mIGVudGl0aWVzIChzaGlwcywgc3RydWN0dXJlcywgYW5kIGNvbnRhaW5lcnMpIHdyaXR0ZW4gdG8gdGhlIHdvcmxkIGFzLWlzLiBWYWxpZCBvbmx5IGR1cmluZyB0aGUgcHJlLWdlbmVzaXMgd2luZG93LCBiZWZvcmUgZXBvY2ggMSBpcyBmaW5hbGl6ZWQuIFRoZSBzdXBwbGllZCBlbnRpdHkgaWRzIGFyZSBob25vcmVkIGFuZCB0aGUgaWQgc2VxdWVuY2UgaXMgYWR2YW5jZWQgcGFzdCB0aGVtOyBpZCAwIGlzIHJlc2VydmVkIGZvciB0aGUgR2VuZXNpcyBOZXh1cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgDAVRnriLJiCmdldGNsdXN0ZXIAAABgbk2KsmIJZ2V0Y29uZmlnygItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0Y29uZmlnCnN1bW1hcnk6ICdHZXQgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBnYW1lIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGRlZmF1bHQgZW50aXR5IHN0YXRzIGZvciB3YXJlaG91c2VzIGFuZCBjb250YWluZXJzLCBhbmQgdGhlIGZ1bGwgaXRlbSBkZWZpbml0aW9ucyB0YWJsZS4AQHaYVpWyYgpnZXRkZXBvc2l0AAAUmiZjl7JiC2dldGRpc3RhbmNlAABUPI65qLJiC2dldGVsaWdpYmxlyAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZWxpZ2libGUKc3VtbWFyeTogJ0dldCBlbGlnaWJsZSByZXNvdXJjZSBpdGVtIElEcyBhdCBhIGxvY2F0aW9uIGFuZCBzdHJhdHVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbGlzdCBvZiByZXNvdXJjZSBpdGVtIElEcyBlbGlnaWJsZSB0byBiZSBnYXRoZXJlZCBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMgYW5kIHN0cmF0dW0gZGVwdGguIEl0ZW1zIGFyZSBnYXRlZCBieSBib3RoIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIHByb2ZpbGUgYW5kIHRoZSBkZXB0aCB0aHJlc2hvbGQgZm9yIGVhY2ggdGllci4AAMAR5amyYglnZXRlbnRjbHOMAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRjbHMKc3VtbWFyeTogJ0dldCBlbnRpdHkgY2xhc3MgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBlbnRpdHkgY2xhc3MgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoT3JiaXRhbFZlc3NlbCwgUGxhbmV0YXJ5U3RydWN0dXJlKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgZW50aXR5IGNsYXNzIGlkZW50aWZpZXJzLgCwctnlqbJiC2dldGVudGl0aWVzpAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXRpZXMKc3VtbWFyeTogJ0dldCBhbGwgZW50aXRpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGZ1bGwgZW50aXR5IGluZm8gZm9yIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllci4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAADw2eWpsmIJZ2V0ZW50aXR5ogItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXR5CnN1bW1hcnk6ICdHZXQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIGVudGl0eSBpbmNsdWRpbmcgaWRlbnRpdHksIGNhcmdvLCBzY2hlZHVsZSBzdGF0ZSwgYW5kIHR5cGUtc3BlY2lmaWMgZmllbGRzLpCnuzVTurJiDGdldGZvb3RwcmludAAATDZJquyyYgtnZXRpdGVtZGF0YagDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1kYXRhCnN1bW1hcnk6ICdHZXQgZnVsbCBpdGVtIGNhdGFsb2cnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb21wbGV0ZSBpdGVtIGNhdGFsb2cgYXMgdGhlIGNvbnRyYWN0IHNlZXMgaXQsIGluY2x1ZGluZyB0eXBlLCBzdWJ0eXBlLCB0aWVyLCBtYXNzLCBhbmQgb3RoZXIgc3RhdGljIG1ldGFkYXRhLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBjbGllbnRzIHRvIG1pcnJvciB0aGUgY29udHJhY3QncyBpdGVtIGRlZmluaXRpb25zLgAATk6q7LJiCmdldGl0ZW1pZHOGAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtaWRzCnN1bW1hcnk6ICdHZXQgaXRlbSBpZCB0byBuYW1lIG1hcHBpbmdzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBtYXBwaW5nIG9mIGl0ZW0gaWQgY29uc3RhbnRzIHRvIHRoZWlyIGNhbm9uaWNhbCBzdHJpbmcgbmFtZXMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcmVzb2x2ZSBudW1lcmljIGl0ZW0gaWRzIHRvIGh1bWFuLXJlYWRhYmxlIGlkZW50aWZpZXJzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AVPVZquyyYgtnZXRpdGVtdHlwZQCAVfVZquyyYgxnZXRpdGVtdHlwZXOIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtdHlwZXMKc3VtbWFyeTogJ0dldCBpdGVtIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBpdGVtIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAocmVzb3VyY2UsIGNvbXBvbmVudCwgbW9kdWxlLCBlbnRpdHkpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBpdGVtIHR5cGUgaWRlbnRpZmllcnMuAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ5ygMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgYW5kIGZsaWdodCB0aW1lLgCAwubkNbNiCmdldG5mdGJhc2UAAABd0+U1s2IKZ2V0bmZ0aW5mb/ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5mdGluZm8Kc3VtbWFyeTogJ0dldCBORlQgc2NoZW1hIGFuZCB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgQXRvbWljQXNzZXRzIHNjaGVtYXMgYW5kIHRlbXBsYXRlcyB0aGUgZ2FtZSBjb250cmFjdCBleHBlY3RzLCBwbHVzIHRoZSBjdXJyZW50IGBpdGVtX2lkIOKGkiAodGVtcGxhdGVfaWQsIHNjaGVtYV9uYW1lKWAgbWFwcGluZyBzdG9yZWQgaW4gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHN5bmMgYXRvbWljYXNzZXRzIHN0YXRlIHdpdGggdGhlIGNvbnRyYWN0LgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuoLLJ+NFbs2IMZ2V0cHJvanN0YXRlywMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cHJvanN0YXRlCnN1bW1hcnk6ICdHZXQgcHJvamVjdGVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHByb2plY3RlZCBzdGF0ZSBvZiBhbiBlbnRpdHkgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5leHQgdGFza19jb3VudCBzY2hlZHVsZWQgdGFza3MgKG9yIGFsbCB0YXNrcyBpZiB0YXNrX2NvdW50IGlzIG9taXR0ZWQpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHByZXZpZXcgdGhlIHJlc3VsdCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZSB3aXRob3V0IHJlc29sdmluZyBvbi1jaGFpbi4AAFDVIXWzYglnZXRyZWNpcGWmAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGUKc3VtbWFyeTogJ0dldCBhIHNpbmdsZSBjcmFmdGluZyByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSByZWNpcGUgd2hvc2Ugb3V0cHV0IG1hdGNoZXMgdGhlIGdpdmVuIGl0ZW0gaWQsIGluY2x1ZGluZyBpdHMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGlzcGxheSBjcmFmdGluZyByZXF1aXJlbWVudHMuAABW1SF1s2IKZ2V0cmVjaXBlc6wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZXMKc3VtbWFyeTogJ0xpc3QgY3JhZnRpbmcgcmVjaXBlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBjcmFmdGluZyByZWNpcGVzIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBsb3dlciBib3VuZCBvdXRwdXQgaXRlbSBpZCwgdXAgdG8gdGhlIHNwZWNpZmllZCBsaW1pdC4gRWFjaCBlbnRyeSBpbmNsdWRlcyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4AAM4GYXWzYgpnZXRyZXNjYXRzngMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzY2F0cwpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAob3JlLCBnYXMsIHJlZ29saXRoLCBiaW9tYXNzLCBjcnlzdGFsKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgcmVzb3VyY2Ugc3VidHlwZSBpZGVudGlmaWVycy4AsNpXYXWzYgtnZXRyZXNlcnZlc/wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2VydmVzCnN1bW1hcnk6ICdHZXQgY3VycmVudCByZXNlcnZlIG1vZGlmaWNhdGlvbnMgYXQgYSBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgY2hhaW4ncyBtb2RpZmljYXRpb25zIHRvIGRlcml2ZWQgcmVzZXJ2ZXMgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGUgZm9yIHRoZSBjdXJyZW50IGVwb2NoIGFzIGEgbGlzdCBvZiB7c3RyYXR1bSwgcmVtYWluaW5nfSBwYWlycy4gU3RyYXRhIG5vdCBwcmVzZW50IGluIHRoZSByZXNwb25zZSB1c2UgdGhlaXIgZGVyaXZlZCBpbml0aWFsIHJlc2VydmUuIENvbXBvc2Ugd2l0aCBTREsgZGVyaXZhdGlvbiB0byBnZXQgdGhlIGZ1bGwgcGVyLWxvY2F0aW9uIHN0cmF0YSB2aWV3LoAVuppidbNiDGdldHJlc291cmNlc4cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc291cmNlcwpzdW1tYXJ5OiAnR2V0IGFsbCByZXNvdXJjZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHN1YnNldCBvZiBpdGVtcyBjbGFzc2lmaWVkIGFzIHJlc291cmNlcywgaW5jbHVkaW5nIGVhY2ggcmVzb3VyY2UncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGdhdGhlcmFibGUgbWF0ZXJpYWxzLgAAADjTiLNiCGdldHNsb3RzuwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c2xvdHMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc2xvdCBsYXlvdXRzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgbW9kdWxlIHNsb3QgbGF5b3V0IGZvciBldmVyeSBlbnRpdHkgaXRlbSB0eXBlLCBsaXN0aW5nIHRoZSBvcmRlcmVkIHNsb3QgdHlwZXMgYXZhaWxhYmxlIGZvciBtb2R1bGUgaW5zdGFsbGF0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRldGVybWluZSB3aGljaCBtb2R1bGUgdHlwZXMgYXJlIGNvbXBhdGlibGUgd2l0aCBhIGdpdmVuIGVudGl0eSBodWxsLgCA1NncjLNiCmdldHN0cmF0dW3SAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdHJhdHVtCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHJlc291cmNlIHN0cmF0dW0gZGF0YSBmb3IgYSBzcGVjaWZpYyBkZXB0aCBsYXllciBhdCBhIGNvb3JkaW5hdGUsIGluY2x1ZGluZyB0aGUgc3RyYXR1bSBzZWVkIGluZm8gYW5kIGRlcml2ZWQgcmVzb3VyY2Ugc3RhdHMugJW7RkqNs2IMZ2V0c3VtbWFyaWVz6AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0c3VtbWFyaWVzCnN1bW1hcnk6ICdHZXQgZW50aXR5IHN1bW1hcmllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgbGlnaHR3ZWlnaHQgc3VtbWFyaWVzIG9mIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllciBpbmNsdWRpbmcgdHlwZSwgaWQsIG93bmVyLCBuYW1lLCBsb2NhdGlvbiwgYW5kIGlkbGUgc3RhdHVzLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4AVKRNXsqzYgtnZXR3b3JtaG9sZQCQHZ7m5qrpZQxncm91cHRyYW5zaXQAAKLa5uaq6WULZ3JvdXB0cmF2ZWyaBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBncm91cHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBtdWx0aXBsZSBlbnRpdGllcyB0b2dldGhlcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgZ3JvdXAgdHJhdmVsIGZvciBtdWx0aXBsZSBlbnRpdGllcyB0byBhIGRlc3RpbmF0aW9uLiBBbGwgZW50aXRpZXMgbXVzdCBiZSBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhbmQgb3duZWQgYnkgdGhlIGNhbGxlci4gQXQgbGVhc3Qgb25lIGVudGl0eSB3aXRoIGVuZ2luZXMgaXMgcmVxdWlyZWQgdG8gcHJvdmlkZSB0aHJ1c3QuIEZsaWdodCBkdXJhdGlvbiBpcyBjYWxjdWxhdGVkIGZyb20gY29tYmluZWQgdGhydXN0IGFuZCB0b3RhbCBtYXNzIG9mIGFsbCBlbnRpdGllcy4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBmb3IgYXRvbWljIHJlc29sdXRpb24gYW5kIGNhbmNlbGxhdGlvbi4AAAAAANCwaQRoYXNo+AEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTI1NiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGEyNTYgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuACi7BuVLq3QLaW1wb3J0Y2FyZ28A4LPLU+VLq3QMaW1wb3J0ZW50aXR5AACqppflS6t0C2ltcG9ydGdyb3VwAHCVN7HmS6t0DGltcG9ydHBsYXllcgC6r8Lq5kurdA1pbXBvcnRyZXNlcnZlAABUNhnnS6t0C2ltcG9ydHN0YXRlAAAAAAAAMB19BGpvaW7EAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQAAAAANDS1iQZsYXVuY2gAAAAAAACQDI0EbG9hZAAAAAAquqw2lQhtb3ZldGlsZQAAAIhXM+nymgluZnRpbWd1cmyyAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBuZnRpbWd1cmwKc3VtbWFyeTogJ0dldCBORlQgaW1hZ2UgVVJMIGZvciBhIGNhcmdvIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBpbWFnZSBVUkwgdGhlIGNvbnRyYWN0IGVtaXRzIGZvciBhIGdpdmVuIGNhcmdvIGl0ZW0sIG9wdGlvbmFsbHkgc2NvcGVkIHRvIGEgbG9jYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIE5GVCByZW5kZXJlcnMgdG8gZmV0Y2ggdGhlIGNhbm9uaWNhbCBhcnR3b3JrIGZvciBhbiBpdGVtIG9yIHBhY2tlZCBlbnRpdHkuAAAAAPjlMp0Gbm90aWZ5igMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbm90aWZ5CnN1bW1hcnk6ICdUYXNrIGxpZmVjeWNsZSBub3RpZmljYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IG5vdGlmaWVzIGVudGl0eSBvd25lcnMgb2YgdGFzayBsaWZlY3ljbGUgZXZlbnRzIChyZXNvbHZlZCwgY2FuY2VsbGVkKS4gQ2FsbGVkIGlubGluZSB3aGVuIHRhc2tzIGNoYW5nZSBzdGF0ZS4gVXNlcyByZXF1aXJlX3JlY2lwaWVudCB0byBlbmFibGUgb2ZmLWNoYWluIG1vbml0b3JpbmcgdmlhIGFjdGlvbiB0cmFjZXMuAABl1yCFTKwKcGxhY2VjYXJnb8kELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlY2FyZ28Kc3VtbWFyeTogJ1Jlc3RvcmUgTkZUIGNhcmdvIG9udG8gYSBob3N0IGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc3RvcmVzIHRoZSBjYXJnbyByZWNvcmRlZCBpbiBhbiB1bndyYXBwZWQgTkZUIG9udG8gYSBob3N0IGVudGl0eS4gVmFsaWRhdGVzIGhvc3Qgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcmVtYWluaW5nIGNhcGFjaXR5LCBkZXNlcmlhbGl6ZXMgdGhlIE5GVCdzIGl0ZW0gZGF0YSwgYW5kIGFwcGVuZHMgYW4gdW53cmFwIHRhc2sgdG8gZGVsaXZlciB0aGUgY2FyZ28gdG8gdGhlIGhvc3QuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAHx2eSqFTKwLcGxhY2VlbnRpdHnABC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWVudGl0eQpzdW1tYXJ5OiAnTWF0ZXJpYWxpemUgYSBwYWNrZWQtZW50aXR5IE5GVCBhcyBhIGxpdmUgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gRW1wbGFjZXMgYSBsaXZlIG9yYml0YWwgdmVzc2VsIChzaGlwIG9yIGNvbnRhaW5lcikgZnJvbSBpdHMgcGFja2VkLWVudGl0eSBORlQgZGF0YSBhdCB0aGUgcmVjb3JkZWQgd3JhcCBvcmlnaW4sIHRoZW4gcXVldWVzIHRyYXZlbCBhbmQgcmVjaGFyZ2UgdGFza3MgdG8gZGVsaXZlciBpdCB0byB0aGUgdGFyZ2V0IG5leHVzIGF0IGZ1bGwgZW5lcmd5LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAIpd05C6CHJlY2hhcmdlzQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS7gs8tTNXyXugxyZWZyc2hlbnRpdHm4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWZyc2hlbnRpdHkKc3VtbWFyeTogJ1JlZnJlc2ggZGVyaXZlZCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlY29tcHV0ZSBkZXJpdmVkIGZpZWxkcyBvbiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBjYXJnbyBhbmQgbW9kdWxlcywgcmVmcmVzaGluZyBjYXBhYmlsaXR5IHN0YXRzIGFuZCBjYXJnbyBtYXNzLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVXNlZCB0byByZWNvbmNpbGUgZGVyaXZlZCBzdGF0ZSBhZnRlciBkYXRhIG1pZ3JhdGlvbnMgb3IgY29udHJhY3QgdXBncmFkZXMuoCIyl6pNpboMcmVtb3Zlb3JhY2xlAAAAAAAoaaa6BnJlbmFtZQAAAABA7UixugdyZXNvbHZl0AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVzb2x2ZQpzdW1tYXJ5OiAnQ29tcGxldGUgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXNvbHZlIGNvbXBsZXRlZCB0YXNrcyBpbiBhbiBlbnRpdHkncyBzY2hlZHVsZSwgYXBwbHlpbmcgdGhlaXIgZWZmZWN0cyAocmVjaGFyZ2UgZW5lcmd5LCB1cGRhdGUgbG9jYXRpb24sIGxvYWQvdW5sb2FkIGNhcmdvKS4gSWYgY291bnQgaXMgc3BlY2lmaWVkLCByZXNvbHZlIGV4YWN0bHkgdGhhdCBtYW55IHRhc2tzOyBvdGhlcndpc2UgcmVzb2x2ZSBhbGwgY29tcGxldGVkIHRhc2tzLiBGYWlscyBpZiBjb3VudCBleGNlZWRzIHRoZSBudW1iZXIgb2YgY29tcGxldGVkIHRhc2tzLgBAjEbtSLG6CnJlc29sdmVhbGwAAAAAAESjtroGcmV2ZWFsAAAAACrqRKW8CHJtbW9kdWxlvAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1tb2R1bGUKc3VtbWFyeTogJ1JlbW92ZSBhIG1vZHVsZSBmcm9tIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIGFuIGluc3RhbGxlZCBtb2R1bGUgZnJvbSBhIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIGlzIHJldHVybmVkIHRvIGNhcmdvLiBGYWlscyBpZiB0aGUgZW50aXR5IGRvZXMgbm90IGhhdmUgZW5vdWdoIGNhcmdvIGNhcGFjaXR5IHRvIGhvbGQgdGhlIHJldHVybmVkIG1vZHVsZS4AAABsobymvAhybW5mdGNmZ6EDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbmZ0Y2ZnCnN1bW1hcnk6ICdSZW1vdmUgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSB0aGUgQXRvbWljQXNzZXRzIHRlbXBsYXRlIG1hcHBpbmcgZm9yIHRoZSBzcGVjaWZpZWQgaXRlbSBpZCBmcm9tIHRoZSBgbmZ0Y29uZmlnYCB0YWJsZS4gQWZ0ZXIgcmVtb3ZhbCB0aGUgaXRlbSBjYW4gbm8gbG9uZ2VyIGJlIHdyYXBwZWQgb3IgdW53cmFwcGVkIHVudGlsIGEgbmV3IG1hcHBpbmcgaXMgc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAADA6VKKssIJc2V0Y29vcmRzAAAAYAvlNbPCCXNldG5mdGNmZ8QDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNldG5mdGNmZwpzdW1tYXJ5OiAnU2V0IE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpCaW5kIGFuIGl0ZW0gaWQgdG8gYW4gQXRvbWljQXNzZXRzIHRlbXBsYXRlIGlkIGFuZCBzY2hlbWEgbmFtZS4gVXNlZCB0byBjb25maWd1cmUgaG93IHRoZSBjb250cmFjdCBtaW50cyBhbmQgcmVjb2duaXplcyBORlRzIGZvciBhIGdpdmVuIGl0ZW0uIEluc2VydHMgYSBuZXcgbWFwcGluZyBpZiBvbmUgZG9lcyBub3QgZXhpc3QsIG9yIHVwZGF0ZXMgdGhlIGV4aXN0aW5nIG1hcHBpbmcuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS6QIm1Y3ZazwgxzZXR0aHJlc2hvbGQAADKmqJrLs8ILc2V0d3JhcGNvc3QAAIBSq5rLs8IKc2V0d3JhcGZlZQAAAKDsGsRpxglzdG93Y2FyZ2/VBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93Y2FyZ28Kc3VtbWFyeTogJ1Jlc2VydmUgYSBjYXJnbyBzdGFjayBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhbmQgY29uc3VtZXMgYSBjYXJnbyBzdGFjayBvbiBhIGxpdmUgZW50aXR5IGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVC4gVmFsaWRhdGVzIGVudGl0eSBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCBwcmVzZW5jZSBhdCB0aGUgbmV4dXMsIGFuZCBjb25maXJtcyB0aGUgdGFyZ2V0IGNhcmdvIHN0YWNrIGlzIGF2YWlsYWJsZSBhbmQgbm90IHJlc2VydmVkIGJ5IGEgcGVuZGluZyB0YXNrLiBDb21wdXRlcyB0aGUgd3JhcCBjb3N0IGFuZCBmZWUsIGRlYml0cyB0aGVtIGZyb20gdGhlIG93bmVyJ3MgcGxhdGZvcm0gZGVwb3NpdCBiYWxhbmNlLCBkZXJpdmVzIHRoZSBORlQncyBpbW11dGFibGUgZGF0YSwgYW5kIG1pbnRzIHRoZSBORlQgaW5saW5lIGFzIHRoZSBnYW1lIGNvbnRyYWN0IGJlZm9yZSBjb25zdW1pbmcgdGhlIGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAIDPLk/FacYKc3Rvd2VudGl0eZkFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3dlbnRpdHkKc3VtbWFyeTogJ1Jlc2VydmUgYW4gZW50aXR5IGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGEgd2hvbGUgZW50aXR5IChzaGlwLCBjb250YWluZXIsIG9yIHBsYW5ldGFyeSBzdHJ1Y3R1cmUpIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVC4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnbyBhbmQgbm8gc2NoZWR1bGVkIHRhc2tzLiBDb21wdXRlcyB0aGUgd3JhcCBjb3N0IGFuZCBmZWUsIGRlYml0cyB0aGVtIGZyb20gdGhlIG93bmVyJ3MgcGxhdGZvcm0gZGVwb3NpdCBiYWxhbmNlLCBkZXJpdmVzIHRoZSBlbnRpdHkgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIG1pbnRzIHRoZSBORlQgaW5saW5lIGFzIHRoZSBnYW1lIGNvbnRyYWN0LCBhbmQgZXJhc2VzIHRoZSBlbnRpdHkgZnJvbSB0aGUgd29ybGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgIo6UVkNxwpzd2FwbW9kdWxlAAAAACq6XA3HCHN3YXB0aWxlAAAAACA7PM3NB3RyYW5zaXQAAAAAAES1zc0GdHJhdmVs+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIGEgc2hpcCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhdGUgdHJhdmVsIG9mIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGxvY2F0aW9uIHRvIGEgbmV3IGRlc3RpbmF0aW9uLgAAAJ7GqtLUCHVuZGVwbG955wQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW5kZXBsb3kKc3VtbWFyeTogJ1BhY2sgYSBkZXBsb3llZCBlbnRpdHkgaW50byBhIGhvc3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClBhY2sgYW4gZW50aXR5IGludG8gYSBob3N0IGVudGl0eSdzIGNhcmdvIGFzIGEgcGFja2VkLWVudGl0eSBpdGVtLiBIb3N0IGFuZCB0YXJnZXQgbXVzdCBzaGFyZSB0aGUgc2FtZSBvd25lciBhbmQgY29vcmRpbmF0ZXMsIHRoZSBob3N0IG11c3QgaGF2ZSBsb2FkZXJzIGFuZCBlbm91Z2ggY2FwYWNpdHkgZm9yIHRoZSBwYWNrZWQgbWFzcywgYW5kIHRoZSB0YXJnZXQgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28uIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgYW5kIHNjaGVkdWxlcyB1bmRlcGxveSB0YXNrcyBvbiBib3RoIGVudGl0aWVzOyBvbiByZXNvbHV0aW9uIHRoZSB0YXJnZXQgaXMgZXJhc2VkIGFuZCB0aGUgcGFja2VkIGVudGl0eSBpcyBhZGRlZCB0byB0aGUgaG9zdCdzIGNhcmdvLiBJbnZlcnNlIG9mIGRlcGxveS4AAAAAJEPj1AZ1bmxvYWQAAAAAQCVzWdUHdXBncmFkZQAAAAAAAFCv4QR3YXJwnwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2FycApzdW1tYXJ5OiAnV2FycCB0byBhIGRlc3RpbmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YW50bHkgdGVsZXBvcnQgYW4gZW50aXR5IHRvIGEgZGVzdGluYXRpb24gc3lzdGVtLiBSZXF1aXJlcyB3YXJwIGNhcGFiaWxpdHksIGZ1bGwgZW5lcmd5LCBlbXB0eSBjYXJnbywgYW5kIGFuIGVtcHR5IHNjaGVkdWxlLiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSBhIHZhbGlkIHN5c3RlbSB3aXRoaW4gd2FycCByYW5nZS4gUmVzb2x2ZXMgaW1tZWRpYXRlbHkgYXMgYSB6ZXJvLWR1cmF0aW9uIHRhc2suAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLRIAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAAAAAYOlMRANpNjQAAAljbGFpbV9yb3cAAADgqox1RANpNjQAAAtjbHVzdGVyX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AKqml/ns8lQDaTY0AAAPZW50aXR5Z3JvdXBfcm93AACwCvvs8lQDaTY0AAAOZW50aXR5X3NlcV9yb3cAAAAAgIZoVQNpNjQAAAllcG9jaF9yb3cAAGBuTYrymgNpNjQAAA1uZnRjb25maWdfcm93AABgC6mIzKUDaTY0AAARb3JhY2xlX2NvbmZpZ19yb3cAAAAAq4jMpQNpNjQAAApvcmFjbGVfcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAEDtq7C6A2k2NAAAC3Jlc2VydmVfcm93AAAAAESjtroDaTY0AAAKcmV2ZWFsX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwAAAAAArKrPA2k2NAAACXR5cGVzX3JvdwAAc2tSVM3lA2k2NAAADndyYXBjb25maWdfcm93AAAAGVNUzeUDaTY0AAAMd3JhcGNvc3Rfcm93ARFTaGlwbG9hZCAoU2VydmVyKRFTaGlwbG9hZCAoU2VydmVyKQAAAD8AAMg01hSdPgx0YXNrX3Jlc3VsdHMAAAAARIWmQQ5jYW5jZWxfcmVzdWx0cwAAyDRW6UxEDHRhc2tfcmVzdWx0cwAAAACAvMxFDHRhc2tfcmVzdWx0cwAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwDAVRnriLJiC2NsdXN0ZXJfcm93AABgbk2KsmILZ2FtZV9jb25maWcAQHaYVpWyYg5leHRlbmRlZF9hc3NldAAUmiZjl7JiBnVpbnQ2NABUPI65qLJiCHVpbnQxNltdAADAEeWpsmILZW51bV9yZXN1bHQAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm+Qp7s1U7qyYhBmb290cHJpbnRfcmVzdWx0AEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQATFYyTQezYhBraW5kX21ldGFfcmVzdWx0ACZ12SAas2INbG9jYXRpb25faW5mbwCAySYhGrNiEGxvY2F0aW9uX2Rlcml2ZWQAsKo+JyqzYgtlbnVtX3Jlc3VsdAAAVlEnKrNiDm1vZHVsZXNfcmVzdWx0AADw5xo1s2ILbmVhcmJ5X2luZm8AgMLm5DWzYghzdHJpbmdbXQAAXdPlNbNiDm5mdGluZm9fcmVzdWx0AAC4yptYs2ILcGxheWVyX2luZm+gssn40VuzYg9wcm9qZWN0ZWRfc3RhdGUAAFDVIXWzYg5yZWNpcGVzX3Jlc3VsdAAAVtUhdbNiDnJlY2lwZXNfcmVzdWx0AADOBmF1s2ILZW51bV9yZXN1bHQAsNpXYXWzYhNzdHJhdHVtX3JlbWFpbmluZ1tdgBW6mmJ1s2IQcmVzb3VyY2VzX3Jlc3VsdAAAADjTiLNiFWVudGl0eV9sYXlvdXRzX3Jlc3VsdACA1NncjLNiDHN0cmF0dW1fZGF0YYCVu0ZKjbNiEGVudGl0eV9zdW1tYXJ5W10AVKRNXsqzYg13b3JtaG9sZV9pbmZvkB2e5uaq6WUMdGFza19yZXN1bHRzAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAAA0NLWJDHRhc2tfcmVzdWx0cwAAAAAAkAyNDHRhc2tfcmVzdWx0cwAAACq6rDaVDHRhc2tfcmVzdWx0cwAAiFcz6fKaBnN0cmluZwAAZdcghUysDHRhc2tfcmVzdWx0cwB8dnkqhUysDHRhc2tfcmVzdWx0cwAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwBAjEbtSLG6EnJlc29sdmVhbGxfcmVzdWx0cwAAoOwaxGnGDHRhc2tfcmVzdWx0cwCAzy5PxWnGDHRhc2tfcmVzdWx0cwAAACq6XA3HDHRhc2tfcmVzdWx0cwAAACA7PM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAJ7GqtLUDHRhc2tfcmVzdWx0cwAAAAAkQ+PUDHRhc2tfcmVzdWx0cwAAAEAlc1nVDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
|
|
451
|
+
const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDjWAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQxidWlsZGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYJYnVpbGRwbG90AAIKYnVpbGRlcl9pZAZ1aW50NjQHcGxvdF9pZAZ1aW50NjQGY2FuY2VsAAMCaWQGdWludDY0CGxhbmVfa2V5BXVpbnQ4BWNvdW50BnVpbnQ2NA5jYW5jZWxfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ9jYW5jZWxsZWRfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAt0aW1lX3BvaW50PwtlbnRpdHlncm91cAd1aW50NjQ/DWdyb3VwX21lbWJlcnMWQl92ZWN0b3JfZW50aXR5X3JlZl9FPwljYW5jZWxqb2IAAgZqb2JfaWQGdWludDY0B3NoaXBfaWQGdWludDY0CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8PY2l2aWNjb25maWdfcm93AAELY2l2aWNfb3duZXIEbmFtZQljbGFpbV9yb3cAAQVvd25lcgRuYW1lCGNsYWltam9iAAIGam9iX2lkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYEc2xvdAxjbHVzdGVyX3Nsb3QMY2xhaW1zdGFydGVyAAEFb3duZXIEbmFtZQljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4BmNvbW1pdAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZjb21taXQLY2hlY2tzdW0yNTYKY29tbWl0X3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGY29tbWl0C2NoZWNrc3VtMjU2CWNvbmZpZ2xvZwABBmNvbmZpZwtnYW1lX2NvbmZpZwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8IY291cGxpbmcAAwtjb3VudGVycGFydAplbnRpdHlfcmVmBGhvbGQGdWludDY0BGtpbmQFdWludDgFY3JhZnQABgJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwxjcmFmdGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYIY3JhZnRqb2IABgdzaGlwX2lkBnVpbnQ2NAt3b3Jrc2hvcF9pZAZ1aW50NjQEc2xvdAV1aW50OAlyZWNpcGVfaWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgZpbnB1dHMMY2FyZ29faXRlbVtdCWRlbGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQADAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmBHNsb3QNY2x1c3Rlcl9zbG90PwpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAXBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQ1idWlsZGVyX2xhbmVzDmJ1aWxkZXJfbGFuZVtdDGxvYWRlcl9sYW5lcw1sb2FkZXJfbGFuZVtdCGxhdW5jaGVyD2xhdW5jaGVyX3N0YXRzPwVsYW5lcwZsYW5lW10FaG9sZHMGaG9sZFtdDWVudGl0eV9sYXlvdXQAAw5lbnRpdHlfaXRlbV9pZAZ1aW50MTYFc2xvdHMKc2xvdF9kZWZbXQ1iYXNlX2h1bGxtYXNzBnVpbnQzMhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAAQhlbnRpdGllcw9lbnRpdHlfbGF5b3V0W10KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAplbnRpdHlfcm93AAwCaWQGdWludDY0BW93bmVyBG5hbWUEa2luZARuYW1lB2l0ZW1faWQGdWludDE2BG5hbWUGc3RyaW5nBXN0YXRzBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwZlbmVyZ3kHdWludDMyPwljYXJnb21hc3MGdWludDMyB21vZHVsZXMObW9kdWxlX2VudHJ5W10FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ5lbnRpdHlfc2VxX3JvdwABB25leHRfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAZ1aW50MzIQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQQZm9vdHByaW50X3Jlc3VsdAABBWNlbGxzC2dyaWRfY2VsbFtdC2ZvcmNlcmV2ZWFsAAEFZXBvY2gGdWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2CmdhdGhlcnBsYW4ABglzb3VyY2VfaWQGdWludDY0DmRlc3RpbmF0aW9uX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIIcmVjaGFyZ2UEYm9vbAVzbG90cwVieXRlcwxnZW5lc2lzZmxlZXQAAQhlbnRpdGllcwxlbnRpdHlfcm93W10KZ2V0Y2x1c3RlcgABBmh1Yl9pZAZ1aW50NjQJZ2V0Y29uZmlnAAAKZ2V0ZGVwb3NpdAACBW93bmVyBG5hbWUIYXNzZXRfaWQGdWludDY0C2dldGRpc3RhbmNlAAQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ2V0ZWxpZ2libGUAAgZjb29yZHMLY29vcmRpbmF0ZXMHc3RyYXR1bQZ1aW50MTYJZ2V0ZW50Y2xzAAALZ2V0ZW50aXRpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/CWdldGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMZ2V0Zm9vdHByaW50AAEHaXRlbV9pZAZ1aW50MTYLZ2V0aXRlbWRhdGEAAApnZXRpdGVtaWRzAAAIZ2V0aXRlbXMAAAtnZXRpdGVtdHlwZQABB2l0ZW1faWQGdWludDE2DGdldGl0ZW10eXBlcwAAB2dldGpvYnMAAQt3b3Jrc2hvcF9pZAZ1aW50NjQLZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAApnZXRzZXJ2aWNlAAELd29ya3Nob3BfaWQGdWludDY0CGdldHNsb3RzAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dldHdvcm1ob2xlAAIBeAVpbnQ2NAF5BWludDY0CWdyaWRfY2VsbAACAmd4BGludDgCZ3kEaW50OAxncm91cHRyYW5zaXQABQhlbnRpdGllcwxlbnRpdHlfcmVmW10CYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQLZ3JvdXB0cmF2ZWwABAhlbnRpdGllcwxlbnRpdHlfcmVmW10BeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wEaGFzaAABBXZhbHVlBnN0cmluZwdoYXNoNTEyAAEFdmFsdWUGc3RyaW5nDGhhdWxlcl9zdGF0cwAECGNhcGFjaXR5BXVpbnQ4CmVmZmljaWVuY3kGdWludDE2BWRyYWluBnVpbnQzMhBjYXBhY2l0eV9ieV90aWVyEWhhdWxlcl90aWVyX2NhcFtdD2hhdWxlcl90aWVyX2NhcAACBHRpZXIFdWludDgIY2FwYWNpdHkFdWludDgEaG9sZAAFAmlkBnVpbnQ2NARraW5kBXVpbnQ4C2NvdW50ZXJwYXJ0CmVudGl0eV9yZWYFdW50aWwKdGltZV9wb2ludA1pbmNvbWluZ19tYXNzBnVpbnQzMgtpbXBvcnRjYXJnbwABA3JvdwljYXJnb19yb3cKaW1wb3J0Y2VsbAAEBHJvb3QGdWludDY0Amd4BGludDgCZ3kEaW50OAllbnRpdHlfaWQGdWludDY0DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRwbGF5ZXIAAQVvd25lcgRuYW1lDWltcG9ydHJlc2VydmUAAgtlcG9jaF9zY29wZQZ1aW50MzIDcm93C3Jlc2VydmVfcm93C2ltcG9ydHN0YXRlAAEDcm93CXN0YXRlX3JvdwhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdC2pvYl9yZWNlaXB0AAMGam9iX2lkBnVpbnQ2NAlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludAdqb2Jfcm93AAwCaWQGdWludDY0CHdvcmtzaG9wBnVpbnQ2NAZzb2NrZXQFdWludDgFb3duZXIEbmFtZQdzaGlwX2lkBnVpbnQ2NAZjb29yZHMLY29vcmRpbmF0ZXMJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzILZW5lcmd5X3BhaWQGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQtqb2JzX3Jlc3VsdAABBGpvYnMJam9iX3Jvd1tdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1pZ3JhdGV0YXNrcwABBWJhdGNoBnVpbnQzMgdtaWdzd2FwAAEFYmF0Y2gGdWludDMyDG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAQl0aHJlc2hvbGQFdWludDgKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lD3Byb2plY3RlZF9zdGF0ZQARBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10NYnVpbGRlcl9sYW5lcw5idWlsZGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8EdGllcgV1aW50OAhyZWNoYXJnZQABAmlkBnVpbnQ2NAxyZWNpcGVfaW5wdXQAAgdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIQcmVjaXBlX2l0ZW1faW5mbwACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMg9yZWNpcGVfcmVzcG9uc2UACA5vdXRwdXRfaXRlbV9pZAZ1aW50MTYLb3V0cHV0X21hc3MGdWludDMyBmlucHV0cw5yZWNpcGVfaW5wdXRbXQpzdGF0X3Nsb3RzFHN0YXRfc2xvdF9yZXNwb25zZVtdDWJsZW5kX3dlaWdodHMFYnl0ZXMLb3V0cHV0X2l0ZW0QcmVjaXBlX2l0ZW1faW5mbwtpbnB1dF9pdGVtcxJyZWNpcGVfaXRlbV9pbmZvW10Pc291cmNlX3N1YmNsYXNzB3VpbnQxNj8OcmVjaXBlc19yZXN1bHQAAQdyZWNpcGVzEXJlY2lwZV9yZXNwb25zZVtdDHJlZnJzaGVudGl0eQABCWVudGl0eV9pZAZ1aW50NjQMcmVtb3Zlb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUGcmVuYW1lAAICaWQGdWludDY0BG5hbWUGc3RyaW5nC3Jlc2VydmVfcm93AAUCaWQGdWludDY0CGNvb3JkX2lkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUHcmVzb2x2ZQACAmlkBnVpbnQ2NAVjb3VudAd1aW50NjQ/D3Jlc29sdmVfcmVzdWx0cwAGCWVudGl0eV9pZAZ1aW50NjQLZW50aXR5X3R5cGUEbmFtZQ5yZXNvbHZlZF9jb3VudAZ1aW50MzIUbmV3X3NjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KcmVzb2x2ZWFsbAABBW93bmVyBG5hbWUScmVzb2x2ZWFsbF9yZXN1bHRzAAIHc2Nhbm5lZAZ1aW50MzIIcmVzb2x2ZWQGdWludDMyDXJlc291cmNlX2luZm8ABAJpZAZ1aW50MTYEbWFzcwZ1aW50MzIIY2F0ZWdvcnkFdWludDgEdGllcgV1aW50OA5yZXNvdXJjZV9zdGF0cwADBXN0YXQxBnVpbnQxNgVzdGF0MgZ1aW50MTYFc3RhdDMGdWludDE2EHJlc291cmNlc19yZXN1bHQAAQlyZXNvdXJjZXMPcmVzb3VyY2VfaW5mb1tdBnJldmVhbAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZyZXZlYWwLY2hlY2tzdW0yNTYKcmV2ZWFsX3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGcmV2ZWFsC2NoZWNrc3VtMjU2CHJtbW9kdWxlAAMJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgKdGFyZ2V0X3JlZgpjYXJnb19yZWY/CHJtbmZ0Y2ZnAAEHaXRlbV9pZAZ1aW50MTYOcm91dGVfd2F5cG9pbnQAAgF4BWludDY0AXkFaW50NjQIc2NoZWR1bGUAAgdzdGFydGVkCnRpbWVfcG9pbnQFdGFza3MGdGFza1tdDHNjaGVtYV9maWVsZAACBG5hbWUGc3RyaW5nCmZpZWxkX3R5cGUGc3RyaW5nC3NlcnZpY2Vfcm93AAIGZW50aXR5BnVpbnQ2NAdzb2NrZXRzEHNlcnZpY2Vfc29ja2V0W10Oc2VydmljZV9zb2NrZXQAAQRvcGVuBGJvb2wIc2V0Y2l2aWMAAQdhY2NvdW50BG5hbWUJc2V0Y29vcmRzAAMJZW50aXR5X2lkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQJc2V0bmZ0Y2ZnAAMHaXRlbV9pZAZ1aW50MTYLdGVtcGxhdGVfaWQFaW50MzILc2NoZW1hX25hbWUEbmFtZQlzZXRzb2NrZXQAAwt3b3Jrc2hvcF9pZAZ1aW50NjQEc2xvdAV1aW50OARvcGVuBGJvb2wMc2V0dGhyZXNob2xkAAEJdGhyZXNob2xkBXVpbnQ4C3NldHdyYXBjb3N0AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NApzZXR3cmFwZmVlAAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQdzaHV0dGxlAAQHY2FycmllcgZ1aW50NjQHZnJvbV9pZAZ1aW50NjQFdG9faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQhzbG90X2RlZgADBHR5cGUFdWludDgKb3V0cHV0X3BjdAZ1aW50MTYIbWF4X3RpZXIFdWludDgSc3RhdF9zbG90X3Jlc3BvbnNlAAEHc291cmNlcw1zdGF0X3NvdXJjZVtdC3N0YXRfc291cmNlAAILaW5wdXRfaW5kZXgFdWludDgQaW5wdXRfc3RhdF9pbmRleAV1aW50OAlzdGF0ZV9yb3cAAwdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYJc3Rvd2NhcmdvAAUFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAhjYXJnb19pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CnN0b3dlbnRpdHkAAwVvd25lcgRuYW1lCWVudGl0eV9pZAZ1aW50NjQIbmV4dXNfaWQGdWludDY0DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAFB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgtyZXNlcnZlX21heAZ1aW50MzIRc3RyYXR1bV9yZW1haW5pbmcAAwdzdHJhdHVtBnVpbnQxNglyZW1haW5pbmcGdWludDMyCmxhc3RfYmxvY2sUYmxvY2tfdGltZXN0YW1wX3R5cGUKc3dhcG1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4Cm1vZHVsZV9yZWYJY2FyZ29fcmVmCHN3YXB0aWxlAAUGaHViX2lkBnVpbnQ2NARhX2d4BGludDgEYV9neQRpbnQ4BGJfZ3gEaW50OARiX2d5BGludDgEdGFzawAKBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQljb3VwbGluZ3MKY291cGxpbmdbXQdzdWJqZWN0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDMyPw50YXJnZXRfaXRlbV9pZAd1aW50MTY/CnRhc2tfZXZlbnQACgpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgGdWludDMyBHRhc2sEdGFzawlzdGFydHNfYXQKdGltZV9wb2ludAxjb21wbGV0ZXNfYXQKdGltZV9wb2ludApuZXdfZW5lcmd5B3VpbnQzMj8IbGFuZV9rZXkFdWludDgMdGFza19yZXN1bHRzAAEIZW50aXRpZXMSZW50aXR5X3Rhc2tfaW5mb1tdEXRlbXBsYXRlX21ldGFfcm93AAMHaXRlbV9pZAZ1aW50MTYEa2luZARuYW1lDWRpc3BsYXlfbGFiZWwGc3RyaW5nB3RyYW5zaXQABQJpZAZ1aW50NjQCYXgFaW50NjQCYXkFaW50NjQCYngFaW50NjQCYnkFaW50NjQGdHJhdmVsAAQCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCnRyYXZlbHBsYW4AAwhlbnRpdGllcwxlbnRpdHlfcmVmW10Jd2F5cG9pbnRzEHJvdXRlX3dheXBvaW50W10IcmVjaGFyZ2UEYm9vbAl0eXBlc19yb3cABQJpZAZ1aW50NjQTZW50aXR5X3N1bW1hcnlfdHlwZQ5lbnRpdHlfc3VtbWFyeRBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnFnN0cmF0dW1fcmVtYWluaW5nX3R5cGURc3RyYXR1bV9yZW1haW5pbmcVbmZ0X2l0ZW1fcGF5bG9hZF90eXBlEG5mdF9pdGVtX3BheWxvYWQIdW5kZXBsb3kAAgdob3N0X2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0BnVubG9hZAADAmlkBnVpbnQ2NAV0b19pZAZ1aW50NjQFaXRlbXMMY2FyZ29faXRlbVtdB3VwZ3JhZGUABQpidWlsZGVyX2lkBnVpbnQ2NAl0YXJnZXRfaWQGdWludDY0DnRhcmdldF9pdGVtX2lkBnVpbnQxNgZpbnB1dHMMY2FyZ29faXRlbVtdBHNsb3QGdWludDg/BHdhcnAAAwJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CndhcnBfc3RhdHMAAQVyYW5nZQZ1aW50MzIEd2lwZQAADXdvcm1ob2xlX2luZm8AAwZjb29yZHMLY29vcmRpbmF0ZXMLaXNfd29ybWhvbGUEYm9vbAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcw53cmFwY29uZmlnX3JvdwACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUMd3JhcGNvc3Rfcm93AAMJaXRlbV90eXBlBXVpbnQ4BHRpZXIFdWludDgGYW1vdW50BnVpbnQ2NG8AAFBRJypTMglhZGRtb2R1bGXHAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRtb2R1bGUKc3VtbWFyeTogJ0luc3RhbGwgYSBtb2R1bGUgaW50byBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbGwgYSBtb2R1bGUgZnJvbSBjYXJnbyBpbnRvIGEgbW9kdWxlIHNsb3Qgb24gYSBsaXZlIGVudGl0eSBvciBhIHBhY2tlZCBlbnRpdHkgaW4gY2FyZ28uIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBUaGUgbW9kdWxlIHR5cGUgbXVzdCBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHRhcmdldCBzbG90IHR5cGUuIFRoZSBtb2R1bGUgaXRlbSBpcyByZW1vdmVkIGZyb20gY2FyZ28gdXBvbiBpbnN0YWxsYXRpb24uAAAAWHc1UzIIYWRkbmV4dXOnAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZGRuZXh1cwpzdW1tYXJ5OiAnQWRkIGEgbmV4dXMgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNyZWF0ZSBhIG5ldyBuZXh1cyBlbnRpdHkgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzLiBOZXh1c2VzIGFyZSBvd25lZCBieSB0aGUgY29udHJhY3QgYW5kIHNlcnZlIGFzIGZpeGVkIGdhdGhlcmluZyBwb2ludHMgd2hlcmUgcGxheWVycyBjYW4gd3JhcCwgdW53cmFwLCBkZXBsb3ksIGFuZCBvdGhlcndpc2UgaW50ZXJhY3Qgd2l0aCBORlQtYmFja2VkIGFzc2V0cy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAUBGZS1MyCWFkZG9yYWNsZQAAAAAAgDRVPAVibGVuZPwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJsZW5kCnN1bW1hcnk6ICdCbGVuZCBjYXJnbyBzdGFja3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbWJpbmUgbXVsdGlwbGUgY2FyZ28gc3RhY2tzIG9mIHRoZSBzYW1lIGl0ZW0gdHlwZSBpbnRvIGEgc2luZ2xlIHN0YWNrIHdpdGggbmV3IGJsZW5kZWQgc3RhdHMuIEFsbCBpbnB1dCBzdGFja3MgbXVzdCBzaGFyZSB0aGUgc2FtZSBpdGVtIGlkLiBUaGUgb3V0cHV0IHN0YWNrIGhhcyB0aGUgY29tYmluZWQgcXVhbnRpdHkgb2YgYWxsIGlucHV0cy4AAMg01hSdPglidWlsZHBsb3QAAAAAAESFpkEGY2FuY2VswgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuAAA49EWFpkEJY2FuY2Vsam9iAAAAAIc+6UxECGNsYWltam9iAAAAyDRW6UxECWNsYWltcGxvdABwVb4mY+lMRAxjbGFpbXN0YXJ0ZXIAAACoG99pVEQJY2xlYW5yc3Zw7AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYW5yc3ZwCnN1bW1hcnk6ICdDbGVhbiB1cCBwYXN0IGVwb2NoIHJlc2VydmVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFcmFzZSByZXNlcnZlIHRhYmxlIHJvd3MgZnJvbSBhIHBhc3QgZXBvY2guIENhbm5vdCBjbGVhbiB0aGUgY3VycmVudCBvciBmdXR1cmUgZXBvY2hzLiBUaGUgbWF4X3Jvd3MgcGFyYW1ldGVyIGNhcHMgdGhlIG51bWJlciBvZiByb3dzIGVyYXNlZCBwZXIgY2FsbCB0byBsaW1pdCBDUFUgdXNhZ2UuAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdOwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4AAGA0MrcmRQljb25maWdsb2fdAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb25maWdsb2cKc3VtbWFyeTogJ0xvZyBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiB0aGF0IGxvZ3MgdGhlIGN1cnJlbnQgZ2FtZSBjb25maWd1cmF0aW9uLiBDYWxsZWQgaW5saW5lIGFmdGVyIGluaXRpYWxpemF0aW9uIHRvIGJyb2FkY2FzdCBjb25maWcgdmlhIGFjdGlvbiB0cmFjZXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAAAAgLzMRQVjcmFmdMgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNyYWZ0CnN1bW1hcnk6ICdDcmFmdCBpdGVtcyBmcm9tIGEgcmVjaXBlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUcmFuc2Zvcm0gY2FyZ28gaXRlbXMgaW50byBhIG5ldyBpdGVtIHVzaW5nIGEgcmVjaXBlLiBUaGUgZW50aXR5IG11c3QgaGF2ZSBhIGNyYWZ0ZXIgbW9kdWxlIGluc3RhbGxlZC4gQ29uc3VtZXMgZW5lcmd5IGFuZCBzY2hlZHVsZXMgYSBjcmFmdGluZyB0YXNrIHdpdGggZHVyYXRpb24gYmFzZWQgb24gdG90YWwgaW5wdXQgbWFzcyBhbmQgY3JhZnRlciBzcGVlZC4gSW5wdXQgcXVhbnRpdGllcyBtdXN0IGV4YWN0bHkgbWF0Y2ggdGhlIHJlY2lwZSByZXF1aXJlbWVudHMuAAAAh768zEUIY3JhZnRqb2IAAADw2eWpokoJZGVsZW50aXR5AAAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAMA0sV7VsmEKZ2F0aGVycGxhbgCQlYoLO6ymYgxnZW5lc2lzZmxlZXSpBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZW5lc2lzZmxlZXQKc3VtbWFyeTogJ01pbnQgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVtcGxhY2UgdGhlIG9uZS10aW1lIGdlbmVzaXMgZmxlZXQ6IGEgY2FsbGVyLXN1cHBsaWVkIHNldCBvZiBlbnRpdGllcyAoc2hpcHMsIHN0cnVjdHVyZXMsIGFuZCBjb250YWluZXJzKSB3cml0dGVuIHRvIHRoZSB3b3JsZCBhcy1pcy4gVmFsaWQgb25seSBkdXJpbmcgdGhlIHByZS1nZW5lc2lzIHdpbmRvdywgYmVmb3JlIGVwb2NoIDEgaXMgZmluYWxpemVkLiBUaGUgc3VwcGxpZWQgZW50aXR5IGlkcyBhcmUgaG9ub3JlZCBhbmQgdGhlIGlkIHNlcXVlbmNlIGlzIGFkdmFuY2VkIHBhc3QgdGhlbTsgaWQgMCBpcyByZXNlcnZlZCBmb3IgdGhlIEdlbmVzaXMgTmV4dXMuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AwFUZ64iyYgpnZXRjbHVzdGVyAAAAYG5NirJiCWdldGNvbmZpZ8oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGNvbmZpZwpzdW1tYXJ5OiAnR2V0IGdhbWUgY29uZmlndXJhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgZ2FtZSBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBkZWZhdWx0IGVudGl0eSBzdGF0cyBmb3Igd2FyZWhvdXNlcyBhbmQgY29udGFpbmVycywgYW5kIHRoZSBmdWxsIGl0ZW0gZGVmaW5pdGlvbnMgdGFibGUuAEB2mFaVsmIKZ2V0ZGVwb3NpdAAAFJomY5eyYgtnZXRkaXN0YW5jZQAAVDyOuaiyYgtnZXRlbGlnaWJsZcgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVsaWdpYmxlCnN1bW1hcnk6ICdHZXQgZWxpZ2libGUgcmVzb3VyY2UgaXRlbSBJRHMgYXQgYSBsb2NhdGlvbiBhbmQgc3RyYXR1bScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGxpc3Qgb2YgcmVzb3VyY2UgaXRlbSBJRHMgZWxpZ2libGUgdG8gYmUgZ2F0aGVyZWQgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGVzIGFuZCBzdHJhdHVtIGRlcHRoLiBJdGVtcyBhcmUgZ2F0ZWQgYnkgYm90aCB0aGUgbG9jYXRpb24ncyByZXNvdXJjZSBwcm9maWxlIGFuZCB0aGUgZGVwdGggdGhyZXNob2xkIGZvciBlYWNoIHRpZXIuAADAEeWpsmIJZ2V0ZW50Y2xzjAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50Y2xzCnN1bW1hcnk6ICdHZXQgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZW50aXR5IGNsYXNzIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKE9yYml0YWxWZXNzZWwsIFBsYW5ldGFyeVN0cnVjdHVyZSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGVudGl0eSBjbGFzcyBpZGVudGlmaWVycy4AsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy6Qp7s1U7qyYgxnZXRmb290cHJpbnQAAEw2SarssmILZ2V0aXRlbWRhdGGoAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtZGF0YQpzdW1tYXJ5OiAnR2V0IGZ1bGwgaXRlbSBjYXRhbG9nJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgY29tcGxldGUgaXRlbSBjYXRhbG9nIGFzIHRoZSBjb250cmFjdCBzZWVzIGl0LCBpbmNsdWRpbmcgdHlwZSwgc3VidHlwZSwgdGllciwgbWFzcywgYW5kIG90aGVyIHN0YXRpYyBtZXRhZGF0YS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgY2xpZW50cyB0byBtaXJyb3IgdGhlIGNvbnRyYWN0J3MgaXRlbSBkZWZpbml0aW9ucy4AAE5OquyyYgpnZXRpdGVtaWRzhgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWlkcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gaWQgdG8gbmFtZSBtYXBwaW5ncycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgbWFwcGluZyBvZiBpdGVtIGlkIGNvbnN0YW50cyB0byB0aGVpciBjYW5vbmljYWwgc3RyaW5nIG5hbWVzLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHJlc29sdmUgbnVtZXJpYyBpdGVtIGlkcyB0byBodW1hbi1yZWFkYWJsZSBpZGVudGlmaWVycy4AAABYquyyYghnZXRpdGVtc5oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1zCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGl0ZW1zIGluIHRoZSBnYW1lIGluY2x1ZGluZyB0aGVpciBpZCwgYmFzZSBwcmljZSwgYW5kIG1hc3MuAFT1WarssmILZ2V0aXRlbXR5cGUAgFX1WarssmIMZ2V0aXRlbXR5cGVziAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXR5cGVzCnN1bW1hcnk6ICdHZXQgaXRlbSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgaXRlbSB0eXBlIGVudW0gdmFsdWVzIGFuZCB0aGVpciBzdHJpbmcgbmFtZXMgKHJlc291cmNlLCBjb21wb25lbnQsIG1vZHVsZSwgZW50aXR5KS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgaXRlbSB0eXBlIGlkZW50aWZpZXJzLgAAAAAf+rJiB2dldGpvYnMAAExWMk0Hs2ILZ2V0a2luZG1ldGH4Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRraW5kbWV0YQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBraW5kIG1ldGFkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZW50aXR5IGtpbmQgcmVnaXN0cnkgYW5kIHRlbXBsYXRlIHJlZ2lzdHJ5LCBpbmNsdWRpbmcgZWFjaCBraW5kJ3MgY2xhc3NpZmljYXRpb24sIGNhcGFiaWxpdHkgZmxhZ3MsIFotY29vcmRpbmF0ZSwgYW5kIGRlZmF1bHQgbGFiZWwsIHBsdXMgdGhlIG1hcHBpbmcgb2YgZW50aXR5IGl0ZW0gaWRzIHRvIGtpbmRzIHdpdGggZGlzcGxheSBsYWJlbHMuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gaW50ZXJwcmV0IGVudGl0eSBraW5kcyBhbmQgY2FwYWJpbGl0aWVzLgAmddkgGrNiC2dldGxvY2F0aW9u4gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jYXRpb24Kc3VtbWFyeTogJ0dldCBsb2NhdGlvbiBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIGxvY2F0aW9uIGluY2x1ZGluZyB3aGV0aGVyIGEgc3lzdGVtIGV4aXN0cywgYW5kIGZvciBlYWNoIGl0ZW06IHByaWNlLCBzdXBwbHksIHJhcml0eSBtdWx0aXBsaWVyLCBhbmQgbG9jYXRpb24gbXVsdGlwbGllci4AgMkmIRqzYgpnZXRsb2NkYXRh/gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bG9jZGF0YQpzdW1tYXJ5OiAnR2V0IGRlcml2ZWQgbG9jYXRpb24gZGF0YScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBkZXJpdmVkIGxvY2F0aW9uIGRhdGEgaW5jbHVkaW5nIHN0YXRpYyBwcm9wZXJ0aWVzICh0eXBlLCBkaWZmaWN1bHR5LCBzZWVkcykgZnJvbSB0aGUgZ2FtZSBzZWVkIGFuZCBlcG9jaC1zcGVjaWZpYyBwcm9wZXJ0aWVzIChhY3RpdmUsIHNlZWRzKSBmcm9tIHRoZSBjdXJyZW50IGVwb2NoIHNlZWQuALCqPicqs2ILZ2V0bW9kdHlwZXPWAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRtb2R0eXBlcwpzdW1tYXJ5OiAnR2V0IG1vZHVsZSB0eXBlIGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAoYW55LCBlbmdpbmUsIGdlbmVyYXRvciwgZ2F0aGVyZXIsIGxvYWRlciwgd2FycCwgY3JhZnRlciwgbGF1bmNoZXIsIHN0b3JhZ2UsIGhhdWxlcikuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIG1vZHVsZSBzdWJ0eXBlIGlkZW50aWZpZXJzIGFuZCBzbG90IGNvbXBhdGliaWxpdHkuAABWUScqs2IKZ2V0bW9kdWxlc4ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHVsZXMKc3VtbWFyeTogJ0dldCBhbGwgbW9kdWxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgbW9kdWxlcywgaW5jbHVkaW5nIGVhY2ggbW9kdWxlJ3MgaWQsIG1hc3MsIHN1YnR5cGUsIGFuZCB0aWVyLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGVudW1lcmF0ZSBpbnN0YWxsYWJsZSBlcXVpcG1lbnQuAADw5xo1s2IJZ2V0bmVhcmJ5ygMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmVhcmJ5CnN1bW1hcnk6ICdHZXQgbmVhcmJ5IHJlYWNoYWJsZSBzeXN0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIG5lYXJieSBzeXN0ZW1zIHJlYWNoYWJsZSBieSBhbiBlbnRpdHkgZnJvbSBpdHMgcHJvamVjdGVkIGxvY2F0aW9uLiBSZXR1cm5zIGN1cnJlbnQgc3RhdGUgKHdpdGggY29tcGxldGVkIHRhc2tzIHJlc29sdmVkKSwgcHJvamVjdGVkIHN0YXRlIChhZnRlciBhbGwgc2NoZWR1bGVkIHRhc2tzKSwgYW5kIGEgbGlzdCBvZiByZWFjaGFibGUgc3lzdGVtcyB3aXRoIGRpc3RhbmNlLCBlbmVyZ3kgY29zdCwgYW5kIGZsaWdodCB0aW1lLgCAwubkNbNiCmdldG5mdGJhc2UAAABd0+U1s2IKZ2V0bmZ0aW5mb/ADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5mdGluZm8Kc3VtbWFyeTogJ0dldCBORlQgc2NoZW1hIGFuZCB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgQXRvbWljQXNzZXRzIHNjaGVtYXMgYW5kIHRlbXBsYXRlcyB0aGUgZ2FtZSBjb250cmFjdCBleHBlY3RzLCBwbHVzIHRoZSBjdXJyZW50IGBpdGVtX2lkIOKGkiAodGVtcGxhdGVfaWQsIHNjaGVtYV9uYW1lKWAgbWFwcGluZyBzdG9yZWQgaW4gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHN5bmMgYXRvbWljYXNzZXRzIHN0YXRlIHdpdGggdGhlIGNvbnRyYWN0LgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuoLLJ+NFbs2IMZ2V0cHJvanN0YXRlywMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cHJvanN0YXRlCnN1bW1hcnk6ICdHZXQgcHJvamVjdGVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHByb2plY3RlZCBzdGF0ZSBvZiBhbiBlbnRpdHkgYWZ0ZXIgYXBwbHlpbmcgdGhlIG5leHQgdGFza19jb3VudCBzY2hlZHVsZWQgdGFza3MgKG9yIGFsbCB0YXNrcyBpZiB0YXNrX2NvdW50IGlzIG9taXR0ZWQpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIHByZXZpZXcgdGhlIHJlc3VsdCBvZiBhbiBlbnRpdHkncyBzY2hlZHVsZSB3aXRob3V0IHJlc29sdmluZyBvbi1jaGFpbi4AAFDVIXWzYglnZXRyZWNpcGWmAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZWNpcGUKc3VtbWFyeTogJ0dldCBhIHNpbmdsZSBjcmFmdGluZyByZWNpcGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSByZWNpcGUgd2hvc2Ugb3V0cHV0IG1hdGNoZXMgdGhlIGdpdmVuIGl0ZW0gaWQsIGluY2x1ZGluZyBpdHMgaW5wdXRzLCBibGVuZCB3ZWlnaHRzLCBzdGF0IHNsb3RzLCBhbmQgcmVzb2x2ZWQgaXRlbSBtYXNzIGluZm8uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGlzcGxheSBjcmFmdGluZyByZXF1aXJlbWVudHMuAABW1SF1s2IKZ2V0cmVjaXBlc6wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZXMKc3VtbWFyeTogJ0xpc3QgY3JhZnRpbmcgcmVjaXBlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBjcmFmdGluZyByZWNpcGVzIHN0YXJ0aW5nIGF0IHRoZSBwcm92aWRlZCBsb3dlciBib3VuZCBvdXRwdXQgaXRlbSBpZCwgdXAgdG8gdGhlIHNwZWNpZmllZCBsaW1pdC4gRWFjaCBlbnRyeSBpbmNsdWRlcyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4AAM4GYXWzYgpnZXRyZXNjYXRzngMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzY2F0cwpzdW1tYXJ5OiAnR2V0IHJlc291cmNlIGNhdGVnb3J5IGVudW0gdmFsdWVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcyAob3JlLCBnYXMsIHJlZ29saXRoLCBiaW9tYXNzLCBjcnlzdGFsKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgcmVzb3VyY2Ugc3VidHlwZSBpZGVudGlmaWVycy4AsNpXYXWzYgtnZXRyZXNlcnZlc/wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc2VydmVzCnN1bW1hcnk6ICdHZXQgY3VycmVudCByZXNlcnZlIG1vZGlmaWNhdGlvbnMgYXQgYSBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyB0aGUgY2hhaW4ncyBtb2RpZmljYXRpb25zIHRvIGRlcml2ZWQgcmVzZXJ2ZXMgYXQgdGhlIGdpdmVuIGNvb3JkaW5hdGUgZm9yIHRoZSBjdXJyZW50IGVwb2NoIGFzIGEgbGlzdCBvZiB7c3RyYXR1bSwgcmVtYWluaW5nfSBwYWlycy4gU3RyYXRhIG5vdCBwcmVzZW50IGluIHRoZSByZXNwb25zZSB1c2UgdGhlaXIgZGVyaXZlZCBpbml0aWFsIHJlc2VydmUuIENvbXBvc2Ugd2l0aCBTREsgZGVyaXZhdGlvbiB0byBnZXQgdGhlIGZ1bGwgcGVyLWxvY2F0aW9uIHN0cmF0YSB2aWV3LoAVuppidbNiDGdldHJlc291cmNlc4cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlc291cmNlcwpzdW1tYXJ5OiAnR2V0IGFsbCByZXNvdXJjZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHN1YnNldCBvZiBpdGVtcyBjbGFzc2lmaWVkIGFzIHJlc291cmNlcywgaW5jbHVkaW5nIGVhY2ggcmVzb3VyY2UncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGdhdGhlcmFibGUgbWF0ZXJpYWxzLgCAQm5fhbNiCmdldHNlcnZpY2UAAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgBUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwAAQIwK5UurdAppbXBvcnRjZWxsAOCzy1PlS6t0DGltcG9ydGVudGl0eQAAqqaX5UurdAtpbXBvcnRncm91cABwlTex5kurdAxpbXBvcnRwbGF5ZXIAuq/C6uZLq3QNaW1wb3J0cmVzZXJ2ZQAAVDYZ50urdAtpbXBvcnRzdGF0ZQAAAAAAADAdfQRqb2luxAEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkAAAAADQ0tYkGbGF1bmNoAAAAAAAAkAyNBGxvYWQAgCE2WWVzmZMMbWlncmF0ZXRhc2tzAAAAAKAajpmTB21pZ3N3YXAAAAAAKrqsNpUIbW92ZXRpbGUAAACIVzPp8poJbmZ0aW1ndXJssgMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbmZ0aW1ndXJsCnN1bW1hcnk6ICdHZXQgTkZUIGltYWdlIFVSTCBmb3IgYSBjYXJnbyBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgaW1hZ2UgVVJMIHRoZSBjb250cmFjdCBlbWl0cyBmb3IgYSBnaXZlbiBjYXJnbyBpdGVtLCBvcHRpb25hbGx5IHNjb3BlZCB0byBhIGxvY2F0aW9uLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIGFuZCBORlQgcmVuZGVyZXJzIHRvIGZldGNoIHRoZSBjYW5vbmljYWwgYXJ0d29yayBmb3IgYW4gaXRlbSBvciBwYWNrZWQgZW50aXR5LgAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAZdcghUysCnBsYWNlY2FyZ2/JBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBwbGFjZWNhcmdvCnN1bW1hcnk6ICdSZXN0b3JlIE5GVCBjYXJnbyBvbnRvIGEgaG9zdCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXN0b3JlcyB0aGUgY2FyZ28gcmVjb3JkZWQgaW4gYW4gdW53cmFwcGVkIE5GVCBvbnRvIGEgaG9zdCBlbnRpdHkuIFZhbGlkYXRlcyBob3N0IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHJlbWFpbmluZyBjYXBhY2l0eSwgZGVzZXJpYWxpemVzIHRoZSBORlQncyBpdGVtIGRhdGEsIGFuZCBhcHBlbmRzIGFuIHVud3JhcCB0YXNrIHRvIGRlbGl2ZXIgdGhlIGNhcmdvIHRvIHRoZSBob3N0LiBUaGUgcGxhdGZvcm0gY29udHJhY3QgY3JlZGl0cyB0aGUgZGVwb3NpdCByZWZ1bmQgYW5kIGJ1cm5zIHRoZSBhc3NldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgB8dnkqhUysC3BsYWNlZW50aXR5wAQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VlbnRpdHkKc3VtbWFyeTogJ01hdGVyaWFsaXplIGEgcGFja2VkLWVudGl0eSBORlQgYXMgYSBsaXZlIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIEVtcGxhY2VzIGEgbGl2ZSBvcmJpdGFsIHZlc3NlbCAoc2hpcCBvciBjb250YWluZXIpIGZyb20gaXRzIHBhY2tlZC1lbnRpdHkgTkZUIGRhdGEgYXQgdGhlIHJlY29yZGVkIHdyYXAgb3JpZ2luLCB0aGVuIHF1ZXVlcyB0cmF2ZWwgYW5kIHJlY2hhcmdlIHRhc2tzIHRvIGRlbGl2ZXIgaXQgdG8gdGhlIHRhcmdldCBuZXh1cyBhdCBmdWxsIGVuZXJneS4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAACKXdOQughyZWNoYXJnZc0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlY2hhcmdlCnN1bW1hcnk6ICdSZWNoYXJnZSBzaGlwIGVuZXJneScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2NoZWR1bGUgYSByZWNoYXJnZSB0YXNrIGZvciBhbiBlbnRpdHkgdG8gcmVzdG9yZSBlbmVyZ3kgdG8gZnVsbCBjYXBhY2l0eS4gVGhlIHJlY2hhcmdlIGR1cmF0aW9uIGRlcGVuZHMgb24gY3VycmVudCBlbmVyZ3kgbGV2ZWwgYW5kIHJlY2hhcmdlIHJhdGUu4LPLUzV8l7oMcmVmcnNoZW50aXR5uAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVmcnNoZW50aXR5CnN1bW1hcnk6ICdSZWZyZXNoIGRlcml2ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgZGVyaXZlZCBmaWVsZHMgb24gYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgY2FyZ28gYW5kIG1vZHVsZXMsIHJlZnJlc2hpbmcgY2FwYWJpbGl0eSBzdGF0cyBhbmQgY2FyZ28gbWFzcy4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFVzZWQgdG8gcmVjb25jaWxlIGRlcml2ZWQgc3RhdGUgYWZ0ZXIgZGF0YSBtaWdyYXRpb25zIG9yIGNvbnRyYWN0IHVwZ3JhZGVzLqAiMpeqTaW6DHJlbW92ZW9yYWNsZQAAAAAAKGmmugZyZW5hbWUAAAAAQO1IsboHcmVzb2x2ZdADLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlc29sdmUKc3VtbWFyeTogJ0NvbXBsZXRlIHNjaGVkdWxlZCB0YXNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVzb2x2ZSBjb21wbGV0ZWQgdGFza3MgaW4gYW4gZW50aXR5J3Mgc2NoZWR1bGUsIGFwcGx5aW5nIHRoZWlyIGVmZmVjdHMgKHJlY2hhcmdlIGVuZXJneSwgdXBkYXRlIGxvY2F0aW9uLCBsb2FkL3VubG9hZCBjYXJnbykuIElmIGNvdW50IGlzIHNwZWNpZmllZCwgcmVzb2x2ZSBleGFjdGx5IHRoYXQgbWFueSB0YXNrczsgb3RoZXJ3aXNlIHJlc29sdmUgYWxsIGNvbXBsZXRlZCB0YXNrcy4gRmFpbHMgaWYgY291bnQgZXhjZWVkcyB0aGUgbnVtYmVyIG9mIGNvbXBsZXRlZCB0YXNrcy4AQIxG7UixugpyZXNvbHZlYWxsAAAAAABEo7a6BnJldmVhbAAAAAAq6kSlvAhybW1vZHVsZbwDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJtbW9kdWxlCnN1bW1hcnk6ICdSZW1vdmUgYSBtb2R1bGUgZnJvbSBhIHNsb3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlbW92ZSBhbiBpbnN0YWxsZWQgbW9kdWxlIGZyb20gYSBzbG90IG9uIGEgbGl2ZSBlbnRpdHkgb3IgYSBwYWNrZWQgZW50aXR5IGluIGNhcmdvLiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIG5vIHNjaGVkdWxlZCB0YXNrcy4gVGhlIG1vZHVsZSBpcyByZXR1cm5lZCB0byBjYXJnby4gRmFpbHMgaWYgdGhlIGVudGl0eSBkb2VzIG5vdCBoYXZlIGVub3VnaCBjYXJnbyBjYXBhY2l0eSB0byBob2xkIHRoZSByZXR1cm5lZCBtb2R1bGUuAAAAbKG8prwIcm1uZnRjZmehAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW5mdGNmZwpzdW1tYXJ5OiAnUmVtb3ZlIE5GVCB0ZW1wbGF0ZSBtYXBwaW5nIGZvciBhbiBpdGVtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgdGhlIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBtYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIGl0ZW0gaWQgZnJvbSB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIEFmdGVyIHJlbW92YWwgdGhlIGl0ZW0gY2FuIG5vIGxvbmdlciBiZSB3cmFwcGVkIG9yIHVud3JhcHBlZCB1bnRpbCBhIG5ldyBtYXBwaW5nIGlzIHNldC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgAAAMhth7LCCHNldGNpdmljAAAAwOlSirLCCXNldGNvb3JkcwAAAGAL5TWzwglzZXRuZnRjZmfEAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZXRuZnRjZmcKc3VtbWFyeTogJ1NldCBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQmluZCBhbiBpdGVtIGlkIHRvIGFuIEF0b21pY0Fzc2V0cyB0ZW1wbGF0ZSBpZCBhbmQgc2NoZW1hIG5hbWUuIFVzZWQgdG8gY29uZmlndXJlIGhvdyB0aGUgY29udHJhY3QgbWludHMgYW5kIHJlY29nbml6ZXMgTkZUcyBmb3IgYSBnaXZlbiBpdGVtLiBJbnNlcnRzIGEgbmV3IG1hcHBpbmcgaWYgb25lIGRvZXMgbm90IGV4aXN0LCBvciB1cGRhdGVzIHRoZSBleGlzdGluZyBtYXBwaW5nLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAADICiKKs8IJc2V0c29ja2V0AJAibVjdlrPCDHNldHRocmVzaG9sZAAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAAEDFnHXDB3NodXR0bGUAAACg7BrEacYJc3Rvd2Nhcmdv1QUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2NhcmdvCnN1bW1hcnk6ICdSZXNlcnZlIGEgY2FyZ28gc3RhY2sgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYW5kIGNvbnN1bWVzIGEgY2FyZ28gc3RhY2sgb24gYSBsaXZlIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFZhbGlkYXRlcyBlbnRpdHkgb3duZXJzaGlwLCBsb2FkZXJzLCBhbmQgcHJlc2VuY2UgYXQgdGhlIG5leHVzLCBhbmQgY29uZmlybXMgdGhlIHRhcmdldCBjYXJnbyBzdGFjayBpcyBhdmFpbGFibGUgYW5kIG5vdCByZXNlcnZlZCBieSBhIHBlbmRpbmcgdGFzay4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgTkZUJ3MgaW1tdXRhYmxlIGRhdGEsIGFuZCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCBiZWZvcmUgY29uc3VtaW5nIHRoZSBjYXJnby4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAzy5PxWnGCnN0b3dlbnRpdHmZBS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzdG93ZW50aXR5CnN1bW1hcnk6ICdSZXNlcnZlIGFuIGVudGl0eSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBSZXNlcnZlcyBhIHdob2xlIGVudGl0eSAoc2hpcCwgY29udGFpbmVyLCBvciBwbGFuZXRhcnkgc3RydWN0dXJlKSBmb3Igd3JhcHBpbmcgaW50byBhbiBORlQuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28gYW5kIG5vIHNjaGVkdWxlZCB0YXNrcy4gQ29tcHV0ZXMgdGhlIHdyYXAgY29zdCBhbmQgZmVlLCBkZWJpdHMgdGhlbSBmcm9tIHRoZSBvd25lcidzIHBsYXRmb3JtIGRlcG9zaXQgYmFsYW5jZSwgZGVyaXZlcyB0aGUgZW50aXR5IE5GVCdzIGltbXV0YWJsZSBkYXRhLCBtaW50cyB0aGUgTkZUIGlubGluZSBhcyB0aGUgZ2FtZSBjb250cmFjdCwgYW5kIGVyYXNlcyB0aGUgZW50aXR5IGZyb20gdGhlIHdvcmxkLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAICKOlFZDccKc3dhcG1vZHVsZQAAAAAqulwNxwhzd2FwdGlsZQAAAAAgOzzNzQd0cmFuc2l0AAAAAABEtc3NBnRyYXZlbPsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4AwDSxRrXNzQp0cmF2ZWxwbGFuAAAAAJ7GqtLUCHVuZGVwbG955wQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdW5kZXBsb3kKc3VtbWFyeTogJ1BhY2sgYSBkZXBsb3llZCBlbnRpdHkgaW50byBhIGhvc3QnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClBhY2sgYW4gZW50aXR5IGludG8gYSBob3N0IGVudGl0eSdzIGNhcmdvIGFzIGEgcGFja2VkLWVudGl0eSBpdGVtLiBIb3N0IGFuZCB0YXJnZXQgbXVzdCBzaGFyZSB0aGUgc2FtZSBvd25lciBhbmQgY29vcmRpbmF0ZXMsIHRoZSBob3N0IG11c3QgaGF2ZSBsb2FkZXJzIGFuZCBlbm91Z2ggY2FwYWNpdHkgZm9yIHRoZSBwYWNrZWQgbWFzcywgYW5kIHRoZSB0YXJnZXQgbXVzdCBiZSBpZGxlIHdpdGggZW1wdHkgY2FyZ28uIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgYW5kIHNjaGVkdWxlcyB1bmRlcGxveSB0YXNrcyBvbiBib3RoIGVudGl0aWVzOyBvbiByZXNvbHV0aW9uIHRoZSB0YXJnZXQgaXMgZXJhc2VkIGFuZCB0aGUgcGFja2VkIGVudGl0eSBpcyBhZGRlZCB0byB0aGUgaG9zdCdzIGNhcmdvLiBJbnZlcnNlIG9mIGRlcGxveS4AAAAAJEPj1AZ1bmxvYWQAAAAAQCVzWdUHdXBncmFkZQAAAAAAAFCv4QR3YXJwnwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2FycApzdW1tYXJ5OiAnV2FycCB0byBhIGRlc3RpbmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnN0YW50bHkgdGVsZXBvcnQgYW4gZW50aXR5IHRvIGEgZGVzdGluYXRpb24gc3lzdGVtLiBSZXF1aXJlcyB3YXJwIGNhcGFiaWxpdHksIGZ1bGwgZW5lcmd5LCBlbXB0eSBjYXJnbywgYW5kIGFuIGVtcHR5IHNjaGVkdWxlLiBUaGUgZGVzdGluYXRpb24gbXVzdCBiZSBhIHZhbGlkIHN5c3RlbSB3aXRoaW4gd2FycCByYW5nZS4gUmVzb2x2ZXMgaW1tZWRpYXRlbHkgYXMgYSB6ZXJvLWR1cmF0aW9uIHRhc2suAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLRYAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAmFuTIuS2QwNpNjQAAA9jaXZpY2NvbmZpZ19yb3cAAAAAYOlMRANpNjQAAAljbGFpbV9yb3cAAADgqox1RANpNjQAAAtjbHVzdGVyX3JvdwAAAABkJyVFA2k2NAAACmNvbW1pdF9yb3cAAAAA+OzyVANpNjQAAAplbnRpdHlfcm93AABzEvjs8lQDaTY0AAAKZW50aXR5X3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAsAr77PJUA2k2NAAADmVudGl0eV9zZXFfcm93AAAAAICGaFUDaTY0AAAJZXBvY2hfcm93AAAAAACAD30DaTY0AAAHam9iX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAGALqYjMpQNpNjQAABFvcmFjbGVfY29uZmlnX3JvdwAAAACriMylA2k2NAAACm9yYWNsZV9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAARKO2ugNpNjQAAApyZXZlYWxfcm93AAAAQCG3r8IDaTY0AAALc2VydmljZV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cAAAAAAKyqzwNpNjQAAAl0eXBlc19yb3cAAHNrUlTN5QNpNjQAAA53cmFwY29uZmlnX3JvdwAAABlTVM3lA2k2NAAADHdyYXBjb3N0X3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAABFAADINNYUnT4MdGFza19yZXN1bHRzAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAMg0VulMRAx0YXNrX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAACHvrzMRQtqb2JfcmVjZWlwdAAAAA27SKVKDHRhc2tfcmVzdWx0cwAAAAB4GqtKDHRhc2tfcmVzdWx0cwCAzy5PhbBKBnN0cmluZwAAAABc1bJhDHRhc2tfcmVzdWx0cwDANLFe1bJhDHRhc2tfcmVzdWx0cwDAVRnriLJiC2NsdXN0ZXJfcm93AABgbk2KsmILZ2FtZV9jb25maWcAQHaYVpWyYg5leHRlbmRlZF9hc3NldAAUmiZjl7JiBnVpbnQ2NABUPI65qLJiCHVpbnQxNltdAADAEeWpsmILZW51bV9yZXN1bHQAsHLZ5amyYg1lbnRpdHlfaW5mb1tdAADw2eWpsmILZW50aXR5X2luZm+Qp7s1U7qyYhBmb290cHJpbnRfcmVzdWx0AEw2SarssmIPaXRlbWRhdGFfcmVzdWx0AABOTqrssmIPaXRlbV9pZHNfcmVzdWx0AAAAWKrssmIKaXRlbXNfaW5mbwBU9Vmq7LJiBXVpbnQ4gFX1WarssmILZW51bV9yZXN1bHQAAAAAH/qyYgtqb2JzX3Jlc3VsdABMVjJNB7NiEGtpbmRfbWV0YV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZACwqj4nKrNiC2VudW1fcmVzdWx0AABWUScqs2IObW9kdWxlc19yZXN1bHQAAPDnGjWzYgtuZWFyYnlfaW5mbwCAwubkNbNiCHN0cmluZ1tdAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mb6CyyfjRW7NiD3Byb2plY3RlZF9zdGF0ZQAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AIBCbl+Fs2ILc2VydmljZV9yb3cAAAA404izYhVlbnRpdHlfbGF5b3V0c19yZXN1bHQAgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAFSkTV7Ks2INd29ybWhvbGVfaW5mb5AdnubmqullDHRhc2tfcmVzdWx0cwCi2ubmqullDHRhc2tfcmVzdWx0cwAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAAAAANDS1iQx0YXNrX3Jlc3VsdHMAAAAAAJAMjQx0YXNrX3Jlc3VsdHMAAAAquqw2lQx0YXNrX3Jlc3VsdHMAAIhXM+nymgZzdHJpbmcAAGXXIIVMrAx0YXNrX3Jlc3VsdHMAfHZ5KoVMrAx0YXNrX3Jlc3VsdHMAAACKXdOQugx0YXNrX3Jlc3VsdHMAAABA7Uixug9yZXNvbHZlX3Jlc3VsdHMAQIxG7UixuhJyZXNvbHZlYWxsX3Jlc3VsdHMAAABAxZx1wwx0YXNrX3Jlc3VsdHMAAKDsGsRpxgx0YXNrX3Jlc3VsdHMAgM8uT8Vpxgx0YXNrX3Jlc3VsdHMAAAAqulwNxwx0YXNrX3Jlc3VsdHMAAAAgOzzNzQx0YXNrX3Jlc3VsdHMAAAAARLXNzQx0YXNrX3Jlc3VsdHMAwDSxRrXNzQx0YXNrX3Jlc3VsdHMAAACexqrS1Ax0YXNrX3Jlc3VsdHMAAAAAJEPj1Ax0YXNrX3Jlc3VsdHMAAABAJXNZ1Qx0YXNrX3Jlc3VsdHMAAAAAAFCv4Qx0YXNrX3Jlc3VsdHM=');
|
|
452
452
|
const abi = antelope.ABI.from(abiBlob);
|
|
453
453
|
exports.ServerTypes = void 0;
|
|
454
454
|
(function (Types) {
|
|
@@ -569,6 +569,24 @@ exports.ServerTypes = void 0;
|
|
|
569
569
|
antelope.Struct.type('blend')
|
|
570
570
|
], blend);
|
|
571
571
|
Types.blend = blend;
|
|
572
|
+
let builder_lane = class builder_lane extends antelope.Struct {
|
|
573
|
+
};
|
|
574
|
+
tslib.__decorate([
|
|
575
|
+
antelope.Struct.field(antelope.UInt8)
|
|
576
|
+
], builder_lane.prototype, "slot_index", void 0);
|
|
577
|
+
tslib.__decorate([
|
|
578
|
+
antelope.Struct.field(antelope.UInt16)
|
|
579
|
+
], builder_lane.prototype, "speed", void 0);
|
|
580
|
+
tslib.__decorate([
|
|
581
|
+
antelope.Struct.field(antelope.UInt32)
|
|
582
|
+
], builder_lane.prototype, "drain", void 0);
|
|
583
|
+
tslib.__decorate([
|
|
584
|
+
antelope.Struct.field(antelope.UInt16)
|
|
585
|
+
], builder_lane.prototype, "output_pct", void 0);
|
|
586
|
+
builder_lane = tslib.__decorate([
|
|
587
|
+
antelope.Struct.type('builder_lane')
|
|
588
|
+
], builder_lane);
|
|
589
|
+
Types.builder_lane = builder_lane;
|
|
572
590
|
let buildplot = class buildplot extends antelope.Struct {
|
|
573
591
|
};
|
|
574
592
|
tslib.__decorate([
|
|
@@ -632,6 +650,18 @@ exports.ServerTypes = void 0;
|
|
|
632
650
|
antelope.Struct.type('cancel_results')
|
|
633
651
|
], cancel_results);
|
|
634
652
|
Types.cancel_results = cancel_results;
|
|
653
|
+
let canceljob = class canceljob extends antelope.Struct {
|
|
654
|
+
};
|
|
655
|
+
tslib.__decorate([
|
|
656
|
+
antelope.Struct.field(antelope.UInt64)
|
|
657
|
+
], canceljob.prototype, "job_id", void 0);
|
|
658
|
+
tslib.__decorate([
|
|
659
|
+
antelope.Struct.field(antelope.UInt64)
|
|
660
|
+
], canceljob.prototype, "ship_id", void 0);
|
|
661
|
+
canceljob = tslib.__decorate([
|
|
662
|
+
antelope.Struct.type('canceljob')
|
|
663
|
+
], canceljob);
|
|
664
|
+
Types.canceljob = canceljob;
|
|
635
665
|
let cargo_row = class cargo_row extends antelope.Struct {
|
|
636
666
|
};
|
|
637
667
|
tslib.__decorate([
|
|
@@ -683,6 +713,15 @@ exports.ServerTypes = void 0;
|
|
|
683
713
|
antelope.Struct.type('cargo_view')
|
|
684
714
|
], cargo_view);
|
|
685
715
|
Types.cargo_view = cargo_view;
|
|
716
|
+
let civicconfig_row = class civicconfig_row extends antelope.Struct {
|
|
717
|
+
};
|
|
718
|
+
tslib.__decorate([
|
|
719
|
+
antelope.Struct.field(antelope.Name)
|
|
720
|
+
], civicconfig_row.prototype, "civic_owner", void 0);
|
|
721
|
+
civicconfig_row = tslib.__decorate([
|
|
722
|
+
antelope.Struct.type('civicconfig_row')
|
|
723
|
+
], civicconfig_row);
|
|
724
|
+
Types.civicconfig_row = civicconfig_row;
|
|
686
725
|
let claim_row = class claim_row extends antelope.Struct {
|
|
687
726
|
};
|
|
688
727
|
tslib.__decorate([
|
|
@@ -692,6 +731,18 @@ exports.ServerTypes = void 0;
|
|
|
692
731
|
antelope.Struct.type('claim_row')
|
|
693
732
|
], claim_row);
|
|
694
733
|
Types.claim_row = claim_row;
|
|
734
|
+
let claimjob = class claimjob extends antelope.Struct {
|
|
735
|
+
};
|
|
736
|
+
tslib.__decorate([
|
|
737
|
+
antelope.Struct.field(antelope.UInt64)
|
|
738
|
+
], claimjob.prototype, "job_id", void 0);
|
|
739
|
+
tslib.__decorate([
|
|
740
|
+
antelope.Struct.field(antelope.UInt64)
|
|
741
|
+
], claimjob.prototype, "ship_id", void 0);
|
|
742
|
+
claimjob = tslib.__decorate([
|
|
743
|
+
antelope.Struct.type('claimjob')
|
|
744
|
+
], claimjob);
|
|
745
|
+
Types.claimjob = claimjob;
|
|
695
746
|
let cluster_slot = class cluster_slot extends antelope.Struct {
|
|
696
747
|
};
|
|
697
748
|
tslib.__decorate([
|
|
@@ -890,6 +941,21 @@ exports.ServerTypes = void 0;
|
|
|
890
941
|
antelope.Struct.type('coordinates')
|
|
891
942
|
], coordinates);
|
|
892
943
|
Types.coordinates = coordinates;
|
|
944
|
+
let coupling = class coupling extends antelope.Struct {
|
|
945
|
+
};
|
|
946
|
+
tslib.__decorate([
|
|
947
|
+
antelope.Struct.field(entity_ref)
|
|
948
|
+
], coupling.prototype, "counterpart", void 0);
|
|
949
|
+
tslib.__decorate([
|
|
950
|
+
antelope.Struct.field(antelope.UInt64)
|
|
951
|
+
], coupling.prototype, "hold", void 0);
|
|
952
|
+
tslib.__decorate([
|
|
953
|
+
antelope.Struct.field(antelope.UInt8)
|
|
954
|
+
], coupling.prototype, "kind", void 0);
|
|
955
|
+
coupling = tslib.__decorate([
|
|
956
|
+
antelope.Struct.type('coupling')
|
|
957
|
+
], coupling);
|
|
958
|
+
Types.coupling = coupling;
|
|
893
959
|
let craft = class craft extends antelope.Struct {
|
|
894
960
|
};
|
|
895
961
|
tslib.__decorate([
|
|
@@ -932,6 +998,39 @@ exports.ServerTypes = void 0;
|
|
|
932
998
|
antelope.Struct.type('crafter_lane')
|
|
933
999
|
], crafter_lane);
|
|
934
1000
|
Types.crafter_lane = crafter_lane;
|
|
1001
|
+
let craftjob = class craftjob extends antelope.Struct {
|
|
1002
|
+
};
|
|
1003
|
+
tslib.__decorate([
|
|
1004
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1005
|
+
], craftjob.prototype, "ship_id", void 0);
|
|
1006
|
+
tslib.__decorate([
|
|
1007
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1008
|
+
], craftjob.prototype, "workshop_id", void 0);
|
|
1009
|
+
tslib.__decorate([
|
|
1010
|
+
antelope.Struct.field(antelope.UInt8)
|
|
1011
|
+
], craftjob.prototype, "slot", void 0);
|
|
1012
|
+
tslib.__decorate([
|
|
1013
|
+
antelope.Struct.field(antelope.UInt16)
|
|
1014
|
+
], craftjob.prototype, "recipe_id", void 0);
|
|
1015
|
+
tslib.__decorate([
|
|
1016
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1017
|
+
], craftjob.prototype, "quantity", void 0);
|
|
1018
|
+
tslib.__decorate([
|
|
1019
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
1020
|
+
], craftjob.prototype, "inputs", void 0);
|
|
1021
|
+
craftjob = tslib.__decorate([
|
|
1022
|
+
antelope.Struct.type('craftjob')
|
|
1023
|
+
], craftjob);
|
|
1024
|
+
Types.craftjob = craftjob;
|
|
1025
|
+
let delentity = class delentity extends antelope.Struct {
|
|
1026
|
+
};
|
|
1027
|
+
tslib.__decorate([
|
|
1028
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1029
|
+
], delentity.prototype, "entity_id", void 0);
|
|
1030
|
+
delentity = tslib.__decorate([
|
|
1031
|
+
antelope.Struct.type('delentity')
|
|
1032
|
+
], delentity);
|
|
1033
|
+
Types.delentity = delentity;
|
|
935
1034
|
let demolish = class demolish extends antelope.Struct {
|
|
936
1035
|
};
|
|
937
1036
|
tslib.__decorate([
|
|
@@ -1129,18 +1228,18 @@ exports.ServerTypes = void 0;
|
|
|
1129
1228
|
tslib.__decorate([
|
|
1130
1229
|
antelope.Struct.field(cargo_item, { array: true })
|
|
1131
1230
|
], task.prototype, "cargo", void 0);
|
|
1231
|
+
tslib.__decorate([
|
|
1232
|
+
antelope.Struct.field(coupling, { array: true })
|
|
1233
|
+
], task.prototype, "couplings", void 0);
|
|
1132
1234
|
tslib.__decorate([
|
|
1133
1235
|
antelope.Struct.field(entity_ref, { optional: true })
|
|
1134
|
-
], task.prototype, "
|
|
1236
|
+
], task.prototype, "subject", void 0);
|
|
1135
1237
|
tslib.__decorate([
|
|
1136
1238
|
antelope.Struct.field(antelope.UInt64, { optional: true })
|
|
1137
1239
|
], task.prototype, "entitygroup", void 0);
|
|
1138
1240
|
tslib.__decorate([
|
|
1139
1241
|
antelope.Struct.field(antelope.UInt32, { optional: true })
|
|
1140
1242
|
], task.prototype, "energy_cost", void 0);
|
|
1141
|
-
tslib.__decorate([
|
|
1142
|
-
antelope.Struct.field(antelope.UInt64, { optional: true })
|
|
1143
|
-
], task.prototype, "hold", void 0);
|
|
1144
1243
|
tslib.__decorate([
|
|
1145
1244
|
antelope.Struct.field(antelope.UInt16, { optional: true })
|
|
1146
1245
|
], task.prototype, "target_item_id", void 0);
|
|
@@ -1249,6 +1348,9 @@ exports.ServerTypes = void 0;
|
|
|
1249
1348
|
tslib.__decorate([
|
|
1250
1349
|
antelope.Struct.field(crafter_lane, { array: true })
|
|
1251
1350
|
], entity_info.prototype, "crafter_lanes", void 0);
|
|
1351
|
+
tslib.__decorate([
|
|
1352
|
+
antelope.Struct.field(builder_lane, { array: true })
|
|
1353
|
+
], entity_info.prototype, "builder_lanes", void 0);
|
|
1252
1354
|
tslib.__decorate([
|
|
1253
1355
|
antelope.Struct.field(loader_lane, { array: true })
|
|
1254
1356
|
], entity_info.prototype, "loader_lanes", void 0);
|
|
@@ -1288,6 +1390,9 @@ exports.ServerTypes = void 0;
|
|
|
1288
1390
|
tslib.__decorate([
|
|
1289
1391
|
antelope.Struct.field(slot_def, { array: true })
|
|
1290
1392
|
], entity_layout.prototype, "slots", void 0);
|
|
1393
|
+
tslib.__decorate([
|
|
1394
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1395
|
+
], entity_layout.prototype, "base_hullmass", void 0);
|
|
1291
1396
|
entity_layout = tslib.__decorate([
|
|
1292
1397
|
antelope.Struct.type('entity_layout')
|
|
1293
1398
|
], entity_layout);
|
|
@@ -1391,7 +1496,7 @@ exports.ServerTypes = void 0;
|
|
|
1391
1496
|
antelope.Struct.field(antelope.Name)
|
|
1392
1497
|
], entity_task_info.prototype, "entity_type", void 0);
|
|
1393
1498
|
tslib.__decorate([
|
|
1394
|
-
antelope.Struct.field(antelope.
|
|
1499
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1395
1500
|
], entity_task_info.prototype, "task_count", void 0);
|
|
1396
1501
|
tslib.__decorate([
|
|
1397
1502
|
antelope.Struct.field(antelope.TimePoint)
|
|
@@ -1511,6 +1616,30 @@ exports.ServerTypes = void 0;
|
|
|
1511
1616
|
antelope.Struct.type('gather')
|
|
1512
1617
|
], gather);
|
|
1513
1618
|
Types.gather = gather;
|
|
1619
|
+
let gatherplan = class gatherplan extends antelope.Struct {
|
|
1620
|
+
};
|
|
1621
|
+
tslib.__decorate([
|
|
1622
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1623
|
+
], gatherplan.prototype, "source_id", void 0);
|
|
1624
|
+
tslib.__decorate([
|
|
1625
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1626
|
+
], gatherplan.prototype, "destination_id", void 0);
|
|
1627
|
+
tslib.__decorate([
|
|
1628
|
+
antelope.Struct.field(antelope.UInt16)
|
|
1629
|
+
], gatherplan.prototype, "stratum", void 0);
|
|
1630
|
+
tslib.__decorate([
|
|
1631
|
+
antelope.Struct.field(antelope.UInt32)
|
|
1632
|
+
], gatherplan.prototype, "quantity", void 0);
|
|
1633
|
+
tslib.__decorate([
|
|
1634
|
+
antelope.Struct.field('bool')
|
|
1635
|
+
], gatherplan.prototype, "recharge", void 0);
|
|
1636
|
+
tslib.__decorate([
|
|
1637
|
+
antelope.Struct.field(antelope.Bytes)
|
|
1638
|
+
], gatherplan.prototype, "slots", void 0);
|
|
1639
|
+
gatherplan = tslib.__decorate([
|
|
1640
|
+
antelope.Struct.type('gatherplan')
|
|
1641
|
+
], gatherplan);
|
|
1642
|
+
Types.gatherplan = gatherplan;
|
|
1514
1643
|
let genesisfleet = class genesisfleet extends antelope.Struct {
|
|
1515
1644
|
};
|
|
1516
1645
|
tslib.__decorate([
|
|
@@ -1646,6 +1775,15 @@ exports.ServerTypes = void 0;
|
|
|
1646
1775
|
antelope.Struct.type('getitemtypes')
|
|
1647
1776
|
], getitemtypes);
|
|
1648
1777
|
Types.getitemtypes = getitemtypes;
|
|
1778
|
+
let getjobs = class getjobs extends antelope.Struct {
|
|
1779
|
+
};
|
|
1780
|
+
tslib.__decorate([
|
|
1781
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1782
|
+
], getjobs.prototype, "workshop_id", void 0);
|
|
1783
|
+
getjobs = tslib.__decorate([
|
|
1784
|
+
antelope.Struct.type('getjobs')
|
|
1785
|
+
], getjobs);
|
|
1786
|
+
Types.getjobs = getjobs;
|
|
1649
1787
|
let getkindmeta = class getkindmeta extends antelope.Struct {
|
|
1650
1788
|
};
|
|
1651
1789
|
getkindmeta = tslib.__decorate([
|
|
@@ -1778,6 +1916,15 @@ exports.ServerTypes = void 0;
|
|
|
1778
1916
|
antelope.Struct.type('getresources')
|
|
1779
1917
|
], getresources);
|
|
1780
1918
|
Types.getresources = getresources;
|
|
1919
|
+
let getservice = class getservice extends antelope.Struct {
|
|
1920
|
+
};
|
|
1921
|
+
tslib.__decorate([
|
|
1922
|
+
antelope.Struct.field(antelope.UInt64)
|
|
1923
|
+
], getservice.prototype, "workshop_id", void 0);
|
|
1924
|
+
getservice = tslib.__decorate([
|
|
1925
|
+
antelope.Struct.type('getservice')
|
|
1926
|
+
], getservice);
|
|
1927
|
+
Types.getservice = getservice;
|
|
1781
1928
|
let getslots = class getslots extends antelope.Struct {
|
|
1782
1929
|
};
|
|
1783
1930
|
getslots = tslib.__decorate([
|
|
@@ -1889,6 +2036,24 @@ exports.ServerTypes = void 0;
|
|
|
1889
2036
|
antelope.Struct.type('importcargo')
|
|
1890
2037
|
], importcargo);
|
|
1891
2038
|
Types.importcargo = importcargo;
|
|
2039
|
+
let importcell = class importcell extends antelope.Struct {
|
|
2040
|
+
};
|
|
2041
|
+
tslib.__decorate([
|
|
2042
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2043
|
+
], importcell.prototype, "root", void 0);
|
|
2044
|
+
tslib.__decorate([
|
|
2045
|
+
antelope.Struct.field(antelope.Int8)
|
|
2046
|
+
], importcell.prototype, "gx", void 0);
|
|
2047
|
+
tslib.__decorate([
|
|
2048
|
+
antelope.Struct.field(antelope.Int8)
|
|
2049
|
+
], importcell.prototype, "gy", void 0);
|
|
2050
|
+
tslib.__decorate([
|
|
2051
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2052
|
+
], importcell.prototype, "entity_id", void 0);
|
|
2053
|
+
importcell = tslib.__decorate([
|
|
2054
|
+
antelope.Struct.type('importcell')
|
|
2055
|
+
], importcell);
|
|
2056
|
+
Types.importcell = importcell;
|
|
1892
2057
|
let importentity = class importentity extends antelope.Struct {
|
|
1893
2058
|
};
|
|
1894
2059
|
tslib.__decorate([
|
|
@@ -2099,6 +2264,72 @@ exports.ServerTypes = void 0;
|
|
|
2099
2264
|
antelope.Struct.type('items_info')
|
|
2100
2265
|
], items_info);
|
|
2101
2266
|
Types.items_info = items_info;
|
|
2267
|
+
let job_receipt = class job_receipt extends antelope.Struct {
|
|
2268
|
+
};
|
|
2269
|
+
tslib.__decorate([
|
|
2270
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2271
|
+
], job_receipt.prototype, "job_id", void 0);
|
|
2272
|
+
tslib.__decorate([
|
|
2273
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
2274
|
+
], job_receipt.prototype, "starts_at", void 0);
|
|
2275
|
+
tslib.__decorate([
|
|
2276
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
2277
|
+
], job_receipt.prototype, "completes_at", void 0);
|
|
2278
|
+
job_receipt = tslib.__decorate([
|
|
2279
|
+
antelope.Struct.type('job_receipt')
|
|
2280
|
+
], job_receipt);
|
|
2281
|
+
Types.job_receipt = job_receipt;
|
|
2282
|
+
let job_row = class job_row extends antelope.Struct {
|
|
2283
|
+
};
|
|
2284
|
+
tslib.__decorate([
|
|
2285
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2286
|
+
], job_row.prototype, "id", void 0);
|
|
2287
|
+
tslib.__decorate([
|
|
2288
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2289
|
+
], job_row.prototype, "workshop", void 0);
|
|
2290
|
+
tslib.__decorate([
|
|
2291
|
+
antelope.Struct.field(antelope.UInt8)
|
|
2292
|
+
], job_row.prototype, "socket", void 0);
|
|
2293
|
+
tslib.__decorate([
|
|
2294
|
+
antelope.Struct.field(antelope.Name)
|
|
2295
|
+
], job_row.prototype, "owner", void 0);
|
|
2296
|
+
tslib.__decorate([
|
|
2297
|
+
antelope.Struct.field(antelope.UInt64)
|
|
2298
|
+
], job_row.prototype, "ship_id", void 0);
|
|
2299
|
+
tslib.__decorate([
|
|
2300
|
+
antelope.Struct.field(coordinates)
|
|
2301
|
+
], job_row.prototype, "coords", void 0);
|
|
2302
|
+
tslib.__decorate([
|
|
2303
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
2304
|
+
], job_row.prototype, "starts_at", void 0);
|
|
2305
|
+
tslib.__decorate([
|
|
2306
|
+
antelope.Struct.field(antelope.TimePoint)
|
|
2307
|
+
], job_row.prototype, "completes_at", void 0);
|
|
2308
|
+
tslib.__decorate([
|
|
2309
|
+
antelope.Struct.field(antelope.UInt16)
|
|
2310
|
+
], job_row.prototype, "recipe_id", void 0);
|
|
2311
|
+
tslib.__decorate([
|
|
2312
|
+
antelope.Struct.field(antelope.UInt32)
|
|
2313
|
+
], job_row.prototype, "quantity", void 0);
|
|
2314
|
+
tslib.__decorate([
|
|
2315
|
+
antelope.Struct.field(antelope.UInt32)
|
|
2316
|
+
], job_row.prototype, "energy_paid", void 0);
|
|
2317
|
+
tslib.__decorate([
|
|
2318
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
2319
|
+
], job_row.prototype, "cargo", void 0);
|
|
2320
|
+
job_row = tslib.__decorate([
|
|
2321
|
+
antelope.Struct.type('job_row')
|
|
2322
|
+
], job_row);
|
|
2323
|
+
Types.job_row = job_row;
|
|
2324
|
+
let jobs_result = class jobs_result extends antelope.Struct {
|
|
2325
|
+
};
|
|
2326
|
+
tslib.__decorate([
|
|
2327
|
+
antelope.Struct.field(job_row, { array: true })
|
|
2328
|
+
], jobs_result.prototype, "jobs", void 0);
|
|
2329
|
+
jobs_result = tslib.__decorate([
|
|
2330
|
+
antelope.Struct.type('jobs_result')
|
|
2331
|
+
], jobs_result);
|
|
2332
|
+
Types.jobs_result = jobs_result;
|
|
2102
2333
|
let join = class join extends antelope.Struct {
|
|
2103
2334
|
};
|
|
2104
2335
|
tslib.__decorate([
|
|
@@ -2234,6 +2465,24 @@ exports.ServerTypes = void 0;
|
|
|
2234
2465
|
antelope.Struct.type('location_info')
|
|
2235
2466
|
], location_info);
|
|
2236
2467
|
Types.location_info = location_info;
|
|
2468
|
+
let migratetasks = class migratetasks extends antelope.Struct {
|
|
2469
|
+
};
|
|
2470
|
+
tslib.__decorate([
|
|
2471
|
+
antelope.Struct.field(antelope.UInt32)
|
|
2472
|
+
], migratetasks.prototype, "batch", void 0);
|
|
2473
|
+
migratetasks = tslib.__decorate([
|
|
2474
|
+
antelope.Struct.type('migratetasks')
|
|
2475
|
+
], migratetasks);
|
|
2476
|
+
Types.migratetasks = migratetasks;
|
|
2477
|
+
let migswap = class migswap extends antelope.Struct {
|
|
2478
|
+
};
|
|
2479
|
+
tslib.__decorate([
|
|
2480
|
+
antelope.Struct.field(antelope.UInt32)
|
|
2481
|
+
], migswap.prototype, "batch", void 0);
|
|
2482
|
+
migswap = tslib.__decorate([
|
|
2483
|
+
antelope.Struct.type('migswap')
|
|
2484
|
+
], migswap);
|
|
2485
|
+
Types.migswap = migswap;
|
|
2237
2486
|
let module_info = class module_info extends antelope.Struct {
|
|
2238
2487
|
};
|
|
2239
2488
|
tslib.__decorate([
|
|
@@ -2587,6 +2836,9 @@ exports.ServerTypes = void 0;
|
|
|
2587
2836
|
tslib.__decorate([
|
|
2588
2837
|
antelope.Struct.field(crafter_lane, { array: true })
|
|
2589
2838
|
], projected_state.prototype, "crafter_lanes", void 0);
|
|
2839
|
+
tslib.__decorate([
|
|
2840
|
+
antelope.Struct.field(builder_lane, { array: true })
|
|
2841
|
+
], projected_state.prototype, "builder_lanes", void 0);
|
|
2590
2842
|
tslib.__decorate([
|
|
2591
2843
|
antelope.Struct.field(loader_lane, { array: true })
|
|
2592
2844
|
], projected_state.prototype, "loader_lanes", void 0);
|
|
@@ -2795,6 +3047,48 @@ exports.ServerTypes = void 0;
|
|
|
2795
3047
|
antelope.Struct.type('rmnftcfg')
|
|
2796
3048
|
], rmnftcfg);
|
|
2797
3049
|
Types.rmnftcfg = rmnftcfg;
|
|
3050
|
+
let route_waypoint = class route_waypoint extends antelope.Struct {
|
|
3051
|
+
};
|
|
3052
|
+
tslib.__decorate([
|
|
3053
|
+
antelope.Struct.field(antelope.Int64)
|
|
3054
|
+
], route_waypoint.prototype, "x", void 0);
|
|
3055
|
+
tslib.__decorate([
|
|
3056
|
+
antelope.Struct.field(antelope.Int64)
|
|
3057
|
+
], route_waypoint.prototype, "y", void 0);
|
|
3058
|
+
route_waypoint = tslib.__decorate([
|
|
3059
|
+
antelope.Struct.type('route_waypoint')
|
|
3060
|
+
], route_waypoint);
|
|
3061
|
+
Types.route_waypoint = route_waypoint;
|
|
3062
|
+
let service_socket = class service_socket extends antelope.Struct {
|
|
3063
|
+
};
|
|
3064
|
+
tslib.__decorate([
|
|
3065
|
+
antelope.Struct.field('bool')
|
|
3066
|
+
], service_socket.prototype, "open", void 0);
|
|
3067
|
+
service_socket = tslib.__decorate([
|
|
3068
|
+
antelope.Struct.type('service_socket')
|
|
3069
|
+
], service_socket);
|
|
3070
|
+
Types.service_socket = service_socket;
|
|
3071
|
+
let service_row = class service_row extends antelope.Struct {
|
|
3072
|
+
};
|
|
3073
|
+
tslib.__decorate([
|
|
3074
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3075
|
+
], service_row.prototype, "entity", void 0);
|
|
3076
|
+
tslib.__decorate([
|
|
3077
|
+
antelope.Struct.field(service_socket, { array: true })
|
|
3078
|
+
], service_row.prototype, "sockets", void 0);
|
|
3079
|
+
service_row = tslib.__decorate([
|
|
3080
|
+
antelope.Struct.type('service_row')
|
|
3081
|
+
], service_row);
|
|
3082
|
+
Types.service_row = service_row;
|
|
3083
|
+
let setcivic = class setcivic extends antelope.Struct {
|
|
3084
|
+
};
|
|
3085
|
+
tslib.__decorate([
|
|
3086
|
+
antelope.Struct.field(antelope.Name)
|
|
3087
|
+
], setcivic.prototype, "account", void 0);
|
|
3088
|
+
setcivic = tslib.__decorate([
|
|
3089
|
+
antelope.Struct.type('setcivic')
|
|
3090
|
+
], setcivic);
|
|
3091
|
+
Types.setcivic = setcivic;
|
|
2798
3092
|
let setcoords = class setcoords extends antelope.Struct {
|
|
2799
3093
|
};
|
|
2800
3094
|
tslib.__decorate([
|
|
@@ -2825,6 +3119,21 @@ exports.ServerTypes = void 0;
|
|
|
2825
3119
|
antelope.Struct.type('setnftcfg')
|
|
2826
3120
|
], setnftcfg);
|
|
2827
3121
|
Types.setnftcfg = setnftcfg;
|
|
3122
|
+
let setsocket = class setsocket extends antelope.Struct {
|
|
3123
|
+
};
|
|
3124
|
+
tslib.__decorate([
|
|
3125
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3126
|
+
], setsocket.prototype, "workshop_id", void 0);
|
|
3127
|
+
tslib.__decorate([
|
|
3128
|
+
antelope.Struct.field(antelope.UInt8)
|
|
3129
|
+
], setsocket.prototype, "slot", void 0);
|
|
3130
|
+
tslib.__decorate([
|
|
3131
|
+
antelope.Struct.field('bool')
|
|
3132
|
+
], setsocket.prototype, "open", void 0);
|
|
3133
|
+
setsocket = tslib.__decorate([
|
|
3134
|
+
antelope.Struct.type('setsocket')
|
|
3135
|
+
], setsocket);
|
|
3136
|
+
Types.setsocket = setsocket;
|
|
2828
3137
|
let setthreshold = class setthreshold extends antelope.Struct {
|
|
2829
3138
|
};
|
|
2830
3139
|
tslib.__decorate([
|
|
@@ -2861,6 +3170,24 @@ exports.ServerTypes = void 0;
|
|
|
2861
3170
|
antelope.Struct.type('setwrapfee')
|
|
2862
3171
|
], setwrapfee);
|
|
2863
3172
|
Types.setwrapfee = setwrapfee;
|
|
3173
|
+
let shuttle = class shuttle extends antelope.Struct {
|
|
3174
|
+
};
|
|
3175
|
+
tslib.__decorate([
|
|
3176
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3177
|
+
], shuttle.prototype, "carrier", void 0);
|
|
3178
|
+
tslib.__decorate([
|
|
3179
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3180
|
+
], shuttle.prototype, "from_id", void 0);
|
|
3181
|
+
tslib.__decorate([
|
|
3182
|
+
antelope.Struct.field(antelope.UInt64)
|
|
3183
|
+
], shuttle.prototype, "to_id", void 0);
|
|
3184
|
+
tslib.__decorate([
|
|
3185
|
+
antelope.Struct.field(cargo_item, { array: true })
|
|
3186
|
+
], shuttle.prototype, "items", void 0);
|
|
3187
|
+
shuttle = tslib.__decorate([
|
|
3188
|
+
antelope.Struct.type('shuttle')
|
|
3189
|
+
], shuttle);
|
|
3190
|
+
Types.shuttle = shuttle;
|
|
2864
3191
|
let stowcargo = class stowcargo extends antelope.Struct {
|
|
2865
3192
|
};
|
|
2866
3193
|
tslib.__decorate([
|
|
@@ -3029,6 +3356,21 @@ exports.ServerTypes = void 0;
|
|
|
3029
3356
|
antelope.Struct.type('travel')
|
|
3030
3357
|
], travel);
|
|
3031
3358
|
Types.travel = travel;
|
|
3359
|
+
let travelplan = class travelplan extends antelope.Struct {
|
|
3360
|
+
};
|
|
3361
|
+
tslib.__decorate([
|
|
3362
|
+
antelope.Struct.field(entity_ref, { array: true })
|
|
3363
|
+
], travelplan.prototype, "entities", void 0);
|
|
3364
|
+
tslib.__decorate([
|
|
3365
|
+
antelope.Struct.field(route_waypoint, { array: true })
|
|
3366
|
+
], travelplan.prototype, "waypoints", void 0);
|
|
3367
|
+
tslib.__decorate([
|
|
3368
|
+
antelope.Struct.field('bool')
|
|
3369
|
+
], travelplan.prototype, "recharge", void 0);
|
|
3370
|
+
travelplan = tslib.__decorate([
|
|
3371
|
+
antelope.Struct.type('travelplan')
|
|
3372
|
+
], travelplan);
|
|
3373
|
+
Types.travelplan = travelplan;
|
|
3032
3374
|
let types_row = class types_row extends antelope.Struct {
|
|
3033
3375
|
};
|
|
3034
3376
|
tslib.__decorate([
|
|
@@ -3164,19 +3506,23 @@ exports.ServerTypes = void 0;
|
|
|
3164
3506
|
})(exports.ServerTypes || (exports.ServerTypes = {}));
|
|
3165
3507
|
const TableMap = {
|
|
3166
3508
|
cargo: exports.ServerTypes.cargo_row,
|
|
3509
|
+
civicconfig: exports.ServerTypes.civicconfig_row,
|
|
3167
3510
|
claims: exports.ServerTypes.claim_row,
|
|
3168
3511
|
cluster: exports.ServerTypes.cluster_row,
|
|
3169
3512
|
commit: exports.ServerTypes.commit_row,
|
|
3170
3513
|
entity: exports.ServerTypes.entity_row,
|
|
3514
|
+
'entity.mig': exports.ServerTypes.entity_row,
|
|
3171
3515
|
entitygroup: exports.ServerTypes.entitygroup_row,
|
|
3172
3516
|
entityseq: exports.ServerTypes.entity_seq_row,
|
|
3173
3517
|
epoch: exports.ServerTypes.epoch_row,
|
|
3518
|
+
jobs: exports.ServerTypes.job_row,
|
|
3174
3519
|
nftconfig: exports.ServerTypes.nftconfig_row,
|
|
3175
3520
|
oraclecfg: exports.ServerTypes.oracle_config_row,
|
|
3176
3521
|
oracles: exports.ServerTypes.oracle_row,
|
|
3177
3522
|
player: exports.ServerTypes.player_row,
|
|
3178
3523
|
reserve: exports.ServerTypes.reserve_row,
|
|
3179
3524
|
reveal: exports.ServerTypes.reveal_row,
|
|
3525
|
+
service: exports.ServerTypes.service_row,
|
|
3180
3526
|
state: exports.ServerTypes.state_row,
|
|
3181
3527
|
types: exports.ServerTypes.types_row,
|
|
3182
3528
|
wrapconfig: exports.ServerTypes.wrapconfig_row,
|
|
@@ -3297,11 +3643,13 @@ const INSUFFICIENT_BALANCE = 'Insufficient balance.';
|
|
|
3297
3643
|
const INSUFFICIENT_ITEM_QUANTITY = 'Insufficient quantity in cargo.';
|
|
3298
3644
|
const INSUFFICIENT_ITEM_SUPPLY = 'Insufficient supply of item at location.';
|
|
3299
3645
|
|
|
3300
|
-
const PRECISION
|
|
3646
|
+
const PRECISION = 10000;
|
|
3301
3647
|
const CRAFT_ENERGY_DIVISOR = 150000;
|
|
3302
3648
|
const PLANETARY_STRUCTURE_Z = 0;
|
|
3303
3649
|
const CONTAINER_Z = 300;
|
|
3304
3650
|
const TRAVEL_MAX_DURATION = 86400;
|
|
3651
|
+
const BASE_HAUL_PENALTY_MILLI$1 = 300;
|
|
3652
|
+
const HAULER_EFFICIENCY_DENOM$1 = 10000;
|
|
3305
3653
|
const MIN_ORBITAL_ALTITUDE = 800;
|
|
3306
3654
|
const MAX_ORBITAL_ALTITUDE = 3000;
|
|
3307
3655
|
const BASE_ORBITAL_MASS = 100000;
|
|
@@ -3317,15 +3665,15 @@ exports.TaskType = void 0;
|
|
|
3317
3665
|
TaskType[TaskType["GATHER"] = 5] = "GATHER";
|
|
3318
3666
|
TaskType[TaskType["WARP"] = 6] = "WARP";
|
|
3319
3667
|
TaskType[TaskType["CRAFT"] = 7] = "CRAFT";
|
|
3320
|
-
TaskType[TaskType["DEPLOY"] = 8] = "DEPLOY";
|
|
3321
3668
|
TaskType[TaskType["TRANSIT"] = 9] = "TRANSIT";
|
|
3322
3669
|
TaskType[TaskType["UNWRAP"] = 10] = "UNWRAP";
|
|
3323
3670
|
TaskType[TaskType["UNDEPLOY"] = 11] = "UNDEPLOY";
|
|
3671
|
+
TaskType[TaskType["LAUNCH"] = 12] = "LAUNCH";
|
|
3324
3672
|
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
3325
|
-
TaskType[TaskType["CLAIMPLOT"] = 14] = "CLAIMPLOT";
|
|
3326
3673
|
TaskType[TaskType["BUILDPLOT"] = 15] = "BUILDPLOT";
|
|
3327
3674
|
TaskType[TaskType["CHARGE"] = 16] = "CHARGE";
|
|
3328
3675
|
TaskType[TaskType["UPGRADE"] = 17] = "UPGRADE";
|
|
3676
|
+
TaskType[TaskType["SHUTTLE"] = 18] = "SHUTTLE";
|
|
3329
3677
|
})(exports.TaskType || (exports.TaskType = {}));
|
|
3330
3678
|
exports.HoldKind = void 0;
|
|
3331
3679
|
(function (HoldKind) {
|
|
@@ -3333,6 +3681,7 @@ exports.HoldKind = void 0;
|
|
|
3333
3681
|
HoldKind[HoldKind["PUSH"] = 2] = "PUSH";
|
|
3334
3682
|
HoldKind[HoldKind["GATHER"] = 3] = "GATHER";
|
|
3335
3683
|
HoldKind[HoldKind["BUILD"] = 4] = "BUILD";
|
|
3684
|
+
HoldKind[HoldKind["FLIGHT"] = 5] = "FLIGHT";
|
|
3336
3685
|
HoldKind[HoldKind["UPGRADE"] = 6] = "UPGRADE";
|
|
3337
3686
|
})(exports.HoldKind || (exports.HoldKind = {}));
|
|
3338
3687
|
exports.LocationType = void 0;
|
|
@@ -3467,6 +3816,7 @@ const ITEM_HAULER_T1 = 10106;
|
|
|
3467
3816
|
const ITEM_WARP_T1 = 10107;
|
|
3468
3817
|
const ITEM_BATTERY_T1 = 10108;
|
|
3469
3818
|
const ITEM_LAUNCHER_T1 = 10109;
|
|
3819
|
+
const ITEM_BUILDER_T1 = 10110;
|
|
3470
3820
|
const ITEM_CONTAINER_T1_PACKED = 10200;
|
|
3471
3821
|
const ITEM_SHIP_T1_PACKED = 10201;
|
|
3472
3822
|
const ITEM_WAREHOUSE_T1_PACKED = 10202;
|
|
@@ -3475,6 +3825,15 @@ const ITEM_FACTORY_T1_PACKED = 10204;
|
|
|
3475
3825
|
const ITEM_MASS_DRIVER_T1_PACKED = 10205;
|
|
3476
3826
|
const ITEM_MASS_CATCHER_T1_PACKED = 10206;
|
|
3477
3827
|
const ITEM_HUB_T1_PACKED = 10207;
|
|
3828
|
+
const ITEM_WORKSHOP_T1_PACKED = 10208;
|
|
3829
|
+
const ITEM_ROUSTABOUT_T1_PACKED = 10210;
|
|
3830
|
+
const ITEM_PROSPECTOR_T1_PACKED = 10211;
|
|
3831
|
+
const ITEM_TENDER_T1_PACKED = 10212;
|
|
3832
|
+
const ITEM_WRIGHT_T1_PACKED = 10213;
|
|
3833
|
+
const ITEM_TUG_T1_PACKED = 10214;
|
|
3834
|
+
const ITEM_PORTER_T1_PACKED = 10215;
|
|
3835
|
+
const ITEM_WRANGLER_T1_PACKED = 10216;
|
|
3836
|
+
const ITEM_DREDGER_T1_PACKED = 10217;
|
|
3478
3837
|
const ITEM_PLATE_T2 = 20001;
|
|
3479
3838
|
const ITEM_FRAME_T2 = 20002;
|
|
3480
3839
|
const ITEM_PLASMA_CELL_T2 = 20003;
|
|
@@ -4278,47 +4637,31 @@ var recipes = [
|
|
|
4278
4637
|
]
|
|
4279
4638
|
},
|
|
4280
4639
|
{
|
|
4281
|
-
outputItemId:
|
|
4282
|
-
outputMass:
|
|
4640
|
+
outputItemId: 10110,
|
|
4641
|
+
outputMass: 960000,
|
|
4283
4642
|
inputs: [
|
|
4284
4643
|
{
|
|
4285
|
-
itemId:
|
|
4286
|
-
quantity:
|
|
4644
|
+
itemId: 10005,
|
|
4645
|
+
quantity: 300
|
|
4287
4646
|
},
|
|
4288
4647
|
{
|
|
4289
|
-
itemId:
|
|
4290
|
-
quantity:
|
|
4648
|
+
itemId: 10002,
|
|
4649
|
+
quantity: 300
|
|
4291
4650
|
}
|
|
4292
4651
|
],
|
|
4293
4652
|
statSlots: [
|
|
4294
|
-
{
|
|
4295
|
-
sources: [
|
|
4296
|
-
{
|
|
4297
|
-
inputIndex: 0,
|
|
4298
|
-
statIndex: 0
|
|
4299
|
-
}
|
|
4300
|
-
]
|
|
4301
|
-
},
|
|
4302
|
-
{
|
|
4303
|
-
sources: [
|
|
4304
|
-
{
|
|
4305
|
-
inputIndex: 0,
|
|
4306
|
-
statIndex: 1
|
|
4307
|
-
}
|
|
4308
|
-
]
|
|
4309
|
-
},
|
|
4310
4653
|
{
|
|
4311
4654
|
sources: [
|
|
4312
4655
|
{
|
|
4313
4656
|
inputIndex: 1,
|
|
4314
|
-
statIndex:
|
|
4657
|
+
statIndex: 1
|
|
4315
4658
|
}
|
|
4316
4659
|
]
|
|
4317
4660
|
},
|
|
4318
4661
|
{
|
|
4319
4662
|
sources: [
|
|
4320
4663
|
{
|
|
4321
|
-
inputIndex:
|
|
4664
|
+
inputIndex: 0,
|
|
4322
4665
|
statIndex: 1
|
|
4323
4666
|
}
|
|
4324
4667
|
]
|
|
@@ -4328,28 +4671,16 @@ var recipes = [
|
|
|
4328
4671
|
]
|
|
4329
4672
|
},
|
|
4330
4673
|
{
|
|
4331
|
-
outputItemId:
|
|
4332
|
-
outputMass:
|
|
4674
|
+
outputItemId: 10200,
|
|
4675
|
+
outputMass: 1900000,
|
|
4333
4676
|
inputs: [
|
|
4334
4677
|
{
|
|
4335
4678
|
itemId: 10001,
|
|
4336
|
-
quantity:
|
|
4679
|
+
quantity: 600
|
|
4337
4680
|
},
|
|
4338
4681
|
{
|
|
4339
4682
|
itemId: 10008,
|
|
4340
|
-
quantity:
|
|
4341
|
-
},
|
|
4342
|
-
{
|
|
4343
|
-
itemId: 10007,
|
|
4344
|
-
quantity: 300
|
|
4345
|
-
},
|
|
4346
|
-
{
|
|
4347
|
-
itemId: 10003,
|
|
4348
|
-
quantity: 300
|
|
4349
|
-
},
|
|
4350
|
-
{
|
|
4351
|
-
itemId: 10006,
|
|
4352
|
-
quantity: 300
|
|
4683
|
+
quantity: 600
|
|
4353
4684
|
}
|
|
4354
4685
|
],
|
|
4355
4686
|
statSlots: [
|
|
@@ -4371,10 +4702,18 @@ var recipes = [
|
|
|
4371
4702
|
},
|
|
4372
4703
|
{
|
|
4373
4704
|
sources: [
|
|
4705
|
+
{
|
|
4706
|
+
inputIndex: 1,
|
|
4707
|
+
statIndex: 0
|
|
4708
|
+
}
|
|
4374
4709
|
]
|
|
4375
4710
|
},
|
|
4376
4711
|
{
|
|
4377
4712
|
sources: [
|
|
4713
|
+
{
|
|
4714
|
+
inputIndex: 1,
|
|
4715
|
+
statIndex: 1
|
|
4716
|
+
}
|
|
4378
4717
|
]
|
|
4379
4718
|
}
|
|
4380
4719
|
],
|
|
@@ -4546,12 +4885,28 @@ var recipes = [
|
|
|
4546
4885
|
]
|
|
4547
4886
|
},
|
|
4548
4887
|
{
|
|
4549
|
-
outputItemId:
|
|
4550
|
-
outputMass:
|
|
4888
|
+
outputItemId: 10210,
|
|
4889
|
+
outputMass: 1600000,
|
|
4551
4890
|
inputs: [
|
|
4552
4891
|
{
|
|
4553
|
-
itemId:
|
|
4554
|
-
quantity:
|
|
4892
|
+
itemId: 10001,
|
|
4893
|
+
quantity: 200
|
|
4894
|
+
},
|
|
4895
|
+
{
|
|
4896
|
+
itemId: 10008,
|
|
4897
|
+
quantity: 200
|
|
4898
|
+
},
|
|
4899
|
+
{
|
|
4900
|
+
itemId: 10007,
|
|
4901
|
+
quantity: 200
|
|
4902
|
+
},
|
|
4903
|
+
{
|
|
4904
|
+
itemId: 10003,
|
|
4905
|
+
quantity: 200
|
|
4906
|
+
},
|
|
4907
|
+
{
|
|
4908
|
+
itemId: 10006,
|
|
4909
|
+
quantity: 200
|
|
4555
4910
|
}
|
|
4556
4911
|
],
|
|
4557
4912
|
statSlots: [
|
|
@@ -4566,27 +4921,746 @@ var recipes = [
|
|
|
4566
4921
|
{
|
|
4567
4922
|
sources: [
|
|
4568
4923
|
{
|
|
4569
|
-
inputIndex:
|
|
4570
|
-
statIndex:
|
|
4924
|
+
inputIndex: 1,
|
|
4925
|
+
statIndex: 0
|
|
4571
4926
|
}
|
|
4572
4927
|
]
|
|
4573
4928
|
},
|
|
4574
4929
|
{
|
|
4575
4930
|
sources: [
|
|
4576
4931
|
{
|
|
4577
|
-
inputIndex:
|
|
4578
|
-
statIndex:
|
|
4932
|
+
inputIndex: 2,
|
|
4933
|
+
statIndex: 0
|
|
4579
4934
|
}
|
|
4580
4935
|
]
|
|
4581
|
-
}
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4936
|
+
},
|
|
4937
|
+
{
|
|
4938
|
+
sources: [
|
|
4939
|
+
{
|
|
4940
|
+
inputIndex: 3,
|
|
4941
|
+
statIndex: 0
|
|
4942
|
+
}
|
|
4943
|
+
]
|
|
4944
|
+
},
|
|
4945
|
+
{
|
|
4946
|
+
sources: [
|
|
4947
|
+
{
|
|
4948
|
+
inputIndex: 4,
|
|
4949
|
+
statIndex: 0
|
|
4950
|
+
}
|
|
4951
|
+
]
|
|
4952
|
+
}
|
|
4953
|
+
],
|
|
4954
|
+
blendWeights: [
|
|
4955
|
+
]
|
|
4956
|
+
},
|
|
4957
|
+
{
|
|
4958
|
+
outputItemId: 10211,
|
|
4959
|
+
outputMass: 2400000,
|
|
4960
|
+
inputs: [
|
|
4961
|
+
{
|
|
4962
|
+
itemId: 10005,
|
|
4963
|
+
quantity: 100
|
|
4964
|
+
},
|
|
4965
|
+
{
|
|
4966
|
+
itemId: 10002,
|
|
4967
|
+
quantity: 100
|
|
4968
|
+
},
|
|
4969
|
+
{
|
|
4970
|
+
itemId: 10010,
|
|
4971
|
+
quantity: 100
|
|
4972
|
+
},
|
|
4973
|
+
{
|
|
4974
|
+
itemId: 10009,
|
|
4975
|
+
quantity: 100
|
|
4976
|
+
},
|
|
4977
|
+
{
|
|
4978
|
+
itemId: 10004,
|
|
4979
|
+
quantity: 100
|
|
4980
|
+
},
|
|
4981
|
+
{
|
|
4982
|
+
itemId: 10210,
|
|
4983
|
+
quantity: 1
|
|
4984
|
+
}
|
|
4985
|
+
],
|
|
4986
|
+
statSlots: [
|
|
4987
|
+
{
|
|
4988
|
+
sources: [
|
|
4989
|
+
{
|
|
4990
|
+
inputIndex: 0,
|
|
4991
|
+
statIndex: 0
|
|
4992
|
+
},
|
|
4993
|
+
{
|
|
4994
|
+
inputIndex: 5,
|
|
4995
|
+
statIndex: 0
|
|
4996
|
+
}
|
|
4997
|
+
]
|
|
4998
|
+
},
|
|
4999
|
+
{
|
|
5000
|
+
sources: [
|
|
5001
|
+
{
|
|
5002
|
+
inputIndex: 1,
|
|
5003
|
+
statIndex: 0
|
|
5004
|
+
},
|
|
5005
|
+
{
|
|
5006
|
+
inputIndex: 5,
|
|
5007
|
+
statIndex: 1
|
|
5008
|
+
}
|
|
5009
|
+
]
|
|
5010
|
+
},
|
|
5011
|
+
{
|
|
5012
|
+
sources: [
|
|
5013
|
+
{
|
|
5014
|
+
inputIndex: 2,
|
|
5015
|
+
statIndex: 0
|
|
5016
|
+
},
|
|
5017
|
+
{
|
|
5018
|
+
inputIndex: 5,
|
|
5019
|
+
statIndex: 2
|
|
5020
|
+
}
|
|
5021
|
+
]
|
|
5022
|
+
},
|
|
5023
|
+
{
|
|
5024
|
+
sources: [
|
|
5025
|
+
{
|
|
5026
|
+
inputIndex: 3,
|
|
5027
|
+
statIndex: 0
|
|
5028
|
+
},
|
|
5029
|
+
{
|
|
5030
|
+
inputIndex: 5,
|
|
5031
|
+
statIndex: 3
|
|
5032
|
+
}
|
|
5033
|
+
]
|
|
5034
|
+
},
|
|
5035
|
+
{
|
|
5036
|
+
sources: [
|
|
5037
|
+
{
|
|
5038
|
+
inputIndex: 4,
|
|
5039
|
+
statIndex: 0
|
|
5040
|
+
},
|
|
5041
|
+
{
|
|
5042
|
+
inputIndex: 5,
|
|
5043
|
+
statIndex: 4
|
|
5044
|
+
}
|
|
5045
|
+
]
|
|
5046
|
+
}
|
|
5047
|
+
],
|
|
5048
|
+
blendWeights: [
|
|
5049
|
+
],
|
|
5050
|
+
sourceSubclass: 10210
|
|
5051
|
+
},
|
|
5052
|
+
{
|
|
5053
|
+
outputItemId: 10212,
|
|
5054
|
+
outputMass: 2400000,
|
|
5055
|
+
inputs: [
|
|
5056
|
+
{
|
|
5057
|
+
itemId: 10005,
|
|
5058
|
+
quantity: 100
|
|
5059
|
+
},
|
|
5060
|
+
{
|
|
5061
|
+
itemId: 10002,
|
|
5062
|
+
quantity: 100
|
|
5063
|
+
},
|
|
5064
|
+
{
|
|
5065
|
+
itemId: 10010,
|
|
5066
|
+
quantity: 100
|
|
5067
|
+
},
|
|
5068
|
+
{
|
|
5069
|
+
itemId: 10009,
|
|
5070
|
+
quantity: 100
|
|
5071
|
+
},
|
|
5072
|
+
{
|
|
5073
|
+
itemId: 10004,
|
|
5074
|
+
quantity: 100
|
|
5075
|
+
},
|
|
5076
|
+
{
|
|
5077
|
+
itemId: 10210,
|
|
5078
|
+
quantity: 1
|
|
5079
|
+
}
|
|
5080
|
+
],
|
|
5081
|
+
statSlots: [
|
|
5082
|
+
{
|
|
5083
|
+
sources: [
|
|
5084
|
+
{
|
|
5085
|
+
inputIndex: 0,
|
|
5086
|
+
statIndex: 0
|
|
5087
|
+
},
|
|
5088
|
+
{
|
|
5089
|
+
inputIndex: 5,
|
|
5090
|
+
statIndex: 0
|
|
5091
|
+
}
|
|
5092
|
+
]
|
|
5093
|
+
},
|
|
5094
|
+
{
|
|
5095
|
+
sources: [
|
|
5096
|
+
{
|
|
5097
|
+
inputIndex: 1,
|
|
5098
|
+
statIndex: 0
|
|
5099
|
+
},
|
|
5100
|
+
{
|
|
5101
|
+
inputIndex: 5,
|
|
5102
|
+
statIndex: 1
|
|
5103
|
+
}
|
|
5104
|
+
]
|
|
5105
|
+
},
|
|
5106
|
+
{
|
|
5107
|
+
sources: [
|
|
5108
|
+
{
|
|
5109
|
+
inputIndex: 2,
|
|
5110
|
+
statIndex: 0
|
|
5111
|
+
},
|
|
5112
|
+
{
|
|
5113
|
+
inputIndex: 5,
|
|
5114
|
+
statIndex: 2
|
|
5115
|
+
}
|
|
5116
|
+
]
|
|
5117
|
+
},
|
|
5118
|
+
{
|
|
5119
|
+
sources: [
|
|
5120
|
+
{
|
|
5121
|
+
inputIndex: 3,
|
|
5122
|
+
statIndex: 0
|
|
5123
|
+
},
|
|
5124
|
+
{
|
|
5125
|
+
inputIndex: 5,
|
|
5126
|
+
statIndex: 3
|
|
5127
|
+
}
|
|
5128
|
+
]
|
|
5129
|
+
},
|
|
5130
|
+
{
|
|
5131
|
+
sources: [
|
|
5132
|
+
{
|
|
5133
|
+
inputIndex: 4,
|
|
5134
|
+
statIndex: 0
|
|
5135
|
+
},
|
|
5136
|
+
{
|
|
5137
|
+
inputIndex: 5,
|
|
5138
|
+
statIndex: 4
|
|
5139
|
+
}
|
|
5140
|
+
]
|
|
5141
|
+
}
|
|
5142
|
+
],
|
|
5143
|
+
blendWeights: [
|
|
5144
|
+
],
|
|
5145
|
+
sourceSubclass: 10210
|
|
5146
|
+
},
|
|
5147
|
+
{
|
|
5148
|
+
outputItemId: 10213,
|
|
5149
|
+
outputMass: 2400000,
|
|
5150
|
+
inputs: [
|
|
5151
|
+
{
|
|
5152
|
+
itemId: 10005,
|
|
5153
|
+
quantity: 100
|
|
5154
|
+
},
|
|
5155
|
+
{
|
|
5156
|
+
itemId: 10002,
|
|
5157
|
+
quantity: 100
|
|
5158
|
+
},
|
|
5159
|
+
{
|
|
5160
|
+
itemId: 10010,
|
|
5161
|
+
quantity: 100
|
|
5162
|
+
},
|
|
5163
|
+
{
|
|
5164
|
+
itemId: 10009,
|
|
5165
|
+
quantity: 100
|
|
5166
|
+
},
|
|
5167
|
+
{
|
|
5168
|
+
itemId: 10004,
|
|
5169
|
+
quantity: 100
|
|
5170
|
+
},
|
|
5171
|
+
{
|
|
5172
|
+
itemId: 10210,
|
|
5173
|
+
quantity: 1
|
|
5174
|
+
}
|
|
5175
|
+
],
|
|
5176
|
+
statSlots: [
|
|
5177
|
+
{
|
|
5178
|
+
sources: [
|
|
5179
|
+
{
|
|
5180
|
+
inputIndex: 0,
|
|
5181
|
+
statIndex: 0
|
|
5182
|
+
},
|
|
5183
|
+
{
|
|
5184
|
+
inputIndex: 5,
|
|
5185
|
+
statIndex: 0
|
|
5186
|
+
}
|
|
5187
|
+
]
|
|
5188
|
+
},
|
|
5189
|
+
{
|
|
5190
|
+
sources: [
|
|
5191
|
+
{
|
|
5192
|
+
inputIndex: 1,
|
|
5193
|
+
statIndex: 0
|
|
5194
|
+
},
|
|
5195
|
+
{
|
|
5196
|
+
inputIndex: 5,
|
|
5197
|
+
statIndex: 1
|
|
5198
|
+
}
|
|
5199
|
+
]
|
|
5200
|
+
},
|
|
5201
|
+
{
|
|
5202
|
+
sources: [
|
|
5203
|
+
{
|
|
5204
|
+
inputIndex: 2,
|
|
5205
|
+
statIndex: 0
|
|
5206
|
+
},
|
|
5207
|
+
{
|
|
5208
|
+
inputIndex: 5,
|
|
5209
|
+
statIndex: 2
|
|
5210
|
+
}
|
|
5211
|
+
]
|
|
5212
|
+
},
|
|
5213
|
+
{
|
|
5214
|
+
sources: [
|
|
5215
|
+
{
|
|
5216
|
+
inputIndex: 3,
|
|
5217
|
+
statIndex: 0
|
|
5218
|
+
},
|
|
5219
|
+
{
|
|
5220
|
+
inputIndex: 5,
|
|
5221
|
+
statIndex: 3
|
|
5222
|
+
}
|
|
5223
|
+
]
|
|
5224
|
+
},
|
|
5225
|
+
{
|
|
5226
|
+
sources: [
|
|
5227
|
+
{
|
|
5228
|
+
inputIndex: 4,
|
|
5229
|
+
statIndex: 0
|
|
5230
|
+
},
|
|
5231
|
+
{
|
|
5232
|
+
inputIndex: 5,
|
|
5233
|
+
statIndex: 4
|
|
5234
|
+
}
|
|
5235
|
+
]
|
|
5236
|
+
}
|
|
5237
|
+
],
|
|
5238
|
+
blendWeights: [
|
|
5239
|
+
],
|
|
5240
|
+
sourceSubclass: 10210
|
|
5241
|
+
},
|
|
5242
|
+
{
|
|
5243
|
+
outputItemId: 10214,
|
|
5244
|
+
outputMass: 2400000,
|
|
5245
|
+
inputs: [
|
|
5246
|
+
{
|
|
5247
|
+
itemId: 10005,
|
|
5248
|
+
quantity: 100
|
|
5249
|
+
},
|
|
5250
|
+
{
|
|
5251
|
+
itemId: 10002,
|
|
5252
|
+
quantity: 100
|
|
5253
|
+
},
|
|
5254
|
+
{
|
|
5255
|
+
itemId: 10010,
|
|
5256
|
+
quantity: 100
|
|
5257
|
+
},
|
|
5258
|
+
{
|
|
5259
|
+
itemId: 10009,
|
|
5260
|
+
quantity: 100
|
|
5261
|
+
},
|
|
5262
|
+
{
|
|
5263
|
+
itemId: 10004,
|
|
5264
|
+
quantity: 100
|
|
5265
|
+
},
|
|
5266
|
+
{
|
|
5267
|
+
itemId: 10210,
|
|
5268
|
+
quantity: 1
|
|
5269
|
+
}
|
|
5270
|
+
],
|
|
5271
|
+
statSlots: [
|
|
5272
|
+
{
|
|
5273
|
+
sources: [
|
|
5274
|
+
{
|
|
5275
|
+
inputIndex: 0,
|
|
5276
|
+
statIndex: 0
|
|
5277
|
+
},
|
|
5278
|
+
{
|
|
5279
|
+
inputIndex: 5,
|
|
5280
|
+
statIndex: 0
|
|
5281
|
+
}
|
|
5282
|
+
]
|
|
5283
|
+
},
|
|
5284
|
+
{
|
|
5285
|
+
sources: [
|
|
5286
|
+
{
|
|
5287
|
+
inputIndex: 1,
|
|
5288
|
+
statIndex: 0
|
|
5289
|
+
},
|
|
5290
|
+
{
|
|
5291
|
+
inputIndex: 5,
|
|
5292
|
+
statIndex: 1
|
|
5293
|
+
}
|
|
5294
|
+
]
|
|
5295
|
+
},
|
|
5296
|
+
{
|
|
5297
|
+
sources: [
|
|
5298
|
+
{
|
|
5299
|
+
inputIndex: 2,
|
|
5300
|
+
statIndex: 0
|
|
5301
|
+
},
|
|
5302
|
+
{
|
|
5303
|
+
inputIndex: 5,
|
|
5304
|
+
statIndex: 2
|
|
5305
|
+
}
|
|
5306
|
+
]
|
|
5307
|
+
},
|
|
5308
|
+
{
|
|
5309
|
+
sources: [
|
|
5310
|
+
{
|
|
5311
|
+
inputIndex: 3,
|
|
5312
|
+
statIndex: 0
|
|
5313
|
+
},
|
|
5314
|
+
{
|
|
5315
|
+
inputIndex: 5,
|
|
5316
|
+
statIndex: 3
|
|
5317
|
+
}
|
|
5318
|
+
]
|
|
5319
|
+
},
|
|
5320
|
+
{
|
|
5321
|
+
sources: [
|
|
5322
|
+
{
|
|
5323
|
+
inputIndex: 4,
|
|
5324
|
+
statIndex: 0
|
|
5325
|
+
},
|
|
5326
|
+
{
|
|
5327
|
+
inputIndex: 5,
|
|
5328
|
+
statIndex: 4
|
|
5329
|
+
}
|
|
5330
|
+
]
|
|
5331
|
+
}
|
|
5332
|
+
],
|
|
5333
|
+
blendWeights: [
|
|
5334
|
+
],
|
|
5335
|
+
sourceSubclass: 10210
|
|
5336
|
+
},
|
|
5337
|
+
{
|
|
5338
|
+
outputItemId: 10215,
|
|
5339
|
+
outputMass: 2400000,
|
|
5340
|
+
inputs: [
|
|
5341
|
+
{
|
|
5342
|
+
itemId: 10005,
|
|
5343
|
+
quantity: 100
|
|
5344
|
+
},
|
|
5345
|
+
{
|
|
5346
|
+
itemId: 10002,
|
|
5347
|
+
quantity: 100
|
|
5348
|
+
},
|
|
5349
|
+
{
|
|
5350
|
+
itemId: 10010,
|
|
5351
|
+
quantity: 100
|
|
5352
|
+
},
|
|
5353
|
+
{
|
|
5354
|
+
itemId: 10009,
|
|
5355
|
+
quantity: 100
|
|
5356
|
+
},
|
|
5357
|
+
{
|
|
5358
|
+
itemId: 10004,
|
|
5359
|
+
quantity: 100
|
|
5360
|
+
},
|
|
5361
|
+
{
|
|
5362
|
+
itemId: 10210,
|
|
5363
|
+
quantity: 1
|
|
5364
|
+
}
|
|
5365
|
+
],
|
|
5366
|
+
statSlots: [
|
|
5367
|
+
{
|
|
5368
|
+
sources: [
|
|
5369
|
+
{
|
|
5370
|
+
inputIndex: 0,
|
|
5371
|
+
statIndex: 0
|
|
5372
|
+
},
|
|
5373
|
+
{
|
|
5374
|
+
inputIndex: 5,
|
|
5375
|
+
statIndex: 0
|
|
5376
|
+
}
|
|
5377
|
+
]
|
|
5378
|
+
},
|
|
5379
|
+
{
|
|
5380
|
+
sources: [
|
|
5381
|
+
{
|
|
5382
|
+
inputIndex: 1,
|
|
5383
|
+
statIndex: 0
|
|
5384
|
+
},
|
|
5385
|
+
{
|
|
5386
|
+
inputIndex: 5,
|
|
5387
|
+
statIndex: 1
|
|
5388
|
+
}
|
|
5389
|
+
]
|
|
5390
|
+
},
|
|
5391
|
+
{
|
|
5392
|
+
sources: [
|
|
5393
|
+
{
|
|
5394
|
+
inputIndex: 2,
|
|
5395
|
+
statIndex: 0
|
|
5396
|
+
},
|
|
5397
|
+
{
|
|
5398
|
+
inputIndex: 5,
|
|
5399
|
+
statIndex: 2
|
|
5400
|
+
}
|
|
5401
|
+
]
|
|
5402
|
+
},
|
|
5403
|
+
{
|
|
5404
|
+
sources: [
|
|
5405
|
+
{
|
|
5406
|
+
inputIndex: 3,
|
|
5407
|
+
statIndex: 0
|
|
5408
|
+
},
|
|
5409
|
+
{
|
|
5410
|
+
inputIndex: 5,
|
|
5411
|
+
statIndex: 3
|
|
5412
|
+
}
|
|
5413
|
+
]
|
|
5414
|
+
},
|
|
5415
|
+
{
|
|
5416
|
+
sources: [
|
|
5417
|
+
{
|
|
5418
|
+
inputIndex: 4,
|
|
5419
|
+
statIndex: 0
|
|
5420
|
+
},
|
|
5421
|
+
{
|
|
5422
|
+
inputIndex: 5,
|
|
5423
|
+
statIndex: 4
|
|
5424
|
+
}
|
|
5425
|
+
]
|
|
5426
|
+
}
|
|
5427
|
+
],
|
|
5428
|
+
blendWeights: [
|
|
5429
|
+
],
|
|
5430
|
+
sourceSubclass: 10210
|
|
5431
|
+
},
|
|
5432
|
+
{
|
|
5433
|
+
outputItemId: 10216,
|
|
5434
|
+
outputMass: 3600000,
|
|
5435
|
+
inputs: [
|
|
5436
|
+
{
|
|
5437
|
+
itemId: 10005,
|
|
5438
|
+
quantity: 150
|
|
5439
|
+
},
|
|
5440
|
+
{
|
|
5441
|
+
itemId: 10002,
|
|
5442
|
+
quantity: 150
|
|
5443
|
+
},
|
|
5444
|
+
{
|
|
5445
|
+
itemId: 10010,
|
|
5446
|
+
quantity: 150
|
|
5447
|
+
},
|
|
5448
|
+
{
|
|
5449
|
+
itemId: 10009,
|
|
5450
|
+
quantity: 150
|
|
5451
|
+
},
|
|
5452
|
+
{
|
|
5453
|
+
itemId: 10004,
|
|
5454
|
+
quantity: 150
|
|
5455
|
+
},
|
|
5456
|
+
{
|
|
5457
|
+
itemId: 10211,
|
|
5458
|
+
quantity: 1
|
|
5459
|
+
}
|
|
5460
|
+
],
|
|
5461
|
+
statSlots: [
|
|
5462
|
+
{
|
|
5463
|
+
sources: [
|
|
5464
|
+
{
|
|
5465
|
+
inputIndex: 0,
|
|
5466
|
+
statIndex: 0
|
|
5467
|
+
},
|
|
5468
|
+
{
|
|
5469
|
+
inputIndex: 5,
|
|
5470
|
+
statIndex: 0
|
|
5471
|
+
}
|
|
5472
|
+
]
|
|
5473
|
+
},
|
|
5474
|
+
{
|
|
5475
|
+
sources: [
|
|
5476
|
+
{
|
|
5477
|
+
inputIndex: 1,
|
|
5478
|
+
statIndex: 0
|
|
5479
|
+
},
|
|
5480
|
+
{
|
|
5481
|
+
inputIndex: 5,
|
|
5482
|
+
statIndex: 1
|
|
5483
|
+
}
|
|
5484
|
+
]
|
|
5485
|
+
},
|
|
5486
|
+
{
|
|
5487
|
+
sources: [
|
|
5488
|
+
{
|
|
5489
|
+
inputIndex: 2,
|
|
5490
|
+
statIndex: 0
|
|
5491
|
+
},
|
|
5492
|
+
{
|
|
5493
|
+
inputIndex: 5,
|
|
5494
|
+
statIndex: 2
|
|
5495
|
+
}
|
|
5496
|
+
]
|
|
5497
|
+
},
|
|
5498
|
+
{
|
|
5499
|
+
sources: [
|
|
5500
|
+
{
|
|
5501
|
+
inputIndex: 3,
|
|
5502
|
+
statIndex: 0
|
|
5503
|
+
},
|
|
5504
|
+
{
|
|
5505
|
+
inputIndex: 5,
|
|
5506
|
+
statIndex: 3
|
|
5507
|
+
}
|
|
5508
|
+
]
|
|
5509
|
+
},
|
|
5510
|
+
{
|
|
5511
|
+
sources: [
|
|
5512
|
+
{
|
|
5513
|
+
inputIndex: 4,
|
|
5514
|
+
statIndex: 0
|
|
5515
|
+
},
|
|
5516
|
+
{
|
|
5517
|
+
inputIndex: 5,
|
|
5518
|
+
statIndex: 4
|
|
5519
|
+
}
|
|
5520
|
+
]
|
|
5521
|
+
}
|
|
5522
|
+
],
|
|
5523
|
+
blendWeights: [
|
|
5524
|
+
],
|
|
5525
|
+
sourceSubclass: 10211
|
|
5526
|
+
},
|
|
5527
|
+
{
|
|
5528
|
+
outputItemId: 10217,
|
|
5529
|
+
outputMass: 3600000,
|
|
5530
|
+
inputs: [
|
|
5531
|
+
{
|
|
5532
|
+
itemId: 10005,
|
|
5533
|
+
quantity: 150
|
|
5534
|
+
},
|
|
5535
|
+
{
|
|
5536
|
+
itemId: 10002,
|
|
5537
|
+
quantity: 150
|
|
5538
|
+
},
|
|
5539
|
+
{
|
|
5540
|
+
itemId: 10010,
|
|
5541
|
+
quantity: 150
|
|
5542
|
+
},
|
|
5543
|
+
{
|
|
5544
|
+
itemId: 10009,
|
|
5545
|
+
quantity: 150
|
|
5546
|
+
},
|
|
5547
|
+
{
|
|
5548
|
+
itemId: 10004,
|
|
5549
|
+
quantity: 150
|
|
5550
|
+
},
|
|
5551
|
+
{
|
|
5552
|
+
itemId: 10211,
|
|
5553
|
+
quantity: 1
|
|
5554
|
+
}
|
|
5555
|
+
],
|
|
5556
|
+
statSlots: [
|
|
5557
|
+
{
|
|
5558
|
+
sources: [
|
|
5559
|
+
{
|
|
5560
|
+
inputIndex: 0,
|
|
5561
|
+
statIndex: 0
|
|
5562
|
+
},
|
|
5563
|
+
{
|
|
5564
|
+
inputIndex: 5,
|
|
5565
|
+
statIndex: 0
|
|
5566
|
+
}
|
|
5567
|
+
]
|
|
5568
|
+
},
|
|
5569
|
+
{
|
|
5570
|
+
sources: [
|
|
5571
|
+
{
|
|
5572
|
+
inputIndex: 1,
|
|
5573
|
+
statIndex: 0
|
|
5574
|
+
},
|
|
5575
|
+
{
|
|
5576
|
+
inputIndex: 5,
|
|
5577
|
+
statIndex: 1
|
|
5578
|
+
}
|
|
5579
|
+
]
|
|
5580
|
+
},
|
|
5581
|
+
{
|
|
5582
|
+
sources: [
|
|
5583
|
+
{
|
|
5584
|
+
inputIndex: 2,
|
|
5585
|
+
statIndex: 0
|
|
5586
|
+
},
|
|
5587
|
+
{
|
|
5588
|
+
inputIndex: 5,
|
|
5589
|
+
statIndex: 2
|
|
5590
|
+
}
|
|
5591
|
+
]
|
|
5592
|
+
},
|
|
5593
|
+
{
|
|
5594
|
+
sources: [
|
|
5595
|
+
{
|
|
5596
|
+
inputIndex: 3,
|
|
5597
|
+
statIndex: 0
|
|
5598
|
+
},
|
|
5599
|
+
{
|
|
5600
|
+
inputIndex: 5,
|
|
5601
|
+
statIndex: 3
|
|
5602
|
+
}
|
|
5603
|
+
]
|
|
5604
|
+
},
|
|
5605
|
+
{
|
|
5606
|
+
sources: [
|
|
5607
|
+
{
|
|
5608
|
+
inputIndex: 4,
|
|
5609
|
+
statIndex: 0
|
|
5610
|
+
},
|
|
5611
|
+
{
|
|
5612
|
+
inputIndex: 5,
|
|
5613
|
+
statIndex: 4
|
|
5614
|
+
}
|
|
5615
|
+
]
|
|
5616
|
+
}
|
|
5617
|
+
],
|
|
5618
|
+
blendWeights: [
|
|
5619
|
+
],
|
|
5620
|
+
sourceSubclass: 10211
|
|
5621
|
+
},
|
|
5622
|
+
{
|
|
5623
|
+
outputItemId: 20001,
|
|
5624
|
+
outputMass: 4800,
|
|
5625
|
+
inputs: [
|
|
5626
|
+
{
|
|
5627
|
+
itemId: 102,
|
|
5628
|
+
quantity: 12
|
|
5629
|
+
}
|
|
5630
|
+
],
|
|
5631
|
+
statSlots: [
|
|
5632
|
+
{
|
|
5633
|
+
sources: [
|
|
5634
|
+
{
|
|
5635
|
+
inputIndex: 0,
|
|
5636
|
+
statIndex: 0
|
|
5637
|
+
}
|
|
5638
|
+
]
|
|
5639
|
+
},
|
|
5640
|
+
{
|
|
5641
|
+
sources: [
|
|
5642
|
+
{
|
|
5643
|
+
inputIndex: 0,
|
|
5644
|
+
statIndex: 2
|
|
5645
|
+
}
|
|
5646
|
+
]
|
|
5647
|
+
},
|
|
5648
|
+
{
|
|
5649
|
+
sources: [
|
|
5650
|
+
{
|
|
5651
|
+
inputIndex: 0,
|
|
5652
|
+
statIndex: 1
|
|
5653
|
+
}
|
|
5654
|
+
]
|
|
5655
|
+
}
|
|
5656
|
+
],
|
|
5657
|
+
blendWeights: [
|
|
5658
|
+
]
|
|
5659
|
+
},
|
|
5660
|
+
{
|
|
5661
|
+
outputItemId: 20002,
|
|
5662
|
+
outputMass: 4800,
|
|
5663
|
+
inputs: [
|
|
4590
5664
|
{
|
|
4591
5665
|
itemId: 402,
|
|
4592
5666
|
quantity: 6
|
|
@@ -5145,27 +6219,27 @@ var recipes = [
|
|
|
5145
6219
|
outputMass: 3840000,
|
|
5146
6220
|
inputs: [
|
|
5147
6221
|
{
|
|
5148
|
-
itemId:
|
|
5149
|
-
quantity:
|
|
6222
|
+
itemId: 20005,
|
|
6223
|
+
quantity: 150
|
|
5150
6224
|
},
|
|
5151
6225
|
{
|
|
5152
|
-
itemId:
|
|
5153
|
-
quantity:
|
|
6226
|
+
itemId: 20002,
|
|
6227
|
+
quantity: 150
|
|
5154
6228
|
},
|
|
5155
6229
|
{
|
|
5156
|
-
itemId:
|
|
5157
|
-
quantity:
|
|
6230
|
+
itemId: 20010,
|
|
6231
|
+
quantity: 150
|
|
5158
6232
|
},
|
|
5159
6233
|
{
|
|
5160
|
-
itemId:
|
|
5161
|
-
quantity:
|
|
6234
|
+
itemId: 20009,
|
|
6235
|
+
quantity: 150
|
|
5162
6236
|
},
|
|
5163
6237
|
{
|
|
5164
|
-
itemId:
|
|
5165
|
-
quantity:
|
|
6238
|
+
itemId: 20004,
|
|
6239
|
+
quantity: 150
|
|
5166
6240
|
},
|
|
5167
6241
|
{
|
|
5168
|
-
itemId:
|
|
6242
|
+
itemId: 10211,
|
|
5169
6243
|
quantity: 1
|
|
5170
6244
|
}
|
|
5171
6245
|
],
|
|
@@ -5185,8 +6259,8 @@ var recipes = [
|
|
|
5185
6259
|
{
|
|
5186
6260
|
sources: [
|
|
5187
6261
|
{
|
|
5188
|
-
inputIndex:
|
|
5189
|
-
statIndex:
|
|
6262
|
+
inputIndex: 1,
|
|
6263
|
+
statIndex: 0
|
|
5190
6264
|
},
|
|
5191
6265
|
{
|
|
5192
6266
|
inputIndex: 5,
|
|
@@ -5196,43 +6270,71 @@ var recipes = [
|
|
|
5196
6270
|
},
|
|
5197
6271
|
{
|
|
5198
6272
|
sources: [
|
|
6273
|
+
{
|
|
6274
|
+
inputIndex: 2,
|
|
6275
|
+
statIndex: 0
|
|
6276
|
+
},
|
|
6277
|
+
{
|
|
6278
|
+
inputIndex: 5,
|
|
6279
|
+
statIndex: 2
|
|
6280
|
+
}
|
|
6281
|
+
]
|
|
6282
|
+
},
|
|
6283
|
+
{
|
|
6284
|
+
sources: [
|
|
6285
|
+
{
|
|
6286
|
+
inputIndex: 3,
|
|
6287
|
+
statIndex: 0
|
|
6288
|
+
},
|
|
6289
|
+
{
|
|
6290
|
+
inputIndex: 5,
|
|
6291
|
+
statIndex: 3
|
|
6292
|
+
}
|
|
5199
6293
|
]
|
|
5200
6294
|
},
|
|
5201
6295
|
{
|
|
5202
6296
|
sources: [
|
|
6297
|
+
{
|
|
6298
|
+
inputIndex: 4,
|
|
6299
|
+
statIndex: 0
|
|
6300
|
+
},
|
|
6301
|
+
{
|
|
6302
|
+
inputIndex: 5,
|
|
6303
|
+
statIndex: 4
|
|
6304
|
+
}
|
|
5203
6305
|
]
|
|
5204
6306
|
}
|
|
5205
6307
|
],
|
|
5206
6308
|
blendWeights: [
|
|
5207
6309
|
],
|
|
5208
|
-
sourceSubclass:
|
|
6310
|
+
sourceSubclass: 10211
|
|
5209
6311
|
},
|
|
5210
6312
|
{
|
|
5211
6313
|
outputItemId: 20211,
|
|
5212
6314
|
outputMass: 3840000,
|
|
5213
6315
|
inputs: [
|
|
5214
6316
|
{
|
|
5215
|
-
itemId:
|
|
5216
|
-
quantity:
|
|
6317
|
+
itemId: 20005,
|
|
6318
|
+
quantity: 150
|
|
5217
6319
|
},
|
|
5218
6320
|
{
|
|
5219
6321
|
itemId: 20002,
|
|
5220
|
-
quantity:
|
|
6322
|
+
quantity: 150
|
|
5221
6323
|
},
|
|
5222
6324
|
{
|
|
5223
|
-
itemId:
|
|
5224
|
-
quantity:
|
|
6325
|
+
itemId: 20010,
|
|
6326
|
+
quantity: 150
|
|
5225
6327
|
},
|
|
5226
6328
|
{
|
|
5227
|
-
itemId:
|
|
5228
|
-
quantity:
|
|
6329
|
+
itemId: 20009,
|
|
6330
|
+
quantity: 150
|
|
5229
6331
|
},
|
|
5230
6332
|
{
|
|
5231
6333
|
itemId: 20004,
|
|
5232
|
-
quantity:
|
|
6334
|
+
quantity: 150
|
|
5233
6335
|
},
|
|
5234
6336
|
{
|
|
5235
|
-
itemId:
|
|
6337
|
+
itemId: 10214,
|
|
5236
6338
|
quantity: 1
|
|
5237
6339
|
}
|
|
5238
6340
|
],
|
|
@@ -5252,8 +6354,8 @@ var recipes = [
|
|
|
5252
6354
|
{
|
|
5253
6355
|
sources: [
|
|
5254
6356
|
{
|
|
5255
|
-
inputIndex:
|
|
5256
|
-
statIndex:
|
|
6357
|
+
inputIndex: 1,
|
|
6358
|
+
statIndex: 0
|
|
5257
6359
|
},
|
|
5258
6360
|
{
|
|
5259
6361
|
inputIndex: 5,
|
|
@@ -5262,141 +6364,390 @@ var recipes = [
|
|
|
5262
6364
|
]
|
|
5263
6365
|
},
|
|
5264
6366
|
{
|
|
5265
|
-
sources: [
|
|
5266
|
-
|
|
6367
|
+
sources: [
|
|
6368
|
+
{
|
|
6369
|
+
inputIndex: 2,
|
|
6370
|
+
statIndex: 0
|
|
6371
|
+
},
|
|
6372
|
+
{
|
|
6373
|
+
inputIndex: 5,
|
|
6374
|
+
statIndex: 2
|
|
6375
|
+
}
|
|
6376
|
+
]
|
|
6377
|
+
},
|
|
6378
|
+
{
|
|
6379
|
+
sources: [
|
|
6380
|
+
{
|
|
6381
|
+
inputIndex: 3,
|
|
6382
|
+
statIndex: 0
|
|
6383
|
+
},
|
|
6384
|
+
{
|
|
6385
|
+
inputIndex: 5,
|
|
6386
|
+
statIndex: 3
|
|
6387
|
+
}
|
|
6388
|
+
]
|
|
6389
|
+
},
|
|
6390
|
+
{
|
|
6391
|
+
sources: [
|
|
6392
|
+
{
|
|
6393
|
+
inputIndex: 4,
|
|
6394
|
+
statIndex: 0
|
|
6395
|
+
},
|
|
6396
|
+
{
|
|
6397
|
+
inputIndex: 5,
|
|
6398
|
+
statIndex: 4
|
|
6399
|
+
}
|
|
6400
|
+
]
|
|
6401
|
+
}
|
|
6402
|
+
],
|
|
6403
|
+
blendWeights: [
|
|
6404
|
+
],
|
|
6405
|
+
sourceSubclass: 10214
|
|
6406
|
+
}
|
|
6407
|
+
];
|
|
6408
|
+
|
|
6409
|
+
var entities = [
|
|
6410
|
+
{
|
|
6411
|
+
entityItemId: 10200,
|
|
6412
|
+
slots: [
|
|
6413
|
+
],
|
|
6414
|
+
baseHullmass: 100000
|
|
6415
|
+
},
|
|
6416
|
+
{
|
|
6417
|
+
entityItemId: 10201,
|
|
6418
|
+
slots: [
|
|
6419
|
+
{
|
|
6420
|
+
type: "any",
|
|
6421
|
+
outputPct: 80,
|
|
6422
|
+
maxTier: 1
|
|
6423
|
+
},
|
|
6424
|
+
{
|
|
6425
|
+
type: "any",
|
|
6426
|
+
outputPct: 80,
|
|
6427
|
+
maxTier: 1
|
|
6428
|
+
},
|
|
6429
|
+
{
|
|
6430
|
+
type: "any",
|
|
6431
|
+
outputPct: 80,
|
|
6432
|
+
maxTier: 1
|
|
6433
|
+
},
|
|
6434
|
+
{
|
|
6435
|
+
type: "any",
|
|
6436
|
+
outputPct: 80,
|
|
6437
|
+
maxTier: 1
|
|
6438
|
+
},
|
|
6439
|
+
{
|
|
6440
|
+
type: "any",
|
|
6441
|
+
outputPct: 80,
|
|
6442
|
+
maxTier: 1
|
|
6443
|
+
}
|
|
6444
|
+
],
|
|
6445
|
+
baseHullmass: 4000000
|
|
6446
|
+
},
|
|
6447
|
+
{
|
|
6448
|
+
entityItemId: 10202,
|
|
6449
|
+
slots: [
|
|
6450
|
+
{
|
|
6451
|
+
type: "loader",
|
|
6452
|
+
outputPct: 100,
|
|
6453
|
+
maxTier: 1
|
|
6454
|
+
},
|
|
6455
|
+
{
|
|
6456
|
+
type: "storage",
|
|
6457
|
+
outputPct: 100,
|
|
6458
|
+
maxTier: 1
|
|
6459
|
+
},
|
|
6460
|
+
{
|
|
6461
|
+
type: "storage",
|
|
6462
|
+
outputPct: 100,
|
|
6463
|
+
maxTier: 1
|
|
6464
|
+
},
|
|
6465
|
+
{
|
|
6466
|
+
type: "storage",
|
|
6467
|
+
outputPct: 100,
|
|
6468
|
+
maxTier: 1
|
|
6469
|
+
},
|
|
6470
|
+
{
|
|
6471
|
+
type: "storage",
|
|
6472
|
+
outputPct: 100,
|
|
6473
|
+
maxTier: 1
|
|
6474
|
+
}
|
|
6475
|
+
],
|
|
6476
|
+
baseHullmass: 100000
|
|
6477
|
+
},
|
|
6478
|
+
{
|
|
6479
|
+
entityItemId: 10203,
|
|
6480
|
+
slots: [
|
|
6481
|
+
{
|
|
6482
|
+
type: "generator",
|
|
6483
|
+
outputPct: 200,
|
|
6484
|
+
maxTier: 1
|
|
6485
|
+
},
|
|
6486
|
+
{
|
|
6487
|
+
type: "gatherer",
|
|
6488
|
+
outputPct: 200,
|
|
6489
|
+
maxTier: 1
|
|
6490
|
+
}
|
|
6491
|
+
],
|
|
6492
|
+
baseHullmass: 100000
|
|
6493
|
+
},
|
|
6494
|
+
{
|
|
6495
|
+
entityItemId: 10204,
|
|
6496
|
+
slots: [
|
|
6497
|
+
{
|
|
6498
|
+
type: "generator",
|
|
6499
|
+
outputPct: 200,
|
|
6500
|
+
maxTier: 1
|
|
6501
|
+
},
|
|
6502
|
+
{
|
|
6503
|
+
type: "crafter",
|
|
6504
|
+
outputPct: 200,
|
|
6505
|
+
maxTier: 1
|
|
6506
|
+
}
|
|
6507
|
+
],
|
|
6508
|
+
baseHullmass: 100000
|
|
6509
|
+
},
|
|
6510
|
+
{
|
|
6511
|
+
entityItemId: 10205,
|
|
6512
|
+
slots: [
|
|
6513
|
+
{
|
|
6514
|
+
type: "generator",
|
|
6515
|
+
outputPct: 200,
|
|
6516
|
+
maxTier: 1
|
|
6517
|
+
},
|
|
6518
|
+
{
|
|
6519
|
+
type: "launcher",
|
|
6520
|
+
outputPct: 200,
|
|
6521
|
+
maxTier: 1
|
|
6522
|
+
}
|
|
6523
|
+
],
|
|
6524
|
+
baseHullmass: 100000
|
|
6525
|
+
},
|
|
6526
|
+
{
|
|
6527
|
+
entityItemId: 10206,
|
|
6528
|
+
slots: [
|
|
6529
|
+
{
|
|
6530
|
+
type: "storage",
|
|
6531
|
+
outputPct: 100,
|
|
6532
|
+
maxTier: 1
|
|
6533
|
+
},
|
|
6534
|
+
{
|
|
6535
|
+
type: "storage",
|
|
6536
|
+
outputPct: 100,
|
|
6537
|
+
maxTier: 1
|
|
6538
|
+
},
|
|
6539
|
+
{
|
|
6540
|
+
type: "storage",
|
|
6541
|
+
outputPct: 100,
|
|
6542
|
+
maxTier: 1
|
|
6543
|
+
}
|
|
6544
|
+
],
|
|
6545
|
+
baseHullmass: 100000
|
|
6546
|
+
},
|
|
6547
|
+
{
|
|
6548
|
+
entityItemId: 10207,
|
|
6549
|
+
slots: [
|
|
6550
|
+
],
|
|
6551
|
+
baseHullmass: 100000
|
|
6552
|
+
},
|
|
6553
|
+
{
|
|
6554
|
+
entityItemId: 10208,
|
|
6555
|
+
slots: [
|
|
6556
|
+
{
|
|
6557
|
+
type: "crafter",
|
|
6558
|
+
outputPct: 75,
|
|
6559
|
+
maxTier: 1
|
|
6560
|
+
},
|
|
6561
|
+
{
|
|
6562
|
+
type: "crafter",
|
|
6563
|
+
outputPct: 75,
|
|
6564
|
+
maxTier: 1
|
|
5267
6565
|
},
|
|
5268
6566
|
{
|
|
5269
|
-
|
|
5270
|
-
|
|
6567
|
+
type: "crafter",
|
|
6568
|
+
outputPct: 75,
|
|
6569
|
+
maxTier: 1
|
|
6570
|
+
},
|
|
6571
|
+
{
|
|
6572
|
+
type: "crafter",
|
|
6573
|
+
outputPct: 75,
|
|
6574
|
+
maxTier: 1
|
|
6575
|
+
},
|
|
6576
|
+
{
|
|
6577
|
+
type: "crafter",
|
|
6578
|
+
outputPct: 75,
|
|
6579
|
+
maxTier: 1
|
|
5271
6580
|
}
|
|
5272
6581
|
],
|
|
5273
|
-
|
|
5274
|
-
],
|
|
5275
|
-
sourceSubclass: 10201
|
|
5276
|
-
}
|
|
5277
|
-
];
|
|
5278
|
-
|
|
5279
|
-
var entities = [
|
|
5280
|
-
{
|
|
5281
|
-
entityItemId: 10200,
|
|
5282
|
-
slots: [
|
|
5283
|
-
]
|
|
6582
|
+
baseHullmass: 100000
|
|
5284
6583
|
},
|
|
5285
6584
|
{
|
|
5286
|
-
entityItemId:
|
|
6585
|
+
entityItemId: 10210,
|
|
5287
6586
|
slots: [
|
|
5288
6587
|
{
|
|
5289
|
-
type: "
|
|
6588
|
+
type: "generator",
|
|
5290
6589
|
outputPct: 80,
|
|
5291
6590
|
maxTier: 1
|
|
5292
6591
|
},
|
|
5293
6592
|
{
|
|
5294
|
-
type: "
|
|
6593
|
+
type: "engine",
|
|
5295
6594
|
outputPct: 80,
|
|
5296
6595
|
maxTier: 1
|
|
5297
6596
|
},
|
|
5298
6597
|
{
|
|
5299
6598
|
type: "any",
|
|
5300
|
-
outputPct:
|
|
6599
|
+
outputPct: 60,
|
|
6600
|
+
maxTier: 1
|
|
6601
|
+
}
|
|
6602
|
+
],
|
|
6603
|
+
baseHullmass: 3200000
|
|
6604
|
+
},
|
|
6605
|
+
{
|
|
6606
|
+
entityItemId: 10211,
|
|
6607
|
+
slots: [
|
|
6608
|
+
{
|
|
6609
|
+
type: "generator",
|
|
6610
|
+
outputPct: 85,
|
|
5301
6611
|
maxTier: 1
|
|
5302
6612
|
},
|
|
5303
6613
|
{
|
|
5304
|
-
type: "
|
|
5305
|
-
outputPct:
|
|
6614
|
+
type: "engine",
|
|
6615
|
+
outputPct: 85,
|
|
5306
6616
|
maxTier: 1
|
|
5307
6617
|
},
|
|
5308
6618
|
{
|
|
5309
|
-
type: "
|
|
5310
|
-
outputPct:
|
|
6619
|
+
type: "gatherer",
|
|
6620
|
+
outputPct: 100,
|
|
5311
6621
|
maxTier: 1
|
|
5312
6622
|
}
|
|
5313
|
-
]
|
|
6623
|
+
],
|
|
6624
|
+
baseHullmass: 3600000
|
|
5314
6625
|
},
|
|
5315
6626
|
{
|
|
5316
|
-
entityItemId:
|
|
6627
|
+
entityItemId: 10212,
|
|
5317
6628
|
slots: [
|
|
5318
6629
|
{
|
|
5319
|
-
type: "
|
|
5320
|
-
outputPct:
|
|
6630
|
+
type: "generator",
|
|
6631
|
+
outputPct: 85,
|
|
5321
6632
|
maxTier: 1
|
|
5322
6633
|
},
|
|
5323
6634
|
{
|
|
5324
|
-
type: "
|
|
5325
|
-
outputPct:
|
|
6635
|
+
type: "engine",
|
|
6636
|
+
outputPct: 85,
|
|
5326
6637
|
maxTier: 1
|
|
5327
6638
|
},
|
|
5328
6639
|
{
|
|
5329
|
-
type: "
|
|
6640
|
+
type: "loader",
|
|
5330
6641
|
outputPct: 100,
|
|
5331
6642
|
maxTier: 1
|
|
6643
|
+
}
|
|
6644
|
+
],
|
|
6645
|
+
baseHullmass: 3600000
|
|
6646
|
+
},
|
|
6647
|
+
{
|
|
6648
|
+
entityItemId: 10213,
|
|
6649
|
+
slots: [
|
|
6650
|
+
{
|
|
6651
|
+
type: "generator",
|
|
6652
|
+
outputPct: 85,
|
|
6653
|
+
maxTier: 1
|
|
5332
6654
|
},
|
|
5333
6655
|
{
|
|
5334
|
-
type: "
|
|
5335
|
-
outputPct:
|
|
6656
|
+
type: "engine",
|
|
6657
|
+
outputPct: 85,
|
|
5336
6658
|
maxTier: 1
|
|
5337
6659
|
},
|
|
5338
6660
|
{
|
|
5339
|
-
type: "
|
|
6661
|
+
type: "builder",
|
|
5340
6662
|
outputPct: 100,
|
|
5341
6663
|
maxTier: 1
|
|
5342
6664
|
}
|
|
5343
|
-
]
|
|
6665
|
+
],
|
|
6666
|
+
baseHullmass: 4400000
|
|
5344
6667
|
},
|
|
5345
6668
|
{
|
|
5346
|
-
entityItemId:
|
|
6669
|
+
entityItemId: 10214,
|
|
5347
6670
|
slots: [
|
|
5348
6671
|
{
|
|
5349
6672
|
type: "generator",
|
|
5350
|
-
outputPct:
|
|
6673
|
+
outputPct: 85,
|
|
5351
6674
|
maxTier: 1
|
|
5352
6675
|
},
|
|
5353
6676
|
{
|
|
5354
|
-
type: "
|
|
5355
|
-
outputPct:
|
|
6677
|
+
type: "engine",
|
|
6678
|
+
outputPct: 85,
|
|
6679
|
+
maxTier: 1
|
|
6680
|
+
},
|
|
6681
|
+
{
|
|
6682
|
+
type: "hauler",
|
|
6683
|
+
outputPct: 100,
|
|
5356
6684
|
maxTier: 1
|
|
5357
6685
|
}
|
|
5358
|
-
]
|
|
6686
|
+
],
|
|
6687
|
+
baseHullmass: 4400000
|
|
5359
6688
|
},
|
|
5360
6689
|
{
|
|
5361
|
-
entityItemId:
|
|
6690
|
+
entityItemId: 10215,
|
|
5362
6691
|
slots: [
|
|
5363
6692
|
{
|
|
5364
6693
|
type: "generator",
|
|
5365
|
-
outputPct:
|
|
6694
|
+
outputPct: 85,
|
|
5366
6695
|
maxTier: 1
|
|
5367
6696
|
},
|
|
5368
6697
|
{
|
|
5369
|
-
type: "
|
|
5370
|
-
outputPct:
|
|
6698
|
+
type: "engine",
|
|
6699
|
+
outputPct: 85,
|
|
6700
|
+
maxTier: 1
|
|
6701
|
+
},
|
|
6702
|
+
{
|
|
6703
|
+
type: "storage",
|
|
6704
|
+
outputPct: 100,
|
|
5371
6705
|
maxTier: 1
|
|
5372
6706
|
}
|
|
5373
|
-
]
|
|
6707
|
+
],
|
|
6708
|
+
baseHullmass: 5000000
|
|
5374
6709
|
},
|
|
5375
6710
|
{
|
|
5376
|
-
entityItemId:
|
|
6711
|
+
entityItemId: 10216,
|
|
5377
6712
|
slots: [
|
|
5378
6713
|
{
|
|
5379
6714
|
type: "generator",
|
|
5380
|
-
outputPct:
|
|
6715
|
+
outputPct: 90,
|
|
5381
6716
|
maxTier: 1
|
|
5382
6717
|
},
|
|
5383
6718
|
{
|
|
5384
|
-
type: "
|
|
5385
|
-
outputPct:
|
|
6719
|
+
type: "engine",
|
|
6720
|
+
outputPct: 90,
|
|
6721
|
+
maxTier: 1
|
|
6722
|
+
},
|
|
6723
|
+
{
|
|
6724
|
+
type: "gatherer",
|
|
6725
|
+
outputPct: 100,
|
|
6726
|
+
maxTier: 1
|
|
6727
|
+
},
|
|
6728
|
+
{
|
|
6729
|
+
type: "gatherer",
|
|
6730
|
+
outputPct: 100,
|
|
5386
6731
|
maxTier: 1
|
|
5387
6732
|
}
|
|
5388
|
-
]
|
|
6733
|
+
],
|
|
6734
|
+
baseHullmass: 4000000
|
|
5389
6735
|
},
|
|
5390
6736
|
{
|
|
5391
|
-
entityItemId:
|
|
6737
|
+
entityItemId: 10217,
|
|
5392
6738
|
slots: [
|
|
5393
6739
|
{
|
|
5394
|
-
type: "
|
|
5395
|
-
outputPct:
|
|
6740
|
+
type: "generator",
|
|
6741
|
+
outputPct: 90,
|
|
5396
6742
|
maxTier: 1
|
|
5397
6743
|
},
|
|
5398
6744
|
{
|
|
5399
|
-
type: "
|
|
6745
|
+
type: "engine",
|
|
6746
|
+
outputPct: 90,
|
|
6747
|
+
maxTier: 1
|
|
6748
|
+
},
|
|
6749
|
+
{
|
|
6750
|
+
type: "gatherer",
|
|
5400
6751
|
outputPct: 100,
|
|
5401
6752
|
maxTier: 1
|
|
5402
6753
|
},
|
|
@@ -5405,23 +6756,20 @@ var entities = [
|
|
|
5405
6756
|
outputPct: 100,
|
|
5406
6757
|
maxTier: 1
|
|
5407
6758
|
}
|
|
5408
|
-
]
|
|
5409
|
-
|
|
5410
|
-
{
|
|
5411
|
-
entityItemId: 10207,
|
|
5412
|
-
slots: [
|
|
5413
|
-
]
|
|
6759
|
+
],
|
|
6760
|
+
baseHullmass: 4800000
|
|
5414
6761
|
},
|
|
5415
6762
|
{
|
|
5416
6763
|
entityItemId: 20200,
|
|
5417
6764
|
slots: [
|
|
5418
|
-
]
|
|
6765
|
+
],
|
|
6766
|
+
baseHullmass: 100000
|
|
5419
6767
|
},
|
|
5420
6768
|
{
|
|
5421
6769
|
entityItemId: 20210,
|
|
5422
6770
|
slots: [
|
|
5423
6771
|
{
|
|
5424
|
-
type: "
|
|
6772
|
+
type: "generator",
|
|
5425
6773
|
outputPct: 100,
|
|
5426
6774
|
maxTier: 2
|
|
5427
6775
|
},
|
|
@@ -5431,7 +6779,7 @@ var entities = [
|
|
|
5431
6779
|
maxTier: 2
|
|
5432
6780
|
},
|
|
5433
6781
|
{
|
|
5434
|
-
type: "
|
|
6782
|
+
type: "engine",
|
|
5435
6783
|
outputPct: 100,
|
|
5436
6784
|
maxTier: 2
|
|
5437
6785
|
},
|
|
@@ -5439,24 +6787,20 @@ var entities = [
|
|
|
5439
6787
|
type: "gatherer",
|
|
5440
6788
|
outputPct: 100,
|
|
5441
6789
|
maxTier: 2
|
|
5442
|
-
},
|
|
5443
|
-
{
|
|
5444
|
-
type: "any",
|
|
5445
|
-
outputPct: 80,
|
|
5446
|
-
maxTier: 1
|
|
5447
6790
|
}
|
|
5448
|
-
]
|
|
6791
|
+
],
|
|
6792
|
+
baseHullmass: 5760000
|
|
5449
6793
|
},
|
|
5450
6794
|
{
|
|
5451
6795
|
entityItemId: 20211,
|
|
5452
6796
|
slots: [
|
|
5453
6797
|
{
|
|
5454
|
-
type: "
|
|
6798
|
+
type: "generator",
|
|
5455
6799
|
outputPct: 100,
|
|
5456
6800
|
maxTier: 2
|
|
5457
6801
|
},
|
|
5458
6802
|
{
|
|
5459
|
-
type: "
|
|
6803
|
+
type: "engine",
|
|
5460
6804
|
outputPct: 100,
|
|
5461
6805
|
maxTier: 2
|
|
5462
6806
|
},
|
|
@@ -5470,7 +6814,8 @@ var entities = [
|
|
|
5470
6814
|
outputPct: 100,
|
|
5471
6815
|
maxTier: 2
|
|
5472
6816
|
}
|
|
5473
|
-
]
|
|
6817
|
+
],
|
|
6818
|
+
baseHullmass: 7040000
|
|
5474
6819
|
}
|
|
5475
6820
|
];
|
|
5476
6821
|
|
|
@@ -5995,6 +7340,13 @@ var items = [
|
|
|
5995
7340
|
tier: 1,
|
|
5996
7341
|
subtype: "launcher"
|
|
5997
7342
|
},
|
|
7343
|
+
{
|
|
7344
|
+
id: 10110,
|
|
7345
|
+
mass: 960000,
|
|
7346
|
+
type: "module",
|
|
7347
|
+
tier: 1,
|
|
7348
|
+
subtype: "builder"
|
|
7349
|
+
},
|
|
5998
7350
|
{
|
|
5999
7351
|
id: 10200,
|
|
6000
7352
|
mass: 1900000,
|
|
@@ -6043,6 +7395,60 @@ var items = [
|
|
|
6043
7395
|
type: "entity",
|
|
6044
7396
|
tier: 1
|
|
6045
7397
|
},
|
|
7398
|
+
{
|
|
7399
|
+
id: 10208,
|
|
7400
|
+
mass: 1900000,
|
|
7401
|
+
type: "entity",
|
|
7402
|
+
tier: 1
|
|
7403
|
+
},
|
|
7404
|
+
{
|
|
7405
|
+
id: 10210,
|
|
7406
|
+
mass: 1600000,
|
|
7407
|
+
type: "entity",
|
|
7408
|
+
tier: 1
|
|
7409
|
+
},
|
|
7410
|
+
{
|
|
7411
|
+
id: 10211,
|
|
7412
|
+
mass: 2400000,
|
|
7413
|
+
type: "entity",
|
|
7414
|
+
tier: 1
|
|
7415
|
+
},
|
|
7416
|
+
{
|
|
7417
|
+
id: 10212,
|
|
7418
|
+
mass: 2400000,
|
|
7419
|
+
type: "entity",
|
|
7420
|
+
tier: 1
|
|
7421
|
+
},
|
|
7422
|
+
{
|
|
7423
|
+
id: 10213,
|
|
7424
|
+
mass: 2400000,
|
|
7425
|
+
type: "entity",
|
|
7426
|
+
tier: 1
|
|
7427
|
+
},
|
|
7428
|
+
{
|
|
7429
|
+
id: 10214,
|
|
7430
|
+
mass: 2400000,
|
|
7431
|
+
type: "entity",
|
|
7432
|
+
tier: 1
|
|
7433
|
+
},
|
|
7434
|
+
{
|
|
7435
|
+
id: 10215,
|
|
7436
|
+
mass: 2400000,
|
|
7437
|
+
type: "entity",
|
|
7438
|
+
tier: 1
|
|
7439
|
+
},
|
|
7440
|
+
{
|
|
7441
|
+
id: 10216,
|
|
7442
|
+
mass: 3600000,
|
|
7443
|
+
type: "entity",
|
|
7444
|
+
tier: 1
|
|
7445
|
+
},
|
|
7446
|
+
{
|
|
7447
|
+
id: 10217,
|
|
7448
|
+
mass: 3600000,
|
|
7449
|
+
type: "entity",
|
|
7450
|
+
tier: 1
|
|
7451
|
+
},
|
|
6046
7452
|
{
|
|
6047
7453
|
id: 20001,
|
|
6048
7454
|
mass: 4800,
|
|
@@ -6306,7 +7712,7 @@ const itemMetadata = {
|
|
|
6306
7712
|
},
|
|
6307
7713
|
10106: {
|
|
6308
7714
|
name: 'Tractor Beam',
|
|
6309
|
-
description: 'Projects a haul beam to lock onto and transport containers
|
|
7715
|
+
description: 'Projects a haul beam to lock onto and transport containers through group travel.',
|
|
6310
7716
|
color: '#4ADBFF',
|
|
6311
7717
|
},
|
|
6312
7718
|
10107: {
|
|
@@ -6324,13 +7730,18 @@ const itemMetadata = {
|
|
|
6324
7730
|
description: 'Accelerates and launches cargo payloads toward a remote mass catcher.',
|
|
6325
7731
|
color: '#E86344',
|
|
6326
7732
|
},
|
|
7733
|
+
10110: {
|
|
7734
|
+
name: 'Assembly Arm',
|
|
7735
|
+
description: 'Heavy manipulator arms for on-site construction work. Claims build sites, builds them out, and upgrades ships in place.',
|
|
7736
|
+
color: '#FFB347',
|
|
7737
|
+
},
|
|
6327
7738
|
10200: {
|
|
6328
7739
|
name: 'Container',
|
|
6329
7740
|
description: 'Passive floating cargo storage in space. Towed by ships.',
|
|
6330
7741
|
color: '#7B8D9E',
|
|
6331
7742
|
},
|
|
6332
7743
|
10201: {
|
|
6333
|
-
name: '
|
|
7744
|
+
name: 'Ship',
|
|
6334
7745
|
description: 'General-purpose vessel with 5 module slots.',
|
|
6335
7746
|
color: '#4AE898',
|
|
6336
7747
|
},
|
|
@@ -6364,6 +7775,51 @@ const itemMetadata = {
|
|
|
6364
7775
|
description: 'Orbital command structure. Anchors a player station cluster.',
|
|
6365
7776
|
color: '#A0B8D0',
|
|
6366
7777
|
},
|
|
7778
|
+
10208: {
|
|
7779
|
+
name: 'Workshop',
|
|
7780
|
+
description: 'A station workshop with five independent workers. Visiting ships bring materials and power, and the workshop does the crafting.',
|
|
7781
|
+
color: '#B877FF',
|
|
7782
|
+
},
|
|
7783
|
+
10210: {
|
|
7784
|
+
name: 'Roustabout',
|
|
7785
|
+
description: 'A basic starter ship. One engine, one power core, and one open slot to fit as you like.',
|
|
7786
|
+
color: '#4AE898',
|
|
7787
|
+
},
|
|
7788
|
+
10211: {
|
|
7789
|
+
name: 'Prospector',
|
|
7790
|
+
description: 'A light gathering ship. One engine, one power core, one gathering rig.',
|
|
7791
|
+
color: '#4AE898',
|
|
7792
|
+
},
|
|
7793
|
+
10212: {
|
|
7794
|
+
name: 'Tender',
|
|
7795
|
+
description: 'A logistics ship with a shuttle bay for moving cargo between ships and stations.',
|
|
7796
|
+
color: '#4AE898',
|
|
7797
|
+
},
|
|
7798
|
+
10213: {
|
|
7799
|
+
name: 'Wright',
|
|
7800
|
+
description: 'A construction ship with an assembly arm for building structures and upgrading ships.',
|
|
7801
|
+
color: '#4AE898',
|
|
7802
|
+
},
|
|
7803
|
+
10214: {
|
|
7804
|
+
name: 'Tug',
|
|
7805
|
+
description: 'A logistics ship with a tractor beam for towing containers from place to place.',
|
|
7806
|
+
color: '#4AE898',
|
|
7807
|
+
},
|
|
7808
|
+
10215: {
|
|
7809
|
+
name: 'Porter',
|
|
7810
|
+
description: 'A cargo ship built around a large storage hold. The extra mass makes it slower than a Roustabout.',
|
|
7811
|
+
color: '#4AE898',
|
|
7812
|
+
},
|
|
7813
|
+
10216: {
|
|
7814
|
+
name: 'Wrangler',
|
|
7815
|
+
description: 'A heavy gathering ship with two gathering rigs, so it mines faster.',
|
|
7816
|
+
color: '#4AE898',
|
|
7817
|
+
},
|
|
7818
|
+
10217: {
|
|
7819
|
+
name: 'Dredger',
|
|
7820
|
+
description: 'A gathering ship with its own storage hold, so it can keep mining before it has to offload.',
|
|
7821
|
+
color: '#4AE898',
|
|
7822
|
+
},
|
|
6367
7823
|
20001: {
|
|
6368
7824
|
name: 'Plate',
|
|
6369
7825
|
description: 'Advanced structural plating reinforced with tier 2 ore.',
|
|
@@ -6435,13 +7891,21 @@ const itemMetadata = {
|
|
|
6435
7891
|
color: '#4AE898',
|
|
6436
7892
|
},
|
|
6437
7893
|
20211: {
|
|
6438
|
-
name: '
|
|
7894
|
+
name: 'Tug',
|
|
6439
7895
|
description: 'Advanced towing vessel with tiered engine, generator, and tractor beam slots.',
|
|
6440
7896
|
color: '#4AE898',
|
|
6441
7897
|
},
|
|
6442
7898
|
};
|
|
6443
7899
|
const entityMetadata = {
|
|
6444
7900
|
10201: { moduleSlotLabels: ['Engine', 'Power Core', 'Limpet Bay', 'Shuttle Bay', 'Cargo Hold'] },
|
|
7901
|
+
10210: { moduleSlotLabels: ['Power Core', 'Engine', 'Utility Bay'] },
|
|
7902
|
+
10211: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay'] },
|
|
7903
|
+
10212: { moduleSlotLabels: ['Power Core', 'Engine', 'Shuttle Bay'] },
|
|
7904
|
+
10213: { moduleSlotLabels: ['Power Core', 'Engine', 'Assembly Arm'] },
|
|
7905
|
+
10214: { moduleSlotLabels: ['Power Core', 'Engine', 'Tractor Beam'] },
|
|
7906
|
+
10215: { moduleSlotLabels: ['Power Core', 'Engine', 'Cargo Hold'] },
|
|
7907
|
+
10216: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Limpet Bay'] },
|
|
7908
|
+
10217: { moduleSlotLabels: ['Power Core', 'Engine', 'Limpet Bay', 'Cargo Hold'] },
|
|
6445
7909
|
10202: {
|
|
6446
7910
|
moduleSlotLabels: ['Shuttle Bay', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold'],
|
|
6447
7911
|
},
|
|
@@ -6449,8 +7913,11 @@ const entityMetadata = {
|
|
|
6449
7913
|
10204: { moduleSlotLabels: ['Power Core', 'Fabricator'] },
|
|
6450
7914
|
10205: { moduleSlotLabels: ['Power Core', 'Drive Coil'] },
|
|
6451
7915
|
10206: { moduleSlotLabels: ['Cargo Hold', 'Cargo Hold', 'Cargo Hold'] },
|
|
6452
|
-
|
|
6453
|
-
|
|
7916
|
+
10208: {
|
|
7917
|
+
moduleSlotLabels: ['Fabricator', 'Fabricator', 'Fabricator', 'Fabricator', 'Fabricator'],
|
|
7918
|
+
},
|
|
7919
|
+
20210: { moduleSlotLabels: ['Power Core', 'Power Core', 'Engine', 'Limpet Bay'] },
|
|
7920
|
+
20211: { moduleSlotLabels: ['Power Core', 'Engine', 'Tractor Beam', 'Tractor Beam'] },
|
|
6454
7921
|
};
|
|
6455
7922
|
for (const item of items) {
|
|
6456
7923
|
if (!itemMetadata[item.id]) {
|
|
@@ -9336,18 +10803,65 @@ var kinds = [
|
|
|
9336
10803
|
defaultLabel: "Plot"
|
|
9337
10804
|
},
|
|
9338
10805
|
{
|
|
9339
|
-
kind: "hub",
|
|
9340
|
-
classification: "OrbitalStructure",
|
|
9341
|
-
capabilityFlags: 4,
|
|
9342
|
-
zCoord: 0,
|
|
9343
|
-
defaultLabel: "Station Hub"
|
|
9344
|
-
}
|
|
9345
|
-
|
|
9346
|
-
|
|
10806
|
+
kind: "hub",
|
|
10807
|
+
classification: "OrbitalStructure",
|
|
10808
|
+
capabilityFlags: 4,
|
|
10809
|
+
zCoord: 0,
|
|
10810
|
+
defaultLabel: "Station Hub"
|
|
10811
|
+
},
|
|
10812
|
+
{
|
|
10813
|
+
kind: "workshop",
|
|
10814
|
+
classification: "OrbitalStructure",
|
|
10815
|
+
capabilityFlags: 20,
|
|
10816
|
+
zCoord: 0,
|
|
10817
|
+
defaultLabel: "Workshop"
|
|
10818
|
+
}
|
|
10819
|
+
];
|
|
10820
|
+
var templates = [
|
|
10821
|
+
{
|
|
10822
|
+
itemId: 10201,
|
|
10823
|
+
kind: "ship",
|
|
10824
|
+
displayLabel: "Ship"
|
|
10825
|
+
},
|
|
10826
|
+
{
|
|
10827
|
+
itemId: 10210,
|
|
10828
|
+
kind: "ship",
|
|
10829
|
+
displayLabel: "Roustabout"
|
|
10830
|
+
},
|
|
10831
|
+
{
|
|
10832
|
+
itemId: 10211,
|
|
10833
|
+
kind: "ship",
|
|
10834
|
+
displayLabel: "Prospector"
|
|
10835
|
+
},
|
|
10836
|
+
{
|
|
10837
|
+
itemId: 10212,
|
|
10838
|
+
kind: "ship",
|
|
10839
|
+
displayLabel: "Tender"
|
|
10840
|
+
},
|
|
10841
|
+
{
|
|
10842
|
+
itemId: 10213,
|
|
10843
|
+
kind: "ship",
|
|
10844
|
+
displayLabel: "Wright"
|
|
10845
|
+
},
|
|
10846
|
+
{
|
|
10847
|
+
itemId: 10214,
|
|
10848
|
+
kind: "ship",
|
|
10849
|
+
displayLabel: "Tug"
|
|
10850
|
+
},
|
|
10851
|
+
{
|
|
10852
|
+
itemId: 10215,
|
|
10853
|
+
kind: "ship",
|
|
10854
|
+
displayLabel: "Porter"
|
|
10855
|
+
},
|
|
9347
10856
|
{
|
|
9348
|
-
itemId:
|
|
10857
|
+
itemId: 10216,
|
|
9349
10858
|
kind: "ship",
|
|
9350
|
-
displayLabel: "
|
|
10859
|
+
displayLabel: "Wrangler"
|
|
10860
|
+
},
|
|
10861
|
+
{
|
|
10862
|
+
itemId: 10217,
|
|
10863
|
+
kind: "ship",
|
|
10864
|
+
displayLabel: "Dredger"
|
|
9351
10865
|
},
|
|
9352
10866
|
{
|
|
9353
10867
|
itemId: 10202,
|
|
@@ -9389,6 +10903,11 @@ var templates = [
|
|
|
9389
10903
|
kind: "hub",
|
|
9390
10904
|
displayLabel: ""
|
|
9391
10905
|
},
|
|
10906
|
+
{
|
|
10907
|
+
itemId: 10208,
|
|
10908
|
+
kind: "workshop",
|
|
10909
|
+
displayLabel: ""
|
|
10910
|
+
},
|
|
9392
10911
|
{
|
|
9393
10912
|
itemId: 20210,
|
|
9394
10913
|
kind: "ship",
|
|
@@ -9397,7 +10916,7 @@ var templates = [
|
|
|
9397
10916
|
{
|
|
9398
10917
|
itemId: 20211,
|
|
9399
10918
|
kind: "ship",
|
|
9400
|
-
displayLabel: "
|
|
10919
|
+
displayLabel: "Tug"
|
|
9401
10920
|
}
|
|
9402
10921
|
];
|
|
9403
10922
|
var kindRegistryJson = {
|
|
@@ -9481,6 +11000,7 @@ const ENTITY_SHIP = antelope.Name.from('ship');
|
|
|
9481
11000
|
const ENTITY_WAREHOUSE = antelope.Name.from('warehouse');
|
|
9482
11001
|
const ENTITY_EXTRACTOR = antelope.Name.from('extractor');
|
|
9483
11002
|
const ENTITY_FACTORY = antelope.Name.from('factory');
|
|
11003
|
+
const ENTITY_WORKSHOP = antelope.Name.from('workshop');
|
|
9484
11004
|
const ENTITY_CONTAINER = antelope.Name.from('container');
|
|
9485
11005
|
const ENTITY_NEXUS = antelope.Name.from('nexus');
|
|
9486
11006
|
const ENTITY_PLOT = antelope.Name.from('plot');
|
|
@@ -9499,6 +11019,9 @@ function isExtractor(entity) {
|
|
|
9499
11019
|
function isFactory(entity) {
|
|
9500
11020
|
return entity.type?.equals(ENTITY_FACTORY) ?? false;
|
|
9501
11021
|
}
|
|
11022
|
+
function isWorkshop(entity) {
|
|
11023
|
+
return entity.type?.equals(ENTITY_WORKSHOP) ?? false;
|
|
11024
|
+
}
|
|
9502
11025
|
function isContainer(entity) {
|
|
9503
11026
|
return entity.type?.equals(ENTITY_CONTAINER) ?? false;
|
|
9504
11027
|
}
|
|
@@ -9980,7 +11503,7 @@ function distanceBetweenCoordinates(origin, destination) {
|
|
|
9980
11503
|
function distanceBetweenPoints(x1, y1, x2, y2) {
|
|
9981
11504
|
const x = (x1 - x2) ** 2;
|
|
9982
11505
|
const y = (y1 - y2) ** 2;
|
|
9983
|
-
return antelope.UInt64.from(Math.sqrt(x + y) * PRECISION
|
|
11506
|
+
return antelope.UInt64.from(Math.sqrt(x + y) * PRECISION);
|
|
9984
11507
|
}
|
|
9985
11508
|
function lerp$1(origin, destination, time) {
|
|
9986
11509
|
return {
|
|
@@ -10026,9 +11549,9 @@ function getInterpolatedPosition(entity, taskIndex, taskProgress) {
|
|
|
10026
11549
|
function rotation(origin, destination) {
|
|
10027
11550
|
return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
|
|
10028
11551
|
}
|
|
10029
|
-
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION
|
|
11552
|
+
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION) {
|
|
10030
11553
|
const nearbySystems = [];
|
|
10031
|
-
const max = antelope.UInt64.from(maxDistance / PRECISION
|
|
11554
|
+
const max = antelope.UInt64.from(maxDistance / PRECISION);
|
|
10032
11555
|
const xMin = antelope.Int64.from(origin.x).subtracting(max);
|
|
10033
11556
|
const xMax = antelope.Int64.from(origin.x).adding(max);
|
|
10034
11557
|
const yMin = antelope.Int64.from(origin.y).subtracting(max);
|
|
@@ -10054,19 +11577,28 @@ function calc_rechargetime(capacity, energy, recharge) {
|
|
|
10054
11577
|
const eng = antelope.UInt32.from(energy);
|
|
10055
11578
|
if (eng.gte(cap))
|
|
10056
11579
|
return antelope.UInt32.zero;
|
|
10057
|
-
|
|
11580
|
+
const ticks = cap.subtracting(eng).dividing(recharge);
|
|
11581
|
+
return ticks.equals(antelope.UInt32.zero) ? antelope.UInt32.from(1) : ticks;
|
|
10058
11582
|
}
|
|
10059
11583
|
function calc_ship_rechargetime(ship) {
|
|
10060
11584
|
if (!ship.generator)
|
|
10061
11585
|
return antelope.UInt32.from(0);
|
|
10062
|
-
return calc_rechargetime(ship.generator.capacity, ship.energy ?? antelope.
|
|
11586
|
+
return calc_rechargetime(ship.generator.capacity, ship.energy ?? antelope.UInt32.from(0), ship.generator.recharge);
|
|
10063
11587
|
}
|
|
10064
11588
|
function calc_flighttime(distance, acceleration) {
|
|
10065
11589
|
return antelope.UInt32.from(2 * Math.sqrt(Number(distance) / acceleration));
|
|
10066
11590
|
}
|
|
11591
|
+
function calc_travel_flighttime(distance, acceleration) {
|
|
11592
|
+
const cruiseTransitionDistance = 2 * PRECISION;
|
|
11593
|
+
if (Number(distance) <= cruiseTransitionDistance) {
|
|
11594
|
+
return calc_flighttime(distance, acceleration);
|
|
11595
|
+
}
|
|
11596
|
+
const cruiseVelocity = Math.sqrt(acceleration * cruiseTransitionDistance);
|
|
11597
|
+
return antelope.UInt32.from(Number(distance) / cruiseVelocity + cruiseVelocity / acceleration);
|
|
11598
|
+
}
|
|
10067
11599
|
function calc_transit_duration(ax, ay, bx, by) {
|
|
10068
11600
|
const distance = distanceBetweenPoints(ax, ay, bx, by);
|
|
10069
|
-
return antelope.UInt32.from(Math.floor(distance.toNumber() / (PRECISION
|
|
11601
|
+
return antelope.UInt32.from(Math.floor(distance.toNumber() / (PRECISION * WH.TRANSIT_SPEED)));
|
|
10070
11602
|
}
|
|
10071
11603
|
function shipLoaderLane(ship) {
|
|
10072
11604
|
const lanes = ship.loader_lanes ?? [];
|
|
@@ -10090,14 +11622,14 @@ function calc_loader_acceleration(ship, mass) {
|
|
|
10090
11622
|
}
|
|
10091
11623
|
function calc_ship_flighttime(ship, mass, distance) {
|
|
10092
11624
|
const acceleration = calc_ship_acceleration(ship, mass);
|
|
10093
|
-
return
|
|
11625
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10094
11626
|
}
|
|
10095
11627
|
function calc_ship_acceleration(ship, mass) {
|
|
10096
11628
|
const thrust = ship.engines ? Number(ship.engines.thrust) : 0;
|
|
10097
11629
|
return calc_acceleration(thrust, Number(mass));
|
|
10098
11630
|
}
|
|
10099
11631
|
function calc_acceleration(thrust, mass) {
|
|
10100
|
-
return (thrust / mass) * PRECISION
|
|
11632
|
+
return (thrust / mass) * PRECISION;
|
|
10101
11633
|
}
|
|
10102
11634
|
function calc_ship_mass(ship, cargos) {
|
|
10103
11635
|
const mass = antelope.UInt64.from(0);
|
|
@@ -10113,8 +11645,20 @@ function calc_ship_mass(ship, cargos) {
|
|
|
10113
11645
|
}
|
|
10114
11646
|
return mass;
|
|
10115
11647
|
}
|
|
11648
|
+
function calc_group_flighttime(totalThrust, haulCount, pooledHaulCap, weightedHaulEffNum, totalMass, distance) {
|
|
11649
|
+
const avgHaulEff = pooledHaulCap > 0 ? Math.trunc(weightedHaulEffNum / pooledHaulCap) : 0;
|
|
11650
|
+
let effectiveThrust = totalThrust;
|
|
11651
|
+
if (haulCount > 0) {
|
|
11652
|
+
const penaltyMilli = 1000 +
|
|
11653
|
+
Math.trunc((haulCount * BASE_HAUL_PENALTY_MILLI$1 * (HAULER_EFFICIENCY_DENOM$1 - avgHaulEff)) /
|
|
11654
|
+
HAULER_EFFICIENCY_DENOM$1);
|
|
11655
|
+
effectiveThrust = Math.trunc((totalThrust * 1000) / penaltyMilli);
|
|
11656
|
+
}
|
|
11657
|
+
const acceleration = calc_acceleration(effectiveThrust, totalMass);
|
|
11658
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
11659
|
+
}
|
|
10116
11660
|
function calc_energyusage(distance, drain) {
|
|
10117
|
-
return antelope.UInt64.from(distance).
|
|
11661
|
+
return antelope.UInt64.from(distance).multiplying(drain).dividing(PRECISION);
|
|
10118
11662
|
}
|
|
10119
11663
|
function calculateTransferTime(ship, cargos, quantities) {
|
|
10120
11664
|
let mass = antelope.UInt64.from(0);
|
|
@@ -10214,7 +11758,7 @@ function estimateDealTravelTime(ship, shipMass, distance, loadMass) {
|
|
|
10214
11758
|
function hasEnergyForDistance(ship, distance) {
|
|
10215
11759
|
if (!ship.engines)
|
|
10216
11760
|
return false;
|
|
10217
|
-
const energyNeeded = antelope.UInt64.from(distance).dividing(PRECISION
|
|
11761
|
+
const energyNeeded = antelope.UInt64.from(distance).dividing(PRECISION).multiplying(ship.engines.drain);
|
|
10218
11762
|
return antelope.UInt64.from(ship.energy ?? 0).gte(energyNeeded);
|
|
10219
11763
|
}
|
|
10220
11764
|
function toNum$1(v) {
|
|
@@ -10921,6 +12465,8 @@ function getItemStatKeys(itemId) {
|
|
|
10921
12465
|
return [];
|
|
10922
12466
|
return getStatDefinitions(item.category).map((d) => d.key);
|
|
10923
12467
|
}
|
|
12468
|
+
if (itemId === ITEM_SHIP_T1_PACKED)
|
|
12469
|
+
return ['strength', 'density', '', ''];
|
|
10924
12470
|
const recipe = getRecipe(itemId);
|
|
10925
12471
|
if (!recipe)
|
|
10926
12472
|
return [];
|
|
@@ -11731,6 +13277,7 @@ const MODULE_LAUNCHER = 7;
|
|
|
11731
13277
|
const MODULE_STORAGE = 8;
|
|
11732
13278
|
const MODULE_HAULER = 9;
|
|
11733
13279
|
const MODULE_BATTERY = 10;
|
|
13280
|
+
const MODULE_BUILDER = 12;
|
|
11734
13281
|
function moduleAccepts(slotType, moduleType) {
|
|
11735
13282
|
return slotType === MODULE_ANY || slotType === moduleType;
|
|
11736
13283
|
}
|
|
@@ -11747,6 +13294,8 @@ function getModuleCapabilityType(itemId) {
|
|
|
11747
13294
|
return MODULE_LOADER;
|
|
11748
13295
|
case ITEM_CRAFTER_T1:
|
|
11749
13296
|
return MODULE_CRAFTER;
|
|
13297
|
+
case ITEM_BUILDER_T1:
|
|
13298
|
+
return MODULE_BUILDER;
|
|
11750
13299
|
case ITEM_STORAGE_T1:
|
|
11751
13300
|
return MODULE_STORAGE;
|
|
11752
13301
|
case ITEM_HAULER_T1:
|
|
@@ -11781,6 +13330,8 @@ function moduleSlotTypeToCode(slotType) {
|
|
|
11781
13330
|
return MODULE_WARP;
|
|
11782
13331
|
case 'crafter':
|
|
11783
13332
|
return MODULE_CRAFTER;
|
|
13333
|
+
case 'builder':
|
|
13334
|
+
return MODULE_BUILDER;
|
|
11784
13335
|
case 'launcher':
|
|
11785
13336
|
return MODULE_LAUNCHER;
|
|
11786
13337
|
case 'storage':
|
|
@@ -13424,7 +14975,7 @@ const UINT32_MAX = 4294967295;
|
|
|
13424
14975
|
const UINT32_MAX_BIGINT = 4294967295n;
|
|
13425
14976
|
const UINT32_MOD = 4294967296n;
|
|
13426
14977
|
const UINT64_MAX = 18446744073709551615n;
|
|
13427
|
-
const PRECISION_BIGINT = BigInt(PRECISION
|
|
14978
|
+
const PRECISION_BIGINT = BigInt(PRECISION);
|
|
13428
14979
|
function toNumber(value) {
|
|
13429
14980
|
if (typeof value === 'number')
|
|
13430
14981
|
return Math.trunc(value);
|
|
@@ -13473,7 +15024,7 @@ function calcDistance(origin, destination) {
|
|
|
13473
15024
|
const b = Coordinates.from(destination);
|
|
13474
15025
|
const dx = toNumber(a.x) - toNumber(b.x);
|
|
13475
15026
|
const dy = toNumber(a.y) - toNumber(b.y);
|
|
13476
|
-
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
15027
|
+
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION));
|
|
13477
15028
|
}
|
|
13478
15029
|
function calcCargoItemMassUint32(item) {
|
|
13479
15030
|
let mass = toUint32(BigInt(getItem(item.item_id).mass) * toUint32(toBigInt(item.quantity)));
|
|
@@ -13543,6 +15094,15 @@ class ActionsManager extends BaseManager {
|
|
|
13543
15094
|
recharge,
|
|
13544
15095
|
});
|
|
13545
15096
|
}
|
|
15097
|
+
travelplan(entities, waypoints, recharge = true) {
|
|
15098
|
+
const entityRefs = this.entityRefs(entities);
|
|
15099
|
+
const wps = waypoints.map((w) => exports.ServerTypes.route_waypoint.from({ x: antelope.Int64.from(w.x), y: antelope.Int64.from(w.y) }));
|
|
15100
|
+
return this.server.action('travelplan', {
|
|
15101
|
+
entities: entityRefs,
|
|
15102
|
+
waypoints: wps,
|
|
15103
|
+
recharge,
|
|
15104
|
+
});
|
|
15105
|
+
}
|
|
13546
15106
|
transit(shipId, entrance, exit) {
|
|
13547
15107
|
return this.server.action('transit', {
|
|
13548
15108
|
id: antelope.UInt64.from(shipId),
|
|
@@ -13624,6 +15184,14 @@ class ActionsManager extends BaseManager {
|
|
|
13624
15184
|
items,
|
|
13625
15185
|
});
|
|
13626
15186
|
}
|
|
15187
|
+
shuttle(carrierId, fromId, toId, items) {
|
|
15188
|
+
return this.server.action('shuttle', {
|
|
15189
|
+
carrier: antelope.UInt64.from(carrierId),
|
|
15190
|
+
from_id: antelope.UInt64.from(fromId),
|
|
15191
|
+
to_id: antelope.UInt64.from(toId),
|
|
15192
|
+
items,
|
|
15193
|
+
});
|
|
15194
|
+
}
|
|
13627
15195
|
launch(launcherId, catcherId, items) {
|
|
13628
15196
|
return this.server.action('launch', {
|
|
13629
15197
|
launcher_id: antelope.UInt64.from(launcherId),
|
|
@@ -13672,26 +15240,16 @@ class ActionsManager extends BaseManager {
|
|
|
13672
15240
|
}
|
|
13673
15241
|
return this.server.action('gather', params);
|
|
13674
15242
|
}
|
|
13675
|
-
|
|
13676
|
-
|
|
13677
|
-
|
|
13678
|
-
|
|
13679
|
-
|
|
13680
|
-
|
|
13681
|
-
|
|
15243
|
+
gatherplan(sourceId, destinationId, stratum, quantity, recharge = true, slots = []) {
|
|
15244
|
+
return this.server.action('gatherplan', {
|
|
15245
|
+
source_id: antelope.UInt64.from(sourceId),
|
|
15246
|
+
destination_id: antelope.UInt64.from(destinationId),
|
|
15247
|
+
stratum: antelope.UInt16.from(stratum),
|
|
15248
|
+
quantity: antelope.UInt32.from(quantity),
|
|
15249
|
+
recharge,
|
|
15250
|
+
slots: antelope.Bytes.from(slots),
|
|
13682
15251
|
});
|
|
13683
15252
|
}
|
|
13684
|
-
flattenGatherPlan(plan, ctx) {
|
|
13685
|
-
const actions = [];
|
|
13686
|
-
for (const cycle of plan.cycles) {
|
|
13687
|
-
if (cycle.rechargeBefore)
|
|
13688
|
-
actions.push(this.recharge(ctx.sourceId));
|
|
13689
|
-
for (const limpet of cycle.limpets) {
|
|
13690
|
-
actions.push(this.gather(ctx.sourceId, ctx.destinationId, ctx.stratum, limpet.quantity, limpet.slot));
|
|
13691
|
-
}
|
|
13692
|
-
}
|
|
13693
|
-
return actions;
|
|
13694
|
-
}
|
|
13695
15253
|
warp(entityId, destination) {
|
|
13696
15254
|
const x = antelope.Int64.from(destination.x);
|
|
13697
15255
|
const y = antelope.Int64.from(destination.y);
|
|
@@ -13716,6 +15274,39 @@ class ActionsManager extends BaseManager {
|
|
|
13716
15274
|
}
|
|
13717
15275
|
return this.server.action('craft', params);
|
|
13718
15276
|
}
|
|
15277
|
+
craftjob(shipId, workshopId, slot, recipeId, quantity, inputs) {
|
|
15278
|
+
const params = {
|
|
15279
|
+
ship_id: antelope.UInt64.from(shipId),
|
|
15280
|
+
workshop_id: antelope.UInt64.from(workshopId),
|
|
15281
|
+
slot: antelope.UInt8.from(slot),
|
|
15282
|
+
recipe_id: antelope.UInt16.from(recipeId),
|
|
15283
|
+
quantity: antelope.UInt32.from(quantity),
|
|
15284
|
+
inputs,
|
|
15285
|
+
};
|
|
15286
|
+
return this.server.action('craftjob', params);
|
|
15287
|
+
}
|
|
15288
|
+
claimjob(jobId, shipId) {
|
|
15289
|
+
const params = {
|
|
15290
|
+
job_id: antelope.UInt64.from(jobId),
|
|
15291
|
+
ship_id: antelope.UInt64.from(shipId),
|
|
15292
|
+
};
|
|
15293
|
+
return this.server.action('claimjob', params);
|
|
15294
|
+
}
|
|
15295
|
+
canceljob(jobId, shipId) {
|
|
15296
|
+
const params = {
|
|
15297
|
+
job_id: antelope.UInt64.from(jobId),
|
|
15298
|
+
ship_id: antelope.UInt64.from(shipId),
|
|
15299
|
+
};
|
|
15300
|
+
return this.server.action('canceljob', params);
|
|
15301
|
+
}
|
|
15302
|
+
setsocket(workshopId, slot, open) {
|
|
15303
|
+
const params = {
|
|
15304
|
+
workshop_id: antelope.UInt64.from(workshopId),
|
|
15305
|
+
slot: antelope.UInt8.from(slot),
|
|
15306
|
+
open,
|
|
15307
|
+
};
|
|
15308
|
+
return this.server.action('setsocket', params);
|
|
15309
|
+
}
|
|
13719
15310
|
blend(entityId, inputs) {
|
|
13720
15311
|
return this.server.action('blend', {
|
|
13721
15312
|
id: antelope.UInt64.from(entityId),
|
|
@@ -14630,6 +16221,15 @@ class Shipload {
|
|
|
14630
16221
|
}
|
|
14631
16222
|
}
|
|
14632
16223
|
|
|
16224
|
+
const MODULE_STAT_SCALING_ANCHOR = 213;
|
|
16225
|
+
const MODULE_STAT_SCALING_POST_ANCHOR_PERCENT = 40;
|
|
16226
|
+
function computeEffectiveModuleStat(stat) {
|
|
16227
|
+
if (stat <= MODULE_STAT_SCALING_ANCHOR)
|
|
16228
|
+
return stat;
|
|
16229
|
+
return (MODULE_STAT_SCALING_ANCHOR +
|
|
16230
|
+
Math.floor(((stat - MODULE_STAT_SCALING_ANCHOR) * MODULE_STAT_SCALING_POST_ANCHOR_PERCENT) / 100));
|
|
16231
|
+
}
|
|
16232
|
+
|
|
14633
16233
|
const U16_MAX = 65535;
|
|
14634
16234
|
function packedModulesToInstalled(entries) {
|
|
14635
16235
|
const installed = [];
|
|
@@ -14661,13 +16261,27 @@ function getSlotAmp(layout, slotIndex) {
|
|
|
14661
16261
|
function idiv(a, b) {
|
|
14662
16262
|
return Math.floor(a / b);
|
|
14663
16263
|
}
|
|
14664
|
-
function
|
|
16264
|
+
function toWholeEnergy$1(milli) {
|
|
16265
|
+
return idiv(milli + 500, 1000);
|
|
16266
|
+
}
|
|
16267
|
+
function isShipHull$1(itemId) {
|
|
16268
|
+
return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
|
|
16269
|
+
}
|
|
16270
|
+
function sumPackedShipChannels(stats) {
|
|
16271
|
+
let sum = 0;
|
|
16272
|
+
for (let slot = 0; slot < 5; slot++)
|
|
16273
|
+
sum += decodeStat(stats, slot);
|
|
16274
|
+
return sum;
|
|
16275
|
+
}
|
|
16276
|
+
function computeBaseHullmass$1(itemId, stats) {
|
|
16277
|
+
if (isShipHull$1(itemId)) {
|
|
16278
|
+
return Math.floor((getBaseHullmassFor(itemId) * (10000 - sumPackedShipChannels(stats))) / 10000);
|
|
16279
|
+
}
|
|
14665
16280
|
const density = decodeStat(stats, 1);
|
|
14666
|
-
return
|
|
16281
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - density)) / 2000);
|
|
14667
16282
|
}
|
|
14668
16283
|
function computeBaseCapacityShip(stats) {
|
|
14669
|
-
|
|
14670
|
-
return Math.floor(5000000 * 6 ** (s / 1998));
|
|
16284
|
+
return Math.floor(5000000 * 6 ** (sumPackedShipChannels(stats) / 4995));
|
|
14671
16285
|
}
|
|
14672
16286
|
function computeBaseCapacityContainer(stats) {
|
|
14673
16287
|
const s = decodeStat(stats, 0) + decodeStat(stats, 2);
|
|
@@ -14679,35 +16293,57 @@ function computeBaseCapacityWarehouse(stats) {
|
|
|
14679
16293
|
}
|
|
14680
16294
|
const computeEngineThrust = (vol) => 400 + idiv(vol * 3, 4);
|
|
14681
16295
|
const computeEngineDrain = (thm) => 2 * Math.max(30, 50 - idiv(thm, 70));
|
|
14682
|
-
const ENGINE_DRAIN_BASE =
|
|
16296
|
+
const ENGINE_DRAIN_BASE = 156;
|
|
14683
16297
|
const ENGINE_DRAIN_REF_THRUST = 775;
|
|
14684
16298
|
const ENGINE_DRAIN_REF_THM = 500;
|
|
14685
16299
|
const computeTravelDrain = (totalThrust, avgThm) => {
|
|
14686
16300
|
if (totalThrust <= 0)
|
|
14687
16301
|
return 0;
|
|
14688
|
-
const
|
|
14689
|
-
const
|
|
14690
|
-
return
|
|
16302
|
+
const thermalFactor = computeEngineDrain(avgThm) / computeEngineDrain(ENGINE_DRAIN_REF_THM);
|
|
16303
|
+
const thrustFactor = Math.sqrt(ENGINE_DRAIN_REF_THRUST / totalThrust);
|
|
16304
|
+
return Math.floor(ENGINE_DRAIN_BASE * 1000 * thermalFactor * thrustFactor);
|
|
14691
16305
|
};
|
|
14692
|
-
const computeGeneratorCap = (com) =>
|
|
14693
|
-
const computeGeneratorRech = (fin) =>
|
|
16306
|
+
const computeGeneratorCap = (com) => 1300000 + com * 500;
|
|
16307
|
+
const computeGeneratorRech = (fin) => 2000 + fin * 6;
|
|
14694
16308
|
const computeGathererYield = (str) => 200 + str;
|
|
14695
|
-
const computeGathererDrain = (con) => 2 * Math.max(
|
|
16309
|
+
const computeGathererDrain = (con) => 2 * Math.max(250000, 1250000 - con * 1250);
|
|
14696
16310
|
const computeGathererDepth = (tol, tier) => gathererDepthForTier(tol, tier);
|
|
14697
16311
|
const computeLoaderMass = (ins) => Math.max(200, 2000 - ins * 2);
|
|
14698
16312
|
const computeLoaderThrust = (pla) => 1 + idiv(pla * pla, 10000);
|
|
14699
16313
|
const computeCrafterSpeed = (rea) => 100 + idiv(rea * 4, 5);
|
|
14700
|
-
const computeCrafterDrain = (fin) => Math.max(
|
|
16314
|
+
const computeCrafterDrain = (fin) => Math.max(5000, 30000 - idiv(fin * 1000, 33));
|
|
16315
|
+
const computeBuilderSpeed = (coh) => 100 + idiv(coh * 4, 5);
|
|
16316
|
+
const computeBuilderDrain = (tol) => Math.max(5000, 30000 - idiv(tol * 1000, 33));
|
|
14701
16317
|
const computeHaulerCapacity = (fin, tier) => Math.max(tier, tier + idiv(fin, 400));
|
|
14702
16318
|
const computeHaulerEfficiency = (con) => 2000 + con * 6;
|
|
14703
|
-
const
|
|
16319
|
+
const supportDrainTierPercent = (tier) => {
|
|
16320
|
+
const clampedTier = Math.min(10, Math.max(1, Math.trunc(tier)));
|
|
16321
|
+
return Math.max(50, 110 - clampedTier * 10);
|
|
16322
|
+
};
|
|
16323
|
+
const computeT1LogisticsDrain = (stat) => Math.max(3000, 15000 - Math.min(12000, idiv(stat * 1000, 80)));
|
|
16324
|
+
const computeHaulerDrain = (conductivity, tier) => idiv(computeT1LogisticsDrain(conductivity) * supportDrainTierPercent(tier), 100);
|
|
16325
|
+
const computeCargoBayDrain = (cohesion, tier) => idiv(computeT1LogisticsDrain(cohesion) * 3 * supportDrainTierPercent(tier), 400);
|
|
14704
16326
|
const computeWarpRange = (stat) => 100 + stat * 3;
|
|
14705
|
-
const computeCargoBayCapacity = (strength, density, hardness
|
|
14706
|
-
const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) =>
|
|
16327
|
+
const computeCargoBayCapacity = (strength, density, hardness) => 10000000 + idiv((strength + density + hardness) * 50000000, 2997);
|
|
16328
|
+
const computeBatteryBankCapacity = (volatility, thermal, plasticity, insulation) => 2500000 + idiv((volatility + thermal + plasticity + insulation) * 7500000, 3996);
|
|
14707
16329
|
function entityDisplayName(itemId) {
|
|
14708
16330
|
switch (itemId) {
|
|
14709
16331
|
case ITEM_SHIP_T1_PACKED:
|
|
16332
|
+
return 'Ship';
|
|
16333
|
+
case ITEM_ROUSTABOUT_T1_PACKED:
|
|
14710
16334
|
return 'Roustabout';
|
|
16335
|
+
case ITEM_PROSPECTOR_T1_PACKED:
|
|
16336
|
+
return 'Prospector';
|
|
16337
|
+
case ITEM_TENDER_T1_PACKED:
|
|
16338
|
+
return 'Tender';
|
|
16339
|
+
case ITEM_TUG_T1_PACKED:
|
|
16340
|
+
return 'Tug';
|
|
16341
|
+
case ITEM_PORTER_T1_PACKED:
|
|
16342
|
+
return 'Porter';
|
|
16343
|
+
case ITEM_WRANGLER_T1_PACKED:
|
|
16344
|
+
return 'Wrangler';
|
|
16345
|
+
case ITEM_DREDGER_T1_PACKED:
|
|
16346
|
+
return 'Dredger';
|
|
14711
16347
|
case ITEM_WAREHOUSE_T1_PACKED:
|
|
14712
16348
|
return 'Warehouse';
|
|
14713
16349
|
case ITEM_EXTRACTOR_T1_PACKED:
|
|
@@ -14721,7 +16357,7 @@ function entityDisplayName(itemId) {
|
|
|
14721
16357
|
case ITEM_PROSPECTOR_T2_PACKED:
|
|
14722
16358
|
return 'Prospector';
|
|
14723
16359
|
case ITEM_HAULER_SHIP_T2_PACKED:
|
|
14724
|
-
return '
|
|
16360
|
+
return 'Tug';
|
|
14725
16361
|
default:
|
|
14726
16362
|
return 'Entity';
|
|
14727
16363
|
}
|
|
@@ -14739,6 +16375,8 @@ function moduleDisplayName(itemId) {
|
|
|
14739
16375
|
return 'Shuttle Bay';
|
|
14740
16376
|
case ITEM_CRAFTER_T1:
|
|
14741
16377
|
return 'Fabricator';
|
|
16378
|
+
case ITEM_BUILDER_T1:
|
|
16379
|
+
return 'Assembly Arm';
|
|
14742
16380
|
case ITEM_STORAGE_T1:
|
|
14743
16381
|
return 'Cargo Hold';
|
|
14744
16382
|
case ITEM_HAULER_T1:
|
|
@@ -14764,15 +16402,15 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14764
16402
|
const subtype = getModuleCapabilityType(itemId);
|
|
14765
16403
|
switch (subtype) {
|
|
14766
16404
|
case MODULE_ENGINE: {
|
|
14767
|
-
const vol = decodeStat(stats, 0);
|
|
14768
|
-
const thm = decodeStat(stats, 1);
|
|
16405
|
+
const vol = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16406
|
+
const thm = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
14769
16407
|
out += ` Thrust ${computeEngineThrust(vol)} Drain ${computeEngineDrain(thm)}`;
|
|
14770
16408
|
break;
|
|
14771
16409
|
}
|
|
14772
16410
|
case MODULE_GENERATOR: {
|
|
14773
|
-
const res = decodeStat(stats, 0);
|
|
14774
|
-
const ref = decodeStat(stats, 1);
|
|
14775
|
-
out += ` Capacity ${computeGeneratorCap(res)} Recharge ${computeGeneratorRech(ref)}`;
|
|
16411
|
+
const res = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16412
|
+
const ref = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
16413
|
+
out += ` Capacity ${toWholeEnergy$1(computeGeneratorCap(res))} Recharge ${toWholeEnergy$1(computeGeneratorRech(ref))}`;
|
|
14776
16414
|
break;
|
|
14777
16415
|
}
|
|
14778
16416
|
case MODULE_GATHERER: {
|
|
@@ -14780,7 +16418,7 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14780
16418
|
const tol = decodeStat(stats, 1);
|
|
14781
16419
|
const con = decodeStat(stats, 2);
|
|
14782
16420
|
const tier = getItem(itemId).tier;
|
|
14783
|
-
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${computeGathererDrain(con)}`;
|
|
16421
|
+
out += ` Yield ${computeGathererYield(str)} Depth ${computeGathererDepth(tol, tier)} Drain ${toWholeEnergy$1(computeGathererDrain(con))}`;
|
|
14784
16422
|
break;
|
|
14785
16423
|
}
|
|
14786
16424
|
case MODULE_LOADER: {
|
|
@@ -14792,23 +16430,30 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14792
16430
|
case MODULE_CRAFTER: {
|
|
14793
16431
|
const rea = decodeStat(stats, 0);
|
|
14794
16432
|
const con = decodeStat(stats, 1);
|
|
14795
|
-
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${computeCrafterDrain(con)}`;
|
|
16433
|
+
out += ` Speed ${computeCrafterSpeed(rea)} Drain ${toWholeEnergy$1(computeCrafterDrain(con))}`;
|
|
16434
|
+
break;
|
|
16435
|
+
}
|
|
16436
|
+
case MODULE_BUILDER: {
|
|
16437
|
+
const coh = decodeStat(stats, 0);
|
|
16438
|
+
const tol = decodeStat(stats, 1);
|
|
16439
|
+
out += ` Speed ${computeBuilderSpeed(coh)} Drain ${toWholeEnergy$1(computeBuilderDrain(tol))}`;
|
|
14796
16440
|
break;
|
|
14797
16441
|
}
|
|
14798
16442
|
case MODULE_STORAGE: {
|
|
14799
16443
|
const str = decodeStat(stats, 0);
|
|
14800
16444
|
const den = decodeStat(stats, 1);
|
|
14801
16445
|
const hrd = decodeStat(stats, 2);
|
|
14802
|
-
const
|
|
14803
|
-
|
|
16446
|
+
const coh = decodeStat(stats, 3);
|
|
16447
|
+
const tier = getItem(itemId).tier;
|
|
16448
|
+
out += ` Cargo Capacity ${computeCargoBayCapacity(str, den, hrd)} Drain ${toWholeEnergy$1(computeCargoBayDrain(coh, tier))}`;
|
|
14804
16449
|
break;
|
|
14805
16450
|
}
|
|
14806
16451
|
case MODULE_HAULER: {
|
|
14807
16452
|
const res = decodeStat(stats, 0);
|
|
14808
16453
|
const pla = decodeStat(stats, 1);
|
|
14809
|
-
const
|
|
16454
|
+
const con = decodeStat(stats, 2);
|
|
14810
16455
|
const tier = getItem(itemId).tier;
|
|
14811
|
-
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${
|
|
16456
|
+
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${toWholeEnergy$1(computeHaulerDrain(con, tier))}`;
|
|
14812
16457
|
break;
|
|
14813
16458
|
}
|
|
14814
16459
|
case MODULE_WARP: {
|
|
@@ -14821,18 +16466,16 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14821
16466
|
const thm = decodeStat(stats, 1);
|
|
14822
16467
|
const pla = decodeStat(stats, 2);
|
|
14823
16468
|
const ins = decodeStat(stats, 3);
|
|
14824
|
-
out += ` Energy Capacity ${computeBatteryBankCapacity(vol, thm, pla, ins)}`;
|
|
16469
|
+
out += ` Energy Capacity ${toWholeEnergy$1(computeBatteryBankCapacity(vol, thm, pla, ins))}`;
|
|
14825
16470
|
break;
|
|
14826
16471
|
}
|
|
14827
16472
|
}
|
|
14828
16473
|
return out;
|
|
14829
16474
|
}
|
|
14830
16475
|
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
14831
|
-
const hullMass = computeBaseHullmass$1(hullStats);
|
|
16476
|
+
const hullMass = computeBaseHullmass$1(itemId, hullStats);
|
|
14832
16477
|
let baseCapacity = 0;
|
|
14833
|
-
if (itemId
|
|
14834
|
-
itemId === ITEM_PROSPECTOR_T2_PACKED ||
|
|
14835
|
-
itemId === ITEM_HAULER_SHIP_T2_PACKED) {
|
|
16478
|
+
if (isShipHull$1(itemId)) {
|
|
14836
16479
|
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14837
16480
|
}
|
|
14838
16481
|
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
@@ -14857,31 +16500,45 @@ function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
|
14857
16500
|
return out;
|
|
14858
16501
|
}
|
|
14859
16502
|
|
|
14860
|
-
|
|
14861
|
-
|
|
16503
|
+
const DEFAULT_BASE_HULLMASS = 100000;
|
|
16504
|
+
function getBaseHullmassFor(itemId) {
|
|
16505
|
+
return getEntityLayout(itemId)?.baseHullmass ?? DEFAULT_BASE_HULLMASS;
|
|
14862
16506
|
}
|
|
14863
|
-
function
|
|
14864
|
-
|
|
14865
|
-
|
|
16507
|
+
function isShipHull(itemId) {
|
|
16508
|
+
return getPackedEntityType(itemId)?.equals(ENTITY_SHIP) ?? false;
|
|
16509
|
+
}
|
|
16510
|
+
function sumHullStats(stats) {
|
|
16511
|
+
return Object.values(stats).reduce((sum, value) => sum + value, 0);
|
|
16512
|
+
}
|
|
16513
|
+
function computeBaseHullmass(itemId, stats) {
|
|
16514
|
+
if (isShipHull(itemId)) {
|
|
16515
|
+
return Math.floor((getBaseHullmassFor(itemId) * (10000 - sumHullStats(stats))) / 10000);
|
|
16516
|
+
}
|
|
16517
|
+
const lightness = stats.density ?? stats.hardness ?? 0;
|
|
16518
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - lightness)) / 2000);
|
|
16519
|
+
}
|
|
16520
|
+
function computeShipHullCapabilities(stats, itemId = ITEM_SHIP_T1_PACKED) {
|
|
16521
|
+
const statSum = sumHullStats(stats);
|
|
16522
|
+
const exponent = statSum / 4995.0;
|
|
14866
16523
|
return {
|
|
14867
|
-
hullmass: computeBaseHullmass(stats),
|
|
16524
|
+
hullmass: computeBaseHullmass(itemId, stats),
|
|
14868
16525
|
capacity: Math.floor(5000000 * 6 ** exponent),
|
|
14869
16526
|
};
|
|
14870
16527
|
}
|
|
14871
16528
|
function computeEngineCapabilities(stats) {
|
|
14872
|
-
const vol = stats.volatility;
|
|
14873
|
-
const thm = stats.thermal;
|
|
16529
|
+
const vol = computeEffectiveModuleStat(stats.volatility);
|
|
16530
|
+
const thm = computeEffectiveModuleStat(stats.thermal);
|
|
14874
16531
|
return {
|
|
14875
16532
|
thrust: 400 + Math.floor((vol * 3) / 4),
|
|
14876
16533
|
drain: 2 * Math.max(30, 50 - Math.floor(thm / 70)),
|
|
14877
16534
|
};
|
|
14878
16535
|
}
|
|
14879
16536
|
function computeGeneratorCapabilities(stats) {
|
|
14880
|
-
const res = stats.resonance;
|
|
14881
|
-
const ref = stats.reflectivity;
|
|
16537
|
+
const res = computeEffectiveModuleStat(stats.resonance);
|
|
16538
|
+
const ref = computeEffectiveModuleStat(stats.reflectivity);
|
|
14882
16539
|
return {
|
|
14883
|
-
capacity:
|
|
14884
|
-
recharge:
|
|
16540
|
+
capacity: 1300000 + res * 500,
|
|
16541
|
+
recharge: 2000 + ref * 6,
|
|
14885
16542
|
};
|
|
14886
16543
|
}
|
|
14887
16544
|
const GATHERER_DEPTH_TABLE = [
|
|
@@ -14907,11 +16564,11 @@ function gathererDepthForTier(tol, tier) {
|
|
|
14907
16564
|
function computeGathererCapabilities(stats, tier) {
|
|
14908
16565
|
const str = stats.strength;
|
|
14909
16566
|
const con = stats.saturation;
|
|
14910
|
-
const
|
|
16567
|
+
const tol = stats.tolerance ?? stats.hardness;
|
|
14911
16568
|
return {
|
|
14912
16569
|
yield: 200 + str,
|
|
14913
|
-
drain: 2 * Math.max(
|
|
14914
|
-
depth: gathererDepthForTier(
|
|
16570
|
+
drain: 2 * Math.max(250000, 1250000 - con * 1250),
|
|
16571
|
+
depth: gathererDepthForTier(tol, tier),
|
|
14915
16572
|
};
|
|
14916
16573
|
}
|
|
14917
16574
|
function computeLoaderCapabilities(stats) {
|
|
@@ -14928,7 +16585,15 @@ function computeCrafterCapabilities(stats) {
|
|
|
14928
16585
|
const con = stats.conductivity;
|
|
14929
16586
|
return {
|
|
14930
16587
|
speed: 100 + Math.floor((fin * 4) / 5),
|
|
14931
|
-
drain: Math.max(
|
|
16588
|
+
drain: Math.max(5000, 30000 - Math.floor((con * 1000) / 33)),
|
|
16589
|
+
};
|
|
16590
|
+
}
|
|
16591
|
+
function computeBuilderCapabilities(stats) {
|
|
16592
|
+
const coh = stats.cohesion;
|
|
16593
|
+
const tol = stats.tolerance;
|
|
16594
|
+
return {
|
|
16595
|
+
speed: 100 + Math.floor((coh * 4) / 5),
|
|
16596
|
+
drain: Math.max(5000, 30000 - Math.floor((tol * 1000) / 33)),
|
|
14932
16597
|
};
|
|
14933
16598
|
}
|
|
14934
16599
|
function computeHaulerCapabilities(stats, tier) {
|
|
@@ -14938,7 +16603,7 @@ function computeHaulerCapabilities(stats, tier) {
|
|
|
14938
16603
|
return {
|
|
14939
16604
|
capacity: computeHaulerCapacity(resonance, tier),
|
|
14940
16605
|
efficiency: 2000 + plasticity * 6,
|
|
14941
|
-
drain:
|
|
16606
|
+
drain: computeHaulerDrain(conductivity, tier),
|
|
14942
16607
|
};
|
|
14943
16608
|
}
|
|
14944
16609
|
function computeLauncherCapabilities(stats, amp = 100) {
|
|
@@ -14948,13 +16613,11 @@ function computeLauncherCapabilities(stats, amp = 100) {
|
|
|
14948
16613
|
drain: stats.drain,
|
|
14949
16614
|
};
|
|
14950
16615
|
}
|
|
14951
|
-
function computeStorageCapabilities(stats) {
|
|
14952
|
-
|
|
14953
|
-
|
|
14954
|
-
|
|
14955
|
-
|
|
14956
|
-
const statSum = strength + density + hardness + cohesion;
|
|
14957
|
-
return { capacity: 10000000 + Math.floor((statSum * 50000000) / 3996) };
|
|
16616
|
+
function computeStorageCapabilities(stats, tier) {
|
|
16617
|
+
return {
|
|
16618
|
+
capacity: computeCargoBayCapacity(stats.strength ?? 0, stats.density ?? 0, stats.hardness ?? 0),
|
|
16619
|
+
drain: computeCargoBayDrain(stats.cohesion ?? 0, tier),
|
|
16620
|
+
};
|
|
14958
16621
|
}
|
|
14959
16622
|
function computeBatteryCapabilities(stats) {
|
|
14960
16623
|
const volatility = stats.volatility ?? 0;
|
|
@@ -14962,7 +16625,7 @@ function computeBatteryCapabilities(stats) {
|
|
|
14962
16625
|
const plasticity = stats.plasticity ?? 0;
|
|
14963
16626
|
const insulation = stats.insulation ?? 0;
|
|
14964
16627
|
const statSum = volatility + thermal + plasticity + insulation;
|
|
14965
|
-
return { capacity:
|
|
16628
|
+
return { capacity: 2500000 + Math.floor((statSum * 7500000) / 3996) };
|
|
14966
16629
|
}
|
|
14967
16630
|
const CAPACITY_TIER_TABLE = [1.0, 1.4, 1.8, 2.2, 2.6, 3.0, 3.4, 3.8, 4.2, 4.6];
|
|
14968
16631
|
function capacityTierMultiplier(tier) {
|
|
@@ -14974,25 +16637,25 @@ function applyCapacityTier(baseCapacity, tier) {
|
|
|
14974
16637
|
}
|
|
14975
16638
|
function computeBaseCapacity(itemId, stats) {
|
|
14976
16639
|
let base;
|
|
14977
|
-
|
|
14978
|
-
|
|
14979
|
-
|
|
14980
|
-
|
|
14981
|
-
|
|
14982
|
-
|
|
14983
|
-
|
|
14984
|
-
|
|
14985
|
-
|
|
14986
|
-
|
|
14987
|
-
|
|
14988
|
-
|
|
14989
|
-
|
|
14990
|
-
|
|
14991
|
-
|
|
14992
|
-
|
|
14993
|
-
|
|
14994
|
-
|
|
14995
|
-
|
|
16640
|
+
if (isShipHull(itemId)) {
|
|
16641
|
+
base = computeShipHullCapabilities(stats, itemId).capacity;
|
|
16642
|
+
}
|
|
16643
|
+
else {
|
|
16644
|
+
switch (itemId) {
|
|
16645
|
+
case ITEM_EXTRACTOR_T1_PACKED:
|
|
16646
|
+
case ITEM_FACTORY_T1_PACKED:
|
|
16647
|
+
case ITEM_MASS_DRIVER_T1_PACKED:
|
|
16648
|
+
case ITEM_MASS_CATCHER_T1_PACKED:
|
|
16649
|
+
case ITEM_CONTAINER_T1_PACKED:
|
|
16650
|
+
case ITEM_CONTAINER_T2_PACKED:
|
|
16651
|
+
base = computeContainerCapabilities(stats).capacity;
|
|
16652
|
+
break;
|
|
16653
|
+
case ITEM_WAREHOUSE_T1_PACKED:
|
|
16654
|
+
base = computeWarehouseHullCapabilities(stats).capacity;
|
|
16655
|
+
break;
|
|
16656
|
+
default:
|
|
16657
|
+
return 0;
|
|
16658
|
+
}
|
|
14996
16659
|
}
|
|
14997
16660
|
return applyCapacityTier(base, getItem(itemId).tier);
|
|
14998
16661
|
}
|
|
@@ -15004,7 +16667,7 @@ function computeWarehouseHullCapabilities(stats) {
|
|
|
15004
16667
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15005
16668
|
const exponent = statSum / 1998.0;
|
|
15006
16669
|
return {
|
|
15007
|
-
hullmass: computeBaseHullmass(stats),
|
|
16670
|
+
hullmass: computeBaseHullmass(ITEM_WAREHOUSE_T1_PACKED, stats),
|
|
15008
16671
|
capacity: Math.floor(100000000 * 6 ** exponent),
|
|
15009
16672
|
};
|
|
15010
16673
|
}
|
|
@@ -15025,11 +16688,15 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15025
16688
|
let maxGathDepth = 0;
|
|
15026
16689
|
let hasGatherer = false;
|
|
15027
16690
|
let totalStorageCapacity = 0;
|
|
16691
|
+
let totalCargoHoldDrain = 0;
|
|
15028
16692
|
const baseCapacity = computeBaseCapacity(itemId, stats);
|
|
15029
16693
|
let installedModuleMass = 0;
|
|
15030
16694
|
let totalCrafterSpeed = 0;
|
|
15031
16695
|
let totalCrafterDrain = 0;
|
|
15032
16696
|
let hasCrafter = false;
|
|
16697
|
+
let totalBuilderSpeed = 0;
|
|
16698
|
+
let totalBuilderDrain = 0;
|
|
16699
|
+
let hasBuilder = false;
|
|
15033
16700
|
let totalHaulerCapacity = 0;
|
|
15034
16701
|
let weightedHaulerEffNum = 0n;
|
|
15035
16702
|
let totalHaulerDrain = 0;
|
|
@@ -15044,6 +16711,7 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15044
16711
|
let totalBatteryCapacity = 0;
|
|
15045
16712
|
const gathererLanes = [];
|
|
15046
16713
|
const crafterLanes = [];
|
|
16714
|
+
const builderLanes = [];
|
|
15047
16715
|
const loaderLanes = [];
|
|
15048
16716
|
for (const mod of modules) {
|
|
15049
16717
|
const item = getItem(mod.itemId);
|
|
@@ -15055,19 +16723,23 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15055
16723
|
hasEngine = true;
|
|
15056
16724
|
const caps = computeEngineCapabilities(decodedStats);
|
|
15057
16725
|
totalThrust += applySlotMultiplier(caps.thrust, amp);
|
|
15058
|
-
totalEngineThm += decodedStats.thermal ?? 0;
|
|
16726
|
+
totalEngineThm += computeEffectiveModuleStat(decodedStats.thermal ?? 0);
|
|
15059
16727
|
engineCount += 1;
|
|
15060
16728
|
}
|
|
15061
16729
|
else if (modType === MODULE_GENERATOR) {
|
|
15062
16730
|
hasGenerator = true;
|
|
15063
16731
|
const caps = computeGeneratorCapabilities(decodedStats);
|
|
15064
|
-
totalGenCapacity +=
|
|
15065
|
-
totalGenRecharge +=
|
|
16732
|
+
totalGenCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16733
|
+
totalGenRecharge += applySlotMultiplierUint32(caps.recharge, amp);
|
|
15066
16734
|
}
|
|
15067
16735
|
else if (modType === MODULE_GATHERER) {
|
|
15068
16736
|
hasGatherer = true;
|
|
15069
16737
|
const tier = item.tier;
|
|
15070
|
-
const caps = computeGathererCapabilities(
|
|
16738
|
+
const caps = computeGathererCapabilities({
|
|
16739
|
+
strength: decodeStat(mod.stats, 0),
|
|
16740
|
+
tolerance: decodeStat(mod.stats, 1),
|
|
16741
|
+
saturation: decodeStat(mod.stats, 2),
|
|
16742
|
+
}, tier);
|
|
15071
16743
|
const scaledYield = applySlotMultiplier(caps.yield, amp);
|
|
15072
16744
|
totalGathYield += scaledYield;
|
|
15073
16745
|
totalGathDrain += caps.drain;
|
|
@@ -15095,8 +16767,9 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15095
16767
|
});
|
|
15096
16768
|
}
|
|
15097
16769
|
else if (modType === MODULE_STORAGE) {
|
|
15098
|
-
const caps = computeStorageCapabilities(decodedStats);
|
|
16770
|
+
const caps = computeStorageCapabilities(decodedStats, item.tier);
|
|
15099
16771
|
totalStorageCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16772
|
+
totalCargoHoldDrain += caps.drain;
|
|
15100
16773
|
}
|
|
15101
16774
|
else if (modType === MODULE_CRAFTER) {
|
|
15102
16775
|
hasCrafter = true;
|
|
@@ -15111,6 +16784,19 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15111
16784
|
outputPct: amp,
|
|
15112
16785
|
});
|
|
15113
16786
|
}
|
|
16787
|
+
else if (modType === MODULE_BUILDER) {
|
|
16788
|
+
hasBuilder = true;
|
|
16789
|
+
const caps = computeBuilderCapabilities(decodedStats);
|
|
16790
|
+
const scaledSpeed = applySlotMultiplier(caps.speed, amp);
|
|
16791
|
+
totalBuilderSpeed += scaledSpeed;
|
|
16792
|
+
totalBuilderDrain += caps.drain;
|
|
16793
|
+
builderLanes.push({
|
|
16794
|
+
slotIndex: mod.slotIndex,
|
|
16795
|
+
speed: scaledSpeed,
|
|
16796
|
+
drain: caps.drain,
|
|
16797
|
+
outputPct: amp,
|
|
16798
|
+
});
|
|
16799
|
+
}
|
|
15114
16800
|
else if (modType === MODULE_HAULER) {
|
|
15115
16801
|
hasHauler = true;
|
|
15116
16802
|
const caps = computeHaulerCapabilities(decodedStats, item.tier);
|
|
@@ -15145,12 +16831,20 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15145
16831
|
totalGenCapacity += totalBatteryCapacity;
|
|
15146
16832
|
}
|
|
15147
16833
|
const result = {
|
|
15148
|
-
hullmass: computeBaseHullmass(stats) + installedModuleMass,
|
|
16834
|
+
hullmass: computeBaseHullmass(itemId, stats) + installedModuleMass,
|
|
15149
16835
|
capacity: clampUint32(baseCapacity + totalStorageCapacity),
|
|
15150
16836
|
};
|
|
15151
16837
|
if (hasEngine) {
|
|
15152
16838
|
const avgThm = engineCount > 0 ? Math.trunc(totalEngineThm / engineCount) : 0;
|
|
15153
|
-
|
|
16839
|
+
const engineDrain = computeTravelDrain(totalThrust, avgThm);
|
|
16840
|
+
const totalDrain = clampUint32(engineDrain + totalCargoHoldDrain + totalHaulerDrain);
|
|
16841
|
+
result.engines = { thrust: totalThrust, drain: totalDrain };
|
|
16842
|
+
result.travelDrain = {
|
|
16843
|
+
engine: engineDrain,
|
|
16844
|
+
cargoHolds: totalCargoHoldDrain,
|
|
16845
|
+
tractorBeams: totalHaulerDrain,
|
|
16846
|
+
total: totalDrain,
|
|
16847
|
+
};
|
|
15154
16848
|
}
|
|
15155
16849
|
if (hasGenerator) {
|
|
15156
16850
|
result.generator = {
|
|
@@ -15178,6 +16872,10 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15178
16872
|
result.crafter = { speed: clampUint16(totalCrafterSpeed), drain: totalCrafterDrain };
|
|
15179
16873
|
result.crafterLanes = crafterLanes;
|
|
15180
16874
|
}
|
|
16875
|
+
if (hasBuilder) {
|
|
16876
|
+
result.builder = { speed: clampUint16(totalBuilderSpeed), drain: totalBuilderDrain };
|
|
16877
|
+
result.builderLanes = builderLanes;
|
|
16878
|
+
}
|
|
15181
16879
|
if (hasHauler) {
|
|
15182
16880
|
const efficiency = totalHaulerCapacity > 0 ? Number(weightedHaulerEffNum / BigInt(totalHaulerCapacity)) : 0;
|
|
15183
16881
|
result.hauler = {
|
|
@@ -15205,7 +16903,7 @@ function computeContainerCapabilities(stats) {
|
|
|
15205
16903
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15206
16904
|
const exponent = statSum / 1998.0;
|
|
15207
16905
|
return {
|
|
15208
|
-
hullmass: computeBaseHullmass(stats),
|
|
16906
|
+
hullmass: computeBaseHullmass(ITEM_CONTAINER_T1_PACKED, stats),
|
|
15209
16907
|
capacity: Math.floor(22000000 * 6 ** exponent),
|
|
15210
16908
|
};
|
|
15211
16909
|
}
|
|
@@ -15271,7 +16969,7 @@ function makeEntity(packedItemId, state) {
|
|
|
15271
16969
|
holds: [],
|
|
15272
16970
|
};
|
|
15273
16971
|
if (state.energy !== undefined)
|
|
15274
|
-
info.energy = antelope.
|
|
16972
|
+
info.energy = antelope.UInt32.from(state.energy);
|
|
15275
16973
|
if (kind === 'container') {
|
|
15276
16974
|
info.modules = [];
|
|
15277
16975
|
if (state.hullmass !== undefined)
|
|
@@ -15331,6 +17029,12 @@ function makeEntity(packedItemId, state) {
|
|
|
15331
17029
|
drain: l.drain,
|
|
15332
17030
|
output_pct: l.outputPct,
|
|
15333
17031
|
}));
|
|
17032
|
+
info.builder_lanes = (caps.builderLanes ?? []).map((l) => exports.ServerTypes.builder_lane.from({
|
|
17033
|
+
slot_index: l.slotIndex,
|
|
17034
|
+
speed: l.speed,
|
|
17035
|
+
drain: l.drain,
|
|
17036
|
+
output_pct: l.outputPct,
|
|
17037
|
+
}));
|
|
15334
17038
|
info.loader_lanes = (caps.loaderLanes ?? []).map((l) => exports.ServerTypes.loader_lane.from({
|
|
15335
17039
|
slot_index: l.slotIndex,
|
|
15336
17040
|
mass: l.mass,
|
|
@@ -15342,6 +17046,8 @@ function makeEntity(packedItemId, state) {
|
|
|
15342
17046
|
info.gatherer_lanes = [];
|
|
15343
17047
|
if (!info.crafter_lanes)
|
|
15344
17048
|
info.crafter_lanes = [];
|
|
17049
|
+
if (!info.builder_lanes)
|
|
17050
|
+
info.builder_lanes = [];
|
|
15345
17051
|
if (!info.loader_lanes)
|
|
15346
17052
|
info.loader_lanes = [];
|
|
15347
17053
|
const entityInfo = exports.ServerTypes.entity_info.from(info);
|
|
@@ -15357,7 +17063,13 @@ function calc_craft_duration(speed, totalInputMass) {
|
|
|
15357
17063
|
}
|
|
15358
17064
|
function calc_craft_energy(drain, totalInputMass) {
|
|
15359
17065
|
const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR);
|
|
15360
|
-
return antelope.UInt32.from(Math.min(Math.max(raw + 1,
|
|
17066
|
+
return antelope.UInt32.from(Math.min(Math.max(raw + 1, 1000), 4294967295));
|
|
17067
|
+
}
|
|
17068
|
+
function calc_build_duration(speed, totalInputMass) {
|
|
17069
|
+
return calc_craft_duration(speed, totalInputMass);
|
|
17070
|
+
}
|
|
17071
|
+
function calc_build_energy(drain, totalInputMass) {
|
|
17072
|
+
return calc_craft_energy(drain, totalInputMass);
|
|
15361
17073
|
}
|
|
15362
17074
|
|
|
15363
17075
|
class PlotManager extends BaseManager {
|
|
@@ -15420,7 +17132,7 @@ class PlotManager extends BaseManager {
|
|
|
15420
17132
|
recipe,
|
|
15421
17133
|
progress,
|
|
15422
17134
|
finalizeAction: antelope.Name.from('buildplot'),
|
|
15423
|
-
finalizerCapability: '
|
|
17135
|
+
finalizerCapability: 'builder',
|
|
15424
17136
|
activeTask,
|
|
15425
17137
|
scheduledBuild,
|
|
15426
17138
|
};
|
|
@@ -15468,16 +17180,16 @@ class ConstructionManager extends BaseManager {
|
|
|
15468
17180
|
continue;
|
|
15469
17181
|
if (!coordsEqual(entity.coordinates, target.coordinates))
|
|
15470
17182
|
continue;
|
|
15471
|
-
const
|
|
15472
|
-
if (
|
|
17183
|
+
const builderLanes = entity.builder_lanes ?? [];
|
|
17184
|
+
if (builderLanes.length === 0)
|
|
15473
17185
|
continue;
|
|
15474
|
-
const speed =
|
|
17186
|
+
const speed = builderLanes.reduce((s, l) => s + Number(l.speed), 0);
|
|
15475
17187
|
out.push({
|
|
15476
17188
|
entityId: entity.id,
|
|
15477
17189
|
entityType: entity.type,
|
|
15478
17190
|
name: entity.entity_name,
|
|
15479
|
-
capability: '
|
|
15480
|
-
|
|
17191
|
+
capability: 'builder',
|
|
17192
|
+
builderSpeed: speed,
|
|
15481
17193
|
estimatedDuration: this.estimateFinalizeDuration(target, speed),
|
|
15482
17194
|
});
|
|
15483
17195
|
}
|
|
@@ -15499,12 +17211,12 @@ class ConstructionManager extends BaseManager {
|
|
|
15499
17211
|
cumulativeSec += task.duration.toNumber();
|
|
15500
17212
|
if (!isPushTask(task))
|
|
15501
17213
|
continue;
|
|
15502
|
-
if (
|
|
17214
|
+
if (task.couplings.length === 0)
|
|
15503
17215
|
continue;
|
|
15504
17216
|
const projectedEndMs = startedMs + cumulativeSec * 1000;
|
|
15505
17217
|
if (projectedEndMs < nowMs)
|
|
15506
17218
|
continue;
|
|
15507
|
-
const targetIdStr = task.
|
|
17219
|
+
const targetIdStr = task.couplings[0].counterpart.entity_id.toString();
|
|
15508
17220
|
const etaSeconds = Math.max(0, Math.round((projectedEndMs - nowMs) / 1000));
|
|
15509
17221
|
let perTarget = buckets.get(targetIdStr);
|
|
15510
17222
|
if (!perTarget) {
|
|
@@ -15629,8 +17341,8 @@ class ConstructionManager extends BaseManager {
|
|
|
15629
17341
|
return [];
|
|
15630
17342
|
return reservationsOf(source);
|
|
15631
17343
|
}
|
|
15632
|
-
estimateFinalizeDuration(target,
|
|
15633
|
-
return
|
|
17344
|
+
estimateFinalizeDuration(target, builderSpeed) {
|
|
17345
|
+
return calc_build_duration(builderSpeed, target.progress.massRequired);
|
|
15634
17346
|
}
|
|
15635
17347
|
static isConstructionKind(kind) {
|
|
15636
17348
|
return CONSTRUCTION_KINDS.has(kind);
|
|
@@ -15723,18 +17435,18 @@ function isPushTask(task) {
|
|
|
15723
17435
|
}
|
|
15724
17436
|
function isBuildOfPlot(task, plotId) {
|
|
15725
17437
|
return (task.type.toNumber() === exports.TaskType.BUILDPLOT &&
|
|
15726
|
-
task.
|
|
15727
|
-
task.
|
|
17438
|
+
task.couplings.length > 0 &&
|
|
17439
|
+
task.couplings[0].counterpart.entity_id.equals(plotId));
|
|
15728
17440
|
}
|
|
15729
17441
|
function reservationsOf(source) {
|
|
15730
17442
|
const out = new Map();
|
|
15731
17443
|
for (const task of getTasks(source)) {
|
|
15732
17444
|
if (!isPushTask(task))
|
|
15733
17445
|
continue;
|
|
15734
|
-
if (
|
|
17446
|
+
if (task.couplings.length === 0)
|
|
15735
17447
|
continue;
|
|
15736
|
-
const targetType = task.
|
|
15737
|
-
const targetId = task.
|
|
17448
|
+
const targetType = task.couplings[0].counterpart.entity_type;
|
|
17449
|
+
const targetId = task.couplings[0].counterpart.entity_id;
|
|
15738
17450
|
for (const c of task.cargo) {
|
|
15739
17451
|
const itemId = c.item_id.toNumber();
|
|
15740
17452
|
const quantity = c.quantity.toNumber();
|
|
@@ -15823,11 +17535,23 @@ function planRoute(params) {
|
|
|
15823
17535
|
return { ok: false, reason: 'empty-destination' };
|
|
15824
17536
|
}
|
|
15825
17537
|
const straightLine = dist(origin, dest);
|
|
15826
|
-
|
|
17538
|
+
if (straightLine <= perLegReach) {
|
|
17539
|
+
const directCost = params.legCost?.({
|
|
17540
|
+
from: origin,
|
|
17541
|
+
to: dest,
|
|
17542
|
+
distance: straightLine,
|
|
17543
|
+
isDestination: true,
|
|
17544
|
+
});
|
|
17545
|
+
if (directCost !== null) {
|
|
17546
|
+
return { ok: true, waypoints: [dest], legs: 1, totalDistance: straightLine };
|
|
17547
|
+
}
|
|
17548
|
+
}
|
|
17549
|
+
const heuristic = (c) => params.heuristicCost?.(c, dest) ??
|
|
17550
|
+
(params.legCost ? 0 : Math.ceil(dist(c, dest) / perLegReach));
|
|
15827
17551
|
const gScore = new Map([[key(origin), 0]]);
|
|
15828
17552
|
const cameFrom = new Map();
|
|
15829
17553
|
const frontier = [
|
|
15830
|
-
{ coord: origin,
|
|
17554
|
+
{ coord: origin, legs: 0, cost: 0, f: heuristic(origin), remaining: straightLine },
|
|
15831
17555
|
];
|
|
15832
17556
|
let furthest = origin;
|
|
15833
17557
|
let furthestRemaining = dist(origin, dest);
|
|
@@ -15843,6 +17567,8 @@ function planRoute(params) {
|
|
|
15843
17567
|
}
|
|
15844
17568
|
}
|
|
15845
17569
|
const current = frontier.splice(bestIdx, 1)[0];
|
|
17570
|
+
if (current.cost !== gScore.get(key(current.coord)))
|
|
17571
|
+
continue;
|
|
15846
17572
|
if (sameCoord(current.coord, dest)) {
|
|
15847
17573
|
return reconstruct(cameFrom, origin, dest);
|
|
15848
17574
|
}
|
|
@@ -15856,20 +17582,33 @@ function planRoute(params) {
|
|
|
15856
17582
|
const inCorridor = dist(origin, n.coord) + dist(n.coord, dest) <= straightLine + corridorSlack;
|
|
15857
17583
|
if (!inCorridor)
|
|
15858
17584
|
continue;
|
|
15859
|
-
const
|
|
15860
|
-
if (
|
|
17585
|
+
const tentativeLegs = current.legs + 1;
|
|
17586
|
+
if (tentativeLegs > maxLegs) {
|
|
15861
17587
|
cappedByMaxLegs = true;
|
|
15862
17588
|
continue;
|
|
15863
17589
|
}
|
|
17590
|
+
const evaluatedCost = params.legCost?.({
|
|
17591
|
+
from: current.coord,
|
|
17592
|
+
to: n.coord,
|
|
17593
|
+
distance: n.dist,
|
|
17594
|
+
isDestination: sameCoord(n.coord, dest),
|
|
17595
|
+
});
|
|
17596
|
+
if (evaluatedCost === null)
|
|
17597
|
+
continue;
|
|
17598
|
+
const legCost = evaluatedCost ?? 1;
|
|
17599
|
+
if (!(legCost >= 0) || !Number.isFinite(legCost))
|
|
17600
|
+
continue;
|
|
15864
17601
|
const nk = key(n.coord);
|
|
15865
|
-
|
|
15866
|
-
|
|
17602
|
+
const nextCost = current.cost + legCost;
|
|
17603
|
+
if (nextCost < (gScore.get(nk) ?? Infinity)) {
|
|
17604
|
+
gScore.set(nk, nextCost);
|
|
15867
17605
|
cameFrom.set(nk, current.coord);
|
|
15868
17606
|
const remaining = dist(n.coord, dest);
|
|
15869
17607
|
frontier.push({
|
|
15870
17608
|
coord: n.coord,
|
|
15871
|
-
|
|
15872
|
-
|
|
17609
|
+
legs: tentativeLegs,
|
|
17610
|
+
cost: nextCost,
|
|
17611
|
+
f: nextCost + heuristic(n.coord),
|
|
15873
17612
|
remaining,
|
|
15874
17613
|
});
|
|
15875
17614
|
}
|
|
@@ -15919,47 +17658,22 @@ function reconstruct(cameFrom, origin, dest) {
|
|
|
15919
17658
|
const waypoints = path.slice(1);
|
|
15920
17659
|
return { ok: true, waypoints, legs: waypoints.length, totalDistance };
|
|
15921
17660
|
}
|
|
15922
|
-
|
|
15923
|
-
|
|
15924
|
-
function setScanProvider(provider) {
|
|
15925
|
-
scanProvider = provider;
|
|
15926
|
-
graphCache.clear();
|
|
15927
|
-
}
|
|
15928
|
-
function sdkSystemGraph(seed) {
|
|
17661
|
+
const graphCache = new WeakMap();
|
|
17662
|
+
function sdkSystemGraph(seed, scan) {
|
|
15929
17663
|
const s = antelope.Checksum256.from(seed);
|
|
15930
17664
|
const seedHex = s.toString();
|
|
15931
|
-
|
|
17665
|
+
let bySeed = graphCache.get(scan);
|
|
17666
|
+
if (!bySeed) {
|
|
17667
|
+
bySeed = new Map();
|
|
17668
|
+
graphCache.set(scan, bySeed);
|
|
17669
|
+
}
|
|
17670
|
+
const cached = bySeed.get(seedHex);
|
|
15932
17671
|
if (cached)
|
|
15933
17672
|
return cached;
|
|
15934
|
-
const graph =
|
|
15935
|
-
|
|
17673
|
+
const graph = wasmSystemGraph(s, seedHex, scan);
|
|
17674
|
+
bySeed.set(seedHex, graph);
|
|
15936
17675
|
return graph;
|
|
15937
17676
|
}
|
|
15938
|
-
function jsSystemGraph(s) {
|
|
15939
|
-
return {
|
|
15940
|
-
hasSystem: (c) => hasSystem(s, { x: c.x, y: c.y }) || wormholeAt(s, c.x, c.y) !== null,
|
|
15941
|
-
nearby: (c, reachTiles) => {
|
|
15942
|
-
const seen = new Set([`${c.x},${c.y}`]);
|
|
15943
|
-
const out = [];
|
|
15944
|
-
for (const d of findNearbyPlanets(s, { x: c.x, y: c.y }, reachTiles * PRECISION$1)) {
|
|
15945
|
-
const coord = { x: Number(d.destination.x), y: Number(d.destination.y) };
|
|
15946
|
-
const k = `${coord.x},${coord.y}`;
|
|
15947
|
-
if (seen.has(k))
|
|
15948
|
-
continue;
|
|
15949
|
-
seen.add(k);
|
|
15950
|
-
out.push({ coord, dist: Number(d.distance) / PRECISION$1 });
|
|
15951
|
-
}
|
|
15952
|
-
for (const coord of nearbyWormholes(s, c.x, c.y, reachTiles)) {
|
|
15953
|
-
const k = `${coord.x},${coord.y}`;
|
|
15954
|
-
if (seen.has(k))
|
|
15955
|
-
continue;
|
|
15956
|
-
seen.add(k);
|
|
15957
|
-
out.push({ coord, dist: Math.hypot(coord.x - c.x, coord.y - c.y) });
|
|
15958
|
-
}
|
|
15959
|
-
return out;
|
|
15960
|
-
},
|
|
15961
|
-
};
|
|
15962
|
-
}
|
|
15963
17677
|
const SCAN_BUCKET = 48;
|
|
15964
17678
|
function wasmSystemGraph(s, seedHex, scan) {
|
|
15965
17679
|
const bucketCache = new Map();
|
|
@@ -16012,21 +17726,120 @@ function wasmSystemGraph(s, seedHex, scan) {
|
|
|
16012
17726
|
};
|
|
16013
17727
|
}
|
|
16014
17728
|
|
|
16015
|
-
function computePerLegReach(s
|
|
17729
|
+
function computePerLegReach(s) {
|
|
16016
17730
|
const capacity = s.generator?.capacity;
|
|
16017
17731
|
const drain = s.engines?.drain;
|
|
16018
17732
|
if (capacity === undefined || drain === undefined || drain === 0n) {
|
|
16019
17733
|
throw new Error('entity has no usable engine/generator (cannot compute per-leg reach)');
|
|
16020
17734
|
}
|
|
16021
|
-
|
|
16022
|
-
return Number(capacity) / Number(drain + haulDrain);
|
|
17735
|
+
return Number(capacity) / Number(drain);
|
|
16023
17736
|
}
|
|
16024
|
-
function computeGroupPerLegReach(participants
|
|
17737
|
+
function computeGroupPerLegReach(participants) {
|
|
16025
17738
|
const movers = participants.filter((p) => p.engines !== undefined && p.engines.drain !== 0n);
|
|
16026
17739
|
if (movers.length === 0) {
|
|
16027
17740
|
throw new Error('group has no moving entity (cannot compute per-leg reach)');
|
|
16028
17741
|
}
|
|
16029
|
-
return Math.min(...movers.map(
|
|
17742
|
+
return Math.min(...movers.map(computePerLegReach));
|
|
17743
|
+
}
|
|
17744
|
+
|
|
17745
|
+
function simulateRoute(movers, waypoints, origin, recharge) {
|
|
17746
|
+
const totalThrust = movers
|
|
17747
|
+
.filter((m) => m.hasMovement && m.engines)
|
|
17748
|
+
.reduce((sum, m) => sum + m.engines.thrust, 0);
|
|
17749
|
+
const totalMass = movers.reduce((sum, m) => sum + m.mass, 0);
|
|
17750
|
+
const haulCount = movers.filter((m) => !m.hasMovement).length;
|
|
17751
|
+
const pooledHaulCap = movers
|
|
17752
|
+
.filter((m) => m.hasMovement && m.hauler)
|
|
17753
|
+
.reduce((sum, m) => sum + m.hauler.capacity, 0);
|
|
17754
|
+
const weightedHaulEffNum = movers
|
|
17755
|
+
.filter((m) => m.hasMovement && m.hauler)
|
|
17756
|
+
.reduce((sum, m) => sum + m.hauler.efficiency * m.hauler.capacity, 0);
|
|
17757
|
+
const energyByMover = new Map(movers.map((m) => [String(m.ref.entityId), m.energy]));
|
|
17758
|
+
let reachable = true;
|
|
17759
|
+
const legs = [];
|
|
17760
|
+
const mobilityBarrier = movers
|
|
17761
|
+
.filter((m) => m.hasMovement)
|
|
17762
|
+
.reduce((mx, m) => Math.max(mx, m.priorMobilityEnd, m.narrowBarrierEnd), 0);
|
|
17763
|
+
const rechargeFloor = movers
|
|
17764
|
+
.filter((m) => m.hasMovement && m.generator)
|
|
17765
|
+
.reduce((mx, m) => Math.max(mx, m.allLanesEnd ?? 0), 0);
|
|
17766
|
+
let clock = 0;
|
|
17767
|
+
let from = origin;
|
|
17768
|
+
for (const to of waypoints) {
|
|
17769
|
+
const distance = distanceBetweenPoints(from.x, from.y, to.x, to.y);
|
|
17770
|
+
const distanceNum = Number(distance);
|
|
17771
|
+
const distanceCells = distanceNum / PRECISION;
|
|
17772
|
+
const energyCostByMover = {};
|
|
17773
|
+
for (const m of movers) {
|
|
17774
|
+
if (!m.hasMovement || !m.engines)
|
|
17775
|
+
continue;
|
|
17776
|
+
const key = String(m.ref.entityId);
|
|
17777
|
+
energyCostByMover[key] = Number(calc_energyusage(distance, m.engines.drain));
|
|
17778
|
+
}
|
|
17779
|
+
let rechargeBefore = false;
|
|
17780
|
+
let rechargeSeconds = 0;
|
|
17781
|
+
if (recharge) {
|
|
17782
|
+
let maxDur = 0;
|
|
17783
|
+
for (const m of movers) {
|
|
17784
|
+
if (!m.hasMovement || !m.generator)
|
|
17785
|
+
continue;
|
|
17786
|
+
const key = String(m.ref.entityId);
|
|
17787
|
+
const curEnergy = energyByMover.get(key) ?? 0;
|
|
17788
|
+
const dur = Number(calc_rechargetime(m.generator.capacity, curEnergy, m.generator.recharge));
|
|
17789
|
+
if (dur > maxDur)
|
|
17790
|
+
maxDur = dur;
|
|
17791
|
+
}
|
|
17792
|
+
rechargeSeconds = maxDur;
|
|
17793
|
+
rechargeBefore = rechargeSeconds > 0;
|
|
17794
|
+
if (rechargeBefore) {
|
|
17795
|
+
for (const m of movers) {
|
|
17796
|
+
if (!m.hasMovement || !m.generator)
|
|
17797
|
+
continue;
|
|
17798
|
+
const key = String(m.ref.entityId);
|
|
17799
|
+
energyByMover.set(key, m.generator.capacity);
|
|
17800
|
+
}
|
|
17801
|
+
clock = Math.max(clock, rechargeFloor) + rechargeSeconds;
|
|
17802
|
+
}
|
|
17803
|
+
}
|
|
17804
|
+
for (const m of movers) {
|
|
17805
|
+
if (!m.hasMovement || !m.engines)
|
|
17806
|
+
continue;
|
|
17807
|
+
const key = String(m.ref.entityId);
|
|
17808
|
+
const cost = energyCostByMover[key] ?? 0;
|
|
17809
|
+
const curEnergy = energyByMover.get(key) ?? 0;
|
|
17810
|
+
if (recharge && m.generator) {
|
|
17811
|
+
if (cost > m.generator.capacity)
|
|
17812
|
+
reachable = false;
|
|
17813
|
+
}
|
|
17814
|
+
else {
|
|
17815
|
+
if (cost > curEnergy)
|
|
17816
|
+
reachable = false;
|
|
17817
|
+
}
|
|
17818
|
+
}
|
|
17819
|
+
const flightSeconds = Number(calc_group_flighttime(totalThrust, haulCount, pooledHaulCap, weightedHaulEffNum, totalMass, distance));
|
|
17820
|
+
if (flightSeconds > TRAVEL_MAX_DURATION)
|
|
17821
|
+
reachable = false;
|
|
17822
|
+
for (const m of movers) {
|
|
17823
|
+
if (!m.hasMovement || !m.engines)
|
|
17824
|
+
continue;
|
|
17825
|
+
const key = String(m.ref.entityId);
|
|
17826
|
+
const cost = energyCostByMover[key] ?? 0;
|
|
17827
|
+
const curEnergy = energyByMover.get(key) ?? 0;
|
|
17828
|
+
energyByMover.set(key, Math.max(0, curEnergy - cost));
|
|
17829
|
+
}
|
|
17830
|
+
clock = Math.max(clock, mobilityBarrier) + flightSeconds;
|
|
17831
|
+
legs.push({
|
|
17832
|
+
from,
|
|
17833
|
+
to,
|
|
17834
|
+
distanceCells,
|
|
17835
|
+
energyCostByMover,
|
|
17836
|
+
rechargeBefore,
|
|
17837
|
+
rechargeSeconds,
|
|
17838
|
+
flightSeconds,
|
|
17839
|
+
});
|
|
17840
|
+
from = to;
|
|
17841
|
+
}
|
|
17842
|
+
return { legs, totalSeconds: clock, reachable };
|
|
16030
17843
|
}
|
|
16031
17844
|
|
|
16032
17845
|
function laneKeyForModule(slotIndex) {
|
|
@@ -16082,6 +17895,23 @@ function resolveLaneCrafter(modules, entityItemId, laneKey) {
|
|
|
16082
17895
|
const drain = computeCrafterDrain(fin);
|
|
16083
17896
|
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
16084
17897
|
}
|
|
17898
|
+
function resolveLaneBuilder(modules, entityItemId, laneKey) {
|
|
17899
|
+
const idx = laneKey - 1;
|
|
17900
|
+
const installed = idx >= 0 && idx < modules.length ? modules[idx].installed : undefined;
|
|
17901
|
+
if (!installed)
|
|
17902
|
+
throw new Error('builder lane has no module');
|
|
17903
|
+
const item = getItem(Number(installed.item_id.value ?? installed.item_id));
|
|
17904
|
+
if (item.moduleType !== 'builder')
|
|
17905
|
+
throw new Error('lane module is not a builder');
|
|
17906
|
+
const stats = BigInt(installed.stats.toString());
|
|
17907
|
+
const coh = decodeStat(stats, 0);
|
|
17908
|
+
const tol = decodeStat(stats, 1);
|
|
17909
|
+
const layout = getEntityLayout(entityItemId)?.slots ?? [];
|
|
17910
|
+
const amp = getSlotAmp(layout, idx);
|
|
17911
|
+
const speed = applySlotMultiplier(computeBuilderSpeed(coh), amp);
|
|
17912
|
+
const drain = computeBuilderDrain(tol);
|
|
17913
|
+
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
17914
|
+
}
|
|
16085
17915
|
function resolveLaneLoader(modules, entityItemId, laneKey) {
|
|
16086
17916
|
if (laneKey === LANE_MOBILITY) {
|
|
16087
17917
|
return { slotIndex: -1, thrust: 0, mass: 0, outputPct: 0, valid: false };
|
|
@@ -16389,6 +18219,10 @@ function recomputeCaps(entity) {
|
|
|
16389
18219
|
hullStats.strength = decodeStat(entity.stats, 0);
|
|
16390
18220
|
if (hullStats.hardness === undefined)
|
|
16391
18221
|
hullStats.hardness = decodeStat(entity.stats, 2);
|
|
18222
|
+
if (itemId === ITEM_SHIP_T1_PACKED) {
|
|
18223
|
+
hullStats.__legacyShipChannel3 = decodeStat(entity.stats, 3);
|
|
18224
|
+
hullStats.__legacyShipChannel4 = decodeStat(entity.stats, 4);
|
|
18225
|
+
}
|
|
16392
18226
|
const layout = getEntityLayout(itemId)?.slots ?? [];
|
|
16393
18227
|
const installed = toInstalledModules(entity.modules);
|
|
16394
18228
|
const caps = computeEntityCapabilities(hullStats, itemId, installed, layout);
|
|
@@ -16411,6 +18245,12 @@ function recomputeCaps(entity) {
|
|
|
16411
18245
|
drain: l.drain,
|
|
16412
18246
|
output_pct: l.outputPct,
|
|
16413
18247
|
});
|
|
18248
|
+
const toBuilderLane = (l) => exports.ServerTypes.builder_lane.from({
|
|
18249
|
+
slot_index: l.slotIndex,
|
|
18250
|
+
speed: l.speed,
|
|
18251
|
+
drain: l.drain,
|
|
18252
|
+
output_pct: l.outputPct,
|
|
18253
|
+
});
|
|
16414
18254
|
return {
|
|
16415
18255
|
hullmass: antelope.UInt32.from(caps.hullmass),
|
|
16416
18256
|
capacity: antelope.UInt32.from(caps.capacity),
|
|
@@ -16421,6 +18261,7 @@ function recomputeCaps(entity) {
|
|
|
16421
18261
|
loaderLanes: (caps.loaderLanes ?? []).map(toLoaderLane),
|
|
16422
18262
|
gathererLanes: (caps.gathererLanes ?? []).map(toGathererLane),
|
|
16423
18263
|
crafterLanes: (caps.crafterLanes ?? []).map(toCrafterLane),
|
|
18264
|
+
builderLanes: (caps.builderLanes ?? []).map(toBuilderLane),
|
|
16424
18265
|
hauler: caps.hauler
|
|
16425
18266
|
? exports.ServerTypes.hauler_stats.from({
|
|
16426
18267
|
capacity: caps.hauler.capacity,
|
|
@@ -16457,6 +18298,7 @@ function createProjectedEntity(entity) {
|
|
|
16457
18298
|
const loaderLanes = entity.loader_lanes ?? caps?.loaderLanes ?? [];
|
|
16458
18299
|
const gathererLanes = entity.gatherer_lanes ?? caps?.gathererLanes ?? [];
|
|
16459
18300
|
const crafterLanes = entity.crafter_lanes ?? caps?.crafterLanes ?? [];
|
|
18301
|
+
const builderLanes = entity.builder_lanes ?? caps?.builderLanes ?? [];
|
|
16460
18302
|
const engines = entity.engines ?? caps?.engines;
|
|
16461
18303
|
const generator = entity.generator ?? caps?.generator;
|
|
16462
18304
|
const hauler = entity.hauler ?? caps?.hauler;
|
|
@@ -16465,7 +18307,7 @@ function createProjectedEntity(entity) {
|
|
|
16465
18307
|
const cargo = entity.cargo.map(cargoItemToStack);
|
|
16466
18308
|
const projected = {
|
|
16467
18309
|
location: Coordinates.from(entity.coordinates),
|
|
16468
|
-
energy: antelope.
|
|
18310
|
+
energy: antelope.UInt32.from(entity.energy ?? 0),
|
|
16469
18311
|
cargo,
|
|
16470
18312
|
shipMass,
|
|
16471
18313
|
capacity: capacity ? antelope.UInt64.from(capacity) : undefined,
|
|
@@ -16476,6 +18318,7 @@ function createProjectedEntity(entity) {
|
|
|
16476
18318
|
loaderLanes,
|
|
16477
18319
|
gathererLanes,
|
|
16478
18320
|
crafterLanes,
|
|
18321
|
+
builderLanes,
|
|
16479
18322
|
get cargoMass() {
|
|
16480
18323
|
return calcStacksMass(this.cargo);
|
|
16481
18324
|
},
|
|
@@ -16521,13 +18364,13 @@ function applyRechargeTask(projected, _task, options) {
|
|
|
16521
18364
|
if (!projected.generator)
|
|
16522
18365
|
return;
|
|
16523
18366
|
if (options.complete) {
|
|
16524
|
-
projected.energy = antelope.
|
|
18367
|
+
projected.energy = antelope.UInt32.from(projected.generator.capacity);
|
|
16525
18368
|
}
|
|
16526
18369
|
else if (options.progress !== undefined) {
|
|
16527
18370
|
const capacity = Number(projected.generator.capacity);
|
|
16528
18371
|
const currentEnergy = Number(projected.energy);
|
|
16529
18372
|
const rechargeAmount = (capacity - currentEnergy) * options.progress;
|
|
16530
|
-
projected.energy = antelope.
|
|
18373
|
+
projected.energy = antelope.UInt32.from(Math.min(capacity, currentEnergy + rechargeAmount));
|
|
16531
18374
|
}
|
|
16532
18375
|
}
|
|
16533
18376
|
function applyFlightTask(projected, task, options) {
|
|
@@ -16546,8 +18389,8 @@ function applyFlightTask(projected, task, options) {
|
|
|
16546
18389
|
});
|
|
16547
18390
|
const partialEnergy = antelope.UInt64.from(Math.floor(Number(task.energy_cost ?? 0) * options.progress));
|
|
16548
18391
|
projected.energy = projected.energy.gt(partialEnergy)
|
|
16549
|
-
? antelope.
|
|
16550
|
-
: antelope.
|
|
18392
|
+
? antelope.UInt32.from(projected.energy.subtracting(partialEnergy))
|
|
18393
|
+
: antelope.UInt32.from(0);
|
|
16551
18394
|
}
|
|
16552
18395
|
}
|
|
16553
18396
|
function addCargoItem(projected, item) {
|
|
@@ -16569,16 +18412,16 @@ function applyRemoveCargoTask(projected, task) {
|
|
|
16569
18412
|
function applyEnergyCost(projected, task) {
|
|
16570
18413
|
if (!task.energy_cost)
|
|
16571
18414
|
return;
|
|
16572
|
-
const energyCost = antelope.
|
|
18415
|
+
const energyCost = antelope.UInt32.from(task.energy_cost);
|
|
16573
18416
|
projected.energy = projected.energy.gt(energyCost)
|
|
16574
|
-
? antelope.
|
|
16575
|
-
: antelope.
|
|
18417
|
+
? antelope.UInt32.from(projected.energy.subtracting(energyCost))
|
|
18418
|
+
: antelope.UInt32.from(0);
|
|
16576
18419
|
}
|
|
16577
18420
|
function applyGatherTask(projected, task, options) {
|
|
16578
18421
|
if (!options.complete)
|
|
16579
18422
|
return;
|
|
16580
18423
|
applyEnergyCost(projected, task);
|
|
16581
|
-
if (
|
|
18424
|
+
if (task.couplings.length === 0) {
|
|
16582
18425
|
applyAddCargoTask(projected, task);
|
|
16583
18426
|
}
|
|
16584
18427
|
}
|
|
@@ -16589,12 +18432,8 @@ function applyCraftTask(projected, task) {
|
|
|
16589
18432
|
for (let i = 0; i < task.cargo.length - 1; i++) {
|
|
16590
18433
|
removeCargoItem(projected, task.cargo[i]);
|
|
16591
18434
|
}
|
|
16592
|
-
|
|
16593
|
-
|
|
16594
|
-
function applyDeployTask(projected, task) {
|
|
16595
|
-
applyEnergyCost(projected, task);
|
|
16596
|
-
if (task.cargo.length > 0) {
|
|
16597
|
-
removeCargoItem(projected, task.cargo[0]);
|
|
18435
|
+
if (task.couplings.length === 0) {
|
|
18436
|
+
addCargoItem(projected, task.cargo[task.cargo.length - 1]);
|
|
16598
18437
|
}
|
|
16599
18438
|
}
|
|
16600
18439
|
function applyTask(projected, task) {
|
|
@@ -16620,9 +18459,6 @@ function applyTask(projected, task) {
|
|
|
16620
18459
|
case exports.TaskType.CRAFT:
|
|
16621
18460
|
applyCraftTask(projected, task);
|
|
16622
18461
|
break;
|
|
16623
|
-
case exports.TaskType.DEPLOY:
|
|
16624
|
-
applyDeployTask(projected, task);
|
|
16625
|
-
break;
|
|
16626
18462
|
case exports.TaskType.UNDEPLOY:
|
|
16627
18463
|
case exports.TaskType.DEMOLISH:
|
|
16628
18464
|
break;
|
|
@@ -16760,10 +18596,6 @@ function projectEntityAt(entity, now) {
|
|
|
16760
18596
|
if (taskComplete)
|
|
16761
18597
|
applyCraftTask(projected, task);
|
|
16762
18598
|
break;
|
|
16763
|
-
case exports.TaskType.DEPLOY:
|
|
16764
|
-
if (taskComplete)
|
|
16765
|
-
applyDeployTask(projected, task);
|
|
16766
|
-
break;
|
|
16767
18599
|
case exports.TaskType.UNDEPLOY:
|
|
16768
18600
|
case exports.TaskType.DEMOLISH:
|
|
16769
18601
|
break;
|
|
@@ -16790,7 +18622,7 @@ function taskCargoChanges(task) {
|
|
|
16790
18622
|
case exports.TaskType.UNWRAP:
|
|
16791
18623
|
return items.map((i) => toChange(i, 'in'));
|
|
16792
18624
|
case exports.TaskType.GATHER:
|
|
16793
|
-
return task.
|
|
18625
|
+
return task.couplings.length > 0 ? [] : items.map((i) => toChange(i, 'in'));
|
|
16794
18626
|
case exports.TaskType.UNLOAD:
|
|
16795
18627
|
return items.map((i) => toChange(i, 'out'));
|
|
16796
18628
|
case exports.TaskType.CRAFT:
|
|
@@ -16803,6 +18635,49 @@ function taskCargoChanges(task) {
|
|
|
16803
18635
|
}
|
|
16804
18636
|
}
|
|
16805
18637
|
|
|
18638
|
+
const JOB_QUEUE_CAP = 25;
|
|
18639
|
+
function activeOn(jobs, socket, now) {
|
|
18640
|
+
return jobs
|
|
18641
|
+
.filter((j) => j.socket === socket && j.completesAt > now)
|
|
18642
|
+
.sort((a, b) => a.startsAt.getTime() - b.startsAt.getTime());
|
|
18643
|
+
}
|
|
18644
|
+
function jobsToLanes(jobs, socketCount, now) {
|
|
18645
|
+
const lanes = [];
|
|
18646
|
+
for (let socket = 0; socket < socketCount; socket++) {
|
|
18647
|
+
const entries = [];
|
|
18648
|
+
let cursor = null;
|
|
18649
|
+
for (const j of activeOn(jobs, socket, now)) {
|
|
18650
|
+
if (cursor && j.startsAt > cursor) {
|
|
18651
|
+
entries.push({ kind: 'idle', startsAt: cursor, completesAt: j.startsAt });
|
|
18652
|
+
}
|
|
18653
|
+
entries.push({ kind: 'job', startsAt: j.startsAt, completesAt: j.completesAt, job: j });
|
|
18654
|
+
cursor = j.completesAt;
|
|
18655
|
+
}
|
|
18656
|
+
lanes.push({ socket, entries });
|
|
18657
|
+
}
|
|
18658
|
+
return lanes;
|
|
18659
|
+
}
|
|
18660
|
+
function socketTail(jobs, socket, now) {
|
|
18661
|
+
const active = activeOn(jobs, socket, now);
|
|
18662
|
+
const last = active[active.length - 1];
|
|
18663
|
+
return last && last.completesAt > now ? last.completesAt : now;
|
|
18664
|
+
}
|
|
18665
|
+
function pickFabricator(jobs, sockets, durationBySocketMinutes, now) {
|
|
18666
|
+
let best = null;
|
|
18667
|
+
for (let slot = 0; slot < sockets.length; slot++) {
|
|
18668
|
+
if (!sockets[slot].open)
|
|
18669
|
+
continue;
|
|
18670
|
+
if (activeOn(jobs, slot, now).length >= JOB_QUEUE_CAP)
|
|
18671
|
+
continue;
|
|
18672
|
+
const startsAt = socketTail(jobs, slot, now);
|
|
18673
|
+
const completesAt = new Date(startsAt.getTime() + durationBySocketMinutes[slot] * 60000);
|
|
18674
|
+
if (!best || completesAt < best.completesAt) {
|
|
18675
|
+
best = { slot, startsAt, completesAt };
|
|
18676
|
+
}
|
|
18677
|
+
}
|
|
18678
|
+
return best;
|
|
18679
|
+
}
|
|
18680
|
+
|
|
16806
18681
|
function composeIdleResolve(blocker, action, actions, now, lookupCounterpart) {
|
|
16807
18682
|
const ids = [];
|
|
16808
18683
|
const seen = new Set();
|
|
@@ -16837,15 +18712,16 @@ function taskCargoEffect(task) {
|
|
|
16837
18712
|
case exports.TaskType.UNLOAD:
|
|
16838
18713
|
return { added: [], removed: task.cargo };
|
|
16839
18714
|
case exports.TaskType.GATHER:
|
|
16840
|
-
return task.
|
|
18715
|
+
return task.couplings.length > 0
|
|
18716
|
+
? { added: [], removed: [] }
|
|
18717
|
+
: { added: task.cargo, removed: [] };
|
|
16841
18718
|
case exports.TaskType.CRAFT:
|
|
16842
18719
|
if (task.cargo.length === 0)
|
|
16843
18720
|
return { added: [], removed: [] };
|
|
16844
|
-
return {
|
|
16845
|
-
|
|
16846
|
-
|
|
16847
|
-
|
|
16848
|
-
: { added: [], removed: [] };
|
|
18721
|
+
return {
|
|
18722
|
+
added: task.couplings.length === 0 ? [task.cargo[task.cargo.length - 1]] : [],
|
|
18723
|
+
removed: task.cargo.slice(0, -1),
|
|
18724
|
+
};
|
|
16849
18725
|
default:
|
|
16850
18726
|
return { added: [], removed: [] };
|
|
16851
18727
|
}
|
|
@@ -17023,31 +18899,24 @@ function cancelEligibility(entity, laneKey, fromTaskIndex, input) {
|
|
|
17023
18899
|
effects.abandonsRunning = true;
|
|
17024
18900
|
if (t.energy_cost)
|
|
17025
18901
|
energyForfeited += t.energy_cost.toNumber();
|
|
17026
|
-
if (t.type.equals(exports.TaskType.BUILDPLOT) && t.
|
|
17027
|
-
effects.keepsPlotDeposits = { plot: t.
|
|
17028
|
-
|
|
17029
|
-
const
|
|
17030
|
-
|
|
17031
|
-
|
|
17032
|
-
|
|
17033
|
-
const
|
|
17034
|
-
|
|
17035
|
-
|
|
17036
|
-
|
|
17037
|
-
|
|
17038
|
-
|
|
17039
|
-
|
|
17040
|
-
|
|
17041
|
-
|
|
17042
|
-
:
|
|
17043
|
-
|
|
17044
|
-
return {
|
|
17045
|
-
ok: false,
|
|
17046
|
-
blockedReason: exports.CancelBlockReason.WOULD_OVERFILL,
|
|
17047
|
-
range,
|
|
17048
|
-
effects: { ...EMPTY_EFFECTS },
|
|
17049
|
-
};
|
|
17050
|
-
}
|
|
18902
|
+
if (t.type.equals(exports.TaskType.BUILDPLOT) && t.couplings.length > 0)
|
|
18903
|
+
effects.keepsPlotDeposits = { plot: t.couplings[0].counterpart };
|
|
18904
|
+
for (const c of t.couplings) {
|
|
18905
|
+
const kind = c.kind.toNumber();
|
|
18906
|
+
effects.releasedHolds.push({ counterpart: c.counterpart, kind });
|
|
18907
|
+
if (kind === exports.HoldKind.PULL) {
|
|
18908
|
+
effects.refunds.push({ giver: c.counterpart, cargo: t.cargo });
|
|
18909
|
+
const giver = input.counterparts?.get(c.counterpart.entity_id.toString());
|
|
18910
|
+
if (giver) {
|
|
18911
|
+
const returned = t.cargo.reduce((s, c) => s + calcCargoItemMass(c).toNumber(), 0);
|
|
18912
|
+
const cap = giver.capacity ? giver.capacity.toNumber() : Number.MAX_SAFE_INTEGER;
|
|
18913
|
+
if (giver.cargomass.toNumber() + returned > cap) {
|
|
18914
|
+
return {
|
|
18915
|
+
ok: false,
|
|
18916
|
+
blockedReason: exports.CancelBlockReason.WOULD_OVERFILL,
|
|
18917
|
+
range,
|
|
18918
|
+
effects: { ...EMPTY_EFFECTS },
|
|
18919
|
+
};
|
|
17051
18920
|
}
|
|
17052
18921
|
}
|
|
17053
18922
|
}
|
|
@@ -17080,7 +18949,7 @@ function derivedLoaders(lanes) {
|
|
|
17080
18949
|
function acceleration(thrust, mass) {
|
|
17081
18950
|
if (mass <= 0)
|
|
17082
18951
|
return 0;
|
|
17083
|
-
return (thrust / mass) * PRECISION
|
|
18952
|
+
return (thrust / mass) * PRECISION;
|
|
17084
18953
|
}
|
|
17085
18954
|
function flightTime(distance, accel) {
|
|
17086
18955
|
if (accel <= 0 || distance <= 0)
|
|
@@ -17090,7 +18959,7 @@ function flightTime(distance, accel) {
|
|
|
17090
18959
|
function distance2d(ax, ay, bx, by) {
|
|
17091
18960
|
const dx = ax - bx;
|
|
17092
18961
|
const dy = ay - by;
|
|
17093
|
-
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
18962
|
+
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION);
|
|
17094
18963
|
}
|
|
17095
18964
|
function unwrapTransitDuration(itemMass, origin, dest) {
|
|
17096
18965
|
if (itemMass <= 0)
|
|
@@ -17255,10 +19124,10 @@ function hasGatherer(e) {
|
|
|
17255
19124
|
function maxTravelDistance(entity) {
|
|
17256
19125
|
return antelope.UInt32.from(entity.generator.capacity)
|
|
17257
19126
|
.dividing(entity.engines.drain)
|
|
17258
|
-
.multiplying(PRECISION
|
|
19127
|
+
.multiplying(PRECISION);
|
|
17259
19128
|
}
|
|
17260
19129
|
function calcEnergyUsage(entity, distance) {
|
|
17261
|
-
return distance.
|
|
19130
|
+
return distance.multiplying(entity.engines.drain).dividing(PRECISION);
|
|
17262
19131
|
}
|
|
17263
19132
|
function energyPercent(entity) {
|
|
17264
19133
|
return (Number(entity.energy) / Number(entity.generator.capacity)) * 100;
|
|
@@ -17293,13 +19162,12 @@ function calc_gather_rate(gatherer, itemMass, stratum, richness) {
|
|
|
17293
19162
|
function calc_gather_energy(gatherer, duration) {
|
|
17294
19163
|
if (duration <= 0)
|
|
17295
19164
|
return antelope.UInt32.from(0);
|
|
17296
|
-
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION
|
|
17297
|
-
return antelope.UInt32.from(Math.min(Math.max(raw,
|
|
19165
|
+
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION);
|
|
19166
|
+
return antelope.UInt32.from(Math.min(Math.max(raw, 1000), 4294967295));
|
|
17298
19167
|
}
|
|
17299
19168
|
|
|
17300
19169
|
const BASE_HAUL_PENALTY_MILLI = 300;
|
|
17301
19170
|
const HAULER_EFFICIENCY_DENOM = 10000;
|
|
17302
|
-
const PRECISION = 10000;
|
|
17303
19171
|
function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
17304
19172
|
if (haulCount === 0)
|
|
17305
19173
|
return totalThrust;
|
|
@@ -17308,9 +19176,6 @@ function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
|
17308
19176
|
HAULER_EFFICIENCY_DENOM);
|
|
17309
19177
|
return Math.floor((totalThrust * 1000) / penaltyMilli);
|
|
17310
19178
|
}
|
|
17311
|
-
function computeHaulerDrain(distance, drain, haulCount) {
|
|
17312
|
-
return Math.floor(distance / PRECISION) * drain * haulCount;
|
|
17313
|
-
}
|
|
17314
19179
|
|
|
17315
19180
|
const categoryColors = {
|
|
17316
19181
|
ore: '#C26D3F',
|
|
@@ -17467,8 +19332,17 @@ const capabilityAttributes = [
|
|
|
17467
19332
|
attribute: 'capacity',
|
|
17468
19333
|
description: 'Cargo capacity added by hulls and installed Cargo Hold modules',
|
|
17469
19334
|
},
|
|
19335
|
+
{
|
|
19336
|
+
capability: 'Storage',
|
|
19337
|
+
attribute: 'drain',
|
|
19338
|
+
description: 'Fixed normal-travel drain contributed by an installed Cargo Hold',
|
|
19339
|
+
},
|
|
17470
19340
|
{ capability: 'Movement', attribute: 'thrust', description: 'Propulsion force' },
|
|
17471
|
-
{
|
|
19341
|
+
{
|
|
19342
|
+
capability: 'Movement',
|
|
19343
|
+
attribute: 'drain',
|
|
19344
|
+
description: 'Total installed energy consumed per tile of normal travel',
|
|
19345
|
+
},
|
|
17472
19346
|
{
|
|
17473
19347
|
capability: 'Energy',
|
|
17474
19348
|
attribute: 'capacity',
|
|
@@ -17509,7 +19383,7 @@ const capabilityAttributes = [
|
|
|
17509
19383
|
{
|
|
17510
19384
|
capability: 'Hauling',
|
|
17511
19385
|
attribute: 'drain',
|
|
17512
|
-
description: '
|
|
19386
|
+
description: 'Fixed normal-travel drain contributed by an installed Tractor Beam',
|
|
17513
19387
|
},
|
|
17514
19388
|
];
|
|
17515
19389
|
const invertedAttributes = new Set(['drain', 'mass']);
|
|
@@ -17875,6 +19749,20 @@ function rollupCrafter(lanes) {
|
|
|
17875
19749
|
drain: antelope.UInt32.from(totalDrain),
|
|
17876
19750
|
};
|
|
17877
19751
|
}
|
|
19752
|
+
function rollupBuilder(lanes) {
|
|
19753
|
+
if (lanes.length === 0)
|
|
19754
|
+
return undefined;
|
|
19755
|
+
let totalSpeed = 0;
|
|
19756
|
+
let totalDrain = 0;
|
|
19757
|
+
for (const l of lanes) {
|
|
19758
|
+
totalSpeed += Number(l.speed);
|
|
19759
|
+
totalDrain += Number(l.drain);
|
|
19760
|
+
}
|
|
19761
|
+
return {
|
|
19762
|
+
speed: antelope.UInt16.from(Math.min(totalSpeed, 65535)),
|
|
19763
|
+
drain: antelope.UInt32.from(totalDrain),
|
|
19764
|
+
};
|
|
19765
|
+
}
|
|
17878
19766
|
function rollupLoaders(lanes) {
|
|
17879
19767
|
if (lanes.length === 0)
|
|
17880
19768
|
return undefined;
|
|
@@ -17978,8 +19866,8 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
17978
19866
|
return {
|
|
17979
19867
|
capability: 'Generator',
|
|
17980
19868
|
attributes: [
|
|
17981
|
-
{ label: 'Capacity', value: caps.capacity },
|
|
17982
|
-
{ label: 'Recharge', value: caps.recharge },
|
|
19869
|
+
{ label: 'Capacity', value: toWholeEnergy$1(caps.capacity) },
|
|
19870
|
+
{ label: 'Recharge', value: toWholeEnergy$1(caps.recharge) },
|
|
17983
19871
|
],
|
|
17984
19872
|
};
|
|
17985
19873
|
}
|
|
@@ -17989,7 +19877,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
17989
19877
|
capability: 'Gatherer',
|
|
17990
19878
|
attributes: [
|
|
17991
19879
|
{ label: 'Yield', value: caps.yield },
|
|
17992
|
-
{ label: 'Drain', value: caps.drain },
|
|
19880
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
17993
19881
|
{ label: 'Depth', value: caps.depth },
|
|
17994
19882
|
],
|
|
17995
19883
|
};
|
|
@@ -18011,7 +19899,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18011
19899
|
capability: 'Crafting',
|
|
18012
19900
|
attributes: [
|
|
18013
19901
|
{ label: 'Speed', value: caps.speed },
|
|
18014
|
-
{ label: 'Drain', value: caps.drain },
|
|
19902
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18015
19903
|
],
|
|
18016
19904
|
};
|
|
18017
19905
|
}
|
|
@@ -18022,12 +19910,12 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18022
19910
|
attributes: [
|
|
18023
19911
|
{ label: 'Capacity', value: caps.capacity },
|
|
18024
19912
|
{ label: 'Efficiency', value: caps.efficiency },
|
|
18025
|
-
{ label: 'Drain', value: caps.drain },
|
|
19913
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18026
19914
|
],
|
|
18027
19915
|
};
|
|
18028
19916
|
}
|
|
18029
19917
|
case MODULE_STORAGE: {
|
|
18030
|
-
const caps = computeStorageCapabilities(stats);
|
|
19918
|
+
const caps = computeStorageCapabilities(stats, tier);
|
|
18031
19919
|
return {
|
|
18032
19920
|
capability: 'Storage',
|
|
18033
19921
|
attributes: [
|
|
@@ -18035,6 +19923,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18035
19923
|
label: 'Cargo Capacity',
|
|
18036
19924
|
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
18037
19925
|
},
|
|
19926
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18038
19927
|
],
|
|
18039
19928
|
};
|
|
18040
19929
|
}
|
|
@@ -18045,7 +19934,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18045
19934
|
attributes: [
|
|
18046
19935
|
{
|
|
18047
19936
|
label: 'Energy Capacity',
|
|
18048
|
-
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
19937
|
+
value: toWholeEnergy$1(applySlotMultiplierUint32(caps.capacity, outputPct)),
|
|
18049
19938
|
},
|
|
18050
19939
|
],
|
|
18051
19940
|
};
|
|
@@ -18087,10 +19976,19 @@ function resolveModule(id, stats) {
|
|
|
18087
19976
|
attributes,
|
|
18088
19977
|
};
|
|
18089
19978
|
}
|
|
18090
|
-
function hullCapsForEntity(itemId, decoded) {
|
|
19979
|
+
function hullCapsForEntity(itemId, decoded, packedStats) {
|
|
19980
|
+
const hullStats = getPackedEntityType(itemId)?.equals(ENTITY_SHIP)
|
|
19981
|
+
? {
|
|
19982
|
+
strength: decodeStat(packedStats, 0),
|
|
19983
|
+
hardness: decodeStat(packedStats, 1),
|
|
19984
|
+
plasticity: decodeStat(packedStats, 2),
|
|
19985
|
+
volatility: decodeStat(packedStats, 3),
|
|
19986
|
+
conductivity: decodeStat(packedStats, 4),
|
|
19987
|
+
}
|
|
19988
|
+
: decoded;
|
|
18091
19989
|
return {
|
|
18092
|
-
hullmass: computeBaseHullmass(
|
|
18093
|
-
capacity: computeBaseCapacity(itemId,
|
|
19990
|
+
hullmass: computeBaseHullmass(itemId, hullStats),
|
|
19991
|
+
capacity: computeBaseCapacity(itemId, hullStats),
|
|
18094
19992
|
};
|
|
18095
19993
|
}
|
|
18096
19994
|
function resolveEntity(id, stats, modules) {
|
|
@@ -18107,7 +20005,7 @@ function resolveEntity(id, stats, modules) {
|
|
|
18107
20005
|
decoded.density = decodeStat(bigStats, 1);
|
|
18108
20006
|
if (decoded.hardness === undefined)
|
|
18109
20007
|
decoded.hardness = decodeStat(bigStats, 2);
|
|
18110
|
-
const hullCaps = hullCapsForEntity(id, decoded);
|
|
20008
|
+
const hullCaps = hullCapsForEntity(id, decoded, bigStats);
|
|
18111
20009
|
attributes = [
|
|
18112
20010
|
{
|
|
18113
20011
|
capability: 'Hull',
|
|
@@ -18343,6 +20241,9 @@ function moduleSlotsForImmutable(modules) {
|
|
|
18343
20241
|
}));
|
|
18344
20242
|
}
|
|
18345
20243
|
const IMAGE_HOST_URL = 'https://item.shiploadgame.com/item';
|
|
20244
|
+
function toWholeEnergy(milli) {
|
|
20245
|
+
return Math.floor((milli + 500) / 1000);
|
|
20246
|
+
}
|
|
18346
20247
|
function bytesToBase64Url(bytes) {
|
|
18347
20248
|
let binary = '';
|
|
18348
20249
|
for (let i = 0; i < bytes.byteLength; i++)
|
|
@@ -18408,8 +20309,14 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18408
20309
|
const thm = decodeStat(stats, 1);
|
|
18409
20310
|
base.push({ first: 'volatility', second: ['uint16', vol] });
|
|
18410
20311
|
base.push({ first: 'thermal', second: ['uint16', thm] });
|
|
18411
|
-
base.push({
|
|
18412
|
-
|
|
20312
|
+
base.push({
|
|
20313
|
+
first: 'thrust',
|
|
20314
|
+
second: ['uint32', computeEngineThrust(computeEffectiveModuleStat(vol))],
|
|
20315
|
+
});
|
|
20316
|
+
base.push({
|
|
20317
|
+
first: 'drain',
|
|
20318
|
+
second: ['uint16', computeEngineDrain(computeEffectiveModuleStat(thm))],
|
|
20319
|
+
});
|
|
18413
20320
|
break;
|
|
18414
20321
|
}
|
|
18415
20322
|
case MODULE_GENERATOR: {
|
|
@@ -18417,8 +20324,20 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18417
20324
|
const ref = decodeStat(stats, 1);
|
|
18418
20325
|
base.push({ first: 'resonance', second: ['uint16', res] });
|
|
18419
20326
|
base.push({ first: 'reflectivity', second: ['uint16', ref] });
|
|
18420
|
-
base.push({
|
|
18421
|
-
|
|
20327
|
+
base.push({
|
|
20328
|
+
first: 'capacity',
|
|
20329
|
+
second: [
|
|
20330
|
+
'uint16',
|
|
20331
|
+
toWholeEnergy(computeGeneratorCap(computeEffectiveModuleStat(res))),
|
|
20332
|
+
],
|
|
20333
|
+
});
|
|
20334
|
+
base.push({
|
|
20335
|
+
first: 'recharge',
|
|
20336
|
+
second: [
|
|
20337
|
+
'uint16',
|
|
20338
|
+
toWholeEnergy(computeGeneratorRech(computeEffectiveModuleStat(ref))),
|
|
20339
|
+
],
|
|
20340
|
+
});
|
|
18422
20341
|
break;
|
|
18423
20342
|
}
|
|
18424
20343
|
case MODULE_GATHERER: {
|
|
@@ -18429,7 +20348,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18429
20348
|
base.push({ first: 'hardness', second: ['uint16', hrd] });
|
|
18430
20349
|
base.push({ first: 'saturation', second: ['uint16', sat] });
|
|
18431
20350
|
base.push({ first: 'yield', second: ['uint16', computeGathererYield(str)] });
|
|
18432
|
-
base.push({
|
|
20351
|
+
base.push({
|
|
20352
|
+
first: 'drain',
|
|
20353
|
+
second: ['uint16', toWholeEnergy(computeGathererDrain(sat))],
|
|
20354
|
+
});
|
|
18433
20355
|
base.push({ first: 'depth', second: ['uint16', computeGathererDepth(hrd, item.tier)] });
|
|
18434
20356
|
break;
|
|
18435
20357
|
}
|
|
@@ -18454,7 +20376,16 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18454
20376
|
base.push({ first: 'fineness', second: ['uint16', fin] });
|
|
18455
20377
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18456
20378
|
base.push({ first: 'speed', second: ['uint16', computeCrafterSpeed(fin)] });
|
|
18457
|
-
base.push({ first: 'drain', second: ['uint16', computeCrafterDrain(con)] });
|
|
20379
|
+
base.push({ first: 'drain', second: ['uint16', toWholeEnergy(computeCrafterDrain(con))] });
|
|
20380
|
+
break;
|
|
20381
|
+
}
|
|
20382
|
+
case MODULE_BUILDER: {
|
|
20383
|
+
const coh = decodeStat(stats, 0);
|
|
20384
|
+
const tol = decodeStat(stats, 1);
|
|
20385
|
+
base.push({ first: 'cohesion', second: ['uint16', coh] });
|
|
20386
|
+
base.push({ first: 'tolerance', second: ['uint16', tol] });
|
|
20387
|
+
base.push({ first: 'speed', second: ['uint16', computeBuilderSpeed(coh)] });
|
|
20388
|
+
base.push({ first: 'drain', second: ['uint16', toWholeEnergy(computeBuilderDrain(tol))] });
|
|
18458
20389
|
break;
|
|
18459
20390
|
}
|
|
18460
20391
|
case MODULE_STORAGE: {
|
|
@@ -18468,7 +20399,11 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18468
20399
|
base.push({ first: 'cohesion', second: ['uint16', com] });
|
|
18469
20400
|
base.push({
|
|
18470
20401
|
first: 'capacity',
|
|
18471
|
-
second: ['uint32', computeCargoBayCapacity(str, den, hrd
|
|
20402
|
+
second: ['uint32', computeCargoBayCapacity(str, den, hrd)],
|
|
20403
|
+
});
|
|
20404
|
+
base.push({
|
|
20405
|
+
first: 'drain',
|
|
20406
|
+
second: ['uint16', toWholeEnergy(computeCargoBayDrain(com, item.tier))],
|
|
18472
20407
|
});
|
|
18473
20408
|
break;
|
|
18474
20409
|
}
|
|
@@ -18483,7 +20418,7 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18483
20418
|
base.push({ first: 'insulation', second: ['uint16', ins] });
|
|
18484
20419
|
base.push({
|
|
18485
20420
|
first: 'capacity',
|
|
18486
|
-
second: ['uint32', computeBatteryBankCapacity(vol, thm, pla, ins)],
|
|
20421
|
+
second: ['uint32', toWholeEnergy(computeBatteryBankCapacity(vol, thm, pla, ins))],
|
|
18487
20422
|
});
|
|
18488
20423
|
break;
|
|
18489
20424
|
}
|
|
@@ -18496,7 +20431,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18496
20431
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18497
20432
|
base.push({ first: 'capacity', second: ['uint8', computeHaulerCapacity(res, item.tier)] });
|
|
18498
20433
|
base.push({ first: 'efficiency', second: ['uint16', computeHaulerEfficiency(pla)] });
|
|
18499
|
-
base.push({
|
|
20434
|
+
base.push({
|
|
20435
|
+
first: 'drain',
|
|
20436
|
+
second: ['uint16', toWholeEnergy(computeHaulerDrain(con, item.tier))],
|
|
20437
|
+
});
|
|
18500
20438
|
break;
|
|
18501
20439
|
}
|
|
18502
20440
|
}
|
|
@@ -18549,6 +20487,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18549
20487
|
deserializeModule: deserializeModule,
|
|
18550
20488
|
deserializeEntity: deserializeEntity,
|
|
18551
20489
|
deserializeAsset: deserializeAsset,
|
|
20490
|
+
toWholeEnergy: toWholeEnergy$1,
|
|
18552
20491
|
computeBaseHullmass: computeBaseHullmass$1,
|
|
18553
20492
|
computeBaseCapacityShip: computeBaseCapacityShip,
|
|
18554
20493
|
computeBaseCapacityContainer: computeBaseCapacityContainer,
|
|
@@ -18568,9 +20507,13 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18568
20507
|
computeLoaderThrust: computeLoaderThrust,
|
|
18569
20508
|
computeCrafterSpeed: computeCrafterSpeed,
|
|
18570
20509
|
computeCrafterDrain: computeCrafterDrain,
|
|
20510
|
+
computeBuilderSpeed: computeBuilderSpeed,
|
|
20511
|
+
computeBuilderDrain: computeBuilderDrain,
|
|
18571
20512
|
computeHaulerCapacity: computeHaulerCapacity,
|
|
18572
20513
|
computeHaulerEfficiency: computeHaulerEfficiency,
|
|
18573
|
-
|
|
20514
|
+
supportDrainTierPercent: supportDrainTierPercent,
|
|
20515
|
+
computeHaulerDrain: computeHaulerDrain,
|
|
20516
|
+
computeCargoBayDrain: computeCargoBayDrain,
|
|
18574
20517
|
computeWarpRange: computeWarpRange,
|
|
18575
20518
|
computeCargoBayCapacity: computeCargoBayCapacity,
|
|
18576
20519
|
computeBatteryBankCapacity: computeBatteryBankCapacity,
|
|
@@ -18819,6 +20762,7 @@ function planParallelTransfer(entity, target) {
|
|
|
18819
20762
|
exports.ALL_ENTITY_TYPES = ALL_ENTITY_TYPES;
|
|
18820
20763
|
exports.ATOMICASSETS_ACCOUNT = ATOMICASSETS_ACCOUNT;
|
|
18821
20764
|
exports.ActionsManager = ActionsManager;
|
|
20765
|
+
exports.BASE_HAUL_PENALTY_MILLI = BASE_HAUL_PENALTY_MILLI$1;
|
|
18822
20766
|
exports.BASE_ORBITAL_MASS = BASE_ORBITAL_MASS;
|
|
18823
20767
|
exports.BLEND_INPUTS_MUST_MATCH = BLEND_INPUTS_MUST_MATCH;
|
|
18824
20768
|
exports.BLEND_REQUIRES_MULTIPLE = BLEND_REQUIRES_MULTIPLE;
|
|
@@ -18846,6 +20790,7 @@ exports.CRAFT_NOT_ENOUGH_ENERGY = CRAFT_NOT_ENOUGH_ENERGY;
|
|
|
18846
20790
|
exports.ClusterManager = ClusterManager;
|
|
18847
20791
|
exports.ConstructionManager = ConstructionManager;
|
|
18848
20792
|
exports.Coordinates = Coordinates;
|
|
20793
|
+
exports.DEFAULT_BASE_HULLMASS = DEFAULT_BASE_HULLMASS;
|
|
18849
20794
|
exports.DEPLOY_ENTITY_HAS_SCHEDULE = DEPLOY_ENTITY_HAS_SCHEDULE;
|
|
18850
20795
|
exports.DEPTH_THRESHOLD_T1 = DEPTH_THRESHOLD_T1;
|
|
18851
20796
|
exports.DEPTH_THRESHOLD_T2 = DEPTH_THRESHOLD_T2;
|
|
@@ -18873,6 +20818,7 @@ exports.ENTITY_NOT_ENOUGH_ENERGY_CAPACITY = ENTITY_NOT_ENOUGH_ENERGY_CAPACITY;
|
|
|
18873
20818
|
exports.ENTITY_NO_CRAFTER = ENTITY_NO_CRAFTER;
|
|
18874
20819
|
exports.ENTITY_SHIP = ENTITY_SHIP;
|
|
18875
20820
|
exports.ENTITY_WAREHOUSE = ENTITY_WAREHOUSE;
|
|
20821
|
+
exports.ENTITY_WORKSHOP = ENTITY_WORKSHOP;
|
|
18876
20822
|
exports.EPOCH_NON_ZERO = EPOCH_NON_ZERO;
|
|
18877
20823
|
exports.EPOCH_NOT_READY = EPOCH_NOT_READY;
|
|
18878
20824
|
exports.ERROR_SYSTEM_ALREADY_INITIALIZED = ERROR_SYSTEM_ALREADY_INITIALIZED;
|
|
@@ -18898,6 +20844,7 @@ exports.GROUP_NOT_SAME_LOCATION = GROUP_NOT_SAME_LOCATION;
|
|
|
18898
20844
|
exports.GROUP_NOT_SAME_OWNER = GROUP_NOT_SAME_OWNER;
|
|
18899
20845
|
exports.GROUP_NO_THRUST = GROUP_NO_THRUST;
|
|
18900
20846
|
exports.GameState = GameState;
|
|
20847
|
+
exports.HAULER_EFFICIENCY_DENOM = HAULER_EFFICIENCY_DENOM$1;
|
|
18901
20848
|
exports.INSUFFICIENT_BALANCE = INSUFFICIENT_BALANCE;
|
|
18902
20849
|
exports.INSUFFICIENT_ITEM_QUANTITY = INSUFFICIENT_ITEM_QUANTITY;
|
|
18903
20850
|
exports.INSUFFICIENT_ITEM_SUPPLY = INSUFFICIENT_ITEM_SUPPLY;
|
|
@@ -18915,6 +20862,7 @@ exports.ITEM_BIOMASS_T6 = ITEM_BIOMASS_T6;
|
|
|
18915
20862
|
exports.ITEM_BIOMASS_T7 = ITEM_BIOMASS_T7;
|
|
18916
20863
|
exports.ITEM_BIOMASS_T8 = ITEM_BIOMASS_T8;
|
|
18917
20864
|
exports.ITEM_BIOMASS_T9 = ITEM_BIOMASS_T9;
|
|
20865
|
+
exports.ITEM_BUILDER_T1 = ITEM_BUILDER_T1;
|
|
18918
20866
|
exports.ITEM_CERAMIC = ITEM_CERAMIC;
|
|
18919
20867
|
exports.ITEM_CERAMIC_T2 = ITEM_CERAMIC_T2;
|
|
18920
20868
|
exports.ITEM_CONTAINER_T1_PACKED = ITEM_CONTAINER_T1_PACKED;
|
|
@@ -18931,6 +20879,7 @@ exports.ITEM_CRYSTAL_T7 = ITEM_CRYSTAL_T7;
|
|
|
18931
20879
|
exports.ITEM_CRYSTAL_T8 = ITEM_CRYSTAL_T8;
|
|
18932
20880
|
exports.ITEM_CRYSTAL_T9 = ITEM_CRYSTAL_T9;
|
|
18933
20881
|
exports.ITEM_DOES_NOT_EXIST = ITEM_DOES_NOT_EXIST;
|
|
20882
|
+
exports.ITEM_DREDGER_T1_PACKED = ITEM_DREDGER_T1_PACKED;
|
|
18934
20883
|
exports.ITEM_ENGINE_T1 = ITEM_ENGINE_T1;
|
|
18935
20884
|
exports.ITEM_EXTRACTOR_T1_PACKED = ITEM_EXTRACTOR_T1_PACKED;
|
|
18936
20885
|
exports.ITEM_FACTORY_T1_PACKED = ITEM_FACTORY_T1_PACKED;
|
|
@@ -18976,6 +20925,8 @@ exports.ITEM_PLATE = ITEM_PLATE;
|
|
|
18976
20925
|
exports.ITEM_PLATE_T2 = ITEM_PLATE_T2;
|
|
18977
20926
|
exports.ITEM_POLYMER = ITEM_POLYMER;
|
|
18978
20927
|
exports.ITEM_POLYMER_T2 = ITEM_POLYMER_T2;
|
|
20928
|
+
exports.ITEM_PORTER_T1_PACKED = ITEM_PORTER_T1_PACKED;
|
|
20929
|
+
exports.ITEM_PROSPECTOR_T1_PACKED = ITEM_PROSPECTOR_T1_PACKED;
|
|
18979
20930
|
exports.ITEM_PROSPECTOR_T2_PACKED = ITEM_PROSPECTOR_T2_PACKED;
|
|
18980
20931
|
exports.ITEM_REACTOR = ITEM_REACTOR;
|
|
18981
20932
|
exports.ITEM_REACTOR_T2 = ITEM_REACTOR_T2;
|
|
@@ -18993,17 +20944,24 @@ exports.ITEM_RESIN = ITEM_RESIN;
|
|
|
18993
20944
|
exports.ITEM_RESIN_T2 = ITEM_RESIN_T2;
|
|
18994
20945
|
exports.ITEM_RESONATOR = ITEM_RESONATOR;
|
|
18995
20946
|
exports.ITEM_RESONATOR_T2 = ITEM_RESONATOR_T2;
|
|
20947
|
+
exports.ITEM_ROUSTABOUT_T1_PACKED = ITEM_ROUSTABOUT_T1_PACKED;
|
|
18996
20948
|
exports.ITEM_SENSOR = ITEM_SENSOR;
|
|
18997
20949
|
exports.ITEM_SENSOR_T2 = ITEM_SENSOR_T2;
|
|
18998
20950
|
exports.ITEM_SHIP_T1_PACKED = ITEM_SHIP_T1_PACKED;
|
|
18999
20951
|
exports.ITEM_STORAGE_T1 = ITEM_STORAGE_T1;
|
|
20952
|
+
exports.ITEM_TENDER_T1_PACKED = ITEM_TENDER_T1_PACKED;
|
|
20953
|
+
exports.ITEM_TUG_T1_PACKED = ITEM_TUG_T1_PACKED;
|
|
19000
20954
|
exports.ITEM_TYPE_COMPONENT = ITEM_TYPE_COMPONENT;
|
|
19001
20955
|
exports.ITEM_TYPE_ENTITY = ITEM_TYPE_ENTITY;
|
|
19002
20956
|
exports.ITEM_TYPE_MODULE = ITEM_TYPE_MODULE;
|
|
19003
20957
|
exports.ITEM_TYPE_RESOURCE = ITEM_TYPE_RESOURCE;
|
|
19004
20958
|
exports.ITEM_WAREHOUSE_T1_PACKED = ITEM_WAREHOUSE_T1_PACKED;
|
|
19005
20959
|
exports.ITEM_WARP_T1 = ITEM_WARP_T1;
|
|
20960
|
+
exports.ITEM_WORKSHOP_T1_PACKED = ITEM_WORKSHOP_T1_PACKED;
|
|
20961
|
+
exports.ITEM_WRANGLER_T1_PACKED = ITEM_WRANGLER_T1_PACKED;
|
|
20962
|
+
exports.ITEM_WRIGHT_T1_PACKED = ITEM_WRIGHT_T1_PACKED;
|
|
19006
20963
|
exports.InventoryAccessor = InventoryAccessor;
|
|
20964
|
+
exports.JOB_QUEUE_CAP = JOB_QUEUE_CAP;
|
|
19007
20965
|
exports.LANE_BARRIER = LANE_BARRIER;
|
|
19008
20966
|
exports.LANE_MOBILITY = LANE_MOBILITY;
|
|
19009
20967
|
exports.LOCAL_HALF = LOCAL_HALF;
|
|
@@ -19020,6 +20978,7 @@ exports.MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL = MIN_TRANSFER_DISTANCE_ORBITAL_VES
|
|
|
19020
20978
|
exports.MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE = MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE;
|
|
19021
20979
|
exports.MODULE_ANY = MODULE_ANY;
|
|
19022
20980
|
exports.MODULE_BATTERY = MODULE_BATTERY;
|
|
20981
|
+
exports.MODULE_BUILDER = MODULE_BUILDER;
|
|
19023
20982
|
exports.MODULE_CARGO_NOT_FOUND = MODULE_CARGO_NOT_FOUND;
|
|
19024
20983
|
exports.MODULE_CRAFTER = MODULE_CRAFTER;
|
|
19025
20984
|
exports.MODULE_ENGINE = MODULE_ENGINE;
|
|
@@ -19033,6 +20992,8 @@ exports.MODULE_NOT_MODULE = MODULE_NOT_MODULE;
|
|
|
19033
20992
|
exports.MODULE_SLOT_EMPTY = MODULE_SLOT_EMPTY;
|
|
19034
20993
|
exports.MODULE_SLOT_INVALID = MODULE_SLOT_INVALID;
|
|
19035
20994
|
exports.MODULE_SLOT_OCCUPIED = MODULE_SLOT_OCCUPIED;
|
|
20995
|
+
exports.MODULE_STAT_SCALING_ANCHOR = MODULE_STAT_SCALING_ANCHOR;
|
|
20996
|
+
exports.MODULE_STAT_SCALING_POST_ANCHOR_PERCENT = MODULE_STAT_SCALING_POST_ANCHOR_PERCENT;
|
|
19036
20997
|
exports.MODULE_STORAGE = MODULE_STORAGE;
|
|
19037
20998
|
exports.MODULE_TIER_PREFIXES = MODULE_TIER_PREFIXES;
|
|
19038
20999
|
exports.MODULE_TYPE_MISMATCH = MODULE_TYPE_MISMATCH;
|
|
@@ -19050,7 +21011,7 @@ exports.PLANET_SUBTYPE_TERRESTRIAL = PLANET_SUBTYPE_TERRESTRIAL;
|
|
|
19050
21011
|
exports.PLAYER_ALREADY_JOINED = PLAYER_ALREADY_JOINED;
|
|
19051
21012
|
exports.PLAYER_NOT_FOUND = PLAYER_NOT_FOUND;
|
|
19052
21013
|
exports.PLAYER_NOT_JOINED = PLAYER_NOT_JOINED;
|
|
19053
|
-
exports.PRECISION = PRECISION
|
|
21014
|
+
exports.PRECISION = PRECISION;
|
|
19054
21015
|
exports.PlatformContract = platform;
|
|
19055
21016
|
exports.Player = Player;
|
|
19056
21017
|
exports.PlayersManager = PlayersManager;
|
|
@@ -19129,6 +21090,8 @@ exports.calcCargoMass = calcCargoMass;
|
|
|
19129
21090
|
exports.calcEnergyUsage = calcEnergyUsage;
|
|
19130
21091
|
exports.calcStacksMass = calcStacksMass;
|
|
19131
21092
|
exports.calc_acceleration = calc_acceleration;
|
|
21093
|
+
exports.calc_build_duration = calc_build_duration;
|
|
21094
|
+
exports.calc_build_energy = calc_build_energy;
|
|
19132
21095
|
exports.calc_craft_duration = calc_craft_duration;
|
|
19133
21096
|
exports.calc_craft_energy = calc_craft_energy;
|
|
19134
21097
|
exports.calc_energyusage = calc_energyusage;
|
|
@@ -19136,6 +21099,7 @@ exports.calc_flighttime = calc_flighttime;
|
|
|
19136
21099
|
exports.calc_gather_duration = calc_gather_duration;
|
|
19137
21100
|
exports.calc_gather_energy = calc_gather_energy;
|
|
19138
21101
|
exports.calc_gather_rate = calc_gather_rate;
|
|
21102
|
+
exports.calc_group_flighttime = calc_group_flighttime;
|
|
19139
21103
|
exports.calc_loader_acceleration = calc_loader_acceleration;
|
|
19140
21104
|
exports.calc_loader_flighttime = calc_loader_flighttime;
|
|
19141
21105
|
exports.calc_onesided_duration = calc_onesided_duration;
|
|
@@ -19147,6 +21111,7 @@ exports.calc_ship_mass = calc_ship_mass;
|
|
|
19147
21111
|
exports.calc_ship_rechargetime = calc_ship_rechargetime;
|
|
19148
21112
|
exports.calc_transfer_duration = calc_transfer_duration;
|
|
19149
21113
|
exports.calc_transit_duration = calc_transit_duration;
|
|
21114
|
+
exports.calc_travel_flighttime = calc_travel_flighttime;
|
|
19150
21115
|
exports.calculateFlightTime = calculateFlightTime;
|
|
19151
21116
|
exports.calculateLoadTimeBreakdown = calculateLoadTimeBreakdown;
|
|
19152
21117
|
exports.calculateRefuelingTime = calculateRefuelingTime;
|
|
@@ -19178,16 +21143,21 @@ exports.compareByStars = compareByStars;
|
|
|
19178
21143
|
exports.componentIcon = componentIcon;
|
|
19179
21144
|
exports.composeIdleResolve = composeIdleResolve;
|
|
19180
21145
|
exports.computeBaseCapacity = computeBaseCapacity;
|
|
21146
|
+
exports.computeBaseCapacityContainer = computeBaseCapacityContainer;
|
|
19181
21147
|
exports.computeBaseCapacityShip = computeBaseCapacityShip;
|
|
19182
21148
|
exports.computeBaseCapacityWarehouse = computeBaseCapacityWarehouse;
|
|
19183
21149
|
exports.computeBaseHullmass = computeBaseHullmass$1;
|
|
19184
21150
|
exports.computeBatteryCapabilities = computeBatteryCapabilities;
|
|
21151
|
+
exports.computeBuilderCapabilities = computeBuilderCapabilities;
|
|
21152
|
+
exports.computeBuilderDrain = computeBuilderDrain;
|
|
21153
|
+
exports.computeBuilderSpeed = computeBuilderSpeed;
|
|
19185
21154
|
exports.computeComponentStats = computeComponentStats;
|
|
19186
21155
|
exports.computeContainerCapabilities = computeContainerCapabilities;
|
|
19187
21156
|
exports.computeCraftedOutputStats = computeCraftedOutputStats;
|
|
19188
21157
|
exports.computeCrafterCapabilities = computeCrafterCapabilities;
|
|
19189
21158
|
exports.computeCrafterDrain = computeCrafterDrain;
|
|
19190
21159
|
exports.computeCrafterSpeed = computeCrafterSpeed;
|
|
21160
|
+
exports.computeEffectiveModuleStat = computeEffectiveModuleStat;
|
|
19191
21161
|
exports.computeEngineCapabilities = computeEngineCapabilities;
|
|
19192
21162
|
exports.computeEngineDrain = computeEngineDrain;
|
|
19193
21163
|
exports.computeEngineThrust = computeEngineThrust;
|
|
@@ -19205,7 +21175,6 @@ exports.computeGroupPerLegReach = computeGroupPerLegReach;
|
|
|
19205
21175
|
exports.computeHaulPenalty = computeHaulPenalty;
|
|
19206
21176
|
exports.computeHaulerCapabilities = computeHaulerCapabilities;
|
|
19207
21177
|
exports.computeHaulerCapacity = computeHaulerCapacity;
|
|
19208
|
-
exports.computeHaulerDrain = computeHaulerDrain;
|
|
19209
21178
|
exports.computeHaulerEfficiency = computeHaulerEfficiency;
|
|
19210
21179
|
exports.computeInputMass = computeInputMass;
|
|
19211
21180
|
exports.computeLauncherCapabilities = computeLauncherCapabilities;
|
|
@@ -19283,6 +21252,7 @@ exports.formatTier = formatTier;
|
|
|
19283
21252
|
exports.gatherEnergyCost = gatherEnergyCost;
|
|
19284
21253
|
exports.gathererDepthForTier = gathererDepthForTier;
|
|
19285
21254
|
exports.getAllRecipes = getAllRecipes;
|
|
21255
|
+
exports.getBaseHullmassFor = getBaseHullmassFor;
|
|
19286
21256
|
exports.getCapabilityAttributeRows = getCapabilityAttributeRows;
|
|
19287
21257
|
exports.getCapabilityAttributes = getCapabilityAttributes;
|
|
19288
21258
|
exports.getCategoryInfo = getCategoryInfo;
|
|
@@ -19361,12 +21331,14 @@ exports.isShip = isShip;
|
|
|
19361
21331
|
exports.isSubscriptionsDebugEnabled = isSubscriptionsDebugEnabled;
|
|
19362
21332
|
exports.isValidWormholePair = isValidWormholePair;
|
|
19363
21333
|
exports.isWarehouse = isWarehouse;
|
|
21334
|
+
exports.isWorkshop = isWorkshop;
|
|
19364
21335
|
exports.itemAbbreviations = itemAbbreviations;
|
|
19365
21336
|
exports.itemCategory = itemCategory;
|
|
19366
21337
|
exports.itemIds = itemIds;
|
|
19367
21338
|
exports.itemOffset = itemOffset;
|
|
19368
21339
|
exports.itemTier = itemTier;
|
|
19369
21340
|
exports.itemTypeCode = itemTypeCode;
|
|
21341
|
+
exports.jobsToLanes = jobsToLanes;
|
|
19370
21342
|
exports.kindCan = kindCan;
|
|
19371
21343
|
exports.laneKeyForModule = laneKeyForModule;
|
|
19372
21344
|
exports.lerp = lerp$1;
|
|
@@ -19385,6 +21357,7 @@ exports.needsRecharge = needsRecharge;
|
|
|
19385
21357
|
exports.normalizeDisplayName = normalizeDisplayName;
|
|
19386
21358
|
exports.parseWireEntity = parseWireEntity;
|
|
19387
21359
|
exports.partnerRegion = partnerRegion;
|
|
21360
|
+
exports.pickFabricator = pickFabricator;
|
|
19388
21361
|
exports.planParallelTransfer = planParallelTransfer;
|
|
19389
21362
|
exports.planRoute = planRoute;
|
|
19390
21363
|
exports.projectEntity = projectEntity;
|
|
@@ -19400,6 +21373,7 @@ exports.removeFromStacks = removeFromStacks;
|
|
|
19400
21373
|
exports.renderDescription = renderDescription;
|
|
19401
21374
|
exports.resolveItem = resolveItem;
|
|
19402
21375
|
exports.resolveItemCategory = resolveItemCategory;
|
|
21376
|
+
exports.resolveLaneBuilder = resolveLaneBuilder;
|
|
19403
21377
|
exports.resolveLaneCrafter = resolveLaneCrafter;
|
|
19404
21378
|
exports.resolveLaneGatherer = resolveLaneGatherer;
|
|
19405
21379
|
exports.resolveLaneLoader = resolveLaneLoader;
|
|
@@ -19407,6 +21381,7 @@ exports.resolveLockedAmount = resolveLockedAmount;
|
|
|
19407
21381
|
exports.resolveStats = resolveStats;
|
|
19408
21382
|
exports.rollTier = rollTier;
|
|
19409
21383
|
exports.rollWithinTier = rollWithinTier;
|
|
21384
|
+
exports.rollupBuilder = rollupBuilder;
|
|
19410
21385
|
exports.rollupCrafter = rollupCrafter;
|
|
19411
21386
|
exports.rollupGatherer = rollupGatherer;
|
|
19412
21387
|
exports.rollupLoaders = rollupLoaders;
|
|
@@ -19414,9 +21389,10 @@ exports.rotation = rotation;
|
|
|
19414
21389
|
exports.schedule = schedule;
|
|
19415
21390
|
exports.sdkSystemGraph = sdkSystemGraph;
|
|
19416
21391
|
exports.selectGatherLane = selectGatherLane;
|
|
19417
|
-
exports.setScanProvider = setScanProvider;
|
|
19418
21392
|
exports.setSubscriptionsDebug = setSubscriptionsDebug;
|
|
21393
|
+
exports.simulateRoute = simulateRoute;
|
|
19419
21394
|
exports.slotAcceptsModule = slotAcceptsModule;
|
|
21395
|
+
exports.socketTail = socketTail;
|
|
19420
21396
|
exports.sourceLabelForOutput = sourceLabelForOutput;
|
|
19421
21397
|
exports.splitCost = splitCost;
|
|
19422
21398
|
exports.stackKey = stackKey;
|