payload 2.23.1 → 2.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/elements/Dropzone/index.d.ts +2 -1
- package/dist/admin/components/elements/Dropzone/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Dropzone/index.js +15 -10
- package/dist/admin/components/elements/EditUpload/index.d.ts +12 -4
- package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/admin/components/elements/EditUpload/index.js +41 -40
- package/dist/admin/components/utilities/Auth/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/Auth/index.js +64 -61
- package/dist/admin/components/utilities/Auth/types.d.ts +3 -1
- package/dist/admin/components/utilities/Auth/types.d.ts.map +1 -1
- package/dist/admin/components/utilities/Locale/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/Locale/index.js +31 -20
- package/dist/admin/components/utilities/UploadEdits/index.d.ts +1 -0
- package/dist/admin/components/utilities/UploadEdits/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/UploadEdits/index.js +6 -1
- package/dist/admin/components/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/admin/components/views/Unauthorized/index.js +6 -4
- package/dist/admin/components/views/collections/Edit/Upload/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Upload/index.js +120 -28
- package/dist/admin/components/views/collections/Edit/Upload/index.scss +6 -3
- package/dist/admin/components/views/collections/Edit/types.d.ts +0 -12
- package/dist/admin/components/views/collections/Edit/types.d.ts.map +1 -1
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js +1 -1
- package/dist/exports/types.d.ts +1 -1
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts +2 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +18 -6
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +2 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js +18 -3
- package/dist/translations/ar.json +3 -1
- package/dist/translations/az.json +3 -1
- package/dist/translations/bg.json +3 -1
- package/dist/translations/cs.json +3 -1
- package/dist/translations/de.json +3 -1
- package/dist/translations/en.json +2 -0
- package/dist/translations/es.json +3 -1
- package/dist/translations/fa.json +3 -1
- package/dist/translations/fr.json +3 -1
- package/dist/translations/hr.json +3 -1
- package/dist/translations/hu.json +3 -1
- package/dist/translations/index.d.ts +60 -0
- package/dist/translations/index.d.ts.map +1 -1
- package/dist/translations/it.json +3 -1
- package/dist/translations/ja.json +3 -1
- package/dist/translations/ko.json +3 -1
- package/dist/translations/my.json +3 -1
- package/dist/translations/nb.json +3 -1
- package/dist/translations/nl.json +3 -1
- package/dist/translations/pl.json +3 -1
- package/dist/translations/pt.json +3 -1
- package/dist/translations/ro.json +3 -1
- package/dist/translations/rs-latin.json +3 -1
- package/dist/translations/rs.json +3 -1
- package/dist/translations/ru.json +3 -1
- package/dist/translations/sv.json +3 -1
- package/dist/translations/th.json +3 -1
- package/dist/translations/tr.json +3 -1
- package/dist/translations/translation-schema.json +6 -0
- package/dist/translations/ua.json +3 -1
- package/dist/translations/vi.json +3 -1
- package/dist/translations/zh-tw.json +3 -1
- package/dist/translations/zh.json +3 -1
- package/dist/uploads/cropImage.d.ts +15 -6
- package/dist/uploads/cropImage.d.ts.map +1 -1
- package/dist/uploads/cropImage.js +6 -6
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +9 -7
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +117 -84
- package/dist/uploads/types.d.ts +16 -10
- package/dist/uploads/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/types.d.ts +1 -1
- package/types.js +1 -1
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "perto"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Adicionar arquivo",
|
|
286
287
|
"crop": "Cultura",
|
|
287
288
|
"cropToolDescription": "Arraste as bordas da área selecionada, desenhe uma nova área ou ajuste os valores abaixo.",
|
|
288
289
|
"dragAndDrop": "Arraste e solte um arquivo",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Altura",
|
|
296
297
|
"lessInfo": "Ver menos",
|
|
297
298
|
"moreInfo": "Ver mais",
|
|
299
|
+
"pasteURL": "Colar URL",
|
|
298
300
|
"previewSizes": "Tamanhos de Pré-visualização",
|
|
299
301
|
"selectCollectionToBrowse": "Selecione uma Coleção para Navegar",
|
|
300
302
|
"selectFile": "Selecione um arquivo",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Visualizando versões para o/a {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "`Visualizando versões para o global {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "în apropiere de"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Adaugă fișier",
|
|
286
287
|
"crop": "Cultură",
|
|
287
288
|
"cropToolDescription": "Trageți colțurile zonei selectate, desenați o nouă zonă sau ajustați valorile de mai jos.",
|
|
288
289
|
"dragAndDrop": "Trageți și plasați un fișier",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Înălțime",
|
|
296
297
|
"lessInfo": "Mai puține informații",
|
|
297
298
|
"moreInfo": "Mai multe informații",
|
|
299
|
+
"pasteURL": "Lipește URL",
|
|
298
300
|
"previewSizes": "Dimensiuni Previzualizare",
|
|
299
301
|
"selectCollectionToBrowse": "Selectați o colecție pentru navigare",
|
|
300
302
|
"selectFile": "Selectați un fișier",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Vizualizarea versiunilor pentru {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "Vizualizarea versiunilor pentru globala {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "blizu"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Dodaj datoteku",
|
|
286
287
|
"crop": "Isecite sliku",
|
|
287
288
|
"cropToolDescription": "Prevucite uglove izabranog područja, nacrtajte novo područje ili prilagodite vrednosti ispod.",
|
|
288
289
|
"dragAndDrop": "Prevucite i ispustite datoteku",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Visina",
|
|
296
297
|
"lessInfo": "Manje informacija",
|
|
297
298
|
"moreInfo": "Više informacija",
|
|
299
|
+
"pasteURL": "Nalepi URL",
|
|
298
300
|
"previewSizes": "Veličine pregleda",
|
|
299
301
|
"selectCollectionToBrowse": "Odaberite kolekciju za pregled",
|
|
300
302
|
"selectFile": "Odaberite datoteku",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Pregled verzija za {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "Pregled verzije za globalni {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "близу"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Додај датотеку",
|
|
286
287
|
"crop": "Исеците слику",
|
|
287
288
|
"cropToolDescription": "Превуците углове изабраног подручја, нацртајте ново подручје или прилагодите вредности испод.",
|
|
288
289
|
"dragAndDrop": "Превуците и испустите датотеку",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Висина",
|
|
296
297
|
"lessInfo": "Мање информација",
|
|
297
298
|
"moreInfo": "Више информација",
|
|
299
|
+
"pasteURL": "Налепи URL",
|
|
298
300
|
"previewSizes": "Величине прегледа",
|
|
299
301
|
"selectCollectionToBrowse": "Одаберите колекцију за преглед",
|
|
300
302
|
"selectFile": "Одаберите датотеку",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Преглед верзија за {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "Преглед верзије за глобални {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "рядом"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Добавить файл",
|
|
286
287
|
"crop": "Обрезать",
|
|
287
288
|
"cropToolDescription": "Перетащите углы выбранной области, нарисуйте новую область или отрегулируйте значения ниже.",
|
|
288
289
|
"dragAndDrop": "Перетащите файл",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Высота",
|
|
296
297
|
"lessInfo": "Меньше информации",
|
|
297
298
|
"moreInfo": "Больше информации",
|
|
299
|
+
"pasteURL": "Вставить URL",
|
|
298
300
|
"previewSizes": "Предварительный просмотр размеров",
|
|
299
301
|
"selectCollectionToBrowse": "Выберите Коллекцию для просмотра",
|
|
300
302
|
"selectFile": "Выберите файл",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Просмотр версий для {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "`Просмотр версии для глобальной Коллекции {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "nära"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Lägg till fil",
|
|
286
287
|
"crop": "Skörd",
|
|
287
288
|
"cropToolDescription": "Dra i hörnen på det valda området, rita ett nytt område eller justera värdena nedan.",
|
|
288
289
|
"dragAndDrop": "Dra och släpp en fil",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Höjd",
|
|
296
297
|
"lessInfo": "Mindre info",
|
|
297
298
|
"moreInfo": "Mer info",
|
|
299
|
+
"pasteURL": "Klistra in URL",
|
|
298
300
|
"previewSizes": "Förhandsgranska Storlekar",
|
|
299
301
|
"selectCollectionToBrowse": "Välj en Samling att Bläddra i",
|
|
300
302
|
"selectFile": "Välj en fil",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Visar versioner för {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "Visa versioner för den globala {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "ใกล้"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "เพิ่มไฟล์",
|
|
286
287
|
"crop": "พืชผล",
|
|
287
288
|
"cropToolDescription": "ลากมุมของพื้นที่ที่เลือก, วาดพื้นที่ใหม่หรือปรับค่าด้านล่าง",
|
|
288
289
|
"dragAndDrop": "ลากและวางไฟล์",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "ความสูง",
|
|
296
297
|
"lessInfo": "ซ่อนข้อมูล",
|
|
297
298
|
"moreInfo": "แสดงข้อมูล",
|
|
299
|
+
"pasteURL": "วาง URL",
|
|
298
300
|
"previewSizes": "ขนาดตัวอย่าง",
|
|
299
301
|
"selectCollectionToBrowse": "เลือก Collection ที่ต้องการค้นหา",
|
|
300
302
|
"selectFile": "เลือกไฟล์",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "กำลังดูเวอร์ชันของ {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "กำลังดูเวอร์ชันของ global {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "yakın"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Dosya ekle",
|
|
286
287
|
"crop": "Kırp",
|
|
287
288
|
"cropToolDescription": "Seçili alanın köşelerini sürükleyin, yeni bir alan çizin veya aşağıdaki değerleri ayarlayın.",
|
|
288
289
|
"dragAndDrop": "Bir dosyayı sürükleyip bırakın",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Yükseklik",
|
|
296
297
|
"lessInfo": "Daha az bilgi",
|
|
297
298
|
"moreInfo": "Daha fazla bilgi",
|
|
299
|
+
"pasteURL": "URL yapıştır",
|
|
298
300
|
"previewSizes": "Önizleme Boyutları",
|
|
299
301
|
"selectCollectionToBrowse": "Gözatmak için bir Koleksiyon seçin",
|
|
300
302
|
"selectFile": "Bir dosya seçin",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "{{entityLabel}} {{documentTitle}} için sürümler görüntüleniyor",
|
|
382
384
|
"viewingVersionsGlobal": "Global {{entityLabel}} için sürümler görüntüleniyor"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -1108,6 +1108,9 @@
|
|
|
1108
1108
|
"upload": {
|
|
1109
1109
|
"additionalProperties": false,
|
|
1110
1110
|
"properties": {
|
|
1111
|
+
"addFile": {
|
|
1112
|
+
"type": "string"
|
|
1113
|
+
},
|
|
1111
1114
|
"crop": {
|
|
1112
1115
|
"type": "string"
|
|
1113
1116
|
},
|
|
@@ -1144,6 +1147,9 @@
|
|
|
1144
1147
|
"moreInfo": {
|
|
1145
1148
|
"type": "string"
|
|
1146
1149
|
},
|
|
1150
|
+
"pasteURL": {
|
|
1151
|
+
"type": "string"
|
|
1152
|
+
},
|
|
1147
1153
|
"previewSizes": {
|
|
1148
1154
|
"type": "string"
|
|
1149
1155
|
},
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "поруч"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Додати файл",
|
|
286
287
|
"crop": "Обрізати",
|
|
287
288
|
"cropToolDescription": "Перетягніть кути обраної області, намалюйте нову область або скоригуйте значення нижче.",
|
|
288
289
|
"dragAndDrop": "Перемістіть файл",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Висота",
|
|
296
297
|
"lessInfo": "Менше інформації",
|
|
297
298
|
"moreInfo": "Більше інформації",
|
|
299
|
+
"pasteURL": "Вставити URL",
|
|
298
300
|
"previewSizes": "Розміри попереднього перегляду",
|
|
299
301
|
"selectCollectionToBrowse": "Виберіть колекцію для перегляду",
|
|
300
302
|
"selectFile": "Виберіть файл",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Огляд версій для {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "Огляд версій для глобальної колекції {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "gần"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "Thêm tập tin",
|
|
286
287
|
"crop": "Mùa vụ",
|
|
287
288
|
"cropToolDescription": "Kéo các góc của khu vực đã chọn, vẽ một khu vực mới hoặc điều chỉnh các giá trị dưới đây.",
|
|
288
289
|
"dragAndDrop": "Kéo và thả một tập tin",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Chiều cao",
|
|
296
297
|
"lessInfo": "Hiển thị ít hơn",
|
|
297
298
|
"moreInfo": "Thêm",
|
|
299
|
+
"pasteURL": "Dán URL",
|
|
298
300
|
"previewSizes": "Kích cỡ xem trước",
|
|
299
301
|
"selectCollectionToBrowse": "Chọn một Collection để tìm",
|
|
300
302
|
"selectFile": "Chọn một file",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Xem những phiên bản của {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "`Xem những phiên bản toàn thể (global) của {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "附近"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "添加文件",
|
|
286
287
|
"crop": "裁剪",
|
|
287
288
|
"cropToolDescription": "拖動所選區域的角落,繪製一個新區域或調整以下的值。",
|
|
288
289
|
"dragAndDrop": "拖放一個檔案",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "高度",
|
|
296
297
|
"lessInfo": "更少資訊",
|
|
297
298
|
"moreInfo": "更多資訊",
|
|
299
|
+
"pasteURL": "貼上網址",
|
|
298
300
|
"previewSizes": "預覽尺寸",
|
|
299
301
|
"selectCollectionToBrowse": "選擇一個要瀏覽的集合",
|
|
300
302
|
"selectFile": "選擇一個文件",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "正在查看{{entityLabel}} {{documentTitle}}的版本",
|
|
382
384
|
"viewingVersionsGlobal": "正在查看全域{{entityLabel}}的版本"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "附近"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addFile": "添加文件",
|
|
286
287
|
"crop": "作物",
|
|
287
288
|
"cropToolDescription": "拖动所选区域的角落,绘制一个新区域或调整以下的值。",
|
|
288
289
|
"dragAndDrop": "拖放一个文件",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "高度",
|
|
296
297
|
"lessInfo": "更少信息",
|
|
297
298
|
"moreInfo": "更多信息",
|
|
299
|
+
"pasteURL": "粘贴网址",
|
|
298
300
|
"previewSizes": "预览尺寸",
|
|
299
301
|
"selectCollectionToBrowse": "选择一个要浏览的集合",
|
|
300
302
|
"selectFile": "选择一个文件",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "正在查看{{entityLabel}} {{documentTitle}}的版本",
|
|
382
384
|
"viewingVersionsGlobal": "正在查看全局{{entityLabel}}的版本"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
import type { UploadedFile } from 'express-fileupload';
|
|
2
3
|
import sharp from 'sharp';
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import type { UploadEdits } from './types';
|
|
5
|
+
export declare const percentToPixel: (value: any, dimension: any) => number;
|
|
6
|
+
type CropImageArgs = {
|
|
7
|
+
cropData: UploadEdits['crop'];
|
|
8
|
+
dimensions: {
|
|
9
|
+
height: number;
|
|
10
|
+
width: number;
|
|
11
|
+
};
|
|
12
|
+
file: UploadedFile;
|
|
13
|
+
heightInPixels: number;
|
|
14
|
+
widthInPixels: number;
|
|
15
|
+
};
|
|
16
|
+
export declare function cropImage({ cropData, dimensions, file, heightInPixels, widthInPixels, }: CropImageArgs): Promise<{
|
|
9
17
|
data: Buffer;
|
|
10
18
|
info: sharp.OutputInfo;
|
|
11
19
|
}>;
|
|
20
|
+
export {};
|
|
12
21
|
//# sourceMappingURL=cropImage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cropImage.d.ts","sourceRoot":"","sources":["../../src/uploads/cropImage.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cropImage.d.ts","sourceRoot":"","sources":["../../src/uploads/cropImage.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,eAAO,MAAM,cAAc,kCAAuB,MAGjD,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC7B,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,IAAI,EAAE,YAAY,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AACD,wBAAsB,SAAS,CAAC,EAC9B,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,cAAc,EACd,aAAa,GACd,EAAE,aAAa;;;GA0Bf"}
|
|
@@ -9,7 +9,7 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
|
|
12
|
+
cropImage: function() {
|
|
13
13
|
return cropImage;
|
|
14
14
|
},
|
|
15
15
|
percentToPixel: function() {
|
|
@@ -26,21 +26,21 @@ const percentToPixel = (value, dimension)=>{
|
|
|
26
26
|
if (!value) return 0;
|
|
27
27
|
return Math.floor(parseFloat(value) / 100 * dimension);
|
|
28
28
|
};
|
|
29
|
-
async function cropImage({ cropData, dimensions, file }) {
|
|
29
|
+
async function cropImage({ cropData, dimensions, file, heightInPixels, widthInPixels }) {
|
|
30
30
|
try {
|
|
31
|
+
const { x, y } = cropData;
|
|
31
32
|
const fileIsAnimatedType = [
|
|
32
33
|
'image/avif',
|
|
33
34
|
'image/gif',
|
|
34
35
|
'image/webp'
|
|
35
36
|
].includes(file.mimetype);
|
|
36
|
-
const { heightPixels, widthPixels, x, y } = cropData;
|
|
37
37
|
const sharpOptions = {};
|
|
38
38
|
if (fileIsAnimatedType) sharpOptions.animated = true;
|
|
39
39
|
const formattedCropData = {
|
|
40
|
-
height: Number(
|
|
40
|
+
height: Number(heightInPixels),
|
|
41
41
|
left: percentToPixel(x, dimensions.width),
|
|
42
42
|
top: percentToPixel(y, dimensions.height),
|
|
43
|
-
width: Number(
|
|
43
|
+
width: Number(widthInPixels)
|
|
44
44
|
};
|
|
45
45
|
const cropped = (0, _sharp.default)(file.tempFilePath || file.data, sharpOptions).extract(formattedCropData);
|
|
46
46
|
return await cropped.toBuffer({
|
|
@@ -52,4 +52,4 @@ async function cropImage({ cropData, dimensions, file }) {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2Nyb3BJbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcbmltcG9ydCB0eXBlIHsgU2hhcnBPcHRpb25zIH0gZnJvbSAnc2hhcnAnXG5cbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBVcGxvYWRFZGl0cyB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBwZXJjZW50VG9QaXhlbCA9ICh2YWx1ZSwgZGltZW5zaW9uKTogbnVtYmVyID0+IHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIDBcbiAgcmV0dXJuIE1hdGguZmxvb3IoKHBhcnNlRmxvYXQodmFsdWUpIC8gMTAwKSAqIGRpbWVuc2lvbilcbn1cblxudHlwZSBDcm9wSW1hZ2VBcmdzID0ge1xuICBjcm9wRGF0YTogVXBsb2FkRWRpdHNbJ2Nyb3AnXVxuICBkaW1lbnNpb25zOiB7IGhlaWdodDogbnVtYmVyOyB3aWR0aDogbnVtYmVyIH1cbiAgZmlsZTogVXBsb2FkZWRGaWxlXG4gIGhlaWdodEluUGl4ZWxzOiBudW1iZXJcbiAgd2lkdGhJblBpeGVsczogbnVtYmVyXG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JvcEltYWdlKHtcbiAgY3JvcERhdGEsXG4gIGRpbWVuc2lvbnMsXG4gIGZpbGUsXG4gIGhlaWdodEluUGl4ZWxzLFxuICB3aWR0aEluUGl4ZWxzLFxufTogQ3JvcEltYWdlQXJncykge1xuICB0cnkge1xuICAgIGNvbnN0IHsgeCwgeSB9ID0gY3JvcERhdGFcblxuICAgIGNvbnN0IGZpbGVJc0FuaW1hdGVkVHlwZSA9IFsnaW1hZ2UvYXZpZicsICdpbWFnZS9naWYnLCAnaW1hZ2Uvd2VicCddLmluY2x1ZGVzKGZpbGUubWltZXR5cGUpXG5cbiAgICBjb25zdCBzaGFycE9wdGlvbnM6IFNoYXJwT3B0aW9ucyA9IHt9XG5cbiAgICBpZiAoZmlsZUlzQW5pbWF0ZWRUeXBlKSBzaGFycE9wdGlvbnMuYW5pbWF0ZWQgPSB0cnVlXG5cbiAgICBjb25zdCBmb3JtYXR0ZWRDcm9wRGF0YSA9IHtcbiAgICAgIGhlaWdodDogTnVtYmVyKGhlaWdodEluUGl4ZWxzKSxcbiAgICAgIGxlZnQ6IHBlcmNlbnRUb1BpeGVsKHgsIGRpbWVuc2lvbnMud2lkdGgpLFxuICAgICAgdG9wOiBwZXJjZW50VG9QaXhlbCh5LCBkaW1lbnNpb25zLmhlaWdodCksXG4gICAgICB3aWR0aDogTnVtYmVyKHdpZHRoSW5QaXhlbHMpLFxuICAgIH1cblxuICAgIGNvbnN0IGNyb3BwZWQgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEsIHNoYXJwT3B0aW9ucykuZXh0cmFjdChmb3JtYXR0ZWRDcm9wRGF0YSlcblxuICAgIHJldHVybiBhd2FpdCBjcm9wcGVkLnRvQnVmZmVyKHtcbiAgICAgIHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlLFxuICAgIH0pXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihgRXJyb3IgY3JvcHBpbmcgaW1hZ2U6YCwgZXJyb3IpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNyb3BJbWFnZSIsInBlcmNlbnRUb1BpeGVsIiwidmFsdWUiLCJkaW1lbnNpb24iLCJNYXRoIiwiZmxvb3IiLCJwYXJzZUZsb2F0IiwiY3JvcERhdGEiLCJkaW1lbnNpb25zIiwiZmlsZSIsImhlaWdodEluUGl4ZWxzIiwid2lkdGhJblBpeGVscyIsIngiLCJ5IiwiZmlsZUlzQW5pbWF0ZWRUeXBlIiwiaW5jbHVkZXMiLCJtaW1ldHlwZSIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwiZm9ybWF0dGVkQ3JvcERhdGEiLCJoZWlnaHQiLCJOdW1iZXIiLCJsZWZ0Iiwid2lkdGgiLCJ0b3AiLCJjcm9wcGVkIiwic2hhcnAiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwiZXh0cmFjdCIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJlcnJvciIsImNvbnNvbGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFtQnNCQSxTQUFTO2VBQVRBOztJQVpUQyxjQUFjO2VBQWRBOzs7OERBSks7Ozs7OztBQUlYLE1BQU1BLGlCQUFpQixDQUFDQyxPQUFPQztJQUNwQyxJQUFJLENBQUNELE9BQU8sT0FBTztJQUNuQixPQUFPRSxLQUFLQyxLQUFLLENBQUMsQUFBQ0MsV0FBV0osU0FBUyxNQUFPQztBQUNoRDtBQVNPLGVBQWVILFVBQVUsRUFDOUJPLFFBQVEsRUFDUkMsVUFBVSxFQUNWQyxJQUFJLEVBQ0pDLGNBQWMsRUFDZEMsYUFBYSxFQUNDO0lBQ2QsSUFBSTtRQUNGLE1BQU0sRUFBRUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBR047UUFFakIsTUFBTU8scUJBQXFCO1lBQUM7WUFBYztZQUFhO1NBQWEsQ0FBQ0MsUUFBUSxDQUFDTixLQUFLTyxRQUFRO1FBRTNGLE1BQU1DLGVBQTZCLENBQUM7UUFFcEMsSUFBSUgsb0JBQW9CRyxhQUFhQyxRQUFRLEdBQUc7UUFFaEQsTUFBTUMsb0JBQW9CO1lBQ3hCQyxRQUFRQyxPQUFPWDtZQUNmWSxNQUFNckIsZUFBZVcsR0FBR0osV0FBV2UsS0FBSztZQUN4Q0MsS0FBS3ZCLGVBQWVZLEdBQUdMLFdBQVdZLE1BQU07WUFDeENHLE9BQU9GLE9BQU9WO1FBQ2hCO1FBRUEsTUFBTWMsVUFBVUMsSUFBQUEsY0FBSyxFQUFDakIsS0FBS2tCLFlBQVksSUFBSWxCLEtBQUttQixJQUFJLEVBQUVYLGNBQWNZLE9BQU8sQ0FBQ1Y7UUFFNUUsT0FBTyxNQUFNTSxRQUFRSyxRQUFRLENBQUM7WUFDNUJDLG1CQUFtQjtRQUNyQjtJQUNGLEVBQUUsT0FBT0MsT0FBTztRQUNkQyxRQUFRRCxLQUFLLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFQTtRQUN2QyxNQUFNQTtJQUNSO0FBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAgC,MAAM,SAAS,CAAA;AAajF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAgC,MAAM,SAAS,CAAA;AAajF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,iKAqQ5B,CAAA"}
|
|
@@ -17,7 +17,7 @@ const _sharp = /*#__PURE__*/ _interop_require_default(require("sharp"));
|
|
|
17
17
|
const _errors = require("../errors");
|
|
18
18
|
const _FileRetrievalError = /*#__PURE__*/ _interop_require_default(require("../errors/FileRetrievalError"));
|
|
19
19
|
const _canResizeImage = /*#__PURE__*/ _interop_require_default(require("./canResizeImage"));
|
|
20
|
-
const _cropImage =
|
|
20
|
+
const _cropImage = require("./cropImage");
|
|
21
21
|
const _getExternalFile = require("./getExternalFile");
|
|
22
22
|
const _getFileByPath = /*#__PURE__*/ _interop_require_default(require("./getFileByPath"));
|
|
23
23
|
const _getImageSize = /*#__PURE__*/ _interop_require_default(require("./getImageSize"));
|
|
@@ -144,12 +144,12 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
144
144
|
mime = file.mimetype;
|
|
145
145
|
fileData.filesize = file.size;
|
|
146
146
|
if (file.name.includes('.')) {
|
|
147
|
-
ext = file.name.split('.').pop();
|
|
147
|
+
ext = file.name.split('.').pop().split('?')[0];
|
|
148
148
|
} else {
|
|
149
149
|
ext = '';
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
-
//
|
|
152
|
+
// Adjust SVG mime type. fromBuffer modifies it.
|
|
153
153
|
if (mime === 'application/xml' && ext === 'svg') mime = 'image/svg+xml';
|
|
154
154
|
fileData.mimeType = mime;
|
|
155
155
|
const baseFilename = (0, _sanitizefilename.default)(file.name.substring(0, file.name.lastIndexOf('.')) || file.name);
|
|
@@ -165,10 +165,12 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
165
165
|
fileData.filename = fsSafeName;
|
|
166
166
|
let fileForResize = file;
|
|
167
167
|
if (cropData) {
|
|
168
|
-
const { data: croppedImage, info } = await (0, _cropImage.
|
|
168
|
+
const { data: croppedImage, info } = await (0, _cropImage.cropImage)({
|
|
169
169
|
cropData,
|
|
170
170
|
dimensions,
|
|
171
|
-
file
|
|
171
|
+
file,
|
|
172
|
+
heightInPixels: uploadEdits.heightInPixels,
|
|
173
|
+
widthInPixels: uploadEdits.widthInPixels
|
|
172
174
|
});
|
|
173
175
|
filesToSave.push({
|
|
174
176
|
buffer: croppedImage,
|
|
@@ -254,7 +256,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
254
256
|
*/ function parseUploadEditsFromReqOrIncomingData(args) {
|
|
255
257
|
const { data, operation, originalDoc, req } = args;
|
|
256
258
|
// Get intended focal point change from query string or incoming data
|
|
257
|
-
const
|
|
259
|
+
const uploadEdits = req.query?.uploadEdits && typeof req.query.uploadEdits === 'object' ? req.query.uploadEdits : {};
|
|
258
260
|
if (uploadEdits.focalPoint) return uploadEdits;
|
|
259
261
|
const incomingData = data;
|
|
260
262
|
const origDoc = originalDoc;
|
|
@@ -280,4 +282,4 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
280
282
|
return uploadEdits;
|
|
281
283
|
}
|
|
282
284
|
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IHsgZ2V0RXh0ZXJuYWxGaWxlIH0gZnJvbSAnLi9nZXRFeHRlcm5hbEZpbGUnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M/OiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvcGVyYXRpb24sXG4gIG9yaWdpbmFsRG9jLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgdXBsb2FkRWRpdHMgPSBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKHtcbiAgICBkYXRhLFxuICAgIG9wZXJhdGlvbixcbiAgICBvcmlnaW5hbERvYyxcbiAgICByZXEsXG4gIH0pXG5cbiAgY29uc3Qge1xuICAgIGRpc2FibGVMb2NhbFN0b3JhZ2UsXG4gICAgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQsXG4gICAgZm9ybWF0T3B0aW9ucyxcbiAgICBpbWFnZVNpemVzLFxuICAgIHJlc2l6ZU9wdGlvbnMsXG4gICAgc3RhdGljRGlyLFxuICAgIHRyaW1PcHRpb25zLFxuICB9ID0gY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBsZXQgc3RhdGljUGF0aCA9IHN0YXRpY0RpclxuICBpZiAoc3RhdGljRGlyLmluZGV4T2YoJy8nKSAhPT0gMCkge1xuICAgIHN0YXRpY1BhdGggPSBwYXRoLnJlc29sdmUoY29uZmlnLnBhdGhzLmNvbmZpZ0Rpciwgc3RhdGljRGlyKVxuICB9XG5cbiAgaWYgKCFmaWxlICYmIHVwbG9hZEVkaXRzICYmIGRhdGEpIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSA9IGRhdGEgYXMgRmlsZURhdGFcblxuICAgIHRyeSB7XG4gICAgICBpZiAodXJsICYmIHVybC5zdGFydHNXaXRoKCcvJykgJiYgIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ZpbGVuYW1lfWBcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQnlQYXRoKGZpbGVQYXRoKVxuICAgICAgICBmaWxlID0gcmVzcG9uc2UgYXMgVXBsb2FkZWRGaWxlXG4gICAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYgKGZpbGVuYW1lICYmIHVybCkge1xuICAgICAgICBmaWxlID0gKGF3YWl0IGdldEV4dGVybmFsRmlsZSh7XG4gICAgICAgICAgZGF0YTogZGF0YSBhcyBGaWxlRGF0YSxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgdXBsb2FkQ29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZCxcbiAgICAgICAgfSkpIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBGaWxlUmV0cmlldmFsRXJyb3IocmVxLnQsIGVyci5tZXNzYWdlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghZmlsZSkge1xuICAgIGlmICh0aHJvd09uTWlzc2luZ0ZpbGUpIHRocm93IG5ldyBNaXNzaW5nRmlsZShyZXEudClcblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGlmICghZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgIG1rZGlycC5zeW5jKHN0YXRpY1BhdGgpXG4gIH1cblxuICBsZXQgbmV3RGF0YSA9IGRhdGFcbiAgY29uc3QgZmlsZXNUb1NhdmU6IEZpbGVUb1NhdmVbXSA9IFtdXG4gIGNvbnN0IGZpbGVEYXRhOiBQYXJ0aWFsPEZpbGVEYXRhPiA9IHt9XG4gIGNvbnN0IGZpbGVJc0FuaW1hdGVkVHlwZSA9IFsnaW1hZ2UvYXZpZicsICdpbWFnZS9naWYnLCAnaW1hZ2Uvd2VicCddLmluY2x1ZGVzKGZpbGUubWltZXR5cGUpXG4gIGNvbnN0IGNyb3BEYXRhID1cbiAgICB0eXBlb2YgdXBsb2FkRWRpdHMgPT09ICdvYmplY3QnICYmICdjcm9wJyBpbiB1cGxvYWRFZGl0cyA/IHVwbG9hZEVkaXRzLmNyb3AgOiB1bmRlZmluZWRcblxuICB0cnkge1xuICAgIGNvbnN0IGZpbGVTdXBwb3J0c1Jlc2l6ZSA9IGNhblJlc2l6ZUltYWdlKGZpbGUubWltZXR5cGUpXG4gICAgbGV0IGZzU2FmZU5hbWU6IHN0cmluZ1xuICAgIGxldCBzaGFycEZpbGU6IFNoYXJwIHwgdW5kZWZpbmVkXG4gICAgbGV0IGRpbWVuc2lvbnM6IFByb2JlZEltYWdlU2l6ZSB8IHVuZGVmaW5lZFxuICAgIGxldCBmaWxlQnVmZmVyOiB7IGRhdGE6IEJ1ZmZlcjsgaW5mbzogT3V0cHV0SW5mbyB9XG4gICAgbGV0IGV4dFxuICAgIGxldCBtaW1lOiBzdHJpbmdcbiAgICBjb25zdCBmaWxlSGFzQWRqdXN0bWVudHMgPVxuICAgICAgZmlsZVN1cHBvcnRzUmVzaXplICYmXG4gICAgICBCb29sZWFuKHJlc2l6ZU9wdGlvbnMgfHwgZm9ybWF0T3B0aW9ucyB8fCBpbWFnZVNpemVzIHx8IHRyaW1PcHRpb25zIHx8IGZpbGUudGVtcEZpbGVQYXRoKVxuXG4gICAgY29uc3Qgc2hhcnBPcHRpb25zOiBTaGFycE9wdGlvbnMgPSB7fVxuXG4gICAgaWYgKGZpbGVJc0FuaW1hdGVkVHlwZSkgc2hhcnBPcHRpb25zLmFuaW1hdGVkID0gdHJ1ZVxuXG4gICAgaWYgKHNoYXJwICYmIChmaWxlSXNBbmltYXRlZFR5cGUgfHwgZmlsZUhhc0FkanVzdG1lbnRzKSkge1xuICAgICAgaWYgKGZpbGUudGVtcEZpbGVQYXRoKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUudGVtcEZpbGVQYXRoLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS5kYXRhLCBzaGFycE9wdGlvbnMpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuICAgICAgfVxuXG4gICAgICBpZiAoZmlsZUhhc0FkanVzdG1lbnRzKSB7XG4gICAgICAgIGlmIChyZXNpemVPcHRpb25zKSB7XG4gICAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnJlc2l6ZShyZXNpemVPcHRpb25zKVxuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXRPcHRpb25zKSB7XG4gICAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRvRm9ybWF0KGZvcm1hdE9wdGlvbnMuZm9ybWF0LCBmb3JtYXRPcHRpb25zLm9wdGlvbnMpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRyaW1PcHRpb25zKSB7XG4gICAgICAgICAgc2hhcnBGaWxlID0gc2hhcnBGaWxlLnRyaW0odHJpbU9wdGlvbnMpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsZVN1cHBvcnRzUmVzaXplIHx8IGlzSW1hZ2UoZmlsZS5taW1ldHlwZSkpIHtcbiAgICAgIGRpbWVuc2lvbnMgPSBhd2FpdCBnZXRJbWFnZVNpemUoZmlsZSlcbiAgICAgIGZpbGVEYXRhLndpZHRoID0gZGltZW5zaW9ucy53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZGltZW5zaW9ucy5oZWlnaHRcbiAgICB9XG5cbiAgICBpZiAoc2hhcnBGaWxlKSB7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHNoYXJwRmlsZS5tZXRhZGF0YSgpXG4gICAgICBmaWxlQnVmZmVyID0gYXdhaXQgc2hhcnBGaWxlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcbiAgICAgIDsoeyBleHQsIG1pbWUgfSA9IGF3YWl0IGZyb21CdWZmZXIoZmlsZUJ1ZmZlci5kYXRhKSkgLy8gVGhpcyBpcyBnZXR0aW5nIGFuIGluY29ycmVjdCBnaWYgaGVpZ2h0IGJhY2suXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGZpbGVCdWZmZXIuaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmluZm8uc2l6ZVxuXG4gICAgICAvLyBBbmltYXRlZCBHSUZzICsgV2ViUCBhZ2dyZWdhdGUgdGhlIGhlaWdodCBmcm9tIGV2ZXJ5IGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHVzZSBkaXZpZGUgYnkgbnVtYmVyIG9mIHBhZ2VzXG4gICAgICBpZiAobWV0YWRhdGEucGFnZXMpIHtcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzXG4gICAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5kYXRhLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtaW1lID0gZmlsZS5taW1ldHlwZVxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlLnNpemVcblxuICAgICAgaWYgKGZpbGUubmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgIGV4dCA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHQgPSAnJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkdXN0IFNWRyBtaW1lIHR5cGUuIGZyb21CdWZmZXIgbW9kaWZpZXMgaXQuXG4gICAgaWYgKG1pbWUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV4dCA9PT0gJ3N2ZycpIG1pbWUgPSAnaW1hZ2Uvc3ZnK3htbCdcbiAgICBmaWxlRGF0YS5taW1lVHlwZSA9IG1pbWVcblxuICAgIGNvbnN0IGJhc2VGaWxlbmFtZSA9IHNhbml0aXplKGZpbGUubmFtZS5zdWJzdHJpbmcoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpIHx8IGZpbGUubmFtZSlcbiAgICBmc1NhZmVOYW1lID0gYCR7YmFzZUZpbGVuYW1lfSR7ZXh0ID8gYC4ke2V4dH1gIDogJyd9YFxuXG4gICAgaWYgKCFvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzKSB7XG4gICAgICBmc1NhZmVOYW1lID0gYXdhaXQgZ2V0U2FmZUZpbGVOYW1lKHtcbiAgICAgICAgY29sbGVjdGlvblNsdWc6IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgZGVzaXJlZEZpbGVuYW1lOiBmc1NhZmVOYW1lLFxuICAgICAgICByZXEsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZpbGVEYXRhLmZpbGVuYW1lID0gZnNTYWZlTmFtZVxuICAgIGxldCBmaWxlRm9yUmVzaXplID0gZmlsZVxuXG4gICAgaWYgKGNyb3BEYXRhKSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGNyb3BwZWRJbWFnZSwgaW5mbyB9ID0gYXdhaXQgY3JvcEltYWdlKHsgY3JvcERhdGEsIGRpbWVuc2lvbnMsIGZpbGUgfSlcblxuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogY3JvcHBlZEltYWdlLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIGZpbGVGb3JSZXNpemUgPSB7XG4gICAgICAgIC4uLmZpbGUsXG4gICAgICAgIGRhdGE6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgc2l6ZTogaW5mby5zaXplLFxuICAgICAgfVxuICAgICAgZmlsZURhdGEud2lkdGggPSBpbmZvLndpZHRoXG4gICAgICBmaWxlRGF0YS5oZWlnaHQgPSBpbmZvLmhlaWdodFxuICAgICAgaWYgKGZpbGVJc0FuaW1hdGVkVHlwZSkge1xuICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHNoYXJwRmlsZS5tZXRhZGF0YSgpXG4gICAgICAgIGZpbGVEYXRhLmhlaWdodCA9IG1ldGFkYXRhLnBhZ2VzID8gaW5mby5oZWlnaHQgLyBtZXRhZGF0YS5wYWdlcyA6IGluZm8uaGVpZ2h0XG4gICAgICB9XG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGluZm8uc2l6ZVxuXG4gICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgYXdhaXQgZnMucHJvbWlzZXMud3JpdGVGaWxlKGZpbGUudGVtcEZpbGVQYXRoLCBjcm9wcGVkSW1hZ2UpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVxLmZpbGVzLmZpbGUgPSBmaWxlRm9yUmVzaXplXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goe1xuICAgICAgICBidWZmZXI6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIC8vIElmIHVzaW5nIHRlbXAgZmlsZXMgYW5kIHRoZSBpbWFnZSBpcyBiZWluZyByZXNpemVkLCB3cml0ZSB0aGUgZmlsZSB0byB0aGUgdGVtcCBwYXRoXG4gICAgICBpZiAoZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhKSAvLyB3cml0ZSBmaWxlQnVmZmVyIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBBc3NpZ24gdGhlIF9wb3NzaWJseSBtb2RpZmllZF8gZmlsZSB0byB0aGUgcmVxdWVzdCBvYmplY3RcbiAgICAgICAgICByZXEuZmlsZXMuZmlsZSA9IHtcbiAgICAgICAgICAgIC4uLmZpbGUsXG4gICAgICAgICAgICBkYXRhOiBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSxcbiAgICAgICAgICAgIHNpemU6IGZpbGVCdWZmZXI/LmluZm8uc2l6ZSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsZVN1cHBvcnRzUmVzaXplICYmIChBcnJheS5pc0FycmF5KGltYWdlU2l6ZXMpIHx8IGZvY2FsUG9pbnRFbmFibGVkICE9PSBmYWxzZSkpIHtcbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXMgPSB7fVxuICAgICAgY29uc3QgeyBmb2NhbFBvaW50LCBzaXplRGF0YSwgc2l6ZXNUb1NhdmUgfSA9IGF3YWl0IHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICAgICAgICBjb25maWc6IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGRpbWVuc2lvbnM6ICFjcm9wRGF0YVxuICAgICAgICAgID8gZGltZW5zaW9uc1xuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAuLi5kaW1lbnNpb25zLFxuICAgICAgICAgICAgICBoZWlnaHQ6IGZpbGVEYXRhLmhlaWdodCxcbiAgICAgICAgICAgICAgd2lkdGg6IGZpbGVEYXRhLndpZHRoLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgZmlsZTogZmlsZUZvclJlc2l6ZSxcbiAgICAgICAgbWltZVR5cGU6IGZpbGVEYXRhLm1pbWVUeXBlLFxuICAgICAgICByZXEsXG4gICAgICAgIHNhdmVkRmlsZW5hbWU6IGZzU2FmZU5hbWUgfHwgZmlsZS5uYW1lLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgICB1cGxvYWRFZGl0cyxcbiAgICAgIH0pXG5cbiAgICAgIGZpbGVEYXRhLnNpemVzID0gc2l6ZURhdGFcbiAgICAgIGZpbGVEYXRhLmZvY2FsWCA9IGZvY2FsUG9pbnQ/LnhcbiAgICAgIGZpbGVEYXRhLmZvY2FsWSA9IGZvY2FsUG9pbnQ/LnlcbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goLi4uc2l6ZXNUb1NhdmUpXG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXEucGF5bG9hZC5sb2dnZXIuZXJyb3IoeyBlcnIsIG1zZzogJ0Vycm9yIHVwbG9hZGluZyBmaWxlJyB9KVxuICAgIHRocm93IG5ldyBGaWxlVXBsb2FkRXJyb3IocmVxLnQpXG4gIH1cblxuICBuZXdEYXRhID0ge1xuICAgIC4uLm5ld0RhdGEsXG4gICAgLi4uZmlsZURhdGEsXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRhdGE6IG5ld0RhdGEsXG4gICAgZmlsZXM6IGZpbGVzVG9TYXZlLFxuICB9XG59XG5cbi8qKlxuICogUGFyc2UgdXBsb2FkIGVkaXRzIGZyb20gcmVxIG9yIGluY29taW5nIGRhdGFcbiAqL1xuZnVuY3Rpb24gcGFyc2VVcGxvYWRFZGl0c0Zyb21SZXFPckluY29taW5nRGF0YShhcmdzOiB7XG4gIGRhdGE6IHVua25vd25cbiAgb3BlcmF0aW9uOiAnY3JlYXRlJyB8ICd1cGRhdGUnXG4gIG9yaWdpbmFsRG9jOiB1bmtub3duXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Rcbn0pOiBVcGxvYWRFZGl0cyB7XG4gIGNvbnN0IHsgZGF0YSwgb3BlcmF0aW9uLCBvcmlnaW5hbERvYywgcmVxIH0gPSBhcmdzXG5cbiAgLy8gR2V0IGludGVuZGVkIGZvY2FsIHBvaW50IGNoYW5nZSBmcm9tIHF1ZXJ5IHN0cmluZyBvciBpbmNvbWluZyBkYXRhXG4gIGNvbnN0IHtcbiAgICB1cGxvYWRFZGl0cyA9IHt9LFxuICB9OiB7XG4gICAgdXBsb2FkRWRpdHM/OiBVcGxvYWRFZGl0c1xuICB9ID0gcmVxLnF1ZXJ5IHx8IHt9XG5cbiAgaWYgKHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQpIHJldHVybiB1cGxvYWRFZGl0c1xuXG4gIGNvbnN0IGluY29taW5nRGF0YSA9IGRhdGEgYXMgRmlsZURhdGFcbiAgY29uc3Qgb3JpZ0RvYyA9IG9yaWdpbmFsRG9jIGFzIEZpbGVEYXRhXG5cbiAgLy8gSWYgbm8gY2hhbmdlIGluIGZvY2FsIHBvaW50LCByZXR1cm4gdW5kZWZpbmVkLlxuICAvLyBUaGlzIHByZXZlbnRzIGEgcmVmb2NhbCBvcGVyYXRpb24gdHJpZ2dlcmVkIGZyb20gYWRtaW4sIGJlY2F1c2UgaXQgYWx3YXlzIHNlbmRzIHRoZSBmb2NhbCBwb2ludC5cbiAgaWYgKG9yaWdEb2MgJiYgaW5jb21pbmdEYXRhLmZvY2FsWCA9PT0gb3JpZ0RvYy5mb2NhbFggJiYgaW5jb21pbmdEYXRhLmZvY2FsWSA9PT0gb3JpZ0RvYy5mb2NhbFkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBpZiAoaW5jb21pbmdEYXRhLmZvY2FsWCAmJiBpbmNvbWluZ0RhdGEuZm9jYWxZKSB7XG4gICAgdXBsb2FkRWRpdHMuZm9jYWxQb2ludCA9IHtcbiAgICAgIHg6IGluY29taW5nRGF0YS5mb2NhbFgsXG4gICAgICB5OiBpbmNvbWluZ0RhdGEuZm9jYWxZLFxuICAgIH1cbiAgICByZXR1cm4gdXBsb2FkRWRpdHNcbiAgfVxuXG4gIC8vIElmIG5vIGZvY2FsIHBvaW50IGlzIHNldCwgZGVmYXVsdCB0byBjZW50ZXJcbiAgaWYgKG9wZXJhdGlvbiA9PT0gJ2NyZWF0ZScpIHtcbiAgICB1cGxvYWRFZGl0cy5mb2NhbFBvaW50ID0ge1xuICAgICAgeDogNTAsXG4gICAgICB5OiA1MCxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVwbG9hZEVkaXRzXG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVGaWxlRGF0YSIsImNvbGxlY3Rpb24iLCJjb25maWciLCJjb2xsZWN0aW9uQ29uZmlnIiwiZGF0YSIsIm9wZXJhdGlvbiIsIm9yaWdpbmFsRG9jIiwib3ZlcndyaXRlRXhpc3RpbmdGaWxlcyIsInJlcSIsInRocm93T25NaXNzaW5nRmlsZSIsInVwbG9hZCIsImZpbGVzIiwiZmlsZSIsInVuZGVmaW5lZCIsInVwbG9hZEVkaXRzIiwicGFyc2VVcGxvYWRFZGl0c0Zyb21SZXFPckluY29taW5nRGF0YSIsImRpc2FibGVMb2NhbFN0b3JhZ2UiLCJmb2NhbFBvaW50IiwiZm9jYWxQb2ludEVuYWJsZWQiLCJmb3JtYXRPcHRpb25zIiwiaW1hZ2VTaXplcyIsInJlc2l6ZU9wdGlvbnMiLCJzdGF0aWNEaXIiLCJ0cmltT3B0aW9ucyIsInN0YXRpY1BhdGgiLCJpbmRleE9mIiwicGF0aCIsInJlc29sdmUiLCJwYXRocyIsImNvbmZpZ0RpciIsImZpbGVuYW1lIiwidXJsIiwic3RhcnRzV2l0aCIsImZpbGVQYXRoIiwicmVzcG9uc2UiLCJnZXRGaWxlQnlQYXRoIiwiZ2V0RXh0ZXJuYWxGaWxlIiwidXBsb2FkQ29uZmlnIiwiZXJyIiwiRXJyb3IiLCJGaWxlUmV0cmlldmFsRXJyb3IiLCJ0IiwibWVzc2FnZSIsIk1pc3NpbmdGaWxlIiwibWtkaXJwIiwic3luYyIsIm5ld0RhdGEiLCJmaWxlc1RvU2F2ZSIsImZpbGVEYXRhIiwiZmlsZUlzQW5pbWF0ZWRUeXBlIiwiaW5jbHVkZXMiLCJtaW1ldHlwZSIsImNyb3BEYXRhIiwiY3JvcCIsImZpbGVTdXBwb3J0c1Jlc2l6ZSIsImNhblJlc2l6ZUltYWdlIiwiZnNTYWZlTmFtZSIsInNoYXJwRmlsZSIsImRpbWVuc2lvbnMiLCJmaWxlQnVmZmVyIiwiZXh0IiwibWltZSIsImZpbGVIYXNBZGp1c3RtZW50cyIsIkJvb2xlYW4iLCJ0ZW1wRmlsZVBhdGgiLCJzaGFycE9wdGlvbnMiLCJhbmltYXRlZCIsInNoYXJwIiwicm90YXRlIiwicmVzaXplIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbSIsImlzSW1hZ2UiLCJnZXRJbWFnZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm1ldGFkYXRhIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsImZyb21CdWZmZXIiLCJpbmZvIiwiZmlsZXNpemUiLCJzaXplIiwicGFnZXMiLCJsZW5ndGgiLCJuYW1lIiwic3BsaXQiLCJwb3AiLCJtaW1lVHlwZSIsImJhc2VGaWxlbmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJnZXRTYWZlRmlsZU5hbWUiLCJjb2xsZWN0aW9uU2x1ZyIsInNsdWciLCJkZXNpcmVkRmlsZW5hbWUiLCJmaWxlRm9yUmVzaXplIiwiY3JvcHBlZEltYWdlIiwiY3JvcEltYWdlIiwicHVzaCIsImJ1ZmZlciIsImZzIiwicHJvbWlzZXMiLCJ3cml0ZUZpbGUiLCJBcnJheSIsImlzQXJyYXkiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJzaXplRGF0YSIsInNpemVzVG9TYXZlIiwicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsInNhdmVkRmlsZW5hbWUiLCJzaXplcyIsImZvY2FsWCIsIngiLCJmb2NhbFkiLCJ5IiwicGF5bG9hZCIsImxvZ2dlciIsImVycm9yIiwibXNnIiwiRmlsZVVwbG9hZEVycm9yIiwiYXJncyIsInF1ZXJ5IiwiaW5jb21pbmdEYXRhIiwib3JpZ0RvYyJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7OytCQTBDYUE7OztlQUFBQTs7OzBCQXZDYzsyREFDWjsrREFDSTs2REFDRjt5RUFDSTs4REFDSDt3QkFPMkI7MkVBQ2Q7dUVBQ0o7a0VBQ0w7aUNBQ1U7c0VBQ047cUVBQ0Q7d0VBQ0c7cUVBQ2E7Z0VBQ3JCOzs7Ozs7QUFrQmIsTUFBTUEsbUJBQW1CLE9BQVUsRUFDeENDLFlBQVksRUFBRUMsUUFBUUMsZ0JBQWdCLEVBQUUsRUFDeENELE1BQU0sRUFDTkUsSUFBSSxFQUNKQyxTQUFTLEVBQ1RDLFdBQVcsRUFDWEMsc0JBQXNCLEVBQ3RCQyxHQUFHLEVBQ0hDLGtCQUFrQixFQUNWO0lBQ1IsSUFB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
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgeyBjcm9wSW1hZ2UgfSBmcm9tICcuL2Nyb3BJbWFnZSdcbmltcG9ydCB7IGdldEV4dGVybmFsRmlsZSB9IGZyb20gJy4vZ2V0RXh0ZXJuYWxGaWxlJ1xuaW1wb3J0IGdldEZpbGVCeVBhdGggZnJvbSAnLi9nZXRGaWxlQnlQYXRoJ1xuaW1wb3J0IGdldEltYWdlU2l6ZSBmcm9tICcuL2dldEltYWdlU2l6ZSdcbmltcG9ydCBnZXRTYWZlRmlsZU5hbWUgZnJvbSAnLi9nZXRTYWZlRmlsZW5hbWUnXG5pbXBvcnQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyBmcm9tICcuL2ltYWdlUmVzaXplcidcbmltcG9ydCBpc0ltYWdlIGZyb20gJy4vaXNJbWFnZSdcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIGRhdGE6IFRcbiAgb3BlcmF0aW9uOiAnY3JlYXRlJyB8ICd1cGRhdGUnXG4gIG9yaWdpbmFsRG9jPzogVFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzPzogYm9vbGVhblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHRocm93T25NaXNzaW5nRmlsZT86IGJvb2xlYW5cbn1cblxudHlwZSBSZXN1bHQ8VD4gPSBQcm9taXNlPHtcbiAgZGF0YTogVFxuICBmaWxlczogRmlsZVRvU2F2ZVtdXG59PlxuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVGaWxlRGF0YSA9IGFzeW5jIDxUPih7XG4gIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gIGNvbmZpZyxcbiAgZGF0YSxcbiAgb3BlcmF0aW9uLFxuICBvcmlnaW5hbERvYyxcbiAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyxcbiAgcmVxLFxuICB0aHJvd09uTWlzc2luZ0ZpbGUsXG59OiBBcmdzPFQ+KTogUmVzdWx0PFQ+ID0+IHtcbiAgaWYgKCFjb2xsZWN0aW9uQ29uZmlnLnVwbG9hZCkge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgZmlsZXM6IFtdLFxuICAgIH1cbiAgfVxuXG4gIGxldCBmaWxlID0gcmVxLmZpbGVzPy5maWxlIHx8IHVuZGVmaW5lZFxuXG4gIGNvbnN0IHVwbG9hZEVkaXRzID0gcGFyc2VVcGxvYWRFZGl0c0Zyb21SZXFPckluY29taW5nRGF0YSh7XG4gICAgZGF0YSxcbiAgICBvcGVyYXRpb24sXG4gICAgb3JpZ2luYWxEb2MsXG4gICAgcmVxLFxuICB9KVxuXG4gIGNvbnN0IHtcbiAgICBkaXNhYmxlTG9jYWxTdG9yYWdlLFxuICAgIGZvY2FsUG9pbnQ6IGZvY2FsUG9pbnRFbmFibGVkLFxuICAgIGZvcm1hdE9wdGlvbnMsXG4gICAgaW1hZ2VTaXplcyxcbiAgICByZXNpemVPcHRpb25zLFxuICAgIHN0YXRpY0RpcixcbiAgICB0cmltT3B0aW9ucyxcbiAgfSA9IGNvbGxlY3Rpb25Db25maWcudXBsb2FkXG5cbiAgbGV0IHN0YXRpY1BhdGggPSBzdGF0aWNEaXJcbiAgaWYgKHN0YXRpY0Rpci5pbmRleE9mKCcvJykgIT09IDApIHtcbiAgICBzdGF0aWNQYXRoID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5wYXRocy5jb25maWdEaXIsIHN0YXRpY0RpcilcbiAgfVxuXG4gIGlmICghZmlsZSAmJiB1cGxvYWRFZGl0cyAmJiBkYXRhKSB7XG4gICAgY29uc3QgeyBmaWxlbmFtZSwgdXJsIH0gPSBkYXRhIGFzIEZpbGVEYXRhXG5cbiAgICB0cnkge1xuICAgICAgaWYgKHVybCAmJiB1cmwuc3RhcnRzV2l0aCgnLycpICYmICFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RmlsZUJ5UGF0aChmaWxlUGF0aClcbiAgICAgICAgZmlsZSA9IHJlc3BvbnNlIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfSBlbHNlIGlmIChmaWxlbmFtZSAmJiB1cmwpIHtcbiAgICAgICAgZmlsZSA9IChhd2FpdCBnZXRFeHRlcm5hbEZpbGUoe1xuICAgICAgICAgIGRhdGE6IGRhdGEgYXMgRmlsZURhdGEsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHVwbG9hZENvbmZpZzogY29sbGVjdGlvbkNvbmZpZy51cGxvYWQsXG4gICAgICAgIH0pKSBhcyBVcGxvYWRlZEZpbGVcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRmlsZVJldHJpZXZhbEVycm9yKHJlcS50LCBlcnIubWVzc2FnZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIWZpbGUpIHtcbiAgICBpZiAodGhyb3dPbk1pc3NpbmdGaWxlKSB0aHJvdyBuZXcgTWlzc2luZ0ZpbGUocmVxLnQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBpZiAoIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICBta2RpcnAuc3luYyhzdGF0aWNQYXRoKVxuICB9XG5cbiAgbGV0IG5ld0RhdGEgPSBkYXRhXG4gIGNvbnN0IGZpbGVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXVxuICBjb25zdCBmaWxlRGF0YTogUGFydGlhbDxGaWxlRGF0YT4gPSB7fVxuICBjb25zdCBmaWxlSXNBbmltYXRlZFR5cGUgPSBbJ2ltYWdlL2F2aWYnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL3dlYnAnXS5pbmNsdWRlcyhmaWxlLm1pbWV0eXBlKVxuICBjb25zdCBjcm9wRGF0YSA9XG4gICAgdHlwZW9mIHVwbG9hZEVkaXRzID09PSAnb2JqZWN0JyAmJiAnY3JvcCcgaW4gdXBsb2FkRWRpdHMgPyB1cGxvYWRFZGl0cy5jcm9wIDogdW5kZWZpbmVkXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlU3VwcG9ydHNSZXNpemUgPSBjYW5SZXNpemVJbWFnZShmaWxlLm1pbWV0eXBlKVxuICAgIGxldCBmc1NhZmVOYW1lOiBzdHJpbmdcbiAgICBsZXQgc2hhcnBGaWxlOiBTaGFycCB8IHVuZGVmaW5lZFxuICAgIGxldCBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemUgfCB1bmRlZmluZWRcbiAgICBsZXQgZmlsZUJ1ZmZlcjogeyBkYXRhOiBCdWZmZXI7IGluZm86IE91dHB1dEluZm8gfVxuICAgIGxldCBleHRcbiAgICBsZXQgbWltZTogc3RyaW5nXG4gICAgY29uc3QgZmlsZUhhc0FkanVzdG1lbnRzID1cbiAgICAgIGZpbGVTdXBwb3J0c1Jlc2l6ZSAmJlxuICAgICAgQm9vbGVhbihyZXNpemVPcHRpb25zIHx8IGZvcm1hdE9wdGlvbnMgfHwgaW1hZ2VTaXplcyB8fCB0cmltT3B0aW9ucyB8fCBmaWxlLnRlbXBGaWxlUGF0aClcblxuICAgIGNvbnN0IHNoYXJwT3B0aW9uczogU2hhcnBPcHRpb25zID0ge31cblxuICAgIGlmIChmaWxlSXNBbmltYXRlZFR5cGUpIHNoYXJwT3B0aW9ucy5hbmltYXRlZCA9IHRydWVcblxuICAgIGlmIChzaGFycCAmJiAoZmlsZUlzQW5pbWF0ZWRUeXBlIHx8IGZpbGVIYXNBZGp1c3RtZW50cykpIHtcbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVIYXNBZGp1c3RtZW50cykge1xuICAgICAgICBpZiAocmVzaXplT3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS5yZXNpemUocmVzaXplT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0T3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50b0Zvcm1hdChmb3JtYXRPcHRpb25zLmZvcm1hdCwgZm9ybWF0T3B0aW9ucy5vcHRpb25zKVxuICAgICAgICB9XG4gICAgICAgIGlmICh0cmltT3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50cmltKHRyaW1PcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSB8fCBpc0ltYWdlKGZpbGUubWltZXR5cGUpKSB7XG4gICAgICBkaW1lbnNpb25zID0gYXdhaXQgZ2V0SW1hZ2VTaXplKGZpbGUpXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGRpbWVuc2lvbnMud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuXG4gICAgaWYgKHNoYXJwRmlsZSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgZmlsZUJ1ZmZlciA9IGF3YWl0IHNoYXJwRmlsZS50b0J1ZmZlcih7IHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlIH0pXG4gICAgICA7KHsgZXh0LCBtaW1lIH0gPSBhd2FpdCBmcm9tQnVmZmVyKGZpbGVCdWZmZXIuZGF0YSkpIC8vIFRoaXMgaXMgZ2V0dGluZyBhbiBpbmNvcnJlY3QgZ2lmIGhlaWdodCBiYWNrLlxuICAgICAgZmlsZURhdGEud2lkdGggPSBmaWxlQnVmZmVyLmluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5pbmZvLnNpemVcblxuICAgICAgLy8gQW5pbWF0ZWQgR0lGcyArIFdlYlAgYWdncmVnYXRlIHRoZSBoZWlnaHQgZnJvbSBldmVyeSBmcmFtZSwgc28gd2UgbmVlZCB0byB1c2UgZGl2aWRlIGJ5IG51bWJlciBvZiBwYWdlc1xuICAgICAgaWYgKG1ldGFkYXRhLnBhZ2VzKSB7XG4gICAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHQgLyBtZXRhZGF0YS5wYWdlc1xuICAgICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuZGF0YS5sZW5ndGhcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWltZSA9IGZpbGUubWltZXR5cGVcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZS5zaXplXG5cbiAgICAgIGlmIChmaWxlLm5hbWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKS5zcGxpdCgnPycpWzBdXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleHQgPSAnJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkanVzdCBTVkcgbWltZSB0eXBlLiBmcm9tQnVmZmVyIG1vZGlmaWVzIGl0LlxuICAgIGlmIChtaW1lID09PSAnYXBwbGljYXRpb24veG1sJyAmJiBleHQgPT09ICdzdmcnKSBtaW1lID0gJ2ltYWdlL3N2Zyt4bWwnXG4gICAgZmlsZURhdGEubWltZVR5cGUgPSBtaW1lXG5cbiAgICBjb25zdCBiYXNlRmlsZW5hbWUgPSBzYW5pdGl6ZShmaWxlLm5hbWUuc3Vic3RyaW5nKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKSB8fCBmaWxlLm5hbWUpXG4gICAgZnNTYWZlTmFtZSA9IGAke2Jhc2VGaWxlbmFtZX0ke2V4dCA/IGAuJHtleHR9YCA6ICcnfWBcblxuICAgIGlmICghb3ZlcndyaXRlRXhpc3RpbmdGaWxlcykge1xuICAgICAgZnNTYWZlTmFtZSA9IGF3YWl0IGdldFNhZmVGaWxlTmFtZSh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGRlc2lyZWRGaWxlbmFtZTogZnNTYWZlTmFtZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBmaWxlRGF0YS5maWxlbmFtZSA9IGZzU2FmZU5hbWVcbiAgICBsZXQgZmlsZUZvclJlc2l6ZSA9IGZpbGVcblxuICAgIGlmIChjcm9wRGF0YSkge1xuICAgICAgY29uc3QgeyBkYXRhOiBjcm9wcGVkSW1hZ2UsIGluZm8gfSA9IGF3YWl0IGNyb3BJbWFnZSh7XG4gICAgICAgIGNyb3BEYXRhLFxuICAgICAgICBkaW1lbnNpb25zLFxuICAgICAgICBmaWxlLFxuICAgICAgICBoZWlnaHRJblBpeGVsczogdXBsb2FkRWRpdHMuaGVpZ2h0SW5QaXhlbHMsXG4gICAgICAgIHdpZHRoSW5QaXhlbHM6IHVwbG9hZEVkaXRzLndpZHRoSW5QaXhlbHMsXG4gICAgICB9KVxuXG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKHtcbiAgICAgICAgYnVmZmVyOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgZmlsZUZvclJlc2l6ZSA9IHtcbiAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgZGF0YTogY3JvcHBlZEltYWdlLFxuICAgICAgICBzaXplOiBpbmZvLnNpemUsXG4gICAgICB9XG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGluZm8uaGVpZ2h0XG4gICAgICBpZiAoZmlsZUlzQW5pbWF0ZWRUeXBlKSB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnBGaWxlLm1ldGFkYXRhKClcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gbWV0YWRhdGEucGFnZXMgPyBpbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzIDogaW5mby5oZWlnaHRcbiAgICAgIH1cbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gaW5mby5zaXplXG5cbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGNyb3BwZWRJbWFnZSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEuZmlsZXMuZmlsZSA9IGZpbGVGb3JSZXNpemVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgLy8gSWYgdXNpbmcgdGVtcCBmaWxlcyBhbmQgdGhlIGltYWdlIGlzIGJlaW5nIHJlc2l6ZWQsIHdyaXRlIHRoZSBmaWxlIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIGlmIChmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFzc2lnbiB0aGUgX3Bvc3NpYmx5IG1vZGlmaWVkXyBmaWxlIHRvIHRoZSByZXF1ZXN0IG9iamVjdFxuICAgICAgICAgIHJlcS5maWxlcy5maWxlID0ge1xuICAgICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICAgIGRhdGE6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICAgICAgc2l6ZTogZmlsZUJ1ZmZlcj8uaW5mby5zaXplLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWxlU3VwcG9ydHNSZXNpemUgJiYgKEFycmF5LmlzQXJyYXkoaW1hZ2VTaXplcykgfHwgZm9jYWxQb2ludEVuYWJsZWQgIT09IGZhbHNlKSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IGZvY2FsUG9pbnQsIHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICAgIHVwbG9hZEVkaXRzLFxuICAgICAgfSlcblxuICAgICAgZmlsZURhdGEuc2l6ZXMgPSBzaXplRGF0YVxuICAgICAgZmlsZURhdGEuZm9jYWxYID0gZm9jYWxQb2ludD8ueFxuICAgICAgZmlsZURhdGEuZm9jYWxZID0gZm9jYWxQb2ludD8ueVxuICAgICAgZmlsZXNUb1NhdmUucHVzaCguLi5zaXplc1RvU2F2ZSlcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJlcS5wYXlsb2FkLmxvZ2dlci5lcnJvcih7IGVyciwgbXNnOiAnRXJyb3IgdXBsb2FkaW5nIGZpbGUnIH0pXG4gICAgdGhyb3cgbmV3IEZpbGVVcGxvYWRFcnJvcihyZXEudClcbiAgfVxuXG4gIG5ld0RhdGEgPSB7XG4gICAgLi4ubmV3RGF0YSxcbiAgICAuLi5maWxlRGF0YSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3RGF0YSxcbiAgICBmaWxlczogZmlsZXNUb1NhdmUsXG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSB1cGxvYWQgZWRpdHMgZnJvbSByZXEgb3IgaW5jb21pbmcgZGF0YVxuICovXG5mdW5jdGlvbiBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKGFyZ3M6IHtcbiAgZGF0YTogdW5rbm93blxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M6IHVua25vd25cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxufSk6IFVwbG9hZEVkaXRzIHtcbiAgY29uc3QgeyBkYXRhLCBvcGVyYXRpb24sIG9yaWdpbmFsRG9jLCByZXEgfSA9IGFyZ3NcblxuICAvLyBHZXQgaW50ZW5kZWQgZm9jYWwgcG9pbnQgY2hhbmdlIGZyb20gcXVlcnkgc3RyaW5nIG9yIGluY29taW5nIGRhdGFcbiAgY29uc3QgdXBsb2FkRWRpdHMgPVxuICAgIHJlcS5xdWVyeT8udXBsb2FkRWRpdHMgJiYgdHlwZW9mIHJlcS5xdWVyeS51cGxvYWRFZGl0cyA9PT0gJ29iamVjdCdcbiAgICAgID8gKHJlcS5xdWVyeS51cGxvYWRFZGl0cyBhcyBVcGxvYWRFZGl0cylcbiAgICAgIDoge31cblxuICBpZiAodXBsb2FkRWRpdHMuZm9jYWxQb2ludCkgcmV0dXJuIHVwbG9hZEVkaXRzXG5cbiAgY29uc3QgaW5jb21pbmdEYXRhID0gZGF0YSBhcyBGaWxlRGF0YVxuICBjb25zdCBvcmlnRG9jID0gb3JpZ2luYWxEb2MgYXMgRmlsZURhdGFcblxuICAvLyBJZiBubyBjaGFuZ2UgaW4gZm9jYWwgcG9pbnQsIHJldHVybiB1bmRlZmluZWQuXG4gIC8vIFRoaXMgcHJldmVudHMgYSByZWZvY2FsIG9wZXJhdGlvbiB0cmlnZ2VyZWQgZnJvbSBhZG1pbiwgYmVjYXVzZSBpdCBhbHdheXMgc2VuZHMgdGhlIGZvY2FsIHBvaW50LlxuICBpZiAob3JpZ0RvYyAmJiBpbmNvbWluZ0RhdGEuZm9jYWxYID09PSBvcmlnRG9jLmZvY2FsWCAmJiBpbmNvbWluZ0RhdGEuZm9jYWxZID09PSBvcmlnRG9jLmZvY2FsWSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGlmIChpbmNvbWluZ0RhdGEuZm9jYWxYICYmIGluY29taW5nRGF0YS5mb2NhbFkpIHtcbiAgICB1cGxvYWRFZGl0cy5mb2NhbFBvaW50ID0ge1xuICAgICAgeDogaW5jb21pbmdEYXRhLmZvY2FsWCxcbiAgICAgIHk6IGluY29taW5nRGF0YS5mb2NhbFksXG4gICAgfVxuICAgIHJldHVybiB1cGxvYWRFZGl0c1xuICB9XG5cbiAgLy8gSWYgbm8gZm9jYWwgcG9pbnQgaXMgc2V0LCBkZWZhdWx0IHRvIGNlbnRlclxuICBpZiAob3BlcmF0aW9uID09PSAnY3JlYXRlJykge1xuICAgIHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQgPSB7XG4gICAgICB4OiA1MCxcbiAgICAgIHk6IDUwLFxuICAgIH1cbiAgfVxuICByZXR1cm4gdXBsb2FkRWRpdHNcbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZUZpbGVEYXRhIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJkYXRhIiwib3BlcmF0aW9uIiwib3JpZ2luYWxEb2MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwicmVxIiwidGhyb3dPbk1pc3NpbmdGaWxlIiwidXBsb2FkIiwiZmlsZXMiLCJmaWxlIiwidW5kZWZpbmVkIiwidXBsb2FkRWRpdHMiLCJwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhIiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsImZvY2FsUG9pbnQiLCJmb2NhbFBvaW50RW5hYmxlZCIsImZvcm1hdE9wdGlvbnMiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsInN0YXRpY0RpciIsInRyaW1PcHRpb25zIiwic3RhdGljUGF0aCIsImluZGV4T2YiLCJwYXRoIiwicmVzb2x2ZSIsInBhdGhzIiwiY29uZmlnRGlyIiwiZmlsZW5hbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwiZmlsZVBhdGgiLCJyZXNwb25zZSIsImdldEZpbGVCeVBhdGgiLCJnZXRFeHRlcm5hbEZpbGUiLCJ1cGxvYWRDb25maWciLCJlcnIiLCJFcnJvciIsIkZpbGVSZXRyaWV2YWxFcnJvciIsInQiLCJtZXNzYWdlIiwiTWlzc2luZ0ZpbGUiLCJta2RpcnAiLCJzeW5jIiwibmV3RGF0YSIsImZpbGVzVG9TYXZlIiwiZmlsZURhdGEiLCJmaWxlSXNBbmltYXRlZFR5cGUiLCJpbmNsdWRlcyIsIm1pbWV0eXBlIiwiY3JvcERhdGEiLCJjcm9wIiwiZmlsZVN1cHBvcnRzUmVzaXplIiwiY2FuUmVzaXplSW1hZ2UiLCJmc1NhZmVOYW1lIiwic2hhcnBGaWxlIiwiZGltZW5zaW9ucyIsImZpbGVCdWZmZXIiLCJleHQiLCJtaW1lIiwiZmlsZUhhc0FkanVzdG1lbnRzIiwiQm9vbGVhbiIsInRlbXBGaWxlUGF0aCIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwic2hhcnAiLCJyb3RhdGUiLCJyZXNpemUiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltIiwiaXNJbWFnZSIsImdldEltYWdlU2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwibWV0YWRhdGEiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZnJvbUJ1ZmZlciIsImluZm8iLCJmaWxlc2l6ZSIsInNpemUiLCJwYWdlcyIsImxlbmd0aCIsIm5hbWUiLCJzcGxpdCIsInBvcCIsIm1pbWVUeXBlIiwiYmFzZUZpbGVuYW1lIiwic2FuaXRpemUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImdldFNhZmVGaWxlTmFtZSIsImNvbGxlY3Rpb25TbHVnIiwic2x1ZyIsImRlc2lyZWRGaWxlbmFtZSIsImZpbGVGb3JSZXNpemUiLCJjcm9wcGVkSW1hZ2UiLCJjcm9wSW1hZ2UiLCJoZWlnaHRJblBpeGVscyIsIndpZHRoSW5QaXhlbHMiLCJwdXNoIiwiYnVmZmVyIiwiZnMiLCJwcm9taXNlcyIsIndyaXRlRmlsZSIsIkFycmF5IiwiaXNBcnJheSIsInBheWxvYWRVcGxvYWRTaXplcyIsInNpemVEYXRhIiwic2l6ZXNUb1NhdmUiLCJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwic2F2ZWRGaWxlbmFtZSIsInNpemVzIiwiZm9jYWxYIiwieCIsImZvY2FsWSIsInkiLCJwYXlsb2FkIiwibG9nZ2VyIiwiZXJyb3IiLCJtc2ciLCJGaWxlVXBsb2FkRXJyb3IiLCJhcmdzIiwicXVlcnkiLCJpbmNvbWluZ0RhdGEiLCJvcmlnRG9jIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkEwQ2FBOzs7ZUFBQUE7OzswQkF2Q2M7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EAEV,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAKhB,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;
|
|
1
|
+
{"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EAEV,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAKhB,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAmND;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,EACV,WAAW,GACZ,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2LxC"}
|