@shipload/sdk 2.0.0-rc6 → 2.0.0-rc8

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.js CHANGED
@@ -213,10 +213,31 @@ var platform = /*#__PURE__*/Object.freeze({
213
213
  Contract: Contract$1
214
214
  });
215
215
 
216
- const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhSB2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgZjYW5jZWwAAwtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAVjb3VudAZ1aW50NjQOY2FuY2VsX3Jlc3VsdHMABgllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUPY2FuY2VsbGVkX2NvdW50BXVpbnQ4EHNjaGVkdWxlX3N0YXJ0ZWQLdGltZV9wb2ludD8LZW50aXR5Z3JvdXAHdWludDY0Pw1ncm91cF9tZW1iZXJzFkJfdmVjdG9yX2VudGl0eV9yZWZfRT8KY2FyZ29faXRlbQADB2l0ZW1faWQGdWludDE2CHF1YW50aXR5BnVpbnQzMgRzZWVkB3VpbnQ2ND8JY2FyZ29fcm93AAUCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQLZW50aXR5X25hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMAEA1zaGlwX2h1bGxtYXNzBnVpbnQzMg1zaGlwX2NhcGFjaXR5BnVpbnQzMgtzaGlwX2VuZXJneQZ1aW50MTYGc2hpcF96BnVpbnQxNgxzaGlwX2VuZ2luZXMObW92ZW1lbnRfc3RhdHMOc2hpcF9nZW5lcmF0b3IMZW5lcmd5X3N0YXRzDHNoaXBfbG9hZGVycwxsb2FkZXJfc3RhdHMOc2hpcF9leHRyYWN0b3IPZXh0cmFjdG9yX3N0YXRzCXNoaXBfd2FycAp3YXJwX3N0YXRzDHNoaXBfY3JhZnRlcg1jcmFmdGVyX3N0YXRzEndhcmVob3VzZV9jYXBhY2l0eQZ1aW50MzILd2FyZWhvdXNlX3oGdWludDE2EXdhcmVob3VzZV9sb2FkZXJzDGxvYWRlcl9zdGF0cxJjb250YWluZXJfaHVsbG1hc3MGdWludDMyEmNvbnRhaW5lcl9jYXBhY2l0eQZ1aW50MzILY29udGFpbmVyX3oGdWludDE2C2VudGl0eV9pbmZvABcEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwljYXJnb21hc3MGdWludDMyBWNhcmdvDGNhcmdvX2l0ZW1bXQdsb2FkZXJzDWxvYWRlcl9zdGF0cz8GZW5lcmd5B3VpbnQxNj8IaHVsbG1hc3MHdWludDMyPwdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwhjYXBhY2l0eQd1aW50MzI/CWV4dHJhY3RvchBleHRyYWN0b3Jfc3RhdHM/BHdhcnALd2FycF9zdGF0cz8HY3JhZnRlcg5jcmFmdGVyX3N0YXRzPwdpc19pZGxlBGJvb2wMY3VycmVudF90YXNrBXRhc2s/FGN1cnJlbnRfdGFza19lbGFwc2VkBnVpbnQzMhZjdXJyZW50X3Rhc2tfcmVtYWluaW5nBnVpbnQzMg1wZW5kaW5nX3Rhc2tzBnRhc2tbXQdpZGxlX2F0C3RpbWVfcG9pbnQ/CHNjaGVkdWxlCXNjaGVkdWxlPwplbnRpdHlfcmVmAAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0DmVudGl0eV9zdW1tYXJ5AAgEdHlwZQRuYW1lAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2VudGl0eV9uYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwdpc19pZGxlBGJvb2wOcmVzb2x2ZWRfY291bnQGdWludDMyDXBlbmRpbmdfY291bnQGdWludDMyEGVudGl0eV90YXNrX2luZm8ABAllbnRpdHlfaWQGdWludDY0C2VudGl0eV90eXBlBG5hbWUKdGFza19jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkCnRpbWVfcG9pbnQPZW50aXR5Z3JvdXBfcm93AAICaWQGdWludDY0DHBhcnRpY2lwYW50cwxlbnRpdHlfcmVmW10HZXh0cmFjdAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0B3N0cmF0dW0GdWludDE2CHF1YW50aXR5BnVpbnQzMg9leHRyYWN0b3Jfc3RhdHMABQRyYXRlBnVpbnQxNgVkcmFpbgZ1aW50MTYKZWZmaWNpZW5jeQZ1aW50MTYFZGVwdGgGdWludDE2BWRyaWxsBnVpbnQxNgtnYW1lX2NvbmZpZwADB3ZlcnNpb24GdWludDMyCGRlZmF1bHRzD2VudGl0eV9kZWZhdWx0cwVpdGVtcwppdGVtX2RlZltdCWdldGNvbmZpZwAAC2dldGVudGl0aWVzAAIFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQVuYW1lPwlnZXRlbnRpdHkAAgtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIZ2V0aXRlbXMAAAtnZXRsb2NhdGlvbgACAXgFaW50NjQBeQVpbnQ2NApnZXRsb2NkYXRhAAIBeAVpbnQ2NAF5BWludDY0CWdldG5lYXJieQADC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAhyZWNoYXJnZQRib29sCWdldHBsYXllcgABB2FjY291bnQEbmFtZQpnZXRzdGFydGVyAAAKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAADDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMLZXBvY2hfcHJvcHMObG9jYXRpb25fZXBvY2gEc2l6ZQZ1aW50MTYObG9jYXRpb25fZXBvY2gAAwZhY3RpdmUEYm9vbAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OA1sb2NhdGlvbl9pbmZvAAIGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50C3BsYXllcl9pbmZvAAYFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnNoaXBfY291bnQGdWludDY0D3dhcmVob3VzZV9jb3VudAZ1aW50NjQPY29udGFpbmVyX2NvdW50BnVpbnQ2NApwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0C3Jlc2VydmVfcm93AAICaWQGdWludDY0CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cADwJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwZ1aW50MzIIY2FwYWNpdHkGdWludDMyBmVuZXJneQZ1aW50MTYJY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzDm1vdmVtZW50X3N0YXRzCWdlbmVyYXRvcgxlbmVyZ3lfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMJZXh0cmFjdG9yEGV4dHJhY3Rvcl9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwdjcmFmdGVyDmNyYWZ0ZXJfc3RhdHM/CHNjaGVkdWxlCXNjaGVkdWxlPwpzcGF3bmNhcmdvAAMJZW50aXR5X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc3RhcnRlcl9pbmZvAAEEc2hpcAtlbnRpdHlfaW5mbwlzdGF0ZV9yb3cABgdlbmFibGVkBGJvb2wFZXBvY2gGdWludDMyBHNhbHQGdWludDY0BXNoaXBzBnVpbnQzMgRzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgxzdHJhdHVtX2RhdGEAAgdzdHJhdHVtDHN0cmF0dW1faW5mbwVzdGF0cw5yZXNvdXJjZV9zdGF0cwxzdHJhdHVtX2luZm8ABAdpdGVtX2lkBnVpbnQxNgRzZWVkBnVpbnQ2NAhyaWNobmVzcwZ1aW50MTYHcmVzZXJ2ZQZ1aW50MzIEdGFzawAIBHR5cGUFdWludDgIZHVyYXRpb24GdWludDMyCmNhbmNlbGFibGUFdWludDgLY29vcmRpbmF0ZXMMY29vcmRpbmF0ZXM/BWNhcmdvDGNhcmdvX2l0ZW1bXQxlbnRpdHl0YXJnZXQLZW50aXR5X3JlZj8LZW50aXR5Z3JvdXAHdWludDY0PwtlbmVyZ3lfY29zdAd1aW50MTY/CnRhc2tfZXZlbnQACQpldmVudF90eXBlBXVpbnQ4BW93bmVyBG5hbWULZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CnRhc2tfaW5kZXgFdWludDgEdGFzawR0YXNrCXN0YXJ0c19hdAp0aW1lX3BvaW50DGNvbXBsZXRlc19hdAp0aW1lX3BvaW50Cm5ld19lbmVyZ3kHdWludDE2Pwx0YXNrX3Jlc3VsdHMAAQhlbnRpdGllcxJlbnRpdHlfdGFza19pbmZvW10IdHJhbnNmZXIABgtzb3VyY2VfdHlwZQRuYW1lCXNvdXJjZV9pZAZ1aW50NjQJZGVzdF90eXBlBG5hbWUHZGVzdF9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50MTYIcXVhbnRpdHkGdWludDMyBnRyYXZlbAAFC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sCXR5cGVzX3JvdwAEAmlkBnVpbnQ2NBNlbnRpdHlfc3VtbWFyeV90eXBlDmVudGl0eV9zdW1tYXJ5EXN0YXJ0ZXJfaW5mb190eXBlDHN0YXJ0ZXJfaW5mbxBnYW1lX2NvbmZpZ190eXBlC2dhbWVfY29uZmlnDXdhcmVob3VzZV9yb3cACAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMgdsb2FkZXJzDGxvYWRlcl9zdGF0cwhzY2hlZHVsZQlzY2hlZHVsZT8Ed2FycAAEC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0AXgFaW50NjQBeQVpbnQ2NAp3YXJwX3N0YXRzAAEFcmFuZ2UGdWludDMyBHdpcGUAAAx3aXBlc2VxdWVuY2UAACUAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAESFpkEGY2FuY2VsxwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2FuY2VsCnN1bW1hcnk6ICdDYW5jZWwgc2NoZWR1bGVkIHRhc2tzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYW5jZWwgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgdGFza3MgZnJvbSB0aGUgZW5kIG9mIGFuIGVudGl0eSdzIHNjaGVkdWxlLiBUYXNrcyB0aGF0IGFyZSBpbW11dGFibGUgYW5kIGluIHByb2dyZXNzIGNhbm5vdCBiZSBjYW5jZWxsZWQuCgotLS0AAKgb32lURAljbGVhbnJzdnAAAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAYDQytyZFCWNvbmZpZ2xvZwAAAAAAgLzMRQVjcmFmdADgs8tTqWzURQxjcmVhdGVlbnRpdHkAAAAAAHgaq0oGZGVwbG95AAAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAACAjc3NXB2V4dHJhY3ShAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBleHRyYWN0CnN1bW1hcnk6ICdFeHRyYWN0IHJlc291cmNlcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXh0cmFjdCByZXNvdXJjZXMgYXQgdGhlIHNoaXAncyBjdXJyZW50IGxvY2F0aW9uLiBPbmx5IHdvcmtzIGF0IGV4dHJhY3RhYmxlIGxvY2F0aW9uIHR5cGVzLiBTY2hlZHVsZXMgYW4gZXh0cmFjdGlvbiB0YXNrIHRoYXQgY29uc3VtZXMgZW5lcmd5IGFuZCB5aWVsZHMgY2FyZ28gYmFzZWQgb24gdGhlIHNoaXAncyBleHRyYWN0b3Igc3RhdHMgYW5kIHRoZSBsb2NhdGlvbidzIHJlc291cmNlIGNvbXBvc2l0aW9uLgAAYG5NirJiCWdldGNvbmZpZwAAsHLZ5amyYgtnZXRlbnRpdGllc6QCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0aWVzCnN1bW1hcnk6ICdHZXQgYWxsIGVudGl0aWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBmdWxsIGVudGl0eSBpbmZvIGZvciBhbGwgZW50aXRpZXMgb3duZWQgYnkgYSBwbGF5ZXIuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgAA8NnlqbJiCWdldGVudGl0eaICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGVudGl0eQpzdW1tYXJ5OiAnR2V0IGVudGl0eSBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyB0aGUgY3VycmVudCBzdGF0ZSBvZiBhbiBlbnRpdHkgaW5jbHVkaW5nIGlkZW50aXR5LCBjYXJnbywgc2NoZWR1bGUgc3RhdGUsIGFuZCB0eXBlLXNwZWNpZmljIGZpZWxkcy4AAABYquyyYghnZXRpdGVtc5oCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGl0ZW1zCnN1bW1hcnk6ICdHZXQgYWxsIGF2YWlsYWJsZSBpdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGl0ZW1zIGluIHRoZSBnYW1lIGluY2x1ZGluZyB0aGVpciBpZCwgYmFzZSBwcmljZSwgYW5kIG1hc3MuACZ12SAas2ILZ2V0bG9jYXRpb27iAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NhdGlvbgpzdW1tYXJ5OiAnR2V0IGxvY2F0aW9uIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgbG9jYXRpb24gaW5jbHVkaW5nIHdoZXRoZXIgYSBzeXN0ZW0gZXhpc3RzLCBhbmQgZm9yIGVhY2ggaXRlbTogcHJpY2UsIHN1cHBseSwgcmFyaXR5IG11bHRpcGxpZXIsIGFuZCBsb2NhdGlvbiBtdWx0aXBsaWVyLgCAySYhGrNiCmdldGxvY2RhdGH+Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRsb2NkYXRhCnN1bW1hcnk6ICdHZXQgZGVyaXZlZCBsb2NhdGlvbiBkYXRhJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGRlcml2ZWQgbG9jYXRpb24gZGF0YSBpbmNsdWRpbmcgc3RhdGljIHByb3BlcnRpZXMgKHR5cGUsIGRpZmZpY3VsdHksIHNlZWRzKSBmcm9tIHRoZSBnYW1lIHNlZWQgYW5kIGVwb2NoLXNwZWNpZmljIHByb3BlcnRpZXMgKGFjdGl2ZSwgc2VlZHMpIGZyb20gdGhlIGN1cnJlbnQgZXBvY2ggc2VlZC4AAPDnGjWzYglnZXRuZWFyYnneAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRuZWFyYnkKc3VtbWFyeTogJ0dldCBuZWFyYnkgcmVhY2hhYmxlIHN5c3RlbXMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgbmVhcmJ5IHN5c3RlbXMgcmVhY2hhYmxlIGJ5IGFuIGVudGl0eSBmcm9tIGl0cyBwcm9qZWN0ZWQgbG9jYXRpb24uIFJldHVybnMgY3VycmVudCBzdGF0ZSAod2l0aCBjb21wbGV0ZWQgdGFza3MgcmVzb2x2ZWQpLCBwcm9qZWN0ZWQgc3RhdGUgKGFmdGVyIGFsbCBzY2hlZHVsZWQgdGFza3MpLCBhbmQgYSBsaXN0IG9mIHJlYWNoYWJsZSBzeXN0ZW1zIHdpdGggZGlzdGFuY2UsIGVuZXJneSBjb3N0LCBmbGlnaHQgdGltZSwgYW5kIG1hcmtldCBpbmZvcm1hdGlvbi4AALjKm1izYglnZXRwbGF5ZXL9Ai0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRwbGF5ZXIKc3VtbWFyeTogJ0dldCBwbGF5ZXIgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBwbGF5ZXIgaW5jbHVkaW5nIGJhbGFuY2UsIGRlYnQsIG5ldHdvcnRoLCBlbnRpdHkgY291bnRzLCBhbmQgcHJpY2luZyBmb3IgbmV4dCBwdXJjaGFzZXMuIFJldHVybnMgaXNfcGxheWVyPWZhbHNlIGlmIHRoZSBhY2NvdW50IGhhcyBub3Qgam9pbmVkIHRoZSBnYW1lLgDAVfmajLNiCmdldHN0YXJ0ZXKFAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdGFydGVyCnN1bW1hcnk6ICdHZXQgc3RhcnRlciBzaGlwIGFuZCBiYWxhbmNlIGluZm9ybWF0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIHRoZSBzdGFydGVyIHNoaXAgc3RhdHMgYW5kIGluaXRpYWwgYmFsYW5jZSBhIG5ldyBwbGF5ZXIgd291bGQgcmVjZWl2ZSB1cG9uIGpvaW5pbmcuIFVzZWQgZm9yIG9uYm9hcmRpbmcgVUkgdG8gZGlzcGxheSB3aGF0IHBsYXllcnMgd2lsbCBnZXQgYmVmb3JlIHRoZXkgcmVnaXN0ZXIuAIDU2dyMs2IKZ2V0c3RyYXR1bQCAlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4KCi0tLQAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7JAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQKCi0tLQAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdl0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4KCi0tLQAAAEDtSLG6B3Jlc29sdmXVAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuCgotLS0AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAZdegyU3FCnNwYXduY2FyZ28AAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbMsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBpdGVtcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAUK/hBHdhcnAAAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0LAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAC4ajqTJ0UDaTY0AAANY29udGFpbmVyX3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAABA7auwugNpNjQAAAtyZXNlcnZlX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAXAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAAGBuTYqyYgtnYW1lX2NvbmZpZwCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwAAAFiq7LJiCml0ZW1zX2luZm8AJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAA8OcaNbNiC25lYXJieV9pbmZvAAC4yptYs2ILcGxheWVyX2luZm8AwFX5moyzYgxzdGFydGVyX2luZm8AgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAFctPM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
216
+ const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAhVCX3ZlY3Rvcl9lbnRpdHlfcmVmX0UMZW50aXR5X3JlZltdDWxvY2F0aW9uX3R5cGUFdWludDhWCWFkZG1vZHVsZQAFC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NAxtb2R1bGVfaW5kZXgFdWludDgPbW9kdWxlX2NhcmdvX2lkBnVpbnQ2NA90YXJnZXRfY2FyZ29faWQGdWludDY0B2FkdmFuY2UAAgZyZXZlYWwGc3RyaW5nBmNvbW1pdAtjaGVja3N1bTI1NgVibGVuZAADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BmlucHV0cwxjYXJnb19pdGVtW10GY2FuY2VsAAMLZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQFY291bnQGdWludDY0DmNhbmNlbF9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lD2NhbmNlbGxlZF9jb3VudAV1aW50OBBzY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/CmNhcmdvX2l0ZW0ABAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIEc2VlZAd1aW50NjQ/B21vZHVsZXMObW9kdWxlX2VudHJ5W10JY2FyZ29fcm93AAYCaWQGdWludDY0CWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0B21vZHVsZXMObW9kdWxlX2VudHJ5W10KY2FyZ29fc2VlZAACB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CWNsZWFucnN2cAACBWVwb2NoBnVpbnQ2NAhtYXhfcm93cwZ1aW50NjQKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/BmNvbW1pdAABBmNvbW1pdAtjaGVja3N1bTI1Ngljb25maWdsb2cAAQZjb25maWcLZ2FtZV9jb25maWcNY29udGFpbmVyX3JvdwAIAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCGh1bGxtYXNzBnVpbnQzMghjYXBhY2l0eQZ1aW50MzIJY2FyZ29tYXNzBnVpbnQzMghzY2hlZHVsZQlzY2hlZHVsZT8LY29vcmRpbmF0ZXMAAwF4BWludDY0AXkFaW50NjQBegd1aW50MTY/BWNyYWZ0AAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQJcmVjaXBlX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGaW5wdXRzDGNhcmdvX2l0ZW1bXQ1jcmFmdGVyX3N0YXRzAAIFc3BlZWQGdWludDE2BWRyYWluBnVpbnQxNgxjcmVhdGVlbnRpdHkABQVvd25lcgRuYW1lC2VudGl0eV90eXBlBG5hbWULZW50aXR5X25hbWUGc3RyaW5nAXgFaW50NjQBeQVpbnQ2NAZkZXBsb3kABQtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NA5wYWNrZWRfaXRlbV9pZAZ1aW50MTYEc2VlZAZ1aW50NjQLZW50aXR5X25hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxlbmVyZ3lfc3RhdHMAAghjYXBhY2l0eQZ1aW50MTYIcmVjaGFyZ2UGdWludDE2FGVudGl0eV9jdXJyZW50X3N0YXRlAAILY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMGZW5lcmd5BnVpbnQxNg9lbnRpdHlfZGVmYXVsdHMABhJ3YXJlaG91c2VfY2FwYWNpdHkGdWludDMyC3dhcmVob3VzZV96BnVpbnQxNhF3YXJlaG91c2VfbG9hZGVycwxsb2FkZXJfc3RhdHMSY29udGFpbmVyX2h1bGxtYXNzBnVpbnQzMhJjb250YWluZXJfY2FwYWNpdHkGdWludDMyC2NvbnRhaW5lcl96BnVpbnQxNgtlbnRpdHlfaW5mbwAXBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMJY2FyZ29tYXNzBnVpbnQzMgVjYXJnbwxjYXJnb19pdGVtW10HbG9hZGVycw1sb2FkZXJfc3RhdHM/BmVuZXJneQd1aW50MTY/CGh1bGxtYXNzB3VpbnQzMj8HZW5naW5lcw9tb3ZlbWVudF9zdGF0cz8JZ2VuZXJhdG9yDWVuZXJneV9zdGF0cz8IY2FwYWNpdHkHdWludDMyPwlleHRyYWN0b3IQZXh0cmFjdG9yX3N0YXRzPwR3YXJwC3dhcnBfc3RhdHM/B2NyYWZ0ZXIOY3JhZnRlcl9zdGF0cz8HaXNfaWRsZQRib29sDGN1cnJlbnRfdGFzawV0YXNrPxRjdXJyZW50X3Rhc2tfZWxhcHNlZAZ1aW50MzIWY3VycmVudF90YXNrX3JlbWFpbmluZwZ1aW50MzINcGVuZGluZ190YXNrcwZ0YXNrW10HaWRsZV9hdAt0aW1lX3BvaW50PwhzY2hlZHVsZQlzY2hlZHVsZT8KZW50aXR5X3JlZgACC2VudGl0eV90eXBlBG5hbWUJZW50aXR5X2lkBnVpbnQ2NA5lbnRpdHlfc3VtbWFyeQAIBHR5cGUEbmFtZQJpZAZ1aW50NjQFb3duZXIEbmFtZQtlbnRpdHlfbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMHaXNfaWRsZQRib29sDnJlc29sdmVkX2NvdW50BnVpbnQzMg1wZW5kaW5nX2NvdW50BnVpbnQzMhBlbnRpdHlfdGFza19pbmZvAAQJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lCnRhc2tfY291bnQFdWludDgQc2NoZWR1bGVfc3RhcnRlZAp0aW1lX3BvaW50D2VudGl0eWdyb3VwX3JvdwACAmlkBnVpbnQ2NAxwYXJ0aWNpcGFudHMMZW50aXR5X3JlZltdB2V4dHJhY3QABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAdzdHJhdHVtBnVpbnQxNghxdWFudGl0eQZ1aW50MzIPZXh0cmFjdG9yX3N0YXRzAAQEcmF0ZQZ1aW50MTYFZHJhaW4GdWludDE2BWRlcHRoBnVpbnQxNgVkcmlsbAZ1aW50MTYLZ2FtZV9jb25maWcAAwd2ZXJzaW9uBnVpbnQzMghkZWZhdWx0cw9lbnRpdHlfZGVmYXVsdHMFaXRlbXMKaXRlbV9kZWZbXQlnZXRjb25maWcAAAtnZXRlbnRpdGllcwACBW93bmVyBG5hbWULZW50aXR5X3R5cGUFbmFtZT8JZ2V0ZW50aXR5AAILZW50aXR5X3R5cGUEbmFtZQllbnRpdHlfaWQGdWludDY0CGdldGl0ZW1zAAALZ2V0bG9jYXRpb24AAgF4BWludDY0AXkFaW50NjQKZ2V0bG9jZGF0YQACAXgFaW50NjQBeQVpbnQ2NAlnZXRuZWFyYnkAAwtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQIcmVjaGFyZ2UEYm9vbAlnZXRwbGF5ZXIAAQdhY2NvdW50BG5hbWUKZ2V0c3RyYXR1bQADAXgFaW50NjQBeQVpbnQ2NAdzdHJhdHVtBnVpbnQxNgxnZXRzdW1tYXJpZXMAAgVvd25lcgRuYW1lC2VudGl0eV90eXBlBW5hbWU/C2dyb3VwdHJhdmVsAAQIZW50aXRpZXMMZW50aXR5X3JlZltdAXgFaW50NjQBeQVpbnQ2NAhyZWNoYXJnZQRib29sBGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghpdGVtX2RlZgACAmlkBnVpbnQxNgRtYXNzBnVpbnQzMgppdGVtc19pbmZvAAEFaXRlbXMKaXRlbV9kZWZbXQRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyBnRocnVzdAZ1aW50MTYIcXVhbnRpdHkFdWludDgQbG9jYXRpb25fZGVyaXZlZAADDHN0YXRpY19wcm9wcw9sb2NhdGlvbl9zdGF0aWMLZXBvY2hfcHJvcHMObG9jYXRpb25fZXBvY2gEc2l6ZQZ1aW50MTYObG9jYXRpb25fZXBvY2gAAwZhY3RpdmUEYm9vbAVzZWVkMAV1aW50OAVzZWVkMQV1aW50OA1sb2NhdGlvbl9pbmZvAAIGY29vcmRzC2Nvb3JkaW5hdGVzCWlzX3N5c3RlbQRib29sDGxvY2F0aW9uX3JvdwAGAmlkBnVpbnQ2NAVvd25lcgRuYW1lC2Nvb3JkaW5hdGVzC2Nvb3JkaW5hdGVzCWNhcmdvbWFzcwZ1aW50MzIFY2FyZ28MY2FyZ29faXRlbVtdCHNjaGVkdWxlCXNjaGVkdWxlPw9sb2NhdGlvbl9zdGF0aWMABQZjb29yZHMLY29vcmRpbmF0ZXMEdHlwZQ1sb2NhdGlvbl90eXBlB3N1YnR5cGUFdWludDgFc2VlZDAFdWludDgFc2VlZDEFdWludDgMbW9kdWxlX2VudHJ5AAIEdHlwZQV1aW50OAlpbnN0YWxsZWQLY2FyZ29fc2VlZD8ObW92ZW1lbnRfc3RhdHMAAgZ0aHJ1c3QGdWludDMyBWRyYWluBnVpbnQxNgtuZWFyYnlfaW5mbwAFCmNhbl90cmF2ZWwEYm9vbAdjdXJyZW50FGVudGl0eV9jdXJyZW50X3N0YXRlCXByb2plY3RlZBRlbnRpdHlfY3VycmVudF9zdGF0ZQptYXhfZW5lcmd5BnVpbnQxNgdzeXN0ZW1zD25lYXJieV9zeXN0ZW1bXQ1uZWFyYnlfc3lzdGVtAAQIZGlzdGFuY2UGdWludDY0C2VuZXJneV9jb3N0BnVpbnQ2NAtmbGlnaHRfdGltZQZ1aW50MzIIbG9jYXRpb24NbG9jYXRpb25faW5mbwZub3RpZnkAAQVldmVudAp0YXNrX2V2ZW50C3BsYXllcl9pbmZvAAYFb3duZXIEbmFtZQlpc19wbGF5ZXIEYm9vbAxjb21wYW55X25hbWUGc3RyaW5nCnNoaXBfY291bnQGdWludDY0D3dhcmVob3VzZV9jb3VudAZ1aW50NjQPY29udGFpbmVyX2NvdW50BnVpbnQ2NApwbGF5ZXJfcm93AAEFb3duZXIEbmFtZQhyZWNoYXJnZQACC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0C3Jlc2VydmVfcm93AAICaWQGdWludDY0CXJlbWFpbmluZwZ1aW50MzIHcmVzb2x2ZQADC2VudGl0eV90eXBlBG5hbWUCaWQGdWludDY0BWNvdW50B3VpbnQ2ND8PcmVzb2x2ZV9yZXN1bHRzAAYJZW50aXR5X2lkBnVpbnQ2NAtlbnRpdHlfdHlwZQRuYW1lDnJlc29sdmVkX2NvdW50BXVpbnQ4FG5ld19zY2hlZHVsZV9zdGFydGVkC3RpbWVfcG9pbnQ/C2VudGl0eWdyb3VwB3VpbnQ2ND8NZ3JvdXBfbWVtYmVycxZCX3ZlY3Rvcl9lbnRpdHlfcmVmX0U/DnJlc291cmNlX3N0YXRzAAMFc3RhdDEGdWludDE2BXN0YXQyBnVpbnQxNgVzdGF0MwZ1aW50MTYIcm1tb2R1bGUABAtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQMbW9kdWxlX2luZGV4BXVpbnQ4D3RhcmdldF9jYXJnb19pZAZ1aW50NjQEc2FsdAABBHNhbHQGdWludDY0CHNjaGVkdWxlAAIHc3RhcnRlZAp0aW1lX3BvaW50BXRhc2tzBnRhc2tbXQxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cAEAJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwtjb29yZGluYXRlcwtjb29yZGluYXRlcwhodWxsbWFzcwd1aW50MzI/CGNhcGFjaXR5B3VpbnQzMj8GZW5lcmd5B3VpbnQxNj8JY2FyZ29tYXNzBnVpbnQzMgdlbmdpbmVzD21vdmVtZW50X3N0YXRzPwlnZW5lcmF0b3INZW5lcmd5X3N0YXRzPwdsb2FkZXJzDWxvYWRlcl9zdGF0cz8JZXh0cmFjdG9yEGV4dHJhY3Rvcl9zdGF0cz8Ed2FycAt3YXJwX3N0YXRzPwdjcmFmdGVyDmNyYWZ0ZXJfc3RhdHM/B21vZHVsZXMObW9kdWxlX2VudHJ5W10Ic2NoZWR1bGUJc2NoZWR1bGU/CnNwYXduY2FyZ28AAwllbnRpdHlfaWQGdWludDY0B2l0ZW1faWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAtzcGF3bnNlZWRlZAAECWVudGl0eV9pZAZ1aW50NjQHaXRlbV9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0BHNlZWQGdWludDY0CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50MzIEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2DHN0cmF0dW1fZGF0YQACB3N0cmF0dW0Mc3RyYXR1bV9pbmZvBXN0YXRzDnJlc291cmNlX3N0YXRzDHN0cmF0dW1faW5mbwAEB2l0ZW1faWQGdWludDE2BHNlZWQGdWludDY0CHJpY2huZXNzBnVpbnQxNgdyZXNlcnZlBnVpbnQzMgR0YXNrAAgEdHlwZQV1aW50OAhkdXJhdGlvbgZ1aW50MzIKY2FuY2VsYWJsZQV1aW50OAtjb29yZGluYXRlcwxjb29yZGluYXRlcz8FY2FyZ28MY2FyZ29faXRlbVtdDGVudGl0eXRhcmdldAtlbnRpdHlfcmVmPwtlbnRpdHlncm91cAd1aW50NjQ/C2VuZXJneV9jb3N0B3VpbnQxNj8KdGFza19ldmVudAAJCmV2ZW50X3R5cGUFdWludDgFb3duZXIEbmFtZQtlbnRpdHlfdHlwZQRuYW1lCWVudGl0eV9pZAZ1aW50NjQKdGFza19pbmRleAV1aW50OAR0YXNrBHRhc2sJc3RhcnRzX2F0CnRpbWVfcG9pbnQMY29tcGxldGVzX2F0CnRpbWVfcG9pbnQKbmV3X2VuZXJneQd1aW50MTY/DHRhc2tfcmVzdWx0cwABCGVudGl0aWVzEmVudGl0eV90YXNrX2luZm9bXQh0cmFuc2ZlcgAGC3NvdXJjZV90eXBlBG5hbWUJc291cmNlX2lkBnVpbnQ2NAlkZXN0X3R5cGUEbmFtZQdkZXN0X2lkBnVpbnQ2NAdpdGVtX2lkBnVpbnQxNghxdWFudGl0eQZ1aW50MzIGdHJhdmVsAAULZW50aXR5X3R5cGUEbmFtZQJpZAZ1aW50NjQBeAVpbnQ2NAF5BWludDY0CHJlY2hhcmdlBGJvb2wJdHlwZXNfcm93AAMCaWQGdWludDY0E2VudGl0eV9zdW1tYXJ5X3R5cGUOZW50aXR5X3N1bW1hcnkQZ2FtZV9jb25maWdfdHlwZQtnYW1lX2NvbmZpZw13YXJlaG91c2Vfcm93AAgCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcLY29vcmRpbmF0ZXMLY29vcmRpbmF0ZXMIY2FwYWNpdHkGdWludDMyCWNhcmdvbWFzcwZ1aW50MzIHbG9hZGVycwxsb2FkZXJfc3RhdHMIc2NoZWR1bGUJc2NoZWR1bGU/BHdhcnAABAtlbnRpdHlfdHlwZQRuYW1lAmlkBnVpbnQ2NAF4BWludDY0AXkFaW50NjQKd2FycF9zdGF0cwABBXJhbmdlBnVpbnQzMgR3aXBlAAAMd2lwZXNlcXVlbmNlAAAoAABQUScqUzIJYWRkbW9kdWxlAAAAAEChaXYyB2FkdmFuY2XTAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZHZhbmNlCnN1bW1hcnk6ICdBZHZhbmNlIHR1cm4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkdmFuY2UgdGhlIGdhbWUgdG8gdGhlIG5leHQgdHVybi4AAAAAgDRVPAVibGVuZAAAAAAARIWmQQZjYW5jZWzHAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBjYW5jZWwKc3VtbWFyeTogJ0NhbmNlbCBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbmNlbCB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB0YXNrcyBmcm9tIHRoZSBlbmQgb2YgYW4gZW50aXR5J3Mgc2NoZWR1bGUuIFRhc2tzIHRoYXQgYXJlIGltbXV0YWJsZSBhbmQgaW4gcHJvZ3Jlc3MgY2Fubm90IGJlIGNhbmNlbGxlZC4KCi0tLQAAqBvfaVRECWNsZWFucnN2cAAAgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl08QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgoKLS0tAABgNDK3JkUJY29uZmlnbG9nAAAAAACAvMxFBWNyYWZ0AOCzy1OpbNRFDGNyZWF0ZWVudGl0eQAAAAAAeBqrSgZkZXBsb3kAAAAAAKh4zFQGZW5hYmxl4gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLgoKLS0tAAAAICNzc1cHZXh0cmFjdKEDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGV4dHJhY3QKc3VtbWFyeTogJ0V4dHJhY3QgcmVzb3VyY2VzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpFeHRyYWN0IHJlc291cmNlcyBhdCB0aGUgc2hpcCdzIGN1cnJlbnQgbG9jYXRpb24uIE9ubHkgd29ya3MgYXQgZXh0cmFjdGFibGUgbG9jYXRpb24gdHlwZXMuIFNjaGVkdWxlcyBhbiBleHRyYWN0aW9uIHRhc2sgdGhhdCBjb25zdW1lcyBlbmVyZ3kgYW5kIHlpZWxkcyBjYXJnbyBiYXNlZCBvbiB0aGUgc2hpcCdzIGV4dHJhY3RvciBzdGF0cyBhbmQgdGhlIGxvY2F0aW9uJ3MgcmVzb3VyY2UgY29tcG9zaXRpb24uAABgbk2KsmIJZ2V0Y29uZmlnAACwctnlqbJiC2dldGVudGl0aWVzpAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXRpZXMKc3VtbWFyeTogJ0dldCBhbGwgZW50aXRpZXMgZm9yIGEgcGxheWVyJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIGZ1bGwgZW50aXR5IGluZm8gZm9yIGFsbCBlbnRpdGllcyBvd25lZCBieSBhIHBsYXllci4gT3B0aW9uYWxseSBmaWx0ZXIgYnkgZW50aXR5IHR5cGUuAADw2eWpsmIJZ2V0ZW50aXR5ogItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0ZW50aXR5CnN1bW1hcnk6ICdHZXQgZW50aXR5IHN0YXRlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpSZXR1cm5zIHRoZSBjdXJyZW50IHN0YXRlIG9mIGFuIGVudGl0eSBpbmNsdWRpbmcgaWRlbnRpdHksIGNhcmdvLCBzY2hlZHVsZSBzdGF0ZSwgYW5kIHR5cGUtc3BlY2lmaWMgZmllbGRzLgAAAFiq7LJiCGdldGl0ZW1zmgItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ2V0aXRlbXMKc3VtbWFyeTogJ0dldCBhbGwgYXZhaWxhYmxlIGl0ZW1zJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiByZXR1cm5zIGEgbGlzdCBvZiBhbGwgaXRlbXMgaW4gdGhlIGdhbWUgaW5jbHVkaW5nIHRoZWlyIGlkLCBiYXNlIHByaWNlLCBhbmQgbWFzcy4AJnXZIBqzYgtnZXRsb2NhdGlvbuICLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGxvY2F0aW9uCnN1bW1hcnk6ICdHZXQgbG9jYXRpb24gaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSBsb2NhdGlvbiBpbmNsdWRpbmcgd2hldGhlciBhIHN5c3RlbSBleGlzdHMsIGFuZCBmb3IgZWFjaCBpdGVtOiBwcmljZSwgc3VwcGx5LCByYXJpdHkgbXVsdGlwbGllciwgYW5kIGxvY2F0aW9uIG11bHRpcGxpZXIuAIDJJiEas2IKZ2V0bG9jZGF0Yf4CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldGxvY2RhdGEKc3VtbWFyeTogJ0dldCBkZXJpdmVkIGxvY2F0aW9uIGRhdGEnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIHJldHVybnMgZGVyaXZlZCBsb2NhdGlvbiBkYXRhIGluY2x1ZGluZyBzdGF0aWMgcHJvcGVydGllcyAodHlwZSwgZGlmZmljdWx0eSwgc2VlZHMpIGZyb20gdGhlIGdhbWUgc2VlZCBhbmQgZXBvY2gtc3BlY2lmaWMgcHJvcGVydGllcyAoYWN0aXZlLCBzZWVkcykgZnJvbSB0aGUgY3VycmVudCBlcG9jaCBzZWVkLgAA8OcaNbNiCWdldG5lYXJied4DLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldG5lYXJieQpzdW1tYXJ5OiAnR2V0IG5lYXJieSByZWFjaGFibGUgc3lzdGVtcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBuZWFyYnkgc3lzdGVtcyByZWFjaGFibGUgYnkgYW4gZW50aXR5IGZyb20gaXRzIHByb2plY3RlZCBsb2NhdGlvbi4gUmV0dXJucyBjdXJyZW50IHN0YXRlICh3aXRoIGNvbXBsZXRlZCB0YXNrcyByZXNvbHZlZCksIHByb2plY3RlZCBzdGF0ZSAoYWZ0ZXIgYWxsIHNjaGVkdWxlZCB0YXNrcyksIGFuZCBhIGxpc3Qgb2YgcmVhY2hhYmxlIHN5c3RlbXMgd2l0aCBkaXN0YW5jZSwgZW5lcmd5IGNvc3QsIGZsaWdodCB0aW1lLCBhbmQgbWFya2V0IGluZm9ybWF0aW9uLgAAuMqbWLNiCWdldHBsYXllcv0CLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGdldHBsYXllcgpzdW1tYXJ5OiAnR2V0IHBsYXllciBpbmZvcm1hdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHBsYXllciBpbmNsdWRpbmcgYmFsYW5jZSwgZGVidCwgbmV0d29ydGgsIGVudGl0eSBjb3VudHMsIGFuZCBwcmljaW5nIGZvciBuZXh0IHB1cmNoYXNlcy4gUmV0dXJucyBpc19wbGF5ZXI9ZmFsc2UgaWYgdGhlIGFjY291bnQgaGFzIG5vdCBqb2luZWQgdGhlIGdhbWUuAIDU2dyMs2IKZ2V0c3RyYXR1bQCAlbtGSo2zYgxnZXRzdW1tYXJpZXPoAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBnZXRzdW1tYXJpZXMKc3VtbWFyeTogJ0dldCBlbnRpdHkgc3VtbWFyaWVzIGZvciBhIHBsYXllcicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKUmV0dXJucyBsaWdodHdlaWdodCBzdW1tYXJpZXMgb2YgYWxsIGVudGl0aWVzIG93bmVkIGJ5IGEgcGxheWVyIGluY2x1ZGluZyB0eXBlLCBpZCwgb3duZXIsIG5hbWUsIGxvY2F0aW9uLCBhbmQgaWRsZSBzdGF0dXMuIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGVudGl0eSB0eXBlLgCi2ubmqullC2dyb3VwdHJhdmVsmgQtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZ3JvdXB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgbXVsdGlwbGUgZW50aXRpZXMgdG9nZXRoZXInCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIGdyb3VwIHRyYXZlbCBmb3IgbXVsdGlwbGUgZW50aXRpZXMgdG8gYSBkZXN0aW5hdGlvbi4gQWxsIGVudGl0aWVzIG11c3QgYmUgYXQgdGhlIHNhbWUgbG9jYXRpb24gYW5kIG93bmVkIGJ5IHRoZSBjYWxsZXIuIEF0IGxlYXN0IG9uZSBlbnRpdHkgd2l0aCBlbmdpbmVzIGlzIHJlcXVpcmVkIHRvIHByb3ZpZGUgdGhydXN0LiBGbGlnaHQgZHVyYXRpb24gaXMgY2FsY3VsYXRlZCBmcm9tIGNvbWJpbmVkIHRocnVzdCBhbmQgdG90YWwgbWFzcyBvZiBhbGwgZW50aXRpZXMuIENyZWF0ZXMgYW4gZW50aXR5Z3JvdXAgZm9yIGF0b21pYyByZXNvbHV0aW9uIGFuZCBjYW5jZWxsYXRpb24uAAAAAADQsGkEaGFzaP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4KCi0tLQAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7JAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQKCi0tLQAAAAD45TKdBm5vdGlmeYoDLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG5vdGlmeQpzdW1tYXJ5OiAnVGFzayBsaWZlY3ljbGUgbm90aWZpY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbnRlcm5hbCBhY3Rpb24gdGhhdCBub3RpZmllcyBlbnRpdHkgb3duZXJzIG9mIHRhc2sgbGlmZWN5Y2xlIGV2ZW50cyAocmVzb2x2ZWQsIGNhbmNlbGxlZCkuIENhbGxlZCBpbmxpbmUgd2hlbiB0YXNrcyBjaGFuZ2Ugc3RhdGUuIFVzZXMgcmVxdWlyZV9yZWNpcGllbnQgdG8gZW5hYmxlIG9mZi1jaGFpbiBtb25pdG9yaW5nIHZpYSBhY3Rpb24gdHJhY2VzLgAAAIpd05C6CHJlY2hhcmdl0gItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcmVjaGFyZ2UKc3VtbWFyeTogJ1JlY2hhcmdlIHNoaXAgZW5lcmd5JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTY2hlZHVsZSBhIHJlY2hhcmdlIHRhc2sgZm9yIGFuIGVudGl0eSB0byByZXN0b3JlIGVuZXJneSB0byBmdWxsIGNhcGFjaXR5LiBUaGUgcmVjaGFyZ2UgZHVyYXRpb24gZGVwZW5kcyBvbiBjdXJyZW50IGVuZXJneSBsZXZlbCBhbmQgcmVjaGFyZ2UgcmF0ZS4KCi0tLQAAAEDtSLG6B3Jlc29sdmXVAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiByZXNvbHZlCnN1bW1hcnk6ICdDb21wbGV0ZSBzY2hlZHVsZWQgdGFza3MnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClJlc29sdmUgY29tcGxldGVkIHRhc2tzIGluIGFuIGVudGl0eSdzIHNjaGVkdWxlLCBhcHBseWluZyB0aGVpciBlZmZlY3RzIChyZWNoYXJnZSBlbmVyZ3ksIHVwZGF0ZSBsb2NhdGlvbiwgbG9hZC91bmxvYWQgY2FyZ28pLiBJZiBjb3VudCBpcyBzcGVjaWZpZWQsIHJlc29sdmUgZXhhY3RseSB0aGF0IG1hbnkgdGFza3M7IG90aGVyd2lzZSByZXNvbHZlIGFsbCBjb21wbGV0ZWQgdGFza3MuIEZhaWxzIGlmIGNvdW50IGV4Y2VlZHMgdGhlIG51bWJlciBvZiBjb21wbGV0ZWQgdGFza3MuCgotLS0AAAAq6kSlvAhybW1vZHVsZQAAAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAZdegyU3FCnNwYXduY2FyZ28AAJJKSuHJTcULc3Bhd25zZWVkZWQAAAAAVy08zc0IdHJhbnNmZXLIAy0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmFuc2ZlcgpzdW1tYXJ5OiAnVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiBlbnRpdGllcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVHJhbnNmZXIgY2FyZ28gYmV0d2VlbiB0d28gZW50aXRpZXMgYXQgdGhlIHNhbWUgbG9jYXRpb24uIEJvdGggZW50aXRpZXMgbXVzdCBiZSBvd25lZCBieSB0aGUgY2FsbGVyIGFuZCBhdCBsZWFzdCBvbmUgbXVzdCBoYXZlIGxvYWRlcnMuIENyZWF0ZXMgbG9hZCBhbmQgdW5sb2FkIHRhc2tzIG9uIGJvdGggZW50aXRpZXMgd2l0aCBkdXJhdGlvbiBiYXNlZCBvbiBjb21iaW5lZCBsb2FkZXIgY2FwYWNpdHkgYW5kIFotZGlzdGFuY2UgYmV0d2VlbiB0aGVtLgAAAABEtc3NBnRyYXZlbMsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhbiBlbnRpdHkgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBpdGVtcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAUK/hBHdhcnAAAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLaDQVNoqrKrjDHdpcGVzZXF1ZW5jZcIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGVzZXF1ZW5jZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGVzZXF1ZW5jZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0LAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAC4ajqTJ0UDaTY0AAANY29udGFpbmVyX3JvdwCqppf57PJUA2k2NAAAD2VudGl0eWdyb3VwX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAABA7auwugNpNjQAAAtyZXNlcnZlX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAAACsqs8DaTY0AAAJdHlwZXNfcm93AABQWNOmruEDaTY0AAANd2FyZWhvdXNlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAWAAAAAESFpkEOY2FuY2VsX3Jlc3VsdHMAAAAAgLzMRQx0YXNrX3Jlc3VsdHMAAAAAeBqrSgx0YXNrX3Jlc3VsdHMAAAAgI3NzVwx0YXNrX3Jlc3VsdHMAAGBuTYqyYgtnYW1lX2NvbmZpZwCwctnlqbJiDWVudGl0eV9pbmZvW10AAPDZ5amyYgtlbnRpdHlfaW5mbwAAAFiq7LJiCml0ZW1zX2luZm8AJnXZIBqzYg1sb2NhdGlvbl9pbmZvAIDJJiEas2IQbG9jYXRpb25fZGVyaXZlZAAA8OcaNbNiC25lYXJieV9pbmZvAAC4yptYs2ILcGxheWVyX2luZm8AgNTZ3IyzYgxzdHJhdHVtX2RhdGGAlbtGSo2zYhBlbnRpdHlfc3VtbWFyeVtdAKLa5uaq6WUMdGFza19yZXN1bHRzAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAAAIpd05C6DHRhc2tfcmVzdWx0cwAAAEDtSLG6D3Jlc29sdmVfcmVzdWx0cwAAAFctPM3NDHRhc2tfcmVzdWx0cwAAAABEtc3NDHRhc2tfcmVzdWx0cwAAAAAAUK/hDHRhc2tfcmVzdWx0cw==');
217
217
  const abi = antelope.ABI.from(abiBlob);
218
218
  var Types;
219
219
  (function (Types) {
220
+ let addmodule = class addmodule extends antelope.Struct {
221
+ };
222
+ tslib.__decorate([
223
+ antelope.Struct.field(antelope.Name)
224
+ ], addmodule.prototype, "entity_type", void 0);
225
+ tslib.__decorate([
226
+ antelope.Struct.field(antelope.UInt64)
227
+ ], addmodule.prototype, "entity_id", void 0);
228
+ tslib.__decorate([
229
+ antelope.Struct.field(antelope.UInt8)
230
+ ], addmodule.prototype, "module_index", void 0);
231
+ tslib.__decorate([
232
+ antelope.Struct.field(antelope.UInt64)
233
+ ], addmodule.prototype, "module_cargo_id", void 0);
234
+ tslib.__decorate([
235
+ antelope.Struct.field(antelope.UInt64)
236
+ ], addmodule.prototype, "target_cargo_id", void 0);
237
+ addmodule = tslib.__decorate([
238
+ antelope.Struct.type('addmodule')
239
+ ], addmodule);
240
+ Types.addmodule = addmodule;
220
241
  let advance = class advance extends antelope.Struct {
221
242
  };
222
243
  tslib.__decorate([
@@ -229,6 +250,63 @@ var Types;
229
250
  antelope.Struct.type('advance')
230
251
  ], advance);
231
252
  Types.advance = advance;
253
+ let cargo_seed = class cargo_seed extends antelope.Struct {
254
+ };
255
+ tslib.__decorate([
256
+ antelope.Struct.field(antelope.UInt16)
257
+ ], cargo_seed.prototype, "item_id", void 0);
258
+ tslib.__decorate([
259
+ antelope.Struct.field(antelope.UInt64)
260
+ ], cargo_seed.prototype, "seed", void 0);
261
+ cargo_seed = tslib.__decorate([
262
+ antelope.Struct.type('cargo_seed')
263
+ ], cargo_seed);
264
+ Types.cargo_seed = cargo_seed;
265
+ let module_entry = class module_entry extends antelope.Struct {
266
+ };
267
+ tslib.__decorate([
268
+ antelope.Struct.field(antelope.UInt8)
269
+ ], module_entry.prototype, "type", void 0);
270
+ tslib.__decorate([
271
+ antelope.Struct.field(cargo_seed, { optional: true })
272
+ ], module_entry.prototype, "installed", void 0);
273
+ module_entry = tslib.__decorate([
274
+ antelope.Struct.type('module_entry')
275
+ ], module_entry);
276
+ Types.module_entry = module_entry;
277
+ let cargo_item = class cargo_item extends antelope.Struct {
278
+ };
279
+ tslib.__decorate([
280
+ antelope.Struct.field(antelope.UInt16)
281
+ ], cargo_item.prototype, "item_id", void 0);
282
+ tslib.__decorate([
283
+ antelope.Struct.field(antelope.UInt32)
284
+ ], cargo_item.prototype, "quantity", void 0);
285
+ tslib.__decorate([
286
+ antelope.Struct.field(antelope.UInt64, { optional: true })
287
+ ], cargo_item.prototype, "seed", void 0);
288
+ tslib.__decorate([
289
+ antelope.Struct.field(module_entry, { array: true })
290
+ ], cargo_item.prototype, "modules", void 0);
291
+ cargo_item = tslib.__decorate([
292
+ antelope.Struct.type('cargo_item')
293
+ ], cargo_item);
294
+ Types.cargo_item = cargo_item;
295
+ let blend = class blend extends antelope.Struct {
296
+ };
297
+ tslib.__decorate([
298
+ antelope.Struct.field(antelope.Name)
299
+ ], blend.prototype, "entity_type", void 0);
300
+ tslib.__decorate([
301
+ antelope.Struct.field(antelope.UInt64)
302
+ ], blend.prototype, "id", void 0);
303
+ tslib.__decorate([
304
+ antelope.Struct.field(cargo_item, { array: true })
305
+ ], blend.prototype, "inputs", void 0);
306
+ blend = tslib.__decorate([
307
+ antelope.Struct.type('blend')
308
+ ], blend);
309
+ Types.blend = blend;
232
310
  let cancel = class cancel extends antelope.Struct {
233
311
  };
234
312
  tslib.__decorate([
@@ -280,21 +358,6 @@ var Types;
280
358
  antelope.Struct.type('cancel_results')
281
359
  ], cancel_results);
282
360
  Types.cancel_results = cancel_results;
283
- let cargo_item = class cargo_item extends antelope.Struct {
284
- };
285
- tslib.__decorate([
286
- antelope.Struct.field(antelope.UInt16)
287
- ], cargo_item.prototype, "item_id", void 0);
288
- tslib.__decorate([
289
- antelope.Struct.field(antelope.UInt32)
290
- ], cargo_item.prototype, "quantity", void 0);
291
- tslib.__decorate([
292
- antelope.Struct.field(antelope.UInt64, { optional: true })
293
- ], cargo_item.prototype, "seed", void 0);
294
- cargo_item = tslib.__decorate([
295
- antelope.Struct.type('cargo_item')
296
- ], cargo_item);
297
- Types.cargo_item = cargo_item;
298
361
  let cargo_row = class cargo_row extends antelope.Struct {
299
362
  };
300
363
  tslib.__decorate([
@@ -312,6 +375,9 @@ var Types;
312
375
  tslib.__decorate([
313
376
  antelope.Struct.field(antelope.UInt64)
314
377
  ], cargo_row.prototype, "seed", void 0);
378
+ tslib.__decorate([
379
+ antelope.Struct.field(module_entry, { array: true })
380
+ ], cargo_row.prototype, "modules", void 0);
315
381
  cargo_row = tslib.__decorate([
316
382
  antelope.Struct.type('cargo_row')
317
383
  ], cargo_row);
@@ -352,30 +418,6 @@ var Types;
352
418
  antelope.Struct.type('commit')
353
419
  ], commit);
354
420
  Types.commit = commit;
355
- let movement_stats = class movement_stats extends antelope.Struct {
356
- };
357
- tslib.__decorate([
358
- antelope.Struct.field(antelope.UInt32)
359
- ], movement_stats.prototype, "thrust", void 0);
360
- tslib.__decorate([
361
- antelope.Struct.field(antelope.UInt16)
362
- ], movement_stats.prototype, "drain", void 0);
363
- movement_stats = tslib.__decorate([
364
- antelope.Struct.type('movement_stats')
365
- ], movement_stats);
366
- Types.movement_stats = movement_stats;
367
- let energy_stats = class energy_stats extends antelope.Struct {
368
- };
369
- tslib.__decorate([
370
- antelope.Struct.field(antelope.UInt16)
371
- ], energy_stats.prototype, "capacity", void 0);
372
- tslib.__decorate([
373
- antelope.Struct.field(antelope.UInt16)
374
- ], energy_stats.prototype, "recharge", void 0);
375
- energy_stats = tslib.__decorate([
376
- antelope.Struct.type('energy_stats')
377
- ], energy_stats);
378
- Types.energy_stats = energy_stats;
379
421
  let loader_stats = class loader_stats extends antelope.Struct {
380
422
  };
381
423
  tslib.__decorate([
@@ -391,80 +433,8 @@ var Types;
391
433
  antelope.Struct.type('loader_stats')
392
434
  ], loader_stats);
393
435
  Types.loader_stats = loader_stats;
394
- let extractor_stats = class extractor_stats extends antelope.Struct {
395
- };
396
- tslib.__decorate([
397
- antelope.Struct.field(antelope.UInt16)
398
- ], extractor_stats.prototype, "rate", void 0);
399
- tslib.__decorate([
400
- antelope.Struct.field(antelope.UInt16)
401
- ], extractor_stats.prototype, "drain", void 0);
402
- tslib.__decorate([
403
- antelope.Struct.field(antelope.UInt16)
404
- ], extractor_stats.prototype, "efficiency", void 0);
405
- tslib.__decorate([
406
- antelope.Struct.field(antelope.UInt16)
407
- ], extractor_stats.prototype, "depth", void 0);
408
- tslib.__decorate([
409
- antelope.Struct.field(antelope.UInt16)
410
- ], extractor_stats.prototype, "drill", void 0);
411
- extractor_stats = tslib.__decorate([
412
- antelope.Struct.type('extractor_stats')
413
- ], extractor_stats);
414
- Types.extractor_stats = extractor_stats;
415
- let warp_stats = class warp_stats extends antelope.Struct {
416
- };
417
- tslib.__decorate([
418
- antelope.Struct.field(antelope.UInt32)
419
- ], warp_stats.prototype, "range", void 0);
420
- warp_stats = tslib.__decorate([
421
- antelope.Struct.type('warp_stats')
422
- ], warp_stats);
423
- Types.warp_stats = warp_stats;
424
- let crafter_stats = class crafter_stats extends antelope.Struct {
425
- };
426
- tslib.__decorate([
427
- antelope.Struct.field(antelope.UInt16)
428
- ], crafter_stats.prototype, "speed", void 0);
429
- tslib.__decorate([
430
- antelope.Struct.field(antelope.UInt16)
431
- ], crafter_stats.prototype, "drain", void 0);
432
- crafter_stats = tslib.__decorate([
433
- antelope.Struct.type('crafter_stats')
434
- ], crafter_stats);
435
- Types.crafter_stats = crafter_stats;
436
436
  let entity_defaults = class entity_defaults extends antelope.Struct {
437
437
  };
438
- tslib.__decorate([
439
- antelope.Struct.field(antelope.UInt32)
440
- ], entity_defaults.prototype, "ship_hullmass", void 0);
441
- tslib.__decorate([
442
- antelope.Struct.field(antelope.UInt32)
443
- ], entity_defaults.prototype, "ship_capacity", void 0);
444
- tslib.__decorate([
445
- antelope.Struct.field(antelope.UInt16)
446
- ], entity_defaults.prototype, "ship_energy", void 0);
447
- tslib.__decorate([
448
- antelope.Struct.field(antelope.UInt16)
449
- ], entity_defaults.prototype, "ship_z", void 0);
450
- tslib.__decorate([
451
- antelope.Struct.field(movement_stats)
452
- ], entity_defaults.prototype, "ship_engines", void 0);
453
- tslib.__decorate([
454
- antelope.Struct.field(energy_stats)
455
- ], entity_defaults.prototype, "ship_generator", void 0);
456
- tslib.__decorate([
457
- antelope.Struct.field(loader_stats)
458
- ], entity_defaults.prototype, "ship_loaders", void 0);
459
- tslib.__decorate([
460
- antelope.Struct.field(extractor_stats)
461
- ], entity_defaults.prototype, "ship_extractor", void 0);
462
- tslib.__decorate([
463
- antelope.Struct.field(warp_stats)
464
- ], entity_defaults.prototype, "ship_warp", void 0);
465
- tslib.__decorate([
466
- antelope.Struct.field(crafter_stats)
467
- ], entity_defaults.prototype, "ship_crafter", void 0);
468
438
  tslib.__decorate([
469
439
  antelope.Struct.field(antelope.UInt32)
470
440
  ], entity_defaults.prototype, "warehouse_capacity", void 0);
@@ -631,6 +601,18 @@ var Types;
631
601
  antelope.Struct.type('craft')
632
602
  ], craft);
633
603
  Types.craft = craft;
604
+ let crafter_stats = class crafter_stats extends antelope.Struct {
605
+ };
606
+ tslib.__decorate([
607
+ antelope.Struct.field(antelope.UInt16)
608
+ ], crafter_stats.prototype, "speed", void 0);
609
+ tslib.__decorate([
610
+ antelope.Struct.field(antelope.UInt16)
611
+ ], crafter_stats.prototype, "drain", void 0);
612
+ crafter_stats = tslib.__decorate([
613
+ antelope.Struct.type('crafter_stats')
614
+ ], crafter_stats);
615
+ Types.crafter_stats = crafter_stats;
634
616
  let createentity = class createentity extends antelope.Struct {
635
617
  };
636
618
  tslib.__decorate([
@@ -682,6 +664,18 @@ var Types;
682
664
  antelope.Struct.type('enable')
683
665
  ], enable);
684
666
  Types.enable = enable;
667
+ let energy_stats = class energy_stats extends antelope.Struct {
668
+ };
669
+ tslib.__decorate([
670
+ antelope.Struct.field(antelope.UInt16)
671
+ ], energy_stats.prototype, "capacity", void 0);
672
+ tslib.__decorate([
673
+ antelope.Struct.field(antelope.UInt16)
674
+ ], energy_stats.prototype, "recharge", void 0);
675
+ energy_stats = tslib.__decorate([
676
+ antelope.Struct.type('energy_stats')
677
+ ], energy_stats);
678
+ Types.energy_stats = energy_stats;
685
679
  let entity_current_state = class entity_current_state extends antelope.Struct {
686
680
  };
687
681
  tslib.__decorate([
@@ -694,6 +688,45 @@ var Types;
694
688
  antelope.Struct.type('entity_current_state')
695
689
  ], entity_current_state);
696
690
  Types.entity_current_state = entity_current_state;
691
+ let movement_stats = class movement_stats extends antelope.Struct {
692
+ };
693
+ tslib.__decorate([
694
+ antelope.Struct.field(antelope.UInt32)
695
+ ], movement_stats.prototype, "thrust", void 0);
696
+ tslib.__decorate([
697
+ antelope.Struct.field(antelope.UInt16)
698
+ ], movement_stats.prototype, "drain", void 0);
699
+ movement_stats = tslib.__decorate([
700
+ antelope.Struct.type('movement_stats')
701
+ ], movement_stats);
702
+ Types.movement_stats = movement_stats;
703
+ let extractor_stats = class extractor_stats extends antelope.Struct {
704
+ };
705
+ tslib.__decorate([
706
+ antelope.Struct.field(antelope.UInt16)
707
+ ], extractor_stats.prototype, "rate", void 0);
708
+ tslib.__decorate([
709
+ antelope.Struct.field(antelope.UInt16)
710
+ ], extractor_stats.prototype, "drain", void 0);
711
+ tslib.__decorate([
712
+ antelope.Struct.field(antelope.UInt16)
713
+ ], extractor_stats.prototype, "depth", void 0);
714
+ tslib.__decorate([
715
+ antelope.Struct.field(antelope.UInt16)
716
+ ], extractor_stats.prototype, "drill", void 0);
717
+ extractor_stats = tslib.__decorate([
718
+ antelope.Struct.type('extractor_stats')
719
+ ], extractor_stats);
720
+ Types.extractor_stats = extractor_stats;
721
+ let warp_stats = class warp_stats extends antelope.Struct {
722
+ };
723
+ tslib.__decorate([
724
+ antelope.Struct.field(antelope.UInt32)
725
+ ], warp_stats.prototype, "range", void 0);
726
+ warp_stats = tslib.__decorate([
727
+ antelope.Struct.type('warp_stats')
728
+ ], warp_stats);
729
+ Types.warp_stats = warp_stats;
697
730
  let entity_info = class entity_info extends antelope.Struct {
698
731
  };
699
732
  tslib.__decorate([
@@ -931,12 +964,6 @@ var Types;
931
964
  antelope.Struct.type('getplayer')
932
965
  ], getplayer);
933
966
  Types.getplayer = getplayer;
934
- let getstarter = class getstarter extends antelope.Struct {
935
- };
936
- getstarter = tslib.__decorate([
937
- antelope.Struct.type('getstarter')
938
- ], getstarter);
939
- Types.getstarter = getstarter;
940
967
  let getstratum = class getstratum extends antelope.Struct {
941
968
  };
942
969
  tslib.__decorate([
@@ -1306,6 +1333,24 @@ var Types;
1306
1333
  antelope.Struct.type('resource_stats')
1307
1334
  ], resource_stats);
1308
1335
  Types.resource_stats = resource_stats;
1336
+ let rmmodule = class rmmodule extends antelope.Struct {
1337
+ };
1338
+ tslib.__decorate([
1339
+ antelope.Struct.field(antelope.Name)
1340
+ ], rmmodule.prototype, "entity_type", void 0);
1341
+ tslib.__decorate([
1342
+ antelope.Struct.field(antelope.UInt64)
1343
+ ], rmmodule.prototype, "entity_id", void 0);
1344
+ tslib.__decorate([
1345
+ antelope.Struct.field(antelope.UInt8)
1346
+ ], rmmodule.prototype, "module_index", void 0);
1347
+ tslib.__decorate([
1348
+ antelope.Struct.field(antelope.UInt64)
1349
+ ], rmmodule.prototype, "target_cargo_id", void 0);
1350
+ rmmodule = tslib.__decorate([
1351
+ antelope.Struct.type('rmmodule')
1352
+ ], rmmodule);
1353
+ Types.rmmodule = rmmodule;
1309
1354
  let salt = class salt extends antelope.Struct {
1310
1355
  };
1311
1356
  tslib.__decorate([
@@ -1342,25 +1387,25 @@ var Types;
1342
1387
  antelope.Struct.field(coordinates)
1343
1388
  ], ship_row.prototype, "coordinates", void 0);
1344
1389
  tslib.__decorate([
1345
- antelope.Struct.field(antelope.UInt32)
1390
+ antelope.Struct.field(antelope.UInt32, { optional: true })
1346
1391
  ], ship_row.prototype, "hullmass", void 0);
1347
1392
  tslib.__decorate([
1348
- antelope.Struct.field(antelope.UInt32)
1393
+ antelope.Struct.field(antelope.UInt32, { optional: true })
1349
1394
  ], ship_row.prototype, "capacity", void 0);
1350
1395
  tslib.__decorate([
1351
- antelope.Struct.field(antelope.UInt16)
1396
+ antelope.Struct.field(antelope.UInt16, { optional: true })
1352
1397
  ], ship_row.prototype, "energy", void 0);
1353
1398
  tslib.__decorate([
1354
1399
  antelope.Struct.field(antelope.UInt32)
1355
1400
  ], ship_row.prototype, "cargomass", void 0);
1356
1401
  tslib.__decorate([
1357
- antelope.Struct.field(movement_stats)
1402
+ antelope.Struct.field(movement_stats, { optional: true })
1358
1403
  ], ship_row.prototype, "engines", void 0);
1359
1404
  tslib.__decorate([
1360
- antelope.Struct.field(energy_stats)
1405
+ antelope.Struct.field(energy_stats, { optional: true })
1361
1406
  ], ship_row.prototype, "generator", void 0);
1362
1407
  tslib.__decorate([
1363
- antelope.Struct.field(loader_stats)
1408
+ antelope.Struct.field(loader_stats, { optional: true })
1364
1409
  ], ship_row.prototype, "loaders", void 0);
1365
1410
  tslib.__decorate([
1366
1411
  antelope.Struct.field(extractor_stats, { optional: true })
@@ -1371,6 +1416,9 @@ var Types;
1371
1416
  tslib.__decorate([
1372
1417
  antelope.Struct.field(crafter_stats, { optional: true })
1373
1418
  ], ship_row.prototype, "crafter", void 0);
1419
+ tslib.__decorate([
1420
+ antelope.Struct.field(module_entry, { array: true })
1421
+ ], ship_row.prototype, "modules", void 0);
1374
1422
  tslib.__decorate([
1375
1423
  antelope.Struct.field(schedule, { optional: true })
1376
1424
  ], ship_row.prototype, "schedule", void 0);
@@ -1393,15 +1441,24 @@ var Types;
1393
1441
  antelope.Struct.type('spawncargo')
1394
1442
  ], spawncargo);
1395
1443
  Types.spawncargo = spawncargo;
1396
- let starter_info = class starter_info extends antelope.Struct {
1444
+ let spawnseeded = class spawnseeded extends antelope.Struct {
1397
1445
  };
1398
1446
  tslib.__decorate([
1399
- antelope.Struct.field(entity_info)
1400
- ], starter_info.prototype, "ship", void 0);
1401
- starter_info = tslib.__decorate([
1402
- antelope.Struct.type('starter_info')
1403
- ], starter_info);
1404
- Types.starter_info = starter_info;
1447
+ antelope.Struct.field(antelope.UInt64)
1448
+ ], spawnseeded.prototype, "entity_id", void 0);
1449
+ tslib.__decorate([
1450
+ antelope.Struct.field(antelope.UInt64)
1451
+ ], spawnseeded.prototype, "item_id", void 0);
1452
+ tslib.__decorate([
1453
+ antelope.Struct.field(antelope.UInt64)
1454
+ ], spawnseeded.prototype, "quantity", void 0);
1455
+ tslib.__decorate([
1456
+ antelope.Struct.field(antelope.UInt64)
1457
+ ], spawnseeded.prototype, "seed", void 0);
1458
+ spawnseeded = tslib.__decorate([
1459
+ antelope.Struct.type('spawnseeded')
1460
+ ], spawnseeded);
1461
+ Types.spawnseeded = spawnseeded;
1405
1462
  let state_row = class state_row extends antelope.Struct {
1406
1463
  };
1407
1464
  tslib.__decorate([
@@ -1518,9 +1575,6 @@ var Types;
1518
1575
  tslib.__decorate([
1519
1576
  antelope.Struct.field(entity_summary)
1520
1577
  ], types_row.prototype, "entity_summary_type", void 0);
1521
- tslib.__decorate([
1522
- antelope.Struct.field(starter_info)
1523
- ], types_row.prototype, "starter_info_type", void 0);
1524
1578
  tslib.__decorate([
1525
1579
  antelope.Struct.field(game_config)
1526
1580
  ], types_row.prototype, "game_config_type", void 0);
@@ -1675,17 +1729,6 @@ const WAREHOUSE_ALREADY_AT_LOCATION = 'Warehouse already exists at this location
1675
1729
  const WAREHOUSE_CAPACITY_EXCEEDED = 'Warehouse capacity would be exceeded.';
1676
1730
 
1677
1731
  const PRECISION = 10000;
1678
- const INITIAL_SHIP_GENERATOR_CAPACITY = 350;
1679
- const INITIAL_SHIP_DRAIN = 25;
1680
- const INITIAL_SHIP_ENERGY = 350;
1681
- const INITIAL_SHIP_HULLMASS = 100000;
1682
- const INITIAL_SHIP_CAPACITY = 500000;
1683
- const INITIAL_SHIP_Z = 800;
1684
- const INITIAL_SHIP_RECHARGE = 10;
1685
- const INITIAL_SHIP_THRUST = 250;
1686
- const INITIAL_LOADER_MASS = 1000;
1687
- const INITIAL_LOADER_QUANTITY = 1;
1688
- const INITIAL_LOADER_THRUST = 1;
1689
1732
  const WAREHOUSE_Z = 500;
1690
1733
  const INITIAL_WAREHOUSE_CAPACITY = 10000000;
1691
1734
  const CONTAINER_Z = 300;
@@ -1694,10 +1737,7 @@ const INITIAL_CONTAINER_CAPACITY = 2000000;
1694
1737
  const TRAVEL_MAX_DURATION = 86400;
1695
1738
  const MIN_ORBITAL_ALTITUDE = 800;
1696
1739
  const MAX_ORBITAL_ALTITUDE = 3000;
1697
- const INITIAL_SHIP_MASS = 500000;
1698
- const INITIAL_EXTRACTOR_RATE = 700;
1699
- const INITIAL_EXTRACTOR_DRAIN = 2500;
1700
- const INITIAL_EXTRACTOR_EFFICIENCY = 5000;
1740
+ const BASE_ORBITAL_MASS = 100000;
1701
1741
  exports.TaskType = void 0;
1702
1742
  (function (TaskType) {
1703
1743
  TaskType[TaskType["IDLE"] = 0] = "IDLE";
@@ -4313,7 +4353,7 @@ var itemsData = [
4313
4353
  id: 26,
4314
4354
  name: "Iron",
4315
4355
  description: "A versatile metal used in hulls and structures.",
4316
- mass: 40000,
4356
+ mass: 30000,
4317
4357
  category: "metal",
4318
4358
  tier: "t1",
4319
4359
  color: "#B7410E"
@@ -4340,7 +4380,7 @@ var itemsData = [
4340
4380
  id: 29,
4341
4381
  name: "Copper",
4342
4382
  description: "A conductive metal for electronics and wiring.",
4343
- mass: 60000,
4383
+ mass: 40000,
4344
4384
  category: "precious",
4345
4385
  tier: "t1",
4346
4386
  color: "#B87333"
@@ -4394,7 +4434,7 @@ var itemsData = [
4394
4434
  id: 14,
4395
4435
  name: "Silicon",
4396
4436
  description: "A semiconductor used in sensors and computing.",
4397
- mass: 28000,
4437
+ mass: 22000,
4398
4438
  category: "mineral",
4399
4439
  tier: "t1",
4400
4440
  color: "#B8A9C9"
@@ -4421,7 +4461,7 @@ var itemsData = [
4421
4461
  id: 6,
4422
4462
  name: "Carbon",
4423
4463
  description: "A versatile element for life support and coatings.",
4424
- mass: 12000,
4464
+ mass: 15000,
4425
4465
  category: "organic",
4426
4466
  tier: "t1",
4427
4467
  color: "#4A4A4A"
@@ -4469,10 +4509,10 @@ function getItems() {
4469
4509
  }
4470
4510
 
4471
4511
  function calc_orbital_altitude(mass) {
4472
- if (mass <= INITIAL_SHIP_MASS) {
4512
+ if (mass <= BASE_ORBITAL_MASS) {
4473
4513
  return MIN_ORBITAL_ALTITUDE;
4474
4514
  }
4475
- const ratio = mass / INITIAL_SHIP_MASS;
4515
+ const ratio = mass / BASE_ORBITAL_MASS;
4476
4516
  const capRatio = 10.0;
4477
4517
  let scale = Math.log(ratio) / Math.log(capRatio);
4478
4518
  scale = Math.min(scale, 1.0);
@@ -5383,6 +5423,12 @@ class Ship extends Types.entity_info {
5383
5423
  isExtracting(now) {
5384
5424
  return isExtracting(this, now);
5385
5425
  }
5426
+ get hasEngines() {
5427
+ return this.engines !== undefined;
5428
+ }
5429
+ get hasGenerator() {
5430
+ return this.generator !== undefined;
5431
+ }
5386
5432
  get hasExtractor() {
5387
5433
  return this.extractor !== undefined;
5388
5434
  }
@@ -5785,11 +5831,7 @@ class ActionsManager extends BaseManager {
5785
5831
  });
5786
5832
  }
5787
5833
  craft(entityType, entityId, recipeId, quantity, inputs) {
5788
- const cargoInputs = inputs.map((i) => Types.cargo_item.from({
5789
- item_id: antelope.UInt16.from(i.itemId),
5790
- quantity: antelope.UInt32.from(i.quantity),
5791
- seed: i.seed !== undefined ? antelope.UInt64.from(i.seed) : null,
5792
- }));
5834
+ const cargoInputs = inputs.map((i) => Types.cargo_item.from(i));
5793
5835
  return this.server.action('craft', {
5794
5836
  entity_type: entityType,
5795
5837
  id: antelope.UInt64.from(entityId),
@@ -5798,6 +5840,14 @@ class ActionsManager extends BaseManager {
5798
5840
  inputs: cargoInputs,
5799
5841
  });
5800
5842
  }
5843
+ blend(entityType, entityId, inputs) {
5844
+ const cargoInputs = inputs.map((i) => Types.cargo_item.from(i));
5845
+ return this.server.action('blend', {
5846
+ entity_type: entityType,
5847
+ id: antelope.UInt64.from(entityId),
5848
+ inputs: cargoInputs,
5849
+ });
5850
+ }
5801
5851
  deploy(entityType, entityId, packedItemId, seed, entityName) {
5802
5852
  return this.server.action('deploy', {
5803
5853
  entity_type: entityType,
@@ -5807,6 +5857,23 @@ class ActionsManager extends BaseManager {
5807
5857
  entity_name: entityName,
5808
5858
  });
5809
5859
  }
5860
+ addmodule(entityType, entityId, moduleIndex, moduleCargoId, targetCargoId = antelope.UInt64.from(0)) {
5861
+ return this.server.action('addmodule', {
5862
+ entity_type: entityType,
5863
+ entity_id: antelope.UInt64.from(entityId),
5864
+ module_index: moduleIndex,
5865
+ module_cargo_id: antelope.UInt64.from(moduleCargoId),
5866
+ target_cargo_id: antelope.UInt64.from(targetCargoId),
5867
+ });
5868
+ }
5869
+ rmmodule(entityType, entityId, moduleIndex, targetCargoId = antelope.UInt64.from(0)) {
5870
+ return this.server.action('rmmodule', {
5871
+ entity_type: entityType,
5872
+ entity_id: antelope.UInt64.from(entityId),
5873
+ module_index: moduleIndex,
5874
+ target_cargo_id: antelope.UInt64.from(targetCargoId),
5875
+ });
5876
+ }
5810
5877
  joinGame(account, companyName) {
5811
5878
  return [this.foundCompany(account, companyName), this.join(account)];
5812
5879
  }
@@ -5947,26 +6014,34 @@ class Shipload {
5947
6014
  }
5948
6015
 
5949
6016
  function makeShip(state) {
5950
- const entityInfo = Types.entity_info.from({
6017
+ const info = {
5951
6018
  type: antelope.Name.from('ship'),
5952
6019
  id: antelope.UInt64.from(state.id),
5953
6020
  owner: antelope.Name.from(state.owner),
5954
6021
  entity_name: state.name,
5955
6022
  coordinates: Types.coordinates.from(state.coordinates),
5956
- hullmass: antelope.UInt32.from(state.hullmass),
5957
- capacity: antelope.UInt32.from(state.capacity),
5958
- energy: antelope.UInt16.from(state.energy),
5959
6023
  cargomass: antelope.UInt32.from(0),
5960
6024
  cargo: state.cargo || [],
5961
6025
  is_idle: !state.schedule,
5962
6026
  current_task_elapsed: antelope.UInt32.from(0),
5963
6027
  current_task_remaining: antelope.UInt32.from(0),
5964
6028
  pending_tasks: [],
5965
- engines: state.engines,
5966
- generator: state.generator,
5967
- loaders: state.loaders,
5968
- schedule: state.schedule,
5969
- });
6029
+ };
6030
+ if (state.hullmass !== undefined)
6031
+ info.hullmass = antelope.UInt32.from(state.hullmass);
6032
+ if (state.capacity !== undefined)
6033
+ info.capacity = antelope.UInt32.from(state.capacity);
6034
+ if (state.energy !== undefined)
6035
+ info.energy = antelope.UInt16.from(state.energy);
6036
+ if (state.engines)
6037
+ info.engines = state.engines;
6038
+ if (state.generator)
6039
+ info.generator = state.generator;
6040
+ if (state.loaders)
6041
+ info.loaders = state.loaders;
6042
+ if (state.schedule)
6043
+ info.schedule = state.schedule;
6044
+ const entityInfo = Types.entity_info.from(info);
5970
6045
  return new Ship(entityInfo);
5971
6046
  }
5972
6047
  function makeWarehouse(state) {
@@ -6205,9 +6280,53 @@ function resolveStats(category, stats) {
6205
6280
  };
6206
6281
  }
6207
6282
 
6283
+ const ITEM_ENGINE_T1 = 10006;
6284
+ const ITEM_GENERATOR_T1 = 10007;
6285
+ const ITEM_EXTRACTOR_T1 = 10014;
6286
+ const ITEM_LOADER_T1 = 10015;
6287
+ const ITEM_MANUFACTURING_T1 = 10016;
6288
+ const MODULE_ANY = 0;
6289
+ const MODULE_ENGINE = 1;
6290
+ const MODULE_GENERATOR = 2;
6291
+ const MODULE_EXTRACTOR = 3;
6292
+ const MODULE_LOADER = 4;
6293
+ const MODULE_WARP = 5;
6294
+ const MODULE_CRAFTER = 6;
6295
+ const MODULE_LAUNCHER = 7;
6296
+ function moduleAccepts(slotType, moduleType) {
6297
+ return slotType === MODULE_ANY || slotType === moduleType;
6298
+ }
6299
+ function getModuleCapabilityType(itemId) {
6300
+ switch (itemId) {
6301
+ case ITEM_ENGINE_T1:
6302
+ return MODULE_ENGINE;
6303
+ case ITEM_GENERATOR_T1:
6304
+ return MODULE_GENERATOR;
6305
+ case ITEM_EXTRACTOR_T1:
6306
+ return MODULE_EXTRACTOR;
6307
+ case ITEM_LOADER_T1:
6308
+ return MODULE_LOADER;
6309
+ case ITEM_MANUFACTURING_T1:
6310
+ return MODULE_CRAFTER;
6311
+ default:
6312
+ return 0xff;
6313
+ }
6314
+ }
6315
+ function isModuleItem(itemId) {
6316
+ return getModuleCapabilityType(itemId) !== 0xff;
6317
+ }
6318
+
6319
+ const ITEM_DRILL_SHAFT = 10009;
6320
+ const ITEM_EXTRACTION_PROBE = 10010;
6321
+ const ITEM_CARGO_ARM = 10011;
6322
+ const ITEM_TOOL_BIT = 10012;
6323
+ const ITEM_REACTION_CHAMBER = 10013;
6208
6324
  const ITEM_HULL_PLATES = 10001;
6209
6325
  const ITEM_CARGO_LINING = 10002;
6210
6326
  const ITEM_CONTAINER_PACKED = 10003;
6327
+ const ITEM_THRUSTER_CORE = 10004;
6328
+ const ITEM_POWER_CELL = 10005;
6329
+ const ITEM_SHIP_T1_PACKED = 10008;
6211
6330
  const components = [
6212
6331
  {
6213
6332
  id: ITEM_HULL_PLATES,
@@ -6219,8 +6338,8 @@ const components = [
6219
6338
  { key: 'strength', source: 'metal' },
6220
6339
  { key: 'density', source: 'metal' },
6221
6340
  ],
6222
- recipe: [{ category: 'metal', quantity: 40 }],
6223
- usedIn: [{ type: 'entity', name: 'Container' }],
6341
+ recipe: [{ category: 'metal', quantity: 15 }],
6342
+ usedIn: [{ type: 'entity', name: 'Container' }, { type: 'entity', name: 'Ship T1' }],
6224
6343
  },
6225
6344
  {
6226
6345
  id: ITEM_CARGO_LINING,
@@ -6233,10 +6352,101 @@ const components = [
6233
6352
  { key: 'purity', source: 'organic' },
6234
6353
  ],
6235
6354
  recipe: [
6236
- { category: 'precious', quantity: 10 },
6237
- { category: 'organic', quantity: 20 },
6355
+ { category: 'precious', quantity: 6 },
6356
+ { category: 'organic', quantity: 14 },
6238
6357
  ],
6239
- usedIn: [{ type: 'entity', name: 'Container' }],
6358
+ usedIn: [{ type: 'entity', name: 'Container' }, { type: 'entity', name: 'Ship T1' }],
6359
+ },
6360
+ {
6361
+ id: ITEM_THRUSTER_CORE,
6362
+ name: 'Thruster Core',
6363
+ description: 'High-energy propulsion component formed from volatile gases.',
6364
+ color: '#E86344',
6365
+ mass: 50000,
6366
+ stats: [
6367
+ { key: 'volatility', source: 'gas' },
6368
+ { key: 'thermal', source: 'gas' },
6369
+ ],
6370
+ recipe: [{ category: 'gas', quantity: 32 }],
6371
+ usedIn: [{ type: 'module', name: 'Engine' }],
6372
+ },
6373
+ {
6374
+ id: ITEM_POWER_CELL,
6375
+ name: 'Power Cell',
6376
+ description: 'Crystalline energy storage matrix formed from resonant minerals.',
6377
+ color: '#7B5AE8',
6378
+ mass: 30000,
6379
+ stats: [
6380
+ { key: 'resonance', source: 'mineral' },
6381
+ { key: 'clarity', source: 'mineral' },
6382
+ ],
6383
+ recipe: [{ category: 'mineral', quantity: 20 }],
6384
+ usedIn: [{ type: 'module', name: 'Generator' }],
6385
+ },
6386
+ {
6387
+ id: ITEM_DRILL_SHAFT,
6388
+ name: 'Drill Shaft',
6389
+ description: 'Heavy-duty metal shaft used in extraction equipment.',
6390
+ color: '#7B8D9E',
6391
+ mass: 50000,
6392
+ stats: [
6393
+ { key: 'strength', source: 'metal' },
6394
+ { key: 'tolerance', source: 'metal' },
6395
+ ],
6396
+ recipe: [{ category: 'metal', quantity: 15 }],
6397
+ usedIn: [{ type: 'module', name: 'Extractor' }],
6398
+ },
6399
+ {
6400
+ id: ITEM_EXTRACTION_PROBE,
6401
+ name: 'Extraction Probe',
6402
+ description: 'Precious metal sensor array for deep resource detection.',
6403
+ color: '#D4A843',
6404
+ mass: 30000,
6405
+ stats: [
6406
+ { key: 'conductivity', source: 'precious' },
6407
+ { key: 'reflectivity', source: 'precious' },
6408
+ ],
6409
+ recipe: [{ category: 'precious', quantity: 10 }],
6410
+ usedIn: [{ type: 'module', name: 'Extractor' }],
6411
+ },
6412
+ {
6413
+ id: ITEM_CARGO_ARM,
6414
+ name: 'Cargo Arm',
6415
+ description: 'Flexible organic composite arm for cargo handling.',
6416
+ color: '#6B8E5A',
6417
+ mass: 30000,
6418
+ stats: [
6419
+ { key: 'plasticity', source: 'organic' },
6420
+ { key: 'insulation', source: 'organic' },
6421
+ ],
6422
+ recipe: [{ category: 'organic', quantity: 32 }],
6423
+ usedIn: [{ type: 'module', name: 'Loader' }],
6424
+ },
6425
+ {
6426
+ id: ITEM_TOOL_BIT,
6427
+ name: 'Tool Bit',
6428
+ description: 'Dense mineral cutting head for manufacturing operations.',
6429
+ color: '#B8A9C9',
6430
+ mass: 30000,
6431
+ stats: [
6432
+ { key: 'hardness', source: 'mineral' },
6433
+ { key: 'clarity', source: 'mineral' },
6434
+ ],
6435
+ recipe: [{ category: 'mineral', quantity: 20 }],
6436
+ usedIn: [{ type: 'module', name: 'Manufacturing' }],
6437
+ },
6438
+ {
6439
+ id: ITEM_REACTION_CHAMBER,
6440
+ name: 'Reaction Chamber',
6441
+ description: 'Gas-pressurized vessel for controlled manufacturing reactions.',
6442
+ color: '#7EC8E3',
6443
+ mass: 50000,
6444
+ stats: [
6445
+ { key: 'reactivity', source: 'gas' },
6446
+ { key: 'thermal', source: 'gas' },
6447
+ ],
6448
+ recipe: [{ category: 'gas', quantity: 32 }],
6449
+ usedIn: [{ type: 'module', name: 'Manufacturing' }],
6240
6450
  },
6241
6451
  ];
6242
6452
  const entityRecipes = [
@@ -6257,7 +6467,116 @@ const entityRecipes = [
6257
6467
  { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
6258
6468
  ],
6259
6469
  },
6470
+ {
6471
+ id: 'ship-t1',
6472
+ name: 'Ship T1',
6473
+ description: 'General-purpose vessel with 5 module slots.',
6474
+ color: '#4AE898',
6475
+ packedItemId: ITEM_SHIP_T1_PACKED,
6476
+ recipe: [
6477
+ { itemId: ITEM_HULL_PLATES, quantity: 8 },
6478
+ { itemId: ITEM_CARGO_LINING, quantity: 4 },
6479
+ ],
6480
+ stats: [
6481
+ { key: 'strength', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'strength' },
6482
+ { key: 'density', sourceComponentId: ITEM_HULL_PLATES, sourceStatKey: 'density' },
6483
+ { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
6484
+ { key: 'purity', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'purity' },
6485
+ ],
6486
+ moduleSlots: [
6487
+ { type: MODULE_ANY },
6488
+ { type: MODULE_ANY },
6489
+ { type: MODULE_ANY },
6490
+ { type: MODULE_ANY },
6491
+ { type: MODULE_ANY },
6492
+ ],
6493
+ },
6260
6494
  ];
6495
+ const moduleRecipes = [
6496
+ {
6497
+ id: 'engine-t1',
6498
+ name: 'Engine',
6499
+ description: 'Basic propulsion system. Converts volatile gases into thrust.',
6500
+ color: '#E86344',
6501
+ itemId: ITEM_ENGINE_T1,
6502
+ moduleType: MODULE_ENGINE,
6503
+ recipe: [{ itemId: ITEM_THRUSTER_CORE, quantity: 6 }],
6504
+ stats: [
6505
+ { key: 'volatility', sourceComponentId: ITEM_THRUSTER_CORE, sourceStatKey: 'volatility' },
6506
+ { key: 'thermal', sourceComponentId: ITEM_THRUSTER_CORE, sourceStatKey: 'thermal' },
6507
+ ],
6508
+ },
6509
+ {
6510
+ id: 'generator-t1',
6511
+ name: 'Generator',
6512
+ description: 'Basic energy system. Stores and recharges energy from resonant minerals.',
6513
+ color: '#7B5AE8',
6514
+ itemId: ITEM_GENERATOR_T1,
6515
+ moduleType: MODULE_GENERATOR,
6516
+ recipe: [{ itemId: ITEM_POWER_CELL, quantity: 5 }],
6517
+ stats: [
6518
+ { key: 'resonance', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'resonance' },
6519
+ { key: 'clarity', sourceComponentId: ITEM_POWER_CELL, sourceStatKey: 'clarity' },
6520
+ ],
6521
+ },
6522
+ {
6523
+ id: 'extractor-t1',
6524
+ name: 'Extractor',
6525
+ description: 'Basic extraction system. Drills and probes for raw resources.',
6526
+ color: '#7B8D9E',
6527
+ itemId: ITEM_EXTRACTOR_T1,
6528
+ moduleType: MODULE_EXTRACTOR,
6529
+ recipe: [
6530
+ { itemId: ITEM_DRILL_SHAFT, quantity: 4 },
6531
+ { itemId: ITEM_EXTRACTION_PROBE, quantity: 3 },
6532
+ ],
6533
+ stats: [
6534
+ { key: 'strength', sourceComponentId: ITEM_DRILL_SHAFT, sourceStatKey: 'strength' },
6535
+ { key: 'tolerance', sourceComponentId: ITEM_DRILL_SHAFT, sourceStatKey: 'tolerance' },
6536
+ { key: 'reflectivity', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'reflectivity' },
6537
+ { key: 'conductivity', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'conductivity' },
6538
+ { key: 'reflectivity_drill', sourceComponentId: ITEM_EXTRACTION_PROBE, sourceStatKey: 'reflectivity' },
6539
+ ],
6540
+ },
6541
+ {
6542
+ id: 'loader-t1',
6543
+ name: 'Loader',
6544
+ description: 'Basic cargo handling system. Loads and unloads cargo with articulated arms.',
6545
+ color: '#6B8E5A',
6546
+ itemId: ITEM_LOADER_T1,
6547
+ moduleType: MODULE_LOADER,
6548
+ recipe: [
6549
+ { itemId: ITEM_CARGO_LINING, quantity: 3 },
6550
+ { itemId: ITEM_CARGO_ARM, quantity: 3 },
6551
+ ],
6552
+ stats: [
6553
+ { key: 'ductility', sourceComponentId: ITEM_CARGO_LINING, sourceStatKey: 'ductility' },
6554
+ { key: 'plasticity', sourceComponentId: ITEM_CARGO_ARM, sourceStatKey: 'plasticity' },
6555
+ ],
6556
+ },
6557
+ {
6558
+ id: 'manufacturing-t1',
6559
+ name: 'Manufacturing',
6560
+ description: 'Basic crafting system. Processes materials using reaction chambers and cutting tools.',
6561
+ color: '#7EC8E3',
6562
+ itemId: ITEM_MANUFACTURING_T1,
6563
+ moduleType: MODULE_CRAFTER,
6564
+ recipe: [
6565
+ { itemId: ITEM_TOOL_BIT, quantity: 3 },
6566
+ { itemId: ITEM_REACTION_CHAMBER, quantity: 3 },
6567
+ ],
6568
+ stats: [
6569
+ { key: 'reactivity', sourceComponentId: ITEM_REACTION_CHAMBER, sourceStatKey: 'reactivity' },
6570
+ { key: 'clarity', sourceComponentId: ITEM_TOOL_BIT, sourceStatKey: 'clarity' },
6571
+ ],
6572
+ },
6573
+ ];
6574
+ function getModuleRecipe(id) {
6575
+ return moduleRecipes.find((r) => r.id === id);
6576
+ }
6577
+ function getModuleRecipeByItemId(itemId) {
6578
+ return moduleRecipes.find((r) => r.itemId === itemId);
6579
+ }
6261
6580
  function getComponentById(id) {
6262
6581
  return components.find((c) => c.id === id);
6263
6582
  }
@@ -6275,6 +6594,9 @@ function getAllCraftableItems() {
6275
6594
  for (const entity of entityRecipes) {
6276
6595
  items.push({ type: 'entity', id: entity.id, name: entity.name, description: entity.description, color: entity.color });
6277
6596
  }
6597
+ for (const mod of moduleRecipes) {
6598
+ items.push({ type: 'module', id: mod.id, name: mod.name, description: mod.description, color: mod.color });
6599
+ }
6278
6600
  return items;
6279
6601
  }
6280
6602
  function getComponentsForCategory(category) {
@@ -6298,25 +6620,24 @@ function decodeStats(seed, count) {
6298
6620
  }
6299
6621
  return stats;
6300
6622
  }
6623
+ function mapStatsToKeys(seed, statDefs) {
6624
+ const values = decodeStats(seed, statDefs.length);
6625
+ const result = {};
6626
+ for (let i = 0; i < statDefs.length; i++) {
6627
+ result[statDefs[i].key] = values[i];
6628
+ }
6629
+ return result;
6630
+ }
6301
6631
  function decodeCraftedItemStats(itemId, seed) {
6302
6632
  const comp = getComponentById(itemId);
6303
- if (comp) {
6304
- const values = decodeStats(seed, comp.stats.length);
6305
- const result = {};
6306
- for (let i = 0; i < comp.stats.length; i++) {
6307
- result[comp.stats[i].key] = values[i];
6308
- }
6309
- return result;
6310
- }
6633
+ if (comp)
6634
+ return mapStatsToKeys(seed, comp.stats);
6311
6635
  const entityRecipe = entityRecipes.find((r) => r.packedItemId === itemId);
6312
- if (entityRecipe) {
6313
- const values = decodeStats(seed, entityRecipe.stats.length);
6314
- const result = {};
6315
- for (let i = 0; i < entityRecipe.stats.length; i++) {
6316
- result[entityRecipe.stats[i].key] = values[i];
6317
- }
6318
- return result;
6319
- }
6636
+ if (entityRecipe)
6637
+ return mapStatsToKeys(seed, entityRecipe.stats);
6638
+ const moduleRecipe = moduleRecipes.find((r) => r.itemId === itemId);
6639
+ if (moduleRecipe)
6640
+ return mapStatsToKeys(seed, moduleRecipe.stats);
6320
6641
  return {};
6321
6642
  }
6322
6643
  function blendStacks(stacks, statKey) {
@@ -6329,7 +6650,7 @@ function blendStacks(stacks, statKey) {
6329
6650
  }
6330
6651
  if (totalQty === 0)
6331
6652
  return 0;
6332
- return Math.round(weightedSum / totalQty);
6653
+ return Math.floor(weightedSum / totalQty);
6333
6654
  }
6334
6655
  function computeComponentStats(componentId, categoryStacks) {
6335
6656
  const comp = getComponentById(componentId);
@@ -6356,7 +6677,7 @@ function blendComponentStacks(stacks) {
6356
6677
  return result;
6357
6678
  }
6358
6679
  function computeEntityStats(entityRecipeId, componentStacks) {
6359
- const recipe = getEntityRecipe(entityRecipeId);
6680
+ const recipe = getEntityRecipe(entityRecipeId) ?? getModuleRecipe(entityRecipeId);
6360
6681
  if (!recipe)
6361
6682
  return [];
6362
6683
  const blendedByComponent = {};
@@ -6369,6 +6690,22 @@ function computeEntityStats(entityRecipeId, componentStacks) {
6369
6690
  return { key: stat.key, value: Math.max(1, Math.min(999, value)) };
6370
6691
  });
6371
6692
  }
6693
+ function decodeStackStats(itemId, seed) {
6694
+ if (itemId >= 10000) {
6695
+ return decodeCraftedItemStats(itemId, BigInt(seed.toString()));
6696
+ }
6697
+ const raw = deriveResourceStats(BigInt(seed.toString()));
6698
+ return { stat1: raw.stat1, stat2: raw.stat2, stat3: raw.stat3 };
6699
+ }
6700
+ function blendCargoStacks(itemId, stacks) {
6701
+ const decoded = stacks.map((s) => ({
6702
+ quantity: s.quantity,
6703
+ stats: decodeStackStats(itemId, s.seed),
6704
+ }));
6705
+ const allKeys = Object.keys(decoded[0]?.stats ?? {});
6706
+ const blended = allKeys.map((key) => Math.max(1, Math.min(999, blendStacks(decoded, key))));
6707
+ return antelope.UInt64.from(encodeStats(blended));
6708
+ }
6372
6709
 
6373
6710
  function totalCargoMass(cargo) {
6374
6711
  return cargo.reduce((sum, c) => {
@@ -6459,16 +6796,21 @@ function calcLoadDuration(entity, cargoMass) {
6459
6796
  return antelope.UInt32.from(Math.ceil(Number(cargoMass) / totalThrust));
6460
6797
  }
6461
6798
 
6462
- function calc_extraction_duration(extractor, cargoMass, stratum, richness) {
6799
+ const EXTRACTION_TIME_SCALE = 100;
6800
+ const DEPTH_PENALTY_DIVISOR = 5000;
6801
+ const DRILL_TIME_SCALE = 300;
6802
+ function calc_extraction_duration(extractor, itemMass, quantity, stratum, richness) {
6463
6803
  const rate = extractor.rate.toNumber();
6464
- const efficiency = extractor.efficiency.toNumber();
6465
6804
  const drill = extractor.drill.toNumber();
6466
- const rateProduct = Math.floor((rate * richness * efficiency) / PRECISION);
6467
- if (rateProduct === 0)
6805
+ if (rate === 0 || drill === 0 || richness === 0)
6468
6806
  return antelope.UInt32.from(0);
6469
- const extractionTime = Math.floor((cargoMass * PRECISION) / rateProduct);
6470
- const drillTime = Math.floor(stratum / drill);
6471
- return antelope.UInt32.from(extractionTime + drillTime);
6807
+ const massFactor = Math.sqrt(itemMass);
6808
+ const depthPenalty = 1 + stratum / DEPTH_PENALTY_DIVISOR;
6809
+ const richnessMul = richness / 1000;
6810
+ const extractionTime = quantity * massFactor * EXTRACTION_TIME_SCALE * depthPenalty
6811
+ / (rate * richnessMul);
6812
+ const drillTime = DRILL_TIME_SCALE * Math.log(1 + stratum / drill);
6813
+ return antelope.UInt32.from(Math.floor(extractionTime + drillTime));
6472
6814
  }
6473
6815
  function calc_extraction_energy(extractor, duration) {
6474
6816
  const energy = Math.floor((duration * extractor.drain.toNumber()) / PRECISION);
@@ -6478,8 +6820,313 @@ function calc_extraction_energy(extractor, duration) {
6478
6820
  function capsHasCrafter(caps) {
6479
6821
  return caps.crafter !== undefined;
6480
6822
  }
6823
+ function calc_craft_duration(speed, totalInputMass, quantity) {
6824
+ const duration = Math.floor((totalInputMass * quantity) / speed);
6825
+ return antelope.UInt32.from(Math.max(duration, 1));
6826
+ }
6827
+ function calc_craft_energy(drain, duration) {
6828
+ return antelope.UInt16.from(Math.floor((duration * drain) / PRECISION));
6829
+ }
6830
+
6831
+ const categoryColors = {
6832
+ metal: '#5B9BD5',
6833
+ precious: '#D4A843',
6834
+ gas: '#7EC8E3',
6835
+ mineral: '#B8A9C9',
6836
+ organic: '#6B8E5A',
6837
+ };
6838
+ const tierColors = {
6839
+ t1: '#8b8b8b',
6840
+ t2: '#4ade80',
6841
+ t3: '#818cf8',
6842
+ t4: '#c084fc',
6843
+ t5: '#fbbf24',
6844
+ };
6845
+ const categoryIcons = {
6846
+ metal: '⬡',
6847
+ precious: '◈',
6848
+ gas: '◎',
6849
+ mineral: '◇',
6850
+ organic: '❋',
6851
+ };
6852
+ const componentIcon = '▣';
6853
+ const moduleIcon = '⬢';
6854
+ const itemIcons = {
6855
+ 10001: 'HP',
6856
+ 10002: 'CL',
6857
+ 10003: 'CT',
6858
+ 10004: 'TC',
6859
+ 10005: 'PC',
6860
+ 10006: 'EN',
6861
+ 10007: 'GN',
6862
+ 10008: 'SH',
6863
+ 10009: 'DS',
6864
+ 10010: 'EP',
6865
+ 10011: 'CA',
6866
+ 10012: 'TB',
6867
+ 10013: 'RC',
6868
+ 10014: 'EX',
6869
+ 10015: 'LD',
6870
+ 10016: 'MF',
6871
+ };
6872
+
6873
+ function computeShipHullCapabilities(stats) {
6874
+ const density = stats.density ?? 500;
6875
+ const strength = stats.strength ?? 500;
6876
+ const ductility = stats.ductility ?? 500;
6877
+ const purity = stats.purity ?? 500;
6878
+ const hullmass = 25000 + 75 * density;
6879
+ const statSum = strength + ductility + purity;
6880
+ const exponent = statSum / 2997.0;
6881
+ const capacity = Math.floor(1000000 * Math.pow(10, exponent));
6882
+ return { hullmass, capacity };
6883
+ }
6884
+ function computeEngineCapabilities(stats) {
6885
+ const vol = stats.volatility ?? 500;
6886
+ const thm = stats.thermal ?? 500;
6887
+ return {
6888
+ thrust: 400 + Math.floor(vol * 3 / 4),
6889
+ drain: Math.max(16, 30 - Math.floor(thm / 70)),
6890
+ };
6891
+ }
6892
+ function computeGeneratorCapabilities(stats) {
6893
+ const res = stats.resonance ?? 500;
6894
+ const clr = stats.clarity ?? 500;
6895
+ return {
6896
+ capacity: 300 + Math.floor(res / 6),
6897
+ recharge: 5 + Math.floor(clr * 15 / 1000),
6898
+ };
6899
+ }
6900
+ function computeExtractorCapabilities(stats) {
6901
+ const str = stats.strength ?? 500;
6902
+ const con = stats.conductivity ?? 500;
6903
+ const ref = stats.reflectivity ?? 500;
6904
+ const tol = stats.tolerance ?? 500;
6905
+ return {
6906
+ rate: 200 + str,
6907
+ drain: Math.max(10, 50 - Math.floor(con / 20)),
6908
+ depth: 200 + Math.floor(tol * 3 / 2),
6909
+ drill: 100 + Math.floor(ref * 4 / 5),
6910
+ };
6911
+ }
6912
+ function computeLoaderCapabilities(stats) {
6913
+ const duc = stats.ductility ?? 500;
6914
+ const pla = stats.plasticity ?? 500;
6915
+ return {
6916
+ mass: Math.max(200, 2000 - Math.floor(duc * 2)),
6917
+ thrust: 1 + Math.floor(pla / 500),
6918
+ quantity: 1,
6919
+ };
6920
+ }
6921
+ function computeManufacturingCapabilities(stats) {
6922
+ const rea = stats.reactivity ?? 500;
6923
+ const clr = stats.clarity ?? 500;
6924
+ return {
6925
+ speed: 100 + Math.floor(rea * 4 / 5),
6926
+ drain: Math.max(5, 30 - Math.floor(clr / 33)),
6927
+ };
6928
+ }
6929
+
6930
+ function toNum(v) {
6931
+ return Number(antelope.UInt16.from(v).value.toString());
6932
+ }
6933
+ function toBigSeed(v) {
6934
+ return BigInt(antelope.UInt64.from(v).toString());
6935
+ }
6936
+ function resolveResource(id, seed) {
6937
+ const item = getItem(id);
6938
+ const cat = item.category;
6939
+ let stats;
6940
+ if (seed !== undefined) {
6941
+ const derived = deriveResourceStats(toBigSeed(seed));
6942
+ const defs = getStatDefinitions(cat);
6943
+ const values = [derived.stat1, derived.stat2, derived.stat3];
6944
+ stats = defs.map((d, i) => ({
6945
+ key: d.key,
6946
+ label: d.label,
6947
+ abbreviation: d.abbreviation,
6948
+ value: values[i] ?? 0,
6949
+ color: categoryColors[cat],
6950
+ category: cat,
6951
+ inverted: d.inverted,
6952
+ }));
6953
+ }
6954
+ return {
6955
+ itemId: id,
6956
+ name: String(item.name),
6957
+ icon: categoryIcons[cat] ?? '⬡',
6958
+ category: cat,
6959
+ tier: item.tier,
6960
+ mass: Number(item.mass.value.toString()),
6961
+ itemType: 'resource',
6962
+ stats,
6963
+ };
6964
+ }
6965
+ function resolveComponent(id, seed) {
6966
+ const comp = getComponentById(id);
6967
+ let stats;
6968
+ if (seed !== undefined) {
6969
+ const decoded = decodeCraftedItemStats(id, toBigSeed(seed));
6970
+ stats = Object.entries(decoded).map(([key, value]) => {
6971
+ const allDefs = getStatDefinitions('metal')
6972
+ .concat(getStatDefinitions('precious'))
6973
+ .concat(getStatDefinitions('gas'))
6974
+ .concat(getStatDefinitions('mineral'))
6975
+ .concat(getStatDefinitions('organic'));
6976
+ const def = allDefs.find((d) => d.key === key);
6977
+ const statDef = comp.stats.find((s) => s.key === key);
6978
+ const cat = (statDef?.source ?? 'metal');
6979
+ return {
6980
+ key,
6981
+ label: def?.label ?? key,
6982
+ abbreviation: def?.abbreviation ?? key.slice(0, 3).toUpperCase(),
6983
+ value,
6984
+ color: categoryColors[cat],
6985
+ category: cat,
6986
+ inverted: def?.inverted,
6987
+ };
6988
+ });
6989
+ }
6990
+ return {
6991
+ itemId: id,
6992
+ name: comp.name,
6993
+ icon: itemIcons[id] ?? componentIcon,
6994
+ tier: 't1',
6995
+ mass: comp.mass,
6996
+ itemType: 'component',
6997
+ stats,
6998
+ };
6999
+ }
7000
+ function computeCapabilityGroup(moduleType, stats) {
7001
+ switch (moduleType) {
7002
+ case MODULE_ENGINE: {
7003
+ const caps = computeEngineCapabilities(stats);
7004
+ return { capability: 'Engine', attributes: [
7005
+ { label: 'Thrust', value: caps.thrust },
7006
+ { label: 'Drain', value: caps.drain },
7007
+ ] };
7008
+ }
7009
+ case MODULE_GENERATOR: {
7010
+ const caps = computeGeneratorCapabilities(stats);
7011
+ return { capability: 'Generator', attributes: [
7012
+ { label: 'Capacity', value: caps.capacity },
7013
+ { label: 'Recharge', value: caps.recharge },
7014
+ ] };
7015
+ }
7016
+ case MODULE_EXTRACTOR: {
7017
+ const caps = computeExtractorCapabilities(stats);
7018
+ return { capability: 'Extractor', attributes: [
7019
+ { label: 'Rate', value: caps.rate },
7020
+ { label: 'Drain', value: caps.drain },
7021
+ { label: 'Depth', value: caps.depth },
7022
+ { label: 'Drill', value: caps.drill },
7023
+ ] };
7024
+ }
7025
+ case MODULE_LOADER: {
7026
+ const caps = computeLoaderCapabilities(stats);
7027
+ return { capability: 'Loader', attributes: [
7028
+ { label: 'Mass', value: caps.mass },
7029
+ { label: 'Thrust', value: caps.thrust },
7030
+ { label: 'Quantity', value: caps.quantity },
7031
+ ] };
7032
+ }
7033
+ case MODULE_CRAFTER: {
7034
+ const caps = computeManufacturingCapabilities(stats);
7035
+ return { capability: 'Manufacturing', attributes: [
7036
+ { label: 'Speed', value: caps.speed },
7037
+ { label: 'Drain', value: caps.drain },
7038
+ ] };
7039
+ }
7040
+ default:
7041
+ return undefined;
7042
+ }
7043
+ }
7044
+ function resolveModule(id, seed) {
7045
+ const recipe = getModuleRecipeByItemId(id);
7046
+ let attributes;
7047
+ if (seed !== undefined) {
7048
+ const stats = decodeCraftedItemStats(id, toBigSeed(seed));
7049
+ const modType = getModuleCapabilityType(id);
7050
+ const group = computeCapabilityGroup(modType, stats);
7051
+ if (group)
7052
+ attributes = [group];
7053
+ }
7054
+ return {
7055
+ itemId: id,
7056
+ name: recipe.name,
7057
+ icon: itemIcons[id] ?? moduleIcon,
7058
+ tier: 't1',
7059
+ mass: 0,
7060
+ itemType: 'module',
7061
+ attributes,
7062
+ };
7063
+ }
7064
+ function resolveEntity(id, seed, modules) {
7065
+ const recipe = getEntityRecipeByItemId(id);
7066
+ let attributes;
7067
+ let moduleSlots;
7068
+ if (seed !== undefined) {
7069
+ const stats = decodeCraftedItemStats(id, toBigSeed(seed));
7070
+ attributes = [];
7071
+ const isShip = recipe.id === 'ship-t1';
7072
+ if (isShip) {
7073
+ const hullCaps = computeShipHullCapabilities(stats);
7074
+ attributes.push({ capability: 'Hull', attributes: [
7075
+ { label: 'Mass', value: hullCaps.hullmass },
7076
+ { label: 'Capacity', value: hullCaps.capacity },
7077
+ ] });
7078
+ }
7079
+ else {
7080
+ const containerCaps = computeContainerCapabilities(stats);
7081
+ attributes.push({ capability: 'Hull', attributes: [
7082
+ { label: 'Mass', value: containerCaps.hullmass },
7083
+ { label: 'Capacity', value: containerCaps.capacity },
7084
+ ] });
7085
+ }
7086
+ }
7087
+ if (recipe.moduleSlots) {
7088
+ moduleSlots = recipe.moduleSlots.map((slot, i) => {
7089
+ const mod = modules?.[i];
7090
+ if (mod?.installed) {
7091
+ const modItemId = Number(mod.installed.item_id.value.toString());
7092
+ const modSeed = BigInt(mod.installed.seed.toString());
7093
+ const modStats = decodeCraftedItemStats(modItemId, modSeed);
7094
+ const modType = getModuleCapabilityType(modItemId);
7095
+ const group = computeCapabilityGroup(modType, modStats);
7096
+ const modRecipe = getModuleRecipeByItemId(modItemId);
7097
+ return {
7098
+ name: modRecipe?.name ?? 'Module',
7099
+ installed: true,
7100
+ attributes: group?.attributes,
7101
+ };
7102
+ }
7103
+ return { installed: false };
7104
+ });
7105
+ }
7106
+ return {
7107
+ itemId: id,
7108
+ name: recipe.name,
7109
+ icon: itemIcons[id] ?? componentIcon,
7110
+ tier: 't1',
7111
+ mass: 0,
7112
+ itemType: 'entity',
7113
+ attributes,
7114
+ moduleSlots,
7115
+ };
7116
+ }
7117
+ function resolveItem(itemId, seed, modules) {
7118
+ const id = toNum(itemId);
7119
+ if (isModuleItem(id))
7120
+ return resolveModule(id, seed);
7121
+ if (getComponentById(id))
7122
+ return resolveComponent(id, seed);
7123
+ if (getEntityRecipeByItemId(id))
7124
+ return resolveEntity(id, seed, modules);
7125
+ return resolveResource(id, seed);
7126
+ }
6481
7127
 
6482
7128
  exports.ActionsManager = ActionsManager;
7129
+ exports.BASE_ORBITAL_MASS = BASE_ORBITAL_MASS;
6483
7130
  exports.COMMIT_ALREADY_SET = COMMIT_ALREADY_SET;
6484
7131
  exports.COMMIT_CANNOT_MATCH = COMMIT_CANNOT_MATCH;
6485
7132
  exports.COMMIT_NOT_SET = COMMIT_NOT_SET;
@@ -6506,31 +7153,29 @@ exports.GAME_SEED_NOT_SET = GAME_SEED_NOT_SET;
6506
7153
  exports.GameState = GameState;
6507
7154
  exports.INITIAL_CONTAINER_CAPACITY = INITIAL_CONTAINER_CAPACITY;
6508
7155
  exports.INITIAL_CONTAINER_HULLMASS = INITIAL_CONTAINER_HULLMASS;
6509
- exports.INITIAL_EXTRACTOR_DRAIN = INITIAL_EXTRACTOR_DRAIN;
6510
- exports.INITIAL_EXTRACTOR_EFFICIENCY = INITIAL_EXTRACTOR_EFFICIENCY;
6511
- exports.INITIAL_EXTRACTOR_RATE = INITIAL_EXTRACTOR_RATE;
6512
- exports.INITIAL_LOADER_MASS = INITIAL_LOADER_MASS;
6513
- exports.INITIAL_LOADER_QUANTITY = INITIAL_LOADER_QUANTITY;
6514
- exports.INITIAL_LOADER_THRUST = INITIAL_LOADER_THRUST;
6515
- exports.INITIAL_SHIP_CAPACITY = INITIAL_SHIP_CAPACITY;
6516
- exports.INITIAL_SHIP_DRAIN = INITIAL_SHIP_DRAIN;
6517
- exports.INITIAL_SHIP_ENERGY = INITIAL_SHIP_ENERGY;
6518
- exports.INITIAL_SHIP_GENERATOR_CAPACITY = INITIAL_SHIP_GENERATOR_CAPACITY;
6519
- exports.INITIAL_SHIP_HULLMASS = INITIAL_SHIP_HULLMASS;
6520
- exports.INITIAL_SHIP_MASS = INITIAL_SHIP_MASS;
6521
- exports.INITIAL_SHIP_RECHARGE = INITIAL_SHIP_RECHARGE;
6522
- exports.INITIAL_SHIP_THRUST = INITIAL_SHIP_THRUST;
6523
- exports.INITIAL_SHIP_Z = INITIAL_SHIP_Z;
6524
7156
  exports.INITIAL_WAREHOUSE_CAPACITY = INITIAL_WAREHOUSE_CAPACITY;
6525
7157
  exports.INSUFFICIENT_BALANCE = INSUFFICIENT_BALANCE;
6526
7158
  exports.INSUFFICIENT_ITEM_QUANTITY = INSUFFICIENT_ITEM_QUANTITY;
6527
7159
  exports.INSUFFICIENT_ITEM_SUPPLY = INSUFFICIENT_ITEM_SUPPLY;
6528
7160
  exports.INVALID_AMOUNT = INVALID_AMOUNT;
7161
+ exports.ITEM_CARGO_ARM = ITEM_CARGO_ARM;
6529
7162
  exports.ITEM_CARGO_LINING = ITEM_CARGO_LINING;
6530
7163
  exports.ITEM_CONTAINER_PACKED = ITEM_CONTAINER_PACKED;
6531
7164
  exports.ITEM_DOES_NOT_EXIST = ITEM_DOES_NOT_EXIST;
7165
+ exports.ITEM_DRILL_SHAFT = ITEM_DRILL_SHAFT;
7166
+ exports.ITEM_ENGINE_T1 = ITEM_ENGINE_T1;
7167
+ exports.ITEM_EXTRACTION_PROBE = ITEM_EXTRACTION_PROBE;
7168
+ exports.ITEM_EXTRACTOR_T1 = ITEM_EXTRACTOR_T1;
7169
+ exports.ITEM_GENERATOR_T1 = ITEM_GENERATOR_T1;
6532
7170
  exports.ITEM_HULL_PLATES = ITEM_HULL_PLATES;
7171
+ exports.ITEM_LOADER_T1 = ITEM_LOADER_T1;
7172
+ exports.ITEM_MANUFACTURING_T1 = ITEM_MANUFACTURING_T1;
6533
7173
  exports.ITEM_NOT_AVAILABLE_AT_LOCATION = ITEM_NOT_AVAILABLE_AT_LOCATION;
7174
+ exports.ITEM_POWER_CELL = ITEM_POWER_CELL;
7175
+ exports.ITEM_REACTION_CHAMBER = ITEM_REACTION_CHAMBER;
7176
+ exports.ITEM_SHIP_T1_PACKED = ITEM_SHIP_T1_PACKED;
7177
+ exports.ITEM_THRUSTER_CORE = ITEM_THRUSTER_CORE;
7178
+ exports.ITEM_TOOL_BIT = ITEM_TOOL_BIT;
6534
7179
  exports.InventoryAccessor = InventoryAccessor;
6535
7180
  exports.LOCATION_MAX_DEPTH = LOCATION_MAX_DEPTH;
6536
7181
  exports.LOCATION_MIN_DEPTH = LOCATION_MIN_DEPTH;
@@ -6538,6 +7183,14 @@ exports.Location = Location;
6538
7183
  exports.LocationsManager = LocationsManager;
6539
7184
  exports.MAX_ORBITAL_ALTITUDE = MAX_ORBITAL_ALTITUDE;
6540
7185
  exports.MIN_ORBITAL_ALTITUDE = MIN_ORBITAL_ALTITUDE;
7186
+ exports.MODULE_ANY = MODULE_ANY;
7187
+ exports.MODULE_CRAFTER = MODULE_CRAFTER;
7188
+ exports.MODULE_ENGINE = MODULE_ENGINE;
7189
+ exports.MODULE_EXTRACTOR = MODULE_EXTRACTOR;
7190
+ exports.MODULE_GENERATOR = MODULE_GENERATOR;
7191
+ exports.MODULE_LAUNCHER = MODULE_LAUNCHER;
7192
+ exports.MODULE_LOADER = MODULE_LOADER;
7193
+ exports.MODULE_WARP = MODULE_WARP;
6541
7194
  exports.NO_SCHEDULE = NO_SCHEDULE;
6542
7195
  exports.PLANET_SUBTYPE_GAS_GIANT = PLANET_SUBTYPE_GAS_GIANT;
6543
7196
  exports.PLANET_SUBTYPE_ICY = PLANET_SUBTYPE_ICY;
@@ -6583,12 +7236,15 @@ exports.WAREHOUSE_Z = WAREHOUSE_Z;
6583
7236
  exports.Warehouse = Warehouse;
6584
7237
  exports.availableCapacity = availableCapacity$1;
6585
7238
  exports.availableCapacityFromMass = availableCapacityFromMass;
7239
+ exports.blendCargoStacks = blendCargoStacks;
6586
7240
  exports.blendComponentStacks = blendComponentStacks;
6587
7241
  exports.blendStacks = blendStacks;
6588
7242
  exports.calcCargoMass = calcCargoMass;
6589
7243
  exports.calcEnergyUsage = calcEnergyUsage;
6590
7244
  exports.calcLoadDuration = calcLoadDuration;
6591
7245
  exports.calc_acceleration = calc_acceleration;
7246
+ exports.calc_craft_duration = calc_craft_duration;
7247
+ exports.calc_craft_energy = calc_craft_energy;
6592
7248
  exports.calc_energyusage = calc_energyusage;
6593
7249
  exports.calc_extraction_duration = calc_extraction_duration;
6594
7250
  exports.calc_extraction_energy = calc_extraction_energy;
@@ -6614,10 +7270,19 @@ exports.capsHasMass = capsHasMass;
6614
7270
  exports.capsHasMovement = capsHasMovement;
6615
7271
  exports.capsHasStorage = capsHasStorage;
6616
7272
  exports.cargoUtils = cargoUtils;
7273
+ exports.categoryColors = categoryColors;
7274
+ exports.categoryIcons = categoryIcons;
7275
+ exports.componentIcon = componentIcon;
6617
7276
  exports.components = components;
6618
7277
  exports.computeComponentStats = computeComponentStats;
6619
7278
  exports.computeContainerCapabilities = computeContainerCapabilities;
7279
+ exports.computeEngineCapabilities = computeEngineCapabilities;
6620
7280
  exports.computeEntityStats = computeEntityStats;
7281
+ exports.computeExtractorCapabilities = computeExtractorCapabilities;
7282
+ exports.computeGeneratorCapabilities = computeGeneratorCapabilities;
7283
+ exports.computeLoaderCapabilities = computeLoaderCapabilities;
7284
+ exports.computeManufacturingCapabilities = computeManufacturingCapabilities;
7285
+ exports.computeShipHullCapabilities = computeShipHullCapabilities;
6621
7286
  exports.coordsToLocationId = coordsToLocationId;
6622
7287
  exports.createInventoryAccessor = createInventoryAccessor;
6623
7288
  exports.createProjectedEntity = createProjectedEntity;
@@ -6656,6 +7321,9 @@ exports.getItem = getItem;
6656
7321
  exports.getItems = getItems;
6657
7322
  exports.getLocationCandidates = getLocationCandidates;
6658
7323
  exports.getLocationType = getLocationType;
7324
+ exports.getModuleCapabilityType = getModuleCapabilityType;
7325
+ exports.getModuleRecipe = getModuleRecipe;
7326
+ exports.getModuleRecipeByItemId = getModuleRecipeByItemId;
6659
7327
  exports.getPositionAt = getPositionAt;
6660
7328
  exports.getResourceTier = getResourceTier;
6661
7329
  exports.getResourceWeight = getResourceWeight;
@@ -6677,17 +7345,24 @@ exports.hash512 = hash512;
6677
7345
  exports.isExtractableLocation = isExtractableLocation;
6678
7346
  exports.isFull = isFull$1;
6679
7347
  exports.isFullFromMass = isFullFromMass;
7348
+ exports.isModuleItem = isModuleItem;
7349
+ exports.itemIcons = itemIcons;
6680
7350
  exports.itemIds = itemIds;
6681
7351
  exports.lerp = lerp;
6682
7352
  exports.makeContainer = makeContainer;
6683
7353
  exports.makeShip = makeShip;
6684
7354
  exports.makeWarehouse = makeWarehouse;
6685
7355
  exports.maxTravelDistance = maxTravelDistance;
7356
+ exports.moduleAccepts = moduleAccepts;
7357
+ exports.moduleIcon = moduleIcon;
7358
+ exports.moduleRecipes = moduleRecipes;
6686
7359
  exports.needsRecharge = needsRecharge;
6687
7360
  exports.projectEntity = projectEntity;
6688
7361
  exports.projectEntityAt = projectEntityAt;
7362
+ exports.resolveItem = resolveItem;
6689
7363
  exports.resolveStats = resolveStats;
6690
7364
  exports.rotation = rotation;
6691
7365
  exports.schedule = schedule;
7366
+ exports.tierColors = tierColors;
6692
7367
  exports.toLocation = toLocation;
6693
7368
  //# sourceMappingURL=shipload.js.map