eoapi-cdk 10.3.0 → 10.4.1

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 (48) hide show
  1. package/.jsii +134 -4
  2. package/lib/bastion-host/index.js +1 -1
  3. package/lib/database/PgBouncer.js +3 -3
  4. package/lib/database/index.js +1 -1
  5. package/lib/ingestor-api/index.js +1 -1
  6. package/lib/ingestor-api/runtime/dev_requirements.txt +1 -0
  7. package/lib/lambda-api-gateway/index.js +1 -1
  8. package/lib/lambda-api-gateway-private/index.js +1 -1
  9. package/lib/stac-api/index.js +4 -4
  10. package/lib/stac-api/runtime/Dockerfile +25 -6
  11. package/lib/stac-api/runtime/pyproject.toml +14 -0
  12. package/lib/stac-api/runtime/uv.lock +855 -0
  13. package/lib/stac-auth-proxy/index.js +4 -4
  14. package/lib/stac-auth-proxy/runtime/Dockerfile +13 -6
  15. package/lib/stac-auth-proxy/runtime/pyproject.toml +13 -0
  16. package/lib/stac-auth-proxy/runtime/uv.lock +820 -0
  17. package/lib/stac-browser/index.js +1 -1
  18. package/lib/stac-loader/index.js +2 -2
  19. package/lib/stac-loader/runtime/Dockerfile +15 -7
  20. package/lib/stac-loader/runtime/pyproject.toml +6 -2
  21. package/lib/stac-loader/runtime/uv.lock +593 -0
  22. package/lib/stactools-item-generator/index.js +1 -1
  23. package/lib/stactools-item-generator/runtime/Dockerfile +10 -8
  24. package/lib/stactools-item-generator/runtime/pyproject.toml +1 -1
  25. package/lib/stactools-item-generator/runtime/uv.lock +177 -0
  26. package/lib/tipg-api/index.js +4 -4
  27. package/lib/tipg-api/runtime/Dockerfile +24 -13
  28. package/lib/tipg-api/runtime/pyproject.toml +13 -0
  29. package/lib/tipg-api/runtime/uv.lock +810 -0
  30. package/lib/titiler-pgstac-api/index.js +4 -4
  31. package/lib/titiler-pgstac-api/runtime/Dockerfile +27 -19
  32. package/lib/titiler-pgstac-api/runtime/pyproject.toml +19 -0
  33. package/lib/titiler-pgstac-api/runtime/uv.lock +1073 -0
  34. package/package.json +9 -9
  35. package/pyproject.toml +13 -6
  36. package/uv.lock +1373 -185
  37. package/lib/stac-api/runtime/requirements.txt +0 -2
  38. package/lib/tipg-api/runtime/requirements.txt +0 -1
  39. package/lib/titiler-pgstac-api/runtime/dev_requirements.txt +0 -2
  40. package/lib/titiler-pgstac-api/runtime/requirements.txt +0 -4
  41. /package/lib/stac-api/runtime/src/{__init__.py → stac_api/__init__.py} +0 -0
  42. /package/lib/stac-api/runtime/src/{handler.py → stac_api/handler.py} +0 -0
  43. /package/lib/stac-auth-proxy/runtime/src/{__init__.py → stac_auth_proxy_api/__init__.py} +0 -0
  44. /package/lib/stac-auth-proxy/runtime/src/{handler.py → stac_auth_proxy_api/handler.py} +0 -0
  45. /package/lib/tipg-api/runtime/src/{__init__.py → tipg_api/__init__.py} +0 -0
  46. /package/lib/tipg-api/runtime/src/{handler.py → tipg_api/handler.py} +0 -0
  47. /package/lib/titiler-pgstac-api/runtime/src/{__init__.py → titiler_pgstac_api/__init__.py} +0 -0
  48. /package/lib/titiler-pgstac-api/runtime/src/{handler.py → titiler_pgstac_api/handler.py} +0 -0
@@ -91,5 +91,5 @@ class StacBrowser extends constructs_1.Construct {
91
91
  }
92
92
  exports.StacBrowser = StacBrowser;
93
93
  _a = JSII_RTTI_SYMBOL_1;
94
- StacBrowser[_a] = { fqn: "eoapi-cdk.StacBrowser", version: "10.3.0" };
94
+ StacBrowser[_a] = { fqn: "eoapi-cdk.StacBrowser", version: "10.4.1" };
95
95
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFxRjtBQUNyRiw2Q0FBdUQ7QUFDdkQsaURBQWdGO0FBRWhGLDJDQUF1QztBQUN2QyxpREFBeUM7QUFDekMseUJBQXlCO0FBRXpCLE1BQU0sdUJBQXVCLEdBQUcsZ0JBQWdCLENBQUM7QUFFakQsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFLdEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxjQUFjLElBQUksdUJBQXVCLENBQUMsQ0FBQztRQUV4RixpRkFBaUY7UUFDakYsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0JBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFDeEMsYUFBYSxFQUFFLG9CQUFFLENBQUMsbUJBQW1CLENBQUMsT0FBTztnQkFDN0MsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztnQkFDcEMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjthQUNuRCxDQUFDLENBQUE7UUFDTixDQUFDO1FBRUQsOEpBQThKO1FBQzlKLElBQUksS0FBSyxDQUFDLHlCQUF5QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMs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LENBQUMsQ0FBQztZQUN6SCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsS0FBSyxDQUFDLGNBQWMsT0FBTyxjQUFjLFlBQVksQ0FBQyxDQUFBO1lBQ3pGLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxHQUFHLGNBQWMsWUFBWSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxLQUFLLENBQUMsY0FBYyxTQUFTLGNBQWMsRUFBRSxDQUFDLENBQUE7UUFDMUYsSUFBQSx3QkFBUSxFQUFDLGlDQUFpQyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUUzRixPQUFPLHFCQUFxQixDQUFBO0lBRWhDLENBQUM7O0FBcEdMLGtDQXVHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrLCBhd3NfczMgYXMgczMsIGF3c19zM19kZXBsb3ltZW50IGFzIHMzX2RlcGxveW1lbnR9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIFNlcnZpY2VQcmluY2lwYWwsIEVmZmVjdCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5cbmNvbnN0IERFRkFVTFRfQ0xPTkVfRElSRUNUT1JZID0gJy4vc3RhYy1icm93c2VyJztcblxuZXhwb3J0IGNsYXNzIFN0YWNCcm93c2VyIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICAgIHB1YmxpYyBidWNrZXQ6IHMzLklCdWNrZXQ7XG4gICAgcHVibGljIGJ1Y2tldERlcGxveW1lbnQ6IHMzX2RlcGxveW1lbnQuQnVja2V0RGVwbG95bWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFjQnJvd3NlclByb3BzKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgY29uc3QgYnVpbGRQYXRoID0gdGhpcy5idWlsZEFwcChwcm9wcywgcHJvcHMuY2xvbmVEaXJlY3RvcnkgfHwgREVGQVVMVF9DTE9ORV9ESVJFQ1RPUlkpO1xuXG4gICAgICAgIC8vIGltcG9ydCBhIGJ1Y2tldCBmcm9tIHByb3BzLmJ1Y2tldEFybiBpZiBkZWZpbmVkLCBvdGhlcndpc2UgY3JlYXRlIGEgbmV3IGJ1Y2tldFxuICAgICAgICBpZiAocHJvcHMuYnVja2V0QXJuKSB7XG4gICAgICAgICAgICB0aGlzLmJ1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0QXJuKHRoaXMsICdCdWNrZXQnLCBwcm9wcy5idWNrZXRBcm4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5idWNrZXQgPSBuZXcgczMuQnVja2V0KHRoaXMsICdCdWNrZXQnLCB7XG4gICAgICAgICAgICAgICAgYWNjZXNzQ29udHJvbDogczMuQnVja2V0QWNjZXNzQ29udHJvbC5QUklWQVRFLFxuICAgICAgICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgICAgICAgICB3ZWJzaXRlSW5kZXhEb2N1bWVudDogcHJvcHMud2Vic2l0ZUluZGV4RG9jdW1lbnRcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuIGlzIGRlZmluZWQgYW5kIHByb3BzLmJ1Y2tldEFybiBpcyBub3QgZGVmaW5lZCwgYWRkIGEgYnVja2V0IHBvbGljeSB0byBhbGxvdyByZWFkIGFjY2VzcyBmcm9tIHRoZSBjbG91ZGZyb250IGRpc3RyaWJ1dGlvblxuICAgICAgICBpZiAocHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvbkFybiAmJiAhcHJvcHMuYnVja2V0QXJuKSB7XG4gICAgICAgICAgICB0aGlzLmJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2lkOiAnQWxsb3dDbG91ZEZyb250U2VydmljZVByaW5jaXBhbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IFNlcnZpY2VQcmluY2lwYWwoJ2Nsb3VkZnJvbnQuYW1hem9uYXdzLmNvbScpXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlczogW3RoaXMuYnVja2V0LmFybkZvck9iamVjdHMoJyonKV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1N0cmluZ0VxdWFscyc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F3czpTb3VyY2VBcm4nOiBwcm9wcy5jbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBhZGQgdGhlIGNvbXBpbGVkIGNvZGUgdG8gdGhlIGJ1Y2tldCBhcyBhIGJ1Y2tldCBkZXBsb3ltZW50XG4gICAgICAgIHRoaXMuYnVja2V0RGVwbG95bWVudCA9IG5ldyBzM19kZXBsb3ltZW50LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0J1Y2tldERlcGxveW1lbnQnLCB7XG4gICAgICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICAgICAgICBzb3VyY2VzOiBbczNfZGVwbG95bWVudC5Tb3VyY2UuYXNzZXQoYnVpbGRQYXRoKV1cbiAgICAgICAgICB9KTtcblxuICAgICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiYnVja2V0LW5hbWVcIiwge1xuICAgICAgICBleHBvcnROYW1lOiBgJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9LWJ1Y2tldC1uYW1lYCxcbiAgICAgICAgdmFsdWU6IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEFwcChwcm9wczogU3RhY0Jyb3dzZXJQcm9wcywgY2xvbmVEaXJlY3Rvcnk6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICAgICAgLy8gRGVmaW5lIHdoZXJlIHRvIGNsb25lIGFuZCBidWlsZFxuICAgICAgICBjb25zdCBnaXRodWJSZXBvVXJsID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS9yYWRpYW50ZWFydGgvc3RhYy1icm93c2VyLmdpdCc7XG5cblxuICAgICAgICAvLyBNYXliZSB0aGUgcmVwbyBhbHJlYWR5IGV4aXN0cyBpbiBjbG9uZURpcmVjdG9yeS4gVHJ5IGNoZWNraW5nIG91dCB0aGUgZGVzaXJlZCB2ZXJzaW9uIGFuZCBpZiBpdCBmYWlscywgZGVsZXRlIGFuZCByZWNsb25lLlxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYENoZWNraW5nIGlmIGEgdmFsaWQgY2xvbmVkIHJlcG8gZXhpc3RzIHdpdGggdmVyc2lvbiAke3Byb3BzLmdpdGh1YlJlcG9UYWd9Li4uYClcbiAgICAgICAgICAgIGV4ZWNTeW5jKGBnaXQgY2hlY2tvdXQgdGFncy8ke3Byb3BzLmdpdGh1YlJlcG9UYWd9YCwgeyBjd2Q6IGNsb25lRGlyZWN0b3J5IH0pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuXG4gICAgICAgICAgICAvLyBpZiBkaXJlY3RvcnkgZXhpc3RzLCByYWlzZSBhbiBlcnJvclxuICAgICAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoY2xvbmVEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEaXJlY3RvcnkgJHtjbG9uZURpcmVjdG9yeX0gYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vdCBhIHZhbGlkIGNsb25lIG9mICR7Z2l0aHViUmVwb1VybH0uIFBsZWFzZSBkZWxldGUgdGhpcyBkaXJlY3Rvcnkgb3Igc3BlY2lmeSBhIGRpZmZlcmVudCBjbG9uZURpcmVjdG9yeS5gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZWxzZSwgd2UgY2xvbmUgYW5kIGNoZWNrIG91dCB0aGUgdmVyc2lvbi5cblxuICAgICAgICAgICAgLy8gQ2xvbmUgdGhlIHJlcG9cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDbG9uaW5nICR7Z2l0aHViUmVwb1VybH0gaW50byAke2Nsb25lRGlyZWN0b3J5fS4uLmApXG4gICAgICAgICAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0aHViUmVwb1VybH0gJHtjbG9uZURpcmVjdG9yeX1gKTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgb3V0IHRoZSBkZXNpcmVkIHZlcnNpb25cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDaGVja2luZyBvdXQgdmVyc2lvbiAke3Byb3BzLmdpdGh1YlJlcG9UYWd9Li4uYClcbiAgICAgICAgICAgIGV4ZWNTeW5jKGBnaXQgY2hlY2tvdXQgdGFncy8ke3Byb3BzLmdpdGh1YlJlcG9UYWd9YCwgeyBjd2Q6IGNsb25lRGlyZWN0b3J5IH0pO1xuXG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnN0YWxsIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGJ1aWxkIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICBjb25zb2xlLmxvZyhgSW5zdGFsbGluZyBkZXBlbmRlbmNpZXNgKVxuICAgICAgICBleGVjU3luYygnbnBtIGluc3RhbGwnLCB7IGN3ZDogY2xvbmVEaXJlY3RvcnkgfSk7XG5cbiAgICAgICAgLy8gSWYgYSBjb25maWcgZmlsZSBpcyBwcm92aWRlZCwgY29weSBpdCB0byB0aGUgc3RhYy1icm93c2VyIGRpcmVjdG9yeSBhdCBcImNvbmZpZy5qc1wiLCByZXBsYWNlcyB0aGUgZGVmYXVsdCBjb25maWcuanMuXG4gICAgICAgIGlmIChwcm9wcy5jb25maWdGaWxlUGF0aCkge1xuICAgICAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgZmlsZSBleGlzdHMgYXQgdGhpcyBsb2NhdGlvbi4gaWYgbm90LCByYWlzZSBhbiBlcnJvciBhbmQgcHJpbnQgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICAgICAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwcm9wcy5jb25maWdGaWxlUGF0aCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbmZpZyBmaWxlICR7cHJvcHMuY29uZmlnRmlsZVBhdGh9IGRvZXMgbm90IGV4aXN0LiBDdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGlzICR7cHJvY2Vzcy5jd2QoKX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDb3B5aW5nIGNvbmZpZyBmaWxlICR7cHJvcHMuY29uZmlnRmlsZVBhdGh9IHRvICR7Y2xvbmVEaXJlY3Rvcnl9L2NvbmZpZy5qc2ApXG4gICAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMocHJvcHMuY29uZmlnRmlsZVBhdGgsIGAke2Nsb25lRGlyZWN0b3J5fS9jb25maWcuanNgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJ1aWxkIHRoZSBhcHAgd2l0aCBjYXRhbG9nVXJsXG4gICAgICAgIGNvbnNvbGUubG9nKGBCdWlsZGluZyBhcHAgd2l0aCBjYXRhbG9nVXJsPSR7cHJvcHMuc3RhY0NhdGFsb2dVcmx9IGludG8gJHtjbG9uZURpcmVjdG9yeX1gKVxuICAgICAgICBleGVjU3luYyhgbnBtIHJ1biBidWlsZCAtLSAtLWNhdGFsb2dVcmw9JHtwcm9wcy5zdGFjQ2F0YWxvZ1VybH1gLCB7IGN3ZDogY2xvbmVEaXJlY3RvcnkgfSk7XG5cbiAgICAgICAgcmV0dXJuICcuL3N0YWMtYnJvd3Nlci9kaXN0J1xuXG4gICAgfVxuXG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFjQnJvd3NlclByb3BzIHtcblxuICAgIC8qKlxuICAgICAqIEJ1Y2tldCBBUk4uIElmIHNwZWNpZmllZCwgdGhlIGlkZW50aXR5IHVzZWQgdG8gZGVwbG95IHRoZSBzdGFjayBtdXN0IGhhdmUgdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIHRvIGNyZWF0ZSBhIGRlcGxveW1lbnQgZm9yIHRoaXMgYnVja2V0LlxuICAgICAqIEluIGFkZGl0aW9uLCBpZiBzcGVjaWZpZWQsIGBjbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuYCBpcyBpZ25vcmVkIHNpbmNlIHRoZSBwb2xpY3kgb2YgYW4gaW1wb3J0ZWQgcmVzb3VyY2UgY2FuJ3QgYmUgbW9kaWZpZWQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIE5vIGJ1Y2tldCBBUk4uIEEgbmV3IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAgICovXG5cbiAgICByZWFkb25seSBidWNrZXRBcm4/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTVEFDIGNhdGFsb2cgVVJMLiBPdmVycmlkZXMgdGhlIGNhdGFsb2cgVVJMIGluIHRoZSBzdGFjLWJyb3dzZXIgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBzdGFjQ2F0YWxvZ1VybDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUGF0aCB0byBjb25maWcgZmlsZSBmb3IgdGhlIFNUQUMgYnJvd3Nlci4gSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaW4gdGhlIFNUQUMgYnJvd3NlclxuICAgICAqIHJlcG9zaXRvcnkgaXMgdXNlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBjb25maWdGaWxlUGF0aD86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRhZyBvZiB0aGUgcmFkaWFudCBlYXJ0aCBzdGFjLWJyb3dzZXIgcmVwbyB0byB1c2UgdG8gYnVpbGQgdGhlIGFwcC5cbiAgICAgKi9cbiAgICByZWFkb25seSBnaXRodWJSZXBvVGFnOiBzdHJpbmc7XG5cblxuICAgIC8qKlxuICAgICAqIFRoZSBBUk4gb2YgdGhlIGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uIHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgYnVja2V0IHBvbGljeSB3aXRoIHJlYWQgYWNjZXNzLlxuICAgICAqIElmIGBidWNrZXRBcm5gIGlzIHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCBzaW5jZSB0aGUgcG9saWN5IG9mIGFuIGltcG9ydGVkIGJ1Y2tldCBjYW4ndCBiZSBtb2RpZmllZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm8gY2xvdWRmcm9udCBkaXN0cmlidXRpb24gQVJOLiBUaGUgYnVja2V0IHBvbGljeSB3aWxsIG5vdCBiZSBtb2RpZmllZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBjbG91ZEZyb250RGlzdHJpYnV0aW9uQXJuPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGluZGV4IGRvY3VtZW50IChlLmcuIFwiaW5kZXguaHRtbFwiKSBmb3IgdGhlIHdlYnNpdGUuIEVuYWJsZXMgc3RhdGljIHdlYnNpdGVcbiAgICAgKiBob3N0aW5nIGZvciB0aGlzIGJ1Y2tldC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm8gaW5kZXggZG9jdW1lbnQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgd2Vic2l0ZUluZGV4RG9jdW1lbnQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBMb2NhdGlvbiBpbiB0aGUgZmlsZXN5c3RlbSB3aGVyZSB0byBjb21waWxlIHRoZSBicm93c2VyIGNvZGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIERFRkFVTFRfQ0xPTkVfRElSRUNUT1JZXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2xvbmVEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbn1cbiJdfQ==
@@ -270,7 +270,7 @@ class StacLoader extends constructs_1.Construct {
270
270
  }
271
271
  exports.StacLoader = StacLoader;
272
272
  _a = JSII_RTTI_SYMBOL_1;
273
- StacLoader[_a] = { fqn: "eoapi-cdk.StacLoader", version: "10.3.0" };
273
+ StacLoader[_a] = { fqn: "eoapi-cdk.StacLoader", version: "10.4.1" };
274
274
  /**
275
275
  * @deprecated Use StacLoader instead. StacItemLoader will be removed in a future version.
276
276
  */
@@ -283,5 +283,5 @@ class StacItemLoader extends StacLoader {
283
283
  }
284
284
  exports.StacItemLoader = StacItemLoader;
285
285
  _b = JSII_RTTI_SYMBOL_1;
286
- StacItemLoader[_b] = { fqn: "eoapi-cdk.StacItemLoader", version: "10.3.0" };
286
+ StacItemLoader[_b] = { fqn: "eoapi-cdk.StacItemLoader", version: "10.4.1" };
287
287
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQVdxQjtBQUNyQiwyQ0FBdUM7QUFDdkMsNkJBQTZCO0FBRTdCLG9DQUF3RTtBQXlJeEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0xHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFvRHZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksR0FBRyxDQUFDO1FBQ3pELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksd0JBQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3hFLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDO1FBRWpELDJCQUEyQjtRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUkscUJBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzVELGVBQWUsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsb0JBQW9CO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxxQkFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3hDLGlCQUFpQixFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FB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QUFFLEdBQUcsWUFBWSx3QkFBd0I7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUMxQixXQUFXLEVBQUUsaUNBQWlDO1lBQzlDLFVBQVUsRUFBRSxHQUFHLFlBQVksd0JBQXdCO1NBQ3BELENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUTtZQUNwQyxXQUFXLEVBQUUseUNBQXlDO1lBQ3RELFVBQVUsRUFBRSxHQUFHLFlBQVksbUNBQW1DO1NBQy9ELENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7WUFDdkMsV0FBVyxFQUFFLHdDQUF3QztZQUNyRCxVQUFVLEVBQUUsR0FBRyxZQUFZLDRCQUE0QjtTQUN4RCxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXpKSCxnQ0EwSkM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsVUFBVTtJQUM1QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELE9BQU8sQ0FBQyxJQUFJLENBQ1YsK0RBQStEO1lBQzdELHFEQUFxRCxDQUN4RCxDQUFDO1FBRUYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzs7QUFSSCx3Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENmbk91dHB1dCxcbiAgRHVyYXRpb24sXG4gIGF3c19lYzIgYXMgZWMyLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX2xhbWJkYV9ldmVudF9zb3VyY2VzIGFzIGxhbWJkYUV2ZW50U291cmNlcyxcbiAgYXdzX2xvZ3MgYXMgbG9ncyxcbiAgYXdzX3NucyBhcyBzbnMsXG4gIGF3c19zbnNfc3Vic2NyaXB0aW9ucyBhcyBzbnNTdWJzY3JpcHRpb25zLFxuICBhd3Nfc3FzIGFzIHNxcyxcbiAgU3RhY2ssXG59IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFBnU3RhY0RhdGFiYXNlIH0gZnJvbSBcIi4uL2RhdGFiYXNlXCI7XG5pbXBvcnQgeyBDdXN0b21MYW1iZGFGdW5jdGlvblByb3BzLCByZXNvbHZlTGFtYmRhQ29kZSB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIFN0YWNMb2FkZXIgY29uc3RydWN0LlxuICpcbiAqIFRoZSBTdGFjTG9hZGVyIGlzIHBhcnQgb2YgYSB0d28tcGhhc2Ugc2VydmVybGVzcyBTVEFDIGluZ2VzdGlvbiBwaXBlbGluZVxuICogdGhhdCBsb2FkcyBTVEFDIGNvbGxlY3Rpb25zIGFuZCBpdGVtcyBpbnRvIGEgcGdzdGFjIGRhdGFiYXNlLiBUaGlzIGNvbnN0cnVjdCBjcmVhdGVzXG4gKiB0aGUgaW5mcmFzdHJ1Y3R1cmUgZm9yIHJlY2VpdmluZyBTVEFDIG9iamVjdHMgZnJvbSBtdWx0aXBsZSBzb3VyY2VzOlxuICogMS4gU05TIG1lc3NhZ2VzIGNvbnRhaW5pbmcgU1RBQyBtZXRhZGF0YSAoZGlyZWN0IGluZ2VzdGlvbilcbiAqIDIuIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnMgZm9yIFNUQUMgb2JqZWN0cyB1cGxvYWRlZCB0byBTMyBidWNrZXRzXG4gKlxuICogT2JqZWN0cyBmcm9tIGJvdGggc291cmNlcyBhcmUgYmF0Y2hlZCBhbmQgaW5zZXJ0ZWQgaW50byBQb3N0Z3JlU1FMIHdpdGggdGhlIHBnc3RhYyBleHRlbnNpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGxvYWRlciA9IG5ldyBTdGFjTG9hZGVyKHRoaXMsICdTdGFjTG9hZGVyJywge1xuICogICBwZ3N0YWNEYjogZGF0YWJhc2UsXG4gKiAgIGJhdGNoU2l6ZTogMTAwMCxcbiAqICAgbWF4QmF0Y2hpbmdXaW5kb3dNaW51dGVzOiAxLFxuICogICBsYW1iZGFUaW1lb3V0U2Vjb25kczogMzAwXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFjTG9hZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIFBnU1RBQyBkYXRhYmFzZSBpbnN0YW5jZSB0byBsb2FkIGRhdGEgaW50by5cbiAgICpcbiAgICogVGhpcyBkYXRhYmFzZSBtdXN0IGhhdmUgdGhlIHBnc3RhYyBleHRlbnNpb24gaW5zdGFsbGVkIGFuZCBiZSBwcm9wZXJseVxuICAgKiBjb25maWd1cmVkIHdpdGggY29sbGVjdGlvbnMgYmVmb3JlIG9iamVjdHMgY2FuIGJlIGxvYWRlZC4gVGhlIGxvYWRlciB3aWxsXG4gICAqIHVzZSBBV1MgU2VjcmV0cyBNYW5hZ2VyIHRvIHNlY3VyZWx5IGFjY2VzcyBkYXRhYmFzZSBjcmVkZW50aWFscy5cbiAgICovXG4gIHJlYWRvbmx5IHBnc3RhY0RiOiBQZ1N0YWNEYXRhYmFzZTtcblxuICAvKipcbiAgICogVlBDIGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAvKipcbiAgICogU3VibmV0IGludG8gd2hpY2ggdGhlIGxhbWJkYSBzaG91bGQgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFtYmRhIHJ1bnRpbWUgdG8gdXNlIGZvciB0aGUgaXRlbSBsb2FkaW5nIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gaXMgaW1wbGVtZW50ZWQgaW4gUHl0aG9uIGFuZCB1c2VzIHB5cGdzdGFjIGZvciBkYXRhYmFzZVxuICAgKiBvcGVyYXRpb25zLiBFbnN1cmUgdGhlIHJ1bnRpbWUgdmVyc2lvbiBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHBnc3RhY1xuICAgKiB2ZXJzaW9uIHNwZWNpZmllZCBpbiB0aGUgZGF0YWJhc2UgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTJcbiAgICovXG4gIHJlYWRvbmx5IGxhbWJkYVJ1bnRpbWU/OiBsYW1iZGEuUnVudGltZTtcblxuICAvKipcbiAgICogVGhlIHRpbWVvdXQgZm9yIHRoZSBpdGVtIGxvYWQgbGFtYmRhIGluIHNlY29uZHMuXG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGFjY29tbW9kYXRlIHRoZSB0aW1lIG5lZWRlZCB0byBwcm9jZXNzIHVwIHRvIGBiYXRjaFNpemVgXG4gICAqIG9iamVjdHMgYW5kIHBlcmZvcm0gZGF0YWJhc2UgaW5zZXJ0aW9ucy4gVGhlIFNRUyB2aXNpYmlsaXR5IHRpbWVvdXRcbiAgICogd2lsbCBiZSBzZXQgdG8gdGhpcyB2YWx1ZSBwbHVzIDEwIHNlY29uZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDMwMFxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhVGltZW91dFNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSBzaXplIGZvciB0aGUgbGFtYmRhIGZ1bmN0aW9uIGluIE1CLlxuICAgKlxuICAgKiBIaWdoZXIgbWVtb3J5IGFsbG9jYXRpb24gbWF5IGltcHJvdmUgcGVyZm9ybWFuY2Ugd2hlbiBwcm9jZXNzaW5nXG4gICAqIGxhcmdlIGJhdGNoZXMgb2YgU1RBQyBvYmplY3RzLCBlc3BlY2lhbGx5IGZvciBtZW1vcnktaW50ZW5zaXZlXG4gICAqIGRhdGFiYXNlIG9wZXJhdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwMjRcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNRUyBiYXRjaCBzaXplIGZvciBsYW1iZGEgZXZlbnQgc291cmNlLlxuICAgKlxuICAgKiBUaGlzIGRldGVybWluZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIFNUQUMgb2JqZWN0cyB0aGF0IHdpbGwgYmVcbiAgICogcHJvY2Vzc2VkIHRvZ2V0aGVyIGluIGEgc2luZ2xlIGxhbWJkYSBpbnZvY2F0aW9uLiBMYXJnZXIgYmF0Y2hcbiAgICogc2l6ZXMgaW1wcm92ZSBkYXRhYmFzZSBpbnNlcnRpb24gZWZmaWNpZW5jeSBidXQgcmVxdWlyZSBtb3JlXG4gICAqIG1lbW9yeSBhbmQgbG9uZ2VyIHByb2Nlc3NpbmcgdGltZS5cbiAgICpcbiAgICogKipCYXRjaGluZyBCZWhhdmlvcioqOiBTUVMgd2lsbCB3YWl0IHRvIGFjY3VtdWxhdGUgdXAgdG8gdGhpcyBtYW55XG4gICAqIG1lc3NhZ2VzIGJlZm9yZSB0cmlnZ2VyaW5nIHRoZSBMYW1iZGEsIE9SIHVudGlsIHRoZSBtYXhCYXRjaGluZ1dpbmRvd1xuICAgKiB0aW1lb3V0IGlzIHJlYWNoZWQsIHdoaWNoZXZlciBjb21lcyBmaXJzdC4gVGhpcyBjcmVhdGVzIGFuIGVmZmljaWVudFxuICAgKiBiYWxhbmNlIGJldHdlZW4gdGhyb3VnaHB1dCBhbmQgbGF0ZW5jeS5cbiAgICpcbiAgICogQGRlZmF1bHQgNTAwXG4gICAqL1xuICByZWFkb25seSBiYXRjaFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gYmF0Y2hpbmcgd2luZG93IGluIG1pbnV0ZXMuXG4gICAqXG4gICAqIEV2ZW4gaWYgdGhlIGJhdGNoIHNpemUgaXNuJ3QgcmVhY2hlZCwgdGhlIGxhbWJkYSB3aWxsIGJlIHRyaWdnZXJlZFxuICAgKiBhZnRlciB0aGlzIHRpbWUgcGVyaW9kIHRvIGVuc3VyZSB0aW1lbHkgcHJvY2Vzc2luZyBvZiBvYmplY3RzLlxuICAgKiBUaGlzIHByZXZlbnRzIG9iamVjdHMgZnJvbSB3YWl0aW5nIGluZGVmaW5pdGVseSBpbiBsb3ctdm9sdW1lIHNjZW5hcmlvcy5cbiAgICpcbiAgICogKipJbXBvcnRhbnQqKjogVGhpcyB0aW1lb3V0IHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggYmF0Y2hTaXplIC0gU1FTXG4gICAqIHdpbGwgdHJpZ2dlciB0aGUgTGFtYmRhIHdoZW4gRUlUSEVSIHRoZSBiYXRjaCBzaXplIGlzIHJlYWNoZWQgT1IgdGhpc1xuICAgKiB0aW1lIHdpbmRvdyBleHBpcmVzLCBlbnN1cmluZyBvYmplY3RzIGFyZSBwcm9jZXNzZWQgaW4gYSB0aW1lbHkgbWFubmVyXG4gICAqIHJlZ2FyZGxlc3Mgb2Ygdm9sdW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtYXhCYXRjaGluZ1dpbmRvd01pbnV0ZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gY29uY3VycmVudCBleGVjdXRpb25zIGZvciB0aGUgU3RhY0xvYWRlciBMYW1iZGEgZnVuY3Rpb25cbiAgICpcbiAgICogVGhpcyBsaW1pdCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIExhbWJkYSBmdW5jdGlvbiBhbmQgd2lsbCBjb250cm9sIGhvd1xuICAgKiBtYW55IGNvbmN1cnJlbnQgYmF0Y2hlcyB3aWxsIGJlIHJlbGVhc2VkIGZyb20gdGhlIFNRUyBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciB0aGUgbGFtYmRhIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGVzZSB3aWxsIGJlIG1lcmdlZCB3aXRoIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcyBpbmNsdWRpbmdcbiAgICogUEdTVEFDX1NFQ1JFVF9BUk4uIFVzZSB0aGlzIGZvciBjdXN0b20gY29uZmlndXJhdGlvbiBvciBkZWJ1Z2dpbmcgZmxhZ3MuXG4gICAqXG4gICAqIElmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGUgb3B0aW9uIHRvIHVwbG9hZCBhIGJvaWxlcnBsYXRlIGNvbGxlY3Rpb24gcmVjb3JkXG4gICAqIGluIHRoZSBldmVudCB0aGF0IHRoZSBjb2xsZWN0aW9uIHJlY29yZCBkb2VzIG5vdCB5ZXQgZXhpc3QgZm9yIGFuIGl0ZW0gdGhhdFxuICAgKiBpcyBzZXQgdG8gYmUgbG9hZGVkLCBzZXQgdGhlIHZhcmlhYmxlIGBcIkNSRUFURV9DT0xMRUNUSU9OU19JRl9NSVNTSU5HXCI6IFwiVFJVRVwiYC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGFtYmRhIGZ1bmN0aW9uIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmaW5lZCBpbiB0aGUgY29uc3RydWN0LlxuICAgKi9cbiAgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb25PcHRpb25zPzogQ3VzdG9tTGFtYmRhRnVuY3Rpb25Qcm9wcztcbn1cblxuLyoqXG4gKiBBV1MgQ0RLIENvbnN0cnVjdCBmb3IgU1RBQyBPYmplY3QgTG9hZGluZyBJbmZyYXN0cnVjdHVyZVxuICpcbiAqIFRoZSBTdGFjTG9hZGVyIGNyZWF0ZXMgYSBzZXJ2ZXJsZXNzLCBldmVudC1kcml2ZW4gc3lzdGVtIGZvciBsb2FkaW5nXG4gKiBTVEFDIChTcGF0aW9UZW1wb3JhbCBBc3NldCBDYXRhbG9nKSBvYmplY3RzIGludG8gYSBQb3N0Z3JlU1FMIGRhdGFiYXNlIHdpdGhcbiAqIHRoZSBwZ3N0YWMgZXh0ZW5zaW9uLiBUaGlzIGNvbnN0cnVjdCBzdXBwb3J0cyBtdWx0aXBsZSBpbmdlc3Rpb24gcGF0aHdheXNcbiAqIGZvciBmbGV4aWJsZSBTVEFDIG9iamVjdCBsb2FkaW5nLlxuICpcbiAqICMjIEFyY2hpdGVjdHVyZSBPdmVydmlld1xuICpcbiAqIFRoaXMgY29uc3RydWN0IGNyZWF0ZXMgdGhlIGZvbGxvd2luZyBBV1MgcmVzb3VyY2VzOlxuICogLSAqKlNOUyBUb3BpYyoqOiBFbnRyeSBwb2ludCBmb3IgU1RBQyBvYmplY3RzIGFuZCBTMyBldmVudCBub3RpZmljYXRpb25zXG4gKiAtICoqU1FTIFF1ZXVlKio6IEJ1ZmZlcnMgYW5kIGJhdGNoZXMgbWVzc2FnZXMgYmVmb3JlIHByb2Nlc3NpbmcgKDYwLXNlY29uZCB2aXNpYmlsaXR5IHRpbWVvdXQpXG4gKiAtICoqRGVhZCBMZXR0ZXIgUXVldWUqKjogQ2FwdHVyZXMgZmFpbGVkIGxvYWRpbmcgYXR0ZW1wdHMgYWZ0ZXIgNSByZXRyaWVzXG4gKiAtICoqTGFtYmRhIEZ1bmN0aW9uKio6IFB5dGhvbiBmdW5jdGlvbiB0aGF0IHByb2Nlc3NlcyBiYXRjaGVzIGFuZCBpbnNlcnRzIG9iamVjdHMgaW50byBwZ3N0YWNcbiAqXG4gKiAjIyBEYXRhIEZsb3dcbiAqXG4gKiBUaGUgbG9hZGVyIHN1cHBvcnRzIHR3byBwcmltYXJ5IGRhdGEgaW5nZXN0aW9uIHBhdHRlcm5zOlxuICpcbiAqICMjIyBEaXJlY3QgU1RBQyBPYmplY3QgUHVibGlzaGluZ1xuICogMS4gU1RBQyBvYmplY3RzIChKU09OKSBhcmUgcHVibGlzaGVkIGRpcmVjdGx5IHRvIHRoZSBTTlMgdG9waWMgaW4gbWVzc2FnZSBib2RpZXNcbiAqIDIuIFRoZSBTUVMgcXVldWUgY29sbGVjdHMgbWVzc2FnZXMgYW5kIGJhdGNoZXMgdGhlbSAodXAgdG8ge2JhdGNoU2l6ZX0gb2JqZWN0cyBvciAxIG1pbnV0ZSB3aW5kb3cpXG4gKiAzLiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHJlY2VpdmVzIGJhdGNoZXMsIHZhbGlkYXRlcyBvYmplY3RzLCBhbmQgaW5zZXJ0cyBpbnRvIHBnc3RhY1xuICpcbiAqICMjIyBTMyBFdmVudC1Ecml2ZW4gTG9hZGluZ1xuICogMS4gQW4gUzMgYnVja2V0IGlzIGNvbmZpZ3VyZWQgdG8gc2VuZCBub3RpZmljYXRpb25zIHRvIHRoZSBTTlMgdG9waWMgd2hlbiBqc29uIGZpbGVzIGFyZSBjcmVhdGVkXG4gKiAyLiBTVEFDIG9iamVjdHMgYXJlIHVwbG9hZGVkIHRvIFMzIGJ1Y2tldHMgYXMgSlNPTi9HZW9KU09OIGZpbGVzXG4gKiAzLiBTMyBldmVudCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvIHRoZSBTTlMgdG9waWMgd2hlbiBvYmplY3RzIGFyZSB1cGxvYWRlZFxuICogNC4gVGhlIExhbWJkYSBmdW5jdGlvbiByZWNlaXZlcyBTMyBldmVudHMgaW4gdGhlIFNRUyBtZXNzYWdlIGJhdGNoLCBmZXRjaGVzIG9iamVjdHMgZnJvbSBTMywgYW5kIGxvYWRzIGludG8gcGdzdGFjXG4gKlxuICogIyMgQmF0Y2hpbmcgQmVoYXZpb3JcbiAqXG4gKiBUaGUgU1FTLXRvLUxhbWJkYSBpbnRlZ3JhdGlvbiB1c2VzIGludGVsbGlnZW50IGJhdGNoaW5nIHRvIG9wdGltaXplIHBlcmZvcm1hbmNlOlxuICpcbiAqIC0gKipCYXRjaCBTaXplKio6IExhbWJkYSB3YWl0cyB0byByZWNlaXZlIHVwIHRvIGBiYXRjaFNpemVgIG1lc3NhZ2VzIChkZWZhdWx0OiA1MDApXG4gKiAtICoqQmF0Y2hpbmcgV2luZG93Kio6IElmIGZld2VyIHRoYW4gYGJhdGNoU2l6ZWAgbWVzc2FnZXMgYXJlIGF2YWlsYWJsZSwgTGFtYmRhXG4gKiAgIHRyaWdnZXJzIGFmdGVyIGBtYXhCYXRjaGluZ1dpbmRvd2AgbWludXRlcyAoZGVmYXVsdDogMSBtaW51dGUpXG4gKiAtICoqVHJpZ2dlciBDb25kaXRpb24qKjogTGFtYmRhIGV4ZWN1dGVzIHdoZW4gRUlUSEVSIGNvbmRpdGlvbiBpcyBtZXQgZmlyc3RcbiAqIC0gKipDb25jdXJyZW5jeSoqOiBMaW1pdGVkIHRvIGBtYXhDb25jdXJyZW5jeWAgY29uY3VycmVudCBleGVjdXRpb25zIHRvIHByZXZlbnQgZGF0YWJhc2Ugb3ZlcmxvYWRcbiAqIC0gKipQYXJ0aWFsIEZhaWx1cmVzKio6IFVzZXMgYHJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzYCB0byByZXRyeSBvbmx5IGZhaWxlZCBvYmplY3RzXG4gKlxuICogVGhpcyBhcHByb2FjaCBiYWxhbmNlcyB0aHJvdWdocHV0IChsYXJnZXIgYmF0Y2hlcyA9IGZld2VyIGRhdGFiYXNlIGNvbm5lY3Rpb25zKVxuICogd2l0aCBsYXRlbmN5ICh0aW1lLWJhc2VkIHRyaWdnZXJzIHByZXZlbnQgaW5kZWZpbml0ZSB3YWl0aW5nKS5cbiAqXG4gKiAjIyBFcnJvciBIYW5kbGluZyBhbmQgRGVhZCBMZXR0ZXIgUXVldWVcbiAqXG4gKiBGYWlsZWQgbWVzc2FnZXMgYXJlIHNlbnQgdG8gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlIGFmdGVyIDUgcHJvY2Vzc2luZyBhdHRlbXB0cy5cbiAqICoqSW1wb3J0YW50Kio6IFRoaXMgY29uc3RydWN0IHByb3ZpZGVzIE5PIGF1dG9tYXRlZCBoYW5kbGluZyBvZiBkZWFkIGxldHRlciBxdWV1ZVxuICogbWVzc2FnZXMgLSBtb25pdG9yaW5nLCBpbnNwZWN0aW9uLCBhbmQgcmVwcm9jZXNzaW5nIG9mIGZhaWxlZCBvYmplY3RzIGlzIHRoZVxuICogcmVzcG9uc2liaWxpdHkgb2YgdGhlIGltcGxlbWVudGluZyBhcHBsaWNhdGlvbi5cbiAqXG4gKiBDb25zaWRlciBpbXBsZW1lbnRpbmc6XG4gKiAtIENsb3VkV2F0Y2ggYWxhcm1zIG9uIGRlYWQgbGV0dGVyIHF1ZXVlIGRlcHRoXG4gKiAtIE1hbnVhbCBvciBhdXRvbWF0ZWQgcmVwcm9jZXNzaW5nIHdvcmtmbG93c1xuICogLSBMb2dnaW5nIGFuZCBhbGVydGluZyBmb3IgZmFpbGVkIG9iamVjdHNcbiAqIC0gUmVndWxhciBjbGVhbnVwIG9mIG9sZCBkZWFkIGxldHRlciBtZXNzYWdlcyAoMTQtZGF5IHJldGVudGlvbilcbiAqXG4gKiAjIyBPcGVyYXRpb25hbCBDaGFyYWN0ZXJpc3RpY3NcbiAqXG4gKiAtICoqU2NhbGFiaWxpdHkqKjogTGFtYmRhIHNjYWxlcyBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIHF1ZXVlIGRlcHRoXG4gKiAtICoqUmVsaWFiaWxpdHkqKjogRGVhZCBsZXR0ZXIgcXVldWUgY2FwdHVyZXMgZmFpbHVyZXMgZm9yIGRlYnVnZ2luZ1xuICogLSAqKkVmZmljaWVuY3kqKjogQmF0Y2hpbmcgb3B0aW1pemVzIGRhdGFiYXNlIG9wZXJhdGlvbnMgZm9yIGhpZ2ggdGhyb3VnaHB1dFxuICogLSAqKlNlY3VyaXR5Kio6IERhdGFiYXNlIGNyZWRlbnRpYWxzIGFjY2Vzc2VkIHZpYSBBV1MgU2VjcmV0cyBNYW5hZ2VyXG4gKiAtICoqT2JzZXJ2YWJpbGl0eSoqOiBDbG91ZFdhdGNoIGxvZ3MgcmV0YWluZWQgZm9yIG9uZSB3ZWVrXG4gKlxuICogIyMgUHJlcmVxdWlzaXRlc1xuICpcbiAqIEJlZm9yZSB1c2luZyB0aGlzIGNvbnN0cnVjdCwgZW5zdXJlOlxuICogLSBUaGUgcGdzdGFjIGRhdGFiYXNlIGhhcyBjb2xsZWN0aW9ucyBsb2FkZWQgKG9iamVjdHMgcmVxdWlyZSBleGlzdGluZyBjb2xsZWN0aW9uIElEcylcbiAqIC0gRGF0YWJhc2UgY3JlZGVudGlhbHMgYXJlIHN0b3JlZCBpbiBBV1MgU2VjcmV0cyBNYW5hZ2VyXG4gKiAtIFRoZSBwZ3N0YWMgZXh0ZW5zaW9uIGlzIHByb3Blcmx5IGluc3RhbGxlZCBhbmQgY29uZmlndXJlZFxuICpcbiAqICMjIFVzYWdlIEV4YW1wbGVcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgZGF0YWJhc2UgZmlyc3RcbiAqIGNvbnN0IGRhdGFiYXNlID0gbmV3IFBnU3RhY0RhdGFiYXNlKHRoaXMsICdEYXRhYmFzZScsIHtcbiAqICAgcGdzdGFjVmVyc2lvbjogJzAuOS41J1xuICogfSk7XG4gKlxuICogLy8gQ3JlYXRlIE9iamVjdCBsb2FkZXJcbiAqIGNvbnN0IGxvYWRlciA9IG5ldyBTdGFjTG9hZGVyKHRoaXMsICdTdGFjTG9hZGVyJywge1xuICogICBwZ3N0YWNEYjogZGF0YWJhc2UsXG4gKiAgIGJhdGNoU2l6ZTogMTAwMCwgICAgICAgICAgLy8gUHJvY2VzcyB1cCB0byAxMDAwIG9iamVjdHMgcGVyIGJhdGNoXG4gKiAgIG1heEJhdGNoaW5nV2luZG93TWludXRlczogMSwgLy8gV2FpdCBtYXggMSBtaW51dGUgdG8gZmlsbCBiYXRjaFxuICogICBsYW1iZGFUaW1lb3V0U2Vjb25kczogMzAwICAgICAvLyBBbGxvdyB1cCB0byAzMDAgc2Vjb25kcyBmb3IgZGF0YWJhc2Ugb3BlcmF0aW9uc1xuICogfSk7XG4gKlxuICogLy8gVGhlIHRvcGljIEFSTiBjYW4gYmUgdXNlZCBieSBvdGhlciBzZXJ2aWNlcyB0byBwdWJsaXNoIG9iamVjdHNcbiAqIG5ldyBDZm5PdXRwdXQodGhpcywgJ0xvYWRlclRvcGljQXJuJywge1xuICogICB2YWx1ZTogbG9hZGVyLnRvcGljLnRvcGljQXJuXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqICMjIERpcmVjdCBPYmplY3QgUHVibGlzaGluZ1xuICpcbiAqIEV4dGVybmFsIHNlcnZpY2VzIGNhbiBwdWJsaXNoIFNUQUMgb2JqZWN0cyBkaXJlY3RseSB0byB0aGUgdG9waWM6XG4gKlxuICogYGBgYmFzaFxuICogYXdzIHNucyBwdWJsaXNoIC0tdG9waWMtYXJuICRTVEFDX0xPQURfVE9QSUMgLS1tZXNzYWdlICAne1xuICogICBcImlkXCI6IFwiZXhhbXBsZS1jb2xsZWN0aW9uXCIsXG4gKiAgIFwidHlwZVwiOiBcIkNvbGxlY3Rpb25cIixcbiAqICAgXCJ0aXRsZVwiOiBcIkV4YW1wbGUgQ29sbGVjdGlvblwiLFxuICogICBcImRlc2NyaXB0aW9uXCI6IFwiQW4gZXhhbXBsZSBjb2xsZWN0aW9uXCIsXG4gKiAgIFwibGljZW5zZVwiOiBcInByb3ByaWV0YXJ5XCIsXG4gKiAgIFwiZXh0ZW50XCI6IHtcbiAqICAgICAgIFwic3BhdGlhbFwiOiB7XCJiYm94XCI6IFtbLTE4MCwgLTkwLCAxODAsIDkwXV19LFxuICogICAgICAgXCJ0ZW1wb3JhbFwiOiB7XCJpbnRlcnZhbFwiOiBbW251bGwsIG51bGxdXX1cbiAqICAgfSxcbiAqICAgXCJzdGFjX3ZlcnNpb25cIjogXCIxLjEuMFwiLFxuICogICBcImxpbmtzXCI6IFtdXG4gKiB9J1xuICpcbiAqIGF3cyBzbnMgcHVibGlzaCAtLXRvcGljLWFybiAkU1RBQ19MT0FEX1RPUElDIC0tbWVzc2FnZSAne1xuICogICBcInR5cGVcIjogXCJGZWF0dXJlXCIsXG4gKiAgIFwic3RhY192ZXJzaW9uXCI6IFwiMS4wLjBcIixcbiAqICAgXCJpZFwiOiBcImV4YW1wbGUtaXRlbVwiLFxuICogICBcInByb3BlcnRpZXNcIjoge1wiZGF0ZXRpbWVcIjogXCIyMDIxLTAxLTAxVDAwOjAwOjAwWlwifSxcbiAqICAgXCJnZW9tZXRyeVwiOiB7XCJ0eXBlXCI6IFwiUG9seWdvblwiLCBcImNvb3JkaW5hdGVzXCI6IFsuLi5dfSxcbiAqICAgXCJjb2xsZWN0aW9uXCI6IFwiZXhhbXBsZS1jb2xsZWN0aW9uXCJcbiAqIH0nXG4gKlxuICpcbiAqIGBgYFxuICpcbiAqICMjIFMzIEV2ZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBUbyBlbmFibGUgUzMgZXZlbnQtZHJpdmVuIGxvYWRpbmcsIGNvbmZpZ3VyZSBTMyBidWNrZXQgbm90aWZpY2F0aW9ucyB0byBzZW5kXG4gKiBldmVudHMgdG8gdGhlIFNOUyB0b3BpYyB3aGVuIFNUQUMgb2JqZWN0cyAoLmpzb24gb3IgLmdlb2pzb24gZmlsZXMpIGFyZSB1cGxvYWRlZDpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDb25maWd1cmUgUzMgYnVja2V0IHRvIHNlbmQgbm90aWZpY2F0aW9ucyB0byB0aGUgbG9hZGVyIHRvcGljXG4gKiBidWNrZXQuYWRkRXZlbnROb3RpZmljYXRpb24oXG4gKiAgIHMzLkV2ZW50VHlwZS5PQkpFQ1RfQ1JFQVRFRCxcbiAqICAgbmV3IHMzbi5TbnNEZXN0aW5hdGlvbihsb2FkZXIudG9waWMpLFxuICogICB7IHN1ZmZpeDogJy5qc29uJyB9XG4gKiApO1xuICpcbiAqIGJ1Y2tldC5hZGRFdmVudE5vdGlmaWNhdGlvbihcbiAqICAgczMuRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVELFxuICogICBuZXcgczNuLlNuc0Rlc3RpbmF0aW9uKGxvYWRlci50b3BpYyksXG4gKiAgIHsgc3VmZml4OiAnLmdlb2pzb24nIH1cbiAqICk7XG4gKiBgYGBcbiAqXG4gKiBXaGVuIFNUQUMgb2JqZWN0cyBhcmUgdXBsb2FkZWQgdG8gdGhlIGNvbmZpZ3VyZWQgUzMgYnVja2V0LCB0aGUgbG9hZGVyIHdpbGw6XG4gKiAxLiBSZWNlaXZlIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnMgdmlhIFNOU1xuICogMi4gRmV0Y2ggdGhlIFNUQUMgSlNPTiBmcm9tIFMzXG4gKiAzLiBWYWxpZGF0ZSBhbmQgbG9hZCB0aGUgb2JqZWN0cyBpbnRvIHRoZSBwZ3N0YWMgZGF0YWJhc2VcbiAqXG4gKiAjIyBNb25pdG9yaW5nIGFuZCBUcm91Ymxlc2hvb3RpbmdcbiAqXG4gKiAtIE1vbml0b3IgTGFtYmRhIGxvZ3M6IGAvYXdzL2xhbWJkYS97RnVuY3Rpb25OYW1lfWBcbiAqIC0gKipEZWFkIExldHRlciBRdWV1ZSoqOiBDaGVjayBmb3IgZmFpbGVkIG9iamVjdHMgLSAqKm5vIGF1dG9tYXRlZCBoYW5kbGluZyBwcm92aWRlZCoqXG4gKiAtIFVzZSBiYXRjaCBvYmplY3RzIGZhaWx1cmUgcmVwb3J0aW5nIGZvciBwYXJ0aWFsIGJhdGNoIHByb2Nlc3NpbmdcbiAqIC0gQ2xvdWRXYXRjaCBtZXRyaWNzIGF2YWlsYWJsZSBmb3IgcXVldWUgZGVwdGggYW5kIExhbWJkYSBwZXJmb3JtYW5jZVxuICpcbiAqICMjIyBEZWFkIExldHRlciBRdWV1ZSBNYW5hZ2VtZW50XG4gKlxuICogQXBwbGljYXRpb25zIG11c3QgaW1wbGVtZW50IHRoZWlyIG93biBkZWFkIGxldHRlciBxdWV1ZSBtb25pdG9yaW5nOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEV4YW1wbGU6IENsb3VkV2F0Y2ggYWxhcm0gZm9yIGRlYWQgbGV0dGVyIHF1ZXVlIGRlcHRoXG4gKiBuZXcgY2xvdWR3YXRjaC5BbGFybSh0aGlzLCAnRGVhZExldHRlckFsYXJtJywge1xuICogICBtZXRyaWM6IGxvYWRlci5kZWFkTGV0dGVyUXVldWUubWV0cmljQXBwcm94aW1hdGVOdW1iZXJPZlZpc2libGVNZXNzYWdlcygpLFxuICogICB0aHJlc2hvbGQ6IDEsXG4gKiAgIGV2YWx1YXRpb25QZXJpb2RzOiAxXG4gKiB9KTtcbiAqXG4gKiAvLyBFeGFtcGxlOiBMYW1iZGEgdG8gcmVwcm9jZXNzIGRlYWQgbGV0dGVyIG1lc3NhZ2VzXG4gKiBjb25zdCByZXByb2Nlc3NGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgJ1JlcHJvY2VzcycsIHtcbiAqICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZmV0Y2ggYW5kIHJlcHVibGlzaCBmYWlsZWQgbWVzc2FnZXNcbiAqIH0pO1xuICogYGBgXG4gKlxuICovXG5leHBvcnQgY2xhc3MgU3RhY0xvYWRlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgU05TIHRvcGljIHRoYXQgcmVjZWl2ZXMgU1RBQyBvYmplY3RzIGFuZCBTMyBldmVudCBub3RpZmljYXRpb25zIGZvciBsb2FkaW5nLlxuICAgKlxuICAgKiBUaGlzIHRvcGljIHNlcnZlcyBhcyB0aGUgZW50cnkgcG9pbnQgZm9yIHR3byB0eXBlcyBvZiBldmVudHM6XG4gICAqIDEuIERpcmVjdCBTVEFDIEpTT04gZG9jdW1lbnRzIHB1Ymxpc2hlZCBieSBleHRlcm5hbCBzZXJ2aWNlc1xuICAgKiAyLiBTMyBldmVudCBub3RpZmljYXRpb25zIHdoZW4gU1RBQyBvYmplY3RzIGFyZSB1cGxvYWRlZCB0byBjb25maWd1cmVkIGJ1Y2tldHNcbiAgICpcbiAgICogVGhlIHRvcGljIGZhbnMgb3V0IHRvIHRoZSBTUVMgcXVldWUgZm9yIGJhdGNoZWQgcHJvY2Vzc2luZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0b3BpYzogc25zLlRvcGljO1xuXG4gIC8qKlxuICAgKiBUaGUgU1FTIHF1ZXVlIHRoYXQgYnVmZmVycyBtZXNzYWdlcyBiZWZvcmUgcHJvY2Vzc2luZy5cbiAgICpcbiAgICogVGhpcyBxdWV1ZSBjb2xsZWN0cyBib3RoIGRpcmVjdCBTVEFDIG9iamVjdHMgZnJvbSBTTlMgYW5kIFMzIGV2ZW50XG4gICAqIG5vdGlmaWNhdGlvbnMsIGJhdGNoaW5nIHRoZW0gZm9yIGVmZmljaWVudCBkYXRhYmFzZSBvcGVyYXRpb25zLlxuICAgKiBDb25maWd1cmVkIHdpdGggYSB2aXNpYmlsaXR5IHRpbWVvdXQgdGhhdCBhY2NvbW1vZGF0ZXMgTGFtYmRhXG4gICAqIHByb2Nlc3NpbmcgdGltZSBwbHVzIGJ1ZmZlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZTogc3FzLlF1ZXVlO1xuXG4gIC8qKlxuICAgKiBEZWFkIGxldHRlciBxdWV1ZSBmb3IgZmFpbGVkIG9iamVjdHMgbG9hZGluZyBhdHRlbXB0cy5cbiAgICpcbiAgICogTWVzc2FnZXMgdGhhdCBmYWlsIHByb2Nlc3NpbmcgYWZ0ZXIgNSBhdHRlbXB0cyBhcmUgc2VudCBoZXJlXG4gICAqIGZvciBpbnNwZWN0aW9uIGFuZCBwb3RlbnRpYWwgcmVwbGF5LiBSZXRhaW5zIG1lc3NhZ2VzIGZvciAxNCBkYXlzXG4gICAqIHRvIGFsbG93IGZvciBkZWJ1Z2dpbmcgYW5kIG1hbnVhbCBpbnRlcnZlbnRpb24uXG4gICAqXG4gICAqICoqVXNlciBSZXNwb25zaWJpbGl0eSoqOiBUaGlzIGNvbnN0cnVjdCBwcm92aWRlcyBOTyBhdXRvbWF0ZWQgbW9uaXRvcmluZyxcbiAgICogYWxlcnRpbmcsIG9yIHJlcHJvY2Vzc2luZyBvZiBkZWFkIGxldHRlciBxdWV1ZSBtZXNzYWdlcy4gQXBwbGljYXRpb25zXG4gICAqIHVzaW5nIHRoaXMgY29uc3RydWN0IG11c3QgaW1wbGVtZW50IHRoZWlyIG93bjpcbiAgICogLSBEZWFkIGxldHRlciBxdWV1ZSBkZXB0aCBtb25pdG9yaW5nIGFuZCBhbGVydGluZ1xuICAgKiAtIEZhaWxlZCBtZXNzYWdlIGluc3BlY3Rpb24gYW5kIGRlYnVnZ2luZyB3b3JrZmxvd3NcbiAgICogLSBNYW51YWwgb3IgYXV0b21hdGVkIHJlcHJvY2Vzc2luZyBtZWNoYW5pc21zXG4gICAqIC0gQ2xlYW51cCBwcm9jZWR1cmVzIGZvciBvbGQgZmFpbGVkIG1lc3NhZ2VzXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlOiBzcXMuUXVldWU7XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBsb2FkcyBTVEFDIG9iamVjdHMgaW50byB0aGUgcGdzdGFjIGRhdGFiYXNlLlxuICAgKlxuICAgKiBUaGlzIFB5dGhvbiBmdW5jdGlvbiByZWNlaXZlcyBiYXRjaGVzIG9mIG1lc3NhZ2VzIGZyb20gU1FTIGFuZCBwcm9jZXNzZXNcbiAgICogdGhlbSBiYXNlZCBvbiB0aGVpciB0eXBlOlxuICAgKiAtIERpcmVjdCBTVEFDIG9iamVjdHM6IFZhbGlkYXRlcyBhbmQgbG9hZHMgZGlyZWN0bHkgaW50byBwZ3N0YWNcbiAgICogLSBTMyBldmVudHM6IEZldGNoZXMgU1RBQyBKU09OIGZyb20gUzMsIHZhbGlkYXRlcywgYW5kIGxvYWRzIGludG8gcGdzdGFjXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBjb25uZWN0cyB0byBQb3N0Z3JlU1FMIHVzaW5nIGNyZWRlbnRpYWxzIGZyb20gU2VjcmV0cyBNYW5hZ2VyXG4gICAqIGFuZCB1c2VzIHB5cGdzdGFjIGZvciBlZmZpY2llbnQgZGF0YWJhc2Ugb3BlcmF0aW9ucy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFjTG9hZGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgdGltZW91dFNlY29uZHMgPSBwcm9wcy5sYW1iZGFUaW1lb3V0U2Vjb25kcyA/PyAzMDA7XG4gICAgY29uc3QgbGFtYmRhUnVudGltZSA9IHByb3BzLmxhbWJkYVJ1bnRpbWUgPz8gbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfMTI7XG4gICAgY29uc3QgbWF4Q29uY3VycmVuY3kgPSBwcm9wcy5tYXhDb25jdXJyZW5jeSA/PyAyO1xuXG4gICAgLy8gQ3JlYXRlIGRlYWQgbGV0dGVyIHF1ZXVlXG4gICAgdGhpcy5kZWFkTGV0dGVyUXVldWUgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIFwiRGVhZExldHRlclF1ZXVlXCIsIHtcbiAgICAgIHJldGVudGlvblBlcmlvZDogRHVyYXRpb24uZGF5cygxNCksXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgbWFpbiBxdWV1ZVxuICAgIHRoaXMucXVldWUgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIFwiUXVldWVcIiwge1xuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHModGltZW91dFNlY29uZHMgKyAxMCksXG4gICAgICBlbmNyeXB0aW9uOiBzcXMuUXVldWVFbmNyeXB0aW9uLlNRU19NQU5BR0VELFxuICAgICAgZGVhZExldHRlclF1ZXVlOiB7XG4gICAgICAgIG1heFJlY2VpdmVDb3VudDogNSxcbiAgICAgICAgcXVldWU6IHRoaXMuZGVhZExldHRlclF1ZXVlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBTTlMgdG9waWNcbiAgICB0aGlzLnRvcGljID0gbmV3IHNucy5Ub3BpYyh0aGlzLCBcIlRvcGljXCIsIHtcbiAgICAgIGRpc3BsYXlOYW1lOiBgJHtpZH0tU3RhY0xvYWRlclRvcGljYCxcbiAgICB9KTtcblxuICAgIC8vIFN1YnNjcmliZSB0aGUgcXVldWUgdG8gdGhlIHRvcGljXG4gICAgdGhpcy50b3BpYy5hZGRTdWJzY3JpcHRpb24oXG4gICAgICBuZXcgc25zU3Vic2NyaXB0aW9ucy5TcXNTdWJzY3JpcHRpb24odGhpcy5xdWV1ZSlcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBsYW1iZGEgZnVuY3Rpb25cbiAgICBjb25zdCB7IGNvZGU6IHVzZXJDb2RlLCAuLi5vdGhlckxhbWJkYU9wdGlvbnMgfSA9XG4gICAgICBwcm9wcy5sYW1iZGFGdW5jdGlvbk9wdGlvbnMgfHwge307XG5cbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIkZ1bmN0aW9uXCIsIHtcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYVJ1bnRpbWUsXG4gICAgICBoYW5kbGVyOiBcInN0YWNfbG9hZGVyLmhhbmRsZXIuaGFuZGxlclwiLFxuICAgICAgdnBjOiBwcm9wcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5zdWJuZXRTZWxlY3Rpb24sXG4gICAgICBjb2RlOiByZXNvbHZlTGFtYmRhQ29kZSh1c2VyQ29kZSwgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiKSwge1xuICAgICAgICBmaWxlOiBcInN0YWMtbG9hZGVyL3J1bnRpbWUvRG9ja2VyZmlsZVwiLFxuICAgICAgICBwbGF0Zm9ybTogXCJsaW51eC9hbWQ2NFwiLFxuICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICBQWVRIT05fVkVSU0lPTjogbGFtYmRhUnVudGltZS50b1N0cmluZygpLnJlcGxhY2UoXCJweXRob25cIiwgXCJcIiksXG4gICAgICAgICAgUEdTVEFDX1ZFUlNJT046IHByb3BzLnBnc3RhY0RiLnBnc3RhY1ZlcnNpb24sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIG1lbW9yeVNpemU6IHByb3BzLm1lbW9yeVNpemUgPz8gMTAyNCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHModGltZW91dFNlY29uZHMpLFxuICAgICAgcmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9uczogbWF4Q29uY3VycmVuY3ksXG4gICAgICBsb2dSZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFBHU1RBQ19TRUNSRVRfQVJOOiBwcm9wcy5wZ3N0YWNEYi5wZ3N0YWNTZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgICAuLi5wcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgIH0sXG4gICAgICAvLyBvdmVyd3JpdGVzIGRlZmF1bHRzIHdpdGggdXNlci1wcm92aWRlZCBjb25maWd1cmFibGUgcHJvcGVydGllc1xuICAgICAgLi4ub3RoZXJMYW1iZGFPcHRpb25zLFxuICAgIH0pO1xuXG4gICAgLy8gR3JhbnQgcGVybWlzc2lvbnMgdG8gcmVhZCB0aGUgZGF0YWJhc2Ugc2VjcmV0XG4gICAgcHJvcHMucGdzdGFjRGIucGdzdGFjU2VjcmV0LmdyYW50UmVhZCh0aGlzLmxhbWJkYUZ1bmN0aW9uKTtcblxuICAgIC8vIEFkZCBTUVMgZXZlbnQgc291cmNlIHRvIHRoZSBsYW1iZGFcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uLmFkZEV2ZW50U291cmNlKFxuICAgICAgbmV3IGxhbWJkYUV2ZW50U291cmNlcy5TcXNFdmVudFNvdXJjZSh0aGlzLnF1ZXVlLCB7XG4gICAgICAgIGJhdGNoU2l6ZTogcHJvcHMuYmF0Y2hTaXplID8/IDUwMCxcbiAgICAgICAgbWF4QmF0Y2hpbmdXaW5kb3c6IER1cmF0aW9uLm1pbnV0ZXMoXG4gICAgICAgICAgcHJvcHMubWF4QmF0Y2hpbmdXaW5kb3dNaW51dGVzID8/IDFcbiAgICAgICAgKSxcbiAgICAgICAgbWF4Q29uY3VycmVuY3k6IG1heENvbmN1cnJlbmN5LFxuICAgICAgICByZXBvcnRCYXRjaEl0ZW1GYWlsdXJlczogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIENyZWF0ZSBvdXRwdXRzXG4gICAgY29uc3QgZXhwb3J0UHJlZml4ID0gU3RhY2sub2YodGhpcykuc3RhY2tOYW1lO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJUb3BpY0FyblwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy50b3BpYy50b3BpY0FybixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkFSTiBvZiB0aGUgU3RhY0xvYWRlciBTTlMgVG9waWNcIixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2V4cG9ydFByZWZpeH0tc3RhYy1sb2FkZXItdG9waWMtYXJuYCxcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJRdWV1ZVVybFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5xdWV1ZS5xdWV1ZVVybCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlVSTCBvZiB0aGUgU3RhY0xvYWRlciBTUVMgUXVldWVcIixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2V4cG9ydFByZWZpeH0tc3RhYy1sb2FkZXItcXVldWUtdXJsYCxcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJEZWFkTGV0dGVyUXVldWVVcmxcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuZGVhZExldHRlclF1ZXVlLnF1ZXVlVXJsLFxuICAgICAgZGVzY3JpcHRpb246IFwiVVJMIG9mIHRoZSBTdGFjTG9hZGVyIERlYWQgTGV0dGVyIFF1ZXVlXCIsXG4gICAgICBleHBvcnROYW1lOiBgJHtleHBvcnRQcmVmaXh9LXN0YWMtbG9hZGVyLWRlYWRsZXR0ZXItcXVldWUtdXJsYCxcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXCJGdW5jdGlvbk5hbWVcIiwge1xuICAgICAgdmFsdWU6IHRoaXMubGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25OYW1lLFxuICAgICAgZGVzY3JpcHRpb246IFwiTmFtZSBvZiB0aGUgU3RhY0xvYWRlciBMYW1iZGEgRnVuY3Rpb25cIixcbiAgICAgIGV4cG9ydE5hbWU6IGAke2V4cG9ydFByZWZpeH0tc3RhYy1sb2FkZXItZnVuY3Rpb24tbmFtZWAsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgU3RhY0xvYWRlciBpbnN0ZWFkLiBTdGFjSXRlbUxvYWRlciB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNJdGVtTG9hZGVyIGV4dGVuZHMgU3RhY0xvYWRlciB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdGFjTG9hZGVyUHJvcHMpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgU3RhY0l0ZW1Mb2FkZXIgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdGFjTG9hZGVyIGluc3RlYWQuIGAgK1xuICAgICAgICBgU3RhY0l0ZW1Mb2FkZXIgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uYFxuICAgICk7XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxufVxuXG4vLyBBbHNvIGNyZWF0ZSBhIGRlcHJlY2F0ZWQgaW50ZXJmYWNlIGFsaWFzIGlmIHlvdSBoYWQgYSBzZXBhcmF0ZSBpbnRlcmZhY2Vcbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIFN0YWNMb2FkZXJQcm9wcyBpbnN0ZWFkLiBTdGFjSXRlbUxvYWRlclByb3BzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNJdGVtTG9hZGVyUHJvcHMgZXh0ZW5kcyBTdGFjTG9hZGVyUHJvcHMge31cbiJdfQ==
@@ -1,18 +1,26 @@
1
1
  ARG PYTHON_VERSION=3.12
2
2
  FROM public.ecr.aws/lambda/python:${PYTHON_VERSION}
3
- COPY --from=ghcr.io/astral-sh/uv:0.7.8 /uv /uvx /bin/
3
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
4
4
 
5
5
  ENV UV_COMPILE_BYTECODE=1
6
6
  ENV PYTHONUNBUFFERED=1
7
7
 
8
- WORKDIR /asset
8
+ WORKDIR /tmp
9
9
 
10
- COPY stac-loader/runtime/pyproject.toml pyproject.toml
11
- COPY stac-loader/runtime/src/stac_loader/ stac_loader/
10
+ COPY stac-loader/runtime/pyproject.toml stac-loader/runtime/uv.lock ./
11
+ COPY stac-loader/runtime/src/ ./src/
12
12
 
13
13
  ARG PGSTAC_VERSION=0.9.6
14
- RUN uv add --no-sync pypgstac==${PGSTAC_VERSION} && \
15
- uv export --no-dev --no-editable -o requirements.txt && \
16
- uv pip install --target /asset -r requirements.txt
14
+
15
+ RUN <<EOF
16
+ uv add --no-sync pypgstac==${PGSTAC_VERSION}
17
+ uv export --locked --no-editable --no-dev --format requirements.txt -o requirements.txt
18
+ uv pip install \
19
+ --compile-bytecode \
20
+ --target /asset \
21
+ --no-cache-dir \
22
+ --disable-pip-version-check \
23
+ -r requirements.txt
24
+ EOF
17
25
 
18
26
  CMD ["stac_loader.handler.handler"]
@@ -1,10 +1,14 @@
1
1
  [project]
2
2
  name = "stac-loader"
3
- version = "0.1.0"
3
+ version = "0.0.0"
4
4
  description = "An application for loading STAC collections and items into a pgstac database"
5
5
  authors = [{ name = "hrodmn", email = "henry@developmentseed.org" }]
6
6
  requires-python = ">=3.12"
7
- dependencies = ["boto3", "pypgstac[psycopg]", "stac-pydantic>=3.2.0"]
7
+ dependencies = [
8
+ "boto3",
9
+ "pypgstac[psycopg]",
10
+ "stac-pydantic>=3.2.0,<4.0",
11
+ ]
8
12
 
9
13
  [build-system]
10
14
  requires = ["hatchling"]