@cogeotiff/core 6.1.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/build/__benchmark__/cog.read.benchmark.js +7 -4
- package/build/__test__/cog.image.test.js +26 -2
- package/build/cog.tiff.d.ts +2 -2
- package/build/cog.tiff.d.ts.map +1 -1
- package/build/cog.tiff.image.d.ts +16 -7
- package/build/cog.tiff.image.d.ts.map +1 -1
- package/build/cog.tiff.image.js +56 -33
- package/build/cog.tiff.js +19 -54
- package/build/read/tag/__test__/tag.test.js +1 -1
- package/build/read/tag/tiff.tag.base.d.ts.map +1 -1
- package/build/read/tag/tiff.tag.base.js +2 -2
- package/build/read/tag/tiff.tag.lazy.d.ts +1 -2
- package/build/read/tag/tiff.tag.lazy.d.ts.map +1 -1
- package/build/read/tag/tiff.tag.lazy.js +3 -3
- package/build/read/tag/tiff.tag.offset.d.ts +2 -3
- package/build/read/tag/tiff.tag.offset.d.ts.map +1 -1
- package/build/read/tag/tiff.tag.offset.js +5 -5
- package/build/read/tag/tiff.tag.static.js +1 -1
- package/build/read/tiff.gdal.d.ts +6 -19
- package/build/read/tiff.gdal.d.ts.map +1 -1
- package/build/read/tiff.gdal.js +32 -53
- package/package.json +5 -6
- package/src/__benchmark__/cog.read.benchmark.ts +6 -3
- package/src/__test__/cog.image.test.ts +29 -1
- package/src/cog.tiff.image.ts +59 -37
- package/src/cog.tiff.ts +17 -68
- package/src/read/tag/__test__/tag.test.ts +1 -1
- package/src/read/tag/tiff.tag.base.ts +1 -2
- package/src/read/tag/tiff.tag.lazy.ts +2 -3
- package/src/read/tag/tiff.tag.offset.ts +4 -5
- package/src/read/tag/tiff.tag.static.ts +1 -1
- package/src/read/tiff.gdal.ts +31 -58
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,51 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [7.1.0](https://github.com/blacha/cogeotiff/compare/v7.0.0...v7.1.0) (2022-06-22)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **core:** load the ghost header bytes if requested ([b1f0116](https://github.com/blacha/cogeotiff/commit/b1f01164da1ad7deed7c3754e0106ccfea773338))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* **core:** add hasTile function to determine if a tile exists in a sparse tiff ([e56a67c](https://github.com/blacha/cogeotiff/commit/e56a67cc078945c5d96ddd3e6aefbf2d773359a4))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Performance Improvements
|
|
20
|
+
|
|
21
|
+
* **core:** improve parsing of ghost options ([ffa7928](https://github.com/blacha/cogeotiff/commit/ffa79283a61efd6f9999bd43d222faa24cd5ced7))
|
|
22
|
+
* greatly increase the amount of tiles being read so nodejs startup time affects the timing less ([3e9c0f3](https://github.com/blacha/cogeotiff/commit/3e9c0f305584d95fd79e1fe094477f3589b235c6))
|
|
23
|
+
* **core:** improve lookup speed of ghost options ([7c5f37e](https://github.com/blacha/cogeotiff/commit/7c5f37e114a77a772ca588e62b6d22712d05b2bc))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# [7.0.0](https://github.com/blacha/cogeotiff/compare/v6.1.1...v7.0.0) (2022-03-17)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Features
|
|
33
|
+
|
|
34
|
+
* **core:** upgrade chunkd and remove logger for internal fetches ([#832](https://github.com/blacha/cogeotiff/issues/832)) ([71bd740](https://github.com/blacha/cogeotiff/commit/71bd7409706e4a82e6a29b2a3fc0e8b25221e9fc))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## [6.1.1](https://github.com/blacha/cogeotiff/compare/v6.1.0...v6.1.1) (2022-01-26)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Bug Fixes
|
|
44
|
+
|
|
45
|
+
* **core:** tag data count should be a uint32 for tiff not uint16 ([5e0f66c](https://github.com/blacha/cogeotiff/commit/5e0f66c213db265d83d976424b6a443be6afbe73))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
6
51
|
# [6.1.0](https://github.com/blacha/cogeotiff/compare/v6.0.2...v6.1.0) (2021-09-30)
|
|
7
52
|
|
|
8
53
|
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { SourceMemory } from '@chunkd/core';
|
|
2
|
+
import { readFile } from 'fs/promises';
|
|
1
3
|
import { CogTiff } from '../cog.tiff.js';
|
|
2
|
-
import { SourceFile } from '@chunkd/source-file';
|
|
3
4
|
/** Read a tile from every image inside of a tiff 300 tiles read */
|
|
4
5
|
async function main() {
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
const buf = await readFile(process.argv[process.argv.length - 1]);
|
|
7
|
+
const source = new SourceMemory('buf', buf);
|
|
8
|
+
for (let i = 0; i < 5000; i++) {
|
|
9
|
+
const tiff = new CogTiff(source);
|
|
7
10
|
await tiff.init();
|
|
8
11
|
// 6 images
|
|
9
12
|
for (const img of tiff.images)
|
|
@@ -12,4 +15,4 @@ async function main() {
|
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
17
|
main();
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nLnJlYWQuYmVuY2htYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fYmVuY2htYXJrX18vY29nLnJlYWQuYmVuY2htYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsbUVBQW1FO0FBQ25FLEtBQUssVUFBVSxJQUFJO0lBQ2YsTUFBTSxHQUFHLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWxCLFdBQVc7UUFDWCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztLQUN0QjtBQUNMLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvdXJjZU1lbW9yeSB9IGZyb20gJ0BjaHVua2QvY29yZSc7XG5pbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gJ2ZzL3Byb21pc2VzJztcbmltcG9ydCB7IENvZ1RpZmYgfSBmcm9tICcuLi9jb2cudGlmZi5qcyc7XG5cbi8qKiBSZWFkIGEgdGlsZSBmcm9tIGV2ZXJ5IGltYWdlIGluc2lkZSBvZiBhIHRpZmYgMzAwIHRpbGVzIHJlYWQgKi9cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYnVmID0gYXdhaXQgcmVhZEZpbGUocHJvY2Vzcy5hcmd2W3Byb2Nlc3MuYXJndi5sZW5ndGggLSAxXSk7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFNvdXJjZU1lbW9yeSgnYnVmJywgYnVmKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDVfMDAwOyBpKyspIHtcbiAgICAgICAgY29uc3QgdGlmZiA9IG5ldyBDb2dUaWZmKHNvdXJjZSk7XG4gICAgICAgIGF3YWl0IHRpZmYuaW5pdCgpO1xuXG4gICAgICAgIC8vIDYgaW1hZ2VzXG4gICAgICAgIGZvciAoY29uc3QgaW1nIG9mIHRpZmYuaW1hZ2VzKSBhd2FpdCBpbWcuZ2V0VGlsZSgwLCAwKTtcbiAgICAgICAgYXdhaXQgdGlmZi5jbG9zZSgpO1xuICAgIH1cbn1cblxubWFpbigpO1xuIl19
|
|
@@ -5,7 +5,7 @@ import 'source-map-support/register.js';
|
|
|
5
5
|
import { TestFileChunkSource } from '@chunkd/core/build/__test__/chunk.source.fake.js';
|
|
6
6
|
import { CogTiff } from '../cog.tiff.js';
|
|
7
7
|
import { TiffMimeType } from '../const/index.js';
|
|
8
|
-
import { SourceMemory } from '@chunkd/core';
|
|
8
|
+
import { ByteSize, SourceMemory } from '@chunkd/core';
|
|
9
9
|
import { fileURLToPath } from 'url';
|
|
10
10
|
const __dirname = fileURLToPath(import.meta.url);
|
|
11
11
|
// 900913 properties.
|
|
@@ -60,6 +60,14 @@ o.spec('CogTiled', () => {
|
|
|
60
60
|
o(firstImage.stripCount).equals(0);
|
|
61
61
|
o(firstImage.isTiled()).equals(true);
|
|
62
62
|
});
|
|
63
|
+
o('should hasTile for every tile', async () => {
|
|
64
|
+
const [firstImage] = cog.images;
|
|
65
|
+
for (let x = 0; x < firstImage.tileCount.x; x++) {
|
|
66
|
+
for (let y = 0; y < firstImage.tileCount.y; y++) {
|
|
67
|
+
o(await firstImage.hasTile(x, y)).equals(true);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
});
|
|
63
71
|
});
|
|
64
72
|
o.spec('Cog.Big', () => {
|
|
65
73
|
o('should support reading from memory', async () => {
|
|
@@ -108,6 +116,8 @@ o.spec('Cog.Sparse', () => {
|
|
|
108
116
|
o(tileCount).deepEquals({ x: 2, y: 2 });
|
|
109
117
|
for (let x = 0; x < tileCount.x; x++) {
|
|
110
118
|
for (let y = 0; y < tileCount.y; y++) {
|
|
119
|
+
const hasTile = await img.hasTile(x, y);
|
|
120
|
+
o(hasTile).equals(false);
|
|
111
121
|
const tileXy = await img.getTile(x, y);
|
|
112
122
|
const tileXyz = await cog.getTile(x, y, z);
|
|
113
123
|
o(tileXy).equals(null)(`Tile x:${x} y:${y} should be empty`);
|
|
@@ -115,6 +125,20 @@ o.spec('Cog.Sparse', () => {
|
|
|
115
125
|
}
|
|
116
126
|
}
|
|
117
127
|
});
|
|
128
|
+
o('should have ghost options', () => {
|
|
129
|
+
o(cog.options.options.size).equals(6);
|
|
130
|
+
o(cog.options.tileLeaderByteSize).equals(ByteSize.UInt32);
|
|
131
|
+
o(cog.options.isCogOptimized).equals(true);
|
|
132
|
+
const entries = [...cog.options.options.entries()];
|
|
133
|
+
o(entries).deepEquals([
|
|
134
|
+
['GDAL_STRUCTURAL_METADATA_SIZE', '000140 bytes'],
|
|
135
|
+
['LAYOUT', 'IFDS_BEFORE_DATA'],
|
|
136
|
+
['BLOCK_ORDER', 'ROW_MAJOR'],
|
|
137
|
+
['BLOCK_LEADER', 'SIZE_AS_UINT4'],
|
|
138
|
+
['BLOCK_TRAILER', 'LAST_4_BYTES_REPEATED'],
|
|
139
|
+
['KNOWN_INCOMPATIBLE_EDITION', 'NO'],
|
|
140
|
+
]);
|
|
141
|
+
});
|
|
118
142
|
});
|
|
119
143
|
o.spec('CogStrip', () => {
|
|
120
144
|
const cogSourceFile = new TestFileChunkSource(path.join(__dirname, '../../../data/rgba8_strip.tiff'));
|
|
@@ -152,4 +176,4 @@ o.spec('CogStrip', () => {
|
|
|
152
176
|
o(stripB === null || stripB === void 0 ? void 0 : stripB.bytes.byteLength).equals(152);
|
|
153
177
|
});
|
|
154
178
|
});
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nLmltYWdlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0X18vY29nLmltYWdlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDO0FBQ3RCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBDLE9BQU8sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFcEMsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakQscUJBQXFCO0FBQ3JCLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUNwQixNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBRWxELFNBQVMsYUFBYSxDQUFDLElBQVk7SUFDL0IsT0FBTyxpQkFBaUIsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ3pDLENBQUM7QUFFRCxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7SUFDcEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUM7SUFDdEcsTUFB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QU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLE1BQU0sTUFBTSxHQUFHLE1BQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbyBmcm9tICdvc3BlYyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5cbmltcG9ydCAnc291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyLmpzJztcblxuaW1wb3J0IHsgVGVzdEZpbGVDaHVua1NvdXJjZSB9IGZyb20gJ0BjaHVua2QvY29yZS9idWlsZC9fX3Rlc3RfXy9jaHVuay5zb3VyY2UuZmFrZS5qcyc7XG5pbXBvcnQgeyBDb2dUaWZmIH0gZnJvbSAnLi4vY29nLnRpZmYuanMnO1xuaW1wb3J0IHsgVGlmZk1pbWVUeXBlIH0gZnJvbSAnLi4vY29uc3QvaW5kZXguanMnO1xuaW1wb3J0IHsgU291cmNlTWVtb3J5IH0gZnJvbSAnQGNodW5rZC9jb3JlJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICd1cmwnO1xuXG5jb25zdCBfX2Rpcm5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCk7XG4vLyA5MDA5MTMgcHJvcGVydGllcy5cbmNvbnN0IEEgPSA2Mzc4MTM3LjA7XG5jb25zdCBJbml0aWFsUmVzb2x1dGlvbiA9ICgyICogTWF0aC5QSSAqIEEpIC8gMjU2O1xuXG5mdW5jdGlvbiBnZXRSZXNvbHV0aW9uKHpvb206IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIEluaXRpYWxSZXNvbHV0aW9uIC8gMiAqKiB6b29tO1xufVxuXG5vLnNwZWMoJ0NvZ1RpbGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGNvZ1NvdXJjZUZpbGUgPSBuZXcgVGVzdEZpbGVDaHVua1NvdXJjZShwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vZGF0YS9yZ2JhOF90aWxlZC50aWZmJykpO1xuICAgIGNvbnN0IGNvZyA9IG5ldyBDb2dUaWZmKGNvZ1NvdXJjZUZpbGUpO1xuXG4gICAgby5iZWZvcmVFYWNoKCgpID0+IGNvZy5pbml0KCkpO1xuXG4gICAgbygnc2hvdWxkIG1hdGNoIHJlc29sdXRpb25zIHRvIHdlYiBtZXJjYXRvciB6b29tIGxldmVscycsICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNDsgaSsrKSB7XG4gICAgICAgICAgICBvKGNvZy5nZXRJbWFnZUJ5UmVzb2x1dGlvbihnZXRSZXNvbHV0aW9uKGkpKS5pZCkuZXF1YWxzKDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbyhjb2cuZ2V0SW1hZ2VCeVJlc29sdXRpb24oZ2V0UmVzb2x1dGlvbigxNCkpLmlkKS5lcXVhbHMoMyk7XG4gICAgICAgIG8oY29nLmdldEltYWdlQnlSZXNvbHV0aW9uKGdldFJlc29sdXRpb24oMTUpKS5pZCkuZXF1YWxzKDIpO1xuICAgICAgICBvKGNvZy5nZXRJbWFnZUJ5UmVzb2x1dGlvbihnZXRSZXNvbHV0aW9uKDE2KSkuaWQpLmVxdWFscygxKTtcbiAgICAgICAgbyhjb2cuZ2V0SW1hZ2VCeVJlc29sdXRpb24oZ2V0UmVzb2x1dGlvbigxNykpLmlkKS5lcXVhbHMoMCk7XG4gICAgICAgIG8oY29nLmdldEltYWdlQnlSZXNvbHV0aW9uKGdldFJlc29sdXRpb24oMTgpKS5pZCkuZXF1YWxzKDApO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAxOTsgaSA8IDMyOyBpKyspIHtcbiAgICAgICAgICAgIG8oY29nLmdldEltYWdlQnlSZXNvbHV0aW9uKGdldFJlc29sdXRpb24oaSkpLmlkKS5lcXVhbHMoMCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIG8oJ3Nob3VsZCBnZXQgb3JpZ2luIGZyb20gYWxsIGltYWdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZU9yaWdpbiA9IGNvZy5pbWFnZXNbMF0ub3JpZ2luO1xuICAgICAgICBmb3IgKGNvbnN0IGltZyBvZiBjb2cuaW1hZ2VzKSB7XG4gICAgICAgICAgICBvKGltZy5vcmlnaW4pLmRlZXBFcXVhbHMoYmFzZU9yaWdpbik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIG8oJ3Nob3VsZCBnZXQgYm91bmRpbmcgYm94IGZyb20gYWxsIGltYWdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZU9yaWdpbiA9IGNvZy5pbWFnZXNbMF0uYmJveDtcbiAgICAgICAgZm9yIChjb25zdCBpbWcgb2YgY29nLmltYWdlcykge1xuICAgICAgICAgICAgbyhpbWcuYmJveCkuZGVlcEVxdWFscyhiYXNlT3JpZ2luKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIGJlIGdlb2xvY2F0ZWQnLCAoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaW1nIG9mIGNvZy5pbWFnZXMpIG8oaW1nLmlzR2VvTG9jYXRlZCkuZXF1YWxzKHRydWUpO1xuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIHNjYWxlIGltYWdlIHJlc29sdXRpb24gZm9yIGFsbCBpbWFnZXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IFtyZXNYLCByZXNZLCByZXNaXSA9IGNvZy5pbWFnZXNbMF0ucmVzb2x1dGlvbjtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2cuaW1hZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbWcgPSBjb2cuaW1hZ2VzW2ldO1xuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSAyICoqIGk7IC8vIFRoaXMgdGlmZiBpcyBzY2FsZWQgYXQgYSBmYWN0b3Igb2YgdHdvIHBlciB6b29tIGxldmVsXG4gICAgICAgICAgICBvKGltZy5yZXNvbHV0aW9uKS5kZWVwRXF1YWxzKFtyZXNYICogc2NhbGUsIHJlc1kgKiBzY2FsZSwgcmVzWl0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBvKCdzaG91bGQgaGF2ZSB0aWxlIGluZm9ybWF0aW9uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBbZmlyc3RJbWFnZV0gPSBjb2cuaW1hZ2VzO1xuICAgICAgICBvKGZpcnN0SW1hZ2Uuc3RyaXBDb3VudCkuZXF1YWxzKDApO1xuICAgICAgICBvKGZpcnN0SW1hZ2UuaXNUaWxlZCgpKS5lcXVhbHModHJ1ZSk7XG4gICAgfSk7XG59KTtcblxuby5zcGVjKCdDb2cuQmlnJywgKCkgPT4ge1xuICAgIG8oJ3Nob3VsZCBzdXBwb3J0IHJlYWRpbmcgZnJvbSBtZW1vcnknLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZ1bGxTb3VyY2UgPSBuZXcgVGVzdEZpbGVDaHVua1NvdXJjZShwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vZGF0YS9zcGFyc2UudGlmZicpKTtcbiAgICAgICAgZnVsbFNvdXJjZS5jaHVua1NpemUgPSAyNzkwMjtcbiAgICAgICAgYXdhaXQgZnVsbFNvdXJjZS5sb2FkQnl0ZXMoMCwgMjc5MDIpO1xuICAgICAgICBjb25zdCBjb2cgPSBuZXcgQ29nVGlmZihmdWxsU291cmNlKTtcbiAgICAgICAgYXdhaXQgY29nLmluaXQoKTtcblxuICAgICAgICBvKGZ1bGxTb3VyY2UuY2h1bmtTaXplKS5lcXVhbHMoMjc5MDIpO1xuICAgICAgICBvKGZ1bGxTb3VyY2UuY2h1bmtzLnNpemUpLmVxdWFscygxKTtcbiAgICAgICAgY29uc3QgW2ZpcnN0SW1hZ2VdID0gY29nLmltYWdlcztcbiAgICAgICAgbyhmaXJzdEltYWdlLnN0cmlwQ291bnQpLmVxdWFscygwKTtcbiAgICAgICAgbyhmaXJzdEltYWdlLmlzVGlsZWQoKSkuZXF1YWxzKHRydWUpO1xuXG4gICAgICAgIGNvbnN0IGltZyA9IGNvZy5nZXRJbWFnZSg0KTtcbiAgICAgICAgbyhpbWcudGlsZUNvdW50KS5kZWVwRXF1YWxzKHsgeDogMiwgeTogMiB9KTtcbiAgICB9KTtcblxuICAgIG8oJ3Nob3VsZCByZWFkIHVzaW5nIGEgbWVtb3J5IHNvdXJjZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgYnl0ZXMgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vZGF0YS9zcGFyc2UudGlmZicpKTtcbiAgICAgICAgY29uc3Qgc291cmNlID0gbmV3IFNvdXJjZU1lbW9yeSgnU3BhcnNlLnRpZmYnLCBieXRlcy5idWZmZXIpO1xuICAgICAgICBjb25zdCBjb2cgPSBuZXcgQ29nVGlmZihzb3VyY2UpO1xuICAgICAgICBhd2FpdCBjb2cuaW5pdCgpO1xuXG4gICAgICAgIG8oc291cmNlLmNodW5rU2l6ZSkuZXF1YWxzKDI3OTAyKTtcbiAgICAgICAgbyhzb3VyY2UuY2h1bmtzLnNpemUpLmVxdWFscygxKTtcbiAgICAgICAgY29uc3QgW2ZpcnN0SW1hZ2VdID0gY29nLmltYWdlcztcbiAgICAgICAgbyhmaXJzdEltYWdlLnN0cmlwQ291bnQpLmVxdWFscygwKTtcbiAgICAgICAgbyhmaXJzdEltYWdlLmlzVGlsZWQoKSkuZXF1YWxzKHRydWUpO1xuXG4gICAgICAgIGNvbnN0IGltZyA9IGNvZy5nZXRJbWFnZSg0KTtcbiAgICAgICAgbyhpbWcudGlsZUNvdW50KS5kZWVwRXF1YWxzKHsgeDogMiwgeTogMiB9KTtcbiAgICB9KTtcbn0pO1xuXG5vLnNwZWMoJ0NvZy5TcGFyc2UnLCAoKSA9PiB7XG4gICAgY29uc3QgY29nU291cmNlRmlsZSA9IG5ldyBUZXN0RmlsZUNodW5rU291cmNlKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi8uLi9kYXRhL3NwYXJzZS50aWZmJykpO1xuICAgIGNvbnN0IGNvZyA9IG5ldyBDb2dUaWZmKGNvZ1NvdXJjZUZpbGUpO1xuICAgIG8uYmVmb3JlRWFjaCgoKSA9PiBjb2cuaW5pdCh0cnVlKSk7XG5cbiAgICBvKCdzaG91bGQgcmVhZCBtZXRhZGF0YScsICgpID0+IHtcbiAgICAgICAgbyhjb2cuZ2V0SW1hZ2UoMCkuZXBzZykuZXF1YWxzKDIxOTMpO1xuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIGJlIGdlb2xvY2F0ZWQnLCAoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaW1nIG9mIGNvZy5pbWFnZXMpIG8oaW1nLmlzR2VvTG9jYXRlZCkuZXF1YWxzKHRydWUpO1xuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIHN1cHBvcnQgc3BhcnNlIGNvZ3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHogPSA0O1xuICAgICAgICBjb25zdCBpbWcgPSBjb2cuZ2V0SW1hZ2Uoeik7XG5cbiAgICAgICAgY29uc3QgeyB0aWxlQ291bnQgfSA9IGltZztcbiAgICAgICAgbyh0aWxlQ291bnQpLmRlZXBFcXVhbHMoeyB4OiAyLCB5OiAyIH0pO1xuXG4gICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgdGlsZUNvdW50Lng7IHgrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgeSA9IDA7IHkgPCB0aWxlQ291bnQueTsgeSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGlsZVh5ID0gYXdhaXQgaW1nLmdldFRpbGUoeCwgeSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGlsZVh5eiA9IGF3YWl0IGNvZy5nZXRUaWxlKHgsIHksIHopO1xuICAgICAgICAgICAgICAgIG8odGlsZVh5KS5lcXVhbHMobnVsbCkoYFRpbGUgeDoke3h9IHk6JHt5fSBzaG91bGQgYmUgZW1wdHlgKTtcbiAgICAgICAgICAgICAgICBvKHRpbGVYeXopLmVxdWFscyhudWxsKShgVGlsZSB4OiR7eH0geToke3l9IHo6ICR7en0gc2hvdWxkIGJlIGVtcHR5YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuXG5vLnNwZWMoJ0NvZ1N0cmlwJywgKCkgPT4ge1xuICAgIGNvbnN0IGNvZ1NvdXJjZUZpbGUgPSBuZXcgVGVzdEZpbGVDaHVua1NvdXJjZShwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vZGF0YS9yZ2JhOF9zdHJpcC50aWZmJykpO1xuICAgIGNvbnN0IGNvZyA9IG5ldyBDb2dUaWZmKGNvZ1NvdXJjZUZpbGUpO1xuXG4gICAgby5iZWZvcmVFYWNoKCgpID0+IGNvZy5pbml0KCkpO1xuXG4gICAgbygnc2hvdWxkIGdldCBvcmlnaW4gZnJvbSBhbGwgaW1hZ2VzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBiYXNlT3JpZ2luID0gY29nLmltYWdlc1swXS5vcmlnaW47XG4gICAgICAgIGZvciAoY29uc3QgaW1nIG9mIGNvZy5pbWFnZXMpIHtcbiAgICAgICAgICAgIG8oaW1nLm9yaWdpbikuZGVlcEVxdWFscyhiYXNlT3JpZ2luKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIGdldCBib3VuZGluZyBib3ggZnJvbSBhbGwgaW1hZ2VzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBiYXNlT3JpZ2luID0gY29nLmltYWdlc1swXS5iYm94O1xuICAgICAgICBmb3IgKGNvbnN0IGltZyBvZiBjb2cuaW1hZ2VzKSB7XG4gICAgICAgICAgICBvKGltZy5iYm94KS5kZWVwRXF1YWxzKGJhc2VPcmlnaW4pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBvKCdzaG91bGQgc2NhbGUgaW1hZ2UgcmVzb2x1dGlvbiBmb3IgYWxsIGltYWdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgW3Jlc1gsIHJlc1ksIHJlc1pdID0gY29nLmltYWdlc1swXS5yZXNvbHV0aW9uO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvZy5pbWFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGltZyA9IGNvZy5pbWFnZXNbaV07XG4gICAgICAgICAgICBjb25zdCBzY2FsZSA9IDIgKiogaTsgLy8gVGhpcyB0aWZmIGlzIHNjYWxlZCBhdCBhIGZhY3RvciBvZiB0d28gcGVyIHpvb20gbGV2ZWxcbiAgICAgICAgICAgIG8oaW1nLnJlc29sdXRpb24pLmRlZXBFcXVhbHMoW3Jlc1ggKiBzY2FsZSwgcmVzWSAqIHNjYWxlLCByZXNaXSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIG8oJ3Nob3VsZCBoYXZlIHN0cmlwIGluZm9ybWF0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBbZmlyc3RJbWFnZV0gPSBjb2cuaW1hZ2VzO1xuICAgICAgICBvKGZpcnN0SW1hZ2UuaXNUaWxlZCgpKS5lcXVhbHMoZmFsc2UpO1xuICAgICAgICBvKGZpcnN0SW1hZ2Uuc3RyaXBDb3VudCkuZXF1YWxzKDIpO1xuXG4gICAgICAgIGNvbnN0IHN0cmlwQSA9IGF3YWl0IGZpcnN0SW1hZ2UuZ2V0U3RyaXAoMCk7XG4gICAgICAgIG8oc3RyaXBBPy5taW1lVHlwZSkuZXF1YWxzKFRpZmZNaW1lVHlwZS5XRUJQKTtcbiAgICAgICAgbyhzdHJpcEE/LmJ5dGVzLmJ5dGVMZW5ndGgpLmVxdWFscygxNTIpO1xuXG4gICAgICAgIGNvbnN0IHN0cmlwQiA9IGF3YWl0IGZpcnN0SW1hZ2UuZ2V0U3RyaXAoMSk7XG4gICAgICAgIG8oc3RyaXBCPy5taW1lVHlwZSkuZXF1YWxzKFRpZmZNaW1lVHlwZS5XRUJQKTtcbiAgICAgICAgbyhzdHJpcEI/LmJ5dGVzLmJ5dGVMZW5ndGgpLmVxdWFscygxNTIpO1xuICAgIH0pO1xufSk7XG4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29nLmltYWdlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0X18vY29nLmltYWdlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDO0FBQ3RCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRXBDLE9BQU8sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXBDLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pELHFCQUFxQjtBQUNyQixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUVsRCxTQUFTLGFBQWEsQ0FBQyxJQUFZO0lBQy9CLE9BQU8saUJBQWlCLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQztBQUN6QyxDQUFDO0FBRUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO0lBQ3BCLE1BQU0sYUFBYSxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXZDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFL0IsQ0FBQyxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtRQUMzRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RDtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsQ0FBQyxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtRQUN4QyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4QyxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILENBQUMsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDOUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQzFCLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxDQUFDLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO1FBQzNCLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU07WUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUMsQ0FBQztJQUVILENBQUMsQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDcEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHdEQUF3RDtZQUM5RSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxDQUFDLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1FBQ25DLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxDQUFDLENBQUMsK0JBQStCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDMUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0MsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEQ7U0FDSjtJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUM7QUFFSCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDbkIsQ0FBQyxDQUFDLG9DQUFvQyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO1FBQzlGLFVBQVUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzdCLE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxDQUFDLENBQUMsbUNBQW1DLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDOUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FBQztRQUNuRixNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpCLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUM7QUFFSCxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7SUFDdEIsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDLENBQUM7SUFDakcsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbkMsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtRQUMzQixDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxDQUFDLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO1FBQzNCLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU07WUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUMsQ0FBQztJQUVILENBQUMsQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDMUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDN0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3pFO1NBQ0o7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILENBQUMsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7UUFDaEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNDLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDbEIsQ0FBQywrQkFBK0IsRUFBRSxjQUFjLENBQUM7WUFDakQsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUM7WUFDOUIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDO1lBQzVCLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQztZQUNqQyxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQztZQUMxQyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQztTQUN2QyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDO0FBRUgsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO0lBQ3BCLE1BQU0sYUFBYSxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXZDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFL0IsQ0FBQyxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtRQUN4QyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4QyxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILENBQUMsQ0FBQyx5Q0FBeUMsRUFBRSxHQUFHLEVBQUU7UUFDOUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQzFCLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxDQUFDLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1FBQ25ELE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx3REFBd0Q7WUFDOUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNwRTtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsQ0FBQyxDQUFDLCtCQUErQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvIGZyb20gJ29zcGVjJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcblxuaW1wb3J0ICdzb3VyY2UtbWFwLXN1cHBvcnQvcmVnaXN0ZXIuanMnO1xuXG5pbXBvcnQgeyBUZXN0RmlsZUNodW5rU291cmNlIH0gZnJvbSAnQGNodW5rZC9jb3JlL2J1aWxkL19fdGVzdF9fL2NodW5rLnNvdXJjZS5mYWtlLmpzJztcbmltcG9ydCB7IENvZ1RpZmYgfSBmcm9tICcuLi9jb2cudGlmZi5qcyc7XG5pbXBvcnQgeyBUaWZmTWltZVR5cGUgfSBmcm9tICcuLi9jb25zdC9pbmRleC5qcyc7XG5pbXBvcnQgeyBCeXRlU2l6ZSwgU291cmNlTWVtb3J5IH0gZnJvbSAnQGNodW5rZC9jb3JlJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICd1cmwnO1xuXG5jb25zdCBfX2Rpcm5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCk7XG4vLyA5MDA5MTMgcHJvcGVydGllcy5cbmNvbnN0IEEgPSA2Mzc4MTM3LjA7XG5jb25zdCBJbml0aWFsUmVzb2x1dGlvbiA9ICgyICogTWF0aC5QSSAqIEEpIC8gMjU2O1xuXG5mdW5jdGlvbiBnZXRSZXNvbHV0aW9uKHpvb206IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIEluaXRpYWxSZXNvbHV0aW9uIC8gMiAqKiB6b29tO1xufVxuXG5vLnNwZWMoJ0NvZ1RpbGVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGNvZ1NvdXJjZUZpbGUgPSBuZXcgVGVzdEZpbGVDaHVua1NvdXJjZShwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vZGF0YS9yZ2JhOF90aWxlZC50aWZmJykpO1xuICAgIGNvbnN0IGNvZyA9IG5ldyBDb2dUaWZmKGNvZ1NvdXJjZUZpbGUpO1xuXG4gICAgby5iZWZvcmVFYWNoKCgpID0+IGNvZy5pbml0KCkpO1xuXG4gICAgbygnc2hvdWxkIG1hdGNoIHJlc29sdXRpb25zIHRvIHdlYiBtZXJjYXRvciB6b29tIGxldmVscycsICgpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNDsgaSsrKSB7XG4gICAgICAgICAgICBvKGNvZy5nZXRJbWFnZUJ5UmVzb2x1dGlvbihnZXRSZXNvbHV0aW9uKGkpKS5pZCkuZXF1YWxzKDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbyhjb2cuZ2V0SW1hZ2VCeVJlc29sdXRpb24oZ2V0UmVzb2x1dGlvbigxNCkpLmlkKS5lcXVhbHMoMyk7XG4gICAgICAgIG8oY29nLmdldEltYWdlQnlSZXNvbHV0aW9uKGdldFJlc29sdXRpb24oMTUpKS5pZCkuZXF1YWxzKDIpO1xuICAgICAgICBvKGNvZy5nZXRJbWFnZUJ5UmVzb2x1dGlvbihnZXRSZXNvbHV0aW9uKDE2KSkuaWQpLmVxdWFscygxKTtcbiAgICAgICAgbyhjb2cuZ2V0SW1hZ2VCeVJlc29sdXRpb24oZ2V0UmVzb2x1dGlvbigxNykpLmlkKS5lcXVhbHMoMCk7XG4gICAgICAgIG8oY29nLmdldEltYWdlQnlSZXNvbHV0aW9uKGdldFJlc29sdXRpb24oMTgpKS5pZCkuZXF1YWxzKDApO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAxOTsgaSA8IDMyOyBpKyspIHtcbiAgICAgICAgICAgIG8oY29nLmdldEltYWdlQnlSZXNvbHV0aW9uKGdldFJlc29sdXRpb24oaSkpLmlkKS5lcXVhbHMoMCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIG8oJ3Nob3VsZCBnZXQgb3JpZ2luIGZyb20gYWxsIGltYWdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZU9yaWdpbiA9IGNvZy5pbWFnZXNbMF0ub3JpZ2luO1xuICAgICAgICBmb3IgKGNvbnN0IGltZyBvZiBjb2cuaW1hZ2VzKSB7XG4gICAgICAgICAgICBvKGltZy5vcmlnaW4pLmRlZXBFcXVhbHMoYmFzZU9yaWdpbik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIG8oJ3Nob3VsZCBnZXQgYm91bmRpbmcgYm94IGZyb20gYWxsIGltYWdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZU9yaWdpbiA9IGNvZy5pbWFnZXNbMF0uYmJveDtcbiAgICAgICAgZm9yIChjb25zdCBpbWcgb2YgY29nLmltYWdlcykge1xuICAgICAgICAgICAgbyhpbWcuYmJveCkuZGVlcEVxdWFscyhiYXNlT3JpZ2luKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIGJlIGdlb2xvY2F0ZWQnLCAoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaW1nIG9mIGNvZy5pbWFnZXMpIG8oaW1nLmlzR2VvTG9jYXRlZCkuZXF1YWxzKHRydWUpO1xuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIHNjYWxlIGltYWdlIHJlc29sdXRpb24gZm9yIGFsbCBpbWFnZXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IFtyZXNYLCByZXNZLCByZXNaXSA9IGNvZy5pbWFnZXNbMF0ucmVzb2x1dGlvbjtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2cuaW1hZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbWcgPSBjb2cuaW1hZ2VzW2ldO1xuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSAyICoqIGk7IC8vIFRoaXMgdGlmZiBpcyBzY2FsZWQgYXQgYSBmYWN0b3Igb2YgdHdvIHBlciB6b29tIGxldmVsXG4gICAgICAgICAgICBvKGltZy5yZXNvbHV0aW9uKS5kZWVwRXF1YWxzKFtyZXNYICogc2NhbGUsIHJlc1kgKiBzY2FsZSwgcmVzWl0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBvKCdzaG91bGQgaGF2ZSB0aWxlIGluZm9ybWF0aW9uJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBbZmlyc3RJbWFnZV0gPSBjb2cuaW1hZ2VzO1xuICAgICAgICBvKGZpcnN0SW1hZ2Uuc3RyaXBDb3VudCkuZXF1YWxzKDApO1xuICAgICAgICBvKGZpcnN0SW1hZ2UuaXNUaWxlZCgpKS5lcXVhbHModHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBvKCdzaG91bGQgaGFzVGlsZSBmb3IgZXZlcnkgdGlsZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgW2ZpcnN0SW1hZ2VdID0gY29nLmltYWdlcztcblxuICAgICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IGZpcnN0SW1hZ2UudGlsZUNvdW50Lng7IHgrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgeSA9IDA7IHkgPCBmaXJzdEltYWdlLnRpbGVDb3VudC55OyB5KyspIHtcbiAgICAgICAgICAgICAgICBvKGF3YWl0IGZpcnN0SW1hZ2UuaGFzVGlsZSh4LCB5KSkuZXF1YWxzKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59KTtcblxuby5zcGVjKCdDb2cuQmlnJywgKCkgPT4ge1xuICAgIG8oJ3Nob3VsZCBzdXBwb3J0IHJlYWRpbmcgZnJvbSBtZW1vcnknLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZ1bGxTb3VyY2UgPSBuZXcgVGVzdEZpbGVDaHVua1NvdXJjZShwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vZGF0YS9zcGFyc2UudGlmZicpKTtcbiAgICAgICAgZnVsbFNvdXJjZS5jaHVua1NpemUgPSAyNzkwMjtcbiAgICAgICAgYXdhaXQgZnVsbFNvdXJjZS5sb2FkQnl0ZXMoMCwgMjc5MDIpO1xuICAgICAgICBjb25zdCBjb2cgPSBuZXcgQ29nVGlmZihmdWxsU291cmNlKTtcbiAgICAgICAgYXdhaXQgY29nLmluaXQoKTtcblxuICAgICAgICBvKGZ1bGxTb3VyY2UuY2h1bmtTaXplKS5lcXVhbHMoMjc5MDIpO1xuICAgICAgICBvKGZ1bGxTb3VyY2UuY2h1bmtzLnNpemUpLmVxdWFscygxKTtcbiAgICAgICAgY29uc3QgW2ZpcnN0SW1hZ2VdID0gY29nLmltYWdlcztcbiAgICAgICAgbyhmaXJzdEltYWdlLnN0cmlwQ291bnQpLmVxdWFscygwKTtcbiAgICAgICAgbyhmaXJzdEltYWdlLmlzVGlsZWQoKSkuZXF1YWxzKHRydWUpO1xuXG4gICAgICAgIGNvbnN0IGltZyA9IGNvZy5nZXRJbWFnZSg0KTtcbiAgICAgICAgbyhpbWcudGlsZUNvdW50KS5kZWVwRXF1YWxzKHsgeDogMiwgeTogMiB9KTtcbiAgICB9KTtcblxuICAgIG8oJ3Nob3VsZCByZWFkIHVzaW5nIGEgbWVtb3J5IHNvdXJjZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgYnl0ZXMgPSBhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vLi4vLi4vZGF0YS9zcGFyc2UudGlmZicpKTtcbiAgICAgICAgY29uc3Qgc291cmNlID0gbmV3IFNvdXJjZU1lbW9yeSgnU3BhcnNlLnRpZmYnLCBieXRlcy5idWZmZXIpO1xuICAgICAgICBjb25zdCBjb2cgPSBuZXcgQ29nVGlmZihzb3VyY2UpO1xuICAgICAgICBhd2FpdCBjb2cuaW5pdCgpO1xuXG4gICAgICAgIG8oc291cmNlLmNodW5rU2l6ZSkuZXF1YWxzKDI3OTAyKTtcbiAgICAgICAgbyhzb3VyY2UuY2h1bmtzLnNpemUpLmVxdWFscygxKTtcbiAgICAgICAgY29uc3QgW2ZpcnN0SW1hZ2VdID0gY29nLmltYWdlcztcbiAgICAgICAgbyhmaXJzdEltYWdlLnN0cmlwQ291bnQpLmVxdWFscygwKTtcbiAgICAgICAgbyhmaXJzdEltYWdlLmlzVGlsZWQoKSkuZXF1YWxzKHRydWUpO1xuXG4gICAgICAgIGNvbnN0IGltZyA9IGNvZy5nZXRJbWFnZSg0KTtcbiAgICAgICAgbyhpbWcudGlsZUNvdW50KS5kZWVwRXF1YWxzKHsgeDogMiwgeTogMiB9KTtcbiAgICB9KTtcbn0pO1xuXG5vLnNwZWMoJ0NvZy5TcGFyc2UnLCAoKSA9PiB7XG4gICAgY29uc3QgY29nU291cmNlRmlsZSA9IG5ldyBUZXN0RmlsZUNodW5rU291cmNlKHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi8uLi8uLi9kYXRhL3NwYXJzZS50aWZmJykpO1xuICAgIGNvbnN0IGNvZyA9IG5ldyBDb2dUaWZmKGNvZ1NvdXJjZUZpbGUpO1xuICAgIG8uYmVmb3JlRWFjaCgoKSA9PiBjb2cuaW5pdCh0cnVlKSk7XG5cbiAgICBvKCdzaG91bGQgcmVhZCBtZXRhZGF0YScsICgpID0+IHtcbiAgICAgICAgbyhjb2cuZ2V0SW1hZ2UoMCkuZXBzZykuZXF1YWxzKDIxOTMpO1xuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIGJlIGdlb2xvY2F0ZWQnLCAoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaW1nIG9mIGNvZy5pbWFnZXMpIG8oaW1nLmlzR2VvTG9jYXRlZCkuZXF1YWxzKHRydWUpO1xuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIHN1cHBvcnQgc3BhcnNlIGNvZ3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHogPSA0O1xuICAgICAgICBjb25zdCBpbWcgPSBjb2cuZ2V0SW1hZ2Uoeik7XG5cbiAgICAgICAgY29uc3QgeyB0aWxlQ291bnQgfSA9IGltZztcbiAgICAgICAgbyh0aWxlQ291bnQpLmRlZXBFcXVhbHMoeyB4OiAyLCB5OiAyIH0pO1xuXG4gICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgdGlsZUNvdW50Lng7IHgrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgeSA9IDA7IHkgPCB0aWxlQ291bnQueTsgeSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFzVGlsZSA9IGF3YWl0IGltZy5oYXNUaWxlKHgsIHkpO1xuICAgICAgICAgICAgICAgIG8oaGFzVGlsZSkuZXF1YWxzKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aWxlWHkgPSBhd2FpdCBpbWcuZ2V0VGlsZSh4LCB5KTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aWxlWHl6ID0gYXdhaXQgY29nLmdldFRpbGUoeCwgeSwgeik7XG4gICAgICAgICAgICAgICAgbyh0aWxlWHkpLmVxdWFscyhudWxsKShgVGlsZSB4OiR7eH0geToke3l9IHNob3VsZCBiZSBlbXB0eWApO1xuICAgICAgICAgICAgICAgIG8odGlsZVh5eikuZXF1YWxzKG51bGwpKGBUaWxlIHg6JHt4fSB5OiR7eX0gejogJHt6fSBzaG91bGQgYmUgZW1wdHlgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIGhhdmUgZ2hvc3Qgb3B0aW9ucycsICgpID0+IHtcbiAgICAgICAgbyhjb2cub3B0aW9ucy5vcHRpb25zLnNpemUpLmVxdWFscyg2KTtcbiAgICAgICAgbyhjb2cub3B0aW9ucy50aWxlTGVhZGVyQnl0ZVNpemUpLmVxdWFscyhCeXRlU2l6ZS5VSW50MzIpO1xuICAgICAgICBvKGNvZy5vcHRpb25zLmlzQ29nT3B0aW1pemVkKS5lcXVhbHModHJ1ZSk7XG5cbiAgICAgICAgY29uc3QgZW50cmllcyA9IFsuLi5jb2cub3B0aW9ucy5vcHRpb25zLmVudHJpZXMoKV07XG4gICAgICAgIG8oZW50cmllcykuZGVlcEVxdWFscyhbXG4gICAgICAgICAgICBbJ0dEQUxfU1RSVUNUVVJBTF9NRVRBREFUQV9TSVpFJywgJzAwMDE0MCBieXRlcyddLFxuICAgICAgICAgICAgWydMQVlPVVQnLCAnSUZEU19CRUZPUkVfREFUQSddLFxuICAgICAgICAgICAgWydCTE9DS19PUkRFUicsICdST1dfTUFKT1InXSxcbiAgICAgICAgICAgIFsnQkxPQ0tfTEVBREVSJywgJ1NJWkVfQVNfVUlOVDQnXSxcbiAgICAgICAgICAgIFsnQkxPQ0tfVFJBSUxFUicsICdMQVNUXzRfQllURVNfUkVQRUFURUQnXSxcbiAgICAgICAgICAgIFsnS05PV05fSU5DT01QQVRJQkxFX0VESVRJT04nLCAnTk8nXSxcbiAgICAgICAgXSk7XG4gICAgfSk7XG59KTtcblxuby5zcGVjKCdDb2dTdHJpcCcsICgpID0+IHtcbiAgICBjb25zdCBjb2dTb3VyY2VGaWxlID0gbmV3IFRlc3RGaWxlQ2h1bmtTb3VyY2UocGF0aC5qb2luKF9fZGlybmFtZSwgJy4uLy4uLy4uL2RhdGEvcmdiYThfc3RyaXAudGlmZicpKTtcbiAgICBjb25zdCBjb2cgPSBuZXcgQ29nVGlmZihjb2dTb3VyY2VGaWxlKTtcblxuICAgIG8uYmVmb3JlRWFjaCgoKSA9PiBjb2cuaW5pdCgpKTtcblxuICAgIG8oJ3Nob3VsZCBnZXQgb3JpZ2luIGZyb20gYWxsIGltYWdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZU9yaWdpbiA9IGNvZy5pbWFnZXNbMF0ub3JpZ2luO1xuICAgICAgICBmb3IgKGNvbnN0IGltZyBvZiBjb2cuaW1hZ2VzKSB7XG4gICAgICAgICAgICBvKGltZy5vcmlnaW4pLmRlZXBFcXVhbHMoYmFzZU9yaWdpbik7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIG8oJ3Nob3VsZCBnZXQgYm91bmRpbmcgYm94IGZyb20gYWxsIGltYWdlcycsICgpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZU9yaWdpbiA9IGNvZy5pbWFnZXNbMF0uYmJveDtcbiAgICAgICAgZm9yIChjb25zdCBpbWcgb2YgY29nLmltYWdlcykge1xuICAgICAgICAgICAgbyhpbWcuYmJveCkuZGVlcEVxdWFscyhiYXNlT3JpZ2luKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgbygnc2hvdWxkIHNjYWxlIGltYWdlIHJlc29sdXRpb24gZm9yIGFsbCBpbWFnZXMnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IFtyZXNYLCByZXNZLCByZXNaXSA9IGNvZy5pbWFnZXNbMF0ucmVzb2x1dGlvbjtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2cuaW1hZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBpbWcgPSBjb2cuaW1hZ2VzW2ldO1xuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSAyICoqIGk7IC8vIFRoaXMgdGlmZiBpcyBzY2FsZWQgYXQgYSBmYWN0b3Igb2YgdHdvIHBlciB6b29tIGxldmVsXG4gICAgICAgICAgICBvKGltZy5yZXNvbHV0aW9uKS5kZWVwRXF1YWxzKFtyZXNYICogc2NhbGUsIHJlc1kgKiBzY2FsZSwgcmVzWl0pO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBvKCdzaG91bGQgaGF2ZSBzdHJpcCBpbmZvcm1hdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgW2ZpcnN0SW1hZ2VdID0gY29nLmltYWdlcztcbiAgICAgICAgbyhmaXJzdEltYWdlLmlzVGlsZWQoKSkuZXF1YWxzKGZhbHNlKTtcbiAgICAgICAgbyhmaXJzdEltYWdlLnN0cmlwQ291bnQpLmVxdWFscygyKTtcblxuICAgICAgICBjb25zdCBzdHJpcEEgPSBhd2FpdCBmaXJzdEltYWdlLmdldFN0cmlwKDApO1xuICAgICAgICBvKHN0cmlwQT8ubWltZVR5cGUpLmVxdWFscyhUaWZmTWltZVR5cGUuV0VCUCk7XG4gICAgICAgIG8oc3RyaXBBPy5ieXRlcy5ieXRlTGVuZ3RoKS5lcXVhbHMoMTUyKTtcblxuICAgICAgICBjb25zdCBzdHJpcEIgPSBhd2FpdCBmaXJzdEltYWdlLmdldFN0cmlwKDEpO1xuICAgICAgICBvKHN0cmlwQj8ubWltZVR5cGUpLmVxdWFscyhUaWZmTWltZVR5cGUuV0VCUCk7XG4gICAgICAgIG8oc3RyaXBCPy5ieXRlcy5ieXRlTGVuZ3RoKS5lcXVhbHMoMTUyKTtcbiAgICB9KTtcbn0pO1xuIl19
|
package/build/cog.tiff.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChunkSource
|
|
1
|
+
import { ChunkSource } from '@chunkd/core';
|
|
2
2
|
import { CogTiffImage } from './cog.tiff.image.js';
|
|
3
3
|
import { TiffVersion } from './const/tiff.version.js';
|
|
4
4
|
import { CogTifGhostOptions } from './read/tiff.gdal.js';
|
|
@@ -21,7 +21,7 @@ export declare class CogTiff {
|
|
|
21
21
|
*
|
|
22
22
|
* @param loadGeoKeys Whether to also initialize the GeoKeyDirectory
|
|
23
23
|
*/
|
|
24
|
-
init(loadGeoKeys?: boolean
|
|
24
|
+
init(loadGeoKeys?: boolean): Promise<CogTiff>;
|
|
25
25
|
private doInit;
|
|
26
26
|
private fetchIfd;
|
|
27
27
|
getImage(z: number): CogTiffImage;
|
package/build/cog.tiff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cog.tiff.d.ts","sourceRoot":"","sources":["../src/cog.tiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"cog.tiff.d.ts","sourceRoot":"","sources":["../src/cog.tiff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAmC,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAK3F,qBAAa,OAAO;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,cAAoB;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAM;IAC5B,OAAO,qBAA4B;IAEnC,OAAO,CAAC,MAAM,CAAkB;IAChC,SAAS,EAAE,aAAa,CAAiB;gBAE7B,MAAM,EAAE,WAAW;IAK/B,sCAAsC;IACtC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD,6BAA6B;IAC7B,aAAa,UAAS;IAEtB,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC;;;;OAIG;IACH,IAAI,CAAC,WAAW,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;YAM7B,MAAM;YAWN,QAAQ;IA4BtB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY;IAIjC;;;;OAIG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAoBtD;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;YAQ7F,UAAU;YAOV,OAAO;IAsBrB,gDAAgD;IAC1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { LogType } from '@chunkd/core';
|
|
2
1
|
import { CogTiff } from './cog.tiff.js';
|
|
3
2
|
import { TiffMimeType } from './const/tiff.mime.js';
|
|
4
3
|
import { TiffTag, TiffTagGeo } from './const/tiff.tag.id.js';
|
|
@@ -41,7 +40,7 @@ export declare class CogTiffImage {
|
|
|
41
40
|
*
|
|
42
41
|
* @param loadGeoTags Whether to load the GeoKeyDirectory and unpack it
|
|
43
42
|
*/
|
|
44
|
-
init(loadGeoTags?: boolean
|
|
43
|
+
init(loadGeoTags?: boolean): Promise<void>;
|
|
45
44
|
/**
|
|
46
45
|
* Get the value of a TiffTag if it exists null otherwise
|
|
47
46
|
*/
|
|
@@ -49,7 +48,7 @@ export declare class CogTiffImage {
|
|
|
49
48
|
/**
|
|
50
49
|
* Load and unpack the GeoKeyDirectory
|
|
51
50
|
*/
|
|
52
|
-
loadGeoTiffTags(
|
|
51
|
+
loadGeoTiffTags(): Promise<void>;
|
|
53
52
|
/**
|
|
54
53
|
* Get the associated GeoTiffTags
|
|
55
54
|
*/
|
|
@@ -58,7 +57,7 @@ export declare class CogTiffImage {
|
|
|
58
57
|
* Load a tag, if it is not currently loaded, fetch the required data for the tag.
|
|
59
58
|
* @param tag tag to fetch
|
|
60
59
|
*/
|
|
61
|
-
fetch<T>(tag: TiffTag
|
|
60
|
+
fetch<T>(tag: TiffTag): Promise<T | null>;
|
|
62
61
|
/**
|
|
63
62
|
* Get the origin point for the image
|
|
64
63
|
*
|
|
@@ -137,7 +136,7 @@ export declare class CogTiffImage {
|
|
|
137
136
|
* @param index tile index
|
|
138
137
|
* @returns file offset of the specified tile
|
|
139
138
|
*/
|
|
140
|
-
protected getTileOffset(index: number
|
|
139
|
+
protected getTileOffset(index: number): Promise<number>;
|
|
141
140
|
getTileBounds(x: number, y: number): BoundingBox;
|
|
142
141
|
/**
|
|
143
142
|
* Read a strip into a uint8 array
|
|
@@ -160,11 +159,21 @@ export declare class CogTiffImage {
|
|
|
160
159
|
* @param x Tile x offset
|
|
161
160
|
* @param y Tile y offset
|
|
162
161
|
*/
|
|
163
|
-
getTile(x: number, y: number
|
|
162
|
+
getTile(x: number, y: number): Promise<{
|
|
164
163
|
mimeType: TiffMimeType;
|
|
165
164
|
bytes: Uint8Array;
|
|
166
165
|
} | null>;
|
|
167
|
-
|
|
166
|
+
/**
|
|
167
|
+
* Does this tile exist in the tiff and does it actually have a value
|
|
168
|
+
*
|
|
169
|
+
* Sparse tiffs can have a lot of empty tiles, this checks to see if the tile actually has data.
|
|
170
|
+
*
|
|
171
|
+
* @param x Tile x offset
|
|
172
|
+
* @param y Tile y offset
|
|
173
|
+
* @returns if the tile exists and has data
|
|
174
|
+
*/
|
|
175
|
+
hasTile(x: number, y: number): Promise<boolean>;
|
|
176
|
+
protected getTileSize(index: number): Promise<{
|
|
168
177
|
offset: number;
|
|
169
178
|
imageSize: number;
|
|
170
179
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cog.tiff.image.d.ts","sourceRoot":"","sources":["../src/cog.tiff.image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cog.tiff.image.d.ts","sourceRoot":"","sources":["../src/cog.tiff.image.ts"],"names":[],"mappings":"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"}
|