@elite-dangerous-almanac/core 0.2.14 → 0.2.15

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.
Files changed (108) hide show
  1. package/PROVENANCE/galaxy-map/SOURCES.md +8 -6
  2. package/PROVENANCE/i18n/SOURCES.md +9 -11
  3. package/PROVENANCE/ships/SOURCES.md +17 -15
  4. package/README.md +20 -7
  5. package/THIRD_PARTY_NOTICES.md +11 -9
  6. package/assets/galaxy-map/bookmark.svg +5 -0
  7. package/assets/galaxy-map/community-goal.svg +12 -0
  8. package/assets/galaxy-map/conflict-zone.svg +15 -0
  9. package/assets/galaxy-map/destination.svg +13 -0
  10. package/assets/galaxy-map/engineer.svg +6 -0
  11. package/assets/galaxy-map/fleet-carrier.svg +5 -0
  12. package/assets/galaxy-map/front-line.svg +10 -0
  13. package/assets/galaxy-map/mission.svg +15 -0
  14. package/assets/galaxy-map/squadron-carrier.svg +10 -0
  15. package/assets/galaxy-map/starter-zone.svg +20 -0
  16. package/assets/galaxy-map/station-abandoned.svg +6 -0
  17. package/assets/galaxy-map/station-damaged.svg +19 -0
  18. package/assets/galaxy-map/station-repairing.svg +7 -0
  19. package/assets/galaxy-map/station-under-attack.svg +21 -0
  20. package/assets/galaxy-map/titan.svg +18 -0
  21. package/assets/galaxy-map/waypoint.svg +5 -0
  22. package/dist/astro/body-orbit.d.ts +1 -1
  23. package/dist/astro/body-physics.d.ts +1 -1
  24. package/dist/astro/body-rings.d.ts +1 -1
  25. package/dist/astro/codex-region-lookup.d.ts +2 -2
  26. package/dist/astro/codex-region.d.ts +1 -1
  27. package/dist/astro/hand-authored-regions.d.ts +2 -2
  28. package/dist/astro/index.d.ts +1 -1
  29. package/dist/astro/naming-region-origins.d.ts +1 -1
  30. package/dist/astro/nebulae-all.d.ts +1 -1
  31. package/dist/astro/nebulae-planetary.d.ts +1 -1
  32. package/dist/astro/nebulae-procgen.d.ts +1 -1
  33. package/dist/astro/nebulae-real.d.ts +1 -1
  34. package/dist/astro/nebulae.d.ts +1 -1
  35. package/dist/astro/permit-locked-systems.d.ts +1 -1
  36. package/dist/astro/permit-locks.d.ts +1 -1
  37. package/dist/astro/sector-name.d.ts +1 -1
  38. package/dist/astro/star-physics.d.ts +1 -1
  39. package/dist/astro/system-address.d.ts +1 -1
  40. package/dist/{chunk-EXHZ4CFB.js → chunk-EE25IDB7.js} +1 -1
  41. package/dist/{chunk-EXHZ4CFB.js.map → chunk-EE25IDB7.js.map} +1 -1
  42. package/dist/{chunk-RA4YJBU5.js → chunk-F53MPXZY.js} +1 -1
  43. package/dist/{chunk-RA4YJBU5.js.map → chunk-F53MPXZY.js.map} +1 -1
  44. package/dist/{chunk-P5SIDTV5.js → chunk-JQ4OPZZ4.js} +1 -1
  45. package/dist/{chunk-P5SIDTV5.js.map → chunk-JQ4OPZZ4.js.map} +1 -1
  46. package/dist/{chunk-QNHGTVMZ.js → chunk-LLLFK3D5.js} +1 -1
  47. package/dist/{chunk-S4BZ64WE.js → chunk-N4YDIODB.js} +1 -1
  48. package/dist/{chunk-XCLOOKC2.js → chunk-U4MML7U6.js} +1 -1
  49. package/dist/commodities/commodities-rare.d.ts +1 -1
  50. package/dist/commodities/commodities-standard.d.ts +1 -1
  51. package/dist/equipment/modifications.d.ts +1 -1
  52. package/dist/galaxy-map/index.d.ts +9 -2
  53. package/dist/galaxy-map/markers.d.ts +1 -1
  54. package/dist/i18n/index.d.ts +1 -1
  55. package/dist/i18n/index.js +1 -1
  56. package/dist/i18n/module-families.d.ts +3 -3
  57. package/dist/i18n/suits.d.ts +1 -2
  58. package/dist/i18n/suits.js +1 -1
  59. package/dist/materials/materials-encoded.d.ts +1 -1
  60. package/dist/materials/materials-manufactured.d.ts +1 -1
  61. package/dist/materials/materials-raw.d.ts +1 -1
  62. package/dist/materials/materials.d.ts +1 -1
  63. package/dist/materials/micro-resources-component.d.ts +1 -1
  64. package/dist/materials/micro-resources-consumable.d.ts +1 -1
  65. package/dist/materials/micro-resources-data.d.ts +1 -1
  66. package/dist/materials/micro-resources-item.d.ts +1 -1
  67. package/dist/materials/micro-resources.d.ts +1 -1
  68. package/dist/ships/armour.d.ts +1 -1
  69. package/dist/ships/blueprint-costs.d.ts +1 -1
  70. package/dist/ships/blueprint-journal.d.ts +1 -1
  71. package/dist/ships/blueprints.d.ts +1 -1
  72. package/dist/ships/build-metrics.js +1 -1
  73. package/dist/ships/default-loadouts.d.ts +1 -1
  74. package/dist/ships/distributor.d.ts +1 -1
  75. package/dist/ships/engineering.d.ts +1 -1
  76. package/dist/ships/experimental-effect-costs.d.ts +1 -1
  77. package/dist/ships/experimental-effects.d.ts +1 -1
  78. package/dist/ships/gunsights.d.ts +1 -1
  79. package/dist/ships/heat.d.ts +2 -2
  80. package/dist/ships/index.d.ts +1 -1
  81. package/dist/ships/index.js +1 -1
  82. package/dist/ships/jump-range.d.ts +1 -1
  83. package/dist/ships/mobility-capacitor.d.ts +1 -1
  84. package/dist/ships/mobility.d.ts +1 -1
  85. package/dist/ships/module-limits.d.ts +2 -2
  86. package/dist/ships/modules-all.d.ts +1 -1
  87. package/dist/ships/modules-core.d.ts +1 -1
  88. package/dist/ships/modules-hardpoint.d.ts +1 -1
  89. package/dist/ships/modules-internal.d.ts +1 -1
  90. package/dist/ships/modules-utility.d.ts +1 -1
  91. package/dist/ships/modules.d.ts +1 -1
  92. package/dist/ships/power.d.ts +1 -1
  93. package/dist/ships/pre-engineered-stats.js +1 -1
  94. package/dist/ships/pre-engineered.d.ts +0 -5
  95. package/dist/ships/pre-engineered.js +1 -1
  96. package/dist/ships/resistances.d.ts +1 -1
  97. package/dist/ships/shield-capacitor.d.ts +1 -1
  98. package/dist/ships/shield-recovery.d.ts +2 -2
  99. package/dist/ships/shields.d.ts +1 -1
  100. package/dist/ships/ship-loadout.js +1 -1
  101. package/dist/ships/ships.d.ts +1 -1
  102. package/dist/ships/weapons-capacitor.d.ts +1 -1
  103. package/dist/ships/weapons.d.ts +1 -1
  104. package/dist/{system-address-DmzXRD48.d.ts → system-address-CveshmDX.d.ts} +2 -2
  105. package/package.json +4 -4
  106. /package/dist/{chunk-QNHGTVMZ.js.map → chunk-LLLFK3D5.js.map} +0 -0
  107. /package/dist/{chunk-S4BZ64WE.js.map → chunk-N4YDIODB.js.map} +0 -0
  108. /package/dist/{chunk-XCLOOKC2.js.map → chunk-U4MML7U6.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ships/internal/loadout-export.ts","../src/ships/ship-loadout.ts"],"names":["validateLoadout","calculateModuleLimits","publishLoadoutInternals","normalizeLoadoutEvent","preEngineeredVariantFor","moduleFitProblem","effectiveModule","moduleFitError","getShipBySymbol","parseSlef","toSlef","stringifySlef","getLoadoutModifier","getSourceModuleValue","statesInertModifiers","rolledOverFixedArticle","isNonOutfittingSlot","isBuiltInHullModule","cloneLoadoutModule","cloneModuleStats","availableBlueprintsFor","availableExperimentalsFor","ownKeyIn","BUILT_IN_HULL_SYMBOL","FITTED_ITEM","blueprintAvailableFor","blueprintRoutesFor","experimentalAvailableFor","primitiveEngineeringInputsFor","missingBaseLabels","journalModifiersFor","getPreEngineeredStats","getPreEngineeredJournalModifiers","getPreEngineeredModifiers","ordinaryEngineeringProof","unresolvedModifiers","matchingKeyIn","isCargoHatchSlot","orderBySlotLayout","builtInModuleBySymbol","getPreEngineeredVariants","ALL_MODULES","getExperimentalEffect","singleJumpRange","calculateUnladenMass","calculatePassengerCapacity","calculateCargoCapacity","calculateFuelCapacity","fixedSlotReason","stockedMountKind","resolveBlueprintForModule","getBlueprintGrade","getDefaultLoadout","getExperimentalsForModule","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","ammunitionCapacity","loadoutSlotName","parseSlotName","enumerateSlots","normalizeKey","CATALOGUE_KEY","truncate","describeValue","requireString","requireStringIfPresent","deepFreeze","REBUY_FRACTION","exportLoadoutEvent","input","options","fromSource","credits","source","sourcePurchase","totals","sourceTotalsVoided","sourceTotalsHold","modules","hullValue","retailHullValue","modulesValue","computedModulesValue","statsFor","rebuy","Math","trunc","Ship","shipSymbol","toLowerCase","shipName","ShipName","shipIdent","ShipIdent","HullValue","ModulesValue","UnladenMass","unladenMass","CargoCapacity","cargoCapacity","maxJumpRange","MaxJumpRange","FuelCapacity","Main","fuelCapacity","main","Reserve","reserve","Rebuy","Modules","exportModules","ordered","moduleOrder","slotOrderedModules","layout","values","map","module","on","On","explicitPower","priority","Priority","value","sourceModuleValue","moduleValue","Slot","Item","Health","Value","Engineering","sum","stats","cost","SOURCE_ITEM","entry","item","moduleValues","key","slot","fitted","get","SLOT_KEY","FITTED_SLOT","LoadoutEditError","TypeError","code","constraint","params","constructor","message","super","this","structuredClone","experimentalEffectUnsupported","kind","engineeringNormalizationUnsupported","weighable","tonnes","Number","isFinite","AGGREGATE_STATS","ShipLoadout","_ShipLoadout","ship","moduleStats","primitiveModifiers","top","importOutcomes","slotCache","Map","layoutCache","effectiveModules","modulesForEffectiveStats","moduleForEffectiveStats","resolveDrive","frameShiftDriveModule","frameShiftDrive","calculationModules","statedMainFuel","fromSlef","index","entries","length","imported","data","fromImported","fromLoadout","event","outcomes","loadout","unresolved","rollStatedRecipe","push","engineering","BlueprintName","stated","Modifiers","has","variant","acquisition","Level","grade","applyBlueprint","quality","Quality","ExperimentalEffect","experimentalEffectSymbol","action","sourceSymbol","blueprintSymbol","passedOver","preEngineeredVariant","error","RangeError","empty","requested","symbol","filter","parsed","computedUnladenMass","hullMass","cap","Object","freeze","computed","computedFuelCapacity","computedCargoCapacity","passengerCapacity","reserveFuelCapacity","validation","slots","byKey","builtIn","fitProblem","thrusterMaxMass","maxMass","requiresKnownSlot","fitError","fitConstraint","fitParams","exclusionGroup","limitGroup","limitIncrease","dry","fuel","cargo","mass","cached","currentLimits","moduleLimits","moduleStatsAt","fixedReason","immovableReason","moduleLimitRegression","name","fittedModuleAt","removable","set","slotKey","fittedModuleFor","raw","effective","health","effectiveStats","ammunition","fittedModules","keys","flatMap","availableBlueprints","availableExperimentalEffects","category","modulesForSlot","requireSlot","occupied","Set","group","currentStats","grantOnly","repairFixedMount","wanted","fittedKey","resultSlot","canonicalKey","status","reason","current","valid","defaultModule","find","ownKey","replacement","replacementStats","replaceModule","setModule","catalogued","field","problem","conflict","previousSlot","previousSymbol","limitProblem","count","limit","removeModule","candidate","wantedGrade","wantedQuality","wantedExperimental","fittedStats","recipe","named","written","trim","resolved","mercenaryHardpoint","locked","some","isInteger","experimental","engineeringLocked","offered","blueprint","route","join","engineeringBaseStats","base","canonical","missing","features","modifiers","damageDistribution","type","label","damageModifier","Label","OriginalValue","setExperimentalEffect","previous","effect","restoresBakedEffect","stock","labels","originalEffect","withoutEffect","adjusted","currentEffect","blueprintGrade","previousExperimentalEffectSymbol","completeEngineeringGrade","previousQuality","proof","setPreEngineeredVariant","known","journalModifiers","clearEngineering","bare","setModuleEnabled","patchModule","setModulePriority","patch","clear","toLoadoutEvent","exportableJumpRange","hullCost","outcome","header","toSlefString","indent","drive","tank","min","maxFuel","s","moduleMass","moduleCapacity","cabinCapacity","usage","increase","amount","baseLimit","excess","max","adjustImportedFigures","delete","next","nextStats","statsOverride","modified","modifierLabel","m","fsd","fsdModule","fuelMul","fuelPower","optMass","jumpBoost","resolveJumpBoost","engineeringGroup"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/ships/internal/loadout-export.ts","../src/ships/ship-loadout.ts"],"names":["validateLoadout","calculateModuleLimits","publishLoadoutInternals","normalizeLoadoutEvent","preEngineeredVariantFor","moduleFitProblem","effectiveModule","moduleFitError","getShipBySymbol","parseSlef","toSlef","stringifySlef","getLoadoutModifier","getSourceModuleValue","statesInertModifiers","rolledOverFixedArticle","isNonOutfittingSlot","isBuiltInHullModule","cloneLoadoutModule","cloneModuleStats","availableBlueprintsFor","availableExperimentalsFor","ownKeyIn","BUILT_IN_HULL_SYMBOL","FITTED_ITEM","blueprintAvailableFor","blueprintRoutesFor","experimentalAvailableFor","primitiveEngineeringInputsFor","missingBaseLabels","journalModifiersFor","getPreEngineeredStats","getPreEngineeredJournalModifiers","getPreEngineeredModifiers","ordinaryEngineeringProof","unresolvedModifiers","matchingKeyIn","isCargoHatchSlot","orderBySlotLayout","builtInModuleBySymbol","getPreEngineeredVariants","ALL_MODULES","getExperimentalEffect","singleJumpRange","calculateUnladenMass","calculatePassengerCapacity","calculateCargoCapacity","calculateFuelCapacity","fixedSlotReason","stockedMountKind","resolveBlueprintForModule","getBlueprintGrade","getDefaultLoadout","getExperimentalsForModule","baseStats","computeModifiers","labelsForDamageType","scaleForLabel","ammunitionCapacity","loadoutSlotName","parseSlotName","enumerateSlots","normalizeKey","CATALOGUE_KEY","truncate","describeValue","requireString","requireStringIfPresent","deepFreeze","REBUY_FRACTION","exportLoadoutEvent","input","options","fromSource","credits","source","sourcePurchase","totals","sourceTotalsVoided","sourceTotalsHold","modules","hullValue","retailHullValue","modulesValue","computedModulesValue","statsFor","rebuy","Math","trunc","Ship","shipSymbol","toLowerCase","shipName","ShipName","shipIdent","ShipIdent","HullValue","ModulesValue","UnladenMass","unladenMass","CargoCapacity","cargoCapacity","maxJumpRange","MaxJumpRange","FuelCapacity","Main","fuelCapacity","main","Reserve","reserve","Rebuy","Modules","exportModules","ordered","moduleOrder","slotOrderedModules","layout","values","map","module","on","On","explicitPower","priority","Priority","value","sourceModuleValue","moduleValue","Slot","Item","Health","Value","Engineering","sum","stats","cost","SOURCE_ITEM","entry","item","moduleValues","key","slot","fitted","get","SLOT_KEY","FITTED_SLOT","LoadoutEditError","TypeError","code","constraint","params","constructor","message","super","this","structuredClone","experimentalEffectUnsupported","kind","engineeringNormalizationUnsupported","weighable","tonnes","Number","isFinite","AGGREGATE_STATS","ShipLoadout","_ShipLoadout","ship","moduleStats","primitiveModifiers","top","importOutcomes","slotCache","Map","layoutCache","effectiveModules","modulesForEffectiveStats","moduleForEffectiveStats","resolveDrive","frameShiftDriveModule","frameShiftDrive","calculationModules","statedMainFuel","fromSlef","index","entries","length","imported","data","fromImported","fromLoadout","event","outcomes","loadout","unresolved","rollStatedRecipe","push","engineering","BlueprintName","stated","Modifiers","has","variant","acquisition","Level","grade","applyBlueprint","quality","Quality","ExperimentalEffect","experimentalEffectSymbol","action","sourceSymbol","blueprintSymbol","passedOver","preEngineeredVariant","error","RangeError","empty","requested","symbol","filter","parsed","computedUnladenMass","hullMass","cap","Object","freeze","computed","computedFuelCapacity","computedCargoCapacity","passengerCapacity","reserveFuelCapacity","validation","slots","byKey","builtIn","fitProblem","thrusterMaxMass","maxMass","requiresKnownSlot","fitError","fitConstraint","fitParams","exclusionGroup","limitGroup","limitIncrease","dry","fuel","cargo","mass","cached","currentLimits","moduleLimits","moduleStatsAt","fixedReason","immovableReason","moduleLimitRegression","name","fittedModuleAt","removable","set","slotKey","fittedModuleFor","raw","effective","health","effectiveStats","ammunition","fittedModules","keys","flatMap","availableBlueprints","availableExperimentalEffects","category","modulesForSlot","requireSlot","occupied","Set","group","currentStats","grantOnly","repairFixedMount","wanted","fittedKey","resultSlot","canonicalKey","status","reason","current","valid","defaultModule","find","ownKey","replacement","replacementStats","replaceModule","setModule","catalogued","field","problem","conflict","previousSlot","previousSymbol","limitProblem","count","limit","removeModule","candidate","wantedGrade","wantedQuality","wantedExperimental","fittedStats","recipe","named","written","trim","resolved","mercenaryHardpoint","locked","some","isInteger","experimental","engineeringLocked","offered","blueprint","route","join","engineeringBaseStats","base","canonical","missing","features","modifiers","damageDistribution","type","label","damageModifier","Label","OriginalValue","setExperimentalEffect","previous","effect","restoresBakedEffect","stock","labels","originalEffect","withoutEffect","adjusted","currentEffect","blueprintGrade","previousExperimentalEffectSymbol","completeEngineeringGrade","previousQuality","proof","setPreEngineeredVariant","known","journalModifiers","clearEngineering","bare","setModuleEnabled","patchModule","setModulePriority","patch","clear","toLoadoutEvent","exportableJumpRange","hullCost","outcome","header","toSlefString","indent","drive","tank","min","maxFuel","s","moduleMass","moduleCapacity","cabinCapacity","usage","increase","amount","baseLimit","excess","max","adjustImportedFigures","delete","next","nextStats","statsOverride","modified","modifierLabel","m","fsd","fsdModule","fuelMul","fuelPower","optMass","jumpBoost","resolveJumpBoost","engineeringGroup"],"mappings":"O,mkEAmDA,IAAMqE,eAAiB,IAGhB,SAASC,mBACZC,MACAC,SAEA,MAAMC,WAAaD,QAAQE,UAAY,SACvC,MAAMC,OAASF,WAAaF,MAAMK,eAAiB,KACnD,MAAMC,OACFF,SAAW,OAASJ,MAAMO,oBAAsBC,iBAAiBR,MAAMS,QAASL,QAC1EA,OACA,KACV,MAAMM,UAAYR,WAAcE,QAAQM,WAAa,KAAQV,MAAMW,gBACnE,MAAMC,aAAeV,WACdI,QAAQM,cAAgB,KACzBC,qBAAqBb,MAAMS,QAAST,MAAMc,UAChD,MAAMC,MAAQb,WACPI,QAAQS,OAAS,KAClBL,YAAc,MAAQE,eAAiB,KACrC,KACAI,KAAKC,OAAOP,UAAYE,cAAgBd,gBAEhD,MAAO,CACHoB,KAAMlB,MAAMmB,WAAWC,iBACnBpB,MAAMqB,gBAAa,EAAY,CAAA,EAAK,CAAEC,SAAUtB,MAAMqB,aACtDrB,MAAMuB,iBAAc,EAAY,CAAA,EAAK,CAAEC,UAAWxB,MAAMuB,cACxDb,YAAc,KAAO,CAAA,EAAK,CAAEe,UAAWf,cACvCE,eAAiB,KAAO,CAAA,EAAK,CAAEc,aAAcd,cACjDe,YAAa3B,MAAM4B,YACnBC,cAAe7B,MAAM8B,iBACjB9B,MAAM+B,eAAiB,KAAO,CAAA,EAAK,CAAEC,aAAchC,MAAM+B,cAC7DE,aAAc,CAAEC,KAAMlC,MAAMmC,aAAaC,KAAMC,QAASrC,MAAMmC,aAAaG,YACvEvB,QAAU,KAAO,CAAA,EAAK,CAAEwB,MAAOxB,OACnCyB,QAASC,cAAczC,MAAOC,QAASC,YAE/C,CAEA,SAASuC,cACLzC,MACAC,QACAC,YAEA,MAAMwC,QACFzC,QAAQ0C,cAAgB,QAClBC,mBAAmB5C,MAAMS,QAAST,MAAM6C,QACxC,IAAI7C,MAAMS,QAAQqC,UAC5B,OAAOJ,QAAQK,IAAKC,SAChB,MAAMC,GAAKD,OAAOE,KAAOjD,QAAQkD,cAAgB,UAAO,GACxD,MAAMC,SAAWJ,OAAOK,WAAapD,QAAQkD,cAAgB,OAAI,GACjE,MAAMG,MAAQpD,WACRqD,kBAAkBP,OAAQhD,MAAMK,gBAChCmD,YAAYR,OAAQhD,MAAMc,UAChC,MAAO,CACH2C,KAAMT,OAAOS,KACbC,KAAMV,OAAOU,KAAKtC,iBACd6B,UAAO,EAAY,CAAA,EAAK,CAAEC,GAAID,OAC9BG,gBAAa,EAAY,CAAA,EAAK,CAAEC,SAAUD,aAC1CJ,OAAOW,cAAW,EAAY,CAAA,EAAK,CAAEA,OAAQX,OAAOW,kBAC7CL,QAAU,SAAW,CAAEM,MAAON,OAAU,CAAA,KAC/CN,OAAOa,mBAAgB,EACrB,CAAA,EACA,CAAEA,YAAalH,mBAAmBqG,QAAQa,eAG5D,CAEA,SAASjB,mBACLnC,QACAoC,QAEA,OAAO9E,kBAAkB,IAAI0C,QAAQqC,UAAWD,OAASG,QAAWA,OAAOS,KAC/E,CAEA,SAAS5C,qBACLJ,QACAK,UAEA,IAAIgD,IAAM,EACV,IAAA,MAAWd,UAAUvC,QAAQqC,SAAU,CACnC,MAAMQ,MAAQE,YAAYR,OAAQlC,UAClC,GAAIwC,QAAU,UAAW,OAAO,KAChC,GAAIA,QAAU,OAAQQ,KAAOR,KACjC,CACA,OAAOQ,GACX,CAEA,SAASN,YACLR,OACAlC,UAEA,MAAMiD,MAAQjD,SAASkC,QACvB,GAAIe,QAAU,KAAM,OAAOA,MAAMC,MAAQ,UACzC,OAAOvH,oBAAoBuG,OAAOS,OAAS/G,oBAAoBsG,QAAU,OAAS,SACtF,CAGA,IAAMiB,YAAc,kDAEpB,SAASV,kBACLP,OACA5C,QAEA,MAAM8D,MAAQ9D,SAAW,KAAO,KAAO9D,qBAAqB8D,OAAQ4C,OAAOS,MAC3E,GAAIS,QAAU,KAAM,MAAO,UAC3B,OAAO3E,aAAa2E,MAAMC,KAAMF,eAAiB1E,aAAayD,OAAOU,KAAMzG,aACrEiH,MAAMZ,MACN,SACV,CAEA,SAAS9C,iBACLC,QACAL,QAEA,IAAA,MAAW8D,SAAS9D,OAAOgE,aAAc,CACrC,MAAMC,IAAMxG,cAAc4C,QAASyD,MAAMI,MACzC,MAAMC,OAASF,MAAQ,UAAO,EAAY5D,QAAQ+D,IAAIH,KACtD,IAAKE,OAAQ,OAAO,MACpB,GAAIzG,iBAAiBoG,MAAMI,OAASJ,MAAMZ,QAAU,EAAG,SACvD,GAAI/D,aAAagF,OAAOb,KAAMzG,eAAiBsC,aAAa2E,MAAMC,KAAMF,aAAc,CAClF,OAAO,KACX,CACJ,CACA,OAAO,IACX,CCxBA,IAAMQ,SAAW,uBAYjB,IAAMC,YAAc,kCA2Cb,IAAMC,iBAAN,cAA+BC,UAEzBC,KAEAC,WAEAC,OAUT,WAAAC,CACIC,QACAJ,KACAE,OACAD,YAEAI,MAAMD,SACNE,KAAKN,KAAOA,KACZM,KAAKJ,OAASlF,WAAWuF,gBAAgBL,SACzC,GAAID,kBAAe,EAAWK,KAAKL,WAAaA,UACpD,GAgGJ,IAAMO,8BAAgC,CAClCR,KACAE,SACgClF,WAAW,CAAEyF,KAAM,cAAeT,UAAME,gBAiD5E,IAAMQ,oCAAsC,CACxCV,KACAE,SACsClF,WAAW,CAAEyF,KAAM,cAAeT,UAAME,gBAiBlF,SAASS,UAAUC,QACf,OAAOA,cAAW,GAAaC,OAAOC,SAASF,SAAWA,QAAU,EAAIA,YAAS,CACrF,CAqEA,IAAMG,gBAAkB,CAAC,OAAQ,gBAAiB,gBAAiB,gBAyE5D,IAAMC,YAAN,MAAMC,aACAC,MACA5E,YACAV,SACAuF,aAEAC,oBACAC,KACA7F,gBACA8F,gBAEAC,0BAAA,IAAiBC,IAE1BC,aAEQ,WAAAtB,CACJe,KACA5E,WACAV,QACAyF,IACA7F,eAA8C,KAC9C2F,2BAAc,IAAIK,IAClBJ,kCAAA,IAAyBI,IACzBF,eAAkDtG,WAAW,KAE7DsF,MAAKY,KAAQA,KACbZ,MAAKhE,WAAcA,WACnBgE,MAAK1E,QAAWA,QAChB0E,MAAKe,IAAOA,IACZf,MAAK9E,eAAkBA,eACvB8E,MAAKa,YAAeA,YACpBb,MAAKc,mBAAsBA,mBAC3Bd,MAAKgB,eAAkBA,eAGvBxK,wBAAwBwJ,KAAM,CAC1BY,UACAtF,QAAS,IAAM,IAAI0E,MAAK1E,QAASqC,UACjCyD,iBAAkB,IAAMpB,MAAKqB,2BAC7BzK,gBAAkBiH,QAAWmC,MAAKsB,wBAAyBzD,QAC3DlC,SAAWkC,QAAWmC,MAAKrE,SAAUkC,QACrCH,OAAQ,IAAMsC,MAAKtC,SACnB6D,aAAc,IAAMvB,MAAKuB,eACzBC,sBAAuB,IAAMxB,MAAKyB,mBAAoB5D,OACtD6D,mBAAoB,IAAM1B,MAAK0B,qBAC/BC,eAAgB,IAAM3B,MAAKe,IAAKjE,cAAcC,MAEtD,CAiBA,eAAO6E,CAAS/G,MAAgBgH,MAAQ,GACpC,MAAMC,QAAU/K,UAAU8D,OAC1B,MAAMkE,MAAQ+C,QAAQD,OACtB,IAAK9C,MAAO,CACR,MAAM,IAAIU,UACN,2CAA2CnF,SAASuH,gBAAgBC,QAAQC,UAEpF,CACA,MAAMC,SAAWvL,sBAAsBsI,MAAMkD,MAC7C,MAAMrB,KAAO9J,gBAAgBkL,SAAShG,YACtC,IAAK4E,KAAM,CACP,MAAM,IAAInB,UACN,uCAAuCnF,SAAS0H,SAAShG,eAEjE,CACA,OAAO2E,cAAYuB,aAAcF,SAAUpB,KAC/C,CAoFA,kBAAOuB,CAAYC,OAIf,GAAIA,QAAU,aAAeA,QAAU,SAAU,CAC7C,MAAM,IAAI3C,UACN,oEAAoElF,cAAc6H,SAE1F,CACA,MAAMJ,SAAWvL,sBAAsB2L,OACvC,MAAMxB,KAAO9J,gBAAgBkL,SAAShG,YACtC,IAAK4E,KAAM,CACP,MAAM,IAAInB,UACN,0CAA0CnF,SAAS0H,SAAShG,eAEpE,CACA,OAAO2E,cAAYuB,aAAcF,SAAUpB,KAC/C,CAGA,mBAAOsB,CAAcF,SAAgCpB,MACjD,MAAMyB,SAAW,IAAIL,SAASK,UAC9B,MAAMC,QAAU,IAAI3B,aAChBC,KACAoB,SAAShG,WACTgG,SAAS1G,QACT0G,SAASjB,IACTiB,SAAS9G,eACT8G,SAASnB,YACTmB,SAASlB,mBACTuB,UAEJ,MAAM7F,YAAEA,YAAAE,cAAaA,cAAAI,aAAeA,cAAiBkF,SAASjB,IAG9D,IAAA,MAAWlD,SAAU,IAAImE,SAAS1G,QAAQqC,UAAW,CACjD,MAAM4E,WAAaD,SAAQE,iBAAkB3E,QAC7C,GAAI0E,aAAe,KAAMF,SAASI,KAAKF,WAC3C,CAKA,GAAI/F,mBAAgB,EAAW8F,SAAQvB,IAAKvE,YAAcA,YAC1D,GAAIE,qBAAkB,EAAW4F,SAAQvB,IAAKrE,cAAgBA,cAC9D,GAAII,oBAAiB,EAAWwF,SAAQvB,IAAKjE,aAAeA,aAC5DpC,WAAW2H,UACX,OAAOC,OACX,CAwBA,iBAAAE,CAAkB3E,QACd,MAAM6E,YAAc7E,OAAOa,YAC3B,IAAKgE,oBAAsBA,YAAYC,gBAAkB,SAAU,OAAO,KAC1E,MAAMC,OAASF,YAAYG,UAC3B,MAAMjE,MAAQoB,MAAKrE,SAAUkC,QAC7B,GACI+E,cAAW,IACV5C,MAAKa,YAAaiC,IAAIjF,OAAOS,OAC1BM,QAAU,OACTxH,qBAAqBwH,MAAOgE,SACnC,CACE,OAAO,IACX,CACA,GAAIA,cAAW,GAAa5C,MAAKa,YAAaiC,IAAIjF,OAAOS,MAAO,CAC5D,MAAMyE,QAAUrM,wBAAwBmH,QACxC,GAAIkF,SAASC,cAAgB,aAAeN,YAAYO,OAASF,QAAQG,MAAO,CAC5E,OAAO,IACX,CACJ,CACA,IACIlD,KAAKmD,eAAetF,OAAOS,KAAMoE,YAAYC,cAAe,CACxDO,MAAOR,YAAYO,MACnBG,QAASV,YAAYW,SAAW,YACrBX,YAAYY,qBAAuB,SACxC,CAAEC,yBAA0Bb,YAAYY,oBACxC,CAAA,IAEV,GAAIV,cAAW,EAAW,CACtB,MAAO,CACHY,OAAQ,sBACRrE,KAAMtB,OAAOS,KACbmF,aAAc5F,OAAOU,KACrBmF,gBAAiBhB,YAAYC,cAErC,CAKA,MAAMgB,WAAatM,uBAAuBwG,OAAOU,KAAMmE,aACvD,OAAOiB,aAAe,KAChB,KACA,CACIH,OAAQ,uBACRrE,KAAMtB,OAAOS,KACbmF,aAAc5F,OAAOU,KACrBmF,gBAAiBhB,YAAYC,cAC7BiB,qBAAsBD,WAEpC,CAAA,MAASE,OAOL,KAAMA,iBAAiBpE,cAAgBoE,iBAAiBC,YAAa,MAAMD,MAC3E,MAAO,CACHL,OAAQ,wBACRrE,KAAMtB,OAAOS,KACbmF,aAAc5F,OAAOU,KACrBmF,gBAAiBhB,YAAYC,cAErC,CACJ,CAoBA,YAAOoB,CAAM/H,YACT,MAAMgI,UAAYxJ,cAAcwB,WAAY,iCAC5C,MAAM4E,KAAO9J,gBAAgBkN,WAC7B,IAAKpD,KAAM,CAEP,MAAM,IAAInB,UACN,+CAA+CnF,SAAS0B,eAEhE,CAIA,MAAMoD,QAAU1F,kBAAkBkH,KAAKqD,SAAS3I,SAAW,IAAI4I,OAAQrG,SACnE,MAAMsG,OAASjK,cAAc2D,OAAOsB,MACpC,OAAOgF,SAAW,MAAQ7K,gBAAgB6K,UAAY,OAE1D,OAAO,IAAIxD,aACPC,KACAA,KAAKqD,OACL,IAAI/C,IACA9B,OAAOxB,IAAKC,QAAW,CAACA,OAAOsB,KAAM,CAAEb,KAAMT,OAAOsB,KAAMZ,KAAMV,OAAOoG,WAE3E,CAAA,EAER,CAyBA,cAAO,CAAQjI,YACX,MAAMgI,UAAYxJ,cAAcwB,WAAY,mCAC5C,MAAM4E,KAAO9J,gBAAgBkN,WAC7B,IAAKpD,KAAM,CACP,MAAM,IAAInB,UACN,qDAAqDnF,SAAS0B,eAEtE,CACA,MAAMsG,QAAU5I,kBAAkBkH,KAAKqD,QACvC,OAAO,IAAItD,aACPC,KACA0B,QAAQ2B,OACR,IAAI/C,IACAoB,QAAQhH,QAAQsC,IAAKC,QAAW,CAC5BA,OAAOsB,KACP,CAAEb,KAAMT,OAAOsB,KAAMZ,KAAMV,OAAOoG,WAG1C,CAAA,EAER,CAGA,cAAIjI,GACA,OAAOgE,MAAKhE,UAChB,CAGA,YAAIE,GACA,OAAO8D,MAAKe,IAAK5E,UAAY,IACjC,CAGA,aAAIC,GACA,OAAO4D,MAAKe,IAAK1E,WAAa,IAClC,CAWA,eAAII,GACA,OAAOuD,MAAKe,IAAKvE,aAAewD,MAAKoE,qBACzC,CAMA,oBAAAA,GACI,OAAOlL,qBAAqB8G,MAAKY,KAAMyD,SAAUrE,MAAK0B,qBAC1D,CAMA,gBAAI1E,GACA,MAAMsH,IAAMtE,MAAKe,IAAKjE,aACtB,GAAIwH,KAAKvH,YAAS,GAAauH,IAAIpH,eAAY,EAAW,CACtD,OAAOqH,OAAOC,OAAO,CAAEvH,KAAMqH,IAAIvH,KAAMI,QAASmH,IAAIpH,SACxD,CACA,MAAMuH,SAAWzE,MAAK0E,uBACtB,OAAOH,OAAOC,OAAO,CACjBvH,KAAMqH,KAAKvH,MAAQ0H,SAASxH,KAC5BE,QAASmH,KAAKpH,SAAWuH,SAAStH,SAE1C,CAMA,iBAAIR,GACA,OAAOqD,MAAKe,IAAKrE,eAAiBsD,MAAK2E,uBAC3C,CA8BA,qBAAIC,GACA,OAAOzL,2BAA2B6G,MAAK0B,qBAC3C,CAGA,sBAAAiD,GACI,OAAOvL,uBAAuB4G,MAAK0B,qBACvC,CAGA,qBAAAgD,GACI,OAAOrL,sBAAsB2G,MAAKY,KAAMiE,oBAAqB7E,MAAK0B,qBACtE,CAUA,aAAInG,GACA,OAAOyE,MAAKe,IAAKzE,WAAa,IAClC,CASA,gBAAIb,GACA,OAAOuE,MAAKe,IAAKxE,cAAgB,IACrC,CAQA,SAAIX,GACA,OAAOoE,MAAKe,IAAK3D,OAAS,IAC9B,CAmCA,kBAAIlC,GACA,OAAO8E,MAAK9E,cAChB,CA2BA,kBAAI8F,GACA,OAAOhB,MAAKgB,cAChB,CAiCA,UAAA8D,GACI,MAAMC,MAAQ/E,MAAKtC,SACnB,MAAMsH,MAAQ,IAAI9D,IAAI6D,MAAMnH,IAAKuB,MAAS,CAAC/E,aAAa+E,KAAKD,IAAK7E,eAAgB8E,QAClF,MAAM7D,QAA8B,IAAI0E,MAAK1E,QAASqC,UAAUC,IAAKC,SACjE,MAAMe,MAAQoB,MAAKrE,SAAUkC,QAC7B,MAAMsB,KAAO6F,MAAM3F,IAAIjF,aAAayD,OAAOS,KAAMiB,cACjD,MAAM0F,QACDrG,QAAU,MAAQtH,oBAAoBuG,OAAOS,OAAU/G,oBAAoBsG,QAChF,MAAMqH,WACFtG,OAASO,OAAS8F,QAAUtO,iBAAiBqJ,MAAKhE,WAAamD,KAAMP,OAAS,KAGlF,MAAMuG,gBAAkB9E,UACpBzB,OAAOO,OAAS,YACVvI,gBAAgBoJ,MAAKsB,wBAAyBzD,QAASe,QAAQwG,aAC/D,GAEV,MAAO,CACHjG,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACf8G,mBAAoBJ,QACpBK,SAAUJ,YAAYpF,SAAW,QAC7BoF,aAAe,KAAO,CAAA,EAAK,CAAEK,cAAeL,WAAWvF,eACvDuF,YAAYtF,cAAW,EAAY,CAAA,EAAK,CAAE4F,UAAWN,WAAWtF,WAChEhB,OAAO6G,sBAAmB,EACxB,CAAA,EACA,CAAEA,eAAgB7G,MAAM6G,mBAC1B7G,OAAO8G,kBAAe,EAAY,CAAA,EAAK,CAAEA,WAAY9G,MAAM8G,eAC3D9G,OAAO+G,qBAAkB,EACvB,CAAA,EACA,CAAEA,cAAe/G,MAAM+G,kBACzBR,uBAAoB,EAAY,CAAA,EAAK,CAAEA,oCAGnD,MAAMS,IAAMvF,UAAUL,KAAKvD,aAC3B,MAAMoJ,KAAOxF,UAAUL,KAAKhD,aAAaC,MACzC,MAAM6I,MAAQzF,UAAUL,KAAKrD,eAC7B,MAAMoJ,KACFH,WAAQ,OACF,EACA,CACIA,WACIC,YAAS,EAAY,CAAA,EAAK,CAAEA,cAC5BA,YAAS,GAAaC,aAAU,EAAY,CAAA,EAAK,CAAEA,cAErE,OAAOxP,gBAAgB,CACnB0F,WAAYgE,MAAKhE,WACjB+I,YACAzJ,mBACIyK,YAAS,EAAY,CAAA,EAAK,CAAEA,YAExC,CAgBA,KAAAhB,CAAM5E,MACF,MAAM6F,OAAShG,MAAKiB,UAAW5B,IAAIc,MACnC,GAAI6F,cAAW,EAAW,OAAOA,OACjC,MAAMjB,MACF5E,YAAS,EACHH,MAAKtC,SACLsC,MAAKtC,SAAUwG,OAAQ/E,MAASA,KAAKgB,OAASA,MACxD,MAAM8F,cAAgBjG,MAAKkG,eAC3B,MAAM/H,MAAQzD,WACVqK,MAAMnH,IAAKuB,OACP,MAAMP,MAAQoB,MAAKmG,cAAehH,KAAKD,KACvC,MAAMkH,YAAc9M,gBAAgB6F,MACpC,MAAMkH,gBACFD,cAAgB,KACVA,YACAxH,OAAO+G,qBAAkB,GACvB3F,MAAKsG,sBAAuBnH,KAAKD,IAAK,KAAM+G,cAAerH,SACvD,KACH,cACD,KACZ,MAAO,IACAO,KACHoH,KAAMtM,gBAAgBkF,MACtBtB,OAAQmC,KAAKwG,eAAerH,KAAKD,KACjCuH,UAAWJ,kBAAoB,QAC3BA,kBAAoB,KAAO,CAAA,EAAK,CAAEA,qCAIlDrG,MAAKiB,UAAWyF,IAAIvG,KAAMhC,OAC1B,OAAOA,KACX,CASA,cAAAqI,CAAeG,SACX,MAAM9I,OAASmC,MAAK4G,gBAAiBD,SACrC,IAAK9I,OAAQ,OAAO,KACpB,MAAMgJ,IAAMrP,mBAAmBqG,QAC/B,MAAMe,MAAQoB,MAAKrE,SAAUkC,QAC7B,MAAMiJ,UAAYlQ,gBAAgBoJ,MAAKsB,wBAAyBzD,QAASe,OACzE,OAAOlE,WAAW,CACdyE,KAAMtB,OAAOS,KACb2F,OAAQ4C,IAAItI,KACZT,GAAI+I,IAAI9I,GACRE,SAAU4I,IAAI3I,SACd6I,OAAQF,IAAIrI,OACZL,MAAO0I,IAAIpI,MACXiE,YAAamE,IAAInI,YACjBmI,QACAjI,MAAOA,QAAU,KAAO,KAAOnH,iBAAiBmH,OAChDoI,eAAgBF,YAAc,KAAO,KAAOrP,iBAAiBqP,WAC7DG,WAAYjN,mBAAmB8M,WAC/BlD,qBAAsBlN,wBAAwBmQ,MAEtD,CAgBA,aAAAK,GACI,OAAOxM,WACH,IAAIsF,MAAK1E,QAAS6L,QAAQC,QAASlI,MAC/B,MAAME,OAASY,KAAKwG,eAAetH,KACnC,OAAOE,SAAW,KAAO,GAAK,CAACA,UAG3C,CAuBA,mBAAAiI,CAAoBV,SAChB,MAAM9I,OAASmC,MAAK4G,gBAAiBD,SACrC,OAAOjM,WACHmD,OAASnG,uBAAuBmG,OAAOU,KAAMyB,MAAKrE,SAAUkC,SAAW,GAE/E,CAoBA,4BAAAyJ,CAA6BX,SACzB,MAAM9I,OAASmC,MAAK4G,gBAAiBD,SACrC,MAAM/H,MAAQf,OAASmC,MAAKrE,SAAUkC,QAAU,KAChD,MAAMkF,QAAUlF,OAASnH,wBAAwBmH,QAAU,KAC3D,OAAOnD,WACHmD,UAAYe,OAAO2I,WAAa,aAAexE,SAASC,cAAgB,aAClErL,0BAA0BkG,OAAOU,KAAMK,OACvC,GAEd,CA+BA,cAAA4I,CAAeb,SACX,MAAMxH,KAAOa,MAAKyH,YAAad,SAC/B,MAAMe,SAAW,IAAIC,IACjB,IAAI3H,MAAK1E,QAASqC,UAAUyJ,QAAShI,SACjC,GACIhF,aAAagF,OAAOd,KAAMiB,eAAiBnF,aAAa+E,KAAKD,IAAK7E,eAElE,MAAO,GACX,MAAMuN,MAAQ5H,MAAKrE,SAAUyD,SAASqG,eACtC,OAAOmC,aAAU,EAAY,GAAK,CAACA,UAG3C,MAAM3B,cAAgBjG,MAAKkG,eAC3B,MAAM2B,aAAe7H,MAAKmG,cAAehH,KAAKD,KAC9C,OAAOnG,YAAYmL,OACdrG,QACGA,OAAOiK,iBAAc,GACrBjR,eAAemJ,MAAKhE,WAAamD,KAAMtB,UAAY,OAClDA,OAAO4H,sBAAmB,IAAciC,SAAS5E,IAAIjF,OAAO4H,kBAC7DzF,MAAKsG,sBAAuBnH,KAAKD,IAAKrB,OAAQoI,cAAe4B,gBAAkB,KAE3F,CAwBA,gBAAAE,CAAiBpB,SACb,MAAM3C,UAAYxJ,cAAcmM,QAASrH,UACzC,MAAM0I,OAAS5N,aAAa4J,UAAW1E,UACvC,MAAMH,KAAOa,MAAKyH,YAAazD,WAC/B,MAAMiE,UAAYjI,MAAKiI,UAAWjE,WAClC,MAAMkE,WAAaD,WAAajE,UAChC,MAAMmE,aAAehJ,KAAKD,IAC1B,GAAI5F,gBAAgB6F,QAAU,KAAM,CAChC,OAAOzE,WAAW,CAAE0N,OAAQ,UAAWjJ,KAAM+I,WAAYG,OAAQ,iBACrE,CAEA,MAAMC,QAAUtI,MAAK4G,gBAAiB5C,WACtC,MAAM6D,aAAeS,QAAUtI,MAAKrE,SAAU2M,SAAW,KACzD,MAAMC,MACFD,eAAY,GACZT,eAAiB,OAChB1I,KAAKgB,OAAS,aACT5I,oBAAoB+Q,SACpB3R,iBAAiBqJ,MAAKhE,WAAamD,KAAM0I,gBAAkB,MACrE,GAAIU,MAAO,CACP,OAAO7N,WAAW,CACd0N,OAAQ,YACRjJ,KAAMmJ,QAAQhK,KACd2F,OAAQqE,QAAQ/J,MAExB,CAEA,MAAMiK,cAAgB9O,kBAAkBsG,MAAKhE,aAAcV,QAAQmN,KAC9D5K,QAAWzD,aAAayD,OAAOsB,KAAM9E,iBAAmB2N,QAE7D,IAAKQ,cAAe,CAChB,OAAO9N,WAAW,CAAE0N,OAAQ,qBAAsBjJ,KAAM+I,YAC5D,CACA,MAAMQ,OAAS9Q,SAASoI,MAAK1E,QAAU6M,cACvC,MAAMQ,YAAc,CAChBrK,KAAMoK,OACNnK,KAAMiK,cAAcvE,UAChBqE,SAASvK,UAAO,EAAY,CAAA,EAAK,CAAEA,GAAIuK,QAAQvK,OAC/CuK,SAASpK,gBAAa,EAAY,CAAA,EAAK,CAAEA,SAAUoK,QAAQpK,aAC3DoK,SAAS9J,cAAW,EAAY,CAAA,EAAK,CAAEA,OAAQ8J,QAAQ9J,SAE/D,MAAMoK,iBACF/P,sBAAsB2P,cAAcvE,OAAQ,kCAC3C1M,oBAAoBoR,aACf9P,sBAAsBhB,qBAAsB,gCAC5C,MACV,IAAK+Q,iBAAkB,CACnB,OAAOlO,WAAW,CACd0N,OAAQ,qBACRjJ,KAAM+I,WACNjE,OAAQuE,cAAcvE,QAE9B,CAEAjE,MAAK6I,cAAeH,OAAQC,YAAaC,kBACzC,OAAOlO,WAAW,CACd0N,OAAQ,WACRjJ,KAAMuJ,OACNzE,OAAQuE,cAAcvE,QAE9B,CA4CA,SAAA6E,CAAUnC,QAAiB9I,QACvB,MAAMsB,KAAOa,MAAKyH,YAAad,SAC/B,GAAI9I,SAAW,MAAQA,cAAW,EAAW,CAEzC,MAAM,IAAI4B,UACN,kDAAkDnF,SAASqM,sDAEnE,CAIA,UAAY9I,OAAgCoG,SAAW,SAAU,CAC7D,MAAM,IAAIxE,UACN,sCAAsCnF,SAASqM,oDAAoDpM,cAAcsD,UAEzH,CAGAA,OAASpG,iBAAiBoG,QAK1B,MAAMkL,WAAalQ,sBAAsBgF,OAAOoG,OAAQnM,aACxD,GAAIiR,aAAe,KAAM,CACrB,MAAM,IAAItJ,UACN,sDAAsDnF,SAASuD,OAAOoG,WAE9E,CACA,IAAA,MAAW+E,SAASvI,gBAAiB,CACjC,MAAMmC,OAAkB/E,OAAOmL,OAC/B,GAAIpG,cAAW,EAAW,CACtB,GAAImG,WAAWC,cAAW,EAAW,SACrC,MAAM,IAAIvJ,UACN,mDAAmDnF,SAASuD,OAAOoG,mBAAmB+E,QAE9F,CAEA,UAAWpG,SAAW,WAAarC,OAAOC,SAASoC,QAAS,CACxD,MAAM,IAAInD,UACN,mDAAmDnF,SAASuD,OAAOoG,qBAAqB+E,YAAYzO,cAAcqI,UAE1H,CACJ,CACA,MAAMqG,QAAUtS,iBAAiBqJ,MAAKhE,WAAamD,KAAMtB,QACzD,GAAIoL,QAAS,CACT,GAAIA,QAAQtJ,aAAe,gBAAiB,CACxC,MAAM,IAAIH,iBACN,0BAA0BlF,SAASuD,OAAOoG,aAAa3J,SAASqM,aAAasC,QAAQnJ,UACrF,gBACA,CAAEX,KAAMA,KAAKD,KAErB,CACA,MAAM,IAAIM,iBACN,0BAA0BlF,SAASuD,OAAOoG,aAAa3J,SAASqM,aAAasC,QAAQnJ,UACrF,qBACA,IACOmJ,QAAQrJ,OACXT,KAAMA,KAAKD,IACX+E,OAAQpG,OAAOoG,OACftE,WAAYsJ,QAAQtJ,YAExBsJ,QAAQtJ,WAEhB,CACA,GAAI9B,OAAO4H,sBAAmB,EAAW,CACrC,MAAMyD,SAAW,IAAIlJ,MAAK1E,QAASqC,UAAU8K,KACxCrJ,QACGhF,aAAagF,OAAOd,KAAMiB,eACtBnF,aAAa+E,KAAKD,IAAK7E,gBAC3B2F,MAAKrE,SAAUyD,SAASqG,iBAAmB5H,OAAO4H,gBAE1D,GAAIyD,SAAU,CACV,MAAM,IAAI1J,iBACN,0BAA0BlF,SAASuD,OAAOoG,aAAa3J,SAASqM,aAAa9I,OAAO4H,gEAAgEnL,SAAS4O,SAAS5K,SACtK,2BACA,CACImH,eAAgB5H,OAAO4H,eACvBtG,KAAMA,KAAKD,IACX+E,OAAQpG,OAAOoG,OACfkF,aAAcD,SAAS5K,KACvB8K,eAAgBF,SAAS3K,MAGrC,CACJ,CACA,MAAM8K,aAAerJ,MAAKsG,sBAAuBnH,KAAKD,IAAKrB,QAC3D,GAAIwL,eAAiB,KAAM,CACvB,MAAM,IAAI7J,iBACN,0BAA0BlF,SAASuD,OAAOoG,aAAa3J,SAASqM,aAAa0C,aAAazB,oBAAoByB,aAAaC,qCAAqCD,aAAaE,QAC7K,sBACA,CACI3B,MAAOyB,aAAazB,MACpB0B,MAAOD,aAAaC,MACpBC,MAAOF,aAAaE,MACpBpK,KAAMA,KAAKD,IACX+E,OAAQpG,OAAOoG,QAG3B,CAGA,MAAM/E,IAAMc,MAAKiI,UAAWtB,UAAYxH,KAAKD,IAC7Cc,MAAK6I,cAAe3J,IAAK,CAAEZ,KAAMY,IAAKX,KAAMV,OAAOoG,QAAUpG,QAC7D,OAAOmC,IACX,CAcA,YAAAwJ,CAAa7C,SAET,MAAMqB,OAAS5N,aAAauM,QAASrH,UACrC,GAAI0I,SAAW,aAAc,CACzB,MAAM,IAAIxI,iBACN,kEACA,gBACA,CAAEL,KAAM,cAEhB,CACA,MAAMgF,OAASjK,cAAcyM,SAC7B,MAAMxH,KAAOa,MAAKtC,SAAU+K,KACvBgB,WAAcrP,aAAaqP,UAAUvK,IAAK7E,iBAAmB2N,QAElE,GAAI7D,SAAW,MAAQ7K,gBAAgB6K,UAAY,eAAgB,CAC/D,MAAM8D,UAAYjI,MAAKiI,UAAWtB,SAClC,MAAMzH,KAAMC,MAAMD,KAAO+I,WAAatB,QACtC,MAAM,IAAInH,iBACN,iCAAiClF,SAAS4E,+CAC1C,eACA,CAAEC,KAAMD,MAEhB,CACA,MAAMA,IAAMc,MAAKiI,UAAWtB,SAC5B,GAAIzH,MAAQ,KAAM,CACd,MAAMmK,aAAerJ,MAAKsG,sBAAuBpH,IAAK,MACtD,GAAImK,eAAiB,KAAM,CACvB,MAAMjK,OAASY,MAAK1E,QAAS+D,IAAIH,KACjC,MAAM,IAAIM,iBACN,6BAA6BlF,SAASqM,aAAa0C,aAAazB,oBAAoByB,aAAaC,qCAAqCD,aAAaE,QACnJ,sBACA,CACI3B,MAAOyB,aAAazB,MACpB0B,MAAOD,aAAaC,MACpBC,MAAOF,aAAaE,MACpBpK,KAAMD,OACFE,cAAW,EAAY,CAAA,EAAK,CAAE6E,OAAQ7E,OAAOb,OAG7D,CACAyB,MAAK6I,cAAe3J,IAAK,KAC7B,CACA,OAAOc,IACX,CAgEA,cAAAmD,CAAewD,QAAiBjD,gBAAyB5I,SAIrDN,cAAckJ,gBAAiB,+CAC/B,GAAI5I,UAAY,aAAeA,UAAY,SAAU,CACjD,MAAM,IAAI2E,UACN,gFAAgFlF,cAAcO,WAEtG,CAIA,MAAM4O,YAAc5O,QAAQoI,MAC5B,MAAMyG,cAAgB7O,QAAQsI,QAG9B,IAAIwG,mBAAqB9O,QAAQyI,+BAA4B,EAC7D9I,uBACImP,mBACA,gEAEJ,MAAM/L,OAASmC,MAAK4G,gBAAiBD,SACrC,IAAK9I,OAAQ,CACT,MAAM,IAAIiG,WACN,qCAAqCxJ,SAASqM,qBAEtD,CACA,MAAMkD,YAAc7J,MAAKrE,SAAUkC,QACnC,IAAKgM,YAAa,CACd,MAAM,IAAIpK,UACN,oDAAoDnF,SAASuD,OAAOU,SAE5E,CAGA,MAAMuL,OAAStQ,0BAA0BqE,OAAOU,KAAMmF,iBAGtD,MAAMqG,MACFD,SAAWpG,gBACL,IAAIpJ,SAASoJ,oBACb,IAAIpJ,SAASoJ,sBAAsBpJ,SAASwP,0BAItD,MAAME,QAAUtG,gBAAgBuG,OAAOhO,cACvC,MAAMiO,SAAWJ,OAAOG,OAAOhO,cAC/B,MAAMkO,mBACFN,YAAYtC,WAAa,YACnBzO,yBAAyB+E,OAAOU,MAAMkK,KACjC1F,SACGA,QAAQC,cAAgB,cACvBD,QAAQW,gBAAgBzH,gBAAkB+N,SACvCjH,QAAQW,gBAAgBzH,gBAAkBiO,gBAEtD,EACV,GAAIC,mBAAoB,CACpB,MAAMC,OAASD,mBAAmB5G,yBAClC,GACIqG,0BAAuB,IACtBQ,cAAW,GACRA,OAAOH,OAAOhO,gBAAkB2N,mBAAmBK,OAAOhO,eAChE,CACE,MAAM,IAAIwD,UACN,oDAAoDnF,SAASuD,OAAOU,iDAE5E,CACAqL,mBAAqBQ,MACzB,CACA,GACItR,yBAAyB+E,OAAOU,MAAM8L,KACjCtH,SACGA,QAAQC,cAAgB,gBACvBD,QAAQW,gBAAgBzH,gBAAkB+N,SACvCjH,QAAQW,gBAAgBzH,gBAAkBiO,WAExD,CACE,MAAM,IAAIzK,UACN,+BAA+BsK,4HAEvC,CACA,IAAKxJ,OAAO+J,UAAUZ,cAAgBA,YAAc,GAAKA,YAAc,EAAG,CACtE,MAAM,IAAI5F,WACN,4CAA4CiG,eAAezP,SAASoP,eAE5E,CACA,MAAMxG,MAAQzJ,kBAAkBqQ,OAAQJ,aACxC,IAAKxG,MAAO,CACR,MAAM,IAAIY,WACN,4CAA4CiG,eAAezP,SAASoP,eAE5E,CACA,IAAIa,aACJ,GAAIX,0BAAuB,EAAW,CAClCW,aAAevR,sBAAsB4Q,oBACrC,IAAKW,aAAc,CACf,MAAM,IAAIzG,WACN,4DAA4DxJ,SAASsP,uBAE7E,CACJ,CACA,MAAMxG,QAAUuG,eAAiB,EACjC,IAAKpJ,OAAOC,SAAS4C,UAAYA,QAAU,GAAKA,QAAU,EAAG,CACzD,MAAM,IAAIU,WACN,wEAER,CACA,GAAI+F,YAAYW,kBAAmB,CAC/B,MAAM,IAAI/K,UACN,uCAAuCnF,SAASuD,OAAOU,8EAE/D,CAKA,IAAKxG,sBAAsB8F,OAAOU,KAAMmF,iBAAkB,CACtD,MAAM+G,QAAU,IAAIzS,mBAAmB6F,OAAOU,OAAOX,IACjD,EAAE8M,UAAWC,SAAW,GAAGD,cAAcC,UAE7C,MAAM,IAAIlL,UACNgL,QAAQ1I,OAAS,EACX,uCAAuCzH,SAASuD,OAAOU,mCAAmCwL,mCAAmCU,QAAQG,KAAK,QAC1I,iFAAiFtQ,SAASuD,OAAOU,SAE/G,CACA,GACIqL,0BAAuB,IACtB3R,yBAAyB4F,OAAOU,KAAMqL,qBACvCO,0BAAuB,EACzB,CACE,MAAMM,QAAU9Q,0BAA0BkE,OAAOU,MACjD,MAAM,IAAIkB,UACN,uCAAuCnF,SAASuD,OAAOU,8CAA8CjE,SAASsP,kCAAkCa,QAAQ1I,OAAS,EAAI0I,QAAQG,KAAK,MAAQ,2BAElM,CAKA,MAAMhM,MAAQoB,MAAK6K,qBAAsBhN,SAAWgM,YACpD,MAAMiB,KAAOlR,UAAUgF,OACvB,MAAMmM,UAAY7S,8BAA8B0G,MAAOsE,MAAOqH,cAC9D,MAAMS,QAAU7S,kBACZyG,MACAkM,KACAC,UAAU7H,MAAM+H,SAChBF,UAAUR,cAAcW,WAE5B,GAAIF,QAAQjJ,OAAS,EAAG,CACpB,MAAM,IAAItC,UACN,8CAA8CsK,qBAAqBzP,SAASuD,OAAOU,kCAAkCyM,QAAQJ,KAAK,QAE1I,CAIA,MAAMO,mBAAqBZ,cAAcY,oBAAsBjI,MAAMiI,mBACrE,MAAMrK,mBAAqBjH,iBACvBiR,KACAC,UAAU7H,MACVE,QACA2H,UAAUR,cAEd,MAAMW,UAAY9S,oBAAoBwG,MAAOkC,oBAC7C,GAAIqK,mBAAoB,CACpB,IAAA,MAAWC,OAAQ,CAAC,UAAW,UAAW,YAAa,YAAsB,CACzE,MAAMjN,MAAQgN,mBAAmBC,MACjC,GAAIjN,aAAU,EAAW,SACzB,MAAMkN,MAAQvR,oBAAoBsR,MAAM,GACxC,GAAIC,aAAU,EAAW,SACzB,MAAMC,eAAiB,CACnBC,MAAOF,MACP5M,MAAON,MAAQpE,cAAcsR,OAC7BG,eAAgB5M,MAAMuM,qBAAqBC,OAAS,GAAKrR,cAAcsR,QAE3EH,UAAUzI,KAAK6I,gBACfxK,mBAAmB2B,KAAK6I,eAC5B,CACJ,CACA,MAAM5I,YAAiC,CACnCC,cAAee,gBACfT,MAAOyG,YACPrG,QAASD,WACLwG,0BAAuB,EAAY,CAAEtG,mBAAoBsG,oBAAuB,CAAA,EACpF/G,UAAWqI,WAEflL,MAAK6I,cACDhL,OAAOS,KACP,IAAKT,OAAQa,YAAagE,aAC1B9D,MACAkC,oBAEJ,OAAOd,IACX,CA2BA,qBAAAyL,CACI9E,QACA4D,cAEA,GAAIA,eAAiB,KAAM,CACvB/P,cAAc+P,aAAc,kDAChC,CACA,MAAMvC,OAASuC,aACf,MAAM1M,OAASmC,MAAK4G,gBAAiBD,SACrC,IAAK9I,OAAQ,OAAOqC,8BAA8B,YAAa,CAAEf,KAAMwH,UAEvE,MAAM/H,MAAQoB,MAAKrE,SAAUkC,QAC7B,IAAKe,MAAO,CACR,OAAOsB,8BAA8B,yBAA0B,CAC3Df,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,MAAMmE,YAAc7E,OAAOa,YAC3B,IAAKgE,YAAa,CACd,OAAOxC,8BAA8B,gBAAiB,CAClDf,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,GAAIK,MAAM4L,kBAAmB,CACzB,OAAOtK,8BAA8B,eAAgB,CACjDf,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CAEA,MAAMmN,SAAWhJ,YAAYY,oBAAsB,KACnD,GACKoI,WAAa,MAAQ1D,SAAW,MAChC0D,WAAa,MACV1D,SAAW,MACX0D,SAASzB,OAAOhO,gBAAkB+L,OAAOiC,OAAOhO,cACtD,CACE,OAAOvB,WAAW,CAAEyF,KAAM,YAAaoD,yBAA0BmI,UACrE,CAEA,MAAM3I,QAAUrM,wBAAwBmH,QACxC,GAAIe,MAAM2I,WAAa,aAAexE,SAASC,cAAgB,YAAa,CACxE,OAAO9C,8BAA8B,gCAAiC,CAClEf,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,QACXyJ,SAAW,KAAO,CAAA,EAAK,CAAEuC,aAAcvC,SAEnD,CACA,IAAI2D,OACJ,GAAI3D,SAAW,KAAM,CACjB2D,OAAS3S,sBAAsBgP,QAC/B,IAAK2D,OAAQ,CACT,OAAOzL,8BAA8B,4BAA6B,CAC9Df,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfgM,aAAcvC,QAEtB,CAKA,MAAM4D,oBACF7I,SAASQ,gCAA6B,GACtCR,QAAQC,cAAgB,aACxBD,QAAQQ,yBAAyB0G,OAAOhO,gBACpC+L,OAAOiC,OAAOhO,cACtB,IAAKhE,yBAAyB4F,OAAOU,KAAMyJ,UAAY4D,oBAAqB,CACxE,OAAO1L,8BAA8B,gCAAiC,CAClEf,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfgM,aAAcvC,QAEtB,CACJ,CACA,GAAIjF,SAAWA,QAAQC,cAAgB,YAAa,CAChD,MAAM6I,MAAQ7L,MAAK6K,qBAAsBhN,QACzC,IAAKgO,MAAO,CACR,OAAO3L,8BAA8B,yBAA0B,CAC3Df,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,MAAMyM,QAAU7S,kBAAkB0T,MAAOjS,UAAUiS,OAAQ,GAAIF,QAAQT,WACvE,GAAIF,QAAQjJ,OAAS,EAAG,CACpB,OAAO7B,8BAA8B,sBAAuB,CACxDf,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfuN,OAAQd,SAEhB,CAEA,MAAQzH,yBAA0BwI,kBAAmBC,eAAkBjJ,QAEvE,MAAMkJ,SACFjE,SAAW,KACLgE,cACA,IAAKA,cAAezI,yBAA0ByE,QACxD,MAAMkC,SAAW7R,sBAAsB2T,eACvC,IAAK9B,SAAU,CACX,OAAOhK,8BAA8B,yBAA0B,CAC3Df,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,MAAMoK,YAAiC,CACnChG,cAAeD,YAAYC,cAC3BM,MAAOP,YAAYO,MACnBI,QAASX,YAAYW,WACjB2E,SAAW,KAAO,CAAA,EAAK,CAAE1E,mBAAoB0E,QACjDnF,UAAWvK,iCAAiC2T,WAEhDjM,MAAK6I,cACDhL,OAAOS,KACP,IAAKT,OAAQa,YAAaiK,aAC1BlR,iBAAiByS,UACjB3R,0BAA0B0T,UAElC,KAAO,CACH,MAAMvB,UAAYhI,YAAYC,cAC9B,MAAMO,MAAQR,YAAYO,MAC1B,MAAMG,QAAUV,YAAYW,QAC5B,UACWqH,YAAc,WACpBnK,OAAO+J,UAAUpH,QAClBA,MAAQ,GACRA,MAAQ,EACV,CACE,OAAOhD,8BAA8B,yBAA0B,CAC3Df,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,MAAM2N,cACFR,WAAa,UAAO,EAAa1S,sBAAsB0S,WAAa,KACxE,GAAIlT,yBAAyBqF,OAAOU,KAAMmE,YAAawJ,iBAAmB,WAAY,CAClF,OAAOhM,8BAA8B,mCAAoC,CACrEf,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfmM,qBAER,CACA,MAAMZ,OAAStQ,0BAA0BqE,OAAOU,KAAMmM,WACtD,MAAMyB,eAAiB1S,kBAAkBqQ,OAAQ5G,OACjD,IACKiJ,iBACApU,sBAAsB8F,OAAOU,KAAMmM,aACnCnK,OAAOC,SAAS4C,UACjBA,QAAU,GACVA,QAAU,EACZ,CACE,OAAOlD,8BAA8B,yBAA0B,CAC3Df,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfmM,oBACAxH,aAER,CACA,MAAM4H,KAAO9K,MAAK6K,qBAAsBhN,SAAWe,MACnD,MAAMmM,UAAY7S,8BAA8B4S,KAAMqB,eAAgBR,QACtE,MAAMX,QAAU7S,kBACZ2S,KACAlR,UAAUkR,MACVC,UAAU7H,MAAM+H,SAChBF,UAAUR,cAAcW,WAE5B,GAAIF,QAAQjJ,OAAS,EAAG,CACpB,OAAO7B,8BAA8B,sBAAuB,CACxDf,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfuN,OAAQd,SAEhB,CACAhL,KAAKmD,eAAetF,OAAOS,KAAMoM,UAAW,CACxCxH,YACAE,mBACI4E,SAAW,KAAO,CAAA,EAAK,CAAEzE,yBAA0ByE,SAE/D,CAEA,OAAOtN,WAAW,CACdyF,KAAM,UACNiM,iCAAkCV,SAClCnI,yBAA0ByE,QAElC,CAsCA,wBAAAqE,CAAyB1F,SACrB,MAAM9I,OAASmC,MAAK4G,gBAAiBD,SACrC,IAAK9I,OAAQ,OAAOuC,oCAAoC,YAAa,CAAEjB,KAAMwH,UAE7E,MAAM/H,MAAQoB,MAAKrE,SAAUkC,QAC7B,IAAKe,MAAO,CACR,OAAOwB,oCAAoC,yBAA0B,CACjEjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,MAAMmE,YAAc7E,OAAOa,YAC3B,IAAKgE,YAAa,CACd,OAAOtC,oCAAoC,gBAAiB,CACxDjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,GAAIK,MAAM4L,kBAAmB,CACzB,OAAOpK,oCAAoC,eAAgB,CACvDjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CAIA,GAAImE,YAAYW,UAAY,GAAKX,YAAYG,iBAAc,EAAW,CAClE,OAAOnI,WAAW,CAAEyF,KAAM,aAC9B,CACA,MAAMmM,gBAAkB5J,YAAYW,QACpC,IAAK9C,OAAOC,SAAS8L,kBAAoBA,gBAAkB,GAAKA,gBAAkB,EAAG,CACjF,OAAOlM,oCAAoC,iBAAkB,CACzDjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CAEA,MAAMgM,aAAe7H,YAAYY,oBAAsB,KACvD,MAAMqI,OACFpB,eAAiB,UAAO,EAAavR,sBAAsBuR,oBAAiB,EAChF,GAAIA,eAAiB,OAASoB,OAAQ,CAClC,OAAOvL,oCAAoC,4BAA6B,CACpEjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfgM,2BAER,CACA,MAAMG,UAAYhI,YAAYC,cAC9B,MAAMO,MAAQR,YAAYO,MAC1B,UAAWyH,YAAc,WAAanK,OAAO+J,UAAUpH,QAAUA,MAAQ,GAAKA,MAAQ,EAAG,CACrF,OAAO9C,oCAAoC,yBAA0B,CACjEjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,MAAMwE,QAAUrM,wBAAwBmH,QACxC,MAAM+N,oBACF7I,SAASQ,gCAA6B,IACrCR,QAAQC,cAAgB,aAAepE,MAAM2I,WAAa,cAC3DxE,QAAQQ,yBAAyB0G,OAAOhO,gBACpCsO,cAAcN,OAAOhO,cAC7B,GACIsO,eAAiB,OAChBtS,yBAAyB4F,OAAOU,KAAMgM,gBACtCqB,oBACH,CACE,OAAOxL,oCAAoC,gCAAiC,CACxEjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfgM,2BAER,CAEA,GAAIxH,SAAWA,QAAQC,cAAgB,YAAa,CAChD,MAAM6I,MAAQ7L,MAAK6K,qBAAsBhN,QACzC,IAAKgO,MAAO,CACR,OAAOzL,oCAAoC,yBAA0B,CACjEjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,MAAMyM,QAAU7S,kBAAkB0T,MAAOjS,UAAUiS,OAAQ,GAAIF,QAAQT,WACvE,GAAIF,QAAQjJ,OAAS,EAAG,CACpB,OAAO3B,oCAAoC,sBAAuB,CAC9DjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfuN,OAAQd,SAEhB,CAEA,MAAQzH,yBAA0BwI,kBAAmBC,eAAkBjJ,QAEvE,MAAMkJ,SACF1B,eAAiB,KACXyB,cACA,IAAKA,cAAezI,yBAA0BgH,cACxD,MAAML,SAAW7R,sBAAsB2T,eACvC,IAAK9B,SAAU,CACX,OAAO9J,oCAAoC,yBAA0B,CACjEjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,MAEvB,CACA,MAAMoK,YAAiC,CACnChG,cAAeD,YAAYC,cAC3BM,MAAOP,YAAYO,MACnBI,QAAS,KACLkH,eAAiB,KAAO,CAAA,EAAK,CAAEjH,mBAAoBiH,cACvD1H,UAAWvK,iCAAiC2T,WAEhDjM,MAAK6I,cACDhL,OAAOS,KACP,IAAKT,OAAQa,YAAaiK,aAC1BlR,iBAAiByS,UACjB3R,0BAA0B0T,UAElC,KAAO,CACH,MAAMM,MAAQ/T,yBAAyBqF,OAAOU,KAAMmE,YAAaiJ,QACjE,GACIY,QAAU,YACTA,QAAU,WAAaxU,sBAAsB8F,OAAOU,KAAMmM,WAC7D,CACE,OAAOtK,oCAAoC,mCAAoC,CAC3EjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfmM,qBAER,CACA,MAAMZ,OAAStQ,0BAA0BqE,OAAOU,KAAMmM,WACtD,MAAMyB,eAAiB1S,kBAAkBqQ,OAAQ5G,OACjD,IAAKiJ,iBAAmBpU,sBAAsB8F,OAAOU,KAAMmM,WAAY,CACnE,OAAOtK,oCAAoC,yBAA0B,CACjEjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfmM,oBACAxH,aAER,CACA,MAAM4H,KAAO9K,MAAK6K,qBAAsBhN,SAAWe,MACnD,MAAMmM,UAAY7S,8BAA8B4S,KAAMqB,eAAgBR,QACtE,MAAMX,QAAU7S,kBACZ2S,KACAlR,UAAUkR,MACVC,UAAU7H,MAAM+H,SAChBF,UAAUR,cAAcW,WAE5B,GAAIF,QAAQjJ,OAAS,EAAG,CACpB,OAAO3B,oCAAoC,sBAAuB,CAC9DjB,KAAMtB,OAAOS,KACb2F,OAAQpG,OAAOU,KACfuN,OAAQd,SAEhB,CACAhL,KAAKmD,eAAetF,OAAOS,KAAMoM,UAAW,CACxCxH,YACAE,QAAS,KACLmH,eAAiB,KAAO,CAAA,EAAK,CAAEhH,yBAA0BgH,eAErE,CAEA,OAAO7P,WAAW,CAAEyF,KAAM,aAAcmM,gCAAiBlJ,QAAS,GACtE,CAwCA,uBAAAoJ,CAAwB7F,QAAiB5D,SACrC,GAAIA,UAAY,aAAeA,UAAY,SAAU,CACjD,MAAM,IAAItD,UACN,2FAA2FlF,cAAcwI,WAEjH,CACAvI,cAAcuI,QAAQkB,OAAQ,uDAC9BzJ,cACIuI,QAAQW,gBACR,gEAEJlJ,cACIuI,QAAQC,YACR,4DAEJvI,uBACIsI,QAAQQ,yBACR,yEAEJ,MAAMkJ,MAAQ3T,yBAAyBiK,QAAQkB,QAAQwE,KAClDgB,WACGA,UAAU/F,gBAAgBzH,gBAAkB8G,QAAQW,gBAAgBzH,eACpEwN,UAAUvG,QAAUH,QAAQG,QAC3BuG,UAAUlG,0BAA0BtH,eAAiB,OACjD8G,QAAQQ,0BAA0BtH,eAAiB,KACxDwN,UAAUzG,cAAgBD,QAAQC,aAE1C,IAAKyJ,MAAO,CACR,MAAM,IAAI3I,WACN,+DAA+DxJ,SAASyI,QAAQW,iCAAiCpJ,SAASyI,QAAQkB,WAE1I,CACA,MAAMrF,MAAQvG,sBAAsBoU,OACpC,MAAMlK,WAAa9J,oBAAoBgU,OACvC,GAAIlK,WAAWR,OAAS,EAAG,CACvB,MAAM,IAAItC,UACN,wDAAwDnF,SAASyI,QAAQW,iCAAiCpJ,SAASyI,QAAQkB,oCAAoC1B,WAAWqI,KAAK,QAEvL,CACA5K,KAAK8I,UAAUnC,QAAS/H,OACxB,MAAMf,OAASmC,MAAK4G,gBAAiBD,SAErC,MAAM+F,iBAAmBpU,iCAAiCmU,OAC1D,MAAM/J,YAAiC,CACnCC,cAAe8J,MAAM/I,gBACrBT,MAAOwJ,MAAMvJ,MACbG,QAAS,KACLoJ,MAAMlJ,gCAA6B,EACjC,CAAA,EACA,CAAED,mBAAoBmJ,MAAMlJ,6BAC9BmJ,iBAAiB3K,OAAS,EAAI,CAAEc,UAAW6J,kBAAqB,CAAA,GAExE1M,MAAK6I,cACDhL,OAAOS,KACP,IAAKT,OAAQa,YAAagE,aAC1BjL,iBAAiBmH,OACjBrG,0BAA0BkU,QAE9B,OAAOzM,IACX,CAeA,gBAAA2M,CAAiBhG,SACb,MAAM9I,OAASmC,MAAK4G,gBAAiBD,SACrC,GAAI9I,QAAUmC,MAAKrE,SAAUkC,SAAS2M,kBAAmB,CACrD,MAAM,IAAI/K,UACN,yCAAyCnF,SAASuD,OAAOU,iFAEjE,CACA,GAAIV,QAAQa,YAAa,CACrB,MAAM9E,WAAYoG,MAAK6K,qBAAsBhN,QAC7C,MAAM+O,KAAsB,CAAEtO,KAAMT,OAAOS,KAAMC,KAAMV,OAAOU,MAC9D,GAAIV,OAAOE,UAAO,EAAY6O,KAA0B7O,GAAKF,OAAOE,GACpE,GAAIF,OAAOK,gBAAa,EAAW,CAC9B0O,KAA+B1O,SAAWL,OAAOK,QACtD,CACA,GAAIL,OAAOW,cAAW,EAAYoO,KAA6BpO,OAASX,OAAOW,OAC/E,GAAIX,OAAOY,aAAU,EAAYmO,KAA4BnO,MAAQZ,OAAOY,MAC5EuB,MAAK6I,cAAehL,OAAOS,KAAMsO,KAAMhT,iBAAa,EACxD,CACA,OAAOoG,IACX,CAoBA,gBAAA6M,CAAiBlG,QAAiB7I,IAC9BkC,MAAK8M,YAAanG,QAAS,CAAE5I,GAAID,KACjC,OAAOkC,IACX,CAaA,iBAAA+M,CAAkBpG,QAAiB1I,UAC/B,IAAKsC,OAAO+J,UAAUrM,WAAaA,SAAW,GAAKA,SAAW,EAAG,CAC7D,MAAM,IAAI6F,WACN,2DAA2DxJ,SAAS2D,YAE5E,CACA+B,MAAK8M,YAAanG,QAAS,CAAEzI,SAAUD,WACvC,OAAO+B,IACX,CAWA,YAAA8M,CAAanG,QAAiBqG,OAC1B,MAAMnP,OAASmC,MAAK4G,gBAAiBD,SACrC,IAAK9I,OAAQ,CACT,MAAM,IAAIiG,WAAW,sBAAsBxJ,SAASqM,qBACxD,CACA3G,MAAK1E,QAASoL,IAAI7I,OAAOS,KAAM9G,mBAAmB,IAAKqG,UAAWmP,SAClEhN,MAAKiB,UAAWgM,OACpB,CAgCA,cAAAC,CAAepS,QAAgC,CAAA,GAC3C,MAAM2B,YAAcuD,MAAKoE,sBACzB,MAAMzH,cAAgBqD,MAAK2E,wBAC3B,MAAMkB,KAAO7F,MAAK0E,uBAClB,MAAM9H,aAAeoD,MAAKmN,oBAAqB1Q,aAC/C,OAAO7B,mBACH,CACIoB,WAAYgE,MAAKhE,cACbgE,MAAKe,IAAK5E,gBAAa,EAAY,CAAA,EAAK,CAAED,SAAU8D,MAAKe,IAAK5E,aAC9D6D,MAAKe,IAAK1E,iBAAc,EAAY,CAAA,EAAK,CAAED,UAAW4D,MAAKe,IAAK1E,WACpEf,QAAS0E,MAAK1E,QACdoC,OAAQsC,MAAKtC,SACbxC,eAAgB8E,MAAK9E,eACrBM,gBAAiBwE,MAAKY,KAAMwM,SAC5B3Q,wBACAE,4BACAK,aAAc6I,KACdjJ,0BAMAxB,mBAAoB4E,MAAKgB,eAAgBqJ,KAAMgD,UAC3C,GAAIA,QAAQ5J,eAAiB,KAAM,OAAO,MAC1C,MAAMU,OAASjK,cAAcmT,QAAQlO,MAGrC,OAAOgF,SAAW,MAAQ5K,iBAAiB4K,UAAY,SAE3DxI,SAAWkC,QAAWmC,MAAKrE,SAAUkC,SAEzC/C,QAER,CAUA,MAAA9D,CAAO8D,SACH,OAAO9D,OAAegJ,KAAKkN,eAAepS,SAAUA,QAAQwS,OAChE,CAeA,YAAAC,CAAazS,SACT,OAAO7D,cAAc+I,KAAKhJ,OAAO8D,SAAU,CAAE0S,OAAQ1S,QAAQ0S,QAAU,GAC3E,CAGA,oBAAAL,CAAqB1Q,aACjB,IAAIgR,MACJ,IACIA,MAAQzN,MAAKuB,cACjB,CAAA,MAGI,OAAO,IACX,CACA,GAAIkM,QAAU,KAAM,OAAO,KAG3B,MAAMC,KAAO1N,MAAK0E,uBAClB,OAAOzL,gBAAgBwD,YAAaZ,KAAK8R,IAAID,KAAKzQ,KAAMwQ,MAAMG,SAAUH,MAC5E,CAGA,OAAA/P,GACI,GAAIsC,MAAKmB,mBAAiB,EAAW,CACjCnB,MAAKmB,YAAeoD,OAAOC,OAAOrK,eAAe6F,MAAKY,MAC1D,CACA,OAAOZ,MAAKmB,WAChB,CAEA,YAAAsG,CAAad,SACT,MAAMqB,OAAS5N,aAAauM,QAASrH,UACrC,MAAMH,KAAOa,MAAKtC,SAAU+K,KAAMoF,GAAMzT,aAAayT,EAAE3O,IAAK7E,iBAAmB2N,QAC/E,IAAK7I,KAAM,CACP,MAAM,IAAI2E,WACN,sBAAsBxJ,SAAS0F,MAAKhE,6BAA8B1B,SAASqM,YAEnF,CACA,OAAOxH,IACX,CAMA,UAAA8I,CAAWtB,SACP,OAAOjO,cAAcsH,MAAK1E,QAAUlB,aAAauM,QAASrH,UAC9D,CAGA,gBAAAsH,CAAiBD,SACb,MAAMzH,IAAMc,MAAKiI,UAAWtB,SAC5B,OAAOzH,MAAQ,UAAO,EAAYc,MAAK1E,QAAS+D,IAAIH,IACxD,CAGA,mBAAAwC,GACI,MAAO,IAAI1B,MAAK1E,QAASqC,UAAUC,IAAKC,SAAA,CACpCkI,KAAM/F,MAAK8N,WAAYjQ,QACvBlB,cAAeqD,MAAK+N,eAAgBlQ,OAAQ,gBAAiB,iBAC7DmQ,cAAehO,MAAK+N,eAAgBlQ,OAAQ,gBAAiB,iBAC7Db,aAAcgD,MAAK+N,eAAgBlQ,OAAQ,eAAgB,kBAEnE,CAGA,aAAAqI,GACI,MAAMpE,QAAU,IAAI9B,MAAK1E,QAASqC,UAAUyJ,QAASvJ,SACjD,MAAMe,MAAQoB,MAAKrE,SAAUkC,QAC7B,OAAOe,QAAU,KAAO,GAAK,CAACA,SAElC,OAAOrI,sBAAsBuL,QACjC,CAGA,cAAAqE,CAAeQ,SACX,MAAMvH,OAASY,MAAK4G,gBAAiBD,SACrC,OAAOvH,cAAW,EAAY,KAAOY,MAAKrE,SAAUyD,OACxD,CAGA,qBAAAyL,CAAsBhN,QAClB,MAAMuB,OAASY,MAAKrE,SAAUkC,QAC9B,IAAKA,OAAOa,aAAehI,wBAAwBmH,UAAY,KAAM,OAAOuB,OAC5E,MAAMyM,MAAQhT,sBAAsBgF,OAAOU,KAAMzG,aACjD,IAAK+T,MAAO,OAAOzM,OACnB,OAAOA,QAAQoL,kBACT/S,iBAAiB,IAAKoU,MAAOrB,kBAAmB,OAChDqB,KACV,CAGA,wBAAAvK,CAAyBzD,QACrB,MAAMqN,UAAYlL,MAAKc,mBAAoBzB,IAAIxB,OAAOS,MACtD,GAAI4M,iBAAc,GAAarN,OAAOa,mBAAgB,EAAW,OAAOb,OACxE,MAAO,IACAA,OACHa,YAAa,IAAKb,OAAOa,YAAamE,UAAWqI,WAEzD,CAGA,yBAAA7J,GACI,MAAO,IAAIrB,MAAK1E,QAASqC,UAAUC,IAAKC,QAAWmC,MAAKsB,wBAAyBzD,QACrF,CAGA,sBAAAyI,CACIK,QACAgC,YACAL,QAAUtI,MAAKkG,eACfwF,SAAW1L,MAAKmG,cAAeQ,UAE/B,GACI+E,UAAUhG,kBAAe,GACzBgG,UAAU/F,qBAAkB,GAC5BgD,aAAajD,kBAAe,GAC5BiD,aAAahD,qBAAkB,EACjC,CACE,OAAO,IACX,CACA,IAAA,MAAWsI,SAAS3F,QAAS,CACzB,MAAMgB,MACF2E,MAAM3E,MACN/I,OAAOmL,UAAUhG,aAAeuI,MAAMrG,OACtCrH,OAAOoI,aAAajD,aAAeuI,MAAMrG,OAC7C,MAAMsG,SACFD,MAAMC,UACLxC,UAAU/F,eAAeiC,QAAUqG,MAAMrG,MACpC8D,SAAS/F,cAAcwI,OACvB,IACLxF,aAAahD,eAAeiC,QAAUqG,MAAMrG,MACvCe,YAAYhD,cAAcwI,OAC1B,GACV,MAAM5E,MAAQ0E,MAAMG,UAAYF,SAChC,MAAMG,OAASxS,KAAKyS,IAAI,EAAGhF,MAAQC,OACnC,GAAI8E,OAASJ,MAAMI,OAAQ,CACvB,MAAO,IAAKJ,MAAOC,kBAAU3E,YAAOD,YAAO+E,cAC/C,CACJ,CACA,OAAO,IACX,CAGA,cAAAxF,CACIlC,QACAgC,YACAC,iBACA9H,oBAEA,MAAM4K,SAAW1L,MAAK1E,QAAS+D,IAAIsH,UAAY,KAC/C3G,MAAKuO,sBAAuB7C,SAAU/C,YAAaC,kBACnD,GAAID,cAAgB,KAAM,CACtB3I,MAAK1E,QAASkT,OAAO7H,SACrB3G,MAAKa,YAAa2N,OAAO7H,SACzB3G,MAAKc,mBAAoB0N,OAAO7H,QACpC,KAAO,CACH3G,MAAK1E,QAASoL,IAAIC,QAASnP,mBAAmBmR,cAC9C,GAAIC,wBAAqB,EAAW5I,MAAKa,YAAa6F,IAAIC,QAASiC,kBACnE,GAAI9H,0BAAuB,EAAWd,MAAKc,mBAAoB0N,OAAO7H,cACjE3G,MAAKc,mBAAoB4F,IAAIC,QAAS7F,mBAC/C,CACAd,MAAKiB,UAAWgM,OACpB,CAGA,sBAAAsB,CACI7C,SACA+C,KACAC,WAEA,GAAI1O,MAAKe,IAAKvE,mBAAgB,EAAW,CACrCwD,MAAKe,IAAKvE,aAAewD,MAAK8N,WAAYW,KAAMC,WAAa1O,MAAK8N,WAAYpC,SAClF,CAEA,GAAI1L,MAAKe,IAAKrE,qBAAkB,EAAW,CACvCsD,MAAKe,IAAKrE,eACNsD,MAAK+N,eAAgBU,KAAM,gBAAiB,gBAAiBC,WAC7D1O,MAAK+N,eAAgBrC,SAAU,gBAAiB,gBACxD,CAEA,GAAI1L,MAAKe,IAAKjE,cAAcC,YAAS,EAAW,CAC5C,MAAMI,QAAU6C,MAAKe,IAAKjE,aAAaI,QACvC8C,MAAKe,IAAKjE,aAAe,CACrBC,KACIiD,MAAKe,IAAKjE,aAAaC,KACvBiD,MAAK+N,eAAgBU,KAAM,eAAgB,eAAgBC,WAC3D1O,MAAK+N,eAAgBrC,SAAU,eAAgB,mBAC/CvO,eAAY,EAAY,CAAA,EAAK,CAAED,QAASC,SAEpD,CAIA,GAAI/C,aAAasR,UAAUnN,KAAMzG,eAAiBsC,aAAaqU,MAAMlQ,KAAMzG,aAAc,CACrF,MACJ,CAIA,GACK4T,WAAa,MAAQ/S,iBAAiB+S,SAASpN,OAC/CmQ,OAAS,MAAQ9V,iBAAiB8V,KAAKnQ,MAC1C,CACE,MACJ,QAGO0B,MAAKe,IAAKxE,oBACVyD,MAAKe,IAAK3D,KACrB,CAWA,WAAA0Q,CAAYjQ,OAA8B8Q,eACtC,GAAI9Q,SAAW,KAAM,OAAO,EAC5B,GAAIlF,iBAAiBkF,OAAOS,MAAO,OAAO,EAC1C,MAAMsQ,SAAW1X,mBAAmB2G,OAAQ,QAC5C,GAAI+Q,WAAa,KAAM,OAAOA,SAC9B,OAAQD,eAAiB3O,MAAKrE,SAAUkC,UAAUkI,MAAQ,CAC9D,CAOA,eAAAgI,CACIlQ,OACAgR,cACA7F,MACA2F,eAEA,GAAI9Q,SAAW,KAAM,OAAO,EAC5B,GAAIlF,iBAAiBkF,OAAOS,MAAO,OAAO,EAC1C,MAAMsQ,SAAW1X,mBAAmB2G,OAAQgR,eAC5C,GAAID,WAAa,KAAM,OAAOA,SAC9B,OAAQD,eAAiB3O,MAAKrE,SAAUkC,WAAWmL,QAAU,CACjE,CAGA,gBAAAvH,GACI,IAAA,MAAWqN,KAAK9O,MAAK1E,QAASqC,SAAU,CACpC,MAAMiB,MAAQoB,MAAKrE,SAAUmT,GAC7B,GAAIlQ,OAAOO,OAAS,kBAAA,MAA0B,CAAEtB,OAAQiR,EAAGlQ,YAC/D,CACA,YAAO,CACX,CAEA,aAAA2C,GACI,MAAMwN,IAAM/O,MAAKyB,kBACjB,IAAKsN,IAAK,OAAO,KACjB,MAAQlR,OAAQmR,UAAWpQ,MAAOkM,MAASiE,IAC3C,GAAIjE,KAAKmE,eAAY,GAAanE,KAAKoE,iBAAc,EAAW,CAI5D,MAAM,IAAIzP,UACN,yDAAyDnF,SAAS0U,UAAUzQ,+BAEpF,CAEA,MAAM4Q,QAAUjY,mBAAmB8X,UAAW,mBAAqBlE,KAAKqE,QACxE,MAAMvB,QAAU1W,mBAAmB8X,UAAW,mBAAqBlE,KAAK8C,QACxE,GAAIuB,eAAY,GAAavB,eAAY,EAAW,CAChD,MAAM5C,QAAU,IACRmE,eAAY,EAAY,CAAC,WAAa,MACtCvB,eAAY,EAAY,CAAC,WAAa,IAE9C,MAAM,IAAInO,UACN,yDAAyDnF,SAAS0U,UAAUzQ,iBAAiByM,QAAQJ,KAAK,UAElH,CAEA,MAAO,CACHuE,gBACAvB,gBACAqB,QAASnE,KAAKmE,QACdC,UAAWpE,KAAKoE,UAChBE,UAAWpP,MAAKqP,mBAExB,CAGA,iBAAAA,GACI,IAAA,MAAWP,KAAK9O,MAAK1E,QAASqC,SAAU,CACpC,MAAMiB,MAAQoB,MAAKrE,SAAUmT,GAO7B,GACIlQ,OAAO0Q,mBAAqB,gBAC3B1Q,OAAOwQ,iBAAc,GAAaxQ,MAAMwQ,YAAc,GACzD,CACE,QACJ,CACA,GAAIN,EAAE/Q,KAAO,MAAO,SACpB,GAAIa,OAAOwQ,iBAAc,EAAW,CAChC,MAAM,IAAI3P,UACN,mDAAmDnF,SAASwU,EAAEvQ,0BAEtE,CACA,OAAOK,MAAMwQ,SACjB,CACA,OAAO,CACX,CAGA,SAAAzT,CAAUkC,QACN,GAAIA,SAAW,KAAM,OAAO,KAC5B,MAAMe,MACFoB,MAAKa,YAAaxB,IAAIxB,OAAOS,OAASzF,sBAAsBgF,OAAOU,KAAMzG,aAC7E,GAAI8G,MAAO,OAAOA,MAIlB,OAAOrH,oBAAoBsG,QACrBhF,sBAAsBhB,qBAAsB,gCAC5C,IACV,UACJ2H,iBAAAkB"}
@@ -1 +1 @@
1
- import{builtInModuleBySymbol,getModuleBySymbol}from"./chunk-FMPHK3L5.js";import{getPreEngineeredVariants}from"./chunk-EXHZ4CFB.js";import{ALL_MODULES}from"./chunk-LXHFRBWK.js";import{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"./chunk-77I24V6B.js";import{resolveBlueprintForModule}from"./chunk-2J6NNI3Y.js";import{getBlueprintGrade,getBlueprint,BLUEPRINTS}from"./chunk-WDAYRHXR.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-M4STXLXO.js";import{fieldForLabel,damageTypeForLabel,capabilityValueForLabel,baseStats,computeModifiers,labelsForDamageType,scaleForLabel}from"./chunk-U73MBQ45.js";import{round6,burstPartOrOne,float32FiringCycle,float32RateOfFire,preciseModifierValue,BURST_PATTERN_LABELS,journalRateOfFire,preciseValueFor}from"./chunk-EFQOUATZ.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.caustic===void 0?{}:{caustic:components.caustic*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function fixedModifierFeatures(modifiers){return modifiers.map(modifier=>({label:modifier.label,method:modifier.method,min:modifier.value,max:modifier.value}))}var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isCargoHatchSlot(slotKey){return slotKey.toLowerCase()==="cargohatch"}var BUILT_IN_HULL_SYMBOL="ModularCargoBayDoor";function isBuiltInHullSymbol(symbol){return symbol.toLowerCase().startsWith(BUILT_IN_HULL_SYMBOL.toLowerCase())}function isBuiltInHullModule(module){return isCargoHatchSlot(module.Slot)&&isBuiltInHullSymbol(module.Item)}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function ownKeyIn(keyed,canonicalKey){return matchingKeyIn(keyed,canonicalKey)??(keyed.size>0&&[...keyed.keys()].every(key=>key===key.toLowerCase())?canonicalKey.toLowerCase():canonicalKey)}function orderBySlotLayout(values,layout,slotOf){const order=new Map(layout.map((slot,index)=>[slot.key.toLowerCase(),index]));return[...values].sort((left,right)=>(order.get(slotOf(left).toLowerCase())??Number.MAX_SAFE_INTEGER)-(order.get(slotOf(right).toLowerCase())??Number.MAX_SAFE_INTEGER))}function cloneModuleStats(module){try{return deepFreeze(structuredClone(module))}catch(error){if(!(error instanceof Error&&error.name==="DataCloneError"))throw error;return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.limitIncrease===void 0?{}:{limitIncrease:{...module.limitIncrease}},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(blueprintSymbol){const blueprint=getBlueprint(blueprintSymbol);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=blueprintSymbol=>blueprintSymbol.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>variant.acquisition==="mercenary"&&variant.blueprintSymbol.toLowerCase()===wanted)}function blueprintRoutesFor(item){const routes=/* @__PURE__ */new Map;for(const blueprintSymbol of getBlueprintsForModule(item))routes.set(blueprintSymbol,"ordinary");for(const variant of getPreEngineeredVariants(item)){if(variant.acquisition==="mercenary"&&!routes.has(variant.blueprintSymbol)){routes.set(variant.blueprintSymbol,"mercenary")}}return routes}function blueprintAvailableFor(item,blueprintSymbol){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(blueprintSymbol,"ShipLoadout.applyBlueprint: blueprintSymbol");const resolved=resolveBlueprintForModule(item,blueprintSymbol).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,experimentalEffectSymbol){const wanted=normalizeKey(experimentalEffectSymbol,"ShipLoadout.applyBlueprint: options.experimentalEffectSymbol");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function primitiveLabelFor(stats,label){if(label==="MaximumRange"&&stats.maximumRange!==void 0)return"Range";if(label==="DamageFalloffRange"&&stats.falloffRange!==void 0){return"FalloffRange"}if(label==="Range"&&stats.scannerRange!==void 0)return"ScannerRange";if(label==="DSS_PatchRadius")return"ProbeRadius";if(label==="FuelScoopRate")return"RefuelRate";if(label==="EnergyPerRegen"&&stats.shieldRegenRate!==void 0){return"DistributorDraw"}return label}function primitiveEngineeringInputsFor(stats,grade,experimental){const canonicalGrade={...grade,features:grade.features.map(feature=>{const label=primitiveLabelFor(stats,feature.label);return label===feature.label?feature:{...feature,label:label}})};if(!experimental)return{grade:canonicalGrade};return{grade:canonicalGrade,experimental:{...experimental,modifiers:experimental.modifiers.map(modifier=>{const label=primitiveLabelFor(stats,modifier.label);return label===modifier.label?modifier:{...modifier,label:label}})}}}function matchesCalculatedModifiers(captured,calculated){if(!captured||captured.length!==calculated.length)return false;const byLabel=new Map(captured.map(modifier=>[modifier.Label.trim().toLowerCase(),modifier]));if(byLabel.size!==captured.length)return false;return calculated.every(expected=>{const actual=byLabel.get(expected.Label.trim().toLowerCase());if(!actual)return false;if(expected.Value!==void 0){return actual.Value!==void 0&&Math.abs(actual.Value-expected.Value)<=1e-5*Math.max(1,Math.abs(expected.Value))}return actual.ValueStr===expected.ValueStr})}function identityArticles(item,engineering){if(engineering.Modifiers!==void 0||typeof engineering.BlueprintName!=="string"){return[]}const wanted=engineering.BlueprintName.trim().toLowerCase();const experimental=engineering.ExperimentalEffect?.trim().toLowerCase();return getPreEngineeredVariants(item).filter(candidate=>candidate.blueprintSymbol.trim().toLowerCase()===wanted&&candidate.grade===engineering.Level&&(candidate.experimentalEffectSymbol===void 0?experimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.trim().toLowerCase()===experimental))}function unrollableFixedArticle(item,engineering){const matches=identityArticles(item,engineering).filter(candidate=>!blueprintAvailableFor(item,candidate.blueprintSymbol));return matches.length===1?matches[0]:null}function rolledOverFixedArticle(item,engineering){const matches=identityArticles(item,engineering).filter(candidate=>blueprintAvailableFor(item,candidate.blueprintSymbol));return matches.length===1?matches[0]:null}function statesInertModifiers(stats,modifiers){return modifiers.every(modifier=>{if(damageTypeForLabel(modifier.Label)!==null||capabilityValueForLabel(modifier.Label)!==null){return false}const field=fieldForLabel(modifier.Label,stats);return field===null||typeof stats[field]!=="number"})}function ordinaryEngineeringProof(item,engineering,experimental){const recipe=resolveBlueprintForModule(item,engineering.BlueprintName);const fixedCandidate=getPreEngineeredVariants(item).some(candidate=>candidate.acquisition!=="mercenary"&&candidate.blueprintSymbol.trim().toLowerCase()===recipe.trim().toLowerCase());if(!fixedCandidate)return"notFixedCandidate";const grade=getBlueprintGrade(recipe,engineering.Level);const quality=engineering.Quality;const stock=builtInModuleBySymbol(item,FITTED_ITEM);if(!stock||!grade||experimental===null||!Number.isFinite(quality)||quality<0||quality>1){return"unproven"}const current=primitiveEngineeringInputsFor(stock,grade,experimental);if(missingBaseLabels(stock,baseStats(stock),current.grade.features,current.experimental?.modifiers).length>0){return"unproven"}const calculated=journalModifiersFor(stock,computeModifiers(baseStats(stock),current.grade,quality,current.experimental));const damageDistribution=current.experimental?.damageDistribution??current.grade.damageDistribution;if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;calculated.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stock.damageDistribution?.[type]??0)*scaleForLabel(label)})}}return matchesCalculatedModifiers(engineering.Modifiers,calculated)?"proven":"unproven"}function float32DamagePerSecond(damage,rounds,rate,burstRounds,cycle){if(cycle!==void 0&&(rounds!==1||burstRounds!==1)){const damagePerCycle=Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(burstRounds));return Math.fround(damagePerCycle/cycle)}return Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(rate))}var JOURNAL_MODIFIER_ORDER=["CargoCapacity","GuardianModuleResistance","Mass","Integrity","PowerDraw","BootTime","PowerCapacity","HeatEfficiency","FSDOptimalMass","MaxFuelPerJump","FSDHeatRate","EngineOptimalMass","EngineOptPerformance","EngineHeatRate","ShieldGenOptimalMass","ShieldGenStrength","DamagePerSecond","Damage","DistributorDraw","ThermalLoad","ArmourPenetration","MaximumRange","ShotSpeed","RateOfFire","DamageType","$Kinetic;","$Thermal;","$Explosive;","$Absolute;","AmmoClipSize","AmmoMaximum","ReloadTime","Jitter","DamageFalloffRange","DefenceModifierShieldMultiplier","DefenceModifierHealthMultiplier","DefenceModifierHealthAddition","DefenceModifierShieldAddition","RegenRate","BrokenRegenRate","EnergyPerRegen","KineticResistance","ThermicResistance","ExplosiveResistance","CausticResistance","DamageProtection","ModuleDefenceAbsorption","WeaponsCapacity","WeaponsRecharge","EnginesCapacity","EnginesRecharge","SystemsCapacity","SystemsRecharge","ShieldBankSpinUp","ShieldBankDuration","ShieldBankReinforcement","ShieldBankHeat","FSDInterdictorRange","FSDInterdictorFacingLimit","SensorTargetScanAngle","MaxAngle","ScannerTimeToScan","Range","DSS_PatchRadius","FuelScoopRate","FuelCapacity"];var JOURNAL_MODIFIER_RANK=new Map(JOURNAL_MODIFIER_ORDER.map((label,index)=>[label,index]));function sortJournalModifiers(modifiers){return modifiers.map((modifier,index)=>({modifier:modifier,index:index})).sort((a,b)=>(JOURNAL_MODIFIER_RANK.get(a.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)-(JOURNAL_MODIFIER_RANK.get(b.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)||a.index-b.index).map(({modifier:modifier})=>modifier)}function journalModifiersFor(stats,modifiers){const weapon=stats.damage!==void 0;const valueFor=(label,fallback)=>{const modifier=modifiers.find(candidate=>candidate.Label===label);return(modifier&&preciseModifierValue(modifier))??Math.fround(fallback)};const burstTouched=["BurstInterval","BurstSize","BurstRateOfFire"].some(label=>modifiers.some(modifier=>modifier.Label===label));const damageTouched=modifiers.some(modifier=>modifier.Label==="Damage");const rateTouched=burstTouched||modifiers.some(modifier=>modifier.Label==="RateOfFire");let damagePerSecond;let derivedRate;if(weapon&&(damageTouched||rateTouched)){const continuous=stats.burstInterval===void 0&&stats.rateOfFire===void 0;const baseDamage=Math.fround(stats.damage);const effectiveDamage=valueFor("Damage",stats.damage);if(continuous){damagePerSecond={Label:"DamagePerSecond",Value:round6(effectiveDamage),OriginalValue:round6(baseDamage)}}else{const burstRounds=burstPartOrOne(valueFor("BurstSize",stats.burstRounds??1));const burstRate=burstPartOrOne(valueFor("BurstRateOfFire",stats.burstRateOfFire??1));const baseBurstRounds=Math.fround(burstPartOrOne(stats.burstRounds));const baseBurstRate=Math.fround(burstPartOrOne(stats.burstRateOfFire));const baseInterval=stats.burstInterval===void 0?void 0:Math.fround(stats.burstInterval);const baseCycle=baseInterval===void 0?void 0:float32FiringCycle(baseInterval,baseBurstRounds,baseBurstRate);const baseRate=baseInterval!==void 0?float32RateOfFire(baseInterval,baseBurstRounds,baseBurstRate):stats.rateOfFire===void 0?void 0:Math.fround(stats.rateOfFire);const rateModifier=modifiers.find(modifier=>modifier.Label==="RateOfFire");const effectiveRate=rateModifier&&preciseModifierValue(rateModifier);const effectiveInterval=valueFor("BurstInterval",stats.burstInterval??0);const effectiveCycle=effectiveRate===void 0?float32FiringCycle(effectiveInterval,burstRounds,burstRate):void 0;const rate=effectiveRate??(effectiveCycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/effectiveCycle));if(baseRate!==void 0&&rate!==void 0){const stockRounds=Math.fround(stats.roundsPerShot??1);const effectiveRounds=Math.fround(modifiers.find(modifier=>modifier.Label==="Rounds"||modifier.Label==="RoundsPerShot")?.Value??stockRounds);damagePerSecond={Label:"DamagePerSecond",Value:round6(float32DamagePerSecond(effectiveDamage,effectiveRounds,rate,burstRounds,effectiveCycle)),OriginalValue:round6(float32DamagePerSecond(baseDamage,stockRounds,baseRate,baseBurstRounds,baseCycle))};if(burstTouched){derivedRate={Label:"RateOfFire",Value:round6(rate),OriginalValue:round6(baseRate)}}}}}const result=[];for(const modifier of modifiers){const label=modifier.Label;if(weapon&&["BurstInterval","BurstSize","BurstRateOfFire"].includes(label))continue;if(weapon&&label==="Damage"&&stats.rateOfFire===void 0)continue;let journalLabel=label;if(label==="Range"&&stats.maximumRange!==void 0)journalLabel="MaximumRange";else if(label==="FalloffRange"&&stats.falloffRange!==void 0){journalLabel="DamageFalloffRange"}else if(label==="ScannerRange"&&stats.scannerRange!==void 0){journalLabel="Range"}else if(label==="ProbeRadius")journalLabel="DSS_PatchRadius";else if(label==="RefuelRate")journalLabel="FuelScoopRate";else if(label==="DistributorDraw"&&stats.shieldRegenRate!==void 0){journalLabel="EnergyPerRegen"}result.push(journalLabel===label?modifier:{...modifier,Label:journalLabel})}if(damagePerSecond)result.push(damagePerSecond);if(derivedRate){const direct=result.findIndex(modifier=>modifier.Label==="RateOfFire");if(direct>=0)result[direct]=derivedRate;else result.push(derivedRate)}return sortJournalModifiers(result)}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const[blueprintSymbol,route]of blueprintRoutesFor(item)){const blueprint=BLUEPRINTS[blueprintSymbol];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({blueprintSymbol:blueprintSymbol,grades:grades,route:route})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(experimentalEffectSymbol=>{const effect=EXPERIMENTAL_EFFECTS[experimentalEffectSymbol];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var MAX_ENGINEERING_GRADE=5;function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;if(!module||!variant.modifiers?.length&&effectName==null)return null;const effect=effectName==null?void 0:getExperimentalEffect(effectName);if(effectName!==null&&effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),fixedModifierFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function journalModifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return[];const modifiers=journalModifiersFor(module,modifiersWithExperimental(variant,experimental)??[]);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;const damageDistribution=(effectName?getExperimentalEffect(effectName)?.damageDistribution:void 0)??variant.damageDistribution;if(!damageDistribution)return modifiers;for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];const label=labelsForDamageType(type)[0];if(value===void 0||label===void 0)continue;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(module.damageDistribution?.[type]??0)*scaleForLabel(label)})}return modifiers}function getPreEngineeredJournalModifiers(variant){return journalModifiersWithExperimental(variant)}function sameJournalNumber(actual,expected,base){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(base)*1e-4,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value,expected.OriginalValue??expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function matchesModifierSignature(actualByKey,expected,module){let matched=0;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,module));if(!actual)continue;if(!sameModifier(actual,predicted))return false;matched++}return matched>=Math.max(1,expected.length-1)}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const capturedBlueprint=normalizeKey(engineering.BlueprintName,"identifyPreEngineeredVariant: module.Engineering.BlueprintName");const variants=getPreEngineeredVariants(module.Item);const blueprintMatches=variants.filter(candidate=>candidate.blueprintSymbol.toLowerCase()===capturedBlueprint);const blueprintMatch=blueprintMatches.length===1?blueprintMatches[0]:null;const capturedGrade=engineering.Level;if(blueprintMatch?.acquisition==="mercenary"&&Number.isInteger(capturedGrade)&&capturedGrade>=blueprintMatch.grade&&capturedGrade<=MAX_ENGINEERING_GRADE){return blueprintMatch}if(engineering.Modifiers===void 0){const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const identityMatches=blueprintMatches.filter(candidate=>candidate.engineeringLocked===true&&candidate.grade===capturedGrade&&(candidate.experimentalEffectSymbol===void 0?capturedExperimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.toLowerCase()===capturedExperimental));return identityMatches.length===1?identityMatches[0]:null}if(!engineering.Modifiers?.length)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}requireStringIfPresent(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of variants){if(!candidate.modifiers?.length)continue;if(candidate.grade!==engineering.Level)continue;if(candidate.acquisition==="eventReward"&&(engineering.ExperimentalEffect!==void 0||engineering.ExperimentalEffect_Localised!==void 0||capturedBlueprint!==candidate.blueprintSymbol.toLowerCase())){continue}const primitive=modifiersWithExperimental(candidate,engineering.ExperimentalEffect??null);if(!primitive?.length)continue;const matched=matchesModifierSignature(actualByKey,primitive,stock)||matchesModifierSignature(actualByKey,journalModifiersWithExperimental(candidate,engineering.ExperimentalEffect??null),stock);if(matched)matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimentalEffectSymbol===void 0)return{...module};const applied=getPreEngineeredModifiers(variant);const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of applied){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const fixedDamageDistribution=(variant.experimentalEffectSymbol?getExperimentalEffect(variant.experimentalEffectSymbol)?.damageDistribution:void 0)??variant.damageDistribution;if(fixedDamageDistribution){resolved.damageDistribution={...fixedDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!applied.some(m=>m.Label==="RateOfFire")&&applied.some(m=>BURST_PATTERN_LABELS.some(label=>label===m.Label))){const rate=journalRateOfFire(preciseValueFor(applied,"BurstInterval")??resolved.burstInterval,preciseValueFor(applied,"BurstSize")??resolved.burstRounds,preciseValueFor(applied,"BurstRateOfFire")??resolved.burstRateOfFire);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!fixedDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{BUILT_IN_HULL_SYMBOL,FITTED_ITEM,availableBlueprintsFor,availableExperimentalsFor,blueprintAvailableFor,blueprintRoutesFor,cloneLoadoutModule,cloneModuleStats,experimentalAvailableFor,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,isBuiltInHullModule,isBuiltInHullSymbol,isCargoHatchSlot,isFinalGuardianWeaponEngineering,isNonOutfittingSlot,journalModifiersFor,matchingKeyIn,missingBaseLabels,orderBySlotLayout,ordinaryEngineeringProof,ownKeyIn,primitiveEngineeringInputsFor,rolledOverFixedArticle,scaleDamageComponents,statesInertModifiers,unresolvedModifiers,unrollableFixedArticle};//# sourceMappingURL=chunk-QNHGTVMZ.js.map
1
+ import{builtInModuleBySymbol,getModuleBySymbol}from"./chunk-FMPHK3L5.js";import{getPreEngineeredVariants}from"./chunk-EE25IDB7.js";import{ALL_MODULES}from"./chunk-LXHFRBWK.js";import{EXPERIMENTAL_EFFECTS,getExperimentalEffect}from"./chunk-77I24V6B.js";import{resolveBlueprintForModule}from"./chunk-2J6NNI3Y.js";import{getBlueprintGrade,getBlueprint,BLUEPRINTS}from"./chunk-WDAYRHXR.js";import{getBlueprintsForModule,getExperimentalsForModule,getEngineeringGroup}from"./chunk-M4STXLXO.js";import{fieldForLabel,damageTypeForLabel,capabilityValueForLabel,baseStats,computeModifiers,labelsForDamageType,scaleForLabel}from"./chunk-U73MBQ45.js";import{round6,burstPartOrOne,float32FiringCycle,float32RateOfFire,preciseModifierValue,BURST_PATTERN_LABELS,journalRateOfFire,preciseValueFor}from"./chunk-EFQOUATZ.js";import{normalizeKey}from"./chunk-BKWLI44T.js";import{requireStringIfPresent}from"./chunk-PKWVG2JY.js";import{deepFreeze}from"./chunk-DURKO7JU.js";function scaleDamageComponents(components,baseDamage,effectiveDamage){const scale=baseDamage!==void 0&&baseDamage!==0&&effectiveDamage!==void 0?effectiveDamage/baseDamage:1;return{...components.kinetic===void 0?{}:{kinetic:components.kinetic*scale},...components.thermal===void 0?{}:{thermal:components.thermal*scale},...components.explosive===void 0?{}:{explosive:components.explosive*scale},...components.caustic===void 0?{}:{caustic:components.caustic*scale},...components.absolute===void 0?{}:{absolute:components.absolute*scale},...components.antiXeno===void 0?{}:{antiXeno:components.antiXeno*scale},...components.unclassified===void 0?{}:{unclassified:components.unclassified.map(value=>value*scale)}}}function fixedModifierFeatures(modifiers){return modifiers.map(modifier=>({label:modifier.label,method:modifier.method,min:modifier.value,max:modifier.value}))}var FITTED_ITEM="ShipLoadout: fitted module Item";function isNonOutfittingSlot(slotKey){return/^(paintjob|shipname\d+|shipid\d+|bobble\d+|decal\d+|shipkit.+|weaponcolour|enginecolour|vesselvoice|shipcockpit|stringlights)$/i.test(slotKey)}function isCargoHatchSlot(slotKey){return slotKey.toLowerCase()==="cargohatch"}var BUILT_IN_HULL_SYMBOL="ModularCargoBayDoor";function isBuiltInHullSymbol(symbol){return symbol.toLowerCase().startsWith(BUILT_IN_HULL_SYMBOL.toLowerCase())}function isBuiltInHullModule(module){return isCargoHatchSlot(module.Slot)&&isBuiltInHullSymbol(module.Item)}function cloneLoadoutModule(module){return{Slot:module.Slot,Item:module.Item,...module.On===void 0?{}:{On:module.On},...module.Priority===void 0?{}:{Priority:module.Priority},...module.Health===void 0?{}:{Health:module.Health},...module.Value===void 0?{}:{Value:module.Value},...module.Engineering===void 0?{}:{Engineering:{BlueprintName:module.Engineering.BlueprintName,Level:module.Engineering.Level,Quality:module.Engineering.Quality,...module.Engineering.ExperimentalEffect===void 0?{}:{ExperimentalEffect:module.Engineering.ExperimentalEffect},...module.Engineering.ExperimentalEffect_Localised===void 0?{}:{ExperimentalEffect_Localised:module.Engineering.ExperimentalEffect_Localised},...module.Engineering.Modifiers===void 0?{}:{Modifiers:module.Engineering.Modifiers.map(modifier=>({...modifier}))}}}}}function matchingKeyIn(keyed,slotKey){if(keyed.has(slotKey))return slotKey;const wanted=slotKey.toLowerCase();for(const key of keyed.keys()){if(key.toLowerCase()===wanted)return key}return null}function ownKeyIn(keyed,canonicalKey){return matchingKeyIn(keyed,canonicalKey)??(keyed.size>0&&[...keyed.keys()].every(key=>key===key.toLowerCase())?canonicalKey.toLowerCase():canonicalKey)}function orderBySlotLayout(values,layout,slotOf){const order=new Map(layout.map((slot,index)=>[slot.key.toLowerCase(),index]));return[...values].sort((left,right)=>(order.get(slotOf(left).toLowerCase())??Number.MAX_SAFE_INTEGER)-(order.get(slotOf(right).toLowerCase())??Number.MAX_SAFE_INTEGER))}function cloneModuleStats(module){try{return deepFreeze(structuredClone(module))}catch(error){if(!(error instanceof Error&&error.name==="DataCloneError"))throw error;return deepFreeze({...module,...module.restrictedToShips===void 0?{}:{restrictedToShips:[...module.restrictedToShips]},...module.limitIncrease===void 0?{}:{limitIncrease:{...module.limitIncrease}},...module.damageDistribution===void 0?{}:{damageDistribution:{...module.damageDistribution}},...module.damageComponents===void 0?{}:{damageComponents:{...module.damageComponents,...module.damageComponents.unclassified===void 0?{}:{unclassified:[...module.damageComponents.unclassified]}}},...module.projectileRange===void 0?{}:{projectileRange:{...module.projectileRange}}})}}var GUARDIAN_WEAPON_GROUPS=/* @__PURE__ */new Set(["guardianGauss","guardianPlasma","guardianShard"]);function missingBaseLabels(stats,base,features,experimental){const contributions=[...features,...experimental??[]];return[...new Set(contributions.map(contribution=>contribution.label).filter(label=>{if(base[label]!==void 0)return false;return fieldForLabel(label,stats)===null}))]}function recipeSignature(blueprintSymbol){const blueprint=getBlueprint(blueprintSymbol);if(!blueprint)return null;const grades=Object.entries(blueprint.grades).map(([grade,{features:features}])=>`${grade}:${features.map(feature=>`${feature.label}/${feature.method??""}`).sort().join(",")}`).sort().join(";");return`${blueprint.name.toLowerCase()}|${grades}`}var isGenericSpelling=blueprintSymbol=>blueprintSymbol.toLowerCase().startsWith("misc_");function isSoldWithBlueprint(item,wanted){return getPreEngineeredVariants(item).some(variant=>variant.acquisition==="mercenary"&&variant.blueprintSymbol.toLowerCase()===wanted)}function blueprintRoutesFor(item){const routes=/* @__PURE__ */new Map;for(const blueprintSymbol of getBlueprintsForModule(item))routes.set(blueprintSymbol,"ordinary");for(const variant of getPreEngineeredVariants(item)){if(variant.acquisition==="mercenary"&&!routes.has(variant.blueprintSymbol)){routes.set(variant.blueprintSymbol,"mercenary")}}return routes}function blueprintAvailableFor(item,blueprintSymbol){const offered=getBlueprintsForModule(item);const asWritten=normalizeKey(blueprintSymbol,"ShipLoadout.applyBlueprint: blueprintSymbol");const resolved=resolveBlueprintForModule(item,blueprintSymbol).trim();const wanted=resolved.toLowerCase();if(offered.some(id=>id.toLowerCase()===wanted))return true;if(isSoldWithBlueprint(item,wanted)||isSoldWithBlueprint(item,asWritten))return true;if(!isGenericSpelling(wanted))return false;const signature=recipeSignature(resolved);if(signature===null)return false;return offered.some(id=>recipeSignature(id)===signature&&!isGenericSpelling(id))}function experimentalAvailableFor(item,experimentalEffectSymbol){const wanted=normalizeKey(experimentalEffectSymbol,"ShipLoadout.applyBlueprint: options.experimentalEffectSymbol");return getExperimentalsForModule(item).some(id=>id.toLowerCase()===wanted)}function primitiveLabelFor(stats,label){if(label==="MaximumRange"&&stats.maximumRange!==void 0)return"Range";if(label==="DamageFalloffRange"&&stats.falloffRange!==void 0){return"FalloffRange"}if(label==="Range"&&stats.scannerRange!==void 0)return"ScannerRange";if(label==="DSS_PatchRadius")return"ProbeRadius";if(label==="FuelScoopRate")return"RefuelRate";if(label==="EnergyPerRegen"&&stats.shieldRegenRate!==void 0){return"DistributorDraw"}return label}function primitiveEngineeringInputsFor(stats,grade,experimental){const canonicalGrade={...grade,features:grade.features.map(feature=>{const label=primitiveLabelFor(stats,feature.label);return label===feature.label?feature:{...feature,label:label}})};if(!experimental)return{grade:canonicalGrade};return{grade:canonicalGrade,experimental:{...experimental,modifiers:experimental.modifiers.map(modifier=>{const label=primitiveLabelFor(stats,modifier.label);return label===modifier.label?modifier:{...modifier,label:label}})}}}function matchesCalculatedModifiers(captured,calculated){if(!captured||captured.length!==calculated.length)return false;const byLabel=new Map(captured.map(modifier=>[modifier.Label.trim().toLowerCase(),modifier]));if(byLabel.size!==captured.length)return false;return calculated.every(expected=>{const actual=byLabel.get(expected.Label.trim().toLowerCase());if(!actual)return false;if(expected.Value!==void 0){return actual.Value!==void 0&&Math.abs(actual.Value-expected.Value)<=1e-5*Math.max(1,Math.abs(expected.Value))}return actual.ValueStr===expected.ValueStr})}function identityArticles(item,engineering){if(engineering.Modifiers!==void 0||typeof engineering.BlueprintName!=="string"){return[]}const wanted=engineering.BlueprintName.trim().toLowerCase();const experimental=engineering.ExperimentalEffect?.trim().toLowerCase();return getPreEngineeredVariants(item).filter(candidate=>candidate.blueprintSymbol.trim().toLowerCase()===wanted&&candidate.grade===engineering.Level&&(candidate.experimentalEffectSymbol===void 0?experimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.trim().toLowerCase()===experimental))}function unrollableFixedArticle(item,engineering){const matches=identityArticles(item,engineering).filter(candidate=>!blueprintAvailableFor(item,candidate.blueprintSymbol));return matches.length===1?matches[0]:null}function rolledOverFixedArticle(item,engineering){const matches=identityArticles(item,engineering).filter(candidate=>blueprintAvailableFor(item,candidate.blueprintSymbol));return matches.length===1?matches[0]:null}function statesInertModifiers(stats,modifiers){return modifiers.every(modifier=>{if(damageTypeForLabel(modifier.Label)!==null||capabilityValueForLabel(modifier.Label)!==null){return false}const field=fieldForLabel(modifier.Label,stats);return field===null||typeof stats[field]!=="number"})}function ordinaryEngineeringProof(item,engineering,experimental){const recipe=resolveBlueprintForModule(item,engineering.BlueprintName);const fixedCandidate=getPreEngineeredVariants(item).some(candidate=>candidate.acquisition!=="mercenary"&&candidate.blueprintSymbol.trim().toLowerCase()===recipe.trim().toLowerCase());if(!fixedCandidate)return"notFixedCandidate";const grade=getBlueprintGrade(recipe,engineering.Level);const quality=engineering.Quality;const stock=builtInModuleBySymbol(item,FITTED_ITEM);if(!stock||!grade||experimental===null||!Number.isFinite(quality)||quality<0||quality>1){return"unproven"}const current=primitiveEngineeringInputsFor(stock,grade,experimental);if(missingBaseLabels(stock,baseStats(stock),current.grade.features,current.experimental?.modifiers).length>0){return"unproven"}const calculated=journalModifiersFor(stock,computeModifiers(baseStats(stock),current.grade,quality,current.experimental));const damageDistribution=current.experimental?.damageDistribution??current.grade.damageDistribution;if(damageDistribution){for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];if(value===void 0)continue;const label=labelsForDamageType(type)[0];if(label===void 0)continue;calculated.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(stock.damageDistribution?.[type]??0)*scaleForLabel(label)})}}return matchesCalculatedModifiers(engineering.Modifiers,calculated)?"proven":"unproven"}function float32DamagePerSecond(damage,rounds,rate,burstRounds,cycle){if(cycle!==void 0&&(rounds!==1||burstRounds!==1)){const damagePerCycle=Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(burstRounds));return Math.fround(damagePerCycle/cycle)}return Math.fround(Math.fround(Math.fround(damage)*Math.fround(rounds))*Math.fround(rate))}var JOURNAL_MODIFIER_ORDER=["CargoCapacity","GuardianModuleResistance","Mass","Integrity","PowerDraw","BootTime","PowerCapacity","HeatEfficiency","FSDOptimalMass","MaxFuelPerJump","FSDHeatRate","EngineOptimalMass","EngineOptPerformance","EngineHeatRate","ShieldGenOptimalMass","ShieldGenStrength","DamagePerSecond","Damage","DistributorDraw","ThermalLoad","ArmourPenetration","MaximumRange","ShotSpeed","RateOfFire","DamageType","$Kinetic;","$Thermal;","$Explosive;","$Absolute;","AmmoClipSize","AmmoMaximum","ReloadTime","Jitter","DamageFalloffRange","DefenceModifierShieldMultiplier","DefenceModifierHealthMultiplier","DefenceModifierHealthAddition","DefenceModifierShieldAddition","RegenRate","BrokenRegenRate","EnergyPerRegen","KineticResistance","ThermicResistance","ExplosiveResistance","CausticResistance","DamageProtection","ModuleDefenceAbsorption","WeaponsCapacity","WeaponsRecharge","EnginesCapacity","EnginesRecharge","SystemsCapacity","SystemsRecharge","ShieldBankSpinUp","ShieldBankDuration","ShieldBankReinforcement","ShieldBankHeat","FSDInterdictorRange","FSDInterdictorFacingLimit","SensorTargetScanAngle","MaxAngle","ScannerTimeToScan","Range","DSS_PatchRadius","FuelScoopRate","FuelCapacity"];var JOURNAL_MODIFIER_RANK=new Map(JOURNAL_MODIFIER_ORDER.map((label,index)=>[label,index]));function sortJournalModifiers(modifiers){return modifiers.map((modifier,index)=>({modifier:modifier,index:index})).sort((a,b)=>(JOURNAL_MODIFIER_RANK.get(a.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)-(JOURNAL_MODIFIER_RANK.get(b.modifier.Label)??JOURNAL_MODIFIER_ORDER.length)||a.index-b.index).map(({modifier:modifier})=>modifier)}function journalModifiersFor(stats,modifiers){const weapon=stats.damage!==void 0;const valueFor=(label,fallback)=>{const modifier=modifiers.find(candidate=>candidate.Label===label);return(modifier&&preciseModifierValue(modifier))??Math.fround(fallback)};const burstTouched=["BurstInterval","BurstSize","BurstRateOfFire"].some(label=>modifiers.some(modifier=>modifier.Label===label));const damageTouched=modifiers.some(modifier=>modifier.Label==="Damage");const rateTouched=burstTouched||modifiers.some(modifier=>modifier.Label==="RateOfFire");let damagePerSecond;let derivedRate;if(weapon&&(damageTouched||rateTouched)){const continuous=stats.burstInterval===void 0&&stats.rateOfFire===void 0;const baseDamage=Math.fround(stats.damage);const effectiveDamage=valueFor("Damage",stats.damage);if(continuous){damagePerSecond={Label:"DamagePerSecond",Value:round6(effectiveDamage),OriginalValue:round6(baseDamage)}}else{const burstRounds=burstPartOrOne(valueFor("BurstSize",stats.burstRounds??1));const burstRate=burstPartOrOne(valueFor("BurstRateOfFire",stats.burstRateOfFire??1));const baseBurstRounds=Math.fround(burstPartOrOne(stats.burstRounds));const baseBurstRate=Math.fround(burstPartOrOne(stats.burstRateOfFire));const baseInterval=stats.burstInterval===void 0?void 0:Math.fround(stats.burstInterval);const baseCycle=baseInterval===void 0?void 0:float32FiringCycle(baseInterval,baseBurstRounds,baseBurstRate);const baseRate=baseInterval!==void 0?float32RateOfFire(baseInterval,baseBurstRounds,baseBurstRate):stats.rateOfFire===void 0?void 0:Math.fround(stats.rateOfFire);const rateModifier=modifiers.find(modifier=>modifier.Label==="RateOfFire");const effectiveRate=rateModifier&&preciseModifierValue(rateModifier);const effectiveInterval=valueFor("BurstInterval",stats.burstInterval??0);const effectiveCycle=effectiveRate===void 0?float32FiringCycle(effectiveInterval,burstRounds,burstRate):void 0;const rate=effectiveRate??(effectiveCycle===void 0?void 0:Math.fround(Math.fround(burstRounds)/effectiveCycle));if(baseRate!==void 0&&rate!==void 0){const stockRounds=Math.fround(stats.roundsPerShot??1);const effectiveRounds=Math.fround(modifiers.find(modifier=>modifier.Label==="Rounds"||modifier.Label==="RoundsPerShot")?.Value??stockRounds);damagePerSecond={Label:"DamagePerSecond",Value:round6(float32DamagePerSecond(effectiveDamage,effectiveRounds,rate,burstRounds,effectiveCycle)),OriginalValue:round6(float32DamagePerSecond(baseDamage,stockRounds,baseRate,baseBurstRounds,baseCycle))};if(burstTouched){derivedRate={Label:"RateOfFire",Value:round6(rate),OriginalValue:round6(baseRate)}}}}}const result=[];for(const modifier of modifiers){const label=modifier.Label;if(weapon&&["BurstInterval","BurstSize","BurstRateOfFire"].includes(label))continue;if(weapon&&label==="Damage"&&stats.rateOfFire===void 0)continue;let journalLabel=label;if(label==="Range"&&stats.maximumRange!==void 0)journalLabel="MaximumRange";else if(label==="FalloffRange"&&stats.falloffRange!==void 0){journalLabel="DamageFalloffRange"}else if(label==="ScannerRange"&&stats.scannerRange!==void 0){journalLabel="Range"}else if(label==="ProbeRadius")journalLabel="DSS_PatchRadius";else if(label==="RefuelRate")journalLabel="FuelScoopRate";else if(label==="DistributorDraw"&&stats.shieldRegenRate!==void 0){journalLabel="EnergyPerRegen"}result.push(journalLabel===label?modifier:{...modifier,Label:journalLabel})}if(damagePerSecond)result.push(damagePerSecond);if(derivedRate){const direct=result.findIndex(modifier=>modifier.Label==="RateOfFire");if(direct>=0)result[direct]=derivedRate;else result.push(derivedRate)}return sortJournalModifiers(result)}function isFinalGuardianWeaponEngineering(item,blueprint){const group=getEngineeringGroup(item);if(group===null||!GUARDIAN_WEAPON_GROUPS.has(group))return false;const resolved=resolveBlueprintForModule(item,blueprint);return getBlueprint(resolved)!==null&&!blueprintAvailableFor(item,blueprint)}function engineerableBase(item,statsOverride){const stats=statsOverride??builtInModuleBySymbol(item,FITTED_ITEM);if(!stats||stats.engineeringLocked)return null;return{stats:stats,base:baseStats(stats)}}function availableBlueprintsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;const available=[];for(const[blueprintSymbol,route]of blueprintRoutesFor(item)){const blueprint=BLUEPRINTS[blueprintSymbol];if(!blueprint)continue;const grades=Object.entries(blueprint.grades).filter(([,grade])=>missingBaseLabels(stats,base,grade.features).length===0).map(([grade])=>Number(grade)).filter(Number.isFinite).sort((a,b)=>a-b);if(grades.length>0)available.push({blueprintSymbol:blueprintSymbol,grades:grades,route:route})}return available}function availableExperimentalsFor(item,statsOverride){const engineerable=engineerableBase(item,statsOverride);if(!engineerable)return[];const{stats:stats,base:base}=engineerable;return getExperimentalsForModule(item).filter(experimentalEffectSymbol=>{const effect=EXPERIMENTAL_EFFECTS[experimentalEffectSymbol];return effect!==void 0&&missingBaseLabels(stats,base,effect.modifiers).length===0})}var MAX_ENGINEERING_GRADE=5;function modifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;if(!module||!variant.modifiers?.length&&effectName==null)return null;const effect=effectName==null?void 0:getExperimentalEffect(effectName);if(effectName!==null&&effectName!==void 0&&!effect)return null;return computeModifiers(baseStats(module),fixedModifierFeatures(variant.modifiers??[]),1,effect??void 0)}function getPreEngineeredModifiers(variant){return modifiersWithExperimental(variant)??[]}function journalModifiersWithExperimental(variant,experimental){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return[];const modifiers=journalModifiersFor(module,modifiersWithExperimental(variant,experimental)??[]);const effectName=experimental===void 0?variant.experimentalEffectSymbol:experimental;const damageDistribution=(effectName?getExperimentalEffect(effectName)?.damageDistribution:void 0)??variant.damageDistribution;if(!damageDistribution)return modifiers;for(const type of["kinetic","thermal","explosive","absolute"]){const value=damageDistribution[type];const label=labelsForDamageType(type)[0];if(value===void 0||label===void 0)continue;modifiers.push({Label:label,Value:value*scaleForLabel(label),OriginalValue:(module.damageDistribution?.[type]??0)*scaleForLabel(label)})}return modifiers}function getPreEngineeredJournalModifiers(variant){return journalModifiersWithExperimental(variant)}function sameJournalNumber(actual,expected,base){return Math.abs(actual-expected)<=Math.max(1e-5,Math.abs(base)*1e-4,Math.abs(expected)*1e-6)}function modifierKey(modifier,module){return fieldForLabel(modifier.Label,module)??`label:${normalizeKey(modifier.Label,"identifyPreEngineeredVariant: module.Engineering.Modifiers[].Label")}`}function sameModifier(actual,expected){if(expected.Value!==void 0){return actual.Value!==void 0&&sameJournalNumber(actual.Value,expected.Value,expected.OriginalValue??expected.Value)}return expected.ValueStr!==void 0&&actual.ValueStr!==void 0}function matchesModifierSignature(actualByKey,expected,module){let matched=0;for(const predicted of expected){const actual=actualByKey.get(modifierKey(predicted,module));if(!actual)continue;if(!sameModifier(actual,predicted))return false;matched++}return matched>=Math.max(1,expected.length-1)}function identifyPreEngineeredVariant(module){const engineering=module.Engineering;if(!engineering)return null;requireStringIfPresent(module.Item,"identifyPreEngineeredVariant: module.Item");const stock=getModuleBySymbol(module.Item,ALL_MODULES);if(!stock)return null;const capturedBlueprint=normalizeKey(engineering.BlueprintName,"identifyPreEngineeredVariant: module.Engineering.BlueprintName");const variants=getPreEngineeredVariants(module.Item);const blueprintMatches=variants.filter(candidate=>candidate.blueprintSymbol.toLowerCase()===capturedBlueprint);const blueprintMatch=blueprintMatches.length===1?blueprintMatches[0]:null;const capturedGrade=engineering.Level;if(blueprintMatch?.acquisition==="mercenary"&&Number.isInteger(capturedGrade)&&capturedGrade>=blueprintMatch.grade&&capturedGrade<=MAX_ENGINEERING_GRADE){return blueprintMatch}if(engineering.Modifiers===void 0){const capturedExperimental=normalizeKey(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const identityMatches=blueprintMatches.filter(candidate=>candidate.engineeringLocked===true&&candidate.grade===capturedGrade&&(candidate.experimentalEffectSymbol===void 0?capturedExperimental===void 0&&engineering.ExperimentalEffect_Localised===void 0:candidate.experimentalEffectSymbol.toLowerCase()===capturedExperimental));return identityMatches.length===1?identityMatches[0]:null}if(!engineering.Modifiers?.length)return null;const actualByKey=/* @__PURE__ */new Map;for(const modifier of engineering.Modifiers){actualByKey.set(modifierKey(modifier,stock),modifier)}requireStringIfPresent(engineering.ExperimentalEffect,"identifyPreEngineeredVariant: module.Engineering.ExperimentalEffect");const matches=[];for(const candidate of variants){if(!candidate.modifiers?.length)continue;if(candidate.grade!==engineering.Level)continue;if(candidate.acquisition==="eventReward"&&(engineering.ExperimentalEffect!==void 0||engineering.ExperimentalEffect_Localised!==void 0||capturedBlueprint!==candidate.blueprintSymbol.toLowerCase())){continue}const primitive=modifiersWithExperimental(candidate,engineering.ExperimentalEffect??null);if(!primitive?.length)continue;const matched=matchesModifierSignature(actualByKey,primitive,stock)||matchesModifierSignature(actualByKey,journalModifiersWithExperimental(candidate,engineering.ExperimentalEffect??null),stock);if(matched)matches.push(candidate)}return matches.length===1?matches[0]:null}function unresolvedModifiers(variant){const resolved=new Set(getPreEngineeredModifiers(variant).map(modifier=>modifier.Label));return(variant.modifiers??[]).map(modifier=>modifier.label).filter(label=>!resolved.has(label))}function getPreEngineeredStats(variant){const module=getModuleBySymbol(variant.symbol,ALL_MODULES);if(!module)return null;if(!variant.modifiers?.length&&!variant.engineeringLocked&&variant.experimentalEffectSymbol===void 0)return{...module};const applied=getPreEngineeredModifiers(variant);const resolved={...module,...variant.engineeringLocked?{engineeringLocked:true}:{}};for(const{Label:Label,Value:Value,ValueStr:ValueStr}of applied){const field=fieldForLabel(Label,module);if(field&&field!=="damageDistribution"&&Value!==void 0){Object.assign(resolved,{[field]:Value/scaleForLabel(Label)})}else if(field&&ValueStr!==void 0&&capabilityValueForLabel(Label)!==null){Object.assign(resolved,{[field]:true})}}const fixedDamageDistribution=(variant.experimentalEffectSymbol?getExperimentalEffect(variant.experimentalEffectSymbol)?.damageDistribution:void 0)??variant.damageDistribution;if(fixedDamageDistribution){resolved.damageDistribution={...fixedDamageDistribution};delete resolved.damageComponents}if(resolved.rateOfFire!==void 0&&!applied.some(m=>m.Label==="RateOfFire")&&applied.some(m=>BURST_PATTERN_LABELS.some(label=>label===m.Label))){const rate=journalRateOfFire(preciseValueFor(applied,"BurstInterval")??resolved.burstInterval,preciseValueFor(applied,"BurstSize")??resolved.burstRounds,preciseValueFor(applied,"BurstRateOfFire")??resolved.burstRateOfFire);if(rate!==void 0)resolved.rateOfFire=rate}if(module.damageComponents&&!fixedDamageDistribution){resolved.damageComponents=scaleDamageComponents(module.damageComponents,module.damage,resolved.damage)}return resolved}export{BUILT_IN_HULL_SYMBOL,FITTED_ITEM,availableBlueprintsFor,availableExperimentalsFor,blueprintAvailableFor,blueprintRoutesFor,cloneLoadoutModule,cloneModuleStats,experimentalAvailableFor,getPreEngineeredJournalModifiers,getPreEngineeredModifiers,getPreEngineeredStats,identifyPreEngineeredVariant,isBuiltInHullModule,isBuiltInHullSymbol,isCargoHatchSlot,isFinalGuardianWeaponEngineering,isNonOutfittingSlot,journalModifiersFor,matchingKeyIn,missingBaseLabels,orderBySlotLayout,ordinaryEngineeringProof,ownKeyIn,primitiveEngineeringInputsFor,rolledOverFixedArticle,scaleDamageComponents,statesInertModifiers,unresolvedModifiers,unrollableFixedArticle};//# sourceMappingURL=chunk-LLLFK3D5.js.map
@@ -1 +1 @@
1
- import{cellBankSummary,shieldRecovery}from"./chunk-JMAXSXXQ.js";import{loadoutInternals,fittedThrusterParamsFor,preEngineeredVariantFor,powerConsumerFor,powerAvailable,heatInputResultFor,completeResult,cellBankInputsFor,armourInputFor,weaponStatsFor,weaponsCapacitorInputFor,mobilityInputResultFor,shieldInputResultFor,shieldCapacitorInputResultFor,shieldRecoveryInputResultFor,distributorInputResultFor,incompleteResult}from"./chunk-XCLOOKC2.js";import{weaponMetrics,sumWeaponMetrics}from"./chunk-Z266X4JF.js";import{shieldMetrics}from"./chunk-SRPCHXW2.js";import{weaponsCapacitorMetrics}from"./chunk-M4FZRDAH.js";import{powerBudget}from"./chunk-GGQMIQPC.js";import{isNonOutfittingSlot,isBuiltInHullModule,orderBySlotLayout}from"./chunk-QNHGTVMZ.js";import{shieldCapacitorMetrics}from"./chunk-HWOP7QWK.js";import{mobilityCapacitorMetrics}from"./chunk-VEEBJFJ7.js";import{mobilityMetrics}from"./chunk-A4QKXXZD.js";import{getExperimentalEffectCost}from"./chunk-CJK2IBI2.js";import{heatMetrics}from"./chunk-6HA2YIKW.js";import{frameShiftDriveMassFactor,singleJumpRange,fuelPerJump,totalRange}from"./chunk-VTMCSCXV.js";import{calculateUnladenMass}from"./chunk-C3LLPLLD.js";import{getBlueprintCost}from"./chunk-ARG6ESYB.js";import{distributorMetrics}from"./chunk-M2TCZKRT.js";import{sumMaterials}from"./chunk-U73MBQ45.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{armourMetrics}from"./chunk-3I2I5KG4.js";import{requirePips,requireFiniteNonNegative}from"./chunk-65FZECUX.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var FACADE="BuildMetrics";function requireLoadOptions(scope,options){for(const field of["fuel","cargo"]){const value=options[field];if(value!==void 0)requireFiniteNonNegative(scope,field,value)}}var BuildMetrics=class _BuildMetrics{#build;#state;constructor(build,state){this.#build=build;this.#state=state}static of(build){return new _BuildMetrics(build,loadoutInternals(build,`${FACADE}.of: build`))}loadout(){return this.#build}frameShiftDrive(){const drive=this.#state.resolveDrive();if(drive===null){throw new TypeError(`${FACADE}: build has no frame shift drive`)}return drive}thrusters(){return fittedThrusterParamsFor(this.#state.modules(),this.#state.statsFor)}frameShiftDriveMassFactor(options={}){requireLoadOptions(`${FACADE}.frameShiftDriveMassFactor`,options);return frameShiftDriveMassFactor(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}maxJumpRange(){const fsd=this.frameShiftDrive();return singleJumpRange(this.#loadedMass(0),this.#maxJumpFuel(fsd),fsd)}jumpRange(options={}){requireLoadOptions(`${FACADE}.jumpRange`,options);return singleJumpRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}ladenJumpRange(){return this.jumpRange({cargo:this.#build.cargoCapacity})}fuelPerJump(distance,options={}){requireLoadOptions(`${FACADE}.fuelPerJump`,options);return fuelPerJump(distance,this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}totalRange(options={}){requireLoadOptions(`${FACADE}.totalRange`,options);return totalRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}standardLoadResult(load){return this.#standardLoad(load)}jumpRangeSummary(){const maximum=this.#require(this.standardLoadResult("maximum"),"maximum load");const unladen=this.#require(this.standardLoadResult("unladen"),"unladen load");const laden=this.#require(this.standardLoadResult("laden"),"laden load");return{max:this.jumpRange(maximum),unladen:this.jumpRange(unladen),laden:this.jumpRange(laden),totalMax:this.totalRange(maximum),totalUnladen:this.totalRange(unladen),totalLaden:this.totalRange(laden)}}buildMass(options={}){requireLoadOptions(`${FACADE}.buildMass`,options);const unladen=this.#build.unladenMass;const fuel=options.fuel??this.#build.fuelCapacity.main;const cargo=options.cargo??0;return Object.freeze({hull:this.#state.ship.hullMass,modules:calculateUnladenMass(0,this.#state.calculationModules()),unladen:unladen,fuel:fuel,cargo:cargo,total:unladen+fuel+cargo})}buildCost(){const hull=this.#state.ship.hullCost;let modules=0;let mercCoins=0;const unpriced=[];const materials=[];for(const module of this.#state.modules()){const stats=this.#state.statsFor(module);if(stats?.cost!==void 0){modules+=stats.cost}else if(stats!==null||!isNonOutfittingSlot(module.Slot)&&!isBuiltInHullModule(module)){unpriced.push({slot:module.Slot,symbol:module.Item})}const variant=preEngineeredVariantFor(module);mercCoins+=variant?.mercCoinCost??0;const engineering=module.Engineering;if(!engineering)continue;const grade=engineering.Level;const bought=variant?.grade??0;if(Number.isInteger(grade)&&grade>bought&&grade<=5){const climb=getBlueprintCost(engineering.BlueprintName,grade,bought);if(climb){materials.push(climb.materials);mercCoins+=climb.mercCoins}}const experimental=engineering.ExperimentalEffect;if(experimental!==void 0&&experimental.toLowerCase()!==variant?.experimentalEffectSymbol?.toLowerCase()){const cost=getExperimentalEffectCost(experimental);if(cost)materials.push(cost)}}return deepFreeze({credits:{total:hull+modules,hull:hull,modules:modules,rebuy:Math.trunc((hull+modules)*.05),unpriced:unpriced},mercCoins:mercCoins,materials:sumMaterials(...materials)})}powerBudget(){const modules=this.#state.modules();const consumers=[];for(const module of modules){const consumer=powerConsumerFor(module,this.#state.statsFor(module));if(consumer)consumers.push(consumer)}return powerBudget(powerAvailable(modules,this.#state.statsFor),consumers)}heatMetricsResult(){const input=heatInputResultFor(this.#state.ship,this.#state.effectiveModules(),this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(heatMetrics(input.value)):input}mobilityMetricsResult(options={}){return this.#mobility(options)}mobilityCapacitorMetricsResult(options={}){return this.#mobilityCapacitor(options)}shieldMetricsResult(){return this.#shields()}shieldCapacitorMetricsResult(options={}){return this.#shieldCapacitor(options)}shieldRecoveryResult(options={}){return this.#recovery(options)}cellBanks(){return cellBankSummary(orderBySlotLayout(cellBankInputsFor(this.#state.modules(),this.powerBudget(),this.#state.statsFor),this.#state.layout(),bank=>bank.slot))}armourMetrics(){return armourMetrics(armourInputFor(this.#state.ship,this.#state.modules(),this.#state.statsFor))}weaponMetrics(){const weapons=[];for(const module of this.#state.modules()){const record=this.#state.statsFor(module);const stats=weaponStatsFor(this.#state.effectiveModule(module),record);if(!stats)continue;weapons.push({slot:module.Slot,symbol:module.Item,name:record?.name??module.Item,enabled:module.On!==false,metrics:weaponMetrics(stats),ammunition:ammunitionCapacity(stats),...stats.maximumRange===void 0?{}:{maximumRange:stats.maximumRange},...stats.falloffRange===void 0?{}:{falloffRange:stats.falloffRange},...stats.projectileRange===void 0?{}:{projectileRange:{...stats.projectileRange}},...stats.armourPiercing===void 0?{}:{armourPiercing:stats.armourPiercing}})}const orderedWeapons=orderBySlotLayout(weapons,this.#state.layout(),weapon=>weapon.slot);return{weapons:orderedWeapons,total:sumWeaponMetrics(orderedWeapons.filter(weapon=>weapon.enabled).map(weapon=>weapon.metrics))}}weaponsCapacitorMetrics(options={}){const weaponsPips=requirePips(`${FACADE}.weaponsCapacitorMetrics`,"weaponsPips",options.weaponsPips??4);return weaponsCapacitorMetrics(weaponsCapacitorInputFor(this.#state.effectiveModules(),weaponsPips,this.powerBudget(),this.#state.statsFor))}distributorMetricsResult(options={}){return this.#distributor(options)}#mobility(options){const input=this.#mobilityInput(`${FACADE}.mobilityMetricsResult`,options);return input.complete?completeResult(mobilityMetrics(input.value)):input}#mobilityCapacitor(options){const scope=`${FACADE}.mobilityCapacitorMetricsResult`;const enginesPips=requirePips(scope,"enginesPips",options.enginesPips??4);const input=this.#mobilityInput(scope,options);return input.complete?completeResult(mobilityCapacitorMetrics({...input.value,enginesPips:enginesPips})):input}#mobilityInput(scope,options){requireLoadOptions(scope,options);return mobilityInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),()=>this.#loadedMass(options.cargo??0)+(options.fuel??this.#state.statedMainFuel()??this.#build.fuelCapacity.main),this.#state.statsFor)}#shields(){const input=shieldInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(shieldMetrics(input.value)):input}#shieldCapacitor(options){const systemsPips=requirePips(`${FACADE}.shieldCapacitorMetricsResult`,"systemsPips",options.systemsPips??4);const input=shieldCapacitorInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldCapacitorMetrics(input.value)):input}#recovery(options){const systemsPips=requirePips(`${FACADE}.shieldRecoveryResult`,"systemsPips",options.systemsPips??4);const input=shieldRecoveryInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldRecovery(input.value)):input}#distributor(options){const scope=`${FACADE}.distributorMetricsResult`;const pips={systemsPips:requirePips(scope,"systemsPips",options.systemsPips??4),enginesPips:requirePips(scope,"enginesPips",options.enginesPips??4),weaponsPips:requirePips(scope,"weaponsPips",options.weaponsPips??4)};const input=distributorInputResultFor(this.#state.effectiveModules(),pips,this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(distributorMetrics(input.value)):input}#standardLoad(load){if(load!=="maximum"&&load!=="unladen"&&load!=="laden"){throw new RangeError(`${FACADE}.standardLoadResult: load must be 'maximum', 'unladen', or 'laden'`)}const fuel=this.#build.fuelCapacity;const cargo=load==="laden"?this.#build.cargoCapacity:0;const mass=load==="maximum"?this.#build.unladenMass:0;let drive=null;let maximumFuel=null;if(load==="maximum"){const fitted=this.#state.frameShiftDriveModule();let driveError=null;try{drive=this.#state.resolveDrive();maximumFuel=drive?.maxFuel??null}catch(error){if(!(error instanceof Error))throw error;driveError=error}if(maximumFuel===null){return incompleteResult([{field:"frameShiftDrive",reason:fitted?"unresolved":"missing",slot:fitted?.Slot??"FrameShiftDrive",...fitted?{symbol:fitted.Item}:{},message:driveError?.message??"FrameShiftDrive: no frame shift drive is fitted",params:fitted?{field:"frameShiftDrive",reason:"unresolved",slot:fitted.Slot,symbol:fitted.Item}:{field:"frameShiftDrive",reason:"missing",slot:"FrameShiftDrive"}}])}}const carriedFuel=load==="maximum"?Math.min(fuel.main,maximumFuel):fuel.main;const value=Object.freeze({fuel:carriedFuel,cargo:cargo,mass:this.#build.unladenMass+carriedFuel+cargo});if(load==="maximum"){try{this.jumpRange(value)}catch(error){if(!(error instanceof RangeError))throw error;const fitted=this.#state.frameShiftDriveModule();const field=drive!==null&&(!Number.isFinite(drive.maxFuel)||drive.maxFuel<0)?"frameShiftDrive":!Number.isFinite(value.fuel)||value.fuel<0?"fuelCapacity":!Number.isFinite(mass)||mass<0?"mass":"frameShiftDrive";const driveParams=field==="frameShiftDrive"&&fitted?{slot:fitted.Slot,symbol:fitted.Item}:{};return incompleteResult([{field:field,reason:"invalid",...driveParams,message:error.message,params:{field:field,reason:"invalid",...driveParams}}])}}return completeResult(value)}#require(result,what){if(result.value===null){throw new TypeError(`${FACADE}: cannot determine ${what} (${result.issues.map(issue=>issue.message).join("; ")})`)}return result.value}#loadedMass(cargo){return this.#build.unladenMass+cargo}#maxJumpFuel(fsd){return Math.min(this.#build.fuelCapacity.main,fsd.maxFuel)}};export{BuildMetrics};//# sourceMappingURL=chunk-S4BZ64WE.js.map
1
+ import{cellBankSummary,shieldRecovery}from"./chunk-JMAXSXXQ.js";import{loadoutInternals,fittedThrusterParamsFor,preEngineeredVariantFor,powerConsumerFor,powerAvailable,heatInputResultFor,completeResult,cellBankInputsFor,armourInputFor,weaponStatsFor,weaponsCapacitorInputFor,mobilityInputResultFor,shieldInputResultFor,shieldCapacitorInputResultFor,shieldRecoveryInputResultFor,distributorInputResultFor,incompleteResult}from"./chunk-U4MML7U6.js";import{weaponMetrics,sumWeaponMetrics}from"./chunk-Z266X4JF.js";import{shieldMetrics}from"./chunk-SRPCHXW2.js";import{weaponsCapacitorMetrics}from"./chunk-M4FZRDAH.js";import{powerBudget}from"./chunk-GGQMIQPC.js";import{isNonOutfittingSlot,isBuiltInHullModule,orderBySlotLayout}from"./chunk-LLLFK3D5.js";import{shieldCapacitorMetrics}from"./chunk-HWOP7QWK.js";import{mobilityCapacitorMetrics}from"./chunk-VEEBJFJ7.js";import{mobilityMetrics}from"./chunk-A4QKXXZD.js";import{getExperimentalEffectCost}from"./chunk-CJK2IBI2.js";import{heatMetrics}from"./chunk-6HA2YIKW.js";import{frameShiftDriveMassFactor,singleJumpRange,fuelPerJump,totalRange}from"./chunk-VTMCSCXV.js";import{calculateUnladenMass}from"./chunk-C3LLPLLD.js";import{getBlueprintCost}from"./chunk-ARG6ESYB.js";import{distributorMetrics}from"./chunk-M2TCZKRT.js";import{sumMaterials}from"./chunk-U73MBQ45.js";import{ammunitionCapacity}from"./chunk-AA3K5XUE.js";import{armourMetrics}from"./chunk-3I2I5KG4.js";import{requirePips,requireFiniteNonNegative}from"./chunk-65FZECUX.js";import{deepFreeze}from"./chunk-DURKO7JU.js";var FACADE="BuildMetrics";function requireLoadOptions(scope,options){for(const field of["fuel","cargo"]){const value=options[field];if(value!==void 0)requireFiniteNonNegative(scope,field,value)}}var BuildMetrics=class _BuildMetrics{#build;#state;constructor(build,state){this.#build=build;this.#state=state}static of(build){return new _BuildMetrics(build,loadoutInternals(build,`${FACADE}.of: build`))}loadout(){return this.#build}frameShiftDrive(){const drive=this.#state.resolveDrive();if(drive===null){throw new TypeError(`${FACADE}: build has no frame shift drive`)}return drive}thrusters(){return fittedThrusterParamsFor(this.#state.modules(),this.#state.statsFor)}frameShiftDriveMassFactor(options={}){requireLoadOptions(`${FACADE}.frameShiftDriveMassFactor`,options);return frameShiftDriveMassFactor(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}maxJumpRange(){const fsd=this.frameShiftDrive();return singleJumpRange(this.#loadedMass(0),this.#maxJumpFuel(fsd),fsd)}jumpRange(options={}){requireLoadOptions(`${FACADE}.jumpRange`,options);return singleJumpRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}ladenJumpRange(){return this.jumpRange({cargo:this.#build.cargoCapacity})}fuelPerJump(distance,options={}){requireLoadOptions(`${FACADE}.fuelPerJump`,options);return fuelPerJump(distance,this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}totalRange(options={}){requireLoadOptions(`${FACADE}.totalRange`,options);return totalRange(this.#loadedMass(options.cargo??0),options.fuel??this.#build.fuelCapacity.main,this.frameShiftDrive())}standardLoadResult(load){return this.#standardLoad(load)}jumpRangeSummary(){const maximum=this.#require(this.standardLoadResult("maximum"),"maximum load");const unladen=this.#require(this.standardLoadResult("unladen"),"unladen load");const laden=this.#require(this.standardLoadResult("laden"),"laden load");return{max:this.jumpRange(maximum),unladen:this.jumpRange(unladen),laden:this.jumpRange(laden),totalMax:this.totalRange(maximum),totalUnladen:this.totalRange(unladen),totalLaden:this.totalRange(laden)}}buildMass(options={}){requireLoadOptions(`${FACADE}.buildMass`,options);const unladen=this.#build.unladenMass;const fuel=options.fuel??this.#build.fuelCapacity.main;const cargo=options.cargo??0;return Object.freeze({hull:this.#state.ship.hullMass,modules:calculateUnladenMass(0,this.#state.calculationModules()),unladen:unladen,fuel:fuel,cargo:cargo,total:unladen+fuel+cargo})}buildCost(){const hull=this.#state.ship.hullCost;let modules=0;let mercCoins=0;const unpriced=[];const materials=[];for(const module of this.#state.modules()){const stats=this.#state.statsFor(module);if(stats?.cost!==void 0){modules+=stats.cost}else if(stats!==null||!isNonOutfittingSlot(module.Slot)&&!isBuiltInHullModule(module)){unpriced.push({slot:module.Slot,symbol:module.Item})}const variant=preEngineeredVariantFor(module);mercCoins+=variant?.mercCoinCost??0;const engineering=module.Engineering;if(!engineering)continue;const grade=engineering.Level;const bought=variant?.grade??0;if(Number.isInteger(grade)&&grade>bought&&grade<=5){const climb=getBlueprintCost(engineering.BlueprintName,grade,bought);if(climb){materials.push(climb.materials);mercCoins+=climb.mercCoins}}const experimental=engineering.ExperimentalEffect;if(experimental!==void 0&&experimental.toLowerCase()!==variant?.experimentalEffectSymbol?.toLowerCase()){const cost=getExperimentalEffectCost(experimental);if(cost)materials.push(cost)}}return deepFreeze({credits:{total:hull+modules,hull:hull,modules:modules,rebuy:Math.trunc((hull+modules)*.05),unpriced:unpriced},mercCoins:mercCoins,materials:sumMaterials(...materials)})}powerBudget(){const modules=this.#state.modules();const consumers=[];for(const module of modules){const consumer=powerConsumerFor(module,this.#state.statsFor(module));if(consumer)consumers.push(consumer)}return powerBudget(powerAvailable(modules,this.#state.statsFor),consumers)}heatMetricsResult(){const input=heatInputResultFor(this.#state.ship,this.#state.effectiveModules(),this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(heatMetrics(input.value)):input}mobilityMetricsResult(options={}){return this.#mobility(options)}mobilityCapacitorMetricsResult(options={}){return this.#mobilityCapacitor(options)}shieldMetricsResult(){return this.#shields()}shieldCapacitorMetricsResult(options={}){return this.#shieldCapacitor(options)}shieldRecoveryResult(options={}){return this.#recovery(options)}cellBanks(){return cellBankSummary(orderBySlotLayout(cellBankInputsFor(this.#state.modules(),this.powerBudget(),this.#state.statsFor),this.#state.layout(),bank=>bank.slot))}armourMetrics(){return armourMetrics(armourInputFor(this.#state.ship,this.#state.modules(),this.#state.statsFor))}weaponMetrics(){const weapons=[];for(const module of this.#state.modules()){const record=this.#state.statsFor(module);const stats=weaponStatsFor(this.#state.effectiveModule(module),record);if(!stats)continue;weapons.push({slot:module.Slot,symbol:module.Item,name:record?.name??module.Item,enabled:module.On!==false,metrics:weaponMetrics(stats),ammunition:ammunitionCapacity(stats),...stats.maximumRange===void 0?{}:{maximumRange:stats.maximumRange},...stats.falloffRange===void 0?{}:{falloffRange:stats.falloffRange},...stats.projectileRange===void 0?{}:{projectileRange:{...stats.projectileRange}},...stats.armourPiercing===void 0?{}:{armourPiercing:stats.armourPiercing}})}const orderedWeapons=orderBySlotLayout(weapons,this.#state.layout(),weapon=>weapon.slot);return{weapons:orderedWeapons,total:sumWeaponMetrics(orderedWeapons.filter(weapon=>weapon.enabled).map(weapon=>weapon.metrics))}}weaponsCapacitorMetrics(options={}){const weaponsPips=requirePips(`${FACADE}.weaponsCapacitorMetrics`,"weaponsPips",options.weaponsPips??4);return weaponsCapacitorMetrics(weaponsCapacitorInputFor(this.#state.effectiveModules(),weaponsPips,this.powerBudget(),this.#state.statsFor))}distributorMetricsResult(options={}){return this.#distributor(options)}#mobility(options){const input=this.#mobilityInput(`${FACADE}.mobilityMetricsResult`,options);return input.complete?completeResult(mobilityMetrics(input.value)):input}#mobilityCapacitor(options){const scope=`${FACADE}.mobilityCapacitorMetricsResult`;const enginesPips=requirePips(scope,"enginesPips",options.enginesPips??4);const input=this.#mobilityInput(scope,options);return input.complete?completeResult(mobilityCapacitorMetrics({...input.value,enginesPips:enginesPips})):input}#mobilityInput(scope,options){requireLoadOptions(scope,options);return mobilityInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),()=>this.#loadedMass(options.cargo??0)+(options.fuel??this.#state.statedMainFuel()??this.#build.fuelCapacity.main),this.#state.statsFor)}#shields(){const input=shieldInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(shieldMetrics(input.value)):input}#shieldCapacitor(options){const systemsPips=requirePips(`${FACADE}.shieldCapacitorMetricsResult`,"systemsPips",options.systemsPips??4);const input=shieldCapacitorInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldCapacitorMetrics(input.value)):input}#recovery(options){const systemsPips=requirePips(`${FACADE}.shieldRecoveryResult`,"systemsPips",options.systemsPips??4);const input=shieldRecoveryInputResultFor(this.#state.ship,this.#state.modules(),()=>this.powerBudget(),systemsPips,this.#state.statsFor);return input.complete?completeResult(shieldRecovery(input.value)):input}#distributor(options){const scope=`${FACADE}.distributorMetricsResult`;const pips={systemsPips:requirePips(scope,"systemsPips",options.systemsPips??4),enginesPips:requirePips(scope,"enginesPips",options.enginesPips??4),weaponsPips:requirePips(scope,"weaponsPips",options.weaponsPips??4)};const input=distributorInputResultFor(this.#state.effectiveModules(),pips,this.powerBudget(),this.#state.statsFor);return input.complete?completeResult(distributorMetrics(input.value)):input}#standardLoad(load){if(load!=="maximum"&&load!=="unladen"&&load!=="laden"){throw new RangeError(`${FACADE}.standardLoadResult: load must be 'maximum', 'unladen', or 'laden'`)}const fuel=this.#build.fuelCapacity;const cargo=load==="laden"?this.#build.cargoCapacity:0;const mass=load==="maximum"?this.#build.unladenMass:0;let drive=null;let maximumFuel=null;if(load==="maximum"){const fitted=this.#state.frameShiftDriveModule();let driveError=null;try{drive=this.#state.resolveDrive();maximumFuel=drive?.maxFuel??null}catch(error){if(!(error instanceof Error))throw error;driveError=error}if(maximumFuel===null){return incompleteResult([{field:"frameShiftDrive",reason:fitted?"unresolved":"missing",slot:fitted?.Slot??"FrameShiftDrive",...fitted?{symbol:fitted.Item}:{},message:driveError?.message??"FrameShiftDrive: no frame shift drive is fitted",params:fitted?{field:"frameShiftDrive",reason:"unresolved",slot:fitted.Slot,symbol:fitted.Item}:{field:"frameShiftDrive",reason:"missing",slot:"FrameShiftDrive"}}])}}const carriedFuel=load==="maximum"?Math.min(fuel.main,maximumFuel):fuel.main;const value=Object.freeze({fuel:carriedFuel,cargo:cargo,mass:this.#build.unladenMass+carriedFuel+cargo});if(load==="maximum"){try{this.jumpRange(value)}catch(error){if(!(error instanceof RangeError))throw error;const fitted=this.#state.frameShiftDriveModule();const field=drive!==null&&(!Number.isFinite(drive.maxFuel)||drive.maxFuel<0)?"frameShiftDrive":!Number.isFinite(value.fuel)||value.fuel<0?"fuelCapacity":!Number.isFinite(mass)||mass<0?"mass":"frameShiftDrive";const driveParams=field==="frameShiftDrive"&&fitted?{slot:fitted.Slot,symbol:fitted.Item}:{};return incompleteResult([{field:field,reason:"invalid",...driveParams,message:error.message,params:{field:field,reason:"invalid",...driveParams}}])}}return completeResult(value)}#require(result,what){if(result.value===null){throw new TypeError(`${FACADE}: cannot determine ${what} (${result.issues.map(issue=>issue.message).join("; ")})`)}return result.value}#loadedMass(cargo){return this.#build.unladenMass+cargo}#maxJumpFuel(fsd){return Math.min(this.#build.fuelCapacity.main,fsd.maxFuel)}};export{BuildMetrics};//# sourceMappingURL=chunk-N4YDIODB.js.map