├── .vscode
└── settings.json
├── favicon
├── favicon.ico
├── favicon-16x16.png
├── favicon-32x32.png
├── apple-touch-icon.png
├── android-chrome-192x192.png
├── android-chrome-512x512.png
└── site.webmanifest
├── images
└── meta-image.jpg
├── README.md
├── styles.css.map
├── styles.scss
├── styles.css
├── script.js
├── index.html
└── jszip.min.js
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "liveServer.settings.port": 5501
3 | }
4 |
--------------------------------------------------------------------------------
/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/favicon.ico
--------------------------------------------------------------------------------
/images/meta-image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/images/meta-image.jpg
--------------------------------------------------------------------------------
/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/favicon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/favicon/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alexleybourne/chrome-extension-icon-generator/HEAD/favicon/android-chrome-512x512.png
--------------------------------------------------------------------------------
/favicon/site.webmanifest:
--------------------------------------------------------------------------------
1 | {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Chrome Extension Icon Generator
2 |
3 | 
4 | 
5 |
6 | Tool Link: [Chrome Extension Icon Generator](https://alexleybourne.github.io/chrome-extension-icon-generator/)
7 |
8 | This is a simple tool to generate icons for Chrome extensions. It takes any image above 128x128px and generates all the sizes needed for Chrome extensions.
9 |
10 | It will create a `16px`, `32px`, `48px` and a `128px` icon from the image you upload.
11 |
12 | It will then give you the code to add to your manifest.json file.
13 |
14 | ```
15 | "icons": {
16 | "16": "icon16.png",
17 | "32": "icon32.png",
18 | "48": "icon48.png",
19 | "128": "icon128.png"
20 | },
21 | ```
22 |
23 | Chrome docs for chrome extension manifest v3 icons: [Here](https://developer.chrome.com/docs/extensions/mv3/manifest/icons/)
24 |
25 | Icons from [Hero Icons](https://heroicons.com/)
26 |
--------------------------------------------------------------------------------
/styles.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "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",
4 | "sources": [
5 | "styles.scss"
6 | ],
7 | "names": [],
8 | "file": "styles.css"
9 | }
--------------------------------------------------------------------------------
/styles.scss:
--------------------------------------------------------------------------------
1 | .flex {
2 | display: flex;
3 | align-items: center;
4 | justify-content: center;
5 | }
6 |
7 | $blue: #1e90ff;
8 |
9 | .hidden {
10 | display: none;
11 | opacity: 0;
12 | pointer-events: none;
13 | position: absolute;
14 | }
15 |
16 | body {
17 | margin: 0;
18 | font-family: 'roboto', sans-serif;
19 | background-color: #222;
20 | color: #f0f0f0;
21 | @extend .flex;
22 | flex-direction: column;
23 | width: 100vw;
24 | min-height: 100vh;
25 | }
26 |
27 | .container {
28 | width: 90%;
29 | max-width: 90%;
30 | margin: 20px 0;
31 | padding-top: 2rem;
32 | flex-direction: column;
33 | @extend .flex;
34 |
35 | h1 {
36 | margin-bottom: 1rem;
37 | @extend .flex;
38 |
39 | img {
40 | margin-right: 8px;
41 | height: 36px;
42 | width: 36px;
43 | }
44 | }
45 |
46 | input[type='file'] {
47 | margin-bottom: 2rem;
48 | cursor: pointer;
49 | color: #f0f0f0;
50 | }
51 |
52 | .small {
53 | height: 100px !important;
54 | }
55 |
56 | .drag-area {
57 | display: flex;
58 | flex-direction: column;
59 | justify-content: center;
60 | align-items: center;
61 | max-width: 500px;
62 | width: 100%;
63 | height: 200px;
64 | border: 2px dashed $blue;
65 | border-radius: 5px;
66 | cursor: pointer;
67 | margin: 20px;
68 | transition-duration: 0.2s;
69 |
70 | h2 {
71 | @extend .flex;
72 | color: $blue;
73 | svg {
74 | margin-left: 4px;
75 | width: 22px;
76 | height: 22px;
77 | }
78 | }
79 |
80 | p {
81 | margin-top: 0;
82 | text-align: center;
83 | color: $blue;
84 | }
85 |
86 | &:active {
87 | transform: scale(0.94);
88 | }
89 |
90 | &:hover {
91 | border: 2px solid $blue;
92 | background-color: rgba(97, 175, 239, 0.3);
93 | }
94 | }
95 |
96 | .blue-button {
97 | margin-bottom: 10px;
98 | text-decoration: none;
99 | color: $blue;
100 | border: 1px solid $blue;
101 | padding: 0.5rem 1rem;
102 | border-radius: 4px;
103 | transition: background-color 0.3s, color 0.3s;
104 | background: none;
105 | cursor: pointer;
106 | width: 160px;
107 | text-align: center;
108 | font-size: 0.9em;
109 | @extend .flex;
110 |
111 | svg {
112 | height: 16px;
113 | width: 16px;
114 | margin-left: 4px;
115 | }
116 |
117 | &:hover {
118 | background-color: $blue;
119 | color: #f0f0f0;
120 | }
121 |
122 | &:active {
123 | transform: scale(0.94);
124 | }
125 | }
126 |
127 | #outputImages {
128 | display: flex;
129 | align-items: center;
130 | justify-content: center;
131 | flex-flow: wrap;
132 |
133 | div {
134 | width: 200px;
135 | height: 200px;
136 | margin: 20px 8px 40px 8px;
137 | @extend .flex;
138 | flex-direction: column;
139 |
140 | img {
141 | height: 100%;
142 | width: 100%;
143 | object-fit: scale-down;
144 | }
145 | }
146 | }
147 |
148 | #downloadAll {
149 | width: 194px;
150 | }
151 |
152 | #code-snippet {
153 | p {
154 | text-align: center;
155 | }
156 |
157 | margin-bottom: 20px;
158 |
159 | .code-snippet-container {
160 | margin-bottom: 10px;
161 | position: relative;
162 | background-color: #282c34;
163 | color: #abb2bf;
164 | border-radius: 4px;
165 | padding: 1rem;
166 | font-family: 'Courier New', monospace;
167 | overflow: auto;
168 |
169 | pre {
170 | margin: 0;
171 | padding: 20px 64px 2px 0px;
172 | }
173 |
174 | .copy-btn {
175 | display: flex;
176 | position: absolute;
177 | top: 5px;
178 | right: 5px;
179 | background: none;
180 | outline: 1px solid $blue;
181 | color: $blue;
182 | font-size: 12px;
183 | padding: 5px 10px;
184 | border: none;
185 | border-radius: 5px;
186 | cursor: pointer;
187 | transition-duration: 0.2s;
188 |
189 | &:active {
190 | transform: scale(0.94);
191 | }
192 |
193 | &:hover {
194 | background-color: $blue;
195 | color: #f0f0f0;
196 | }
197 |
198 | svg {
199 | height: 16px;
200 | width: 16px;
201 | margin-left: 4px;
202 | }
203 | }
204 | }
205 | }
206 | }
207 |
208 | footer {
209 | margin: 2rem;
210 | font-size: 0.8em;
211 | text-align: center;
212 | font-size: 14px;
213 |
214 | .github {
215 | @extend .flex;
216 |
217 | a {
218 | @extend .flex;
219 | }
220 | svg {
221 | margin-right: 4px;
222 | height: 16px;
223 | width: 16px;
224 | }
225 | }
226 |
227 | a {
228 | color: white;
229 | text-decoration: none;
230 | font-weight: bold;
231 | transition-duration: 0.2s;
232 |
233 | &:hover {
234 | text-decoration: underline;
235 | font-size: 16px;
236 | transition-duration: 0.2s;
237 | }
238 | }
239 | }
240 |
--------------------------------------------------------------------------------
/styles.css:
--------------------------------------------------------------------------------
1 | .flex, body, .container, .container h1, .container .drag-area h2, .container .blue-button, .container #outputImages div, footer .github, footer .github a {
2 | display: -webkit-box;
3 | display: -ms-flexbox;
4 | display: flex;
5 | -webkit-box-align: center;
6 | -ms-flex-align: center;
7 | align-items: center;
8 | -webkit-box-pack: center;
9 | -ms-flex-pack: center;
10 | justify-content: center;
11 | }
12 |
13 | .hidden {
14 | display: none;
15 | opacity: 0;
16 | pointer-events: none;
17 | position: absolute;
18 | }
19 |
20 | body {
21 | margin: 0;
22 | font-family: 'roboto', sans-serif;
23 | background-color: #222;
24 | color: #f0f0f0;
25 | -webkit-box-orient: vertical;
26 | -webkit-box-direction: normal;
27 | -ms-flex-direction: column;
28 | flex-direction: column;
29 | width: 100vw;
30 | min-height: 100vh;
31 | }
32 |
33 | .container {
34 | width: 90%;
35 | max-width: 90%;
36 | margin: 20px 0;
37 | padding-top: 2rem;
38 | -webkit-box-orient: vertical;
39 | -webkit-box-direction: normal;
40 | -ms-flex-direction: column;
41 | flex-direction: column;
42 | }
43 |
44 | .container h1 {
45 | margin-bottom: 1rem;
46 | }
47 |
48 | .container h1 img {
49 | margin-right: 8px;
50 | height: 36px;
51 | width: 36px;
52 | }
53 |
54 | .container input[type='file'] {
55 | margin-bottom: 2rem;
56 | cursor: pointer;
57 | color: #f0f0f0;
58 | }
59 |
60 | .container .small {
61 | height: 100px !important;
62 | }
63 |
64 | .container .drag-area {
65 | display: -webkit-box;
66 | display: -ms-flexbox;
67 | display: flex;
68 | -webkit-box-orient: vertical;
69 | -webkit-box-direction: normal;
70 | -ms-flex-direction: column;
71 | flex-direction: column;
72 | -webkit-box-pack: center;
73 | -ms-flex-pack: center;
74 | justify-content: center;
75 | -webkit-box-align: center;
76 | -ms-flex-align: center;
77 | align-items: center;
78 | max-width: 500px;
79 | width: 100%;
80 | height: 200px;
81 | border: 2px dashed #1e90ff;
82 | border-radius: 5px;
83 | cursor: pointer;
84 | margin: 20px;
85 | -webkit-transition-duration: 0.2s;
86 | transition-duration: 0.2s;
87 | }
88 |
89 | .container .drag-area h2 {
90 | color: #1e90ff;
91 | }
92 |
93 | .container .drag-area h2 svg {
94 | margin-left: 4px;
95 | width: 22px;
96 | height: 22px;
97 | }
98 |
99 | .container .drag-area p {
100 | margin-top: 0;
101 | text-align: center;
102 | color: #1e90ff;
103 | }
104 |
105 | .container .drag-area:active {
106 | -webkit-transform: scale(0.94);
107 | transform: scale(0.94);
108 | }
109 |
110 | .container .drag-area:hover {
111 | border: 2px solid #1e90ff;
112 | background-color: rgba(97, 175, 239, 0.3);
113 | }
114 |
115 | .container .blue-button {
116 | margin-bottom: 10px;
117 | text-decoration: none;
118 | color: #1e90ff;
119 | border: 1px solid #1e90ff;
120 | padding: 0.5rem 1rem;
121 | border-radius: 4px;
122 | -webkit-transition: background-color 0.3s, color 0.3s;
123 | transition: background-color 0.3s, color 0.3s;
124 | background: none;
125 | cursor: pointer;
126 | width: 160px;
127 | text-align: center;
128 | font-size: 0.9em;
129 | }
130 |
131 | .container .blue-button svg {
132 | height: 16px;
133 | width: 16px;
134 | margin-left: 4px;
135 | }
136 |
137 | .container .blue-button:hover {
138 | background-color: #1e90ff;
139 | color: #f0f0f0;
140 | }
141 |
142 | .container .blue-button:active {
143 | -webkit-transform: scale(0.94);
144 | transform: scale(0.94);
145 | }
146 |
147 | .container #outputImages {
148 | display: -webkit-box;
149 | display: -ms-flexbox;
150 | display: flex;
151 | -webkit-box-align: center;
152 | -ms-flex-align: center;
153 | align-items: center;
154 | -webkit-box-pack: center;
155 | -ms-flex-pack: center;
156 | justify-content: center;
157 | -ms-flex-flow: wrap;
158 | flex-flow: wrap;
159 | }
160 |
161 | .container #outputImages div {
162 | width: 200px;
163 | height: 200px;
164 | margin: 20px 8px 40px 8px;
165 | -webkit-box-orient: vertical;
166 | -webkit-box-direction: normal;
167 | -ms-flex-direction: column;
168 | flex-direction: column;
169 | }
170 |
171 | .container #outputImages div img {
172 | height: 100%;
173 | width: 100%;
174 | -o-object-fit: scale-down;
175 | object-fit: scale-down;
176 | }
177 |
178 | .container #downloadAll {
179 | width: 194px;
180 | }
181 |
182 | .container #code-snippet {
183 | margin-bottom: 20px;
184 | }
185 |
186 | .container #code-snippet p {
187 | text-align: center;
188 | }
189 |
190 | .container #code-snippet .code-snippet-container {
191 | margin-bottom: 10px;
192 | position: relative;
193 | background-color: #282c34;
194 | color: #abb2bf;
195 | border-radius: 4px;
196 | padding: 1rem;
197 | font-family: 'Courier New', monospace;
198 | overflow: auto;
199 | }
200 |
201 | .container #code-snippet .code-snippet-container pre {
202 | margin: 0;
203 | padding: 20px 64px 2px 0px;
204 | }
205 |
206 | .container #code-snippet .code-snippet-container .copy-btn {
207 | display: -webkit-box;
208 | display: -ms-flexbox;
209 | display: flex;
210 | position: absolute;
211 | top: 5px;
212 | right: 5px;
213 | background: none;
214 | outline: 1px solid #1e90ff;
215 | color: #1e90ff;
216 | font-size: 12px;
217 | padding: 5px 10px;
218 | border: none;
219 | border-radius: 5px;
220 | cursor: pointer;
221 | -webkit-transition-duration: 0.2s;
222 | transition-duration: 0.2s;
223 | }
224 |
225 | .container #code-snippet .code-snippet-container .copy-btn:active {
226 | -webkit-transform: scale(0.94);
227 | transform: scale(0.94);
228 | }
229 |
230 | .container #code-snippet .code-snippet-container .copy-btn:hover {
231 | background-color: #1e90ff;
232 | color: #f0f0f0;
233 | }
234 |
235 | .container #code-snippet .code-snippet-container .copy-btn svg {
236 | height: 16px;
237 | width: 16px;
238 | margin-left: 4px;
239 | }
240 |
241 | footer {
242 | margin: 2rem;
243 | font-size: 0.8em;
244 | text-align: center;
245 | font-size: 14px;
246 | }
247 |
248 | footer .github svg {
249 | margin-right: 4px;
250 | height: 16px;
251 | width: 16px;
252 | }
253 |
254 | footer a {
255 | color: white;
256 | text-decoration: none;
257 | font-weight: bold;
258 | -webkit-transition-duration: 0.2s;
259 | transition-duration: 0.2s;
260 | }
261 |
262 | footer a:hover {
263 | text-decoration: underline;
264 | font-size: 16px;
265 | -webkit-transition-duration: 0.2s;
266 | transition-duration: 0.2s;
267 | }
268 | /*# sourceMappingURL=styles.css.map */
--------------------------------------------------------------------------------
/script.js:
--------------------------------------------------------------------------------
1 | let zip = new JSZip();
2 |
3 | const inputImage = document.getElementById('inputImage');
4 | const dragArea = document.getElementById('dragArea');
5 | const outputImages = document.getElementById('outputImages');
6 | const uploadTitle = document.getElementById('uploadTitle');
7 | const uploadSubtitle = document.getElementById('uploadSubtitle');
8 |
9 | dragArea.addEventListener('dragover', (e) => {
10 | e.preventDefault();
11 | dragArea.style.backgroundColor = 'rgba(97, 175, 239, 0.3)';
12 | });
13 |
14 | dragArea.addEventListener('dragleave', (e) => {
15 | e.preventDefault();
16 | dragArea.style.backgroundColor = '';
17 | });
18 |
19 | dragArea.addEventListener('drop', (e) => {
20 | e.preventDefault();
21 | dragArea.style.backgroundColor = '';
22 | inputImage.files = e.dataTransfer.files;
23 | resizeImage();
24 | });
25 |
26 | dragArea.addEventListener('click', (e) => {
27 | inputImage.click();
28 | });
29 |
30 | const resizeImage = () => {
31 | // Created new zip file to avoid appending to the same zip file
32 | zip = new JSZip();
33 | outputImages.innerHTML = '';
34 |
35 | const downloadAllButton = document.getElementById('downloadAll');
36 | const codeSnippet = document.getElementById('code-snippet');
37 | downloadAllButton.classList.add('hidden');
38 | codeSnippet.classList.add('hidden');
39 | uploadTitle.innerHTML = 'Upload file';
40 | uploadSubtitle.innerHTML = 'click or drag and drop your file here';
41 | dragArea.classList.remove('small');
42 |
43 | if (inputImage.files && inputImage.files[0]) {
44 | uploadTitle.innerHTML = 'Click to change file';
45 | uploadSubtitle.innerHTML = inputImage.files[0].name;
46 | dragArea.classList.add('small');
47 |
48 | const reader = new FileReader();
49 | reader.onload = function (event) {
50 | const img = new Image();
51 | img.src = event.target.result;
52 |
53 | img.onload = function () {
54 | const sizes = [128, 48, 32, 16];
55 | sizes.forEach((size) => {
56 | const resizedImage = document.createElement('canvas');
57 | resizedImage.width = size;
58 | resizedImage.height = size;
59 |
60 | const ctx = resizedImage.getContext('2d');
61 | ctx.drawImage(img, 0, 0, size, size);
62 |
63 | const imageDataURL = resizedImage.toDataURL(inputImage.files[0].type);
64 |
65 | const preview = document.createElement('img');
66 | preview.src = imageDataURL;
67 | preview.width = size;
68 | preview.height = size;
69 |
70 | const link = document.createElement('a');
71 | link.classList.add('blue-button');
72 | link.download = `icon${size}.${getFileExtension(
73 | inputImage.files[0].type
74 | )}`;
75 | link.href = imageDataURL;
76 | link.innerHTML = `Download ${size}x${size} px`;
77 |
78 | const div = document.createElement('div');
79 | div.appendChild(preview);
80 | div.appendChild(link);
81 | outputImages.appendChild(div);
82 |
83 | zip.file(link.download, imageDataURL.split('base64,')[1], {
84 | base64: true,
85 | });
86 | });
87 |
88 | downloadAllButton.classList.remove('hidden');
89 | codeSnippet.classList.remove('hidden');
90 | downloadAllButton.disabled = false;
91 | };
92 | };
93 | reader.readAsDataURL(inputImage.files[0]);
94 | }
95 | };
96 |
97 | const getFileExtension = (mimeType) => {
98 | switch (mimeType) {
99 | case 'image/jpeg':
100 | return 'jpeg';
101 | case 'image/png':
102 | return 'png';
103 | default:
104 | return 'png'; // Defaults to png
105 | }
106 | };
107 |
108 | const copyToClipboard = () => {
109 | const codeSnippet = document.getElementById('codeSnippet');
110 | const copyButton = document.getElementById('copy-button');
111 | const range = document.createRange();
112 | const selection = window.getSelection();
113 |
114 | range.selectNodeContents(codeSnippet);
115 | selection.removeAllRanges();
116 | selection.addRange(range);
117 |
118 | try {
119 | document.execCommand('copy');
120 | copyButton.innerHTML = `Copied
124 | `;
125 | } catch (err) {
126 | copyButton.innerHTML = `Error
129 | `;
130 | }
131 |
132 | setTimeout(() => {
133 | copyButton.innerHTML = `Copy
134 |
138 | `;
139 | }, 2000);
140 |
141 | selection.removeAllRanges();
142 | };
143 |
144 | const downloadAll = () => {
145 | zip.generateAsync({ type: 'blob' }).then(function (content) {
146 | const link = document.createElement('a');
147 | link.href = URL.createObjectURL(content);
148 | link.download = 'icons.zip';
149 | document.body.appendChild(link);
150 | link.click();
151 | document.body.removeChild(link);
152 | });
153 | };
154 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
13 |
19 |
25 |
26 |
27 |
28 |
32 |
36 |
37 |
38 |
39 |
40 |
44 |
48 |
52 |
53 |
54 |
55 |
56 |
57 |
61 |
65 |
66 | Chrome Extension Icon Generator
67 |
68 |
69 |
70 |
71 |
72 | Chrome Extension Icon Generator
73 |
74 |
75 |
76 |
77 |
78 | Upload file
79 |
94 |
95 |
click or drag and drop your file here
96 |
97 |
98 |
99 |
102 |
103 |
104 |
105 |
125 |
126 |
127 | Copy this code into your manifest.json file.
128 | After putting the icons folder into your project.
129 |
130 |
131 |
132 | "icons": {
133 | "16": "icons/icon16.png",
134 | "32": "icons/icon32.png",
135 | "48": "icons/icon48.png",
136 | "128": "icons/icon128.png"
137 | },
138 |
140 |
160 |
161 |
162 |
167 | Extension Docs
168 |
183 |
184 |
185 |
214 |
215 |
216 |
217 |
--------------------------------------------------------------------------------
/jszip.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 |
3 | JSZip v3.5.0 - A JavaScript class for generating and reading zip files
4 |
5 |
6 | (c) 2009-2016 Stuart Knightley
7 | Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.
8 |
9 | JSZip uses the library pako released under the MIT license :
10 | https://github.com/nodeca/pako/blob/master/LICENSE
11 | */
12 |
13 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=t()}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e="function"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error("Cannot find module '"+r+"'");throw i.code="MODULE_NOT_FOUND",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l="function"==typeof require&&require,t=0;t>2,s=(3&e)<<4|r>>4,a=1>6:64,o=2>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{"./support":30,"./utils":32}],2:[function(t,e,r){"use strict";var i=t("./external"),n=t("./stream/DataWorker"),s=t("./stream/DataLengthProbe"),a=t("./stream/Crc32Probe");s=t("./stream/DataLengthProbe");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new s("data_length")),e=this;return t.on("end",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new a).pipe(new s("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new s("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,r){"use strict";var i=t("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(t){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,r){"use strict";var i=t("./utils");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{"./utils":32}],5:[function(t,e,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){"use strict";var i=null;i="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,n=t("pako"),s=t("./utils"),a=t("./stream/GenericWorker"),o=i?"uint8array":"array";function h(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h("Deflate",t)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,r){"use strict";function A(t,e){var r,i="";for(r=0;r>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),d=I.transformTo("string",O.utf8encode(h.name)),c=h.comment,p=I.transformTo("string",s(c)),m=I.transformTo("string",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(i,4)+f+b+p}}var I=t("../utils"),n=t("../stream/GenericWorker"),O=t("../utf8"),B=t("../crc32"),R=t("../signature");function s(t,e,r,i){n.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{"../utils":32}],19:[function(t,e,r){"use strict";var i=t("./Uint8ArrayReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,r){"use strict";var i=t("./DataReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./DataReader":18}],21:[function(t,e,r){"use strict";var i=t("./ArrayReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,r){"use strict";var i=t("../utils"),n=t("../support"),s=t("./ArrayReader"),a=t("./StringReader"),o=t("./NodeBufferReader"),h=t("./Uint8ArrayReader");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),"string"!==e||n.uint8array?"nodebuffer"===e?new o(t):n.uint8array?new h(i.transformTo("uint8array",t)):new s(i.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,r){"use strict";var i=t("./GenericWorker"),n=t("../utils");function s(t){i.call(this,"ConvertWorker to "+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,r){"use strict";var i=t("./GenericWorker"),n=t("../crc32");function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,r){"use strict";var i=t("../utils"),n=t("./GenericWorker");function s(t){n.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,r){"use strict";var i=t("../utils"),n=t("./GenericWorker");function s(t){n.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,r){"use strict";function i(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r "+t:t}},e.exports=i},{}],29:[function(t,e,r){"use strict";var h=t("../utils"),n=t("./ConvertWorker"),s=t("./GenericWorker"),u=t("../base64"),i=t("../support"),a=t("../external"),o=null;if(i.nodestream)try{o=t("../nodejs/NodejsStreamOutputAdapter")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on("data",function(t,e){i.push(t),o&&o(e)}).on("error",function(t){i=[],r(t)}).on("end",function(){try{var t=function(t,e,r){switch(t){case"blob":return h.newBlob(h.transformTo("arraybuffer",e),r);case"base64":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?"uint8array":"array",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,a){"use strict";var o=t("./support"),h=t("./base64"),r=t("./nodejsUtils"),i=t("set-immediate-shim"),u=t("./external");function n(t){return t}function l(t,e){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{"./common":41}],43:[function(t,e,r){"use strict";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){"use strict";var h,d=t("../utils/common"),u=t("./trees"),c=t("./adler32"),p=t("./crc32"),i=t("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<>>=y,p-=y),p<15&&(c+=z[i++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<>>=y,p-=y,(y=s-a)>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){t.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(hc?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u>=7;i>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{"../utils/common":41}],53:[function(t,e,r){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){"use strict";e.exports="function"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)});
--------------------------------------------------------------------------------