@shipload/sdk 1.0.0-next.51 → 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 +470 -157
- package/lib/shipload.js +2309 -492
- package/lib/shipload.js.map +1 -1
- package/lib/shipload.m.js +2279 -491
- package/lib/shipload.m.js.map +1 -1
- package/lib/testing.d.ts +123 -8
- package/lib/testing.js +450 -19
- package/lib/testing.js.map +1 -1
- package/lib/testing.m.js +451 -20
- 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 +293 -13
- 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 +29 -3
- package/src/managers/actions.ts +77 -46
- 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 +3 -7
- package/src/travel/travel.ts +14 -5
- package/src/types/capabilities.ts +9 -3
- package/src/types.ts +5 -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('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDjBAQlhZGRtb2R1bGUABAllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZgp0YXJnZXRfcmVmCmNhcmdvX3JlZj8IYWRkbmV4dXMAAwpuZXh1c19uYW1lBnN0cmluZwF4BWludDY0AXkFaW50NjQJYWRkb3JhY2xlAAEJb3JhY2xlX2lkBG5hbWUFYmxlbmQAAgJpZAZ1aW50NjQGaW5wdXRzDGNhcmdvX2l0ZW1bXQlidWlsZHBsb3QAAgpidWlsZGVyX2lkBnVpbnQ2NAdwbG90X2lkBnVpbnQ2NAZjYW5jZWwAAwJpZAZ1aW50NjQIbGFuZV9rZXkFdWludDgFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABQdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIJZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcmVmAAQHaXRlbV9pZAZ1aW50MTYFc3RhdHMGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10JZW50aXR5X2lkB3VpbnQ2ND8JY2FyZ29fcm93AAcCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdC3NlcXVlbmNlX2lkB3VpbnQ2ND8KY2FyZ29fdmlldwAGB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NAdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdCHF1YW50aXR5BnVpbnQzMgJpZAZ1aW50NjQJZW50aXR5X2lkB3VpbnQ2ND8JY2xhaW1fcm93AAEFb3duZXIEbmFtZQljbGFpbXBsb3QAAwpidWlsZGVyX2lkBnVpbnQ2NA50YXJnZXRfaXRlbV9pZAZ1aW50MTYEc2xvdAxjbHVzdGVyX3Nsb3QMY2xhaW1zdGFydGVyAAEFb3duZXIEbmFtZQljbGVhbnJzdnAAAgVlcG9jaAZ1aW50NjQIbWF4X3Jvd3MGdWludDY0CmNsZWFydGFibGUAAwp0YWJsZV9uYW1lBG5hbWUFc2NvcGUFbmFtZT8IbWF4X3Jvd3MHdWludDY0PwxjbHVzdGVyX2NlbGwAAwJneARpbnQ4Amd5BGludDgGZW50aXR5BnVpbnQ2NAtjbHVzdGVyX3JvdwACBHJvb3QGdWludDY0BWNlbGxzDmNsdXN0ZXJfY2VsbFtdDGNsdXN0ZXJfc2xvdAADA2h1YgZ1aW50NjQCZ3gEaW50OAJneQRpbnQ4BmNvbW1pdAADCW9yYWNsZV9pZARuYW1lBWVwb2NoBnVpbnQ2NAZjb21taXQLY2hlY2tzdW0yNTYKY29tbWl0X3JvdwAEAmlkBnVpbnQ2NAVlcG9jaAZ1aW50NjQJb3JhY2xlX2lkBG5hbWUGY29tbWl0C2NoZWNrc3VtMjU2CWNvbmZpZ2xvZwABBmNvbmZpZwtnYW1lX2NvbmZpZwtjb29yZGluYXRlcwADAXgFaW50NjQBeQVpbnQ2NAF6B3VpbnQxNj8FY3JhZnQABgJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQZ0YXJnZXQHdWludDY0PwRzbG90BnVpbnQ4PwxjcmFmdGVyX2xhbmUABApzbG90X2luZGV4BXVpbnQ4BXNwZWVkBnVpbnQxNgVkcmFpbgZ1aW50MzIKb3V0cHV0X3BjdAZ1aW50MTYIZGVtb2xpc2gAAQllbnRpdHlfaWQGdWludDY0BmRlcGxveQADAmlkBnVpbnQ2NANyZWYJY2FyZ29fcmVmBHNsb3QNY2x1c3Rlcl9zbG90PwpkZXNjZW50aXR5AAQHaXRlbV9pZAZ1aW50MTYKaHVsbF9zdGF0cwZ1aW50NjQMbW9kdWxlX2l0ZW1zCHVpbnQxNltdDG1vZHVsZV9zdGF0cwh1aW50NjRbXQZlbmFibGUAAQdlbmFibGVkBGJvb2wMZW5lcmd5X3N0YXRzAAIIY2FwYWNpdHkGdWludDMyCHJlY2hhcmdlBnVpbnQzMhRlbnRpdHlfY3VycmVudF9zdGF0ZQACC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzBmVuZXJneQZ1aW50MzIPZW50aXR5X2RlZmF1bHRzAAILd2FyZWhvdXNlX3oGdWludDE2C2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAWBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXRlbV9pZAZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10HbW9kdWxlcw5tb2R1bGVfZW50cnlbXQZlbmVyZ3kHdWludDMyPwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwZoYXVsZXINaGF1bGVyX3N0YXRzPw5nYXRoZXJlcl9sYW5lcw9nYXRoZXJlcl9sYW5lW10NY3JhZnRlcl9sYW5lcw5jcmFmdGVyX2xhbmVbXQxsb2FkZXJfbGFuZXMNbG9hZGVyX2xhbmVbXQhsYXVuY2hlcg9sYXVuY2hlcl9zdGF0cz8FbGFuZXMGbGFuZVtdBWhvbGRzBmhvbGRbXQ1lbnRpdHlfbGF5b3V0AAIOZW50aXR5X2l0ZW1faWQGdWludDE2BXNsb3RzCnNsb3RfZGVmW10VZW50aXR5X2xheW91dHNfcmVzdWx0AAEIZW50aXRpZXMPZW50aXR5X2xheW91dFtdCmVudGl0eV9yZWYAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKZW50aXR5X3JvdwAMAmlkBnVpbnQ2NAVvd25lcgRuYW1lBGtpbmQEbmFtZQdpdGVtX2lkBnVpbnQxNgRuYW1lBnN0cmluZwVzdGF0cwZ1aW50NjQLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgdtb2R1bGVzDm1vZHVsZV9lbnRyeVtdBWxhbmVzBmxhbmVbXQVob2xkcwZob2xkW10OZW50aXR5X3NlcV9yb3cAAQduZXh0X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdC2VudW1fbWVtYmVyAAIFdmFsdWUFdWludDgEbmFtZQZzdHJpbmcLZW51bV9yZXN1bHQAAQdtZW1iZXJzDWVudW1fbWVtYmVyW10JZXBvY2hfcm93AAQFZXBvY2gGdWludDY0Cm9yYWNsZV9pZHMGbmFtZVtdCXRocmVzaG9sZAV1aW50OARzZWVkC2NoZWNrc3VtMjU2DGZpeGNhcmdvbWFzcwABCWVudGl0eV9pZAZ1aW50NjQQZm9vdHByaW50X3Jlc3VsdAABBWNlbGxzC2dyaWRfY2VsbFtdC2ZvcmNlcmV2ZWFsAAEFZXBvY2gGdWludDY0C2dhbWVfY29uZmlnAAMHdmVyc2lvbgZ1aW50MzIIZGVmYXVsdHMPZW50aXR5X2RlZmF1bHRzBWl0ZW1zCml0ZW1fZGVmW10GZ2F0aGVyAAUJc291cmNlX2lkBnVpbnQ2NA5kZXN0aW5hdGlvbl9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYIcXVhbnRpdHkGdWludDMyBHNsb3QGdWludDg/DWdhdGhlcmVyX2xhbmUABQpzbG90X2luZGV4BXVpbnQ4BXlpZWxkBnVpbnQxNgVkcmFpbgZ1aW50MzIFZGVwdGgGdWludDE2Cm91dHB1dF9wY3QGdWludDE2DGdlbmVzaXNmbGVldAABCGVudGl0aWVzDGVudGl0eV9yb3dbXQpnZXRjbHVzdGVyAAEGaHViX2lkBnVpbnQ2NAlnZXRjb25maWcAAApnZXRkZXBvc2l0AAIFb3duZXIEbmFtZQhhc3NldF9pZAZ1aW50NjQLZ2V0ZGlzdGFuY2UABAJheAVpbnQ2NAJheQVpbnQ2NAJieAVpbnQ2NAJieQVpbnQ2NAtnZXRlbGlnaWJsZQACBmNvb3Jkcwtjb29yZGluYXRlcwdzdHJhdHVtBnVpbnQxNglnZXRlbnRjbHMAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAEJZW50aXR5X2lkBnVpbnQ2NAxnZXRmb290cHJpbnQAAQdpdGVtX2lkBnVpbnQxNgtnZXRpdGVtZGF0YQAACmdldGl0ZW1pZHMAAAhnZXRpdGVtcwAAC2dldGl0ZW10eXBlAAEHaXRlbV9pZAZ1aW50MTYMZ2V0aXRlbXR5cGVzAAALZ2V0a2luZG1ldGEAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0C2dldG1vZHR5cGVzAAAKZ2V0bW9kdWxlcwAACWdldG5lYXJieQACCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbApnZXRuZnRiYXNlAAAKZ2V0bmZ0aW5mbwAACWdldHBsYXllcgABB2FjY291bnQEbmFtZQxnZXRwcm9qc3RhdGUAAgllbnRpdHlfaWQGdWludDY0CnRhc2tfY291bnQGdWludDg/CWdldHJlY2lwZQABDm91dHB1dF9pdGVtX2lkBnVpbnQxNgpnZXRyZWNpcGVzAAILbG93ZXJfYm91bmQGdWludDE2BWxpbWl0BXVpbnQ4CmdldHJlc2NhdHMAAAtnZXRyZXNlcnZlcwACAXgFaW50NjQBeQVpbnQ2NAxnZXRyZXNvdXJjZXMAAAhnZXRzbG90cwAACmdldHN0cmF0dW0AAwF4BWludDY0AXkFaW50NjQHc3RyYXR1bQZ1aW50MTYMZ2V0c3VtbWFyaWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwtnZXR3b3JtaG9sZQACAXgFaW50NjQBeQVpbnQ2NAlncmlkX2NlbGwAAgJneARpbnQ4Amd5BGludDgMZ3JvdXB0cmFuc2l0AAUIZW50aXRpZXMMZW50aXR5X3JlZltdAmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwxoYXVsZXJfc3RhdHMABAhjYXBhY2l0eQV1aW50OAplZmZpY2llbmN5BnVpbnQxNgVkcmFpbgZ1aW50MzIQY2FwYWNpdHlfYnlfdGllchFoYXVsZXJfdGllcl9jYXBbXQ9oYXVsZXJfdGllcl9jYXAAAgR0aWVyBXVpbnQ4CGNhcGFjaXR5BXVpbnQ4BGhvbGQABQJpZAZ1aW50NjQEa2luZAV1aW50OAtjb3VudGVycGFydAplbnRpdHlfcmVmBXVudGlsCnRpbWVfcG9pbnQNaW5jb21pbmdfbWFzcwZ1aW50MzILaW1wb3J0Y2FyZ28AAQNyb3cJY2FyZ29fcm93DGltcG9ydGVudGl0eQABA3JvdwplbnRpdHlfcm93C2ltcG9ydGdyb3VwAAEDcm93D2VudGl0eWdyb3VwX3JvdwxpbXBvcnRwbGF5ZXIAAQVvd25lcgRuYW1lDWltcG9ydHJlc2VydmUAAgtlcG9jaF9zY29wZQZ1aW50MzIDcm93C3Jlc2VydmVfcm93C2ltcG9ydHN0YXRlAAEDcm93CXN0YXRlX3JvdwhpdGVtX2RlZgAFAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgR0eXBlBXVpbnQ4B3N1YnR5cGUFdWludDgEdGllcgV1aW50OAxpdGVtX2lkX3BhaXIAAgJpZAZ1aW50MTYEbmFtZQZzdHJpbmcPaXRlbV9pZHNfcmVzdWx0AAEFaXRlbXMOaXRlbV9pZF9wYWlyW10PaXRlbWRhdGFfcmVzdWx0AAIFaXRlbXMKaXRlbV9kZWZbXQdyZWNpcGVzDnJlY2lwZXNfcmVzdWx0Cml0ZW1zX2luZm8AAQVpdGVtcwppdGVtX2RlZltdBGpvaW4AAQdhY2NvdW50BG5hbWUQa2luZF9tZXRhX3Jlc3VsdAACBWtpbmRzD2tpbmRfbWV0YV9yb3dbXQl0ZW1wbGF0ZXMTdGVtcGxhdGVfbWV0YV9yb3dbXQ1raW5kX21ldGFfcm93AAUEa2luZARuYW1lDmNsYXNzaWZpY2F0aW9uBXVpbnQ4EGNhcGFiaWxpdHlfZmxhZ3MFdWludDgHel9jb29yZAZ1aW50MzINZGVmYXVsdF9sYWJlbAZzdHJpbmcEbGFuZQACCGxhbmVfa2V5BXVpbnQ4CHNjaGVkdWxlCHNjaGVkdWxlBmxhdW5jaAADC2xhdW5jaGVyX2lkBnVpbnQ2NApjYXRjaGVyX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10ObGF1bmNoZXJfc3RhdHMAAwtjaGFyZ2VfcmF0ZQZ1aW50MTYIdmVsb2NpdHkGdWludDE2BWRyYWluBnVpbnQxNgRsb2FkAAMCaWQGdWludDY0B2Zyb21faWQGdWludDY0BWl0ZW1zDGNhcmdvX2l0ZW1bXQtsb2FkZXJfbGFuZQAECnNsb3RfaW5kZXgFdWludDgEbWFzcwZ1aW50MzIGdGhydXN0BnVpbnQxNgpvdXRwdXRfcGN0BnVpbnQxNhBsb2NhdGlvbl9kZXJpdmVkAAIMc3RhdGljX3Byb3BzD2xvY2F0aW9uX3N0YXRpYwRzaXplBnVpbnQxNg1sb2NhdGlvbl9pbmZvAAMGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sC2lzX3dvcm1ob2xlBGJvb2wPbG9jYXRpb25fc3RhdGljAAUGY29vcmRzC2Nvb3JkaW5hdGVzBHR5cGUNbG9jYXRpb25fdHlwZQdzdWJ0eXBlBXVpbnQ4BXNlZWQwBXVpbnQ4BXNlZWQxBXVpbnQ4DG1vZHVsZV9lbnRyeQACBHR5cGUFdWludDgJaW5zdGFsbGVkDnBhY2tlZF9tb2R1bGU/C21vZHVsZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyC21vZHVsZV90eXBlBXVpbnQ4BHRpZXIFdWludDgObW9kdWxlc19yZXN1bHQAAQdtb2R1bGVzDW1vZHVsZV9pbmZvW10ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQzMghtb3ZldGlsZQAFBmh1Yl9pZAZ1aW50NjQHZnJvbV9neARpbnQ4B2Zyb21fZ3kEaW50OAV0b19neARpbnQ4BXRvX2d5BGludDgLbmVhcmJ5X2luZm8ABQpjYW5fdHJhdmVsBGJvb2wHY3VycmVudBRlbnRpdHlfY3VycmVudF9zdGF0ZQlwcm9qZWN0ZWQUZW50aXR5X2N1cnJlbnRfc3RhdGUKbWF4X2VuZXJneQZ1aW50MzIHc3lzdGVtcw9uZWFyYnlfc3lzdGVtW10NbmVhcmJ5X3N5c3RlbQAECGRpc3RhbmNlBnVpbnQ2NAtlbmVyZ3lfY29zdAZ1aW50NjQLZmxpZ2h0X3RpbWUGdWludDMyCGxvY2F0aW9uDWxvY2F0aW9uX2luZm8ObmZ0X2NhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNgVzdGF0cwZ1aW50NjQHbW9kdWxlcw5tb2R1bGVfZW50cnlbXQhxdWFudGl0eQZ1aW50MzIQbmZ0X2l0ZW1fcGF5bG9hZAACBGl0ZW0ObmZ0X2NhcmdvX2l0ZW0IbG9jYXRpb24MY29vcmRpbmF0ZXM/Dm5mdF9zY2hlbWFfZGVmAAILc2NoZW1hX25hbWUEbmFtZQZmaWVsZHMOc2NoZW1hX2ZpZWxkW10QbmZ0X3RlbXBsYXRlX2RlZgADB2l0ZW1faWQGdWludDE2C3NjaGVtYV9uYW1lBG5hbWULdGVtcGxhdGVfaWQFaW50MzINbmZ0Y29uZmlnX3JvdwADB2l0ZW1faWQGdWludDE2C3RlbXBsYXRlX2lkBWludDMyC3NjaGVtYV9uYW1lBG5hbWUJbmZ0aW1ndXJsAAIEaXRlbQpjYXJnb19pdGVtCGxvY2F0aW9uDGNvb3JkaW5hdGVzPw5uZnRpbmZvX3Jlc3VsdAACB3NjaGVtYXMQbmZ0X3NjaGVtYV9kZWZbXQl0ZW1wbGF0ZXMSbmZ0X3RlbXBsYXRlX2RlZltdBm5vdGlmeQABBWV2ZW50CnRhc2tfZXZlbnQRb3JhY2xlX2NvbmZpZ19yb3cAAQl0aHJlc2hvbGQFdWludDgKb3JhY2xlX3JvdwABAmlkBG5hbWUNcGFja2VkX21vZHVsZQACB2l0ZW1faWQGdWludDE2BXN0YXRzBnVpbnQ2NApwbGFjZWNhcmdvAAMFb3duZXIEbmFtZQdob3N0X2lkBnVpbnQ2NAhhc3NldF9pZAZ1aW50NjQLcGxhY2VlbnRpdHkAAwVvd25lcgRuYW1lCGFzc2V0X2lkBnVpbnQ2NA90YXJnZXRfbmV4dXNfaWQGdWludDY0C3BsYXllcl9pbmZvAAMFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnBsYXllcl9yb3cAAQVvd25lcgRuYW1lD3Byb2plY3RlZF9zdGF0ZQAQBW93bmVyBG5hbWULY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5B3VpbnQzMj8JY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb192aWV3W10IaHVsbG1hc3MHdWludDMyPwhjYXBhY2l0eQd1aW50MzI/B2VuZ2luZXMPbW92ZW1lbnRfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8GaGF1bGVyDWhhdWxlcl9zdGF0cz8OZ2F0aGVyZXJfbGFuZXMPZ2F0aGVyZXJfbGFuZVtdDWNyYWZ0ZXJfbGFuZXMOY3JhZnRlcl9sYW5lW10MbG9hZGVyX2xhbmVzDWxvYWRlcl9sYW5lW10IbGF1bmNoZXIPbGF1bmNoZXJfc3RhdHM/BHRpZXIFdWludDgIcmVjaGFyZ2UAAQJpZAZ1aW50NjQMcmVjaXBlX2lucHV0AAIHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyEHJlY2lwZV9pdGVtX2luZm8AAgJpZAZ1aW50MTYEbWFzcwZ1aW50MzIPcmVjaXBlX3Jlc3BvbnNlAAgOb3V0cHV0X2l0ZW1faWQGdWludDE2C291dHB1dF9tYXNzBnVpbnQzMgZpbnB1dHMOcmVjaXBlX2lucHV0W10Kc3RhdF9zbG90cxRzdGF0X3Nsb3RfcmVzcG9uc2VbXQ1ibGVuZF93ZWlnaHRzBWJ5dGVzC291dHB1dF9pdGVtEHJlY2lwZV9pdGVtX2luZm8LaW5wdXRfaXRlbXMScmVjaXBlX2l0ZW1faW5mb1tdD3NvdXJjZV9zdWJjbGFzcwd1aW50MTY/DnJlY2lwZXNfcmVzdWx0AAEHcmVjaXBlcxFyZWNpcGVfcmVzcG9uc2VbXQxyZWZyc2hlbnRpdHkAAQllbnRpdHlfaWQGdWludDY0DHJlbW92ZW9yYWNsZQABCW9yYWNsZV9pZARuYW1lBnJlbmFtZQACAmlkBnVpbnQ2NARuYW1lBnN0cmluZwtyZXNlcnZlX3JvdwAFAmlkBnVpbnQ2NAhjb29yZF9pZAZ1aW50NjQHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlB3Jlc29sdmUAAgJpZAZ1aW50NjQFY291bnQHdWludDY0Pw9yZXNvbHZlX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUOcmVzb2x2ZWRfY291bnQGdWludDMyFG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CnJlc29sdmVhbGwAAQVvd25lcgRuYW1lEnJlc29sdmVhbGxfcmVzdWx0cwACB3NjYW5uZWQGdWludDMyCHJlc29sdmVkBnVpbnQzMg1yZXNvdXJjZV9pbmZvAAQCaWQGdWludDE2BG1hc3MGdWludDMyCGNhdGVnb3J5BXVpbnQ4BHRpZXIFdWludDgOcmVzb3VyY2Vfc3RhdHMAAwVzdGF0MQZ1aW50MTYFc3RhdDIGdWludDE2BXN0YXQzBnVpbnQxNhByZXNvdXJjZXNfcmVzdWx0AAEJcmVzb3VyY2VzD3Jlc291cmNlX2luZm9bXQZyZXZlYWwAAwlvcmFjbGVfaWQEbmFtZQVlcG9jaAZ1aW50NjQGcmV2ZWFsC2NoZWNrc3VtMjU2CnJldmVhbF9yb3cABAJpZAZ1aW50NjQFZXBvY2gGdWludDY0CW9yYWNsZV9pZARuYW1lBnJldmVhbAtjaGVja3N1bTI1NghybW1vZHVsZQADCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4CnRhcmdldF9yZWYKY2FyZ29fcmVmPwhybW5mdGNmZwABB2l0ZW1faWQGdWludDE2DnJvdXRlX3dheXBvaW50AAIBeAVpbnQ2NAF5BWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzY2hlbWFfZmllbGQAAgRuYW1lBnN0cmluZwpmaWVsZF90eXBlBnN0cmluZwlzZXRjb29yZHMAAwllbnRpdHlfaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAlzZXRuZnRjZmcAAwdpdGVtX2lkBnVpbnQxNgt0ZW1wbGF0ZV9pZAVpbnQzMgtzY2hlbWFfbmFtZQRuYW1lDHNldHRocmVzaG9sZAABCXRocmVzaG9sZAV1aW50OAtzZXR3cmFwY29zdAADCWl0ZW1fdHlwZQV1aW50OAR0aWVyBXVpbnQ4BmFtb3VudAZ1aW50NjQKc2V0d3JhcGZlZQACB2ZlZV9wY3QGdWludDE2C2ZlZV9hY2NvdW50BG5hbWUIc2xvdF9kZWYAAwR0eXBlBXVpbnQ4Cm91dHB1dF9wY3QGdWludDE2CG1heF90aWVyBXVpbnQ4EnN0YXRfc2xvdF9yZXNwb25zZQABB3NvdXJjZXMNc3RhdF9zb3VyY2VbXQtzdGF0X3NvdXJjZQACC2lucHV0X2luZGV4BXVpbnQ4EGlucHV0X3N0YXRfaW5kZXgFdWludDgJc3RhdGVfcm93AAMHZW5hYmxlZARib29sBWVwb2NoBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2CXN0b3djYXJnbwAFBW93bmVyBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhuZXh1c19pZAZ1aW50NjQIY2FyZ29faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NApzdG93ZW50aXR5AAMFb3duZXIEbmFtZQllbnRpdHlfaWQGdWludDY0CG5leHVzX2lkBnVpbnQ2NAxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABQdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzILcmVzZXJ2ZV9tYXgGdWludDMyEXN0cmF0dW1fcmVtYWluaW5nAAMHc3RyYXR1bQZ1aW50MTYJcmVtYWluaW5nBnVpbnQzMgpsYXN0X2Jsb2NrFGJsb2NrX3RpbWVzdGFtcF90eXBlCnN3YXBtb2R1bGUAAwllbnRpdHlfaWQGdWludDY0DG1vZHVsZV9pbmRleAV1aW50OAptb2R1bGVfcmVmCWNhcmdvX3JlZghzd2FwdGlsZQAFBmh1Yl9pZAZ1aW50NjQEYV9neARpbnQ4BGFfZ3kEaW50OARiX2d4BGludDgEYl9neQRpbnQ4BHRhc2sACgR0eXBlBXVpbnQ4CGR1cmF0aW9uBnVpbnQzMgpjYW5jZWxhYmxlBXVpbnQ4C2Nvb3JkaW5hdGVzDGNvb3JkaW5hdGVzPwVjYXJnbwxjYXJnb19pdGVtW10MZW50aXR5dGFyZ2V0C2VudGl0eV9yZWY/C2VudGl0eWdyb3VwB3VpbnQ2ND8LZW5lcmd5X2Nvc3QHdWludDMyPwRob2xkB3VpbnQ2ND8OdGFyZ2V0X2l0ZW1faWQHdWludDE2Pwp0YXNrX2V2ZW50AAoKZXZlbnRfdHlwZQV1aW50OAVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAp0YXNrX2luZGV4BnVpbnQzMgR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MzI/CGxhbmVfa2V5BXVpbnQ4DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXRF0ZW1wbGF0ZV9tZXRhX3JvdwADB2l0ZW1faWQGdWludDE2BGtpbmQEbmFtZQ1kaXNwbGF5X2xhYmVsBnN0cmluZwd0cmFuc2l0AAUCaWQGdWludDY0AmF4BWludDY0AmF5BWludDY0AmJ4BWludDY0AmJ5BWludDY0BnRyYXZlbAAEAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQIcmVjaGFyZ2UEYm9vbAt0cmF2ZWxyb3V0ZQADCGVudGl0aWVzDGVudGl0eV9yZWZbXQl3YXlwb2ludHMQcm91dGVfd2F5cG9pbnRbXQhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAFAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EGdhbWVfY29uZmlnX3R5cGULZ2FtZV9jb25maWcWc3RyYXR1bV9yZW1haW5pbmdfdHlwZRFzdHJhdHVtX3JlbWFpbmluZxVuZnRfaXRlbV9wYXlsb2FkX3R5cGUQbmZ0X2l0ZW1fcGF5bG9hZAh1bmRlcGxveQACB2hvc3RfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQGdW5sb2FkAAMCaWQGdWludDY0BXRvX2lkBnVpbnQ2NAVpdGVtcwxjYXJnb19pdGVtW10HdXBncmFkZQAFCmJ1aWxkZXJfaWQGdWludDY0CXRhcmdldF9pZAZ1aW50NjQOdGFyZ2V0X2l0ZW1faWQGdWludDE2BmlucHV0cwxjYXJnb19pdGVtW10Ec2xvdAZ1aW50OD8Ed2FycAADAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAANd29ybWhvbGVfaW5mbwADBmNvb3Jkcwtjb29yZGluYXRlcwtpc193b3JtaG9sZQRib29sC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDndyYXBjb25maWdfcm93AAIHZmVlX3BjdAZ1aW50MTYLZmVlX2FjY291bnQEbmFtZQx3cmFwY29zdF9yb3cAAwlpdGVtX3R5cGUFdWludDgEdGllcgV1aW50OAZhbW91bnQGdWludDY0YgAAUFEnKlMyCWFkZG1vZHVsZccDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG1vZHVsZQpzdW1tYXJ5OiAnSW5zdGFsbCBhIG1vZHVsZSBpbnRvIGEgc2xvdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5zdGFsbCBhIG1vZHVsZSBmcm9tIGNhcmdvIGludG8gYSBtb2R1bGUgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgdHlwZSBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgdGFyZ2V0IHNsb3QgdHlwZS4gVGhlIG1vZHVsZSBpdGVtIGlzIHJlbW92ZWQgZnJvbSBjYXJnbyB1cG9uIGluc3RhbGxhdGlvbi4AAABYdzVTMghhZGRuZXh1c6cDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGFkZG5leHVzCnN1bW1hcnk6ICdBZGQgYSBuZXh1cyBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ3JlYXRlIGEgbmV3IG5leHVzIGVudGl0eSBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuIE5leHVzZXMgYXJlIG93bmVkIGJ5IHRoZSBjb250cmFjdCBhbmQgc2VydmUgYXMgZml4ZWQgZ2F0aGVyaW5nIHBvaW50cyB3aGVyZSBwbGF5ZXJzIGNhbiB3cmFwLCB1bndyYXAsIGRlcGxveSwgYW5kIG90aGVyd2lzZSBpbnRlcmFjdCB3aXRoIE5GVC1iYWNrZWQgYXNzZXRzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAABQEZlLUzIJYWRkb3JhY2xlAAAAAACANFU8BWJsZW5k/AItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYmxlbmQKc3VtbWFyeTogJ0JsZW5kIGNhcmdvIHN0YWNrcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ29tYmluZSBtdWx0aXBsZSBjYXJnbyBzdGFja3Mgb2YgdGhlIHNhbWUgaXRlbSB0eXBlIGludG8gYSBzaW5nbGUgc3RhY2sgd2l0aCBuZXcgYmxlbmRlZCBzdGF0cy4gQWxsIGlucHV0IHN0YWNrcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGl0ZW0gaWQuIFRoZSBvdXRwdXQgc3RhY2sgaGFzIHRoZSBjb21iaW5lZCBxdWFudGl0eSBvZiBhbGwgaW5wdXRzLgAAyDTWFJ0+CWJ1aWxkcGxvdAAAAAAARIWmQQZjYW5jZWzCAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC4AAMg0VulMRAljbGFpbXBsb3QAcFW+JmPpTEQMY2xhaW1zdGFydGVyAAAAqBvfaVRECWNsZWFucnN2cOwCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFucnN2cApzdW1tYXJ5OiAnQ2xlYW4gdXAgcGFzdCBlcG9jaCByZXNlcnZlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXJhc2UgcmVzZXJ2ZSB0YWJsZSByb3dzIGZyb20gYSBwYXN0IGVwb2NoLiBDYW5ub3QgY2xlYW4gdGhlIGN1cnJlbnQgb3IgZnV0dXJlIGVwb2Nocy4gVGhlIG1heF9yb3dzIHBhcmFtZXRlciBjYXBzIHRoZSBudW1iZXIgb2Ygcm93cyBlcmFzZWQgcGVyIGNhbGwgdG8gbGltaXQgQ1BVIHVzYWdlLgCAisfka1RECmNsZWFydGFibGW+AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjbGVhcnRhYmxlCnN1bW1hcnk6ICdERUJVRzogY2xlYXJ0YWJsZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0AAAAAZCclRQZjb21taXTsAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjb21taXQKc3VtbWFyeTogJ1NldCBjb21taXQgdmFsdWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNldCB0aGUgaW5pdGlhbCBjb21taXQgdmFsdWUgZHVyaW5nIGdhbWUgaW5pdGlhbGl6YXRpb24uAABgNDK3JkUJY29uZmlnbG9n3QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29uZmlnbG9nCnN1bW1hcnk6ICdMb2cgZ2FtZSBjb25maWd1cmF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBsb2dzIHRoZSBjdXJyZW50IGdhbWUgY29uZmlndXJhdGlvbi4gQ2FsbGVkIGlubGluZSBhZnRlciBpbml0aWFsaXphdGlvbiB0byBicm9hZGNhc3QgY29uZmlnIHZpYSBhY3Rpb24gdHJhY2VzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAAIC8zEUFY3JhZnTIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjcmFmdApzdW1tYXJ5OiAnQ3JhZnQgaXRlbXMgZnJvbSBhIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmb3JtIGNhcmdvIGl0ZW1zIGludG8gYSBuZXcgaXRlbSB1c2luZyBhIHJlY2lwZS4gVGhlIGVudGl0eSBtdXN0IGhhdmUgYSBjcmFmdGVyIG1vZHVsZSBpbnN0YWxsZWQuIENvbnN1bWVzIGVuZXJneSBhbmQgc2NoZWR1bGVzIGEgY3JhZnRpbmcgdGFzayB3aXRoIGR1cmF0aW9uIGJhc2VkIG9uIHRvdGFsIGlucHV0IG1hc3MgYW5kIGNyYWZ0ZXIgc3BlZWQuIElucHV0IHF1YW50aXRpZXMgbXVzdCBleGFjdGx5IG1hdGNoIHRoZSByZWNpcGUgcmVxdWlyZW1lbnRzLgAAAA27SKVKCGRlbW9saXNo8QMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZGVtb2xpc2gKc3VtbWFyeTogJ0RlbW9saXNoIGEgc3RhdGlvbmFyeSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkRlY29tbWlzc2lvbiBhbiBlbnRpdHksIGVyYXNpbmcgaXQgZnJvbSB0aGUgZ2FtZS4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUsIGhhdmUgZW1wdHkgY2FyZ28sIGFuZCBoYXZlIG5vIGluc3RhbGxlZCBtb2R1bGVzIChyZW1vdmUgZWFjaCB2aWEgcm1tb2R1bGUgZmlyc3QpLiBTY2hlZHVsZXMgYSBkZW1vbGlzaCB0YXNrIHRoYXQgZXJhc2VzIHRoZSBlbnRpdHkgb24gcmVzb2x1dGlvbi4gT25seSB2YWxpZCBmb3IgZW50aXRpZXMgdGhhdCBjYW5ub3QgbW92ZTsgdXNlIHVuZGVwbG95IG9yIHdyYXBlbnRpdHkgZm9yIHRoZSByZXN0LgAAAAB4GqtKBmRlcGxveewCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGRlcGxveQpzdW1tYXJ5OiAnRGVwbG95IGEgcGFja2VkIGVudGl0eScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVW5wYWNrIGEgcGFja2VkIGVudGl0eSBpdGVtIChwYWNrZWQgc2hpcCBvciBwYWNrZWQgY29udGFpbmVyKSBmcm9tIGNhcmdvLCBzY2hlZHVsaW5nIGEgZGVwbG95IHRhc2sgdGhhdCBjcmVhdGVzIHRoZSBuZXcgZW50aXR5IGF0IHRoZSBkZXBsb3lpbmcgZW50aXR5J3MgbG9jYXRpb24gdXBvbiByZXNvbHV0aW9uLgCAzy5PhbBKCmRlc2NlbnRpdHnJAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBkZXNjZW50aXR5CnN1bW1hcnk6ICdEZXNjcmliZSBhIHBhY2tlZCBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gc3RyaW5nIGZvciBhIHBhY2tlZCBlbnRpdHksIGRlcml2ZWQgZnJvbSB0aGUgZW50aXR5IGl0ZW0gaWQsIGh1bGwgc3RhdHMsIGFuZCB0aGUgbGlzdCBvZiBpbnN0YWxsZWQgbW9kdWxlIGl0ZW0gaWRzIGFuZCBzdGF0cy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBkaXNwbGF5IHBhY2tlZCBlbnRpdGllcy4AAAAAqHjMVAZlbmFibGXdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ1NldCBlbmFibGVkIHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGdhbWUgb2YgU2hpcGxvYWQugLGRlF2DulsMZml4Y2FyZ29tYXNzkAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZml4Y2FyZ29tYXNzCnN1bW1hcnk6ICdERUJVRzogcmVjb21wdXRlIGVudGl0eSBjYXJnbyBtYXNzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZWNvbXB1dGUgYW5kIHJld3JpdGUgYW4gZW50aXR5J3MgY2FyZ28gbWFzcyBmcm9tIGl0cyBjdXJyZW50IGNhcmdvLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuIEF2YWlsYWJsZSBmb3IgcmVwYWlyaW5nIGRyaWZ0IGJldHdlZW4gY2FjaGVkIGNhcmdvIG1hc3MgYW5kIHRoZSB0cnVlIG1hc3MgZGVyaXZlZCBmcm9tIGNhcmdvIHJvd3MuAKJRW12FLl0LZm9yY2VyZXZlYWy+BC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBmb3JjZXJldmVhbApzdW1tYXJ5OiAnREVCVUc6IGZvcmNlLWZpbmFsaXplIGFuIGVwb2NoIGZyb20gZXhpc3RpbmcgcmV2ZWFscycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRmluYWxpemUgYSBzdHVjayBlcG9jaCBieSBjb21wdXRpbmcgaXRzIHNlZWQgZnJvbSB0aGUgcmV2ZWFscyBhbHJlYWR5IHN1Ym1pdHRlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJlZCB0aHJlc2hvbGQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4gVGhlIHNlZWQgaXMgZGVyaXZlZCBzb2xlbHkgZnJvbSB0aGUgcHJlLWltYWdlLWxvY2tlZCByZXZlYWxzIGFscmVhZHkgb24gY2hhaW47IG5vIGFkbWluLXN1cHBsaWVkIGVudHJvcHkgaXMgaW50cm9kdWNlZC4gVXNlZCB0byB1bmJsb2NrIGVwb2NoIHByb2dyZXNzaW9uIHdoZW4gdGhlIHRocmVzaG9sZCBjYW5ub3Qgb3RoZXJ3aXNlIGJlIG1ldC4AAAAAXNWyYQZnYXRoZXKXAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnYXRoZXIKc3VtbWFyeTogJ0dhdGhlciByZXNvdXJjZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkdhdGhlciByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGdhdGhlcmFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhIGdhdGhlciB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBnYXRoZXJlciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24ukJWKCzuspmIMZ2VuZXNpc2ZsZWV0qQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2VuZXNpc2ZsZWV0CnN1bW1hcnk6ICdNaW50IHRoZSBvbmUtdGltZSBnZW5lc2lzIGZsZWV0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFbXBsYWNlIHRoZSBvbmUtdGltZSBnZW5lc2lzIGZsZWV0OiBhIGNhbGxlci1zdXBwbGllZCBzZXQgb2YgZW50aXRpZXMgKHNoaXBzLCBzdHJ1Y3R1cmVzLCBhbmQgY29udGFpbmVycykgd3JpdHRlbiB0byB0aGUgd29ybGQgYXMtaXMuIFZhbGlkIG9ubHkgZHVyaW5nIHRoZSBwcmUtZ2VuZXNpcyB3aW5kb3csIGJlZm9yZSBlcG9jaCAxIGlzIGZpbmFsaXplZC4gVGhlIHN1cHBsaWVkIGVudGl0eSBpZHMgYXJlIGhvbm9yZWQgYW5kIHRoZSBpZCBzZXF1ZW5jZSBpcyBhZHZhbmNlZCBwYXN0IHRoZW07IGlkIDAgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBHZW5lc2lzIE5leHVzLiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAMBVGeuIsmIKZ2V0Y2x1c3RlcgAAAGBuTYqyYglnZXRjb25maWfKAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRjb25maWcKc3VtbWFyeTogJ0dldCBnYW1lIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgdGhlIGdhbWUgY29uZmlndXJhdGlvbiBpbmNsdWRpbmcgZGVmYXVsdCBlbnRpdHkgc3RhdHMgZm9yIHdhcmVob3VzZXMgYW5kIGNvbnRhaW5lcnMsIGFuZCB0aGUgZnVsbCBpdGVtIGRlZmluaXRpb25zIHRhYmxlLgBAdphWlbJiCmdldGRlcG9zaXQAABSaJmOXsmILZ2V0ZGlzdGFuY2UAAFQ8jrmosmILZ2V0ZWxpZ2libGXIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbGlnaWJsZQpzdW1tYXJ5OiAnR2V0IGVsaWdpYmxlIHJlc291cmNlIGl0ZW0gSURzIGF0IGEgbG9jYXRpb24gYW5kIHN0cmF0dW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBsaXN0IG9mIHJlc291cmNlIGl0ZW0gSURzIGVsaWdpYmxlIHRvIGJlIGdhdGhlcmVkIGF0IHRoZSBnaXZlbiBjb29yZGluYXRlcyBhbmQgc3RyYXR1bSBkZXB0aC4gSXRlbXMgYXJlIGdhdGVkIGJ5IGJvdGggdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgcHJvZmlsZSBhbmQgdGhlIGRlcHRoIHRocmVzaG9sZCBmb3IgZWFjaCB0aWVyLgAAwBHlqbJiCWdldGVudGNsc4wDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGNscwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGVudGl0eSBjbGFzcyBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChPcmJpdGFsVmVzc2VsLCBQbGFuZXRhcnlTdHJ1Y3R1cmUpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSBlbnRpdHkgY2xhc3MgaWRlbnRpZmllcnMuALBy2eWpsmILZ2V0ZW50aXRpZXOkAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdGllcwpzdW1tYXJ5OiAnR2V0IGFsbCBlbnRpdGllcyBmb3IgYSBwbGF5ZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgZnVsbCBlbnRpdHkgaW5mbyBmb3IgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyLiBPcHRpb25hbGx5IGZpbHRlciBieSBlbnRpdHkgdHlwZS4AAPDZ5amyYglnZXRlbnRpdHmiAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRlbnRpdHkKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJldHVybnMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYW4gZW50aXR5IGluY2x1ZGluZyBpZGVudGl0eSwgY2FyZ28sIHNjaGVkdWxlIHN0YXRlLCBhbmQgdHlwZS1zcGVjaWZpYyBmaWVsZHMukKe7NVO6smIMZ2V0Zm9vdHByaW50AABMNkmq7LJiC2dldGl0ZW1kYXRhqAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbWRhdGEKc3VtbWFyeTogJ0dldCBmdWxsIGl0ZW0gY2F0YWxvZycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGNvbXBsZXRlIGl0ZW0gY2F0YWxvZyBhcyB0aGUgY29udHJhY3Qgc2VlcyBpdCwgaW5jbHVkaW5nIHR5cGUsIHN1YnR5cGUsIHRpZXIsIG1hc3MsIGFuZCBvdGhlciBzdGF0aWMgbWV0YWRhdGEuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgYW5kIGNsaWVudHMgdG8gbWlycm9yIHRoZSBjb250cmFjdCdzIGl0ZW0gZGVmaW5pdGlvbnMuAABOTqrssmIKZ2V0aXRlbWlkc4YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1pZHMKc3VtbWFyeTogJ0dldCBpdGVtIGlkIHRvIG5hbWUgbWFwcGluZ3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIG1hcHBpbmcgb2YgaXRlbSBpZCBjb25zdGFudHMgdG8gdGhlaXIgY2Fub25pY2FsIHN0cmluZyBuYW1lcy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byByZXNvbHZlIG51bWVyaWMgaXRlbSBpZHMgdG8gaHVtYW4tcmVhZGFibGUgaWRlbnRpZmllcnMuAAAAWKrssmIIZ2V0aXRlbXOaAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRpdGVtcwpzdW1tYXJ5OiAnR2V0IGFsbCBhdmFpbGFibGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgYSBsaXN0IG9mIGFsbCBpdGVtcyBpbiB0aGUgZ2FtZSBpbmNsdWRpbmcgdGhlaXIgaWQsIGJhc2UgcHJpY2UsIGFuZCBtYXNzLgBU9Vmq7LJiC2dldGl0ZW10eXBlAIBV9Vmq7LJiDGdldGl0ZW10eXBlc4gDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW10eXBlcwpzdW1tYXJ5OiAnR2V0IGl0ZW0gdHlwZSBlbnVtIHZhbHVlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGZ1bGwgc2V0IG9mIGl0ZW0gdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChyZXNvdXJjZSwgY29tcG9uZW50LCBtb2R1bGUsIGVudGl0eSkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGVjb2RlIGl0ZW0gdHlwZSBpZGVudGlmaWVycy4ATFYyTQezYgtnZXRraW5kbWV0YfgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGtpbmRtZXRhCnN1bW1hcnk6ICdHZXQgZW50aXR5IGtpbmQgbWV0YWRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBlbnRpdHkga2luZCByZWdpc3RyeSBhbmQgdGVtcGxhdGUgcmVnaXN0cnksIGluY2x1ZGluZyBlYWNoIGtpbmQncyBjbGFzc2lmaWNhdGlvbiwgY2FwYWJpbGl0eSBmbGFncywgWi1jb29yZGluYXRlLCBhbmQgZGVmYXVsdCBsYWJlbCwgcGx1cyB0aGUgbWFwcGluZyBvZiBlbnRpdHkgaXRlbSBpZHMgdG8ga2luZHMgd2l0aCBkaXNwbGF5IGxhYmVscy4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBpbnRlcnByZXQgZW50aXR5IGtpbmRzIGFuZCBjYXBhYmlsaXRpZXMuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AsKo+JyqzYgtnZXRtb2R0eXBlc9YDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG1vZHR5cGVzCnN1bW1hcnk6ICdHZXQgbW9kdWxlIHR5cGUgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBtb2R1bGUgdHlwZSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChhbnksIGVuZ2luZSwgZ2VuZXJhdG9yLCBnYXRoZXJlciwgbG9hZGVyLCB3YXJwLCBjcmFmdGVyLCBsYXVuY2hlciwgc3RvcmFnZSwgaGF1bGVyKS4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkZWNvZGUgbW9kdWxlIHN1YnR5cGUgaWRlbnRpZmllcnMgYW5kIHNsb3QgY29tcGF0aWJpbGl0eS4AAFZRJyqzYgpnZXRtb2R1bGVzgAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bW9kdWxlcwpzdW1tYXJ5OiAnR2V0IGFsbCBtb2R1bGUgaXRlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBzdWJzZXQgb2YgaXRlbXMgY2xhc3NpZmllZCBhcyBtb2R1bGVzLCBpbmNsdWRpbmcgZWFjaCBtb2R1bGUncyBpZCwgbWFzcywgc3VidHlwZSwgYW5kIHRpZXIuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZW51bWVyYXRlIGluc3RhbGxhYmxlIGVxdWlwbWVudC4AAPDnGjWzYglnZXRuZWFyYnnKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBhbmQgZmxpZ2h0IHRpbWUuAIDC5uQ1s2IKZ2V0bmZ0YmFzZQAAAF3T5TWzYgpnZXRuZnRpbmZv8AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0bmZ0aW5mbwpzdW1tYXJ5OiAnR2V0IE5GVCBzY2hlbWEgYW5kIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiBBdG9taWNBc3NldHMgc2NoZW1hcyBhbmQgdGVtcGxhdGVzIHRoZSBnYW1lIGNvbnRyYWN0IGV4cGVjdHMsIHBsdXMgdGhlIGN1cnJlbnQgYGl0ZW1faWQg4oaSICh0ZW1wbGF0ZV9pZCwgc2NoZW1hX25hbWUpYCBtYXBwaW5nIHN0b3JlZCBpbiB0aGUgYG5mdGNvbmZpZ2AgdGFibGUuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gc3luYyBhdG9taWNhc3NldHMgc3RhdGUgd2l0aCB0aGUgY29udHJhY3QuAAC4yptYs2IJZ2V0cGxheWVy/QItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cGxheWVyCnN1bW1hcnk6ICdHZXQgcGxheWVyIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgcGxheWVyIGluY2x1ZGluZyBiYWxhbmNlLCBkZWJ0LCBuZXR3b3J0aCwgZW50aXR5IGNvdW50cywgYW5kIHByaWNpbmcgZm9yIG5leHQgcHVyY2hhc2VzLiBSZXR1cm5zIGlzX3BsYXllcj1mYWxzZSBpZiB0aGUgYWNjb3VudCBoYXMgbm90IGpvaW5lZCB0aGUgZ2FtZS6gssn40VuzYgxnZXRwcm9qc3RhdGXLAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwcm9qc3RhdGUKc3VtbWFyeTogJ0dldCBwcm9qZWN0ZWQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgcHJvamVjdGVkIHN0YXRlIG9mIGFuIGVudGl0eSBhZnRlciBhcHBseWluZyB0aGUgbmV4dCB0YXNrX2NvdW50IHNjaGVkdWxlZCB0YXNrcyAob3IgYWxsIHRhc2tzIGlmIHRhc2tfY291bnQgaXMgb21pdHRlZCkuIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gcHJldmlldyB0aGUgcmVzdWx0IG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlIHdpdGhvdXQgcmVzb2x2aW5nIG9uLWNoYWluLgAAUNUhdbNiCWdldHJlY2lwZaYDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHJlY2lwZQpzdW1tYXJ5OiAnR2V0IGEgc2luZ2xlIGNyYWZ0aW5nIHJlY2lwZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIHJlY2lwZSB3aG9zZSBvdXRwdXQgbWF0Y2hlcyB0aGUgZ2l2ZW4gaXRlbSBpZCwgaW5jbHVkaW5nIGl0cyBpbnB1dHMsIGJsZW5kIHdlaWdodHMsIHN0YXQgc2xvdHMsIGFuZCByZXNvbHZlZCBpdGVtIG1hc3MgaW5mby4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBkaXNwbGF5IGNyYWZ0aW5nIHJlcXVpcmVtZW50cy4AAFbVIXWzYgpnZXRyZWNpcGVzrAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVjaXBlcwpzdW1tYXJ5OiAnTGlzdCBjcmFmdGluZyByZWNpcGVzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyBhIHBhZ2luYXRlZCBsaXN0IG9mIGNyYWZ0aW5nIHJlY2lwZXMgc3RhcnRpbmcgYXQgdGhlIHByb3ZpZGVkIGxvd2VyIGJvdW5kIG91dHB1dCBpdGVtIGlkLCB1cCB0byB0aGUgc3BlY2lmaWVkIGxpbWl0LiBFYWNoIGVudHJ5IGluY2x1ZGVzIGlucHV0cywgYmxlbmQgd2VpZ2h0cywgc3RhdCBzbG90cywgYW5kIHJlc29sdmVkIGl0ZW0gbWFzcyBpbmZvLgAAzgZhdbNiCmdldHJlc2NhdHOeAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRyZXNjYXRzCnN1bW1hcnk6ICdHZXQgcmVzb3VyY2UgY2F0ZWdvcnkgZW51bSB2YWx1ZXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBmdWxsIHNldCBvZiByZXNvdXJjZSBjYXRlZ29yeSBlbnVtIHZhbHVlcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzIChvcmUsIGdhcywgcmVnb2xpdGgsIGJpb21hc3MsIGNyeXN0YWwpLiBVc2VkIGJ5IG9mZi1jaGFpbiB0b29saW5nIHRvIGRlY29kZSByZXNvdXJjZSBzdWJ0eXBlIGlkZW50aWZpZXJzLgCw2ldhdbNiC2dldHJlc2VydmVz/AMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzZXJ2ZXMKc3VtbWFyeTogJ0dldCBjdXJyZW50IHJlc2VydmUgbW9kaWZpY2F0aW9ucyBhdCBhIGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBjaGFpbidzIG1vZGlmaWNhdGlvbnMgdG8gZGVyaXZlZCByZXNlcnZlcyBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZSBmb3IgdGhlIGN1cnJlbnQgZXBvY2ggYXMgYSBsaXN0IG9mIHtzdHJhdHVtLCByZW1haW5pbmd9IHBhaXJzLiBTdHJhdGEgbm90IHByZXNlbnQgaW4gdGhlIHJlc3BvbnNlIHVzZSB0aGVpciBkZXJpdmVkIGluaXRpYWwgcmVzZXJ2ZS4gQ29tcG9zZSB3aXRoIFNESyBkZXJpdmF0aW9uIHRvIGdldCB0aGUgZnVsbCBwZXItbG9jYXRpb24gc3RyYXRhIHZpZXcugBW6mmJ1s2IMZ2V0cmVzb3VyY2VzhwMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0cmVzb3VyY2VzCnN1bW1hcnk6ICdHZXQgYWxsIHJlc291cmNlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGlzIGEgcmVhZC1vbmx5IHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgc3Vic2V0IG9mIGl0ZW1zIGNsYXNzaWZpZWQgYXMgcmVzb3VyY2VzLCBpbmNsdWRpbmcgZWFjaCByZXNvdXJjZSdzIGlkLCBtYXNzLCBzdWJ0eXBlLCBhbmQgdGllci4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyB0byBlbnVtZXJhdGUgZ2F0aGVyYWJsZSBtYXRlcmlhbHMuAAAAONOIs2IIZ2V0c2xvdHO7Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzbG90cwpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzbG90IGxheW91dHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgaXMgYSByZWFkLW9ubHkgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBtb2R1bGUgc2xvdCBsYXlvdXQgZm9yIGV2ZXJ5IGVudGl0eSBpdGVtIHR5cGUsIGxpc3RpbmcgdGhlIG9yZGVyZWQgc2xvdCB0eXBlcyBhdmFpbGFibGUgZm9yIG1vZHVsZSBpbnN0YWxsYXRpb24uIFVzZWQgYnkgb2ZmLWNoYWluIHRvb2xpbmcgdG8gZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZSB0eXBlcyBhcmUgY29tcGF0aWJsZSB3aXRoIGEgZ2l2ZW4gZW50aXR5IGh1bGwuAIDU2dyMs2IKZ2V0c3RyYXR1bdICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHN0cmF0dW0Kc3VtbWFyeTogJ0dldCByZXNvdXJjZSBzdHJhdHVtIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgcmVzb3VyY2Ugc3RyYXR1bSBkYXRhIGZvciBhIHNwZWNpZmljIGRlcHRoIGxheWVyIGF0IGEgY29vcmRpbmF0ZSwgaW5jbHVkaW5nIHRoZSBzdHJhdHVtIHNlZWQgaW5mbyBhbmQgZGVyaXZlZCByZXNvdXJjZSBzdGF0cy6AlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgBUpE1eyrNiC2dldHdvcm1ob2xlAJAdnubmqullDGdyb3VwdHJhbnNpdAAAotrm5qrpZQtncm91cHRyYXZlbJoELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdyb3VwdHJhdmVsCnN1bW1hcnk6ICdNb3ZlIG11bHRpcGxlIGVudGl0aWVzIHRvZ2V0aGVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSBncm91cCB0cmF2ZWwgZm9yIG11bHRpcGxlIGVudGl0aWVzIHRvIGEgZGVzdGluYXRpb24uIEFsbCBlbnRpdGllcyBtdXN0IGJlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFuZCBvd25lZCBieSB0aGUgY2FsbGVyLiBBdCBsZWFzdCBvbmUgZW50aXR5IHdpdGggZW5naW5lcyBpcyByZXF1aXJlZCB0byBwcm92aWRlIHRocnVzdC4gRmxpZ2h0IGR1cmF0aW9uIGlzIGNhbGN1bGF0ZWQgZnJvbSBjb21iaW5lZCB0aHJ1c3QgYW5kIHRvdGFsIG1hc3Mgb2YgYWxsIGVudGl0aWVzLiBDcmVhdGVzIGFuIGVudGl0eWdyb3VwIGZvciBhdG9taWMgcmVzb2x1dGlvbiBhbmQgY2FuY2VsbGF0aW9uLgAAAAAA0LBpBGhhc2j4AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAQITSsGkHaGFzaDUxMvsBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2g1MTIKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGE1MTIgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhNTEyIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AKLsG5UurdAtpbXBvcnRjYXJnbwDgs8tT5UurdAxpbXBvcnRlbnRpdHkAAKqml+VLq3QLaW1wb3J0Z3JvdXAAcJU3seZLq3QMaW1wb3J0cGxheWVyALqvwurmS6t0DWltcG9ydHJlc2VydmUAAFQ2GedLq3QLaW1wb3J0c3RhdGUAAAAAAAAwHX0Eam9pbsQBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAAAAAA0NLWJBmxhdW5jaAAAAAAAAJAMjQRsb2FkAAAAACq6rDaVCG1vdmV0aWxlAAAAiFcz6fKaCW5mdGltZ3VybLIDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5mdGltZ3VybApzdW1tYXJ5OiAnR2V0IE5GVCBpbWFnZSBVUkwgZm9yIGEgY2FyZ28gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBpcyBhIHJlYWQtb25seSBxdWVyeSB0aGF0IHJldHVybnMgdGhlIGltYWdlIFVSTCB0aGUgY29udHJhY3QgZW1pdHMgZm9yIGEgZ2l2ZW4gY2FyZ28gaXRlbSwgb3B0aW9uYWxseSBzY29wZWQgdG8gYSBsb2NhdGlvbi4gVXNlZCBieSBvZmYtY2hhaW4gdG9vbGluZyBhbmQgTkZUIHJlbmRlcmVycyB0byBmZXRjaCB0aGUgY2Fub25pY2FsIGFydHdvcmsgZm9yIGFuIGl0ZW0gb3IgcGFja2VkIGVudGl0eS4AAAAA+OUynQZub3RpZnmKAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBub3RpZnkKc3VtbWFyeTogJ1Rhc2sgbGlmZWN5Y2xlIG5vdGlmaWNhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIHRoYXQgbm90aWZpZXMgZW50aXR5IG93bmVycyBvZiB0YXNrIGxpZmVjeWNsZSBldmVudHMgKHJlc29sdmVkLCBjYW5jZWxsZWQpLiBDYWxsZWQgaW5saW5lIHdoZW4gdGFza3MgY2hhbmdlIHN0YXRlLiBVc2VzIHJlcXVpcmVfcmVjaXBpZW50IHRvIGVuYWJsZSBvZmYtY2hhaW4gbW9uaXRvcmluZyB2aWEgYWN0aW9uIHRyYWNlcy4AAGXXIIVMrApwbGFjZWNhcmdvyQQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGxhY2VjYXJnbwpzdW1tYXJ5OiAnUmVzdG9yZSBORlQgY2FyZ28gb250byBhIGhvc3QgZW50aXR5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzdG9yZXMgdGhlIGNhcmdvIHJlY29yZGVkIGluIGFuIHVud3JhcHBlZCBORlQgb250byBhIGhvc3QgZW50aXR5LiBWYWxpZGF0ZXMgaG9zdCBvd25lcnNoaXAsIGxvYWRlcnMsIGFuZCByZW1haW5pbmcgY2FwYWNpdHksIGRlc2VyaWFsaXplcyB0aGUgTkZUJ3MgaXRlbSBkYXRhLCBhbmQgYXBwZW5kcyBhbiB1bndyYXAgdGFzayB0byBkZWxpdmVyIHRoZSBjYXJnbyB0byB0aGUgaG9zdC4gVGhlIHBsYXRmb3JtIGNvbnRyYWN0IGNyZWRpdHMgdGhlIGRlcG9zaXQgcmVmdW5kIGFuZCBidXJucyB0aGUgYXNzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AfHZ5KoVMrAtwbGFjZWVudGl0ecAELS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHBsYWNlZW50aXR5CnN1bW1hcnk6ICdNYXRlcmlhbGl6ZSBhIHBhY2tlZC1lbnRpdHkgTkZUIGFzIGEgbGl2ZSBlbnRpdHknCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkludGVybmFsIGFjdGlvbiBjYWxsZWQgaW5saW5lIGJ5IHRoZSBwbGF0Zm9ybSBjb250cmFjdCBvbmx5LiBFbXBsYWNlcyBhIGxpdmUgb3JiaXRhbCB2ZXNzZWwgKHNoaXAgb3IgY29udGFpbmVyKSBmcm9tIGl0cyBwYWNrZWQtZW50aXR5IE5GVCBkYXRhIGF0IHRoZSByZWNvcmRlZCB3cmFwIG9yaWdpbiwgdGhlbiBxdWV1ZXMgdHJhdmVsIGFuZCByZWNoYXJnZSB0YXNrcyB0byBkZWxpdmVyIGl0IHRvIHRoZSB0YXJnZXQgbmV4dXMgYXQgZnVsbCBlbmVyZ3kuIFRoZSBwbGF0Zm9ybSBjb250cmFjdCBjcmVkaXRzIHRoZSBkZXBvc2l0IHJlZnVuZCBhbmQgYnVybnMgdGhlIGFzc2V0LiBSZXF1aXJlcyBjb250cmFjdCBhdXRob3JpdHkuAAAAil3TkLoIcmVjaGFyZ2XNAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZWNoYXJnZQpzdW1tYXJ5OiAnUmVjaGFyZ2Ugc2hpcCBlbmVyZ3knCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNjaGVkdWxlIGEgcmVjaGFyZ2UgdGFzayBmb3IgYW4gZW50aXR5IHRvIHJlc3RvcmUgZW5lcmd5IHRvIGZ1bGwgY2FwYWNpdHkuIFRoZSByZWNoYXJnZSBkdXJhdGlvbiBkZXBlbmRzIG9uIGN1cnJlbnQgZW5lcmd5IGxldmVsIGFuZCByZWNoYXJnZSByYXRlLuCzy1M1fJe6DHJlZnJzaGVudGl0ebgDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHJlZnJzaGVudGl0eQpzdW1tYXJ5OiAnUmVmcmVzaCBkZXJpdmVkIGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVjb21wdXRlIGRlcml2ZWQgZmllbGRzIG9uIGFuIGVudGl0eSBmcm9tIGl0cyBjdXJyZW50IGNhcmdvIGFuZCBtb2R1bGVzLCByZWZyZXNoaW5nIGNhcGFiaWxpdHkgc3RhdHMgYW5kIGNhcmdvIG1hc3MuIFRoZSBlbnRpdHkgbXVzdCBiZSBpZGxlIHdpdGggbm8gc2NoZWR1bGVkIHRhc2tzLiBVc2VkIHRvIHJlY29uY2lsZSBkZXJpdmVkIHN0YXRlIGFmdGVyIGRhdGEgbWlncmF0aW9ucyBvciBjb250cmFjdCB1cGdyYWRlcy6gIjKXqk2lugxyZW1vdmVvcmFjbGUAAAAAAChpproGcmVuYW1lAAAAAEDtSLG6B3Jlc29sdmXQAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuAECMRu1IsboKcmVzb2x2ZWFsbAAAAAAARKO2ugZyZXZlYWwAAAAAKupEpbwIcm1tb2R1bGW8Ay0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBybW1vZHVsZQpzdW1tYXJ5OiAnUmVtb3ZlIGEgbW9kdWxlIGZyb20gYSBzbG90JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZW1vdmUgYW4gaW5zdGFsbGVkIG1vZHVsZSBmcm9tIGEgc2xvdCBvbiBhIGxpdmUgZW50aXR5IG9yIGEgcGFja2VkIGVudGl0eSBpbiBjYXJnby4gVGhlIGVudGl0eSBtdXN0IGJlIGlkbGUgd2l0aCBubyBzY2hlZHVsZWQgdGFza3MuIFRoZSBtb2R1bGUgaXMgcmV0dXJuZWQgdG8gY2FyZ28uIEZhaWxzIGlmIHRoZSBlbnRpdHkgZG9lcyBub3QgaGF2ZSBlbm91Z2ggY2FyZ28gY2FwYWNpdHkgdG8gaG9sZCB0aGUgcmV0dXJuZWQgbW9kdWxlLgAAAGyhvKa8CHJtbmZ0Y2ZnoQMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcm1uZnRjZmcKc3VtbWFyeTogJ1JlbW92ZSBORlQgdGVtcGxhdGUgbWFwcGluZyBmb3IgYW4gaXRlbScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmVtb3ZlIHRoZSBBdG9taWNBc3NldHMgdGVtcGxhdGUgbWFwcGluZyBmb3IgdGhlIHNwZWNpZmllZCBpdGVtIGlkIGZyb20gdGhlIGBuZnRjb25maWdgIHRhYmxlLiBBZnRlciByZW1vdmFsIHRoZSBpdGVtIGNhbiBubyBsb25nZXIgYmUgd3JhcHBlZCBvciB1bndyYXBwZWQgdW50aWwgYSBuZXcgbWFwcGluZyBpcyBzZXQuIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AAMDpUoqywglzZXRjb29yZHMAAABgC+U1s8IJc2V0bmZ0Y2ZnxAMtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2V0bmZ0Y2ZnCnN1bW1hcnk6ICdTZXQgTkZUIHRlbXBsYXRlIG1hcHBpbmcgZm9yIGFuIGl0ZW0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJpbmQgYW4gaXRlbSBpZCB0byBhbiBBdG9taWNBc3NldHMgdGVtcGxhdGUgaWQgYW5kIHNjaGVtYSBuYW1lLiBVc2VkIHRvIGNvbmZpZ3VyZSBob3cgdGhlIGNvbnRyYWN0IG1pbnRzIGFuZCByZWNvZ25pemVzIE5GVHMgZm9yIGEgZ2l2ZW4gaXRlbS4gSW5zZXJ0cyBhIG5ldyBtYXBwaW5nIGlmIG9uZSBkb2VzIG5vdCBleGlzdCwgb3IgdXBkYXRlcyB0aGUgZXhpc3RpbmcgbWFwcGluZy4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LpAibVjdlrPCDHNldHRocmVzaG9sZAAAMqaomsuzwgtzZXR3cmFwY29zdAAAgFKrmsuzwgpzZXR3cmFwZmVlAAAAoOwaxGnGCXN0b3djYXJnb9UFLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHN0b3djYXJnbwpzdW1tYXJ5OiAnUmVzZXJ2ZSBhIGNhcmdvIHN0YWNrIGZvciB3cmFwcGluZyBpbnRvIGFuIE5GVCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW50ZXJuYWwgYWN0aW9uIGNhbGxlZCBpbmxpbmUgYnkgdGhlIHBsYXRmb3JtIGNvbnRyYWN0IG9ubHkuIFJlc2VydmVzIGFuZCBjb25zdW1lcyBhIGNhcmdvIHN0YWNrIG9uIGEgbGl2ZSBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBWYWxpZGF0ZXMgZW50aXR5IG93bmVyc2hpcCwgbG9hZGVycywgYW5kIHByZXNlbmNlIGF0IHRoZSBuZXh1cywgYW5kIGNvbmZpcm1zIHRoZSB0YXJnZXQgY2FyZ28gc3RhY2sgaXMgYXZhaWxhYmxlIGFuZCBub3QgcmVzZXJ2ZWQgYnkgYSBwZW5kaW5nIHRhc2suIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIE5GVCdzIGltbXV0YWJsZSBkYXRhLCBhbmQgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QgYmVmb3JlIGNvbnN1bWluZyB0aGUgY2FyZ28uIFJlcXVpcmVzIGNvbnRyYWN0IGF1dGhvcml0eS4AgM8uT8VpxgpzdG93ZW50aXR5mQUtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3Rvd2VudGl0eQpzdW1tYXJ5OiAnUmVzZXJ2ZSBhbiBlbnRpdHkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZUJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gY2FsbGVkIGlubGluZSBieSB0aGUgcGxhdGZvcm0gY29udHJhY3Qgb25seS4gUmVzZXJ2ZXMgYSB3aG9sZSBlbnRpdHkgKHNoaXAsIGNvbnRhaW5lciwgb3IgcGxhbmV0YXJ5IHN0cnVjdHVyZSkgZm9yIHdyYXBwaW5nIGludG8gYW4gTkZULiBUaGUgZW50aXR5IG11c3QgYmUgaWRsZSB3aXRoIGVtcHR5IGNhcmdvIGFuZCBubyBzY2hlZHVsZWQgdGFza3MuIENvbXB1dGVzIHRoZSB3cmFwIGNvc3QgYW5kIGZlZSwgZGViaXRzIHRoZW0gZnJvbSB0aGUgb3duZXIncyBwbGF0Zm9ybSBkZXBvc2l0IGJhbGFuY2UsIGRlcml2ZXMgdGhlIGVudGl0eSBORlQncyBpbW11dGFibGUgZGF0YSwgbWludHMgdGhlIE5GVCBpbmxpbmUgYXMgdGhlIGdhbWUgY29udHJhY3QsIGFuZCBlcmFzZXMgdGhlIGVudGl0eSBmcm9tIHRoZSB3b3JsZC4gUmVxdWlyZXMgY29udHJhY3QgYXV0aG9yaXR5LgCAijpRWQ3HCnN3YXBtb2R1bGUAAAAAKrpcDccIc3dhcHRpbGUAAAAAIDs8zc0HdHJhbnNpdAAAAAAARLXNzQZ0cmF2ZWz7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYW4gZW50aXR5IGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uAFTW9Ea1zc0LdHJhdmVscm91dGUAAAAAnsaq0tQIdW5kZXBsb3nnBC0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1bmRlcGxveQpzdW1tYXJ5OiAnUGFjayBhIGRlcGxveWVkIGVudGl0eSBpbnRvIGEgaG9zdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUGFjayBhbiBlbnRpdHkgaW50byBhIGhvc3QgZW50aXR5J3MgY2FyZ28gYXMgYSBwYWNrZWQtZW50aXR5IGl0ZW0uIEhvc3QgYW5kIHRhcmdldCBtdXN0IHNoYXJlIHRoZSBzYW1lIG93bmVyIGFuZCBjb29yZGluYXRlcywgdGhlIGhvc3QgbXVzdCBoYXZlIGxvYWRlcnMgYW5kIGVub3VnaCBjYXBhY2l0eSBmb3IgdGhlIHBhY2tlZCBtYXNzLCBhbmQgdGhlIHRhcmdldCBtdXN0IGJlIGlkbGUgd2l0aCBlbXB0eSBjYXJnby4gQ3JlYXRlcyBhbiBlbnRpdHlncm91cCBhbmQgc2NoZWR1bGVzIHVuZGVwbG95IHRhc2tzIG9uIGJvdGggZW50aXRpZXM7IG9uIHJlc29sdXRpb24gdGhlIHRhcmdldCBpcyBlcmFzZWQgYW5kIHRoZSBwYWNrZWQgZW50aXR5IGlzIGFkZGVkIHRvIHRoZSBob3N0J3MgY2FyZ28uIEludmVyc2Ugb2YgZGVwbG95LgAAAAAkQ+PUBnVubG9hZAAAAABAJXNZ1Qd1cGdyYWRlAAAAAAAAUK/hBHdhcnCfAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3YXJwCnN1bW1hcnk6ICdXYXJwIHRvIGEgZGVzdGluYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluc3RhbnRseSB0ZWxlcG9ydCBhbiBlbnRpdHkgdG8gYSBkZXN0aW5hdGlvbiBzeXN0ZW0uIFJlcXVpcmVzIHdhcnAgY2FwYWJpbGl0eSwgZnVsbCBlbmVyZ3ksIGVtcHR5IGNhcmdvLCBhbmQgYW4gZW1wdHkgc2NoZWR1bGUuIFRoZSBkZXN0aW5hdGlvbiBtdXN0IGJlIGEgdmFsaWQgc3lzdGVtIHdpdGhpbiB3YXJwIHJhbmdlLiBSZXNvbHZlcyBpbW1lZGlhdGVseSBhcyBhIHplcm8tZHVyYXRpb24gdGFzay4AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tEgAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAABg6UxEA2k2NAAACWNsYWltX3JvdwAAAOCqjHVEA2k2NAAAC2NsdXN0ZXJfcm93AAAAAGQnJUUDaTY0AAAKY29tbWl0X3JvdwAAAAD47PJUA2k2NAAACmVudGl0eV9yb3cAqqaX+ezyVANpNjQAAA9lbnRpdHlncm91cF9yb3cAALAK++zyVANpNjQAAA5lbnRpdHlfc2VxX3JvdwAAAACAhmhVA2k2NAAACWVwb2NoX3JvdwAAYG5NivKaA2k2NAAADW5mdGNvbmZpZ19yb3cAAGALqYjMpQNpNjQAABFvcmFjbGVfY29uZmlnX3JvdwAAAACriMylA2k2NAAACm9yYWNsZV9yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAAQO2rsLoDaTY0AAALcmVzZXJ2ZV9yb3cAAAAARKO2ugNpNjQAAApyZXZlYWxfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABza1JUzeUDaTY0AAAOd3JhcGNvbmZpZ19yb3cAAAAZU1TN5QNpNjQAAAx3cmFwY29zdF9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAAQAAAyDTWFJ0+DHRhc2tfcmVzdWx0cwAAAABEhaZBDmNhbmNlbF9yZXN1bHRzAADINFbpTEQMdGFza19yZXN1bHRzAAAAAIC8zEUMdGFza19yZXN1bHRzAAAADbtIpUoMdGFza19yZXN1bHRzAAAAAHgaq0oMdGFza19yZXN1bHRzAIDPLk+FsEoGc3RyaW5nAAAAAFzVsmEMdGFza19yZXN1bHRzAMBVGeuIsmILY2x1c3Rlcl9yb3cAAGBuTYqyYgtnYW1lX2NvbmZpZwBAdphWlbJiDmV4dGVuZGVkX2Fzc2V0ABSaJmOXsmIGdWludDY0AFQ8jrmosmIIdWludDE2W10AAMAR5amyYgtlbnVtX3Jlc3VsdACwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mb5CnuzVTurJiEGZvb3RwcmludF9yZXN1bHQATDZJquyyYg9pdGVtZGF0YV9yZXN1bHQAAE5OquyyYg9pdGVtX2lkc19yZXN1bHQAAABYquyyYgppdGVtc19pbmZvAFT1WarssmIFdWludDiAVfVZquyyYgtlbnVtX3Jlc3VsdABMVjJNB7NiEGtpbmRfbWV0YV9yZXN1bHQAJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZACwqj4nKrNiC2VudW1fcmVzdWx0AABWUScqs2IObW9kdWxlc19yZXN1bHQAAPDnGjWzYgtuZWFyYnlfaW5mbwCAwubkNbNiCHN0cmluZ1tdAABd0+U1s2IObmZ0aW5mb19yZXN1bHQAALjKm1izYgtwbGF5ZXJfaW5mb6CyyfjRW7NiD3Byb2plY3RlZF9zdGF0ZQAAUNUhdbNiDnJlY2lwZXNfcmVzdWx0AABW1SF1s2IOcmVjaXBlc19yZXN1bHQAAM4GYXWzYgtlbnVtX3Jlc3VsdACw2ldhdbNiE3N0cmF0dW1fcmVtYWluaW5nW12AFbqaYnWzYhByZXNvdXJjZXNfcmVzdWx0AAAAONOIs2IVZW50aXR5X2xheW91dHNfcmVzdWx0AIDU2dyMs2IMc3RyYXR1bV9kYXRhgJW7RkqNs2IQZW50aXR5X3N1bW1hcnlbXQBUpE1eyrNiDXdvcm1ob2xlX2luZm+QHZ7m5qrpZQx0YXNrX3Jlc3VsdHMAotrm5qrpZQx0YXNrX3Jlc3VsdHMAAAAAANCwaQtjaGVja3N1bTI1NgAAAECE0rBpC2NoZWNrc3VtNTEyAAAAADQ0tYkMdGFza19yZXN1bHRzAAAAAACQDI0MdGFza19yZXN1bHRzAAAAKrqsNpUMdGFza19yZXN1bHRzAACIVzPp8poGc3RyaW5nAABl1yCFTKwMdGFza19yZXN1bHRzAHx2eSqFTKwMdGFza19yZXN1bHRzAAAAil3TkLoMdGFza19yZXN1bHRzAAAAQO1IsboPcmVzb2x2ZV9yZXN1bHRzAECMRu1IsboScmVzb2x2ZWFsbF9yZXN1bHRzAACg7BrEacYMdGFza19yZXN1bHRzAIDPLk/FacYMdGFza19yZXN1bHRzAAAAKrpcDccMdGFza19yZXN1bHRzAAAAIDs8zc0MdGFza19yZXN1bHRzAAAAAES1zc0MdGFza19yZXN1bHRzAFTW9Ea1zc0MdGFza19yZXN1bHRzAAAAnsaq0tQMdGFza19yZXN1bHRzAAAAACRD49QMdGFza19yZXN1bHRzAAAAQCVzWdUMdGFza19yZXN1bHRzAAAAAABQr+EMdGFza19yZXN1bHRz');
|
|
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);
|
|
@@ -2807,6 +3059,36 @@ exports.ServerTypes = void 0;
|
|
|
2807
3059
|
antelope.Struct.type('route_waypoint')
|
|
2808
3060
|
], route_waypoint);
|
|
2809
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;
|
|
2810
3092
|
let setcoords = class setcoords extends antelope.Struct {
|
|
2811
3093
|
};
|
|
2812
3094
|
tslib.__decorate([
|
|
@@ -2837,6 +3119,21 @@ exports.ServerTypes = void 0;
|
|
|
2837
3119
|
antelope.Struct.type('setnftcfg')
|
|
2838
3120
|
], setnftcfg);
|
|
2839
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;
|
|
2840
3137
|
let setthreshold = class setthreshold extends antelope.Struct {
|
|
2841
3138
|
};
|
|
2842
3139
|
tslib.__decorate([
|
|
@@ -2873,6 +3170,24 @@ exports.ServerTypes = void 0;
|
|
|
2873
3170
|
antelope.Struct.type('setwrapfee')
|
|
2874
3171
|
], setwrapfee);
|
|
2875
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;
|
|
2876
3191
|
let stowcargo = class stowcargo extends antelope.Struct {
|
|
2877
3192
|
};
|
|
2878
3193
|
tslib.__decorate([
|
|
@@ -3041,21 +3356,21 @@ exports.ServerTypes = void 0;
|
|
|
3041
3356
|
antelope.Struct.type('travel')
|
|
3042
3357
|
], travel);
|
|
3043
3358
|
Types.travel = travel;
|
|
3044
|
-
let
|
|
3359
|
+
let travelplan = class travelplan extends antelope.Struct {
|
|
3045
3360
|
};
|
|
3046
3361
|
tslib.__decorate([
|
|
3047
3362
|
antelope.Struct.field(entity_ref, { array: true })
|
|
3048
|
-
],
|
|
3363
|
+
], travelplan.prototype, "entities", void 0);
|
|
3049
3364
|
tslib.__decorate([
|
|
3050
3365
|
antelope.Struct.field(route_waypoint, { array: true })
|
|
3051
|
-
],
|
|
3366
|
+
], travelplan.prototype, "waypoints", void 0);
|
|
3052
3367
|
tslib.__decorate([
|
|
3053
3368
|
antelope.Struct.field('bool')
|
|
3054
|
-
],
|
|
3055
|
-
|
|
3056
|
-
antelope.Struct.type('
|
|
3057
|
-
],
|
|
3058
|
-
Types.
|
|
3369
|
+
], travelplan.prototype, "recharge", void 0);
|
|
3370
|
+
travelplan = tslib.__decorate([
|
|
3371
|
+
antelope.Struct.type('travelplan')
|
|
3372
|
+
], travelplan);
|
|
3373
|
+
Types.travelplan = travelplan;
|
|
3059
3374
|
let types_row = class types_row extends antelope.Struct {
|
|
3060
3375
|
};
|
|
3061
3376
|
tslib.__decorate([
|
|
@@ -3191,19 +3506,23 @@ exports.ServerTypes = void 0;
|
|
|
3191
3506
|
})(exports.ServerTypes || (exports.ServerTypes = {}));
|
|
3192
3507
|
const TableMap = {
|
|
3193
3508
|
cargo: exports.ServerTypes.cargo_row,
|
|
3509
|
+
civicconfig: exports.ServerTypes.civicconfig_row,
|
|
3194
3510
|
claims: exports.ServerTypes.claim_row,
|
|
3195
3511
|
cluster: exports.ServerTypes.cluster_row,
|
|
3196
3512
|
commit: exports.ServerTypes.commit_row,
|
|
3197
3513
|
entity: exports.ServerTypes.entity_row,
|
|
3514
|
+
'entity.mig': exports.ServerTypes.entity_row,
|
|
3198
3515
|
entitygroup: exports.ServerTypes.entitygroup_row,
|
|
3199
3516
|
entityseq: exports.ServerTypes.entity_seq_row,
|
|
3200
3517
|
epoch: exports.ServerTypes.epoch_row,
|
|
3518
|
+
jobs: exports.ServerTypes.job_row,
|
|
3201
3519
|
nftconfig: exports.ServerTypes.nftconfig_row,
|
|
3202
3520
|
oraclecfg: exports.ServerTypes.oracle_config_row,
|
|
3203
3521
|
oracles: exports.ServerTypes.oracle_row,
|
|
3204
3522
|
player: exports.ServerTypes.player_row,
|
|
3205
3523
|
reserve: exports.ServerTypes.reserve_row,
|
|
3206
3524
|
reveal: exports.ServerTypes.reveal_row,
|
|
3525
|
+
service: exports.ServerTypes.service_row,
|
|
3207
3526
|
state: exports.ServerTypes.state_row,
|
|
3208
3527
|
types: exports.ServerTypes.types_row,
|
|
3209
3528
|
wrapconfig: exports.ServerTypes.wrapconfig_row,
|
|
@@ -3324,7 +3643,7 @@ const INSUFFICIENT_BALANCE = 'Insufficient balance.';
|
|
|
3324
3643
|
const INSUFFICIENT_ITEM_QUANTITY = 'Insufficient quantity in cargo.';
|
|
3325
3644
|
const INSUFFICIENT_ITEM_SUPPLY = 'Insufficient supply of item at location.';
|
|
3326
3645
|
|
|
3327
|
-
const PRECISION
|
|
3646
|
+
const PRECISION = 10000;
|
|
3328
3647
|
const CRAFT_ENERGY_DIVISOR = 150000;
|
|
3329
3648
|
const PLANETARY_STRUCTURE_Z = 0;
|
|
3330
3649
|
const CONTAINER_Z = 300;
|
|
@@ -3346,15 +3665,15 @@ exports.TaskType = void 0;
|
|
|
3346
3665
|
TaskType[TaskType["GATHER"] = 5] = "GATHER";
|
|
3347
3666
|
TaskType[TaskType["WARP"] = 6] = "WARP";
|
|
3348
3667
|
TaskType[TaskType["CRAFT"] = 7] = "CRAFT";
|
|
3349
|
-
TaskType[TaskType["DEPLOY"] = 8] = "DEPLOY";
|
|
3350
3668
|
TaskType[TaskType["TRANSIT"] = 9] = "TRANSIT";
|
|
3351
3669
|
TaskType[TaskType["UNWRAP"] = 10] = "UNWRAP";
|
|
3352
3670
|
TaskType[TaskType["UNDEPLOY"] = 11] = "UNDEPLOY";
|
|
3671
|
+
TaskType[TaskType["LAUNCH"] = 12] = "LAUNCH";
|
|
3353
3672
|
TaskType[TaskType["DEMOLISH"] = 13] = "DEMOLISH";
|
|
3354
|
-
TaskType[TaskType["CLAIMPLOT"] = 14] = "CLAIMPLOT";
|
|
3355
3673
|
TaskType[TaskType["BUILDPLOT"] = 15] = "BUILDPLOT";
|
|
3356
3674
|
TaskType[TaskType["CHARGE"] = 16] = "CHARGE";
|
|
3357
3675
|
TaskType[TaskType["UPGRADE"] = 17] = "UPGRADE";
|
|
3676
|
+
TaskType[TaskType["SHUTTLE"] = 18] = "SHUTTLE";
|
|
3358
3677
|
})(exports.TaskType || (exports.TaskType = {}));
|
|
3359
3678
|
exports.HoldKind = void 0;
|
|
3360
3679
|
(function (HoldKind) {
|
|
@@ -3362,6 +3681,7 @@ exports.HoldKind = void 0;
|
|
|
3362
3681
|
HoldKind[HoldKind["PUSH"] = 2] = "PUSH";
|
|
3363
3682
|
HoldKind[HoldKind["GATHER"] = 3] = "GATHER";
|
|
3364
3683
|
HoldKind[HoldKind["BUILD"] = 4] = "BUILD";
|
|
3684
|
+
HoldKind[HoldKind["FLIGHT"] = 5] = "FLIGHT";
|
|
3365
3685
|
HoldKind[HoldKind["UPGRADE"] = 6] = "UPGRADE";
|
|
3366
3686
|
})(exports.HoldKind || (exports.HoldKind = {}));
|
|
3367
3687
|
exports.LocationType = void 0;
|
|
@@ -3496,6 +3816,7 @@ const ITEM_HAULER_T1 = 10106;
|
|
|
3496
3816
|
const ITEM_WARP_T1 = 10107;
|
|
3497
3817
|
const ITEM_BATTERY_T1 = 10108;
|
|
3498
3818
|
const ITEM_LAUNCHER_T1 = 10109;
|
|
3819
|
+
const ITEM_BUILDER_T1 = 10110;
|
|
3499
3820
|
const ITEM_CONTAINER_T1_PACKED = 10200;
|
|
3500
3821
|
const ITEM_SHIP_T1_PACKED = 10201;
|
|
3501
3822
|
const ITEM_WAREHOUSE_T1_PACKED = 10202;
|
|
@@ -3504,6 +3825,15 @@ const ITEM_FACTORY_T1_PACKED = 10204;
|
|
|
3504
3825
|
const ITEM_MASS_DRIVER_T1_PACKED = 10205;
|
|
3505
3826
|
const ITEM_MASS_CATCHER_T1_PACKED = 10206;
|
|
3506
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;
|
|
3507
3837
|
const ITEM_PLATE_T2 = 20001;
|
|
3508
3838
|
const ITEM_FRAME_T2 = 20002;
|
|
3509
3839
|
const ITEM_PLASMA_CELL_T2 = 20003;
|
|
@@ -4307,47 +4637,31 @@ var recipes = [
|
|
|
4307
4637
|
]
|
|
4308
4638
|
},
|
|
4309
4639
|
{
|
|
4310
|
-
outputItemId:
|
|
4311
|
-
outputMass:
|
|
4640
|
+
outputItemId: 10110,
|
|
4641
|
+
outputMass: 960000,
|
|
4312
4642
|
inputs: [
|
|
4313
4643
|
{
|
|
4314
|
-
itemId:
|
|
4315
|
-
quantity:
|
|
4644
|
+
itemId: 10005,
|
|
4645
|
+
quantity: 300
|
|
4316
4646
|
},
|
|
4317
4647
|
{
|
|
4318
|
-
itemId:
|
|
4319
|
-
quantity:
|
|
4648
|
+
itemId: 10002,
|
|
4649
|
+
quantity: 300
|
|
4320
4650
|
}
|
|
4321
4651
|
],
|
|
4322
4652
|
statSlots: [
|
|
4323
|
-
{
|
|
4324
|
-
sources: [
|
|
4325
|
-
{
|
|
4326
|
-
inputIndex: 0,
|
|
4327
|
-
statIndex: 0
|
|
4328
|
-
}
|
|
4329
|
-
]
|
|
4330
|
-
},
|
|
4331
|
-
{
|
|
4332
|
-
sources: [
|
|
4333
|
-
{
|
|
4334
|
-
inputIndex: 0,
|
|
4335
|
-
statIndex: 1
|
|
4336
|
-
}
|
|
4337
|
-
]
|
|
4338
|
-
},
|
|
4339
4653
|
{
|
|
4340
4654
|
sources: [
|
|
4341
4655
|
{
|
|
4342
4656
|
inputIndex: 1,
|
|
4343
|
-
statIndex:
|
|
4657
|
+
statIndex: 1
|
|
4344
4658
|
}
|
|
4345
4659
|
]
|
|
4346
4660
|
},
|
|
4347
4661
|
{
|
|
4348
4662
|
sources: [
|
|
4349
4663
|
{
|
|
4350
|
-
inputIndex:
|
|
4664
|
+
inputIndex: 0,
|
|
4351
4665
|
statIndex: 1
|
|
4352
4666
|
}
|
|
4353
4667
|
]
|
|
@@ -4357,28 +4671,16 @@ var recipes = [
|
|
|
4357
4671
|
]
|
|
4358
4672
|
},
|
|
4359
4673
|
{
|
|
4360
|
-
outputItemId:
|
|
4361
|
-
outputMass:
|
|
4674
|
+
outputItemId: 10200,
|
|
4675
|
+
outputMass: 1900000,
|
|
4362
4676
|
inputs: [
|
|
4363
4677
|
{
|
|
4364
4678
|
itemId: 10001,
|
|
4365
|
-
quantity:
|
|
4679
|
+
quantity: 600
|
|
4366
4680
|
},
|
|
4367
4681
|
{
|
|
4368
4682
|
itemId: 10008,
|
|
4369
|
-
quantity:
|
|
4370
|
-
},
|
|
4371
|
-
{
|
|
4372
|
-
itemId: 10007,
|
|
4373
|
-
quantity: 300
|
|
4374
|
-
},
|
|
4375
|
-
{
|
|
4376
|
-
itemId: 10003,
|
|
4377
|
-
quantity: 300
|
|
4378
|
-
},
|
|
4379
|
-
{
|
|
4380
|
-
itemId: 10006,
|
|
4381
|
-
quantity: 300
|
|
4683
|
+
quantity: 600
|
|
4382
4684
|
}
|
|
4383
4685
|
],
|
|
4384
4686
|
statSlots: [
|
|
@@ -4400,10 +4702,18 @@ var recipes = [
|
|
|
4400
4702
|
},
|
|
4401
4703
|
{
|
|
4402
4704
|
sources: [
|
|
4705
|
+
{
|
|
4706
|
+
inputIndex: 1,
|
|
4707
|
+
statIndex: 0
|
|
4708
|
+
}
|
|
4403
4709
|
]
|
|
4404
4710
|
},
|
|
4405
4711
|
{
|
|
4406
4712
|
sources: [
|
|
4713
|
+
{
|
|
4714
|
+
inputIndex: 1,
|
|
4715
|
+
statIndex: 1
|
|
4716
|
+
}
|
|
4407
4717
|
]
|
|
4408
4718
|
}
|
|
4409
4719
|
],
|
|
@@ -4575,12 +4885,28 @@ var recipes = [
|
|
|
4575
4885
|
]
|
|
4576
4886
|
},
|
|
4577
4887
|
{
|
|
4578
|
-
outputItemId:
|
|
4579
|
-
outputMass:
|
|
4888
|
+
outputItemId: 10210,
|
|
4889
|
+
outputMass: 1600000,
|
|
4580
4890
|
inputs: [
|
|
4581
4891
|
{
|
|
4582
|
-
itemId:
|
|
4583
|
-
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
|
|
4584
4910
|
}
|
|
4585
4911
|
],
|
|
4586
4912
|
statSlots: [
|
|
@@ -4595,42 +4921,761 @@ var recipes = [
|
|
|
4595
4921
|
{
|
|
4596
4922
|
sources: [
|
|
4597
4923
|
{
|
|
4598
|
-
inputIndex:
|
|
4599
|
-
statIndex:
|
|
4924
|
+
inputIndex: 1,
|
|
4925
|
+
statIndex: 0
|
|
4600
4926
|
}
|
|
4601
4927
|
]
|
|
4602
4928
|
},
|
|
4603
4929
|
{
|
|
4604
4930
|
sources: [
|
|
4605
4931
|
{
|
|
4606
|
-
inputIndex:
|
|
4607
|
-
statIndex:
|
|
4932
|
+
inputIndex: 2,
|
|
4933
|
+
statIndex: 0
|
|
4608
4934
|
}
|
|
4609
4935
|
]
|
|
4610
|
-
}
|
|
4611
|
-
],
|
|
4612
|
-
blendWeights: [
|
|
4613
|
-
]
|
|
4614
|
-
},
|
|
4615
|
-
{
|
|
4616
|
-
outputItemId: 20002,
|
|
4617
|
-
outputMass: 4800,
|
|
4618
|
-
inputs: [
|
|
4619
|
-
{
|
|
4620
|
-
itemId: 402,
|
|
4621
|
-
quantity: 6
|
|
4622
4936
|
},
|
|
4623
|
-
{
|
|
4624
|
-
itemId: 502,
|
|
4625
|
-
quantity: 6
|
|
4626
|
-
}
|
|
4627
|
-
],
|
|
4628
|
-
statSlots: [
|
|
4629
4937
|
{
|
|
4630
4938
|
sources: [
|
|
4631
4939
|
{
|
|
4632
|
-
inputIndex:
|
|
4633
|
-
statIndex:
|
|
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: [
|
|
5664
|
+
{
|
|
5665
|
+
itemId: 402,
|
|
5666
|
+
quantity: 6
|
|
5667
|
+
},
|
|
5668
|
+
{
|
|
5669
|
+
itemId: 502,
|
|
5670
|
+
quantity: 6
|
|
5671
|
+
}
|
|
5672
|
+
],
|
|
5673
|
+
statSlots: [
|
|
5674
|
+
{
|
|
5675
|
+
sources: [
|
|
5676
|
+
{
|
|
5677
|
+
inputIndex: 0,
|
|
5678
|
+
statIndex: 1
|
|
4634
5679
|
}
|
|
4635
5680
|
]
|
|
4636
5681
|
},
|
|
@@ -5174,27 +6219,27 @@ var recipes = [
|
|
|
5174
6219
|
outputMass: 3840000,
|
|
5175
6220
|
inputs: [
|
|
5176
6221
|
{
|
|
5177
|
-
itemId:
|
|
5178
|
-
quantity:
|
|
6222
|
+
itemId: 20005,
|
|
6223
|
+
quantity: 150
|
|
5179
6224
|
},
|
|
5180
6225
|
{
|
|
5181
|
-
itemId:
|
|
5182
|
-
quantity:
|
|
6226
|
+
itemId: 20002,
|
|
6227
|
+
quantity: 150
|
|
5183
6228
|
},
|
|
5184
6229
|
{
|
|
5185
|
-
itemId:
|
|
5186
|
-
quantity:
|
|
6230
|
+
itemId: 20010,
|
|
6231
|
+
quantity: 150
|
|
5187
6232
|
},
|
|
5188
6233
|
{
|
|
5189
|
-
itemId:
|
|
5190
|
-
quantity:
|
|
6234
|
+
itemId: 20009,
|
|
6235
|
+
quantity: 150
|
|
5191
6236
|
},
|
|
5192
6237
|
{
|
|
5193
|
-
itemId:
|
|
5194
|
-
quantity:
|
|
6238
|
+
itemId: 20004,
|
|
6239
|
+
quantity: 150
|
|
5195
6240
|
},
|
|
5196
6241
|
{
|
|
5197
|
-
itemId:
|
|
6242
|
+
itemId: 10211,
|
|
5198
6243
|
quantity: 1
|
|
5199
6244
|
}
|
|
5200
6245
|
],
|
|
@@ -5214,8 +6259,8 @@ var recipes = [
|
|
|
5214
6259
|
{
|
|
5215
6260
|
sources: [
|
|
5216
6261
|
{
|
|
5217
|
-
inputIndex:
|
|
5218
|
-
statIndex:
|
|
6262
|
+
inputIndex: 1,
|
|
6263
|
+
statIndex: 0
|
|
5219
6264
|
},
|
|
5220
6265
|
{
|
|
5221
6266
|
inputIndex: 5,
|
|
@@ -5225,207 +6270,484 @@ var recipes = [
|
|
|
5225
6270
|
},
|
|
5226
6271
|
{
|
|
5227
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
|
+
}
|
|
5228
6293
|
]
|
|
5229
6294
|
},
|
|
5230
6295
|
{
|
|
5231
6296
|
sources: [
|
|
6297
|
+
{
|
|
6298
|
+
inputIndex: 4,
|
|
6299
|
+
statIndex: 0
|
|
6300
|
+
},
|
|
6301
|
+
{
|
|
6302
|
+
inputIndex: 5,
|
|
6303
|
+
statIndex: 4
|
|
6304
|
+
}
|
|
5232
6305
|
]
|
|
5233
6306
|
}
|
|
5234
6307
|
],
|
|
5235
6308
|
blendWeights: [
|
|
5236
6309
|
],
|
|
5237
|
-
sourceSubclass:
|
|
6310
|
+
sourceSubclass: 10211
|
|
5238
6311
|
},
|
|
5239
6312
|
{
|
|
5240
6313
|
outputItemId: 20211,
|
|
5241
6314
|
outputMass: 3840000,
|
|
5242
6315
|
inputs: [
|
|
5243
6316
|
{
|
|
5244
|
-
itemId:
|
|
5245
|
-
quantity:
|
|
6317
|
+
itemId: 20005,
|
|
6318
|
+
quantity: 150
|
|
5246
6319
|
},
|
|
5247
6320
|
{
|
|
5248
6321
|
itemId: 20002,
|
|
5249
|
-
quantity:
|
|
6322
|
+
quantity: 150
|
|
5250
6323
|
},
|
|
5251
6324
|
{
|
|
5252
|
-
itemId:
|
|
5253
|
-
quantity:
|
|
6325
|
+
itemId: 20010,
|
|
6326
|
+
quantity: 150
|
|
5254
6327
|
},
|
|
5255
6328
|
{
|
|
5256
|
-
itemId:
|
|
5257
|
-
quantity:
|
|
6329
|
+
itemId: 20009,
|
|
6330
|
+
quantity: 150
|
|
5258
6331
|
},
|
|
5259
6332
|
{
|
|
5260
6333
|
itemId: 20004,
|
|
5261
|
-
quantity:
|
|
6334
|
+
quantity: 150
|
|
6335
|
+
},
|
|
6336
|
+
{
|
|
6337
|
+
itemId: 10214,
|
|
6338
|
+
quantity: 1
|
|
6339
|
+
}
|
|
6340
|
+
],
|
|
6341
|
+
statSlots: [
|
|
6342
|
+
{
|
|
6343
|
+
sources: [
|
|
6344
|
+
{
|
|
6345
|
+
inputIndex: 0,
|
|
6346
|
+
statIndex: 0
|
|
6347
|
+
},
|
|
6348
|
+
{
|
|
6349
|
+
inputIndex: 5,
|
|
6350
|
+
statIndex: 0
|
|
6351
|
+
}
|
|
6352
|
+
]
|
|
6353
|
+
},
|
|
6354
|
+
{
|
|
6355
|
+
sources: [
|
|
6356
|
+
{
|
|
6357
|
+
inputIndex: 1,
|
|
6358
|
+
statIndex: 0
|
|
6359
|
+
},
|
|
6360
|
+
{
|
|
6361
|
+
inputIndex: 5,
|
|
6362
|
+
statIndex: 1
|
|
6363
|
+
}
|
|
6364
|
+
]
|
|
6365
|
+
},
|
|
6366
|
+
{
|
|
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
|
|
5262
6538
|
},
|
|
5263
6539
|
{
|
|
5264
|
-
|
|
5265
|
-
|
|
6540
|
+
type: "storage",
|
|
6541
|
+
outputPct: 100,
|
|
6542
|
+
maxTier: 1
|
|
5266
6543
|
}
|
|
5267
6544
|
],
|
|
5268
|
-
|
|
6545
|
+
baseHullmass: 100000
|
|
6546
|
+
},
|
|
6547
|
+
{
|
|
6548
|
+
entityItemId: 10207,
|
|
6549
|
+
slots: [
|
|
6550
|
+
],
|
|
6551
|
+
baseHullmass: 100000
|
|
6552
|
+
},
|
|
6553
|
+
{
|
|
6554
|
+
entityItemId: 10208,
|
|
6555
|
+
slots: [
|
|
5269
6556
|
{
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
statIndex: 0
|
|
5274
|
-
},
|
|
5275
|
-
{
|
|
5276
|
-
inputIndex: 5,
|
|
5277
|
-
statIndex: 0
|
|
5278
|
-
}
|
|
5279
|
-
]
|
|
6557
|
+
type: "crafter",
|
|
6558
|
+
outputPct: 75,
|
|
6559
|
+
maxTier: 1
|
|
5280
6560
|
},
|
|
5281
6561
|
{
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
statIndex: 1
|
|
5286
|
-
},
|
|
5287
|
-
{
|
|
5288
|
-
inputIndex: 5,
|
|
5289
|
-
statIndex: 1
|
|
5290
|
-
}
|
|
5291
|
-
]
|
|
6562
|
+
type: "crafter",
|
|
6563
|
+
outputPct: 75,
|
|
6564
|
+
maxTier: 1
|
|
5292
6565
|
},
|
|
5293
6566
|
{
|
|
5294
|
-
|
|
5295
|
-
|
|
6567
|
+
type: "crafter",
|
|
6568
|
+
outputPct: 75,
|
|
6569
|
+
maxTier: 1
|
|
5296
6570
|
},
|
|
5297
6571
|
{
|
|
5298
|
-
|
|
5299
|
-
|
|
6572
|
+
type: "crafter",
|
|
6573
|
+
outputPct: 75,
|
|
6574
|
+
maxTier: 1
|
|
6575
|
+
},
|
|
6576
|
+
{
|
|
6577
|
+
type: "crafter",
|
|
6578
|
+
outputPct: 75,
|
|
6579
|
+
maxTier: 1
|
|
5300
6580
|
}
|
|
5301
6581
|
],
|
|
5302
|
-
|
|
5303
|
-
],
|
|
5304
|
-
sourceSubclass: 10201
|
|
5305
|
-
}
|
|
5306
|
-
];
|
|
5307
|
-
|
|
5308
|
-
var entities = [
|
|
5309
|
-
{
|
|
5310
|
-
entityItemId: 10200,
|
|
5311
|
-
slots: [
|
|
5312
|
-
]
|
|
6582
|
+
baseHullmass: 100000
|
|
5313
6583
|
},
|
|
5314
6584
|
{
|
|
5315
|
-
entityItemId:
|
|
6585
|
+
entityItemId: 10210,
|
|
5316
6586
|
slots: [
|
|
5317
6587
|
{
|
|
5318
|
-
type: "
|
|
6588
|
+
type: "generator",
|
|
5319
6589
|
outputPct: 80,
|
|
5320
6590
|
maxTier: 1
|
|
5321
6591
|
},
|
|
5322
6592
|
{
|
|
5323
|
-
type: "
|
|
6593
|
+
type: "engine",
|
|
5324
6594
|
outputPct: 80,
|
|
5325
6595
|
maxTier: 1
|
|
5326
6596
|
},
|
|
5327
6597
|
{
|
|
5328
6598
|
type: "any",
|
|
5329
|
-
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,
|
|
5330
6611
|
maxTier: 1
|
|
5331
6612
|
},
|
|
5332
6613
|
{
|
|
5333
|
-
type: "
|
|
5334
|
-
outputPct:
|
|
6614
|
+
type: "engine",
|
|
6615
|
+
outputPct: 85,
|
|
5335
6616
|
maxTier: 1
|
|
5336
6617
|
},
|
|
5337
6618
|
{
|
|
5338
|
-
type: "
|
|
5339
|
-
outputPct:
|
|
6619
|
+
type: "gatherer",
|
|
6620
|
+
outputPct: 100,
|
|
5340
6621
|
maxTier: 1
|
|
5341
6622
|
}
|
|
5342
|
-
]
|
|
6623
|
+
],
|
|
6624
|
+
baseHullmass: 3600000
|
|
5343
6625
|
},
|
|
5344
6626
|
{
|
|
5345
|
-
entityItemId:
|
|
6627
|
+
entityItemId: 10212,
|
|
5346
6628
|
slots: [
|
|
5347
6629
|
{
|
|
5348
|
-
type: "
|
|
5349
|
-
outputPct:
|
|
6630
|
+
type: "generator",
|
|
6631
|
+
outputPct: 85,
|
|
5350
6632
|
maxTier: 1
|
|
5351
6633
|
},
|
|
5352
6634
|
{
|
|
5353
|
-
type: "
|
|
5354
|
-
outputPct:
|
|
6635
|
+
type: "engine",
|
|
6636
|
+
outputPct: 85,
|
|
5355
6637
|
maxTier: 1
|
|
5356
6638
|
},
|
|
5357
6639
|
{
|
|
5358
|
-
type: "
|
|
6640
|
+
type: "loader",
|
|
5359
6641
|
outputPct: 100,
|
|
5360
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
|
|
5361
6654
|
},
|
|
5362
6655
|
{
|
|
5363
|
-
type: "
|
|
5364
|
-
outputPct:
|
|
6656
|
+
type: "engine",
|
|
6657
|
+
outputPct: 85,
|
|
5365
6658
|
maxTier: 1
|
|
5366
6659
|
},
|
|
5367
6660
|
{
|
|
5368
|
-
type: "
|
|
6661
|
+
type: "builder",
|
|
5369
6662
|
outputPct: 100,
|
|
5370
6663
|
maxTier: 1
|
|
5371
6664
|
}
|
|
5372
|
-
]
|
|
6665
|
+
],
|
|
6666
|
+
baseHullmass: 4400000
|
|
5373
6667
|
},
|
|
5374
6668
|
{
|
|
5375
|
-
entityItemId:
|
|
6669
|
+
entityItemId: 10214,
|
|
5376
6670
|
slots: [
|
|
5377
6671
|
{
|
|
5378
6672
|
type: "generator",
|
|
5379
|
-
outputPct:
|
|
6673
|
+
outputPct: 85,
|
|
5380
6674
|
maxTier: 1
|
|
5381
6675
|
},
|
|
5382
6676
|
{
|
|
5383
|
-
type: "
|
|
5384
|
-
outputPct:
|
|
6677
|
+
type: "engine",
|
|
6678
|
+
outputPct: 85,
|
|
6679
|
+
maxTier: 1
|
|
6680
|
+
},
|
|
6681
|
+
{
|
|
6682
|
+
type: "hauler",
|
|
6683
|
+
outputPct: 100,
|
|
5385
6684
|
maxTier: 1
|
|
5386
6685
|
}
|
|
5387
|
-
]
|
|
6686
|
+
],
|
|
6687
|
+
baseHullmass: 4400000
|
|
5388
6688
|
},
|
|
5389
6689
|
{
|
|
5390
|
-
entityItemId:
|
|
6690
|
+
entityItemId: 10215,
|
|
5391
6691
|
slots: [
|
|
5392
6692
|
{
|
|
5393
6693
|
type: "generator",
|
|
5394
|
-
outputPct:
|
|
6694
|
+
outputPct: 85,
|
|
5395
6695
|
maxTier: 1
|
|
5396
6696
|
},
|
|
5397
6697
|
{
|
|
5398
|
-
type: "
|
|
5399
|
-
outputPct:
|
|
6698
|
+
type: "engine",
|
|
6699
|
+
outputPct: 85,
|
|
6700
|
+
maxTier: 1
|
|
6701
|
+
},
|
|
6702
|
+
{
|
|
6703
|
+
type: "storage",
|
|
6704
|
+
outputPct: 100,
|
|
5400
6705
|
maxTier: 1
|
|
5401
6706
|
}
|
|
5402
|
-
]
|
|
6707
|
+
],
|
|
6708
|
+
baseHullmass: 5000000
|
|
5403
6709
|
},
|
|
5404
6710
|
{
|
|
5405
|
-
entityItemId:
|
|
6711
|
+
entityItemId: 10216,
|
|
5406
6712
|
slots: [
|
|
5407
6713
|
{
|
|
5408
6714
|
type: "generator",
|
|
5409
|
-
outputPct:
|
|
6715
|
+
outputPct: 90,
|
|
5410
6716
|
maxTier: 1
|
|
5411
6717
|
},
|
|
5412
6718
|
{
|
|
5413
|
-
type: "
|
|
5414
|
-
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,
|
|
5415
6731
|
maxTier: 1
|
|
5416
6732
|
}
|
|
5417
|
-
]
|
|
6733
|
+
],
|
|
6734
|
+
baseHullmass: 4000000
|
|
5418
6735
|
},
|
|
5419
6736
|
{
|
|
5420
|
-
entityItemId:
|
|
6737
|
+
entityItemId: 10217,
|
|
5421
6738
|
slots: [
|
|
5422
6739
|
{
|
|
5423
|
-
type: "
|
|
5424
|
-
outputPct:
|
|
6740
|
+
type: "generator",
|
|
6741
|
+
outputPct: 90,
|
|
5425
6742
|
maxTier: 1
|
|
5426
6743
|
},
|
|
5427
6744
|
{
|
|
5428
|
-
type: "
|
|
6745
|
+
type: "engine",
|
|
6746
|
+
outputPct: 90,
|
|
6747
|
+
maxTier: 1
|
|
6748
|
+
},
|
|
6749
|
+
{
|
|
6750
|
+
type: "gatherer",
|
|
5429
6751
|
outputPct: 100,
|
|
5430
6752
|
maxTier: 1
|
|
5431
6753
|
},
|
|
@@ -5434,23 +6756,20 @@ var entities = [
|
|
|
5434
6756
|
outputPct: 100,
|
|
5435
6757
|
maxTier: 1
|
|
5436
6758
|
}
|
|
5437
|
-
]
|
|
5438
|
-
|
|
5439
|
-
{
|
|
5440
|
-
entityItemId: 10207,
|
|
5441
|
-
slots: [
|
|
5442
|
-
]
|
|
6759
|
+
],
|
|
6760
|
+
baseHullmass: 4800000
|
|
5443
6761
|
},
|
|
5444
6762
|
{
|
|
5445
6763
|
entityItemId: 20200,
|
|
5446
6764
|
slots: [
|
|
5447
|
-
]
|
|
6765
|
+
],
|
|
6766
|
+
baseHullmass: 100000
|
|
5448
6767
|
},
|
|
5449
6768
|
{
|
|
5450
6769
|
entityItemId: 20210,
|
|
5451
6770
|
slots: [
|
|
5452
6771
|
{
|
|
5453
|
-
type: "
|
|
6772
|
+
type: "generator",
|
|
5454
6773
|
outputPct: 100,
|
|
5455
6774
|
maxTier: 2
|
|
5456
6775
|
},
|
|
@@ -5460,7 +6779,7 @@ var entities = [
|
|
|
5460
6779
|
maxTier: 2
|
|
5461
6780
|
},
|
|
5462
6781
|
{
|
|
5463
|
-
type: "
|
|
6782
|
+
type: "engine",
|
|
5464
6783
|
outputPct: 100,
|
|
5465
6784
|
maxTier: 2
|
|
5466
6785
|
},
|
|
@@ -5468,24 +6787,20 @@ var entities = [
|
|
|
5468
6787
|
type: "gatherer",
|
|
5469
6788
|
outputPct: 100,
|
|
5470
6789
|
maxTier: 2
|
|
5471
|
-
},
|
|
5472
|
-
{
|
|
5473
|
-
type: "any",
|
|
5474
|
-
outputPct: 80,
|
|
5475
|
-
maxTier: 1
|
|
5476
6790
|
}
|
|
5477
|
-
]
|
|
6791
|
+
],
|
|
6792
|
+
baseHullmass: 5760000
|
|
5478
6793
|
},
|
|
5479
6794
|
{
|
|
5480
6795
|
entityItemId: 20211,
|
|
5481
6796
|
slots: [
|
|
5482
6797
|
{
|
|
5483
|
-
type: "
|
|
6798
|
+
type: "generator",
|
|
5484
6799
|
outputPct: 100,
|
|
5485
6800
|
maxTier: 2
|
|
5486
6801
|
},
|
|
5487
6802
|
{
|
|
5488
|
-
type: "
|
|
6803
|
+
type: "engine",
|
|
5489
6804
|
outputPct: 100,
|
|
5490
6805
|
maxTier: 2
|
|
5491
6806
|
},
|
|
@@ -5499,7 +6814,8 @@ var entities = [
|
|
|
5499
6814
|
outputPct: 100,
|
|
5500
6815
|
maxTier: 2
|
|
5501
6816
|
}
|
|
5502
|
-
]
|
|
6817
|
+
],
|
|
6818
|
+
baseHullmass: 7040000
|
|
5503
6819
|
}
|
|
5504
6820
|
];
|
|
5505
6821
|
|
|
@@ -6024,6 +7340,13 @@ var items = [
|
|
|
6024
7340
|
tier: 1,
|
|
6025
7341
|
subtype: "launcher"
|
|
6026
7342
|
},
|
|
7343
|
+
{
|
|
7344
|
+
id: 10110,
|
|
7345
|
+
mass: 960000,
|
|
7346
|
+
type: "module",
|
|
7347
|
+
tier: 1,
|
|
7348
|
+
subtype: "builder"
|
|
7349
|
+
},
|
|
6027
7350
|
{
|
|
6028
7351
|
id: 10200,
|
|
6029
7352
|
mass: 1900000,
|
|
@@ -6072,6 +7395,60 @@ var items = [
|
|
|
6072
7395
|
type: "entity",
|
|
6073
7396
|
tier: 1
|
|
6074
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
|
+
},
|
|
6075
7452
|
{
|
|
6076
7453
|
id: 20001,
|
|
6077
7454
|
mass: 4800,
|
|
@@ -6335,7 +7712,7 @@ const itemMetadata = {
|
|
|
6335
7712
|
},
|
|
6336
7713
|
10106: {
|
|
6337
7714
|
name: 'Tractor Beam',
|
|
6338
|
-
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.',
|
|
6339
7716
|
color: '#4ADBFF',
|
|
6340
7717
|
},
|
|
6341
7718
|
10107: {
|
|
@@ -6353,13 +7730,18 @@ const itemMetadata = {
|
|
|
6353
7730
|
description: 'Accelerates and launches cargo payloads toward a remote mass catcher.',
|
|
6354
7731
|
color: '#E86344',
|
|
6355
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
|
+
},
|
|
6356
7738
|
10200: {
|
|
6357
7739
|
name: 'Container',
|
|
6358
7740
|
description: 'Passive floating cargo storage in space. Towed by ships.',
|
|
6359
7741
|
color: '#7B8D9E',
|
|
6360
7742
|
},
|
|
6361
7743
|
10201: {
|
|
6362
|
-
name: '
|
|
7744
|
+
name: 'Ship',
|
|
6363
7745
|
description: 'General-purpose vessel with 5 module slots.',
|
|
6364
7746
|
color: '#4AE898',
|
|
6365
7747
|
},
|
|
@@ -6383,15 +7765,60 @@ const itemMetadata = {
|
|
|
6383
7765
|
description: 'Planetary launch platform with power core and drive coil module slots.',
|
|
6384
7766
|
color: '#E86344',
|
|
6385
7767
|
},
|
|
6386
|
-
10206: {
|
|
6387
|
-
name: 'Mass Catcher',
|
|
6388
|
-
description: 'Planetary receiving platform with storage module slots; catches launched payloads.',
|
|
7768
|
+
10206: {
|
|
7769
|
+
name: 'Mass Catcher',
|
|
7770
|
+
description: 'Planetary receiving platform with storage module slots; catches launched payloads.',
|
|
7771
|
+
color: '#4AE898',
|
|
7772
|
+
},
|
|
7773
|
+
10207: {
|
|
7774
|
+
name: 'Station Hub',
|
|
7775
|
+
description: 'Orbital command structure. Anchors a player station cluster.',
|
|
7776
|
+
color: '#A0B8D0',
|
|
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.',
|
|
6389
7811
|
color: '#4AE898',
|
|
6390
7812
|
},
|
|
6391
|
-
|
|
6392
|
-
name: '
|
|
6393
|
-
description: '
|
|
6394
|
-
color: '#
|
|
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',
|
|
6395
7822
|
},
|
|
6396
7823
|
20001: {
|
|
6397
7824
|
name: 'Plate',
|
|
@@ -6464,13 +7891,21 @@ const itemMetadata = {
|
|
|
6464
7891
|
color: '#4AE898',
|
|
6465
7892
|
},
|
|
6466
7893
|
20211: {
|
|
6467
|
-
name: '
|
|
7894
|
+
name: 'Tug',
|
|
6468
7895
|
description: 'Advanced towing vessel with tiered engine, generator, and tractor beam slots.',
|
|
6469
7896
|
color: '#4AE898',
|
|
6470
7897
|
},
|
|
6471
7898
|
};
|
|
6472
7899
|
const entityMetadata = {
|
|
6473
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'] },
|
|
6474
7909
|
10202: {
|
|
6475
7910
|
moduleSlotLabels: ['Shuttle Bay', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold', 'Cargo Hold'],
|
|
6476
7911
|
},
|
|
@@ -6478,8 +7913,11 @@ const entityMetadata = {
|
|
|
6478
7913
|
10204: { moduleSlotLabels: ['Power Core', 'Fabricator'] },
|
|
6479
7914
|
10205: { moduleSlotLabels: ['Power Core', 'Drive Coil'] },
|
|
6480
7915
|
10206: { moduleSlotLabels: ['Cargo Hold', 'Cargo Hold', 'Cargo Hold'] },
|
|
6481
|
-
|
|
6482
|
-
|
|
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'] },
|
|
6483
7921
|
};
|
|
6484
7922
|
for (const item of items) {
|
|
6485
7923
|
if (!itemMetadata[item.id]) {
|
|
@@ -9370,14 +10808,61 @@ var kinds = [
|
|
|
9370
10808
|
capabilityFlags: 4,
|
|
9371
10809
|
zCoord: 0,
|
|
9372
10810
|
defaultLabel: "Station Hub"
|
|
10811
|
+
},
|
|
10812
|
+
{
|
|
10813
|
+
kind: "workshop",
|
|
10814
|
+
classification: "OrbitalStructure",
|
|
10815
|
+
capabilityFlags: 20,
|
|
10816
|
+
zCoord: 0,
|
|
10817
|
+
defaultLabel: "Workshop"
|
|
9373
10818
|
}
|
|
9374
10819
|
];
|
|
9375
10820
|
var templates = [
|
|
9376
10821
|
{
|
|
9377
10822
|
itemId: 10201,
|
|
9378
10823
|
kind: "ship",
|
|
10824
|
+
displayLabel: "Ship"
|
|
10825
|
+
},
|
|
10826
|
+
{
|
|
10827
|
+
itemId: 10210,
|
|
10828
|
+
kind: "ship",
|
|
9379
10829
|
displayLabel: "Roustabout"
|
|
9380
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
|
+
},
|
|
10856
|
+
{
|
|
10857
|
+
itemId: 10216,
|
|
10858
|
+
kind: "ship",
|
|
10859
|
+
displayLabel: "Wrangler"
|
|
10860
|
+
},
|
|
10861
|
+
{
|
|
10862
|
+
itemId: 10217,
|
|
10863
|
+
kind: "ship",
|
|
10864
|
+
displayLabel: "Dredger"
|
|
10865
|
+
},
|
|
9381
10866
|
{
|
|
9382
10867
|
itemId: 10202,
|
|
9383
10868
|
kind: "warehouse",
|
|
@@ -9418,6 +10903,11 @@ var templates = [
|
|
|
9418
10903
|
kind: "hub",
|
|
9419
10904
|
displayLabel: ""
|
|
9420
10905
|
},
|
|
10906
|
+
{
|
|
10907
|
+
itemId: 10208,
|
|
10908
|
+
kind: "workshop",
|
|
10909
|
+
displayLabel: ""
|
|
10910
|
+
},
|
|
9421
10911
|
{
|
|
9422
10912
|
itemId: 20210,
|
|
9423
10913
|
kind: "ship",
|
|
@@ -9426,7 +10916,7 @@ var templates = [
|
|
|
9426
10916
|
{
|
|
9427
10917
|
itemId: 20211,
|
|
9428
10918
|
kind: "ship",
|
|
9429
|
-
displayLabel: "
|
|
10919
|
+
displayLabel: "Tug"
|
|
9430
10920
|
}
|
|
9431
10921
|
];
|
|
9432
10922
|
var kindRegistryJson = {
|
|
@@ -9510,6 +11000,7 @@ const ENTITY_SHIP = antelope.Name.from('ship');
|
|
|
9510
11000
|
const ENTITY_WAREHOUSE = antelope.Name.from('warehouse');
|
|
9511
11001
|
const ENTITY_EXTRACTOR = antelope.Name.from('extractor');
|
|
9512
11002
|
const ENTITY_FACTORY = antelope.Name.from('factory');
|
|
11003
|
+
const ENTITY_WORKSHOP = antelope.Name.from('workshop');
|
|
9513
11004
|
const ENTITY_CONTAINER = antelope.Name.from('container');
|
|
9514
11005
|
const ENTITY_NEXUS = antelope.Name.from('nexus');
|
|
9515
11006
|
const ENTITY_PLOT = antelope.Name.from('plot');
|
|
@@ -9528,6 +11019,9 @@ function isExtractor(entity) {
|
|
|
9528
11019
|
function isFactory(entity) {
|
|
9529
11020
|
return entity.type?.equals(ENTITY_FACTORY) ?? false;
|
|
9530
11021
|
}
|
|
11022
|
+
function isWorkshop(entity) {
|
|
11023
|
+
return entity.type?.equals(ENTITY_WORKSHOP) ?? false;
|
|
11024
|
+
}
|
|
9531
11025
|
function isContainer(entity) {
|
|
9532
11026
|
return entity.type?.equals(ENTITY_CONTAINER) ?? false;
|
|
9533
11027
|
}
|
|
@@ -10009,7 +11503,7 @@ function distanceBetweenCoordinates(origin, destination) {
|
|
|
10009
11503
|
function distanceBetweenPoints(x1, y1, x2, y2) {
|
|
10010
11504
|
const x = (x1 - x2) ** 2;
|
|
10011
11505
|
const y = (y1 - y2) ** 2;
|
|
10012
|
-
return antelope.UInt64.from(Math.sqrt(x + y) * PRECISION
|
|
11506
|
+
return antelope.UInt64.from(Math.sqrt(x + y) * PRECISION);
|
|
10013
11507
|
}
|
|
10014
11508
|
function lerp$1(origin, destination, time) {
|
|
10015
11509
|
return {
|
|
@@ -10055,9 +11549,9 @@ function getInterpolatedPosition(entity, taskIndex, taskProgress) {
|
|
|
10055
11549
|
function rotation(origin, destination) {
|
|
10056
11550
|
return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
|
|
10057
11551
|
}
|
|
10058
|
-
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION
|
|
11552
|
+
function findNearbyPlanets(seed, origin, maxDistance = 20 * PRECISION) {
|
|
10059
11553
|
const nearbySystems = [];
|
|
10060
|
-
const max = antelope.UInt64.from(maxDistance / PRECISION
|
|
11554
|
+
const max = antelope.UInt64.from(maxDistance / PRECISION);
|
|
10061
11555
|
const xMin = antelope.Int64.from(origin.x).subtracting(max);
|
|
10062
11556
|
const xMax = antelope.Int64.from(origin.x).adding(max);
|
|
10063
11557
|
const yMin = antelope.Int64.from(origin.y).subtracting(max);
|
|
@@ -10089,14 +11583,22 @@ function calc_rechargetime(capacity, energy, recharge) {
|
|
|
10089
11583
|
function calc_ship_rechargetime(ship) {
|
|
10090
11584
|
if (!ship.generator)
|
|
10091
11585
|
return antelope.UInt32.from(0);
|
|
10092
|
-
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);
|
|
10093
11587
|
}
|
|
10094
11588
|
function calc_flighttime(distance, acceleration) {
|
|
10095
11589
|
return antelope.UInt32.from(2 * Math.sqrt(Number(distance) / acceleration));
|
|
10096
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
|
+
}
|
|
10097
11599
|
function calc_transit_duration(ax, ay, bx, by) {
|
|
10098
11600
|
const distance = distanceBetweenPoints(ax, ay, bx, by);
|
|
10099
|
-
return antelope.UInt32.from(Math.floor(distance.toNumber() / (PRECISION
|
|
11601
|
+
return antelope.UInt32.from(Math.floor(distance.toNumber() / (PRECISION * WH.TRANSIT_SPEED)));
|
|
10100
11602
|
}
|
|
10101
11603
|
function shipLoaderLane(ship) {
|
|
10102
11604
|
const lanes = ship.loader_lanes ?? [];
|
|
@@ -10120,14 +11622,14 @@ function calc_loader_acceleration(ship, mass) {
|
|
|
10120
11622
|
}
|
|
10121
11623
|
function calc_ship_flighttime(ship, mass, distance) {
|
|
10122
11624
|
const acceleration = calc_ship_acceleration(ship, mass);
|
|
10123
|
-
return
|
|
11625
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10124
11626
|
}
|
|
10125
11627
|
function calc_ship_acceleration(ship, mass) {
|
|
10126
11628
|
const thrust = ship.engines ? Number(ship.engines.thrust) : 0;
|
|
10127
11629
|
return calc_acceleration(thrust, Number(mass));
|
|
10128
11630
|
}
|
|
10129
11631
|
function calc_acceleration(thrust, mass) {
|
|
10130
|
-
return (thrust / mass) * PRECISION
|
|
11632
|
+
return (thrust / mass) * PRECISION;
|
|
10131
11633
|
}
|
|
10132
11634
|
function calc_ship_mass(ship, cargos) {
|
|
10133
11635
|
const mass = antelope.UInt64.from(0);
|
|
@@ -10153,10 +11655,10 @@ function calc_group_flighttime(totalThrust, haulCount, pooledHaulCap, weightedHa
|
|
|
10153
11655
|
effectiveThrust = Math.trunc((totalThrust * 1000) / penaltyMilli);
|
|
10154
11656
|
}
|
|
10155
11657
|
const acceleration = calc_acceleration(effectiveThrust, totalMass);
|
|
10156
|
-
return
|
|
11658
|
+
return calc_travel_flighttime(distance, acceleration);
|
|
10157
11659
|
}
|
|
10158
11660
|
function calc_energyusage(distance, drain) {
|
|
10159
|
-
return antelope.UInt64.from(distance).
|
|
11661
|
+
return antelope.UInt64.from(distance).multiplying(drain).dividing(PRECISION);
|
|
10160
11662
|
}
|
|
10161
11663
|
function calculateTransferTime(ship, cargos, quantities) {
|
|
10162
11664
|
let mass = antelope.UInt64.from(0);
|
|
@@ -10256,7 +11758,7 @@ function estimateDealTravelTime(ship, shipMass, distance, loadMass) {
|
|
|
10256
11758
|
function hasEnergyForDistance(ship, distance) {
|
|
10257
11759
|
if (!ship.engines)
|
|
10258
11760
|
return false;
|
|
10259
|
-
const energyNeeded = antelope.UInt64.from(distance).dividing(PRECISION
|
|
11761
|
+
const energyNeeded = antelope.UInt64.from(distance).dividing(PRECISION).multiplying(ship.engines.drain);
|
|
10260
11762
|
return antelope.UInt64.from(ship.energy ?? 0).gte(energyNeeded);
|
|
10261
11763
|
}
|
|
10262
11764
|
function toNum$1(v) {
|
|
@@ -10963,6 +12465,8 @@ function getItemStatKeys(itemId) {
|
|
|
10963
12465
|
return [];
|
|
10964
12466
|
return getStatDefinitions(item.category).map((d) => d.key);
|
|
10965
12467
|
}
|
|
12468
|
+
if (itemId === ITEM_SHIP_T1_PACKED)
|
|
12469
|
+
return ['strength', 'density', '', ''];
|
|
10966
12470
|
const recipe = getRecipe(itemId);
|
|
10967
12471
|
if (!recipe)
|
|
10968
12472
|
return [];
|
|
@@ -11773,6 +13277,7 @@ const MODULE_LAUNCHER = 7;
|
|
|
11773
13277
|
const MODULE_STORAGE = 8;
|
|
11774
13278
|
const MODULE_HAULER = 9;
|
|
11775
13279
|
const MODULE_BATTERY = 10;
|
|
13280
|
+
const MODULE_BUILDER = 12;
|
|
11776
13281
|
function moduleAccepts(slotType, moduleType) {
|
|
11777
13282
|
return slotType === MODULE_ANY || slotType === moduleType;
|
|
11778
13283
|
}
|
|
@@ -11789,6 +13294,8 @@ function getModuleCapabilityType(itemId) {
|
|
|
11789
13294
|
return MODULE_LOADER;
|
|
11790
13295
|
case ITEM_CRAFTER_T1:
|
|
11791
13296
|
return MODULE_CRAFTER;
|
|
13297
|
+
case ITEM_BUILDER_T1:
|
|
13298
|
+
return MODULE_BUILDER;
|
|
11792
13299
|
case ITEM_STORAGE_T1:
|
|
11793
13300
|
return MODULE_STORAGE;
|
|
11794
13301
|
case ITEM_HAULER_T1:
|
|
@@ -11823,6 +13330,8 @@ function moduleSlotTypeToCode(slotType) {
|
|
|
11823
13330
|
return MODULE_WARP;
|
|
11824
13331
|
case 'crafter':
|
|
11825
13332
|
return MODULE_CRAFTER;
|
|
13333
|
+
case 'builder':
|
|
13334
|
+
return MODULE_BUILDER;
|
|
11826
13335
|
case 'launcher':
|
|
11827
13336
|
return MODULE_LAUNCHER;
|
|
11828
13337
|
case 'storage':
|
|
@@ -13466,7 +14975,7 @@ const UINT32_MAX = 4294967295;
|
|
|
13466
14975
|
const UINT32_MAX_BIGINT = 4294967295n;
|
|
13467
14976
|
const UINT32_MOD = 4294967296n;
|
|
13468
14977
|
const UINT64_MAX = 18446744073709551615n;
|
|
13469
|
-
const PRECISION_BIGINT = BigInt(PRECISION
|
|
14978
|
+
const PRECISION_BIGINT = BigInt(PRECISION);
|
|
13470
14979
|
function toNumber(value) {
|
|
13471
14980
|
if (typeof value === 'number')
|
|
13472
14981
|
return Math.trunc(value);
|
|
@@ -13515,7 +15024,7 @@ function calcDistance(origin, destination) {
|
|
|
13515
15024
|
const b = Coordinates.from(destination);
|
|
13516
15025
|
const dx = toNumber(a.x) - toNumber(b.x);
|
|
13517
15026
|
const dy = toNumber(a.y) - toNumber(b.y);
|
|
13518
|
-
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
15027
|
+
return BigInt(Math.trunc(Math.sqrt(dx * dx + dy * dy) * PRECISION));
|
|
13519
15028
|
}
|
|
13520
15029
|
function calcCargoItemMassUint32(item) {
|
|
13521
15030
|
let mass = toUint32(BigInt(getItem(item.item_id).mass) * toUint32(toBigInt(item.quantity)));
|
|
@@ -13585,10 +15094,10 @@ class ActionsManager extends BaseManager {
|
|
|
13585
15094
|
recharge,
|
|
13586
15095
|
});
|
|
13587
15096
|
}
|
|
13588
|
-
|
|
15097
|
+
travelplan(entities, waypoints, recharge = true) {
|
|
13589
15098
|
const entityRefs = this.entityRefs(entities);
|
|
13590
15099
|
const wps = waypoints.map((w) => exports.ServerTypes.route_waypoint.from({ x: antelope.Int64.from(w.x), y: antelope.Int64.from(w.y) }));
|
|
13591
|
-
return this.server.action('
|
|
15100
|
+
return this.server.action('travelplan', {
|
|
13592
15101
|
entities: entityRefs,
|
|
13593
15102
|
waypoints: wps,
|
|
13594
15103
|
recharge,
|
|
@@ -13675,6 +15184,14 @@ class ActionsManager extends BaseManager {
|
|
|
13675
15184
|
items,
|
|
13676
15185
|
});
|
|
13677
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
|
+
}
|
|
13678
15195
|
launch(launcherId, catcherId, items) {
|
|
13679
15196
|
return this.server.action('launch', {
|
|
13680
15197
|
launcher_id: antelope.UInt64.from(launcherId),
|
|
@@ -13723,26 +15240,16 @@ class ActionsManager extends BaseManager {
|
|
|
13723
15240
|
}
|
|
13724
15241
|
return this.server.action('gather', params);
|
|
13725
15242
|
}
|
|
13726
|
-
|
|
13727
|
-
|
|
13728
|
-
|
|
13729
|
-
|
|
13730
|
-
|
|
13731
|
-
|
|
13732
|
-
|
|
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),
|
|
13733
15251
|
});
|
|
13734
15252
|
}
|
|
13735
|
-
flattenGatherPlan(plan, ctx) {
|
|
13736
|
-
const actions = [];
|
|
13737
|
-
for (const cycle of plan.cycles) {
|
|
13738
|
-
if (cycle.rechargeBefore)
|
|
13739
|
-
actions.push(this.recharge(ctx.sourceId));
|
|
13740
|
-
for (const limpet of cycle.limpets) {
|
|
13741
|
-
actions.push(this.gather(ctx.sourceId, ctx.destinationId, ctx.stratum, limpet.quantity, limpet.slot));
|
|
13742
|
-
}
|
|
13743
|
-
}
|
|
13744
|
-
return actions;
|
|
13745
|
-
}
|
|
13746
15253
|
warp(entityId, destination) {
|
|
13747
15254
|
const x = antelope.Int64.from(destination.x);
|
|
13748
15255
|
const y = antelope.Int64.from(destination.y);
|
|
@@ -13767,6 +15274,39 @@ class ActionsManager extends BaseManager {
|
|
|
13767
15274
|
}
|
|
13768
15275
|
return this.server.action('craft', params);
|
|
13769
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
|
+
}
|
|
13770
15310
|
blend(entityId, inputs) {
|
|
13771
15311
|
return this.server.action('blend', {
|
|
13772
15312
|
id: antelope.UInt64.from(entityId),
|
|
@@ -14681,6 +16221,15 @@ class Shipload {
|
|
|
14681
16221
|
}
|
|
14682
16222
|
}
|
|
14683
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
|
+
|
|
14684
16233
|
const U16_MAX = 65535;
|
|
14685
16234
|
function packedModulesToInstalled(entries) {
|
|
14686
16235
|
const installed = [];
|
|
@@ -14712,13 +16261,27 @@ function getSlotAmp(layout, slotIndex) {
|
|
|
14712
16261
|
function idiv(a, b) {
|
|
14713
16262
|
return Math.floor(a / b);
|
|
14714
16263
|
}
|
|
14715
|
-
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
|
+
}
|
|
14716
16280
|
const density = decodeStat(stats, 1);
|
|
14717
|
-
return
|
|
16281
|
+
return Math.floor((getBaseHullmassFor(itemId) * (2000 - density)) / 2000);
|
|
14718
16282
|
}
|
|
14719
16283
|
function computeBaseCapacityShip(stats) {
|
|
14720
|
-
|
|
14721
|
-
return Math.floor(5000000 * 6 ** (s / 1998));
|
|
16284
|
+
return Math.floor(5000000 * 6 ** (sumPackedShipChannels(stats) / 4995));
|
|
14722
16285
|
}
|
|
14723
16286
|
function computeBaseCapacityContainer(stats) {
|
|
14724
16287
|
const s = decodeStat(stats, 0) + decodeStat(stats, 2);
|
|
@@ -14730,35 +16293,57 @@ function computeBaseCapacityWarehouse(stats) {
|
|
|
14730
16293
|
}
|
|
14731
16294
|
const computeEngineThrust = (vol) => 400 + idiv(vol * 3, 4);
|
|
14732
16295
|
const computeEngineDrain = (thm) => 2 * Math.max(30, 50 - idiv(thm, 70));
|
|
14733
|
-
const ENGINE_DRAIN_BASE =
|
|
16296
|
+
const ENGINE_DRAIN_BASE = 156;
|
|
14734
16297
|
const ENGINE_DRAIN_REF_THRUST = 775;
|
|
14735
16298
|
const ENGINE_DRAIN_REF_THM = 500;
|
|
14736
16299
|
const computeTravelDrain = (totalThrust, avgThm) => {
|
|
14737
16300
|
if (totalThrust <= 0)
|
|
14738
16301
|
return 0;
|
|
14739
|
-
const
|
|
14740
|
-
const
|
|
14741
|
-
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);
|
|
14742
16305
|
};
|
|
14743
|
-
const computeGeneratorCap = (com) =>
|
|
14744
|
-
const computeGeneratorRech = (fin) =>
|
|
16306
|
+
const computeGeneratorCap = (com) => 1300000 + com * 500;
|
|
16307
|
+
const computeGeneratorRech = (fin) => 2000 + fin * 6;
|
|
14745
16308
|
const computeGathererYield = (str) => 200 + str;
|
|
14746
|
-
const computeGathererDrain = (con) => 2 * Math.max(
|
|
16309
|
+
const computeGathererDrain = (con) => 2 * Math.max(250000, 1250000 - con * 1250);
|
|
14747
16310
|
const computeGathererDepth = (tol, tier) => gathererDepthForTier(tol, tier);
|
|
14748
16311
|
const computeLoaderMass = (ins) => Math.max(200, 2000 - ins * 2);
|
|
14749
16312
|
const computeLoaderThrust = (pla) => 1 + idiv(pla * pla, 10000);
|
|
14750
16313
|
const computeCrafterSpeed = (rea) => 100 + idiv(rea * 4, 5);
|
|
14751
|
-
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));
|
|
14752
16317
|
const computeHaulerCapacity = (fin, tier) => Math.max(tier, tier + idiv(fin, 400));
|
|
14753
16318
|
const computeHaulerEfficiency = (con) => 2000 + con * 6;
|
|
14754
|
-
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);
|
|
14755
16326
|
const computeWarpRange = (stat) => 100 + stat * 3;
|
|
14756
|
-
const computeCargoBayCapacity = (strength, density, hardness
|
|
14757
|
-
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);
|
|
14758
16329
|
function entityDisplayName(itemId) {
|
|
14759
16330
|
switch (itemId) {
|
|
14760
16331
|
case ITEM_SHIP_T1_PACKED:
|
|
16332
|
+
return 'Ship';
|
|
16333
|
+
case ITEM_ROUSTABOUT_T1_PACKED:
|
|
14761
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';
|
|
14762
16347
|
case ITEM_WAREHOUSE_T1_PACKED:
|
|
14763
16348
|
return 'Warehouse';
|
|
14764
16349
|
case ITEM_EXTRACTOR_T1_PACKED:
|
|
@@ -14772,7 +16357,7 @@ function entityDisplayName(itemId) {
|
|
|
14772
16357
|
case ITEM_PROSPECTOR_T2_PACKED:
|
|
14773
16358
|
return 'Prospector';
|
|
14774
16359
|
case ITEM_HAULER_SHIP_T2_PACKED:
|
|
14775
|
-
return '
|
|
16360
|
+
return 'Tug';
|
|
14776
16361
|
default:
|
|
14777
16362
|
return 'Entity';
|
|
14778
16363
|
}
|
|
@@ -14790,6 +16375,8 @@ function moduleDisplayName(itemId) {
|
|
|
14790
16375
|
return 'Shuttle Bay';
|
|
14791
16376
|
case ITEM_CRAFTER_T1:
|
|
14792
16377
|
return 'Fabricator';
|
|
16378
|
+
case ITEM_BUILDER_T1:
|
|
16379
|
+
return 'Assembly Arm';
|
|
14793
16380
|
case ITEM_STORAGE_T1:
|
|
14794
16381
|
return 'Cargo Hold';
|
|
14795
16382
|
case ITEM_HAULER_T1:
|
|
@@ -14815,15 +16402,15 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14815
16402
|
const subtype = getModuleCapabilityType(itemId);
|
|
14816
16403
|
switch (subtype) {
|
|
14817
16404
|
case MODULE_ENGINE: {
|
|
14818
|
-
const vol = decodeStat(stats, 0);
|
|
14819
|
-
const thm = decodeStat(stats, 1);
|
|
16405
|
+
const vol = computeEffectiveModuleStat(decodeStat(stats, 0));
|
|
16406
|
+
const thm = computeEffectiveModuleStat(decodeStat(stats, 1));
|
|
14820
16407
|
out += ` Thrust ${computeEngineThrust(vol)} Drain ${computeEngineDrain(thm)}`;
|
|
14821
16408
|
break;
|
|
14822
16409
|
}
|
|
14823
16410
|
case MODULE_GENERATOR: {
|
|
14824
|
-
const res = decodeStat(stats, 0);
|
|
14825
|
-
const ref = decodeStat(stats, 1);
|
|
14826
|
-
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))}`;
|
|
14827
16414
|
break;
|
|
14828
16415
|
}
|
|
14829
16416
|
case MODULE_GATHERER: {
|
|
@@ -14831,7 +16418,7 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14831
16418
|
const tol = decodeStat(stats, 1);
|
|
14832
16419
|
const con = decodeStat(stats, 2);
|
|
14833
16420
|
const tier = getItem(itemId).tier;
|
|
14834
|
-
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))}`;
|
|
14835
16422
|
break;
|
|
14836
16423
|
}
|
|
14837
16424
|
case MODULE_LOADER: {
|
|
@@ -14843,23 +16430,30 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14843
16430
|
case MODULE_CRAFTER: {
|
|
14844
16431
|
const rea = decodeStat(stats, 0);
|
|
14845
16432
|
const con = decodeStat(stats, 1);
|
|
14846
|
-
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))}`;
|
|
14847
16440
|
break;
|
|
14848
16441
|
}
|
|
14849
16442
|
case MODULE_STORAGE: {
|
|
14850
16443
|
const str = decodeStat(stats, 0);
|
|
14851
16444
|
const den = decodeStat(stats, 1);
|
|
14852
16445
|
const hrd = decodeStat(stats, 2);
|
|
14853
|
-
const
|
|
14854
|
-
|
|
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))}`;
|
|
14855
16449
|
break;
|
|
14856
16450
|
}
|
|
14857
16451
|
case MODULE_HAULER: {
|
|
14858
16452
|
const res = decodeStat(stats, 0);
|
|
14859
16453
|
const pla = decodeStat(stats, 1);
|
|
14860
|
-
const
|
|
16454
|
+
const con = decodeStat(stats, 2);
|
|
14861
16455
|
const tier = getItem(itemId).tier;
|
|
14862
|
-
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${
|
|
16456
|
+
out += ` Capacity ${computeHaulerCapacity(res, tier)} Efficiency ${computeHaulerEfficiency(pla)} Drain ${toWholeEnergy$1(computeHaulerDrain(con, tier))}`;
|
|
14863
16457
|
break;
|
|
14864
16458
|
}
|
|
14865
16459
|
case MODULE_WARP: {
|
|
@@ -14872,18 +16466,16 @@ function formatModuleLine(slot, itemId, stats) {
|
|
|
14872
16466
|
const thm = decodeStat(stats, 1);
|
|
14873
16467
|
const pla = decodeStat(stats, 2);
|
|
14874
16468
|
const ins = decodeStat(stats, 3);
|
|
14875
|
-
out += ` Energy Capacity ${computeBatteryBankCapacity(vol, thm, pla, ins)}`;
|
|
16469
|
+
out += ` Energy Capacity ${toWholeEnergy$1(computeBatteryBankCapacity(vol, thm, pla, ins))}`;
|
|
14876
16470
|
break;
|
|
14877
16471
|
}
|
|
14878
16472
|
}
|
|
14879
16473
|
return out;
|
|
14880
16474
|
}
|
|
14881
16475
|
function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
14882
|
-
const hullMass = computeBaseHullmass$1(hullStats);
|
|
16476
|
+
const hullMass = computeBaseHullmass$1(itemId, hullStats);
|
|
14883
16477
|
let baseCapacity = 0;
|
|
14884
|
-
if (itemId
|
|
14885
|
-
itemId === ITEM_PROSPECTOR_T2_PACKED ||
|
|
14886
|
-
itemId === ITEM_HAULER_SHIP_T2_PACKED) {
|
|
16478
|
+
if (isShipHull$1(itemId)) {
|
|
14887
16479
|
baseCapacity = computeBaseCapacityShip(hullStats);
|
|
14888
16480
|
}
|
|
14889
16481
|
else if (itemId === ITEM_WAREHOUSE_T1_PACKED) {
|
|
@@ -14908,31 +16500,45 @@ function buildEntityDescription(itemId, hullStats, moduleItems, moduleStats) {
|
|
|
14908
16500
|
return out;
|
|
14909
16501
|
}
|
|
14910
16502
|
|
|
14911
|
-
|
|
14912
|
-
|
|
16503
|
+
const DEFAULT_BASE_HULLMASS = 100000;
|
|
16504
|
+
function getBaseHullmassFor(itemId) {
|
|
16505
|
+
return getEntityLayout(itemId)?.baseHullmass ?? DEFAULT_BASE_HULLMASS;
|
|
14913
16506
|
}
|
|
14914
|
-
function
|
|
14915
|
-
|
|
14916
|
-
|
|
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;
|
|
14917
16523
|
return {
|
|
14918
|
-
hullmass: computeBaseHullmass(stats),
|
|
16524
|
+
hullmass: computeBaseHullmass(itemId, stats),
|
|
14919
16525
|
capacity: Math.floor(5000000 * 6 ** exponent),
|
|
14920
16526
|
};
|
|
14921
16527
|
}
|
|
14922
16528
|
function computeEngineCapabilities(stats) {
|
|
14923
|
-
const vol = stats.volatility;
|
|
14924
|
-
const thm = stats.thermal;
|
|
16529
|
+
const vol = computeEffectiveModuleStat(stats.volatility);
|
|
16530
|
+
const thm = computeEffectiveModuleStat(stats.thermal);
|
|
14925
16531
|
return {
|
|
14926
16532
|
thrust: 400 + Math.floor((vol * 3) / 4),
|
|
14927
16533
|
drain: 2 * Math.max(30, 50 - Math.floor(thm / 70)),
|
|
14928
16534
|
};
|
|
14929
16535
|
}
|
|
14930
16536
|
function computeGeneratorCapabilities(stats) {
|
|
14931
|
-
const res = stats.resonance;
|
|
14932
|
-
const ref = stats.reflectivity;
|
|
16537
|
+
const res = computeEffectiveModuleStat(stats.resonance);
|
|
16538
|
+
const ref = computeEffectiveModuleStat(stats.reflectivity);
|
|
14933
16539
|
return {
|
|
14934
|
-
capacity:
|
|
14935
|
-
recharge:
|
|
16540
|
+
capacity: 1300000 + res * 500,
|
|
16541
|
+
recharge: 2000 + ref * 6,
|
|
14936
16542
|
};
|
|
14937
16543
|
}
|
|
14938
16544
|
const GATHERER_DEPTH_TABLE = [
|
|
@@ -14958,11 +16564,11 @@ function gathererDepthForTier(tol, tier) {
|
|
|
14958
16564
|
function computeGathererCapabilities(stats, tier) {
|
|
14959
16565
|
const str = stats.strength;
|
|
14960
16566
|
const con = stats.saturation;
|
|
14961
|
-
const
|
|
16567
|
+
const tol = stats.tolerance ?? stats.hardness;
|
|
14962
16568
|
return {
|
|
14963
16569
|
yield: 200 + str,
|
|
14964
|
-
drain: 2 * Math.max(
|
|
14965
|
-
depth: gathererDepthForTier(
|
|
16570
|
+
drain: 2 * Math.max(250000, 1250000 - con * 1250),
|
|
16571
|
+
depth: gathererDepthForTier(tol, tier),
|
|
14966
16572
|
};
|
|
14967
16573
|
}
|
|
14968
16574
|
function computeLoaderCapabilities(stats) {
|
|
@@ -14979,7 +16585,15 @@ function computeCrafterCapabilities(stats) {
|
|
|
14979
16585
|
const con = stats.conductivity;
|
|
14980
16586
|
return {
|
|
14981
16587
|
speed: 100 + Math.floor((fin * 4) / 5),
|
|
14982
|
-
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)),
|
|
14983
16597
|
};
|
|
14984
16598
|
}
|
|
14985
16599
|
function computeHaulerCapabilities(stats, tier) {
|
|
@@ -14989,7 +16603,7 @@ function computeHaulerCapabilities(stats, tier) {
|
|
|
14989
16603
|
return {
|
|
14990
16604
|
capacity: computeHaulerCapacity(resonance, tier),
|
|
14991
16605
|
efficiency: 2000 + plasticity * 6,
|
|
14992
|
-
drain:
|
|
16606
|
+
drain: computeHaulerDrain(conductivity, tier),
|
|
14993
16607
|
};
|
|
14994
16608
|
}
|
|
14995
16609
|
function computeLauncherCapabilities(stats, amp = 100) {
|
|
@@ -14999,13 +16613,11 @@ function computeLauncherCapabilities(stats, amp = 100) {
|
|
|
14999
16613
|
drain: stats.drain,
|
|
15000
16614
|
};
|
|
15001
16615
|
}
|
|
15002
|
-
function computeStorageCapabilities(stats) {
|
|
15003
|
-
|
|
15004
|
-
|
|
15005
|
-
|
|
15006
|
-
|
|
15007
|
-
const statSum = strength + density + hardness + cohesion;
|
|
15008
|
-
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
|
+
};
|
|
15009
16621
|
}
|
|
15010
16622
|
function computeBatteryCapabilities(stats) {
|
|
15011
16623
|
const volatility = stats.volatility ?? 0;
|
|
@@ -15013,7 +16625,7 @@ function computeBatteryCapabilities(stats) {
|
|
|
15013
16625
|
const plasticity = stats.plasticity ?? 0;
|
|
15014
16626
|
const insulation = stats.insulation ?? 0;
|
|
15015
16627
|
const statSum = volatility + thermal + plasticity + insulation;
|
|
15016
|
-
return { capacity:
|
|
16628
|
+
return { capacity: 2500000 + Math.floor((statSum * 7500000) / 3996) };
|
|
15017
16629
|
}
|
|
15018
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];
|
|
15019
16631
|
function capacityTierMultiplier(tier) {
|
|
@@ -15025,25 +16637,25 @@ function applyCapacityTier(baseCapacity, tier) {
|
|
|
15025
16637
|
}
|
|
15026
16638
|
function computeBaseCapacity(itemId, stats) {
|
|
15027
16639
|
let base;
|
|
15028
|
-
|
|
15029
|
-
|
|
15030
|
-
|
|
15031
|
-
|
|
15032
|
-
|
|
15033
|
-
|
|
15034
|
-
|
|
15035
|
-
|
|
15036
|
-
|
|
15037
|
-
|
|
15038
|
-
|
|
15039
|
-
|
|
15040
|
-
|
|
15041
|
-
|
|
15042
|
-
|
|
15043
|
-
|
|
15044
|
-
|
|
15045
|
-
|
|
15046
|
-
|
|
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
|
+
}
|
|
15047
16659
|
}
|
|
15048
16660
|
return applyCapacityTier(base, getItem(itemId).tier);
|
|
15049
16661
|
}
|
|
@@ -15055,7 +16667,7 @@ function computeWarehouseHullCapabilities(stats) {
|
|
|
15055
16667
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15056
16668
|
const exponent = statSum / 1998.0;
|
|
15057
16669
|
return {
|
|
15058
|
-
hullmass: computeBaseHullmass(stats),
|
|
16670
|
+
hullmass: computeBaseHullmass(ITEM_WAREHOUSE_T1_PACKED, stats),
|
|
15059
16671
|
capacity: Math.floor(100000000 * 6 ** exponent),
|
|
15060
16672
|
};
|
|
15061
16673
|
}
|
|
@@ -15076,11 +16688,15 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15076
16688
|
let maxGathDepth = 0;
|
|
15077
16689
|
let hasGatherer = false;
|
|
15078
16690
|
let totalStorageCapacity = 0;
|
|
16691
|
+
let totalCargoHoldDrain = 0;
|
|
15079
16692
|
const baseCapacity = computeBaseCapacity(itemId, stats);
|
|
15080
16693
|
let installedModuleMass = 0;
|
|
15081
16694
|
let totalCrafterSpeed = 0;
|
|
15082
16695
|
let totalCrafterDrain = 0;
|
|
15083
16696
|
let hasCrafter = false;
|
|
16697
|
+
let totalBuilderSpeed = 0;
|
|
16698
|
+
let totalBuilderDrain = 0;
|
|
16699
|
+
let hasBuilder = false;
|
|
15084
16700
|
let totalHaulerCapacity = 0;
|
|
15085
16701
|
let weightedHaulerEffNum = 0n;
|
|
15086
16702
|
let totalHaulerDrain = 0;
|
|
@@ -15095,6 +16711,7 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15095
16711
|
let totalBatteryCapacity = 0;
|
|
15096
16712
|
const gathererLanes = [];
|
|
15097
16713
|
const crafterLanes = [];
|
|
16714
|
+
const builderLanes = [];
|
|
15098
16715
|
const loaderLanes = [];
|
|
15099
16716
|
for (const mod of modules) {
|
|
15100
16717
|
const item = getItem(mod.itemId);
|
|
@@ -15106,19 +16723,23 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15106
16723
|
hasEngine = true;
|
|
15107
16724
|
const caps = computeEngineCapabilities(decodedStats);
|
|
15108
16725
|
totalThrust += applySlotMultiplier(caps.thrust, amp);
|
|
15109
|
-
totalEngineThm += decodedStats.thermal ?? 0;
|
|
16726
|
+
totalEngineThm += computeEffectiveModuleStat(decodedStats.thermal ?? 0);
|
|
15110
16727
|
engineCount += 1;
|
|
15111
16728
|
}
|
|
15112
16729
|
else if (modType === MODULE_GENERATOR) {
|
|
15113
16730
|
hasGenerator = true;
|
|
15114
16731
|
const caps = computeGeneratorCapabilities(decodedStats);
|
|
15115
|
-
totalGenCapacity +=
|
|
15116
|
-
totalGenRecharge +=
|
|
16732
|
+
totalGenCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16733
|
+
totalGenRecharge += applySlotMultiplierUint32(caps.recharge, amp);
|
|
15117
16734
|
}
|
|
15118
16735
|
else if (modType === MODULE_GATHERER) {
|
|
15119
16736
|
hasGatherer = true;
|
|
15120
16737
|
const tier = item.tier;
|
|
15121
|
-
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);
|
|
15122
16743
|
const scaledYield = applySlotMultiplier(caps.yield, amp);
|
|
15123
16744
|
totalGathYield += scaledYield;
|
|
15124
16745
|
totalGathDrain += caps.drain;
|
|
@@ -15146,8 +16767,9 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15146
16767
|
});
|
|
15147
16768
|
}
|
|
15148
16769
|
else if (modType === MODULE_STORAGE) {
|
|
15149
|
-
const caps = computeStorageCapabilities(decodedStats);
|
|
16770
|
+
const caps = computeStorageCapabilities(decodedStats, item.tier);
|
|
15150
16771
|
totalStorageCapacity += applySlotMultiplierUint32(caps.capacity, amp);
|
|
16772
|
+
totalCargoHoldDrain += caps.drain;
|
|
15151
16773
|
}
|
|
15152
16774
|
else if (modType === MODULE_CRAFTER) {
|
|
15153
16775
|
hasCrafter = true;
|
|
@@ -15162,6 +16784,19 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15162
16784
|
outputPct: amp,
|
|
15163
16785
|
});
|
|
15164
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
|
+
}
|
|
15165
16800
|
else if (modType === MODULE_HAULER) {
|
|
15166
16801
|
hasHauler = true;
|
|
15167
16802
|
const caps = computeHaulerCapabilities(decodedStats, item.tier);
|
|
@@ -15196,12 +16831,20 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15196
16831
|
totalGenCapacity += totalBatteryCapacity;
|
|
15197
16832
|
}
|
|
15198
16833
|
const result = {
|
|
15199
|
-
hullmass: computeBaseHullmass(stats) + installedModuleMass,
|
|
16834
|
+
hullmass: computeBaseHullmass(itemId, stats) + installedModuleMass,
|
|
15200
16835
|
capacity: clampUint32(baseCapacity + totalStorageCapacity),
|
|
15201
16836
|
};
|
|
15202
16837
|
if (hasEngine) {
|
|
15203
16838
|
const avgThm = engineCount > 0 ? Math.trunc(totalEngineThm / engineCount) : 0;
|
|
15204
|
-
|
|
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
|
+
};
|
|
15205
16848
|
}
|
|
15206
16849
|
if (hasGenerator) {
|
|
15207
16850
|
result.generator = {
|
|
@@ -15229,6 +16872,10 @@ function computeEntityCapabilities(stats, itemId, modules, layout) {
|
|
|
15229
16872
|
result.crafter = { speed: clampUint16(totalCrafterSpeed), drain: totalCrafterDrain };
|
|
15230
16873
|
result.crafterLanes = crafterLanes;
|
|
15231
16874
|
}
|
|
16875
|
+
if (hasBuilder) {
|
|
16876
|
+
result.builder = { speed: clampUint16(totalBuilderSpeed), drain: totalBuilderDrain };
|
|
16877
|
+
result.builderLanes = builderLanes;
|
|
16878
|
+
}
|
|
15232
16879
|
if (hasHauler) {
|
|
15233
16880
|
const efficiency = totalHaulerCapacity > 0 ? Number(weightedHaulerEffNum / BigInt(totalHaulerCapacity)) : 0;
|
|
15234
16881
|
result.hauler = {
|
|
@@ -15256,7 +16903,7 @@ function computeContainerCapabilities(stats) {
|
|
|
15256
16903
|
const statSum = (stats.strength ?? 0) + (stats.hardness ?? 0);
|
|
15257
16904
|
const exponent = statSum / 1998.0;
|
|
15258
16905
|
return {
|
|
15259
|
-
hullmass: computeBaseHullmass(stats),
|
|
16906
|
+
hullmass: computeBaseHullmass(ITEM_CONTAINER_T1_PACKED, stats),
|
|
15260
16907
|
capacity: Math.floor(22000000 * 6 ** exponent),
|
|
15261
16908
|
};
|
|
15262
16909
|
}
|
|
@@ -15322,7 +16969,7 @@ function makeEntity(packedItemId, state) {
|
|
|
15322
16969
|
holds: [],
|
|
15323
16970
|
};
|
|
15324
16971
|
if (state.energy !== undefined)
|
|
15325
|
-
info.energy = antelope.
|
|
16972
|
+
info.energy = antelope.UInt32.from(state.energy);
|
|
15326
16973
|
if (kind === 'container') {
|
|
15327
16974
|
info.modules = [];
|
|
15328
16975
|
if (state.hullmass !== undefined)
|
|
@@ -15382,6 +17029,12 @@ function makeEntity(packedItemId, state) {
|
|
|
15382
17029
|
drain: l.drain,
|
|
15383
17030
|
output_pct: l.outputPct,
|
|
15384
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
|
+
}));
|
|
15385
17038
|
info.loader_lanes = (caps.loaderLanes ?? []).map((l) => exports.ServerTypes.loader_lane.from({
|
|
15386
17039
|
slot_index: l.slotIndex,
|
|
15387
17040
|
mass: l.mass,
|
|
@@ -15393,6 +17046,8 @@ function makeEntity(packedItemId, state) {
|
|
|
15393
17046
|
info.gatherer_lanes = [];
|
|
15394
17047
|
if (!info.crafter_lanes)
|
|
15395
17048
|
info.crafter_lanes = [];
|
|
17049
|
+
if (!info.builder_lanes)
|
|
17050
|
+
info.builder_lanes = [];
|
|
15396
17051
|
if (!info.loader_lanes)
|
|
15397
17052
|
info.loader_lanes = [];
|
|
15398
17053
|
const entityInfo = exports.ServerTypes.entity_info.from(info);
|
|
@@ -15408,7 +17063,13 @@ function calc_craft_duration(speed, totalInputMass) {
|
|
|
15408
17063
|
}
|
|
15409
17064
|
function calc_craft_energy(drain, totalInputMass) {
|
|
15410
17065
|
const raw = Math.floor((totalInputMass * drain) / CRAFT_ENERGY_DIVISOR);
|
|
15411
|
-
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);
|
|
15412
17073
|
}
|
|
15413
17074
|
|
|
15414
17075
|
class PlotManager extends BaseManager {
|
|
@@ -15471,7 +17132,7 @@ class PlotManager extends BaseManager {
|
|
|
15471
17132
|
recipe,
|
|
15472
17133
|
progress,
|
|
15473
17134
|
finalizeAction: antelope.Name.from('buildplot'),
|
|
15474
|
-
finalizerCapability: '
|
|
17135
|
+
finalizerCapability: 'builder',
|
|
15475
17136
|
activeTask,
|
|
15476
17137
|
scheduledBuild,
|
|
15477
17138
|
};
|
|
@@ -15519,16 +17180,16 @@ class ConstructionManager extends BaseManager {
|
|
|
15519
17180
|
continue;
|
|
15520
17181
|
if (!coordsEqual(entity.coordinates, target.coordinates))
|
|
15521
17182
|
continue;
|
|
15522
|
-
const
|
|
15523
|
-
if (
|
|
17183
|
+
const builderLanes = entity.builder_lanes ?? [];
|
|
17184
|
+
if (builderLanes.length === 0)
|
|
15524
17185
|
continue;
|
|
15525
|
-
const speed =
|
|
17186
|
+
const speed = builderLanes.reduce((s, l) => s + Number(l.speed), 0);
|
|
15526
17187
|
out.push({
|
|
15527
17188
|
entityId: entity.id,
|
|
15528
17189
|
entityType: entity.type,
|
|
15529
17190
|
name: entity.entity_name,
|
|
15530
|
-
capability: '
|
|
15531
|
-
|
|
17191
|
+
capability: 'builder',
|
|
17192
|
+
builderSpeed: speed,
|
|
15532
17193
|
estimatedDuration: this.estimateFinalizeDuration(target, speed),
|
|
15533
17194
|
});
|
|
15534
17195
|
}
|
|
@@ -15550,12 +17211,12 @@ class ConstructionManager extends BaseManager {
|
|
|
15550
17211
|
cumulativeSec += task.duration.toNumber();
|
|
15551
17212
|
if (!isPushTask(task))
|
|
15552
17213
|
continue;
|
|
15553
|
-
if (
|
|
17214
|
+
if (task.couplings.length === 0)
|
|
15554
17215
|
continue;
|
|
15555
17216
|
const projectedEndMs = startedMs + cumulativeSec * 1000;
|
|
15556
17217
|
if (projectedEndMs < nowMs)
|
|
15557
17218
|
continue;
|
|
15558
|
-
const targetIdStr = task.
|
|
17219
|
+
const targetIdStr = task.couplings[0].counterpart.entity_id.toString();
|
|
15559
17220
|
const etaSeconds = Math.max(0, Math.round((projectedEndMs - nowMs) / 1000));
|
|
15560
17221
|
let perTarget = buckets.get(targetIdStr);
|
|
15561
17222
|
if (!perTarget) {
|
|
@@ -15680,8 +17341,8 @@ class ConstructionManager extends BaseManager {
|
|
|
15680
17341
|
return [];
|
|
15681
17342
|
return reservationsOf(source);
|
|
15682
17343
|
}
|
|
15683
|
-
estimateFinalizeDuration(target,
|
|
15684
|
-
return
|
|
17344
|
+
estimateFinalizeDuration(target, builderSpeed) {
|
|
17345
|
+
return calc_build_duration(builderSpeed, target.progress.massRequired);
|
|
15685
17346
|
}
|
|
15686
17347
|
static isConstructionKind(kind) {
|
|
15687
17348
|
return CONSTRUCTION_KINDS.has(kind);
|
|
@@ -15774,18 +17435,18 @@ function isPushTask(task) {
|
|
|
15774
17435
|
}
|
|
15775
17436
|
function isBuildOfPlot(task, plotId) {
|
|
15776
17437
|
return (task.type.toNumber() === exports.TaskType.BUILDPLOT &&
|
|
15777
|
-
task.
|
|
15778
|
-
task.
|
|
17438
|
+
task.couplings.length > 0 &&
|
|
17439
|
+
task.couplings[0].counterpart.entity_id.equals(plotId));
|
|
15779
17440
|
}
|
|
15780
17441
|
function reservationsOf(source) {
|
|
15781
17442
|
const out = new Map();
|
|
15782
17443
|
for (const task of getTasks(source)) {
|
|
15783
17444
|
if (!isPushTask(task))
|
|
15784
17445
|
continue;
|
|
15785
|
-
if (
|
|
17446
|
+
if (task.couplings.length === 0)
|
|
15786
17447
|
continue;
|
|
15787
|
-
const targetType = task.
|
|
15788
|
-
const targetId = task.
|
|
17448
|
+
const targetType = task.couplings[0].counterpart.entity_type;
|
|
17449
|
+
const targetId = task.couplings[0].counterpart.entity_id;
|
|
15789
17450
|
for (const c of task.cargo) {
|
|
15790
17451
|
const itemId = c.item_id.toNumber();
|
|
15791
17452
|
const quantity = c.quantity.toNumber();
|
|
@@ -15874,11 +17535,23 @@ function planRoute(params) {
|
|
|
15874
17535
|
return { ok: false, reason: 'empty-destination' };
|
|
15875
17536
|
}
|
|
15876
17537
|
const straightLine = dist(origin, dest);
|
|
15877
|
-
|
|
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));
|
|
15878
17551
|
const gScore = new Map([[key(origin), 0]]);
|
|
15879
17552
|
const cameFrom = new Map();
|
|
15880
17553
|
const frontier = [
|
|
15881
|
-
{ coord: origin,
|
|
17554
|
+
{ coord: origin, legs: 0, cost: 0, f: heuristic(origin), remaining: straightLine },
|
|
15882
17555
|
];
|
|
15883
17556
|
let furthest = origin;
|
|
15884
17557
|
let furthestRemaining = dist(origin, dest);
|
|
@@ -15894,6 +17567,8 @@ function planRoute(params) {
|
|
|
15894
17567
|
}
|
|
15895
17568
|
}
|
|
15896
17569
|
const current = frontier.splice(bestIdx, 1)[0];
|
|
17570
|
+
if (current.cost !== gScore.get(key(current.coord)))
|
|
17571
|
+
continue;
|
|
15897
17572
|
if (sameCoord(current.coord, dest)) {
|
|
15898
17573
|
return reconstruct(cameFrom, origin, dest);
|
|
15899
17574
|
}
|
|
@@ -15907,20 +17582,33 @@ function planRoute(params) {
|
|
|
15907
17582
|
const inCorridor = dist(origin, n.coord) + dist(n.coord, dest) <= straightLine + corridorSlack;
|
|
15908
17583
|
if (!inCorridor)
|
|
15909
17584
|
continue;
|
|
15910
|
-
const
|
|
15911
|
-
if (
|
|
17585
|
+
const tentativeLegs = current.legs + 1;
|
|
17586
|
+
if (tentativeLegs > maxLegs) {
|
|
15912
17587
|
cappedByMaxLegs = true;
|
|
15913
17588
|
continue;
|
|
15914
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;
|
|
15915
17601
|
const nk = key(n.coord);
|
|
15916
|
-
|
|
15917
|
-
|
|
17602
|
+
const nextCost = current.cost + legCost;
|
|
17603
|
+
if (nextCost < (gScore.get(nk) ?? Infinity)) {
|
|
17604
|
+
gScore.set(nk, nextCost);
|
|
15918
17605
|
cameFrom.set(nk, current.coord);
|
|
15919
17606
|
const remaining = dist(n.coord, dest);
|
|
15920
17607
|
frontier.push({
|
|
15921
17608
|
coord: n.coord,
|
|
15922
|
-
|
|
15923
|
-
|
|
17609
|
+
legs: tentativeLegs,
|
|
17610
|
+
cost: nextCost,
|
|
17611
|
+
f: nextCost + heuristic(n.coord),
|
|
15924
17612
|
remaining,
|
|
15925
17613
|
});
|
|
15926
17614
|
}
|
|
@@ -15970,47 +17658,22 @@ function reconstruct(cameFrom, origin, dest) {
|
|
|
15970
17658
|
const waypoints = path.slice(1);
|
|
15971
17659
|
return { ok: true, waypoints, legs: waypoints.length, totalDistance };
|
|
15972
17660
|
}
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
function setScanProvider(provider) {
|
|
15976
|
-
scanProvider = provider;
|
|
15977
|
-
graphCache.clear();
|
|
15978
|
-
}
|
|
15979
|
-
function sdkSystemGraph(seed) {
|
|
17661
|
+
const graphCache = new WeakMap();
|
|
17662
|
+
function sdkSystemGraph(seed, scan) {
|
|
15980
17663
|
const s = antelope.Checksum256.from(seed);
|
|
15981
17664
|
const seedHex = s.toString();
|
|
15982
|
-
|
|
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);
|
|
15983
17671
|
if (cached)
|
|
15984
17672
|
return cached;
|
|
15985
|
-
const graph =
|
|
15986
|
-
|
|
17673
|
+
const graph = wasmSystemGraph(s, seedHex, scan);
|
|
17674
|
+
bySeed.set(seedHex, graph);
|
|
15987
17675
|
return graph;
|
|
15988
17676
|
}
|
|
15989
|
-
function jsSystemGraph(s) {
|
|
15990
|
-
return {
|
|
15991
|
-
hasSystem: (c) => hasSystem(s, { x: c.x, y: c.y }) || wormholeAt(s, c.x, c.y) !== null,
|
|
15992
|
-
nearby: (c, reachTiles) => {
|
|
15993
|
-
const seen = new Set([`${c.x},${c.y}`]);
|
|
15994
|
-
const out = [];
|
|
15995
|
-
for (const d of findNearbyPlanets(s, { x: c.x, y: c.y }, reachTiles * PRECISION$1)) {
|
|
15996
|
-
const coord = { x: Number(d.destination.x), y: Number(d.destination.y) };
|
|
15997
|
-
const k = `${coord.x},${coord.y}`;
|
|
15998
|
-
if (seen.has(k))
|
|
15999
|
-
continue;
|
|
16000
|
-
seen.add(k);
|
|
16001
|
-
out.push({ coord, dist: Number(d.distance) / PRECISION$1 });
|
|
16002
|
-
}
|
|
16003
|
-
for (const coord of nearbyWormholes(s, c.x, c.y, reachTiles)) {
|
|
16004
|
-
const k = `${coord.x},${coord.y}`;
|
|
16005
|
-
if (seen.has(k))
|
|
16006
|
-
continue;
|
|
16007
|
-
seen.add(k);
|
|
16008
|
-
out.push({ coord, dist: Math.hypot(coord.x - c.x, coord.y - c.y) });
|
|
16009
|
-
}
|
|
16010
|
-
return out;
|
|
16011
|
-
},
|
|
16012
|
-
};
|
|
16013
|
-
}
|
|
16014
17677
|
const SCAN_BUCKET = 48;
|
|
16015
17678
|
function wasmSystemGraph(s, seedHex, scan) {
|
|
16016
17679
|
const bucketCache = new Map();
|
|
@@ -16063,21 +17726,20 @@ function wasmSystemGraph(s, seedHex, scan) {
|
|
|
16063
17726
|
};
|
|
16064
17727
|
}
|
|
16065
17728
|
|
|
16066
|
-
function computePerLegReach(s
|
|
17729
|
+
function computePerLegReach(s) {
|
|
16067
17730
|
const capacity = s.generator?.capacity;
|
|
16068
17731
|
const drain = s.engines?.drain;
|
|
16069
17732
|
if (capacity === undefined || drain === undefined || drain === 0n) {
|
|
16070
17733
|
throw new Error('entity has no usable engine/generator (cannot compute per-leg reach)');
|
|
16071
17734
|
}
|
|
16072
|
-
|
|
16073
|
-
return Number(capacity) / Number(drain + haulDrain);
|
|
17735
|
+
return Number(capacity) / Number(drain);
|
|
16074
17736
|
}
|
|
16075
|
-
function computeGroupPerLegReach(participants
|
|
17737
|
+
function computeGroupPerLegReach(participants) {
|
|
16076
17738
|
const movers = participants.filter((p) => p.engines !== undefined && p.engines.drain !== 0n);
|
|
16077
17739
|
if (movers.length === 0) {
|
|
16078
17740
|
throw new Error('group has no moving entity (cannot compute per-leg reach)');
|
|
16079
17741
|
}
|
|
16080
|
-
return Math.min(...movers.map(
|
|
17742
|
+
return Math.min(...movers.map(computePerLegReach));
|
|
16081
17743
|
}
|
|
16082
17744
|
|
|
16083
17745
|
function simulateRoute(movers, waypoints, origin, recharge) {
|
|
@@ -16106,17 +17768,13 @@ function simulateRoute(movers, waypoints, origin, recharge) {
|
|
|
16106
17768
|
for (const to of waypoints) {
|
|
16107
17769
|
const distance = distanceBetweenPoints(from.x, from.y, to.x, to.y);
|
|
16108
17770
|
const distanceNum = Number(distance);
|
|
16109
|
-
const distanceCells =
|
|
17771
|
+
const distanceCells = distanceNum / PRECISION;
|
|
16110
17772
|
const energyCostByMover = {};
|
|
16111
17773
|
for (const m of movers) {
|
|
16112
17774
|
if (!m.hasMovement || !m.engines)
|
|
16113
17775
|
continue;
|
|
16114
17776
|
const key = String(m.ref.entityId);
|
|
16115
|
-
|
|
16116
|
-
if (m.hauler) {
|
|
16117
|
-
cost += Math.trunc(distanceCells) * m.hauler.drain * haulCount;
|
|
16118
|
-
}
|
|
16119
|
-
energyCostByMover[key] = cost;
|
|
17777
|
+
energyCostByMover[key] = Number(calc_energyusage(distance, m.engines.drain));
|
|
16120
17778
|
}
|
|
16121
17779
|
let rechargeBefore = false;
|
|
16122
17780
|
let rechargeSeconds = 0;
|
|
@@ -16237,6 +17895,23 @@ function resolveLaneCrafter(modules, entityItemId, laneKey) {
|
|
|
16237
17895
|
const drain = computeCrafterDrain(fin);
|
|
16238
17896
|
return { slotIndex: idx, speed, drain, outputPct: amp };
|
|
16239
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
|
+
}
|
|
16240
17915
|
function resolveLaneLoader(modules, entityItemId, laneKey) {
|
|
16241
17916
|
if (laneKey === LANE_MOBILITY) {
|
|
16242
17917
|
return { slotIndex: -1, thrust: 0, mass: 0, outputPct: 0, valid: false };
|
|
@@ -16544,6 +18219,10 @@ function recomputeCaps(entity) {
|
|
|
16544
18219
|
hullStats.strength = decodeStat(entity.stats, 0);
|
|
16545
18220
|
if (hullStats.hardness === undefined)
|
|
16546
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
|
+
}
|
|
16547
18226
|
const layout = getEntityLayout(itemId)?.slots ?? [];
|
|
16548
18227
|
const installed = toInstalledModules(entity.modules);
|
|
16549
18228
|
const caps = computeEntityCapabilities(hullStats, itemId, installed, layout);
|
|
@@ -16566,6 +18245,12 @@ function recomputeCaps(entity) {
|
|
|
16566
18245
|
drain: l.drain,
|
|
16567
18246
|
output_pct: l.outputPct,
|
|
16568
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
|
+
});
|
|
16569
18254
|
return {
|
|
16570
18255
|
hullmass: antelope.UInt32.from(caps.hullmass),
|
|
16571
18256
|
capacity: antelope.UInt32.from(caps.capacity),
|
|
@@ -16576,6 +18261,7 @@ function recomputeCaps(entity) {
|
|
|
16576
18261
|
loaderLanes: (caps.loaderLanes ?? []).map(toLoaderLane),
|
|
16577
18262
|
gathererLanes: (caps.gathererLanes ?? []).map(toGathererLane),
|
|
16578
18263
|
crafterLanes: (caps.crafterLanes ?? []).map(toCrafterLane),
|
|
18264
|
+
builderLanes: (caps.builderLanes ?? []).map(toBuilderLane),
|
|
16579
18265
|
hauler: caps.hauler
|
|
16580
18266
|
? exports.ServerTypes.hauler_stats.from({
|
|
16581
18267
|
capacity: caps.hauler.capacity,
|
|
@@ -16612,6 +18298,7 @@ function createProjectedEntity(entity) {
|
|
|
16612
18298
|
const loaderLanes = entity.loader_lanes ?? caps?.loaderLanes ?? [];
|
|
16613
18299
|
const gathererLanes = entity.gatherer_lanes ?? caps?.gathererLanes ?? [];
|
|
16614
18300
|
const crafterLanes = entity.crafter_lanes ?? caps?.crafterLanes ?? [];
|
|
18301
|
+
const builderLanes = entity.builder_lanes ?? caps?.builderLanes ?? [];
|
|
16615
18302
|
const engines = entity.engines ?? caps?.engines;
|
|
16616
18303
|
const generator = entity.generator ?? caps?.generator;
|
|
16617
18304
|
const hauler = entity.hauler ?? caps?.hauler;
|
|
@@ -16620,7 +18307,7 @@ function createProjectedEntity(entity) {
|
|
|
16620
18307
|
const cargo = entity.cargo.map(cargoItemToStack);
|
|
16621
18308
|
const projected = {
|
|
16622
18309
|
location: Coordinates.from(entity.coordinates),
|
|
16623
|
-
energy: antelope.
|
|
18310
|
+
energy: antelope.UInt32.from(entity.energy ?? 0),
|
|
16624
18311
|
cargo,
|
|
16625
18312
|
shipMass,
|
|
16626
18313
|
capacity: capacity ? antelope.UInt64.from(capacity) : undefined,
|
|
@@ -16631,6 +18318,7 @@ function createProjectedEntity(entity) {
|
|
|
16631
18318
|
loaderLanes,
|
|
16632
18319
|
gathererLanes,
|
|
16633
18320
|
crafterLanes,
|
|
18321
|
+
builderLanes,
|
|
16634
18322
|
get cargoMass() {
|
|
16635
18323
|
return calcStacksMass(this.cargo);
|
|
16636
18324
|
},
|
|
@@ -16676,13 +18364,13 @@ function applyRechargeTask(projected, _task, options) {
|
|
|
16676
18364
|
if (!projected.generator)
|
|
16677
18365
|
return;
|
|
16678
18366
|
if (options.complete) {
|
|
16679
|
-
projected.energy = antelope.
|
|
18367
|
+
projected.energy = antelope.UInt32.from(projected.generator.capacity);
|
|
16680
18368
|
}
|
|
16681
18369
|
else if (options.progress !== undefined) {
|
|
16682
18370
|
const capacity = Number(projected.generator.capacity);
|
|
16683
18371
|
const currentEnergy = Number(projected.energy);
|
|
16684
18372
|
const rechargeAmount = (capacity - currentEnergy) * options.progress;
|
|
16685
|
-
projected.energy = antelope.
|
|
18373
|
+
projected.energy = antelope.UInt32.from(Math.min(capacity, currentEnergy + rechargeAmount));
|
|
16686
18374
|
}
|
|
16687
18375
|
}
|
|
16688
18376
|
function applyFlightTask(projected, task, options) {
|
|
@@ -16701,8 +18389,8 @@ function applyFlightTask(projected, task, options) {
|
|
|
16701
18389
|
});
|
|
16702
18390
|
const partialEnergy = antelope.UInt64.from(Math.floor(Number(task.energy_cost ?? 0) * options.progress));
|
|
16703
18391
|
projected.energy = projected.energy.gt(partialEnergy)
|
|
16704
|
-
? antelope.
|
|
16705
|
-
: antelope.
|
|
18392
|
+
? antelope.UInt32.from(projected.energy.subtracting(partialEnergy))
|
|
18393
|
+
: antelope.UInt32.from(0);
|
|
16706
18394
|
}
|
|
16707
18395
|
}
|
|
16708
18396
|
function addCargoItem(projected, item) {
|
|
@@ -16724,16 +18412,16 @@ function applyRemoveCargoTask(projected, task) {
|
|
|
16724
18412
|
function applyEnergyCost(projected, task) {
|
|
16725
18413
|
if (!task.energy_cost)
|
|
16726
18414
|
return;
|
|
16727
|
-
const energyCost = antelope.
|
|
18415
|
+
const energyCost = antelope.UInt32.from(task.energy_cost);
|
|
16728
18416
|
projected.energy = projected.energy.gt(energyCost)
|
|
16729
|
-
? antelope.
|
|
16730
|
-
: antelope.
|
|
18417
|
+
? antelope.UInt32.from(projected.energy.subtracting(energyCost))
|
|
18418
|
+
: antelope.UInt32.from(0);
|
|
16731
18419
|
}
|
|
16732
18420
|
function applyGatherTask(projected, task, options) {
|
|
16733
18421
|
if (!options.complete)
|
|
16734
18422
|
return;
|
|
16735
18423
|
applyEnergyCost(projected, task);
|
|
16736
|
-
if (
|
|
18424
|
+
if (task.couplings.length === 0) {
|
|
16737
18425
|
applyAddCargoTask(projected, task);
|
|
16738
18426
|
}
|
|
16739
18427
|
}
|
|
@@ -16744,12 +18432,8 @@ function applyCraftTask(projected, task) {
|
|
|
16744
18432
|
for (let i = 0; i < task.cargo.length - 1; i++) {
|
|
16745
18433
|
removeCargoItem(projected, task.cargo[i]);
|
|
16746
18434
|
}
|
|
16747
|
-
|
|
16748
|
-
|
|
16749
|
-
function applyDeployTask(projected, task) {
|
|
16750
|
-
applyEnergyCost(projected, task);
|
|
16751
|
-
if (task.cargo.length > 0) {
|
|
16752
|
-
removeCargoItem(projected, task.cargo[0]);
|
|
18435
|
+
if (task.couplings.length === 0) {
|
|
18436
|
+
addCargoItem(projected, task.cargo[task.cargo.length - 1]);
|
|
16753
18437
|
}
|
|
16754
18438
|
}
|
|
16755
18439
|
function applyTask(projected, task) {
|
|
@@ -16775,9 +18459,6 @@ function applyTask(projected, task) {
|
|
|
16775
18459
|
case exports.TaskType.CRAFT:
|
|
16776
18460
|
applyCraftTask(projected, task);
|
|
16777
18461
|
break;
|
|
16778
|
-
case exports.TaskType.DEPLOY:
|
|
16779
|
-
applyDeployTask(projected, task);
|
|
16780
|
-
break;
|
|
16781
18462
|
case exports.TaskType.UNDEPLOY:
|
|
16782
18463
|
case exports.TaskType.DEMOLISH:
|
|
16783
18464
|
break;
|
|
@@ -16915,10 +18596,6 @@ function projectEntityAt(entity, now) {
|
|
|
16915
18596
|
if (taskComplete)
|
|
16916
18597
|
applyCraftTask(projected, task);
|
|
16917
18598
|
break;
|
|
16918
|
-
case exports.TaskType.DEPLOY:
|
|
16919
|
-
if (taskComplete)
|
|
16920
|
-
applyDeployTask(projected, task);
|
|
16921
|
-
break;
|
|
16922
18599
|
case exports.TaskType.UNDEPLOY:
|
|
16923
18600
|
case exports.TaskType.DEMOLISH:
|
|
16924
18601
|
break;
|
|
@@ -16945,7 +18622,7 @@ function taskCargoChanges(task) {
|
|
|
16945
18622
|
case exports.TaskType.UNWRAP:
|
|
16946
18623
|
return items.map((i) => toChange(i, 'in'));
|
|
16947
18624
|
case exports.TaskType.GATHER:
|
|
16948
|
-
return task.
|
|
18625
|
+
return task.couplings.length > 0 ? [] : items.map((i) => toChange(i, 'in'));
|
|
16949
18626
|
case exports.TaskType.UNLOAD:
|
|
16950
18627
|
return items.map((i) => toChange(i, 'out'));
|
|
16951
18628
|
case exports.TaskType.CRAFT:
|
|
@@ -16958,6 +18635,49 @@ function taskCargoChanges(task) {
|
|
|
16958
18635
|
}
|
|
16959
18636
|
}
|
|
16960
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
|
+
|
|
16961
18681
|
function composeIdleResolve(blocker, action, actions, now, lookupCounterpart) {
|
|
16962
18682
|
const ids = [];
|
|
16963
18683
|
const seen = new Set();
|
|
@@ -16992,15 +18712,16 @@ function taskCargoEffect(task) {
|
|
|
16992
18712
|
case exports.TaskType.UNLOAD:
|
|
16993
18713
|
return { added: [], removed: task.cargo };
|
|
16994
18714
|
case exports.TaskType.GATHER:
|
|
16995
|
-
return task.
|
|
18715
|
+
return task.couplings.length > 0
|
|
18716
|
+
? { added: [], removed: [] }
|
|
18717
|
+
: { added: task.cargo, removed: [] };
|
|
16996
18718
|
case exports.TaskType.CRAFT:
|
|
16997
18719
|
if (task.cargo.length === 0)
|
|
16998
18720
|
return { added: [], removed: [] };
|
|
16999
|
-
return {
|
|
17000
|
-
|
|
17001
|
-
|
|
17002
|
-
|
|
17003
|
-
: { added: [], removed: [] };
|
|
18721
|
+
return {
|
|
18722
|
+
added: task.couplings.length === 0 ? [task.cargo[task.cargo.length - 1]] : [],
|
|
18723
|
+
removed: task.cargo.slice(0, -1),
|
|
18724
|
+
};
|
|
17004
18725
|
default:
|
|
17005
18726
|
return { added: [], removed: [] };
|
|
17006
18727
|
}
|
|
@@ -17178,31 +18899,24 @@ function cancelEligibility(entity, laneKey, fromTaskIndex, input) {
|
|
|
17178
18899
|
effects.abandonsRunning = true;
|
|
17179
18900
|
if (t.energy_cost)
|
|
17180
18901
|
energyForfeited += t.energy_cost.toNumber();
|
|
17181
|
-
if (t.type.equals(exports.TaskType.BUILDPLOT) && t.
|
|
17182
|
-
effects.keepsPlotDeposits = { plot: t.
|
|
17183
|
-
|
|
17184
|
-
const
|
|
17185
|
-
|
|
17186
|
-
|
|
17187
|
-
|
|
17188
|
-
const
|
|
17189
|
-
|
|
17190
|
-
|
|
17191
|
-
|
|
17192
|
-
|
|
17193
|
-
|
|
17194
|
-
|
|
17195
|
-
|
|
17196
|
-
|
|
17197
|
-
:
|
|
17198
|
-
|
|
17199
|
-
return {
|
|
17200
|
-
ok: false,
|
|
17201
|
-
blockedReason: exports.CancelBlockReason.WOULD_OVERFILL,
|
|
17202
|
-
range,
|
|
17203
|
-
effects: { ...EMPTY_EFFECTS },
|
|
17204
|
-
};
|
|
17205
|
-
}
|
|
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
|
+
};
|
|
17206
18920
|
}
|
|
17207
18921
|
}
|
|
17208
18922
|
}
|
|
@@ -17235,7 +18949,7 @@ function derivedLoaders(lanes) {
|
|
|
17235
18949
|
function acceleration(thrust, mass) {
|
|
17236
18950
|
if (mass <= 0)
|
|
17237
18951
|
return 0;
|
|
17238
|
-
return (thrust / mass) * PRECISION
|
|
18952
|
+
return (thrust / mass) * PRECISION;
|
|
17239
18953
|
}
|
|
17240
18954
|
function flightTime(distance, accel) {
|
|
17241
18955
|
if (accel <= 0 || distance <= 0)
|
|
@@ -17245,7 +18959,7 @@ function flightTime(distance, accel) {
|
|
|
17245
18959
|
function distance2d(ax, ay, bx, by) {
|
|
17246
18960
|
const dx = ax - bx;
|
|
17247
18961
|
const dy = ay - by;
|
|
17248
|
-
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION
|
|
18962
|
+
return Math.floor(Math.sqrt(dx * dx + dy * dy) * PRECISION);
|
|
17249
18963
|
}
|
|
17250
18964
|
function unwrapTransitDuration(itemMass, origin, dest) {
|
|
17251
18965
|
if (itemMass <= 0)
|
|
@@ -17410,10 +19124,10 @@ function hasGatherer(e) {
|
|
|
17410
19124
|
function maxTravelDistance(entity) {
|
|
17411
19125
|
return antelope.UInt32.from(entity.generator.capacity)
|
|
17412
19126
|
.dividing(entity.engines.drain)
|
|
17413
|
-
.multiplying(PRECISION
|
|
19127
|
+
.multiplying(PRECISION);
|
|
17414
19128
|
}
|
|
17415
19129
|
function calcEnergyUsage(entity, distance) {
|
|
17416
|
-
return distance.
|
|
19130
|
+
return distance.multiplying(entity.engines.drain).dividing(PRECISION);
|
|
17417
19131
|
}
|
|
17418
19132
|
function energyPercent(entity) {
|
|
17419
19133
|
return (Number(entity.energy) / Number(entity.generator.capacity)) * 100;
|
|
@@ -17448,13 +19162,12 @@ function calc_gather_rate(gatherer, itemMass, stratum, richness) {
|
|
|
17448
19162
|
function calc_gather_energy(gatherer, duration) {
|
|
17449
19163
|
if (duration <= 0)
|
|
17450
19164
|
return antelope.UInt32.from(0);
|
|
17451
|
-
const raw = Math.floor((duration * gatherer.drain.toNumber()) / PRECISION
|
|
17452
|
-
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));
|
|
17453
19167
|
}
|
|
17454
19168
|
|
|
17455
19169
|
const BASE_HAUL_PENALTY_MILLI = 300;
|
|
17456
19170
|
const HAULER_EFFICIENCY_DENOM = 10000;
|
|
17457
|
-
const PRECISION = 10000;
|
|
17458
19171
|
function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
17459
19172
|
if (haulCount === 0)
|
|
17460
19173
|
return totalThrust;
|
|
@@ -17463,9 +19176,6 @@ function computeHaulPenalty(totalThrust, haulCount, avgEfficiency) {
|
|
|
17463
19176
|
HAULER_EFFICIENCY_DENOM);
|
|
17464
19177
|
return Math.floor((totalThrust * 1000) / penaltyMilli);
|
|
17465
19178
|
}
|
|
17466
|
-
function computeHaulerDrain(distance, drain, haulCount) {
|
|
17467
|
-
return Math.floor(distance / PRECISION) * drain * haulCount;
|
|
17468
|
-
}
|
|
17469
19179
|
|
|
17470
19180
|
const categoryColors = {
|
|
17471
19181
|
ore: '#C26D3F',
|
|
@@ -17622,8 +19332,17 @@ const capabilityAttributes = [
|
|
|
17622
19332
|
attribute: 'capacity',
|
|
17623
19333
|
description: 'Cargo capacity added by hulls and installed Cargo Hold modules',
|
|
17624
19334
|
},
|
|
19335
|
+
{
|
|
19336
|
+
capability: 'Storage',
|
|
19337
|
+
attribute: 'drain',
|
|
19338
|
+
description: 'Fixed normal-travel drain contributed by an installed Cargo Hold',
|
|
19339
|
+
},
|
|
17625
19340
|
{ capability: 'Movement', attribute: 'thrust', description: 'Propulsion force' },
|
|
17626
|
-
{
|
|
19341
|
+
{
|
|
19342
|
+
capability: 'Movement',
|
|
19343
|
+
attribute: 'drain',
|
|
19344
|
+
description: 'Total installed energy consumed per tile of normal travel',
|
|
19345
|
+
},
|
|
17627
19346
|
{
|
|
17628
19347
|
capability: 'Energy',
|
|
17629
19348
|
attribute: 'capacity',
|
|
@@ -17664,7 +19383,7 @@ const capabilityAttributes = [
|
|
|
17664
19383
|
{
|
|
17665
19384
|
capability: 'Hauling',
|
|
17666
19385
|
attribute: 'drain',
|
|
17667
|
-
description: '
|
|
19386
|
+
description: 'Fixed normal-travel drain contributed by an installed Tractor Beam',
|
|
17668
19387
|
},
|
|
17669
19388
|
];
|
|
17670
19389
|
const invertedAttributes = new Set(['drain', 'mass']);
|
|
@@ -18030,6 +19749,20 @@ function rollupCrafter(lanes) {
|
|
|
18030
19749
|
drain: antelope.UInt32.from(totalDrain),
|
|
18031
19750
|
};
|
|
18032
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
|
+
}
|
|
18033
19766
|
function rollupLoaders(lanes) {
|
|
18034
19767
|
if (lanes.length === 0)
|
|
18035
19768
|
return undefined;
|
|
@@ -18133,8 +19866,8 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18133
19866
|
return {
|
|
18134
19867
|
capability: 'Generator',
|
|
18135
19868
|
attributes: [
|
|
18136
|
-
{ label: 'Capacity', value: caps.capacity },
|
|
18137
|
-
{ label: 'Recharge', value: caps.recharge },
|
|
19869
|
+
{ label: 'Capacity', value: toWholeEnergy$1(caps.capacity) },
|
|
19870
|
+
{ label: 'Recharge', value: toWholeEnergy$1(caps.recharge) },
|
|
18138
19871
|
],
|
|
18139
19872
|
};
|
|
18140
19873
|
}
|
|
@@ -18144,7 +19877,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18144
19877
|
capability: 'Gatherer',
|
|
18145
19878
|
attributes: [
|
|
18146
19879
|
{ label: 'Yield', value: caps.yield },
|
|
18147
|
-
{ label: 'Drain', value: caps.drain },
|
|
19880
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18148
19881
|
{ label: 'Depth', value: caps.depth },
|
|
18149
19882
|
],
|
|
18150
19883
|
};
|
|
@@ -18166,7 +19899,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18166
19899
|
capability: 'Crafting',
|
|
18167
19900
|
attributes: [
|
|
18168
19901
|
{ label: 'Speed', value: caps.speed },
|
|
18169
|
-
{ label: 'Drain', value: caps.drain },
|
|
19902
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18170
19903
|
],
|
|
18171
19904
|
};
|
|
18172
19905
|
}
|
|
@@ -18177,12 +19910,12 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18177
19910
|
attributes: [
|
|
18178
19911
|
{ label: 'Capacity', value: caps.capacity },
|
|
18179
19912
|
{ label: 'Efficiency', value: caps.efficiency },
|
|
18180
|
-
{ label: 'Drain', value: caps.drain },
|
|
19913
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18181
19914
|
],
|
|
18182
19915
|
};
|
|
18183
19916
|
}
|
|
18184
19917
|
case MODULE_STORAGE: {
|
|
18185
|
-
const caps = computeStorageCapabilities(stats);
|
|
19918
|
+
const caps = computeStorageCapabilities(stats, tier);
|
|
18186
19919
|
return {
|
|
18187
19920
|
capability: 'Storage',
|
|
18188
19921
|
attributes: [
|
|
@@ -18190,6 +19923,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18190
19923
|
label: 'Cargo Capacity',
|
|
18191
19924
|
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
18192
19925
|
},
|
|
19926
|
+
{ label: 'Drain', value: toWholeEnergy$1(caps.drain) },
|
|
18193
19927
|
],
|
|
18194
19928
|
};
|
|
18195
19929
|
}
|
|
@@ -18200,7 +19934,7 @@ function computeCapabilityGroup(moduleType, stats, tier, outputPct = 100) {
|
|
|
18200
19934
|
attributes: [
|
|
18201
19935
|
{
|
|
18202
19936
|
label: 'Energy Capacity',
|
|
18203
|
-
value: applySlotMultiplierUint32(caps.capacity, outputPct),
|
|
19937
|
+
value: toWholeEnergy$1(applySlotMultiplierUint32(caps.capacity, outputPct)),
|
|
18204
19938
|
},
|
|
18205
19939
|
],
|
|
18206
19940
|
};
|
|
@@ -18242,10 +19976,19 @@ function resolveModule(id, stats) {
|
|
|
18242
19976
|
attributes,
|
|
18243
19977
|
};
|
|
18244
19978
|
}
|
|
18245
|
-
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;
|
|
18246
19989
|
return {
|
|
18247
|
-
hullmass: computeBaseHullmass(
|
|
18248
|
-
capacity: computeBaseCapacity(itemId,
|
|
19990
|
+
hullmass: computeBaseHullmass(itemId, hullStats),
|
|
19991
|
+
capacity: computeBaseCapacity(itemId, hullStats),
|
|
18249
19992
|
};
|
|
18250
19993
|
}
|
|
18251
19994
|
function resolveEntity(id, stats, modules) {
|
|
@@ -18262,7 +20005,7 @@ function resolveEntity(id, stats, modules) {
|
|
|
18262
20005
|
decoded.density = decodeStat(bigStats, 1);
|
|
18263
20006
|
if (decoded.hardness === undefined)
|
|
18264
20007
|
decoded.hardness = decodeStat(bigStats, 2);
|
|
18265
|
-
const hullCaps = hullCapsForEntity(id, decoded);
|
|
20008
|
+
const hullCaps = hullCapsForEntity(id, decoded, bigStats);
|
|
18266
20009
|
attributes = [
|
|
18267
20010
|
{
|
|
18268
20011
|
capability: 'Hull',
|
|
@@ -18498,6 +20241,9 @@ function moduleSlotsForImmutable(modules) {
|
|
|
18498
20241
|
}));
|
|
18499
20242
|
}
|
|
18500
20243
|
const IMAGE_HOST_URL = 'https://item.shiploadgame.com/item';
|
|
20244
|
+
function toWholeEnergy(milli) {
|
|
20245
|
+
return Math.floor((milli + 500) / 1000);
|
|
20246
|
+
}
|
|
18501
20247
|
function bytesToBase64Url(bytes) {
|
|
18502
20248
|
let binary = '';
|
|
18503
20249
|
for (let i = 0; i < bytes.byteLength; i++)
|
|
@@ -18563,8 +20309,14 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18563
20309
|
const thm = decodeStat(stats, 1);
|
|
18564
20310
|
base.push({ first: 'volatility', second: ['uint16', vol] });
|
|
18565
20311
|
base.push({ first: 'thermal', second: ['uint16', thm] });
|
|
18566
|
-
base.push({
|
|
18567
|
-
|
|
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
|
+
});
|
|
18568
20320
|
break;
|
|
18569
20321
|
}
|
|
18570
20322
|
case MODULE_GENERATOR: {
|
|
@@ -18572,8 +20324,20 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18572
20324
|
const ref = decodeStat(stats, 1);
|
|
18573
20325
|
base.push({ first: 'resonance', second: ['uint16', res] });
|
|
18574
20326
|
base.push({ first: 'reflectivity', second: ['uint16', ref] });
|
|
18575
|
-
base.push({
|
|
18576
|
-
|
|
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
|
+
});
|
|
18577
20341
|
break;
|
|
18578
20342
|
}
|
|
18579
20343
|
case MODULE_GATHERER: {
|
|
@@ -18584,7 +20348,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18584
20348
|
base.push({ first: 'hardness', second: ['uint16', hrd] });
|
|
18585
20349
|
base.push({ first: 'saturation', second: ['uint16', sat] });
|
|
18586
20350
|
base.push({ first: 'yield', second: ['uint16', computeGathererYield(str)] });
|
|
18587
|
-
base.push({
|
|
20351
|
+
base.push({
|
|
20352
|
+
first: 'drain',
|
|
20353
|
+
second: ['uint16', toWholeEnergy(computeGathererDrain(sat))],
|
|
20354
|
+
});
|
|
18588
20355
|
base.push({ first: 'depth', second: ['uint16', computeGathererDepth(hrd, item.tier)] });
|
|
18589
20356
|
break;
|
|
18590
20357
|
}
|
|
@@ -18609,7 +20376,16 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18609
20376
|
base.push({ first: 'fineness', second: ['uint16', fin] });
|
|
18610
20377
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18611
20378
|
base.push({ first: 'speed', second: ['uint16', computeCrafterSpeed(fin)] });
|
|
18612
|
-
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))] });
|
|
18613
20389
|
break;
|
|
18614
20390
|
}
|
|
18615
20391
|
case MODULE_STORAGE: {
|
|
@@ -18623,7 +20399,11 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18623
20399
|
base.push({ first: 'cohesion', second: ['uint16', com] });
|
|
18624
20400
|
base.push({
|
|
18625
20401
|
first: 'capacity',
|
|
18626
|
-
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))],
|
|
18627
20407
|
});
|
|
18628
20408
|
break;
|
|
18629
20409
|
}
|
|
@@ -18638,7 +20418,7 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18638
20418
|
base.push({ first: 'insulation', second: ['uint16', ins] });
|
|
18639
20419
|
base.push({
|
|
18640
20420
|
first: 'capacity',
|
|
18641
|
-
second: ['uint32', computeBatteryBankCapacity(vol, thm, pla, ins)],
|
|
20421
|
+
second: ['uint32', toWholeEnergy(computeBatteryBankCapacity(vol, thm, pla, ins))],
|
|
18642
20422
|
});
|
|
18643
20423
|
break;
|
|
18644
20424
|
}
|
|
@@ -18651,7 +20431,10 @@ function buildModuleImmutable(itemId, quantity, stats, originX, originY) {
|
|
|
18651
20431
|
base.push({ first: 'conductivity', second: ['uint16', con] });
|
|
18652
20432
|
base.push({ first: 'capacity', second: ['uint8', computeHaulerCapacity(res, item.tier)] });
|
|
18653
20433
|
base.push({ first: 'efficiency', second: ['uint16', computeHaulerEfficiency(pla)] });
|
|
18654
|
-
base.push({
|
|
20434
|
+
base.push({
|
|
20435
|
+
first: 'drain',
|
|
20436
|
+
second: ['uint16', toWholeEnergy(computeHaulerDrain(con, item.tier))],
|
|
20437
|
+
});
|
|
18655
20438
|
break;
|
|
18656
20439
|
}
|
|
18657
20440
|
}
|
|
@@ -18704,6 +20487,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18704
20487
|
deserializeModule: deserializeModule,
|
|
18705
20488
|
deserializeEntity: deserializeEntity,
|
|
18706
20489
|
deserializeAsset: deserializeAsset,
|
|
20490
|
+
toWholeEnergy: toWholeEnergy$1,
|
|
18707
20491
|
computeBaseHullmass: computeBaseHullmass$1,
|
|
18708
20492
|
computeBaseCapacityShip: computeBaseCapacityShip,
|
|
18709
20493
|
computeBaseCapacityContainer: computeBaseCapacityContainer,
|
|
@@ -18723,9 +20507,13 @@ var index = /*#__PURE__*/Object.freeze({
|
|
|
18723
20507
|
computeLoaderThrust: computeLoaderThrust,
|
|
18724
20508
|
computeCrafterSpeed: computeCrafterSpeed,
|
|
18725
20509
|
computeCrafterDrain: computeCrafterDrain,
|
|
20510
|
+
computeBuilderSpeed: computeBuilderSpeed,
|
|
20511
|
+
computeBuilderDrain: computeBuilderDrain,
|
|
18726
20512
|
computeHaulerCapacity: computeHaulerCapacity,
|
|
18727
20513
|
computeHaulerEfficiency: computeHaulerEfficiency,
|
|
18728
|
-
|
|
20514
|
+
supportDrainTierPercent: supportDrainTierPercent,
|
|
20515
|
+
computeHaulerDrain: computeHaulerDrain,
|
|
20516
|
+
computeCargoBayDrain: computeCargoBayDrain,
|
|
18729
20517
|
computeWarpRange: computeWarpRange,
|
|
18730
20518
|
computeCargoBayCapacity: computeCargoBayCapacity,
|
|
18731
20519
|
computeBatteryBankCapacity: computeBatteryBankCapacity,
|
|
@@ -19002,6 +20790,7 @@ exports.CRAFT_NOT_ENOUGH_ENERGY = CRAFT_NOT_ENOUGH_ENERGY;
|
|
|
19002
20790
|
exports.ClusterManager = ClusterManager;
|
|
19003
20791
|
exports.ConstructionManager = ConstructionManager;
|
|
19004
20792
|
exports.Coordinates = Coordinates;
|
|
20793
|
+
exports.DEFAULT_BASE_HULLMASS = DEFAULT_BASE_HULLMASS;
|
|
19005
20794
|
exports.DEPLOY_ENTITY_HAS_SCHEDULE = DEPLOY_ENTITY_HAS_SCHEDULE;
|
|
19006
20795
|
exports.DEPTH_THRESHOLD_T1 = DEPTH_THRESHOLD_T1;
|
|
19007
20796
|
exports.DEPTH_THRESHOLD_T2 = DEPTH_THRESHOLD_T2;
|
|
@@ -19029,6 +20818,7 @@ exports.ENTITY_NOT_ENOUGH_ENERGY_CAPACITY = ENTITY_NOT_ENOUGH_ENERGY_CAPACITY;
|
|
|
19029
20818
|
exports.ENTITY_NO_CRAFTER = ENTITY_NO_CRAFTER;
|
|
19030
20819
|
exports.ENTITY_SHIP = ENTITY_SHIP;
|
|
19031
20820
|
exports.ENTITY_WAREHOUSE = ENTITY_WAREHOUSE;
|
|
20821
|
+
exports.ENTITY_WORKSHOP = ENTITY_WORKSHOP;
|
|
19032
20822
|
exports.EPOCH_NON_ZERO = EPOCH_NON_ZERO;
|
|
19033
20823
|
exports.EPOCH_NOT_READY = EPOCH_NOT_READY;
|
|
19034
20824
|
exports.ERROR_SYSTEM_ALREADY_INITIALIZED = ERROR_SYSTEM_ALREADY_INITIALIZED;
|
|
@@ -19072,6 +20862,7 @@ exports.ITEM_BIOMASS_T6 = ITEM_BIOMASS_T6;
|
|
|
19072
20862
|
exports.ITEM_BIOMASS_T7 = ITEM_BIOMASS_T7;
|
|
19073
20863
|
exports.ITEM_BIOMASS_T8 = ITEM_BIOMASS_T8;
|
|
19074
20864
|
exports.ITEM_BIOMASS_T9 = ITEM_BIOMASS_T9;
|
|
20865
|
+
exports.ITEM_BUILDER_T1 = ITEM_BUILDER_T1;
|
|
19075
20866
|
exports.ITEM_CERAMIC = ITEM_CERAMIC;
|
|
19076
20867
|
exports.ITEM_CERAMIC_T2 = ITEM_CERAMIC_T2;
|
|
19077
20868
|
exports.ITEM_CONTAINER_T1_PACKED = ITEM_CONTAINER_T1_PACKED;
|
|
@@ -19088,6 +20879,7 @@ exports.ITEM_CRYSTAL_T7 = ITEM_CRYSTAL_T7;
|
|
|
19088
20879
|
exports.ITEM_CRYSTAL_T8 = ITEM_CRYSTAL_T8;
|
|
19089
20880
|
exports.ITEM_CRYSTAL_T9 = ITEM_CRYSTAL_T9;
|
|
19090
20881
|
exports.ITEM_DOES_NOT_EXIST = ITEM_DOES_NOT_EXIST;
|
|
20882
|
+
exports.ITEM_DREDGER_T1_PACKED = ITEM_DREDGER_T1_PACKED;
|
|
19091
20883
|
exports.ITEM_ENGINE_T1 = ITEM_ENGINE_T1;
|
|
19092
20884
|
exports.ITEM_EXTRACTOR_T1_PACKED = ITEM_EXTRACTOR_T1_PACKED;
|
|
19093
20885
|
exports.ITEM_FACTORY_T1_PACKED = ITEM_FACTORY_T1_PACKED;
|
|
@@ -19133,6 +20925,8 @@ exports.ITEM_PLATE = ITEM_PLATE;
|
|
|
19133
20925
|
exports.ITEM_PLATE_T2 = ITEM_PLATE_T2;
|
|
19134
20926
|
exports.ITEM_POLYMER = ITEM_POLYMER;
|
|
19135
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;
|
|
19136
20930
|
exports.ITEM_PROSPECTOR_T2_PACKED = ITEM_PROSPECTOR_T2_PACKED;
|
|
19137
20931
|
exports.ITEM_REACTOR = ITEM_REACTOR;
|
|
19138
20932
|
exports.ITEM_REACTOR_T2 = ITEM_REACTOR_T2;
|
|
@@ -19150,17 +20944,24 @@ exports.ITEM_RESIN = ITEM_RESIN;
|
|
|
19150
20944
|
exports.ITEM_RESIN_T2 = ITEM_RESIN_T2;
|
|
19151
20945
|
exports.ITEM_RESONATOR = ITEM_RESONATOR;
|
|
19152
20946
|
exports.ITEM_RESONATOR_T2 = ITEM_RESONATOR_T2;
|
|
20947
|
+
exports.ITEM_ROUSTABOUT_T1_PACKED = ITEM_ROUSTABOUT_T1_PACKED;
|
|
19153
20948
|
exports.ITEM_SENSOR = ITEM_SENSOR;
|
|
19154
20949
|
exports.ITEM_SENSOR_T2 = ITEM_SENSOR_T2;
|
|
19155
20950
|
exports.ITEM_SHIP_T1_PACKED = ITEM_SHIP_T1_PACKED;
|
|
19156
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;
|
|
19157
20954
|
exports.ITEM_TYPE_COMPONENT = ITEM_TYPE_COMPONENT;
|
|
19158
20955
|
exports.ITEM_TYPE_ENTITY = ITEM_TYPE_ENTITY;
|
|
19159
20956
|
exports.ITEM_TYPE_MODULE = ITEM_TYPE_MODULE;
|
|
19160
20957
|
exports.ITEM_TYPE_RESOURCE = ITEM_TYPE_RESOURCE;
|
|
19161
20958
|
exports.ITEM_WAREHOUSE_T1_PACKED = ITEM_WAREHOUSE_T1_PACKED;
|
|
19162
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;
|
|
19163
20963
|
exports.InventoryAccessor = InventoryAccessor;
|
|
20964
|
+
exports.JOB_QUEUE_CAP = JOB_QUEUE_CAP;
|
|
19164
20965
|
exports.LANE_BARRIER = LANE_BARRIER;
|
|
19165
20966
|
exports.LANE_MOBILITY = LANE_MOBILITY;
|
|
19166
20967
|
exports.LOCAL_HALF = LOCAL_HALF;
|
|
@@ -19177,6 +20978,7 @@ exports.MIN_TRANSFER_DISTANCE_ORBITAL_VESSEL = MIN_TRANSFER_DISTANCE_ORBITAL_VES
|
|
|
19177
20978
|
exports.MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE = MIN_TRANSFER_DISTANCE_PLANETARY_STRUCTURE;
|
|
19178
20979
|
exports.MODULE_ANY = MODULE_ANY;
|
|
19179
20980
|
exports.MODULE_BATTERY = MODULE_BATTERY;
|
|
20981
|
+
exports.MODULE_BUILDER = MODULE_BUILDER;
|
|
19180
20982
|
exports.MODULE_CARGO_NOT_FOUND = MODULE_CARGO_NOT_FOUND;
|
|
19181
20983
|
exports.MODULE_CRAFTER = MODULE_CRAFTER;
|
|
19182
20984
|
exports.MODULE_ENGINE = MODULE_ENGINE;
|
|
@@ -19190,6 +20992,8 @@ exports.MODULE_NOT_MODULE = MODULE_NOT_MODULE;
|
|
|
19190
20992
|
exports.MODULE_SLOT_EMPTY = MODULE_SLOT_EMPTY;
|
|
19191
20993
|
exports.MODULE_SLOT_INVALID = MODULE_SLOT_INVALID;
|
|
19192
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;
|
|
19193
20997
|
exports.MODULE_STORAGE = MODULE_STORAGE;
|
|
19194
20998
|
exports.MODULE_TIER_PREFIXES = MODULE_TIER_PREFIXES;
|
|
19195
20999
|
exports.MODULE_TYPE_MISMATCH = MODULE_TYPE_MISMATCH;
|
|
@@ -19207,7 +21011,7 @@ exports.PLANET_SUBTYPE_TERRESTRIAL = PLANET_SUBTYPE_TERRESTRIAL;
|
|
|
19207
21011
|
exports.PLAYER_ALREADY_JOINED = PLAYER_ALREADY_JOINED;
|
|
19208
21012
|
exports.PLAYER_NOT_FOUND = PLAYER_NOT_FOUND;
|
|
19209
21013
|
exports.PLAYER_NOT_JOINED = PLAYER_NOT_JOINED;
|
|
19210
|
-
exports.PRECISION = PRECISION
|
|
21014
|
+
exports.PRECISION = PRECISION;
|
|
19211
21015
|
exports.PlatformContract = platform;
|
|
19212
21016
|
exports.Player = Player;
|
|
19213
21017
|
exports.PlayersManager = PlayersManager;
|
|
@@ -19286,6 +21090,8 @@ exports.calcCargoMass = calcCargoMass;
|
|
|
19286
21090
|
exports.calcEnergyUsage = calcEnergyUsage;
|
|
19287
21091
|
exports.calcStacksMass = calcStacksMass;
|
|
19288
21092
|
exports.calc_acceleration = calc_acceleration;
|
|
21093
|
+
exports.calc_build_duration = calc_build_duration;
|
|
21094
|
+
exports.calc_build_energy = calc_build_energy;
|
|
19289
21095
|
exports.calc_craft_duration = calc_craft_duration;
|
|
19290
21096
|
exports.calc_craft_energy = calc_craft_energy;
|
|
19291
21097
|
exports.calc_energyusage = calc_energyusage;
|
|
@@ -19305,6 +21111,7 @@ exports.calc_ship_mass = calc_ship_mass;
|
|
|
19305
21111
|
exports.calc_ship_rechargetime = calc_ship_rechargetime;
|
|
19306
21112
|
exports.calc_transfer_duration = calc_transfer_duration;
|
|
19307
21113
|
exports.calc_transit_duration = calc_transit_duration;
|
|
21114
|
+
exports.calc_travel_flighttime = calc_travel_flighttime;
|
|
19308
21115
|
exports.calculateFlightTime = calculateFlightTime;
|
|
19309
21116
|
exports.calculateLoadTimeBreakdown = calculateLoadTimeBreakdown;
|
|
19310
21117
|
exports.calculateRefuelingTime = calculateRefuelingTime;
|
|
@@ -19336,16 +21143,21 @@ exports.compareByStars = compareByStars;
|
|
|
19336
21143
|
exports.componentIcon = componentIcon;
|
|
19337
21144
|
exports.composeIdleResolve = composeIdleResolve;
|
|
19338
21145
|
exports.computeBaseCapacity = computeBaseCapacity;
|
|
21146
|
+
exports.computeBaseCapacityContainer = computeBaseCapacityContainer;
|
|
19339
21147
|
exports.computeBaseCapacityShip = computeBaseCapacityShip;
|
|
19340
21148
|
exports.computeBaseCapacityWarehouse = computeBaseCapacityWarehouse;
|
|
19341
21149
|
exports.computeBaseHullmass = computeBaseHullmass$1;
|
|
19342
21150
|
exports.computeBatteryCapabilities = computeBatteryCapabilities;
|
|
21151
|
+
exports.computeBuilderCapabilities = computeBuilderCapabilities;
|
|
21152
|
+
exports.computeBuilderDrain = computeBuilderDrain;
|
|
21153
|
+
exports.computeBuilderSpeed = computeBuilderSpeed;
|
|
19343
21154
|
exports.computeComponentStats = computeComponentStats;
|
|
19344
21155
|
exports.computeContainerCapabilities = computeContainerCapabilities;
|
|
19345
21156
|
exports.computeCraftedOutputStats = computeCraftedOutputStats;
|
|
19346
21157
|
exports.computeCrafterCapabilities = computeCrafterCapabilities;
|
|
19347
21158
|
exports.computeCrafterDrain = computeCrafterDrain;
|
|
19348
21159
|
exports.computeCrafterSpeed = computeCrafterSpeed;
|
|
21160
|
+
exports.computeEffectiveModuleStat = computeEffectiveModuleStat;
|
|
19349
21161
|
exports.computeEngineCapabilities = computeEngineCapabilities;
|
|
19350
21162
|
exports.computeEngineDrain = computeEngineDrain;
|
|
19351
21163
|
exports.computeEngineThrust = computeEngineThrust;
|
|
@@ -19363,7 +21175,6 @@ exports.computeGroupPerLegReach = computeGroupPerLegReach;
|
|
|
19363
21175
|
exports.computeHaulPenalty = computeHaulPenalty;
|
|
19364
21176
|
exports.computeHaulerCapabilities = computeHaulerCapabilities;
|
|
19365
21177
|
exports.computeHaulerCapacity = computeHaulerCapacity;
|
|
19366
|
-
exports.computeHaulerDrain = computeHaulerDrain;
|
|
19367
21178
|
exports.computeHaulerEfficiency = computeHaulerEfficiency;
|
|
19368
21179
|
exports.computeInputMass = computeInputMass;
|
|
19369
21180
|
exports.computeLauncherCapabilities = computeLauncherCapabilities;
|
|
@@ -19441,6 +21252,7 @@ exports.formatTier = formatTier;
|
|
|
19441
21252
|
exports.gatherEnergyCost = gatherEnergyCost;
|
|
19442
21253
|
exports.gathererDepthForTier = gathererDepthForTier;
|
|
19443
21254
|
exports.getAllRecipes = getAllRecipes;
|
|
21255
|
+
exports.getBaseHullmassFor = getBaseHullmassFor;
|
|
19444
21256
|
exports.getCapabilityAttributeRows = getCapabilityAttributeRows;
|
|
19445
21257
|
exports.getCapabilityAttributes = getCapabilityAttributes;
|
|
19446
21258
|
exports.getCategoryInfo = getCategoryInfo;
|
|
@@ -19519,12 +21331,14 @@ exports.isShip = isShip;
|
|
|
19519
21331
|
exports.isSubscriptionsDebugEnabled = isSubscriptionsDebugEnabled;
|
|
19520
21332
|
exports.isValidWormholePair = isValidWormholePair;
|
|
19521
21333
|
exports.isWarehouse = isWarehouse;
|
|
21334
|
+
exports.isWorkshop = isWorkshop;
|
|
19522
21335
|
exports.itemAbbreviations = itemAbbreviations;
|
|
19523
21336
|
exports.itemCategory = itemCategory;
|
|
19524
21337
|
exports.itemIds = itemIds;
|
|
19525
21338
|
exports.itemOffset = itemOffset;
|
|
19526
21339
|
exports.itemTier = itemTier;
|
|
19527
21340
|
exports.itemTypeCode = itemTypeCode;
|
|
21341
|
+
exports.jobsToLanes = jobsToLanes;
|
|
19528
21342
|
exports.kindCan = kindCan;
|
|
19529
21343
|
exports.laneKeyForModule = laneKeyForModule;
|
|
19530
21344
|
exports.lerp = lerp$1;
|
|
@@ -19543,6 +21357,7 @@ exports.needsRecharge = needsRecharge;
|
|
|
19543
21357
|
exports.normalizeDisplayName = normalizeDisplayName;
|
|
19544
21358
|
exports.parseWireEntity = parseWireEntity;
|
|
19545
21359
|
exports.partnerRegion = partnerRegion;
|
|
21360
|
+
exports.pickFabricator = pickFabricator;
|
|
19546
21361
|
exports.planParallelTransfer = planParallelTransfer;
|
|
19547
21362
|
exports.planRoute = planRoute;
|
|
19548
21363
|
exports.projectEntity = projectEntity;
|
|
@@ -19558,6 +21373,7 @@ exports.removeFromStacks = removeFromStacks;
|
|
|
19558
21373
|
exports.renderDescription = renderDescription;
|
|
19559
21374
|
exports.resolveItem = resolveItem;
|
|
19560
21375
|
exports.resolveItemCategory = resolveItemCategory;
|
|
21376
|
+
exports.resolveLaneBuilder = resolveLaneBuilder;
|
|
19561
21377
|
exports.resolveLaneCrafter = resolveLaneCrafter;
|
|
19562
21378
|
exports.resolveLaneGatherer = resolveLaneGatherer;
|
|
19563
21379
|
exports.resolveLaneLoader = resolveLaneLoader;
|
|
@@ -19565,6 +21381,7 @@ exports.resolveLockedAmount = resolveLockedAmount;
|
|
|
19565
21381
|
exports.resolveStats = resolveStats;
|
|
19566
21382
|
exports.rollTier = rollTier;
|
|
19567
21383
|
exports.rollWithinTier = rollWithinTier;
|
|
21384
|
+
exports.rollupBuilder = rollupBuilder;
|
|
19568
21385
|
exports.rollupCrafter = rollupCrafter;
|
|
19569
21386
|
exports.rollupGatherer = rollupGatherer;
|
|
19570
21387
|
exports.rollupLoaders = rollupLoaders;
|
|
@@ -19572,10 +21389,10 @@ exports.rotation = rotation;
|
|
|
19572
21389
|
exports.schedule = schedule;
|
|
19573
21390
|
exports.sdkSystemGraph = sdkSystemGraph;
|
|
19574
21391
|
exports.selectGatherLane = selectGatherLane;
|
|
19575
|
-
exports.setScanProvider = setScanProvider;
|
|
19576
21392
|
exports.setSubscriptionsDebug = setSubscriptionsDebug;
|
|
19577
21393
|
exports.simulateRoute = simulateRoute;
|
|
19578
21394
|
exports.slotAcceptsModule = slotAcceptsModule;
|
|
21395
|
+
exports.socketTail = socketTail;
|
|
19579
21396
|
exports.sourceLabelForOutput = sourceLabelForOutput;
|
|
19580
21397
|
exports.splitCost = splitCost;
|
|
19581
21398
|
exports.stackKey = stackKey;
|