-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
428 lines (383 loc) · 148 KB
/
Copy pathmain.py
File metadata and controls
428 lines (383 loc) · 148 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
import os
import json
from qgis.PyQt.QtWidgets import QAction, QFileDialog
from qgis.PyQt.QtGui import QIcon
import shutil
from qgis.core import QgsVectorLayer, QgsProject, QgsEditorWidgetSetup, QgsVectorLayer, QgsLayerTreeLayer
plugin_dir = os.path.dirname(__file__)
COUNTRY_VALUE_MAP = [{'Andorra': 'AD'}, {'United Arab Emirates': 'AE'}, {'Afghanistan': 'AF'}, {'Antigua and Barbuda': 'AG'}, {'Anguilla': 'AI'}, {'Albania': 'AL'}, {'Armenia': 'AM'}, {'Angola': 'AO'}, {'Antarctica': 'AQ'}, {'Argentina': 'AR'}, {'American Samoa': 'AS'}, {'Austria': 'AT'}, {'Australia': 'AU'}, {'Aruba': 'AW'}, {'Åland Islands': 'AX'}, {'Azerbaijan': 'AZ'}, {'Bosnia and Herzegovina': 'BA'}, {'Barbados': 'BB'}, {'Bangladesh': 'BD'}, {'Belgium': 'BE'}, {'Burkina Faso': 'BF'}, {'Bulgaria': 'BG'}, {'Bahrain': 'BH'}, {'Burundi': 'BI'}, {'Benin': 'BJ'}, {'Saint Barthélemy': 'BL'}, {'Bermuda': 'BM'}, {'Brunei Darussalam': 'BN'}, {'Bolivia (Plurinational State of)': 'BO'}, {'Bonaire, Sint Eustatius and Saba': 'BQ'}, {'Brazil': 'BR'}, {'Bahamas': 'BS'}, {'Bhutan': 'BT'}, {'Bouvet Island': 'BV'}, {'Botswana': 'BW'}, {'Belarus': 'BY'}, {'Belize': 'BZ'}, {'Canada': 'CA'}, {'Cocos (Keeling) Islands': 'CC'}, {'Congo (the Democratic Republic of the)': 'CD'}, {'Central African Republic': 'CF'}, {'Congo': 'CG'}, {'Switzerland': 'CH'}, {"Côte d'Ivoire": 'CI'}, {'Cook Islands': 'CK'}, {'Chile': 'CL'}, {'Cameroon': 'CM'}, {'China': 'CN'}, {'Colombia': 'CO'}, {'Costa Rica': 'CR'}, {'Cuba': 'CU'}, {'Cabo Verde': 'CV'}, {'Curaçao': 'CW'}, {'Christmas Island': 'CX'}, {'Cyprus': 'CY'}, {'Czechia': 'CZ'}, {'Germany': 'DE'}, {'Djibouti': 'DJ'}, {'Denmark': 'DK'}, {'Dominica': 'DM'}, {'Dominican Republic': 'DO'}, {'Algeria': 'DZ'}, {'Ecuador': 'EC'}, {'Estonia': 'EE'}, {'Egypt': 'EG'}, {'Western Sahara': 'EH'}, {'Eritrea': 'ER'}, {'Spain': 'ES'}, {'Ethiopia': 'ET'}, {'Finland': 'FI'}, {'Fiji': 'FJ'}, {'Falkland Islands [Malvinas]': 'FK'}, {'Micronesia (Federated States of)': 'FM'}, {'Faroe Islands': 'FO'}, {'France': 'FR'}, {'Gabon': 'GA'}, {'United Kingdom of Great Britain and Northern Ireland': 'GB'}, {'Grenada': 'GD'}, {'Georgia': 'GE'}, {'French Guiana': 'GF'}, {'Guernsey': 'GG'}, {'Ghana': 'GH'}, {'Gibraltar': 'GI'}, {'Greenland': 'GL'}, {'Gambia': 'GM'}, {'Guinea': 'GN'}, {'Guadeloupe': 'GP'}, {'Equatorial Guinea': 'GQ'}, {'Greece': 'GR'}, {'South Georgia and the South Sandwich Islands': 'GS'}, {'Guatemala': 'GT'}, {'Guam': 'GU'}, {'Guinea-Bissau': 'GW'}, {'Guyana': 'GY'}, {'Hong Kong': 'HK'}, {'Heard Island and McDonald Islands': 'HM'}, {'Honduras': 'HN'}, {'Croatia': 'HR'}, {'Haiti': 'HT'}, {'Hungary': 'HU'}, {'Indonesia': 'ID'}, {'Ireland': 'IE'}, {'Israel': 'IL'}, {'Isle of Man': 'IM'}, {'India': 'IN'}, {'British Indian Ocean Territory': 'IO'}, {'Iraq': 'IQ'}, {'Iran (Islamic Republic of)': 'IR'}, {'Iceland': 'IS'}, {'Italy': 'IT'}, {'Jersey': 'JE'}, {'Jamaica': 'JM'}, {'Jordan': 'JO'}, {'Japan': 'JP'}, {'Kenya': 'KE'}, {'Kyrgyzstan': 'KG'}, {'Cambodia': 'KH'}, {'Kiribati': 'KI'}, {'Comoros': 'KM'}, {'Saint Kitts and Nevis': 'KN'}, {"Korea (the Democratic People's Republic of)": 'KP'}, {'Korea (the Republic of)': 'KR'}, {'Kuwait': 'KW'}, {'Cayman Islands': 'KY'}, {'Kazakhstan': 'KZ'}, {"Lao People's Democratic Republic": 'LA'}, {'Lebanon': 'LB'}, {'Saint Lucia': 'LC'}, {'Liechtenstein': 'LI'}, {'Sri Lanka': 'LK'}, {'Liberia': 'LR'}, {'Lesotho': 'LS'}, {'Lithuania': 'LT'}, {'Luxembourg': 'LU'}, {'Latvia': 'LV'}, {'Libya': 'LY'}, {'Morocco': 'MA'}, {'Monaco': 'MC'}, {'Moldova (the Republic of)': 'MD'}, {'Montenegro': 'ME'}, {'Saint Martin (French part)': 'MF'}, {'Madagascar': 'MG'}, {'Marshall Islands': 'MH'}, {'North Macedonia': 'MK'}, {'Mali': 'ML'}, {'Myanmar': 'MM'}, {'Mongolia': 'MN'}, {'Macao': 'MO'}, {'Northern Mariana Islands': 'MP'}, {'Martinique': 'MQ'}, {'Mauritania': 'MR'}, {'Montserrat': 'MS'}, {'Malta': 'MT'}, {'Mauritius': 'MU'}, {'Maldives': 'MV'}, {'Malawi': 'MW'}, {'Mexico': 'MX'}, {'Malaysia': 'MY'}, {'Mozambique': 'MZ'}, {'Namibia': 'NA'}, {'New Caledonia': 'NC'}, {'Niger': 'NE'}, {'Norfolk Island': 'NF'}, {'Nigeria': 'NG'}, {'Nicaragua': 'NI'}, {'Netherlands': 'NL'}, {'Norway': 'NO'}, {'Nepal': 'NP'}, {'Nauru': 'NR'}, {'Niue': 'NU'}, {'New Zealand': 'NZ'}, {'Oman': 'OM'}, {'Panama': 'PA'}, {'Peru': 'PE'}, {'French Polynesia': 'PF'}, {'Papua New Guinea': 'PG'}, {'Philippines': 'PH'}, {'Pakistan': 'PK'}, {'Poland': 'PL'}, {'Saint Pierre and Miquelon': 'PM'}, {'Pitcairn': 'PN'}, {'Puerto Rico': 'PR'}, {'Palestine, State of': 'PS'}, {'Portugal': 'PT'}, {'Palau': 'PW'}, {'Paraguay': 'PY'}, {'Qatar': 'QA'}, {'Réunion': 'RE'}, {'Romania': 'RO'}, {'Serbia': 'RS'}, {'Russian Federation': 'RU'}, {'Rwanda': 'RW'}, {'Saudi Arabia': 'SA'}, {'Solomon Islands': 'SB'}, {'Seychelles': 'SC'}, {'Sudan': 'SD'}, {'Sweden': 'SE'}, {'Singapore': 'SG'}, {'Saint Helena, Ascension and Tristan da Cunha': 'SH'}, {'Slovenia': 'SI'}, {'Svalbard and Jan Mayen': 'SJ'}, {'Slovakia': 'SK'}, {'Sierra Leone': 'SL'}, {'San Marino': 'SM'}, {'Senegal': 'SN'}, {'Somalia': 'SO'}, {'Suriname': 'SR'}, {'South Sudan': 'SS'}, {'Sao Tome and Principe': 'ST'}, {'El Salvador': 'SV'}, {'Sint Maarten (Dutch part)': 'SX'}, {'Syrian Arab Republic': 'SY'}, {'Eswatini': 'SZ'}, {'Turks and Caicos Islands': 'TC'}, {'Chad': 'TD'}, {'French Southern Territories': 'TF'}, {'Togo': 'TG'}, {'Thailand': 'TH'}, {'Tajikistan': 'TJ'}, {'Tokelau': 'TK'}, {'Timor-Leste': 'TL'}, {'Turkmenistan': 'TM'}, {'Tunisia': 'TN'}, {'Tonga': 'TO'}, {'Turkey': 'TR'}, {'Trinidad and Tobago': 'TT'}, {'Tuvalu': 'TV'}, {'Taiwan (Province of China)': 'TW'}, {'Tanzania, the United Republic of': 'TZ'}, {'Ukraine': 'UA'}, {'Uganda': 'UG'}, {'United States Minor Outlying Islands': 'UM'}, {'United States of America': 'US'}, {'Uruguay': 'UY'}, {'Uzbekistan': 'UZ'}, {'Holy See': 'VA'}, {'Saint Vincent and the Grenadines': 'VC'}, {'Venezuela (Bolivarian Republic of)': 'VE'}, {'Virgin Islands (British)': 'VG'}, {'Virgin Islands (U.S.)': 'VI'}, {'Viet Nam': 'VN'}, {'Vanuatu': 'VU'}, {'Wallis and Futuna': 'WF'}, {'Samoa': 'WS'}, {'Kosovo': 'XK'}, {'Yemen': 'YE'}, {'Mayotte': 'YT'}, {'South Africa': 'ZA'}, {'Zambia': 'ZM'}, {'Zimbabwe': 'ZW'}]
class BasemapLoaderPlugin:
def __init__(self, iface):
self.iface = iface
def initGui(self):
# --------------------- Add Layers
icon = os.path.join(os.path.join(plugin_dir, 'logo.png'))
self.action_add_layers = QAction(QIcon(icon), 'Add Layers', self.iface.mainWindow())
self.iface.addToolBarIcon(self.action_add_layers)
self.action_add_layers.triggered.connect(self.add_layers)
# --------------------- Export JSON
icon = os.path.join(os.path.join(plugin_dir, 'logo.png'))
self.action_export_json = QAction(QIcon(icon), 'Export JSON', self.iface.mainWindow())
self.iface.addToolBarIcon(self.action_export_json)
self.action_export_json.triggered.connect(self.export_json)
def unload(self):
self.iface.removeToolBarIcon(self.action_add_layers)
del self.action_add_layers
self.iface.removeToolBarIcon(self.action_export_json)
del self.action_export_json
def add_layers(self):
if QgsProject.instance().crs().authid() not in [ 'OGC:CRS84', 'EPSG:4326', 'EPSG:3857']:
self.iface.messageBar().pushMessage('Can only use OFDS with projects in the OGC:CRS84 oordinate reference system (CRS).')
return
filename_details = QFileDialog.getSaveFileName(None, "Select output file ","", '*.gpkg')
# catch cancel being pressed
if not filename_details[0]:
return
# Get new filenme
filename = filename_details[0] + ".gpkg"
# Copy template to desired location
shutil.copyfile(os.path.join(plugin_dir, "template.gpkg"), filename)
# Create a group
groupName="Open Fibre"
root = QgsProject.instance().layerTreeRoot()
group = root.addGroup(groupName)
# Add vector Layers for it
networks = QgsVectorLayer(filename+"|layername=networks", "Networks", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(networks))
QgsProject.instance().addMapLayer(networks, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(2, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(3, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(4, 'TextEdit', {}),
(5, 'TextEdit', {}),
(6, 'TextEdit', {}),
(7, 'TextEdit', {}),
(8, 'TextEdit', {}),
(9, 'TextEdit', {}),
(10, 'TextEdit', {}),
(11, 'TextEdit', {}),
(12, 'TextEdit', {}),
(13, 'TextEdit', {}),
(14, 'TextEdit', {}),
(15, 'TextEdit', {}),
(16, 'TextEdit', {}),
(17, 'TextEdit', {}),
(18, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(19, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(20, 'TextEdit', {}),
(21, 'TextEdit', {}),
(22, 'TextEdit', {}),
(23, 'TextEdit', {}),
]:
networks.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
nodes = QgsVectorLayer(filename+"|layername=nodes", "Nodes", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(nodes))
QgsProject.instance().addMapLayer(nodes, False)
for idx, type, config in [
(0, 'Hidden', {}),
(1, 'UuidGenerator', {}),
(2, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(3, 'ValueRelation', {'AllowMulti': False, 'AllowNull': True, 'Description': None, 'FilterExpression': None, 'Key': 'phases/0/id', 'Layer': 'phases_8ee858d5_8cdf_4bd0_802e_ca18f63121ba', 'LayerName': 'phases', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=phases', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'phases/0/name'}),
(4, 'ValueMap', {'map': [{'Decommissioned': 'decommissioned'}, {'Inactive': 'inactive'}, {'Operational': 'operational'}, {'Planned': 'planned'}, {'Proposed': 'proposed'}, {'Under construction': 'underConstruction'}]}),
(5, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(6, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(7, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(8, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(9, 'ValueMap', {'map': COUNTRY_VALUE_MAP}),
(10, 'ValueMap', {'map': [{'Add drop site': 'addDropSite'}, {'Aggregation point': 'aggregationPoint'}, {'Border crossing': 'borderCrossing'}, {'Cabinet': 'cabinet'}, {'Cable landing point': 'cableLanding'}, {'Data centre': 'dataCentre'}, {'Exchange': 'exchange'}, {'Internet Exchange Point': 'ixp'}, {'Point of Presence': 'pop'}, {'Repeater site': 'repeaterSite'}, {'Substation': 'substation'}, {'Tower': 'tower'}]}),
(11, 'ValueMap', {'map': [{'True': 'true'}, {'False': 'false'}]}),
(12, 'ValueMap', {'map': [{'True': 'true'}, {'False': 'false'}]}),
(13, 'ValueMap', {'map': [{'Internet Protocol': 'ip'}, {'Multi-Protocol Label Switching': 'mpls'}]}),
(14, 'ValueRelation', {'AllowMulti': False, 'AllowNull': True, 'Description': None, 'FilterExpression': None, 'Key': 'organisations/0/id', 'Layer': 'organisations_21efe3a5_2284_426d_9c22_fd495a77ef78', 'LayerName': 'organisations', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=organisations', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'organisations/0/name'}),
(15, 'ValueRelation', {'AllowMulti': False, 'AllowNull': True, 'Description': None, 'FilterExpression': None, 'Key': 'organisations/0/id', 'Layer': 'organisations_21efe3a5_2284_426d_9c22_fd495a77ef78', 'LayerName': 'organisations', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=organisations', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'organisations/0/name'}),
(16, 'Hidden', {}),
(17, 'Hidden', {}),
(18, 'Hidden', {}),
(19, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(20, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
(21, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
]:
nodes.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
spans = QgsVectorLayer(filename+"|layername=spans", "Spans", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(spans))
QgsProject.instance().addMapLayer(spans, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'UuidGenerator', {}),
(2, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(3, 'ValueRelation', {'AllowMulti': False, 'AllowNull': True, 'Description': None, 'FilterExpression': None, 'Key': 'phases/0/id', 'Layer': 'phases_8ee858d5_8cdf_4bd0_802e_ca18f63121ba', 'LayerName': 'phases', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=phases', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'phases/0/name'}),
(4, 'ValueMap', {'map': [{'Decommissioned': 'decommissioned'}, {'Inactive': 'inactive'}, {'Operational': 'operational'}, {'Planned': 'planned'}, {'Proposed': 'proposed'}, {'Under construction': 'underConstruction'}]}),
(5, 'DateTime', {'allow_null': True, 'calendar_popup': True, 'display_format': 'yyyy-MM-dd', 'field_format': 'yyyy-MM-dd', 'field_iso_format': False}),
(6, 'ValueRelation', {'AllowMulti': False, 'AllowNull': True, 'Description': None, 'FilterExpression': None, 'Key': 'nodes/0/id', 'Layer': 'nodes_0e9869d4_065a_4ea3_b956_c3bb74ec5629', 'LayerName': 'nodes', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=nodes', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'nodes/0/name'}),
(7, 'ValueRelation', {'AllowMulti': False, 'AllowNull': True, 'Description': None, 'FilterExpression': None, 'Key': 'nodes/0/id', 'Layer': 'nodes_0e9869d4_065a_4ea3_b956_c3bb74ec5629', 'LayerName': 'nodes', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=nodes', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'nodes/0/name'}),
(8, 'ValueMap', {'map': [{'True': 'true'}, {'False': 'false'}]}),
(9, 'ValueRelation', {'AllowMulti': False, 'AllowNull': True, 'Description': None, 'FilterExpression': None, 'Key': 'organisations/0/id', 'Layer': 'organisations_21efe3a5_2284_426d_9c22_fd495a77ef78', 'LayerName': 'organisations', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=organisations', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'organisations/0/name'}),
(10, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'organisations/0/id', 'Layer': 'organisations_21efe3a5_2284_426d_9c22_fd495a77ef78', 'LayerName': 'organisations', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=organisations', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'organisations/0/name'}),
(11, 'ValueMap', {'map': [{'Coaxial cable': 'coaxial'}, {'Copper wire': 'copper'}, {'Fibre optic cable': 'fibre'}, {'Microwave radio': 'microwave'}]}),
(12, 'ValueMap', {'map': [{'Above ground': 'aboveGround'}, {'Below ground': 'belowGround'}]}),
(13, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(14, 'ValueMap', {'map': [{'True': 'true'}, {'False': 'false'}]}),
(15, 'ValueMap', {'map': [{'G.651.1': 'G.651.1'}, {'G.652': 'G.652'}, {'G.653': 'G.653'}, {'G.654': 'G.654'}, {'G.655': 'G.655'}, {'G.656': 'G.656'}, {'G.657': 'G.657'}]}),
(16, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(17, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(18, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(19, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(20, 'ValueMap', {'map': [{'Dense Wavelength Division Multiplexing': 'dwdm'}, {'Synchronous Digital Hierarchy': 'sdh'}, {'Synchronous Optical Networking': 'sonet'}, {'Time Division Multiplexing': 'tdm'}]}),
(21, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(22, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(23, 'ValueMap', {'map': COUNTRY_VALUE_MAP}),
(24, 'ValueRelation', {'AllowMulti': False, 'AllowNull': True, 'Description': None, 'FilterExpression': None, 'Key': 'organisations/0/id', 'Layer': 'organisations_21efe3a5_2284_426d_9c22_fd495a77ef78', 'LayerName': 'organisations', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=organisations', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'organisations/0/name'}),
(25, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(26, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(27, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(28, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(29, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(30, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
(31, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
]:
spans.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
phases = QgsVectorLayer(filename+"|layername=phases", "Phases", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(phases))
QgsProject.instance().addMapLayer(phases, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'UuidGenerator', {}),
(2, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(3, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(4, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
]:
phases.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
spans_networkProviders = QgsVectorLayer(filename+"|layername=spans_networkProviders", "spans_networkProviders", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(spans_networkProviders))
QgsProject.instance().addMapLayer(spans_networkProviders, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
(2, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'spans/0/id', 'Layer': 'spans_e5dd384f_30da_4801_ba33_f0dc8003d07d', 'LayerName': 'spans', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=spans', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'spans/0/name'}),
(3, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'organisations/0/id', 'Layer': 'organisations_21efe3a5_2284_426d_9c22_fd495a77ef78', 'LayerName': 'organisations', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=organisations', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'organisations/0/name'}),
(4, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
]:
spans_networkProviders.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
phases_funders = QgsVectorLayer(filename+"|layername=phases_funders", "phases_funders", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(phases_funders))
QgsProject.instance().addMapLayer(phases_funders, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
(2, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'phases/0/id', 'Layer': 'phases_8ee858d5_8cdf_4bd0_802e_ca18f63121ba', 'LayerName': 'phases', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=phases', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'phases/0/name'}),
(3, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'organisations/0/id', 'Layer': 'organisations_21efe3a5_2284_426d_9c22_fd495a77ef78', 'LayerName': 'organisations', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=organisations', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'organisations/0/name'}),
(4, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
]:
phases_funders.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
organisations = QgsVectorLayer(filename+"|layername=organisations", "organisations", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(organisations))
QgsProject.instance().addMapLayer(organisations, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'UuidGenerator', {}),
(2, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(3, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(4, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(5, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(6, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(7, 'ValueMap', {'map': COUNTRY_VALUE_MAP}),
(8, 'ValueMap', {'map': [{'Physical infrastructure provider': 'physicalInfrastructureProvider'}, {'Network provider': 'networkProvider'}, {'Supplier': 'supplier'}, {'Funder': 'funder'}]}),
(9, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(10, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(11, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(12, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
]:
organisations.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
nodes_networkProviders = QgsVectorLayer(filename+"|layername=nodes_networkProviders", "nodes_networkProviders", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(nodes_networkProviders))
QgsProject.instance().addMapLayer(nodes_networkProviders, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
(2, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'nodes/0/id', 'Layer': 'nodes_0e9869d4_065a_4ea3_b956_c3bb74ec5629', 'LayerName': 'nodes', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=nodes', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'nodes/0/name'}),
(3, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'organisations/0/id', 'Layer': 'organisations_21efe3a5_2284_426d_9c22_fd495a77ef78', 'LayerName': 'organisations', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=organisations', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'organisations/0/name'}),
(4, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
]:
nodes_networkProviders.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
nodes_internationalConnections = QgsVectorLayer(filename+"|layername=nodes_internationalConnections", "nodes_internationalConnections", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(nodes_internationalConnections))
QgsProject.instance().addMapLayer(nodes_internationalConnections, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
(2, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'nodes/0/id', 'Layer': 'nodes_0e9869d4_065a_4ea3_b956_c3bb74ec5629', 'LayerName': 'nodes', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=nodes', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'nodes/0/name'}),
(3, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(4, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(5, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(6, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(7, 'ValueMap', {'map': COUNTRY_VALUE_MAP}),
]:
nodes_internationalConnections.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
links = QgsVectorLayer(filename+"|layername=links", "links", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(links))
QgsProject.instance().addMapLayer(links, False)
# No editor widget setups?
contracts_relatedPhases = QgsVectorLayer(filename+"|layername=contracts_relatedPhases", "contracts_relatedPhases", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(contracts_relatedPhases))
QgsProject.instance().addMapLayer(contracts_relatedPhases, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
(2, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'contracts/0/id', 'Layer': 'contracts_911f0889_2cd7_4997_aa77_3021639cc7dc', 'LayerName': 'contracts', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=contracts', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'contracts/0/title'}),
(3, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'phases/0/id', 'Layer': 'phases_8ee858d5_8cdf_4bd0_802e_ca18f63121ba', 'LayerName': 'phases', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=phases', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'phases/0/name'}),
(4, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
]:
contracts_relatedPhases.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
contracts_documents = QgsVectorLayer(filename+"|layername=contracts_documents", "contracts_documents", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(contracts_documents))
QgsProject.instance().addMapLayer(contracts_documents, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
(2, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'contracts/0/id', 'Layer': 'contracts_911f0889_2cd7_4997_aa77_3021639cc7dc', 'LayerName': 'contracts', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=contracts', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'contracts/0/title'}),
(3, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(4, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(5, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(6, 'ValueMap', {'map': [{'1d-interleaved-parityfec': 'application/1d-interleaved-parityfec'}, {'3gpdash-qoe-report+xml': 'application/3gpdash-qoe-report+xml'}, {'3gpp-ims+xml': 'application/3gpp-ims+xml'}, {'3gppHal+json': 'application/3gppHal+json'}, {'3gppHalForms+json': 'application/3gppHalForms+json'}, {'A2L': 'application/A2L'}, {'AML': 'application/AML'}, {'ATF': 'application/ATF'}, {'ATFX': 'application/ATFX'}, {'ATXML': 'application/ATXML'}, {'CALS-1840': 'application/CALS-1840'}, {'CDFX+XML': 'application/CDFX+XML'}, {'CEA': 'application/CEA'}, {'CSTAdata+xml': 'application/CSTAdata+xml'}, {'DCD': 'application/DCD'}, {'DII': 'application/DII'}, {'DIT': 'application/DIT'}, {'EDI-X12': 'application/EDI-X12'}, {'EDI-consent': 'application/EDI-consent'}, {'EDIFACT': 'application/EDIFACT'}, {'EmergencyCallData.Comment+xml': 'application/EmergencyCallData.Comment+xml'}, {'EmergencyCallData.Control+xml': 'application/EmergencyCallData.Control+xml'}, {'EmergencyCallData.DeviceInfo+xml': 'application/EmergencyCallData.DeviceInfo+xml'}, {'EmergencyCallData.ProviderInfo+xml': 'application/EmergencyCallData.ProviderInfo+xml'}, {'EmergencyCallData.ServiceInfo+xml': 'application/EmergencyCallData.ServiceInfo+xml'}, {'EmergencyCallData.SubscriberInfo+xml': 'application/EmergencyCallData.SubscriberInfo+xml'}, {'EmergencyCallData.VEDS+xml': 'application/EmergencyCallData.VEDS+xml'}, {'EmergencyCallData.cap+xml': 'application/EmergencyCallData.cap+xml'}, {'EmergencyCallData.eCall.MSD': 'application/EmergencyCallData.eCall.MSD'}, {'H224': 'application/H224'}, {'IOTP': 'application/IOTP'}, {'ISUP': 'application/ISUP'}, {'LXF': 'application/LXF'}, {'MF4': 'application/MF4'}, {'ODA': 'application/ODA'}, {'ODX': 'application/ODX'}, {'PDX': 'application/PDX'}, {'QSIG': 'application/QSIG'}, {'SGML': 'application/SGML'}, {'TETRA_ISI': 'application/TETRA_ISI'}, {'activemessage': 'application/activemessage'}, {'activity+json': 'application/activity+json'}, {'alto-costmap+json': 'application/alto-costmap+json'}, {'alto-costmapfilter+json': 'application/alto-costmapfilter+json'}, {'alto-directory+json': 'application/alto-directory+json'}, {'alto-endpointcost+json': 'application/alto-endpointcost+json'}, {'alto-endpointcostparams+json': 'application/alto-endpointcostparams+json'}, {'alto-endpointprop+json': 'application/alto-endpointprop+json'}, {'alto-endpointpropparams+json': 'application/alto-endpointpropparams+json'}, {'alto-error+json': 'application/alto-error+json'}, {'alto-networkmap+json': 'application/alto-networkmap+json'}, {'alto-networkmapfilter+json': 'application/alto-networkmapfilter+json'}, {'alto-updatestreamcontrol+json': 'application/alto-updatestreamcontrol+json'}, {'alto-updatestreamparams+json': 'application/alto-updatestreamparams+json'}, {'andrew-inset': 'application/andrew-inset'}, {'applefile': 'application/applefile'}, {'atom+xml': 'application/atom+xml'}, {'atomcat+xml': 'application/atomcat+xml'}, {'atomdeleted+xml': 'application/atomdeleted+xml'}, {'atomicmail': 'application/atomicmail'}, {'atomsvc+xml': 'application/atomsvc+xml'}, {'atsc-dwd+xml': 'application/atsc-dwd+xml'}, {'atsc-dynamic-event-message': 'application/atsc-dynamic-event-message'}, {'atsc-held+xml': 'application/atsc-held+xml'}, {'atsc-rdt+json': 'application/atsc-rdt+json'}, {'atsc-rsat+xml': 'application/atsc-rsat+xml'}, {'auth-policy+xml': 'application/auth-policy+xml'}, {'bacnet-xdd+zip': 'application/bacnet-xdd+zip'}, {'batch-SMTP': 'application/batch-SMTP'}, {'beep+xml': 'application/beep+xml'}, {'calendar+json': 'application/calendar+json'}, {'calendar+xml': 'application/calendar+xml'}, {'call-completion': 'application/call-completion'}, {'captive+json': 'application/captive+json'}, {'cbor': 'application/cbor'}, {'cbor-seq': 'application/cbor-seq'}, {'cccex': 'application/cccex'}, {'ccmp+xml': 'application/ccmp+xml'}, {'ccxml+xml': 'application/ccxml+xml'}, {'cdmi-capability': 'application/cdmi-capability'}, {'cdmi-container': 'application/cdmi-container'}, {'cdmi-domain': 'application/cdmi-domain'}, {'cdmi-object': 'application/cdmi-object'}, {'cdmi-queue': 'application/cdmi-queue'}, {'cdni': 'application/cdni'}, {'cea-2018+xml': 'application/cea-2018+xml'}, {'cellml+xml': 'application/cellml+xml'}, {'cfw': 'application/cfw'}, {'clr': 'application/clr'}, {'clue+xml': 'application/clue+xml'}, {'clue_info+xml': 'application/clue_info+xml'}, {'cms': 'application/cms'}, {'cnrp+xml': 'application/cnrp+xml'}, {'coap-group+json': 'application/coap-group+json'}, {'coap-payload': 'application/coap-payload'}, {'commonground': 'application/commonground'}, {'conference-info+xml': 'application/conference-info+xml'}, {'cose': 'application/cose'}, {'cose-key': 'application/cose-key'}, {'cose-key-set': 'application/cose-key-set'}, {'cpl+xml': 'application/cpl+xml'}, {'csrattrs': 'application/csrattrs'}, {'csta+xml': 'application/csta+xml'}, {'csvm+json': 'application/csvm+json'}, {'cwt': 'application/cwt'}, {'cybercash': 'application/cybercash'}, {'dash+xml': 'application/dash+xml'}, {'dashdelta': 'application/dashdelta'}, {'davmount+xml': 'application/davmount+xml'}, {'dca-rft': 'application/dca-rft'}, {'dec-dx': 'application/dec-dx'}, {'dialog-info+xml': 'application/dialog-info+xml'}, {'dicom': 'application/dicom'}, {'dicom+json': 'application/dicom+json'}, {'dicom+xml': 'application/dicom+xml'}, {'dns': 'application/dns'}, {'dns+json': 'application/dns+json'}, {'dns-message': 'application/dns-message'}, {'dots+cbor': 'application/dots+cbor'}, {'dskpp+xml': 'application/dskpp+xml'}, {'dssc+der': 'application/dssc+der'}, {'dssc+xml': 'application/dssc+xml'}, {'dvcs': 'application/dvcs'}, {'ecmascript': 'application/ecmascript'}, {'efi': 'application/efi'}, {'elm+json': 'application/elm+json'}, {'elm+xml': 'application/elm+xml'}, {'emma+xml': 'application/emma+xml'}, {'emotionml+xml': 'application/emotionml+xml'}, {'encaprtp': 'application/encaprtp'}, {'epp+xml': 'application/epp+xml'}, {'epub+zip': 'application/epub+zip'}, {'eshop': 'application/eshop'}, {'example': 'application/example'}, {'exi': 'application/exi'}, {'expect-ct-report+json': 'application/expect-ct-report+json'}, {'fastinfoset': 'application/fastinfoset'}, {'fastsoap': 'application/fastsoap'}, {'fdt+xml': 'application/fdt+xml'}, {'fhir+json': 'application/fhir+json'}, {'fhir+xml': 'application/fhir+xml'}, {'fits': 'application/fits'}, {'flexfec': 'application/flexfec'}, {'font-tdpfr': 'application/font-tdpfr'}, {'framework-attributes+xml': 'application/framework-attributes+xml'}, {'geo+json': 'application/geo+json'}, {'geo+json-seq': 'application/geo+json-seq'}, {'geopackage+sqlite3': 'application/geopackage+sqlite3'}, {'geoxacml+xml': 'application/geoxacml+xml'}, {'gltf-buffer': 'application/gltf-buffer'}, {'gml+xml': 'application/gml+xml'}, {'gzip': 'application/gzip'}, {'held+xml': 'application/held+xml'}, {'http': 'application/http'}, {'hyperstudio': 'application/hyperstudio'}, {'ibe-key-request+xml': 'application/ibe-key-request+xml'}, {'ibe-pkg-reply+xml': 'application/ibe-pkg-reply+xml'}, {'ibe-pp-data': 'application/ibe-pp-data'}, {'iges': 'application/iges'}, {'im-iscomposing+xml': 'application/im-iscomposing+xml'}, {'index': 'application/index'}, {'index.cmd': 'application/index.cmd'}, {'index.obj': 'application/index.obj'}, {'index.response': 'application/index.response'}, {'index.vnd': 'application/index.vnd'}, {'inkml+xml': 'application/inkml+xml'}, {'ipfix': 'application/ipfix'}, {'ipp': 'application/ipp'}, {'its+xml': 'application/its+xml'}, {'javascript': 'application/javascript'}, {'jf2feed+json': 'application/jf2feed+json'}, {'jose': 'application/jose'}, {'jose+json': 'application/jose+json'}, {'jrd+json': 'application/jrd+json'}, {'jscalendar+json': 'application/jscalendar+json'}, {'json': 'application/json'}, {'json-patch+json': 'application/json-patch+json'}, {'json-seq': 'application/json-seq'}, {'jwk+json': 'application/jwk+json'}, {'jwk-set+json': 'application/jwk-set+json'}, {'jwt': 'application/jwt'}, {'kpml-request+xml': 'application/kpml-request+xml'}, {'kpml-response+xml': 'application/kpml-response+xml'}, {'ld+json': 'application/ld+json'}, {'lgr+xml': 'application/lgr+xml'}, {'link-format': 'application/link-format'}, {'load-control+xml': 'application/load-control+xml'}, {'lost+xml': 'application/lost+xml'}, {'lostsync+xml': 'application/lostsync+xml'}, {'lpf+zip': 'application/lpf+zip'}, {'mac-binhex40': 'application/mac-binhex40'}, {'macwriteii': 'application/macwriteii'}, {'mads+xml': 'application/mads+xml'}, {'marc': 'application/marc'}, {'marcxml+xml': 'application/marcxml+xml'}, {'mathematica': 'application/mathematica'}, {'mathml+xml': 'application/mathml+xml'}, {'mathml-content+xml': 'application/mathml-content+xml'}, {'mathml-presentation+xml': 'application/mathml-presentation+xml'}, {'mbms-associated-procedure-description+xml': 'application/mbms-associated-procedure-description+xml'}, {'mbms-deregister+xml': 'application/mbms-deregister+xml'}, {'mbms-envelope+xml': 'application/mbms-envelope+xml'}, {'mbms-msk+xml': 'application/mbms-msk+xml'}, {'mbms-msk-response+xml': 'application/mbms-msk-response+xml'}, {'mbms-protection-description+xml': 'application/mbms-protection-description+xml'}, {'mbms-reception-report+xml': 'application/mbms-reception-report+xml'}, {'mbms-register+xml': 'application/mbms-register+xml'}, {'mbms-register-response+xml': 'application/mbms-register-response+xml'}, {'mbms-schedule+xml': 'application/mbms-schedule+xml'}, {'mbms-user-service-description+xml': 'application/mbms-user-service-description+xml'}, {'mbox': 'application/mbox'}, {'media-policy-dataset+xml': 'application/media-policy-dataset+xml'}, {'media_control+xml': 'application/media_control+xml'}, {'mediaservercontrol+xml': 'application/mediaservercontrol+xml'}, {'merge-patch+json': 'application/merge-patch+json'}, {'metalink4+xml': 'application/metalink4+xml'}, {'mets+xml': 'application/mets+xml'}, {'mikey': 'application/mikey'}, {'mipc': 'application/mipc'}, {'missing-blocks+cbor-seq': 'application/missing-blocks+cbor-seq'}, {'mmt-aei+xml': 'application/mmt-aei+xml'}, {'mmt-usd+xml': 'application/mmt-usd+xml'}, {'mods+xml': 'application/mods+xml'}, {'moss-keys': 'application/moss-keys'}, {'moss-signature': 'application/moss-signature'}, {'mosskey-data': 'application/mosskey-data'}, {'mosskey-request': 'application/mosskey-request'}, {'mp21': 'application/mp21'}, {'mp4': 'application/mp4'}, {'mpeg4-generic': 'application/mpeg4-generic'}, {'mpeg4-iod': 'application/mpeg4-iod'}, {'mpeg4-iod-xmt': 'application/mpeg4-iod-xmt'}, {'mrb-consumer+xml': 'application/mrb-consumer+xml'}, {'mrb-publish+xml': 'application/mrb-publish+xml'}, {'msc-ivr+xml': 'application/msc-ivr+xml'}, {'msc-mixer+xml': 'application/msc-mixer+xml'}, {'msword': 'application/msword'}, {'mud+json': 'application/mud+json'}, {'multipart-core': 'application/multipart-core'}, {'mxf': 'application/mxf'}, {'n-quads': 'application/n-quads'}, {'n-triples': 'application/n-triples'}, {'nasdata': 'application/nasdata'}, {'news-checkgroups': 'application/news-checkgroups'}, {'news-groupinfo': 'application/news-groupinfo'}, {'news-transmission': 'application/news-transmission'}, {'nlsml+xml': 'application/nlsml+xml'}, {'node': 'application/node'}, {'nss': 'application/nss'}, {'oauth-authz-req+jwt': 'application/oauth-authz-req+jwt'}, {'ocsp-request': 'application/ocsp-request'}, {'ocsp-response': 'application/ocsp-response'}, {'octet-stream': 'application/octet-stream'}, {'odm+xml': 'application/odm+xml'}, {'oebps-package+xml': 'application/oebps-package+xml'}, {'ogg': 'application/ogg'}, {'opc-nodeset+xml': 'application/opc-nodeset+xml'}, {'oscore': 'application/oscore'}, {'oxps': 'application/oxps'}, {'p2p-overlay+xml': 'application/p2p-overlay+xml'}, {'parityfec': 'application/parityfec'}, {'passport': 'application/passport'}, {'patch-ops-error+xml': 'application/patch-ops-error+xml'}, {'pdf': 'application/pdf'}, {'pem-certificate-chain': 'application/pem-certificate-chain'}, {'pgp-encrypted': 'application/pgp-encrypted'}, {'pgp-keys': 'application/pgp-keys'}, {'pgp-signature': 'application/pgp-signature'}, {'pidf+xml': 'application/pidf+xml'}, {'pidf-diff+xml': 'application/pidf-diff+xml'}, {'pkcs10': 'application/pkcs10'}, {'pkcs12': 'application/pkcs12'}, {'pkcs7-mime': 'application/pkcs7-mime'}, {'pkcs7-signature': 'application/pkcs7-signature'}, {'pkcs8': 'application/pkcs8'}, {'pkcs8-encrypted': 'application/pkcs8-encrypted'}, {'pkix-attr-cert': 'application/pkix-attr-cert'}, {'pkix-cert': 'application/pkix-cert'}, {'pkix-crl': 'application/pkix-crl'}, {'pkix-pkipath': 'application/pkix-pkipath'}, {'pkixcmp': 'application/pkixcmp'}, {'pls+xml': 'application/pls+xml'}, {'poc-settings+xml': 'application/poc-settings+xml'}, {'postscript': 'application/postscript'}, {'ppsp-tracker+json': 'application/ppsp-tracker+json'}, {'problem+json': 'application/problem+json'}, {'problem+xml': 'application/problem+xml'}, {'provenance+xml': 'application/provenance+xml'}, {'prs.alvestrand.titrax-sheet': 'application/prs.alvestrand.titrax-sheet'}, {'prs.cww': 'application/prs.cww'}, {'prs.cyn': 'application/prs.cyn'}, {'prs.hpub+zip': 'application/prs.hpub+zip'}, {'prs.nprend': 'application/prs.nprend'}, {'prs.plucker': 'application/prs.plucker'}, {'prs.rdf-xml-crypt': 'application/prs.rdf-xml-crypt'}, {'prs.xsf+xml': 'application/prs.xsf+xml'}, {'pskc+xml': 'application/pskc+xml'}, {'pvd+json': 'application/pvd+json'}, {'raptorfec': 'application/raptorfec'}, {'rdap+json': 'application/rdap+json'}, {'rdf+xml': 'application/rdf+xml'}, {'reginfo+xml': 'application/reginfo+xml'}, {'relax-ng-compact-syntax': 'application/relax-ng-compact-syntax'}, {'remote-printing': 'application/remote-printing'}, {'reputon+json': 'application/reputon+json'}, {'resource-lists+xml': 'application/resource-lists+xml'}, {'resource-lists-diff+xml': 'application/resource-lists-diff+xml'}, {'rfc+xml': 'application/rfc+xml'}, {'riscos': 'application/riscos'}, {'rlmi+xml': 'application/rlmi+xml'}, {'rls-services+xml': 'application/rls-services+xml'}, {'route-apd+xml': 'application/route-apd+xml'}, {'route-s-tsid+xml': 'application/route-s-tsid+xml'}, {'route-usd+xml': 'application/route-usd+xml'}, {'rpki-ghostbusters': 'application/rpki-ghostbusters'}, {'rpki-manifest': 'application/rpki-manifest'}, {'rpki-publication': 'application/rpki-publication'}, {'rpki-roa': 'application/rpki-roa'}, {'rpki-updown': 'application/rpki-updown'}, {'rtf': 'application/rtf'}, {'rtploopback': 'application/rtploopback'}, {'rtx': 'application/rtx'}, {'samlassertion+xml': 'application/samlassertion+xml'}, {'samlmetadata+xml': 'application/samlmetadata+xml'}, {'sarif+json': 'application/sarif+json'}, {'sarif-external-properties+json': 'application/sarif-external-properties+json'}, {'sbe': 'application/sbe'}, {'sbml+xml': 'application/sbml+xml'}, {'scaip+xml': 'application/scaip+xml'}, {'scim+json': 'application/scim+json'}, {'scvp-cv-request': 'application/scvp-cv-request'}, {'scvp-cv-response': 'application/scvp-cv-response'}, {'scvp-vp-request': 'application/scvp-vp-request'}, {'scvp-vp-response': 'application/scvp-vp-response'}, {'sdp': 'application/sdp'}, {'secevent+jwt': 'application/secevent+jwt'}, {'senml+cbor': 'application/senml+cbor'}, {'senml+json': 'application/senml+json'}, {'senml+xml': 'application/senml+xml'}, {'senml-etch+cbor': 'application/senml-etch+cbor'}, {'senml-etch+json': 'application/senml-etch+json'}, {'senml-exi': 'application/senml-exi'}, {'sensml+cbor': 'application/sensml+cbor'}, {'sensml+json': 'application/sensml+json'}, {'sensml+xml': 'application/sensml+xml'}, {'sensml-exi': 'application/sensml-exi'}, {'sep+xml': 'application/sep+xml'}, {'sep-exi': 'application/sep-exi'}, {'session-info': 'application/session-info'}, {'set-payment': 'application/set-payment'}, {'set-payment-initiation': 'application/set-payment-initiation'}, {'set-registration': 'application/set-registration'}, {'set-registration-initiation': 'application/set-registration-initiation'}, {'sgml-open-catalog': 'application/sgml-open-catalog'}, {'shf+xml': 'application/shf+xml'}, {'sieve': 'application/sieve'}, {'simple-filter+xml': 'application/simple-filter+xml'}, {'simple-message-summary': 'application/simple-message-summary'}, {'simpleSymbolContainer': 'application/simpleSymbolContainer'}, {'sipc': 'application/sipc'}, {'slate': 'application/slate'}, {'smil+xml': 'application/smil+xml'}, {'smpte336m': 'application/smpte336m'}, {'soap+fastinfoset': 'application/soap+fastinfoset'}, {'soap+xml': 'application/soap+xml'}, {'sparql-query': 'application/sparql-query'}, {'sparql-results+xml': 'application/sparql-results+xml'}, {'spirits-event+xml': 'application/spirits-event+xml'}, {'sql': 'application/sql'}, {'srgs': 'application/srgs'}, {'srgs+xml': 'application/srgs+xml'}, {'sru+xml': 'application/sru+xml'}, {'ssml+xml': 'application/ssml+xml'}, {'stix+json': 'application/stix+json'}, {'swid+xml': 'application/swid+xml'}, {'tamp-apex-update': 'application/tamp-apex-update'}, {'tamp-apex-update-confirm': 'application/tamp-apex-update-confirm'}, {'tamp-community-update': 'application/tamp-community-update'}, {'tamp-community-update-confirm': 'application/tamp-community-update-confirm'}, {'tamp-error': 'application/tamp-error'}, {'tamp-sequence-adjust': 'application/tamp-sequence-adjust'}, {'tamp-sequence-adjust-confirm': 'application/tamp-sequence-adjust-confirm'}, {'tamp-status-query': 'application/tamp-status-query'}, {'tamp-status-response': 'application/tamp-status-response'}, {'tamp-update': 'application/tamp-update'}, {'tamp-update-confirm': 'application/tamp-update-confirm'}, {'taxii+json': 'application/taxii+json'}, {'td+json': 'application/td+json'}, {'tei+xml': 'application/tei+xml'}, {'thraud+xml': 'application/thraud+xml'}, {'timestamp-query': 'application/timestamp-query'}, {'timestamp-reply': 'application/timestamp-reply'}, {'timestamped-data': 'application/timestamped-data'}, {'tlsrpt+gzip': 'application/tlsrpt+gzip'}, {'tlsrpt+json': 'application/tlsrpt+json'}, {'tnauthlist': 'application/tnauthlist'}, {'trickle-ice-sdpfrag': 'application/trickle-ice-sdpfrag'}, {'trig': 'application/trig'}, {'ttml+xml': 'application/ttml+xml'}, {'tve-trigger': 'application/tve-trigger'}, {'tzif': 'application/tzif'}, {'tzif-leap': 'application/tzif-leap'}, {'ulpfec': 'application/ulpfec'}, {'urc-grpsheet+xml': 'application/urc-grpsheet+xml'}, {'urc-ressheet+xml': 'application/urc-ressheet+xml'}, {'urc-targetdesc+xml': 'application/urc-targetdesc+xml'}, {'urc-uisocketdesc+xml': 'application/urc-uisocketdesc+xml'}, {'vcard+json': 'application/vcard+json'}, {'vcard+xml': 'application/vcard+xml'}, {'vemmi': 'application/vemmi'}, {'vnd.1000minds.decision-model+xml': 'application/vnd.1000minds.decision-model+xml'}, {'vnd.3M.Post-it-Notes': 'application/vnd.3M.Post-it-Notes'}, {'vnd.3gpp-prose+xml': 'application/vnd.3gpp-prose+xml'}, {'vnd.3gpp-prose-pc3ch+xml': 'application/vnd.3gpp-prose-pc3ch+xml'}, {'vnd.3gpp-v2x-local-service-information': 'application/vnd.3gpp-v2x-local-service-information'}, {'vnd.3gpp.5gnas': 'application/vnd.3gpp.5gnas'}, {'vnd.3gpp.GMOP+xml': 'application/vnd.3gpp.GMOP+xml'}, {'vnd.3gpp.SRVCC-info+xml': 'application/vnd.3gpp.SRVCC-info+xml'}, {'vnd.3gpp.access-transfer-events+xml': 'application/vnd.3gpp.access-transfer-events+xml'}, {'vnd.3gpp.bsf+xml': 'application/vnd.3gpp.bsf+xml'}, {'vnd.3gpp.gtpc': 'application/vnd.3gpp.gtpc'}, {'vnd.3gpp.interworking-data': 'application/vnd.3gpp.interworking-data'}, {'vnd.3gpp.lpp': 'application/vnd.3gpp.lpp'}, {'vnd.3gpp.mc-signalling-ear': 'application/vnd.3gpp.mc-signalling-ear'}, {'vnd.3gpp.mcdata-affiliation-command+xml': 'application/vnd.3gpp.mcdata-affiliation-command+xml'}, {'vnd.3gpp.mcdata-info+xml': 'application/vnd.3gpp.mcdata-info+xml'}, {'vnd.3gpp.mcdata-payload': 'application/vnd.3gpp.mcdata-payload'}, {'vnd.3gpp.mcdata-service-config+xml': 'application/vnd.3gpp.mcdata-service-config+xml'}, {'vnd.3gpp.mcdata-signalling': 'application/vnd.3gpp.mcdata-signalling'}, {'vnd.3gpp.mcdata-ue-config+xml': 'application/vnd.3gpp.mcdata-ue-config+xml'}, {'vnd.3gpp.mcdata-user-profile+xml': 'application/vnd.3gpp.mcdata-user-profile+xml'}, {'vnd.3gpp.mcptt-affiliation-command+xml': 'application/vnd.3gpp.mcptt-affiliation-command+xml'}, {'vnd.3gpp.mcptt-floor-request+xml': 'application/vnd.3gpp.mcptt-floor-request+xml'}, {'vnd.3gpp.mcptt-info+xml': 'application/vnd.3gpp.mcptt-info+xml'}, {'vnd.3gpp.mcptt-location-info+xml': 'application/vnd.3gpp.mcptt-location-info+xml'}, {'vnd.3gpp.mcptt-mbms-usage-info+xml': 'application/vnd.3gpp.mcptt-mbms-usage-info+xml'}, {'vnd.3gpp.mcptt-service-config+xml': 'application/vnd.3gpp.mcptt-service-config+xml'}, {'vnd.3gpp.mcptt-signed+xml': 'application/vnd.3gpp.mcptt-signed+xml'}, {'vnd.3gpp.mcptt-ue-config+xml': 'application/vnd.3gpp.mcptt-ue-config+xml'}, {'vnd.3gpp.mcptt-ue-init-config+xml': 'application/vnd.3gpp.mcptt-ue-init-config+xml'}, {'vnd.3gpp.mcptt-user-profile+xml': 'application/vnd.3gpp.mcptt-user-profile+xml'}, {'vnd.3gpp.mcvideo-affiliation-command+xml': 'application/vnd.3gpp.mcvideo-affiliation-command+xml'}, {'vnd.3gpp.mcvideo-info+xml': 'application/vnd.3gpp.mcvideo-info+xml'}, {'vnd.3gpp.mcvideo-location-info+xml': 'application/vnd.3gpp.mcvideo-location-info+xml'}, {'vnd.3gpp.mcvideo-mbms-usage-info+xml': 'application/vnd.3gpp.mcvideo-mbms-usage-info+xml'}, {'vnd.3gpp.mcvideo-service-config+xml': 'application/vnd.3gpp.mcvideo-service-config+xml'}, {'vnd.3gpp.mcvideo-transmission-request+xml': 'application/vnd.3gpp.mcvideo-transmission-request+xml'}, {'vnd.3gpp.mcvideo-ue-config+xml': 'application/vnd.3gpp.mcvideo-ue-config+xml'}, {'vnd.3gpp.mcvideo-user-profile+xml': 'application/vnd.3gpp.mcvideo-user-profile+xml'}, {'vnd.3gpp.mid-call+xml': 'application/vnd.3gpp.mid-call+xml'}, {'vnd.3gpp.ngap': 'application/vnd.3gpp.ngap'}, {'vnd.3gpp.pfcp': 'application/vnd.3gpp.pfcp'}, {'vnd.3gpp.pic-bw-large': 'application/vnd.3gpp.pic-bw-large'}, {'vnd.3gpp.pic-bw-small': 'application/vnd.3gpp.pic-bw-small'}, {'vnd.3gpp.pic-bw-var': 'application/vnd.3gpp.pic-bw-var'}, {'vnd.3gpp.s1ap': 'application/vnd.3gpp.s1ap'}, {'vnd.3gpp.sms': 'application/vnd.3gpp.sms'}, {'vnd.3gpp.sms+xml': 'application/vnd.3gpp.sms+xml'}, {'vnd.3gpp.srvcc-ext+xml': 'application/vnd.3gpp.srvcc-ext+xml'}, {'vnd.3gpp.state-and-event-info+xml': 'application/vnd.3gpp.state-and-event-info+xml'}, {'vnd.3gpp.ussd+xml': 'application/vnd.3gpp.ussd+xml'}, {'vnd.3gpp2.bcmcsinfo+xml': 'application/vnd.3gpp2.bcmcsinfo+xml'}, {'vnd.3gpp2.sms': 'application/vnd.3gpp2.sms'}, {'vnd.3gpp2.tcap': 'application/vnd.3gpp2.tcap'}, {'vnd.3lightssoftware.imagescal': 'application/vnd.3lightssoftware.imagescal'}, {'vnd.FloGraphIt': 'application/vnd.FloGraphIt'}, {'vnd.HandHeld-Entertainment+xml': 'application/vnd.HandHeld-Entertainment+xml'}, {'vnd.Kinar': 'application/vnd.Kinar'}, {'vnd.MFER': 'application/vnd.MFER'}, {'vnd.Mobius.DAF': 'application/vnd.Mobius.DAF'}, {'vnd.Mobius.DIS': 'application/vnd.Mobius.DIS'}, {'vnd.Mobius.MBK': 'application/vnd.Mobius.MBK'}, {'vnd.Mobius.MQY': 'application/vnd.Mobius.MQY'}, {'vnd.Mobius.MSL': 'application/vnd.Mobius.MSL'}, {'vnd.Mobius.PLC': 'application/vnd.Mobius.PLC'}, {'vnd.Mobius.TXF': 'application/vnd.Mobius.TXF'}, {'vnd.Quark.QuarkXPress': 'application/vnd.Quark.QuarkXPress'}, {'vnd.RenLearn.rlprint': 'application/vnd.RenLearn.rlprint'}, {'vnd.SimTech-MindMapper': 'application/vnd.SimTech-MindMapper'}, {'vnd.accpac.simply.aso': 'application/vnd.accpac.simply.aso'}, {'vnd.accpac.simply.imp': 'application/vnd.accpac.simply.imp'}, {'vnd.acucobol': 'application/vnd.acucobol'}, {'vnd.acucorp': 'application/vnd.acucorp'}, {'vnd.adobe.flash.movie': 'application/vnd.adobe.flash.movie'}, {'vnd.adobe.formscentral.fcdt': 'application/vnd.adobe.formscentral.fcdt'}, {'vnd.adobe.fxp': 'application/vnd.adobe.fxp'}, {'vnd.adobe.partial-upload': 'application/vnd.adobe.partial-upload'}, {'vnd.adobe.xdp+xml': 'application/vnd.adobe.xdp+xml'}, {'vnd.adobe.xfdf': 'application/vnd.adobe.xfdf'}, {'vnd.aether.imp': 'application/vnd.aether.imp'}, {'vnd.afpc.afplinedata': 'application/vnd.afpc.afplinedata'}, {'vnd.afpc.afplinedata-pagedef': 'application/vnd.afpc.afplinedata-pagedef'}, {'vnd.afpc.cmoca-cmresource': 'application/vnd.afpc.cmoca-cmresource'}, {'vnd.afpc.foca-charset': 'application/vnd.afpc.foca-charset'}, {'vnd.afpc.foca-codedfont': 'application/vnd.afpc.foca-codedfont'}, {'vnd.afpc.foca-codepage': 'application/vnd.afpc.foca-codepage'}, {'vnd.afpc.modca': 'application/vnd.afpc.modca'}, {'vnd.afpc.modca-cmtable': 'application/vnd.afpc.modca-cmtable'}, {'vnd.afpc.modca-formdef': 'application/vnd.afpc.modca-formdef'}, {'vnd.afpc.modca-mediummap': 'application/vnd.afpc.modca-mediummap'}, {'vnd.afpc.modca-objectcontainer': 'application/vnd.afpc.modca-objectcontainer'}, {'vnd.afpc.modca-overlay': 'application/vnd.afpc.modca-overlay'}, {'vnd.afpc.modca-pagesegment': 'application/vnd.afpc.modca-pagesegment'}, {'vnd.ah-barcode': 'application/vnd.ah-barcode'}, {'vnd.ahead.space': 'application/vnd.ahead.space'}, {'vnd.airzip.filesecure.azf': 'application/vnd.airzip.filesecure.azf'}, {'vnd.airzip.filesecure.azs': 'application/vnd.airzip.filesecure.azs'}, {'vnd.amadeus+json': 'application/vnd.amadeus+json'}, {'vnd.amazon.mobi8-ebook': 'application/vnd.amazon.mobi8-ebook'}, {'vnd.americandynamics.acc': 'application/vnd.americandynamics.acc'}, {'vnd.amiga.ami': 'application/vnd.amiga.ami'}, {'vnd.amundsen.maze+xml': 'application/vnd.amundsen.maze+xml'}, {'vnd.android.ota': 'application/vnd.android.ota'}, {'vnd.anki': 'application/vnd.anki'}, {'vnd.anser-web-certificate-issue-initiation': 'application/vnd.anser-web-certificate-issue-initiation'}, {'vnd.antix.game-component': 'application/vnd.antix.game-component'}, {'vnd.apache.thrift.binary': 'application/vnd.apache.thrift.binary'}, {'vnd.apache.thrift.compact': 'application/vnd.apache.thrift.compact'}, {'vnd.apache.thrift.json': 'application/vnd.apache.thrift.json'}, {'vnd.api+json': 'application/vnd.api+json'}, {'vnd.aplextor.warrp+json': 'application/vnd.aplextor.warrp+json'}, {'vnd.apothekende.reservation+json': 'application/vnd.apothekende.reservation+json'}, {'vnd.apple.installer+xml': 'application/vnd.apple.installer+xml'}, {'vnd.apple.keynote': 'application/vnd.apple.keynote'}, {'vnd.apple.mpegurl': 'application/vnd.apple.mpegurl'}, {'vnd.apple.numbers': 'application/vnd.apple.numbers'}, {'vnd.apple.pages': 'application/vnd.apple.pages'}, {'vnd.aristanetworks.swi': 'application/vnd.aristanetworks.swi'}, {'vnd.artisan+json': 'application/vnd.artisan+json'}, {'vnd.artsquare': 'application/vnd.artsquare'}, {'vnd.astraea-software.iota': 'application/vnd.astraea-software.iota'}, {'vnd.audiograph': 'application/vnd.audiograph'}, {'vnd.autopackage': 'application/vnd.autopackage'}, {'vnd.avalon+json': 'application/vnd.avalon+json'}, {'vnd.avistar+xml': 'application/vnd.avistar+xml'}, {'vnd.balsamiq.bmml+xml': 'application/vnd.balsamiq.bmml+xml'}, {'vnd.balsamiq.bmpr': 'application/vnd.balsamiq.bmpr'}, {'vnd.banana-accounting': 'application/vnd.banana-accounting'}, {'vnd.bbf.usp.error': 'application/vnd.bbf.usp.error'}, {'vnd.bbf.usp.msg': 'application/vnd.bbf.usp.msg'}, {'vnd.bbf.usp.msg+json': 'application/vnd.bbf.usp.msg+json'}, {'vnd.bekitzur-stech+json': 'application/vnd.bekitzur-stech+json'}, {'vnd.bint.med-content': 'application/vnd.bint.med-content'}, {'vnd.biopax.rdf+xml': 'application/vnd.biopax.rdf+xml'}, {'vnd.blink-idb-value-wrapper': 'application/vnd.blink-idb-value-wrapper'}, {'vnd.blueice.multipass': 'application/vnd.blueice.multipass'}, {'vnd.bluetooth.ep.oob': 'application/vnd.bluetooth.ep.oob'}, {'vnd.bluetooth.le.oob': 'application/vnd.bluetooth.le.oob'}, {'vnd.bmi': 'application/vnd.bmi'}, {'vnd.bpf': 'application/vnd.bpf'}, {'vnd.bpf3': 'application/vnd.bpf3'}, {'vnd.businessobjects': 'application/vnd.businessobjects'}, {'vnd.byu.uapi+json': 'application/vnd.byu.uapi+json'}, {'vnd.cab-jscript': 'application/vnd.cab-jscript'}, {'vnd.canon-cpdl': 'application/vnd.canon-cpdl'}, {'vnd.canon-lips': 'application/vnd.canon-lips'}, {'vnd.capasystems-pg+json': 'application/vnd.capasystems-pg+json'}, {'vnd.cendio.thinlinc.clientconf': 'application/vnd.cendio.thinlinc.clientconf'}, {'vnd.century-systems.tcp_stream': 'application/vnd.century-systems.tcp_stream'}, {'vnd.chemdraw+xml': 'application/vnd.chemdraw+xml'}, {'vnd.chess-pgn': 'application/vnd.chess-pgn'}, {'vnd.chipnuts.karaoke-mmd': 'application/vnd.chipnuts.karaoke-mmd'}, {'vnd.ciedi': 'application/vnd.ciedi'}, {'vnd.cinderella': 'application/vnd.cinderella'}, {'vnd.cirpack.isdn-ext': 'application/vnd.cirpack.isdn-ext'}, {'vnd.citationstyles.style+xml': 'application/vnd.citationstyles.style+xml'}, {'vnd.claymore': 'application/vnd.claymore'}, {'vnd.cloanto.rp9': 'application/vnd.cloanto.rp9'}, {'vnd.clonk.c4group': 'application/vnd.clonk.c4group'}, {'vnd.cluetrust.cartomobile-config': 'application/vnd.cluetrust.cartomobile-config'}, {'vnd.cluetrust.cartomobile-config-pkg': 'application/vnd.cluetrust.cartomobile-config-pkg'}, {'vnd.coffeescript': 'application/vnd.coffeescript'}, {'vnd.collabio.xodocuments.document': 'application/vnd.collabio.xodocuments.document'}, {'vnd.collabio.xodocuments.document-template': 'application/vnd.collabio.xodocuments.document-template'}, {'vnd.collabio.xodocuments.presentation': 'application/vnd.collabio.xodocuments.presentation'}, {'vnd.collabio.xodocuments.presentation-template': 'application/vnd.collabio.xodocuments.presentation-template'}, {'vnd.collabio.xodocuments.spreadsheet': 'application/vnd.collabio.xodocuments.spreadsheet'}, {'vnd.collabio.xodocuments.spreadsheet-template': 'application/vnd.collabio.xodocuments.spreadsheet-template'}, {'vnd.collection+json': 'application/vnd.collection+json'}, {'vnd.collection.doc+json': 'application/vnd.collection.doc+json'}, {'vnd.collection.next+json': 'application/vnd.collection.next+json'}, {'vnd.comicbook+zip': 'application/vnd.comicbook+zip'}, {'vnd.comicbook-rar': 'application/vnd.comicbook-rar'}, {'vnd.commerce-battelle': 'application/vnd.commerce-battelle'}, {'vnd.commonspace': 'application/vnd.commonspace'}, {'vnd.contact.cmsg': 'application/vnd.contact.cmsg'}, {'vnd.coreos.ignition+json': 'application/vnd.coreos.ignition+json'}, {'vnd.cosmocaller': 'application/vnd.cosmocaller'}, {'vnd.crick.clicker': 'application/vnd.crick.clicker'}, {'vnd.crick.clicker.keyboard': 'application/vnd.crick.clicker.keyboard'}, {'vnd.crick.clicker.palette': 'application/vnd.crick.clicker.palette'}, {'vnd.crick.clicker.template': 'application/vnd.crick.clicker.template'}, {'vnd.crick.clicker.wordbank': 'application/vnd.crick.clicker.wordbank'}, {'vnd.criticaltools.wbs+xml': 'application/vnd.criticaltools.wbs+xml'}, {'vnd.cryptii.pipe+json': 'application/vnd.cryptii.pipe+json'}, {'vnd.crypto-shade-file': 'application/vnd.crypto-shade-file'}, {'vnd.cryptomator.encrypted': 'application/vnd.cryptomator.encrypted'}, {'vnd.cryptomator.vault': 'application/vnd.cryptomator.vault'}, {'vnd.ctc-posml': 'application/vnd.ctc-posml'}, {'vnd.ctct.ws+xml': 'application/vnd.ctct.ws+xml'}, {'vnd.cups-pdf': 'application/vnd.cups-pdf'}, {'vnd.cups-postscript': 'application/vnd.cups-postscript'}, {'vnd.cups-ppd': 'application/vnd.cups-ppd'}, {'vnd.cups-raster': 'application/vnd.cups-raster'}, {'vnd.cups-raw': 'application/vnd.cups-raw'}, {'vnd.curl': 'application/vnd.curl'}, {'vnd.cyan.dean.root+xml': 'application/vnd.cyan.dean.root+xml'}, {'vnd.cybank': 'application/vnd.cybank'}, {'vnd.cyclonedx+json': 'application/vnd.cyclonedx+json'}, {'vnd.cyclonedx+xml': 'application/vnd.cyclonedx+xml'}, {'vnd.d2l.coursepackage1p0+zip': 'application/vnd.d2l.coursepackage1p0+zip'}, {'vnd.d3m-dataset': 'application/vnd.d3m-dataset'}, {'vnd.d3m-problem': 'application/vnd.d3m-problem'}, {'vnd.dart': 'application/vnd.dart'}, {'vnd.data-vision.rdz': 'application/vnd.data-vision.rdz'}, {'vnd.datapackage+json': 'application/vnd.datapackage+json'}, {'vnd.dataresource+json': 'application/vnd.dataresource+json'}, {'vnd.dbf': 'application/vnd.dbf'}, {'vnd.debian.binary-package': 'application/vnd.debian.binary-package'}, {'vnd.dece.data': 'application/vnd.dece.data'}, {'vnd.dece.ttml+xml': 'application/vnd.dece.ttml+xml'}, {'vnd.dece.unspecified': 'application/vnd.dece.unspecified'}, {'vnd.dece.zip': 'application/vnd.dece.zip'}, {'vnd.denovo.fcselayout-link': 'application/vnd.denovo.fcselayout-link'}, {'vnd.desmume.movie': 'application/vnd.desmume.movie'}, {'vnd.dir-bi.plate-dl-nosuffix': 'application/vnd.dir-bi.plate-dl-nosuffix'}, {'vnd.dm.delegation+xml': 'application/vnd.dm.delegation+xml'}, {'vnd.dna': 'application/vnd.dna'}, {'vnd.document+json': 'application/vnd.document+json'}, {'vnd.dolby.mobile.1': 'application/vnd.dolby.mobile.1'}, {'vnd.dolby.mobile.2': 'application/vnd.dolby.mobile.2'}, {'vnd.doremir.scorecloud-binary-document': 'application/vnd.doremir.scorecloud-binary-document'}, {'vnd.dpgraph': 'application/vnd.dpgraph'}, {'vnd.dreamfactory': 'application/vnd.dreamfactory'}, {'vnd.drive+json': 'application/vnd.drive+json'}, {'vnd.dtg.local': 'application/vnd.dtg.local'}, {'vnd.dtg.local.flash': 'application/vnd.dtg.local.flash'}, {'vnd.dtg.local.html': 'application/vnd.dtg.local.html'}, {'vnd.dvb.ait': 'application/vnd.dvb.ait'}, {'vnd.dvb.dvbisl+xml': 'application/vnd.dvb.dvbisl+xml'}, {'vnd.dvb.dvbj': 'application/vnd.dvb.dvbj'}, {'vnd.dvb.esgcontainer': 'application/vnd.dvb.esgcontainer'}, {'vnd.dvb.ipdcdftnotifaccess': 'application/vnd.dvb.ipdcdftnotifaccess'}, {'vnd.dvb.ipdcesgaccess': 'application/vnd.dvb.ipdcesgaccess'}, {'vnd.dvb.ipdcesgaccess2': 'application/vnd.dvb.ipdcesgaccess2'}, {'vnd.dvb.ipdcesgpdd': 'application/vnd.dvb.ipdcesgpdd'}, {'vnd.dvb.ipdcroaming': 'application/vnd.dvb.ipdcroaming'}, {'vnd.dvb.iptv.alfec-base': 'application/vnd.dvb.iptv.alfec-base'}, {'vnd.dvb.iptv.alfec-enhancement': 'application/vnd.dvb.iptv.alfec-enhancement'}, {'vnd.dvb.notif-aggregate-root+xml': 'application/vnd.dvb.notif-aggregate-root+xml'}, {'vnd.dvb.notif-container+xml': 'application/vnd.dvb.notif-container+xml'}, {'vnd.dvb.notif-generic+xml': 'application/vnd.dvb.notif-generic+xml'}, {'vnd.dvb.notif-ia-msglist+xml': 'application/vnd.dvb.notif-ia-msglist+xml'}, {'vnd.dvb.notif-ia-registration-request+xml': 'application/vnd.dvb.notif-ia-registration-request+xml'}, {'vnd.dvb.notif-ia-registration-response+xml': 'application/vnd.dvb.notif-ia-registration-response+xml'}, {'vnd.dvb.notif-init+xml': 'application/vnd.dvb.notif-init+xml'}, {'vnd.dvb.pfr': 'application/vnd.dvb.pfr'}, {'vnd.dvb.service': 'application/vnd.dvb.service'}, {'vnd.dxr': 'application/vnd.dxr'}, {'vnd.dynageo': 'application/vnd.dynageo'}, {'vnd.dzr': 'application/vnd.dzr'}, {'vnd.easykaraoke.cdgdownload': 'application/vnd.easykaraoke.cdgdownload'}, {'vnd.ecdis-update': 'application/vnd.ecdis-update'}, {'vnd.ecip.rlp': 'application/vnd.ecip.rlp'}, {'vnd.ecowin.chart': 'application/vnd.ecowin.chart'}, {'vnd.ecowin.filerequest': 'application/vnd.ecowin.filerequest'}, {'vnd.ecowin.fileupdate': 'application/vnd.ecowin.fileupdate'}, {'vnd.ecowin.series': 'application/vnd.ecowin.series'}, {'vnd.ecowin.seriesrequest': 'application/vnd.ecowin.seriesrequest'}, {'vnd.ecowin.seriesupdate': 'application/vnd.ecowin.seriesupdate'}, {'vnd.efi.img': 'application/vnd.efi.img'}, {'vnd.efi.iso': 'application/vnd.efi.iso'}, {'vnd.emclient.accessrequest+xml': 'application/vnd.emclient.accessrequest+xml'}, {'vnd.enliven': 'application/vnd.enliven'}, {'vnd.enphase.envoy': 'application/vnd.enphase.envoy'}, {'vnd.eprints.data+xml': 'application/vnd.eprints.data+xml'}, {'vnd.epson.esf': 'application/vnd.epson.esf'}, {'vnd.epson.msf': 'application/vnd.epson.msf'}, {'vnd.epson.quickanime': 'application/vnd.epson.quickanime'}, {'vnd.epson.salt': 'application/vnd.epson.salt'}, {'vnd.epson.ssf': 'application/vnd.epson.ssf'}, {'vnd.ericsson.quickcall': 'application/vnd.ericsson.quickcall'}, {'vnd.espass-espass+zip': 'application/vnd.espass-espass+zip'}, {'vnd.eszigno3+xml': 'application/vnd.eszigno3+xml'}, {'vnd.etsi.aoc+xml': 'application/vnd.etsi.aoc+xml'}, {'vnd.etsi.asic-e+zip': 'application/vnd.etsi.asic-e+zip'}, {'vnd.etsi.asic-s+zip': 'application/vnd.etsi.asic-s+zip'}, {'vnd.etsi.cug+xml': 'application/vnd.etsi.cug+xml'}, {'vnd.etsi.iptvcommand+xml': 'application/vnd.etsi.iptvcommand+xml'}, {'vnd.etsi.iptvdiscovery+xml': 'application/vnd.etsi.iptvdiscovery+xml'}, {'vnd.etsi.iptvprofile+xml': 'application/vnd.etsi.iptvprofile+xml'}, {'vnd.etsi.iptvsad-bc+xml': 'application/vnd.etsi.iptvsad-bc+xml'}, {'vnd.etsi.iptvsad-cod+xml': 'application/vnd.etsi.iptvsad-cod+xml'}, {'vnd.etsi.iptvsad-npvr+xml': 'application/vnd.etsi.iptvsad-npvr+xml'}, {'vnd.etsi.iptvservice+xml': 'application/vnd.etsi.iptvservice+xml'}, {'vnd.etsi.iptvsync+xml': 'application/vnd.etsi.iptvsync+xml'}, {'vnd.etsi.iptvueprofile+xml': 'application/vnd.etsi.iptvueprofile+xml'}, {'vnd.etsi.mcid+xml': 'application/vnd.etsi.mcid+xml'}, {'vnd.etsi.mheg5': 'application/vnd.etsi.mheg5'}, {'vnd.etsi.overload-control-policy-dataset+xml': 'application/vnd.etsi.overload-control-policy-dataset+xml'}, {'vnd.etsi.pstn+xml': 'application/vnd.etsi.pstn+xml'}, {'vnd.etsi.sci+xml': 'application/vnd.etsi.sci+xml'}, {'vnd.etsi.simservs+xml': 'application/vnd.etsi.simservs+xml'}, {'vnd.etsi.timestamp-token': 'application/vnd.etsi.timestamp-token'}, {'vnd.etsi.tsl+xml': 'application/vnd.etsi.tsl+xml'}, {'vnd.etsi.tsl.der': 'application/vnd.etsi.tsl.der'}, {'vnd.eudora.data': 'application/vnd.eudora.data'}, {'vnd.evolv.ecig.profile': 'application/vnd.evolv.ecig.profile'}, {'vnd.evolv.ecig.settings': 'application/vnd.evolv.ecig.settings'}, {'vnd.evolv.ecig.theme': 'application/vnd.evolv.ecig.theme'}, {'vnd.exstream-empower+zip': 'application/vnd.exstream-empower+zip'}, {'vnd.exstream-package': 'application/vnd.exstream-package'}, {'vnd.ezpix-album': 'application/vnd.ezpix-album'}, {'vnd.ezpix-package': 'application/vnd.ezpix-package'}, {'vnd.f-secure.mobile': 'application/vnd.f-secure.mobile'}, {'vnd.fastcopy-disk-image': 'application/vnd.fastcopy-disk-image'}, {'vnd.fdf': 'application/vnd.fdf'}, {'vnd.fdsn.mseed': 'application/vnd.fdsn.mseed'}, {'vnd.fdsn.seed': 'application/vnd.fdsn.seed'}, {'vnd.ffsns': 'application/vnd.ffsns'}, {'vnd.ficlab.flb+zip': 'application/vnd.ficlab.flb+zip'}, {'vnd.filmit.zfc': 'application/vnd.filmit.zfc'}, {'vnd.fints': 'application/vnd.fints'}, {'vnd.firemonkeys.cloudcell': 'application/vnd.firemonkeys.cloudcell'}, {'vnd.fluxtime.clip': 'application/vnd.fluxtime.clip'}, {'vnd.font-fontforge-sfd': 'application/vnd.font-fontforge-sfd'}, {'vnd.framemaker': 'application/vnd.framemaker'}, {'vnd.fsc.weblaunch': 'application/vnd.fsc.weblaunch'}, {'vnd.fujifilm.fb.docuworks': 'application/vnd.fujifilm.fb.docuworks'}, {'vnd.fujifilm.fb.docuworks.binder': 'application/vnd.fujifilm.fb.docuworks.binder'}, {'vnd.fujifilm.fb.docuworks.container': 'application/vnd.fujifilm.fb.docuworks.container'}, {'vnd.fujifilm.fb.jfi+xml': 'application/vnd.fujifilm.fb.jfi+xml'}, {'vnd.fujitsu.oasys': 'application/vnd.fujitsu.oasys'}, {'vnd.fujitsu.oasys2': 'application/vnd.fujitsu.oasys2'}, {'vnd.fujitsu.oasys3': 'application/vnd.fujitsu.oasys3'}, {'vnd.fujitsu.oasysgp': 'application/vnd.fujitsu.oasysgp'}, {'vnd.fujitsu.oasysprs': 'application/vnd.fujitsu.oasysprs'}, {'vnd.fujixerox.ART-EX': 'application/vnd.fujixerox.ART-EX'}, {'vnd.fujixerox.ART4': 'application/vnd.fujixerox.ART4'}, {'vnd.fujixerox.HBPL': 'application/vnd.fujixerox.HBPL'}, {'vnd.fujixerox.ddd': 'application/vnd.fujixerox.ddd'}, {'vnd.fujixerox.docuworks': 'application/vnd.fujixerox.docuworks'}, {'vnd.fujixerox.docuworks.binder': 'application/vnd.fujixerox.docuworks.binder'}, {'vnd.fujixerox.docuworks.container': 'application/vnd.fujixerox.docuworks.container'}, {'vnd.fut-misnet': 'application/vnd.fut-misnet'}, {'vnd.futoin+cbor': 'application/vnd.futoin+cbor'}, {'vnd.futoin+json': 'application/vnd.futoin+json'}, {'vnd.fuzzysheet': 'application/vnd.fuzzysheet'}, {'vnd.genomatix.tuxedo': 'application/vnd.genomatix.tuxedo'}, {'vnd.gentics.grd+json': 'application/vnd.gentics.grd+json'}, {'vnd.geogebra.file': 'application/vnd.geogebra.file'}, {'vnd.geogebra.slides': 'application/vnd.geogebra.slides'}, {'vnd.geogebra.tool': 'application/vnd.geogebra.tool'}, {'vnd.geometry-explorer': 'application/vnd.geometry-explorer'}, {'vnd.geonext': 'application/vnd.geonext'}, {'vnd.geoplan': 'application/vnd.geoplan'}, {'vnd.geospace': 'application/vnd.geospace'}, {'vnd.gerber': 'application/vnd.gerber'}, {'vnd.globalplatform.card-content-mgt': 'application/vnd.globalplatform.card-content-mgt'}, {'vnd.globalplatform.card-content-mgt-response': 'application/vnd.globalplatform.card-content-mgt-response'}, {'vnd.google-earth.kml+xml': 'application/vnd.google-earth.kml+xml'}, {'vnd.google-earth.kmz': 'application/vnd.google-earth.kmz'}, {'vnd.gov.sk.e-form+xml': 'application/vnd.gov.sk.e-form+xml'}, {'vnd.gov.sk.e-form+zip': 'application/vnd.gov.sk.e-form+zip'}, {'vnd.gov.sk.xmldatacontainer+xml': 'application/vnd.gov.sk.xmldatacontainer+xml'}, {'vnd.grafeq': 'application/vnd.grafeq'}, {'vnd.gridmp': 'application/vnd.gridmp'}, {'vnd.groove-account': 'application/vnd.groove-account'}, {'vnd.groove-help': 'application/vnd.groove-help'}, {'vnd.groove-identity-message': 'application/vnd.groove-identity-message'}, {'vnd.groove-injector': 'application/vnd.groove-injector'}, {'vnd.groove-tool-message': 'application/vnd.groove-tool-message'}, {'vnd.groove-tool-template': 'application/vnd.groove-tool-template'}, {'vnd.groove-vcard': 'application/vnd.groove-vcard'}, {'vnd.hal+json': 'application/vnd.hal+json'}, {'vnd.hal+xml': 'application/vnd.hal+xml'}, {'vnd.hbci': 'application/vnd.hbci'}, {'vnd.hc+json': 'application/vnd.hc+json'}, {'vnd.hcl-bireports': 'application/vnd.hcl-bireports'}, {'vnd.hdt': 'application/vnd.hdt'}, {'vnd.heroku+json': 'application/vnd.heroku+json'}, {'vnd.hhe.lesson-player': 'application/vnd.hhe.lesson-player'}, {'vnd.hp-HPGL': 'application/vnd.hp-HPGL'}, {'vnd.hp-PCL': 'application/vnd.hp-PCL'}, {'vnd.hp-PCLXL': 'application/vnd.hp-PCLXL'}, {'vnd.hp-hpid': 'application/vnd.hp-hpid'}, {'vnd.hp-hps': 'application/vnd.hp-hps'}, {'vnd.hp-jlyt': 'application/vnd.hp-jlyt'}, {'vnd.httphone': 'application/vnd.httphone'}, {'vnd.hydrostatix.sof-data': 'application/vnd.hydrostatix.sof-data'}, {'vnd.hyper+json': 'application/vnd.hyper+json'}, {'vnd.hyper-item+json': 'application/vnd.hyper-item+json'}, {'vnd.hyperdrive+json': 'application/vnd.hyperdrive+json'}, {'vnd.hzn-3d-crossword': 'application/vnd.hzn-3d-crossword'}, {'vnd.ibm.MiniPay': 'application/vnd.ibm.MiniPay'}, {'vnd.ibm.electronic-media': 'application/vnd.ibm.electronic-media'}, {'vnd.ibm.rights-management': 'application/vnd.ibm.rights-management'}, {'vnd.ibm.secure-container': 'application/vnd.ibm.secure-container'}, {'vnd.iccprofile': 'application/vnd.iccprofile'}, {'vnd.ieee.1905': 'application/vnd.ieee.1905'}, {'vnd.igloader': 'application/vnd.igloader'}, {'vnd.imagemeter.folder+zip': 'application/vnd.imagemeter.folder+zip'}, {'vnd.imagemeter.image+zip': 'application/vnd.imagemeter.image+zip'}, {'vnd.immervision-ivp': 'application/vnd.immervision-ivp'}, {'vnd.immervision-ivu': 'application/vnd.immervision-ivu'}, {'vnd.ims.imsccv1p1': 'application/vnd.ims.imsccv1p1'}, {'vnd.ims.imsccv1p2': 'application/vnd.ims.imsccv1p2'}, {'vnd.ims.imsccv1p3': 'application/vnd.ims.imsccv1p3'}, {'vnd.ims.lis.v2.result+json': 'application/vnd.ims.lis.v2.result+json'}, {'vnd.ims.lti.v2.toolconsumerprofile+json': 'application/vnd.ims.lti.v2.toolconsumerprofile+json'}, {'vnd.ims.lti.v2.toolproxy+json': 'application/vnd.ims.lti.v2.toolproxy+json'}, {'vnd.ims.lti.v2.toolproxy.id+json': 'application/vnd.ims.lti.v2.toolproxy.id+json'}, {'vnd.ims.lti.v2.toolsettings+json': 'application/vnd.ims.lti.v2.toolsettings+json'}, {'vnd.ims.lti.v2.toolsettings.simple+json': 'application/vnd.ims.lti.v2.toolsettings.simple+json'}, {'vnd.informedcontrol.rms+xml': 'application/vnd.informedcontrol.rms+xml'}, {'vnd.infotech.project': 'application/vnd.infotech.project'}, {'vnd.infotech.project+xml': 'application/vnd.infotech.project+xml'}, {'vnd.innopath.wamp.notification': 'application/vnd.innopath.wamp.notification'}, {'vnd.insors.igm': 'application/vnd.insors.igm'}, {'vnd.intercon.formnet': 'application/vnd.intercon.formnet'}, {'vnd.intergeo': 'application/vnd.intergeo'}, {'vnd.intertrust.digibox': 'application/vnd.intertrust.digibox'}, {'vnd.intertrust.nncp': 'application/vnd.intertrust.nncp'}, {'vnd.intu.qbo': 'application/vnd.intu.qbo'}, {'vnd.intu.qfx': 'application/vnd.intu.qfx'}, {'vnd.iptc.g2.catalogitem+xml': 'application/vnd.iptc.g2.catalogitem+xml'}, {'vnd.iptc.g2.conceptitem+xml': 'application/vnd.iptc.g2.conceptitem+xml'}, {'vnd.iptc.g2.knowledgeitem+xml': 'application/vnd.iptc.g2.knowledgeitem+xml'}, {'vnd.iptc.g2.newsitem+xml': 'application/vnd.iptc.g2.newsitem+xml'}, {'vnd.iptc.g2.newsmessage+xml': 'application/vnd.iptc.g2.newsmessage+xml'}, {'vnd.iptc.g2.packageitem+xml': 'application/vnd.iptc.g2.packageitem+xml'}, {'vnd.iptc.g2.planningitem+xml': 'application/vnd.iptc.g2.planningitem+xml'}, {'vnd.ipunplugged.rcprofile': 'application/vnd.ipunplugged.rcprofile'}, {'vnd.irepository.package+xml': 'application/vnd.irepository.package+xml'}, {'vnd.is-xpr': 'application/vnd.is-xpr'}, {'vnd.isac.fcs': 'application/vnd.isac.fcs'}, {'vnd.iso11783-10+zip': 'application/vnd.iso11783-10+zip'}, {'vnd.jam': 'application/vnd.jam'}, {'vnd.japannet-directory-service': 'application/vnd.japannet-directory-service'}, {'vnd.japannet-jpnstore-wakeup': 'application/vnd.japannet-jpnstore-wakeup'}, {'vnd.japannet-payment-wakeup': 'application/vnd.japannet-payment-wakeup'}, {'vnd.japannet-registration': 'application/vnd.japannet-registration'}, {'vnd.japannet-registration-wakeup': 'application/vnd.japannet-registration-wakeup'}, {'vnd.japannet-setstore-wakeup': 'application/vnd.japannet-setstore-wakeup'}, {'vnd.japannet-verification': 'application/vnd.japannet-verification'}, {'vnd.japannet-verification-wakeup': 'application/vnd.japannet-verification-wakeup'}, {'vnd.jcp.javame.midlet-rms': 'application/vnd.jcp.javame.midlet-rms'}, {'vnd.jisp': 'application/vnd.jisp'}, {'vnd.joost.joda-archive': 'application/vnd.joost.joda-archive'}, {'vnd.jsk.isdn-ngn': 'application/vnd.jsk.isdn-ngn'}, {'vnd.kahootz': 'application/vnd.kahootz'}, {'vnd.kde.karbon': 'application/vnd.kde.karbon'}, {'vnd.kde.kchart': 'application/vnd.kde.kchart'}, {'vnd.kde.kformula': 'application/vnd.kde.kformula'}, {'vnd.kde.kivio': 'application/vnd.kde.kivio'}, {'vnd.kde.kontour': 'application/vnd.kde.kontour'}, {'vnd.kde.kpresenter': 'application/vnd.kde.kpresenter'}, {'vnd.kde.kspread': 'application/vnd.kde.kspread'}, {'vnd.kde.kword': 'application/vnd.kde.kword'}, {'vnd.kenameaapp': 'application/vnd.kenameaapp'}, {'vnd.kidspiration': 'application/vnd.kidspiration'}, {'vnd.koan': 'application/vnd.koan'}, {'vnd.kodak-descriptor': 'application/vnd.kodak-descriptor'}, {'vnd.las': 'application/vnd.las'}, {'vnd.las.las+json': 'application/vnd.las.las+json'}, {'vnd.las.las+xml': 'application/vnd.las.las+xml'}, {'vnd.laszip': 'application/vnd.laszip'}, {'vnd.leap+json': 'application/vnd.leap+json'}, {'vnd.liberty-request+xml': 'application/vnd.liberty-request+xml'}, {'vnd.llamagraphics.life-balance.desktop': 'application/vnd.llamagraphics.life-balance.desktop'}, {'vnd.llamagraphics.life-balance.exchange+xml': 'application/vnd.llamagraphics.life-balance.exchange+xml'}, {'vnd.logipipe.circuit+zip': 'application/vnd.logipipe.circuit+zip'}, {'vnd.loom': 'application/vnd.loom'}, {'vnd.lotus-1-2-3': 'application/vnd.lotus-1-2-3'}, {'vnd.lotus-approach': 'application/vnd.lotus-approach'}, {'vnd.lotus-freelance': 'application/vnd.lotus-freelance'}, {'vnd.lotus-notes': 'application/vnd.lotus-notes'}, {'vnd.lotus-organizer': 'application/vnd.lotus-organizer'}, {'vnd.lotus-screencam': 'application/vnd.lotus-screencam'}, {'vnd.lotus-wordpro': 'application/vnd.lotus-wordpro'}, {'vnd.macports.portpkg': 'application/vnd.macports.portpkg'}, {'vnd.mapbox-vector-tile': 'application/vnd.mapbox-vector-tile'}, {'vnd.marlin.drm.actiontoken+xml': 'application/vnd.marlin.drm.actiontoken+xml'}, {'vnd.marlin.drm.conftoken+xml': 'application/vnd.marlin.drm.conftoken+xml'}, {'vnd.marlin.drm.license+xml': 'application/vnd.marlin.drm.license+xml'}, {'vnd.marlin.drm.mdcf': 'application/vnd.marlin.drm.mdcf'}, {'vnd.mason+json': 'application/vnd.mason+json'}, {'vnd.maxmind.maxmind-db': 'application/vnd.maxmind.maxmind-db'}, {'vnd.mcd': 'application/vnd.mcd'}, {'vnd.medcalcdata': 'application/vnd.medcalcdata'}, {'vnd.mediastation.cdkey': 'application/vnd.mediastation.cdkey'}, {'vnd.meridian-slingshot': 'application/vnd.meridian-slingshot'}, {'vnd.mfmp': 'application/vnd.mfmp'}, {'vnd.micro+json': 'application/vnd.micro+json'}, {'vnd.micrografx.flo': 'application/vnd.micrografx.flo'}, {'vnd.micrografx.igx': 'application/vnd.micrografx.igx'}, {'vnd.microsoft.portable-executable': 'application/vnd.microsoft.portable-executable'}, {'vnd.microsoft.windows.thumbnail-cache': 'application/vnd.microsoft.windows.thumbnail-cache'}, {'vnd.miele+json': 'application/vnd.miele+json'}, {'vnd.mif': 'application/vnd.mif'}, {'vnd.minisoft-hp3000-save': 'application/vnd.minisoft-hp3000-save'}, {'vnd.mitsubishi.misty-guard.trustweb': 'application/vnd.mitsubishi.misty-guard.trustweb'}, {'vnd.mophun.application': 'application/vnd.mophun.application'}, {'vnd.mophun.certificate': 'application/vnd.mophun.certificate'}, {'vnd.motorola.flexsuite': 'application/vnd.motorola.flexsuite'}, {'vnd.motorola.flexsuite.adsi': 'application/vnd.motorola.flexsuite.adsi'}, {'vnd.motorola.flexsuite.fis': 'application/vnd.motorola.flexsuite.fis'}, {'vnd.motorola.flexsuite.gotap': 'application/vnd.motorola.flexsuite.gotap'}, {'vnd.motorola.flexsuite.kmr': 'application/vnd.motorola.flexsuite.kmr'}, {'vnd.motorola.flexsuite.ttc': 'application/vnd.motorola.flexsuite.ttc'}, {'vnd.motorola.flexsuite.wem': 'application/vnd.motorola.flexsuite.wem'}, {'vnd.motorola.iprm': 'application/vnd.motorola.iprm'}, {'vnd.mozilla.xul+xml': 'application/vnd.mozilla.xul+xml'}, {'vnd.ms-3mfdocument': 'application/vnd.ms-3mfdocument'}, {'vnd.ms-PrintDeviceCapabilities+xml': 'application/vnd.ms-PrintDeviceCapabilities+xml'}, {'vnd.ms-PrintSchemaTicket+xml': 'application/vnd.ms-PrintSchemaTicket+xml'}, {'vnd.ms-artgalry': 'application/vnd.ms-artgalry'}, {'vnd.ms-asf': 'application/vnd.ms-asf'}, {'vnd.ms-cab-compressed': 'application/vnd.ms-cab-compressed'}, {'vnd.ms-excel': 'application/vnd.ms-excel'}, {'vnd.ms-excel.addin.macroEnabled.12': 'application/vnd.ms-excel.addin.macroEnabled.12'}, {'vnd.ms-excel.sheet.binary.macroEnabled.12': 'application/vnd.ms-excel.sheet.binary.macroEnabled.12'}, {'vnd.ms-excel.sheet.macroEnabled.12': 'application/vnd.ms-excel.sheet.macroEnabled.12'}, {'vnd.ms-excel.template.macroEnabled.12': 'application/vnd.ms-excel.template.macroEnabled.12'}, {'vnd.ms-fontobject': 'application/vnd.ms-fontobject'}, {'vnd.ms-htmlhelp': 'application/vnd.ms-htmlhelp'}, {'vnd.ms-ims': 'application/vnd.ms-ims'}, {'vnd.ms-lrm': 'application/vnd.ms-lrm'}, {'vnd.ms-office.activeX+xml': 'application/vnd.ms-office.activeX+xml'}, {'vnd.ms-officetheme': 'application/vnd.ms-officetheme'}, {'vnd.ms-playready.initiator+xml': 'application/vnd.ms-playready.initiator+xml'}, {'vnd.ms-powerpoint': 'application/vnd.ms-powerpoint'}, {'vnd.ms-powerpoint.addin.macroEnabled.12': 'application/vnd.ms-powerpoint.addin.macroEnabled.12'}, {'vnd.ms-powerpoint.presentation.macroEnabled.12': 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'}, {'vnd.ms-powerpoint.slide.macroEnabled.12': 'application/vnd.ms-powerpoint.slide.macroEnabled.12'}, {'vnd.ms-powerpoint.slideshow.macroEnabled.12': 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12'}, {'vnd.ms-powerpoint.template.macroEnabled.12': 'application/vnd.ms-powerpoint.template.macroEnabled.12'}, {'vnd.ms-project': 'application/vnd.ms-project'}, {'vnd.ms-tnef': 'application/vnd.ms-tnef'}, {'vnd.ms-windows.devicepairing': 'application/vnd.ms-windows.devicepairing'}, {'vnd.ms-windows.nwprinting.oob': 'application/vnd.ms-windows.nwprinting.oob'}, {'vnd.ms-windows.printerpairing': 'application/vnd.ms-windows.printerpairing'}, {'vnd.ms-windows.wsd.oob': 'application/vnd.ms-windows.wsd.oob'}, {'vnd.ms-wmdrm.lic-chlg-req': 'application/vnd.ms-wmdrm.lic-chlg-req'}, {'vnd.ms-wmdrm.lic-resp': 'application/vnd.ms-wmdrm.lic-resp'}, {'vnd.ms-wmdrm.meter-chlg-req': 'application/vnd.ms-wmdrm.meter-chlg-req'}, {'vnd.ms-wmdrm.meter-resp': 'application/vnd.ms-wmdrm.meter-resp'}, {'vnd.ms-word.document.macroEnabled.12': 'application/vnd.ms-word.document.macroEnabled.12'}, {'vnd.ms-word.template.macroEnabled.12': 'application/vnd.ms-word.template.macroEnabled.12'}, {'vnd.ms-works': 'application/vnd.ms-works'}, {'vnd.ms-wpl': 'application/vnd.ms-wpl'}, {'vnd.ms-xpsdocument': 'application/vnd.ms-xpsdocument'}, {'vnd.msa-disk-image': 'application/vnd.msa-disk-image'}, {'vnd.mseq': 'application/vnd.mseq'}, {'vnd.msign': 'application/vnd.msign'}, {'vnd.multiad.creator': 'application/vnd.multiad.creator'}, {'vnd.multiad.creator.cif': 'application/vnd.multiad.creator.cif'}, {'vnd.music-niff': 'application/vnd.music-niff'}, {'vnd.musician': 'application/vnd.musician'}, {'vnd.muvee.style': 'application/vnd.muvee.style'}, {'vnd.mynfc': 'application/vnd.mynfc'}, {'vnd.ncd.control': 'application/vnd.ncd.control'}, {'vnd.ncd.reference': 'application/vnd.ncd.reference'}, {'vnd.nearst.inv+json': 'application/vnd.nearst.inv+json'}, {'vnd.nebumind.line': 'application/vnd.nebumind.line'}, {'vnd.nervana': 'application/vnd.nervana'}, {'vnd.netfpx': 'application/vnd.netfpx'}, {'vnd.neurolanguage.nlu': 'application/vnd.neurolanguage.nlu'}, {'vnd.nimn': 'application/vnd.nimn'}, {'vnd.nintendo.nitro.rom': 'application/vnd.nintendo.nitro.rom'}, {'vnd.nintendo.snes.rom': 'application/vnd.nintendo.snes.rom'}, {'vnd.nitf': 'application/vnd.nitf'}, {'vnd.noblenet-directory': 'application/vnd.noblenet-directory'}, {'vnd.noblenet-sealer': 'application/vnd.noblenet-sealer'}, {'vnd.noblenet-web': 'application/vnd.noblenet-web'}, {'vnd.nokia.catalogs': 'application/vnd.nokia.catalogs'}, {'vnd.nokia.conml+wbxml': 'application/vnd.nokia.conml+wbxml'}, {'vnd.nokia.conml+xml': 'application/vnd.nokia.conml+xml'}, {'vnd.nokia.iSDS-radio-presets': 'application/vnd.nokia.iSDS-radio-presets'}, {'vnd.nokia.iptv.config+xml': 'application/vnd.nokia.iptv.config+xml'}, {'vnd.nokia.landmark+wbxml': 'application/vnd.nokia.landmark+wbxml'}, {'vnd.nokia.landmark+xml': 'application/vnd.nokia.landmark+xml'}, {'vnd.nokia.landmarkcollection+xml': 'application/vnd.nokia.landmarkcollection+xml'}, {'vnd.nokia.n-gage.ac+xml': 'application/vnd.nokia.n-gage.ac+xml'}, {'vnd.nokia.n-gage.data': 'application/vnd.nokia.n-gage.data'}, {'vnd.nokia.ncd': 'application/vnd.nokia.ncd'}, {'vnd.nokia.pcd+wbxml': 'application/vnd.nokia.pcd+wbxml'}, {'vnd.nokia.pcd+xml': 'application/vnd.nokia.pcd+xml'}, {'vnd.nokia.radio-preset': 'application/vnd.nokia.radio-preset'}, {'vnd.nokia.radio-presets': 'application/vnd.nokia.radio-presets'}, {'vnd.novadigm.EDM': 'application/vnd.novadigm.EDM'}, {'vnd.novadigm.EDX': 'application/vnd.novadigm.EDX'}, {'vnd.novadigm.EXT': 'application/vnd.novadigm.EXT'}, {'vnd.ntt-local.content-share': 'application/vnd.ntt-local.content-share'}, {'vnd.ntt-local.file-transfer': 'application/vnd.ntt-local.file-transfer'}, {'vnd.ntt-local.ogw_remote-access': 'application/vnd.ntt-local.ogw_remote-access'}, {'vnd.ntt-local.sip-ta_remote': 'application/vnd.ntt-local.sip-ta_remote'}, {'vnd.ntt-local.sip-ta_tcp_stream': 'application/vnd.ntt-local.sip-ta_tcp_stream'}, {'vnd.oasis.opendocument.chart': 'application/vnd.oasis.opendocument.chart'}, {'vnd.oasis.opendocument.chart-template': 'application/vnd.oasis.opendocument.chart-template'}, {'vnd.oasis.opendocument.database': 'application/vnd.oasis.opendocument.database'}, {'vnd.oasis.opendocument.formula': 'application/vnd.oasis.opendocument.formula'}, {'vnd.oasis.opendocument.formula-template': 'application/vnd.oasis.opendocument.formula-template'}, {'vnd.oasis.opendocument.graphics': 'application/vnd.oasis.opendocument.graphics'}, {'vnd.oasis.opendocument.graphics-template': 'application/vnd.oasis.opendocument.graphics-template'}, {'vnd.oasis.opendocument.image': 'application/vnd.oasis.opendocument.image'}, {'vnd.oasis.opendocument.image-template': 'application/vnd.oasis.opendocument.image-template'}, {'vnd.oasis.opendocument.presentation': 'application/vnd.oasis.opendocument.presentation'}, {'vnd.oasis.opendocument.presentation-template': 'application/vnd.oasis.opendocument.presentation-template'}, {'vnd.oasis.opendocument.spreadsheet': 'application/vnd.oasis.opendocument.spreadsheet'}, {'vnd.oasis.opendocument.spreadsheet-template': 'application/vnd.oasis.opendocument.spreadsheet-template'}, {'vnd.oasis.opendocument.text': 'application/vnd.oasis.opendocument.text'}, {'vnd.oasis.opendocument.text-master': 'application/vnd.oasis.opendocument.text-master'}, {'vnd.oasis.opendocument.text-template': 'application/vnd.oasis.opendocument.text-template'}, {'vnd.oasis.opendocument.text-web': 'application/vnd.oasis.opendocument.text-web'}, {'vnd.obn': 'application/vnd.obn'}, {'vnd.ocf+cbor': 'application/vnd.ocf+cbor'}, {'vnd.oci.image.manifest.v1+json': 'application/vnd.oci.image.manifest.v1+json'}, {'vnd.oftn.l10n+json': 'application/vnd.oftn.l10n+json'}, {'vnd.oipf.contentaccessdownload+xml': 'application/vnd.oipf.contentaccessdownload+xml'}, {'vnd.oipf.contentaccessstreaming+xml': 'application/vnd.oipf.contentaccessstreaming+xml'}, {'vnd.oipf.cspg-hexbinary': 'application/vnd.oipf.cspg-hexbinary'}, {'vnd.oipf.dae.svg+xml': 'application/vnd.oipf.dae.svg+xml'}, {'vnd.oipf.dae.xhtml+xml': 'application/vnd.oipf.dae.xhtml+xml'}, {'vnd.oipf.mippvcontrolmessage+xml': 'application/vnd.oipf.mippvcontrolmessage+xml'}, {'vnd.oipf.pae.gem': 'application/vnd.oipf.pae.gem'}, {'vnd.oipf.spdiscovery+xml': 'application/vnd.oipf.spdiscovery+xml'}, {'vnd.oipf.spdlist+xml': 'application/vnd.oipf.spdlist+xml'}, {'vnd.oipf.ueprofile+xml': 'application/vnd.oipf.ueprofile+xml'}, {'vnd.oipf.userprofile+xml': 'application/vnd.oipf.userprofile+xml'}, {'vnd.olpc-sugar': 'application/vnd.olpc-sugar'}, {'vnd.oma-scws-config': 'application/vnd.oma-scws-config'}, {'vnd.oma-scws-http-request': 'application/vnd.oma-scws-http-request'}, {'vnd.oma-scws-http-response': 'application/vnd.oma-scws-http-response'}, {'vnd.oma.bcast.associated-procedure-parameter+xml': 'application/vnd.oma.bcast.associated-procedure-parameter+xml'}, {'vnd.oma.bcast.drm-trigger+xml': 'application/vnd.oma.bcast.drm-trigger+xml'}, {'vnd.oma.bcast.imd+xml': 'application/vnd.oma.bcast.imd+xml'}, {'vnd.oma.bcast.ltkm': 'application/vnd.oma.bcast.ltkm'}, {'vnd.oma.bcast.notification+xml': 'application/vnd.oma.bcast.notification+xml'}, {'vnd.oma.bcast.provisioningtrigger': 'application/vnd.oma.bcast.provisioningtrigger'}, {'vnd.oma.bcast.sgboot': 'application/vnd.oma.bcast.sgboot'}, {'vnd.oma.bcast.sgdd+xml': 'application/vnd.oma.bcast.sgdd+xml'}, {'vnd.oma.bcast.sgdu': 'application/vnd.oma.bcast.sgdu'}, {'vnd.oma.bcast.simple-symbol-container': 'application/vnd.oma.bcast.simple-symbol-container'}, {'vnd.oma.bcast.smartcard-trigger+xml': 'application/vnd.oma.bcast.smartcard-trigger+xml'}, {'vnd.oma.bcast.sprov+xml': 'application/vnd.oma.bcast.sprov+xml'}, {'vnd.oma.bcast.stkm': 'application/vnd.oma.bcast.stkm'}, {'vnd.oma.cab-address-book+xml': 'application/vnd.oma.cab-address-book+xml'}, {'vnd.oma.cab-feature-handler+xml': 'application/vnd.oma.cab-feature-handler+xml'}, {'vnd.oma.cab-pcc+xml': 'application/vnd.oma.cab-pcc+xml'}, {'vnd.oma.cab-subs-invite+xml': 'application/vnd.oma.cab-subs-invite+xml'}, {'vnd.oma.cab-user-prefs+xml': 'application/vnd.oma.cab-user-prefs+xml'}, {'vnd.oma.dcd': 'application/vnd.oma.dcd'}, {'vnd.oma.dcdc': 'application/vnd.oma.dcdc'}, {'vnd.oma.dd2+xml': 'application/vnd.oma.dd2+xml'}, {'vnd.oma.drm.risd+xml': 'application/vnd.oma.drm.risd+xml'}, {'vnd.oma.group-usage-list+xml': 'application/vnd.oma.group-usage-list+xml'}, {'vnd.oma.lwm2m+cbor': 'application/vnd.oma.lwm2m+cbor'}, {'vnd.oma.lwm2m+json': 'application/vnd.oma.lwm2m+json'}, {'vnd.oma.lwm2m+tlv': 'application/vnd.oma.lwm2m+tlv'}, {'vnd.oma.pal+xml': 'application/vnd.oma.pal+xml'}, {'vnd.oma.poc.detailed-progress-report+xml': 'application/vnd.oma.poc.detailed-progress-report+xml'}, {'vnd.oma.poc.final-report+xml': 'application/vnd.oma.poc.final-report+xml'}, {'vnd.oma.poc.groups+xml': 'application/vnd.oma.poc.groups+xml'}, {'vnd.oma.poc.invocation-descriptor+xml': 'application/vnd.oma.poc.invocation-descriptor+xml'}, {'vnd.oma.poc.optimized-progress-report+xml': 'application/vnd.oma.poc.optimized-progress-report+xml'}, {'vnd.oma.push': 'application/vnd.oma.push'}, {'vnd.oma.scidm.messages+xml': 'application/vnd.oma.scidm.messages+xml'}, {'vnd.oma.xcap-directory+xml': 'application/vnd.oma.xcap-directory+xml'}, {'vnd.omads-email+xml': 'application/vnd.omads-email+xml'}, {'vnd.omads-file+xml': 'application/vnd.omads-file+xml'}, {'vnd.omads-folder+xml': 'application/vnd.omads-folder+xml'}, {'vnd.omaloc-supl-init': 'application/vnd.omaloc-supl-init'}, {'vnd.onepager': 'application/vnd.onepager'}, {'vnd.onepagertamp': 'application/vnd.onepagertamp'}, {'vnd.onepagertamx': 'application/vnd.onepagertamx'}, {'vnd.onepagertat': 'application/vnd.onepagertat'}, {'vnd.onepagertatp': 'application/vnd.onepagertatp'}, {'vnd.onepagertatx': 'application/vnd.onepagertatx'}, {'vnd.openblox.game+xml': 'application/vnd.openblox.game+xml'}, {'vnd.openblox.game-binary': 'application/vnd.openblox.game-binary'}, {'vnd.openeye.oeb': 'application/vnd.openeye.oeb'}, {'vnd.openstreetmap.data+xml': 'application/vnd.openstreetmap.data+xml'}, {'vnd.openxmlformats-officedocument.custom-properties+xml': 'application/vnd.openxmlformats-officedocument.custom-properties+xml'}, {'vnd.openxmlformats-officedocument.customXmlProperties+xml': 'application/vnd.openxmlformats-officedocument.customXmlProperties+xml'}, {'vnd.openxmlformats-officedocument.drawing+xml': 'application/vnd.openxmlformats-officedocument.drawing+xml'}, {'vnd.openxmlformats-officedocument.drawingml.chart+xml': 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'}, {'vnd.openxmlformats-officedocument.drawingml.chartshapes+xml': 'application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml'}, {'vnd.openxmlformats-officedocument.drawingml.diagramColors+xml': 'application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml'}, {'vnd.openxmlformats-officedocument.drawingml.diagramData+xml': 'application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml'}, {'vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml': 'application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml'}, {'vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml': 'application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml'}, {'vnd.openxmlformats-officedocument.extended-properties+xml': 'application/vnd.openxmlformats-officedocument.extended-properties+xml'}, {'vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml': 'application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml'}, {'vnd.openxmlformats-officedocument.presentationml.comments+xml': 'application/vnd.openxmlformats-officedocument.presentationml.comments+xml'}, {'vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml': 'application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml'}, {'vnd.openxmlformats-officedocument.presentationml.notesMaster+xml': 'application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml'}, {'vnd.openxmlformats-officedocument.presentationml.notesSlide+xml': 'application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml'}, {'vnd.openxmlformats-officedocument.presentationml.presProps+xml': 'application/vnd.openxmlformats-officedocument.presentationml.presProps+xml'}, {'vnd.openxmlformats-officedocument.presentationml.presentation': 'application/vnd.openxmlformats-officedocument.presentationml.presentation'}, {'vnd.openxmlformats-officedocument.presentationml.presentation.main+xml': 'application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml'}, {'vnd.openxmlformats-officedocument.presentationml.slide': 'application/vnd.openxmlformats-officedocument.presentationml.slide'}, {'vnd.openxmlformats-officedocument.presentationml.slide+xml': 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml'}, {'vnd.openxmlformats-officedocument.presentationml.slideLayout+xml': 'application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml'}, {'vnd.openxmlformats-officedocument.presentationml.slideMaster+xml': 'application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml'}, {'vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml': 'application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml'}, {'vnd.openxmlformats-officedocument.presentationml.slideshow': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow'}, {'vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml'}, {'vnd.openxmlformats-officedocument.presentationml.tableStyles+xml': 'application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml'}, {'vnd.openxmlformats-officedocument.presentationml.tags+xml': 'application/vnd.openxmlformats-officedocument.presentationml.tags+xml'}, {'vnd.openxmlformats-officedocument.presentationml.template': 'application/vnd.openxmlformats-officedocument.presentationml.template'}, {'vnd.openxmlformats-officedocument.presentationml.template.main+xml': 'application/vnd.openxmlformats-officedocument.presentationml.template.main+xml'}, {'vnd.openxmlformats-officedocument.presentationml.viewProps+xml': 'application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.comments+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.connections+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}, {'vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.styles+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.table+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.template': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template'}, {'vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml'}, {'vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml': 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'}, {'vnd.openxmlformats-officedocument.theme+xml': 'application/vnd.openxmlformats-officedocument.theme+xml'}, {'vnd.openxmlformats-officedocument.themeOverride+xml': 'application/vnd.openxmlformats-officedocument.themeOverride+xml'}, {'vnd.openxmlformats-officedocument.vmlDrawing': 'application/vnd.openxmlformats-officedocument.vmlDrawing'}, {'vnd.openxmlformats-officedocument.wordprocessingml.comments+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.document': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'}, {'vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.footer+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.settings+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.styles+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.template': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template'}, {'vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml'}, {'vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml': 'application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml'}, {'vnd.openxmlformats-package.core-properties+xml': 'application/vnd.openxmlformats-package.core-properties+xml'}, {'vnd.openxmlformats-package.digital-signature-xmlsignature+xml': 'application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml'}, {'vnd.openxmlformats-package.relationships+xml': 'application/vnd.openxmlformats-package.relationships+xml'}, {'vnd.oracle.resource+json': 'application/vnd.oracle.resource+json'}, {'vnd.orange.indata': 'application/vnd.orange.indata'}, {'vnd.osa.netdeploy': 'application/vnd.osa.netdeploy'}, {'vnd.osgeo.mapguide.package': 'application/vnd.osgeo.mapguide.package'}, {'vnd.osgi.bundle': 'application/vnd.osgi.bundle'}, {'vnd.osgi.dp': 'application/vnd.osgi.dp'}, {'vnd.osgi.subsystem': 'application/vnd.osgi.subsystem'}, {'vnd.otps.ct-kip+xml': 'application/vnd.otps.ct-kip+xml'}, {'vnd.oxli.countgraph': 'application/vnd.oxli.countgraph'}, {'vnd.pagerduty+json': 'application/vnd.pagerduty+json'}, {'vnd.palm': 'application/vnd.palm'}, {'vnd.panoply': 'application/vnd.panoply'}, {'vnd.paos.xml': 'application/vnd.paos.xml'}, {'vnd.patentdive': 'application/vnd.patentdive'}, {'vnd.patientecommsdoc': 'application/vnd.patientecommsdoc'}, {'vnd.pawaafile': 'application/vnd.pawaafile'}, {'vnd.pcos': 'application/vnd.pcos'}, {'vnd.pg.format': 'application/vnd.pg.format'}, {'vnd.pg.osasli': 'application/vnd.pg.osasli'}, {'vnd.piaccess.application-licence': 'application/vnd.piaccess.application-licence'}, {'vnd.picsel': 'application/vnd.picsel'}, {'vnd.pmi.widget': 'application/vnd.pmi.widget'}, {'vnd.poc.group-advertisement+xml': 'application/vnd.poc.group-advertisement+xml'}, {'vnd.pocketlearn': 'application/vnd.pocketlearn'}, {'vnd.powerbuilder6': 'application/vnd.powerbuilder6'}, {'vnd.powerbuilder6-s': 'application/vnd.powerbuilder6-s'}, {'vnd.powerbuilder7': 'application/vnd.powerbuilder7'}, {'vnd.powerbuilder7-s': 'application/vnd.powerbuilder7-s'}, {'vnd.powerbuilder75': 'application/vnd.powerbuilder75'}, {'vnd.powerbuilder75-s': 'application/vnd.powerbuilder75-s'}, {'vnd.preminet': 'application/vnd.preminet'}, {'vnd.previewsystems.box': 'application/vnd.previewsystems.box'}, {'vnd.proteus.magazine': 'application/vnd.proteus.magazine'}, {'vnd.psfs': 'application/vnd.psfs'}, {'vnd.publishare-delta-tree': 'application/vnd.publishare-delta-tree'}, {'vnd.pvi.ptid1': 'application/vnd.pvi.ptid1'}, {'vnd.pwg-multiplexed': 'application/vnd.pwg-multiplexed'}, {'vnd.pwg-xhtml-print+xml': 'application/vnd.pwg-xhtml-print+xml'}, {'vnd.qualcomm.brew-app-res': 'application/vnd.qualcomm.brew-app-res'}, {'vnd.quarantainenet': 'application/vnd.quarantainenet'}, {'vnd.quobject-quoxdocument': 'application/vnd.quobject-quoxdocument'}, {'vnd.radisys.moml+xml': 'application/vnd.radisys.moml+xml'}, {'vnd.radisys.msml+xml': 'application/vnd.radisys.msml+xml'}, {'vnd.radisys.msml-audit+xml': 'application/vnd.radisys.msml-audit+xml'}, {'vnd.radisys.msml-audit-conf+xml': 'application/vnd.radisys.msml-audit-conf+xml'}, {'vnd.radisys.msml-audit-conn+xml': 'application/vnd.radisys.msml-audit-conn+xml'}, {'vnd.radisys.msml-audit-dialog+xml': 'application/vnd.radisys.msml-audit-dialog+xml'}, {'vnd.radisys.msml-audit-stream+xml': 'application/vnd.radisys.msml-audit-stream+xml'}, {'vnd.radisys.msml-conf+xml': 'application/vnd.radisys.msml-conf+xml'}, {'vnd.radisys.msml-dialog+xml': 'application/vnd.radisys.msml-dialog+xml'}, {'vnd.radisys.msml-dialog-base+xml': 'application/vnd.radisys.msml-dialog-base+xml'}, {'vnd.radisys.msml-dialog-fax-detect+xml': 'application/vnd.radisys.msml-dialog-fax-detect+xml'}, {'vnd.radisys.msml-dialog-fax-sendrecv+xml': 'application/vnd.radisys.msml-dialog-fax-sendrecv+xml'}, {'vnd.radisys.msml-dialog-group+xml': 'application/vnd.radisys.msml-dialog-group+xml'}, {'vnd.radisys.msml-dialog-speech+xml': 'application/vnd.radisys.msml-dialog-speech+xml'}, {'vnd.radisys.msml-dialog-transform+xml': 'application/vnd.radisys.msml-dialog-transform+xml'}, {'vnd.rainstor.data': 'application/vnd.rainstor.data'}, {'vnd.rapid': 'application/vnd.rapid'}, {'vnd.rar': 'application/vnd.rar'}, {'vnd.realvnc.bed': 'application/vnd.realvnc.bed'}, {'vnd.recordare.musicxml': 'application/vnd.recordare.musicxml'}, {'vnd.recordare.musicxml+xml': 'application/vnd.recordare.musicxml+xml'}, {'vnd.resilient.logic': 'application/vnd.resilient.logic'}, {'vnd.restful+json': 'application/vnd.restful+json'}, {'vnd.rig.cryptonote': 'application/vnd.rig.cryptonote'}, {'vnd.route66.link66+xml': 'application/vnd.route66.link66+xml'}, {'vnd.rs-274x': 'application/vnd.rs-274x'}, {'vnd.ruckus.download': 'application/vnd.ruckus.download'}, {'vnd.s3sms': 'application/vnd.s3sms'}, {'vnd.sailingtracker.track': 'application/vnd.sailingtracker.track'}, {'vnd.sar': 'application/vnd.sar'}, {'vnd.sbm.cid': 'application/vnd.sbm.cid'}, {'vnd.sbm.mid2': 'application/vnd.sbm.mid2'}, {'vnd.scribus': 'application/vnd.scribus'}, {'vnd.sealed.3df': 'application/vnd.sealed.3df'}, {'vnd.sealed.csf': 'application/vnd.sealed.csf'}, {'vnd.sealed.doc': 'application/vnd.sealed.doc'}, {'vnd.sealed.eml': 'application/vnd.sealed.eml'}, {'vnd.sealed.mht': 'application/vnd.sealed.mht'}, {'vnd.sealed.net': 'application/vnd.sealed.net'}, {'vnd.sealed.ppt': 'application/vnd.sealed.ppt'}, {'vnd.sealed.tiff': 'application/vnd.sealed.tiff'}, {'vnd.sealed.xls': 'application/vnd.sealed.xls'}, {'vnd.sealedmedia.softseal.html': 'application/vnd.sealedmedia.softseal.html'}, {'vnd.sealedmedia.softseal.pdf': 'application/vnd.sealedmedia.softseal.pdf'}, {'vnd.seemail': 'application/vnd.seemail'}, {'vnd.seis+json': 'application/vnd.seis+json'}, {'vnd.sema': 'application/vnd.sema'}, {'vnd.semd': 'application/vnd.semd'}, {'vnd.semf': 'application/vnd.semf'}, {'vnd.shade-save-file': 'application/vnd.shade-save-file'}, {'vnd.shana.informed.formdata': 'application/vnd.shana.informed.formdata'}, {'vnd.shana.informed.formtemplate': 'application/vnd.shana.informed.formtemplate'}, {'vnd.shana.informed.interchange': 'application/vnd.shana.informed.interchange'}, {'vnd.shana.informed.package': 'application/vnd.shana.informed.package'}, {'vnd.shootproof+json': 'application/vnd.shootproof+json'}, {'vnd.shopkick+json': 'application/vnd.shopkick+json'}, {'vnd.shp': 'application/vnd.shp'}, {'vnd.shx': 'application/vnd.shx'}, {'vnd.sigrok.session': 'application/vnd.sigrok.session'}, {'vnd.siren+json': 'application/vnd.siren+json'}, {'vnd.smaf': 'application/vnd.smaf'}, {'vnd.smart.notebook': 'application/vnd.smart.notebook'}, {'vnd.smart.teacher': 'application/vnd.smart.teacher'}, {'vnd.snesdev-page-table': 'application/vnd.snesdev-page-table'}, {'vnd.software602.filler.form+xml': 'application/vnd.software602.filler.form+xml'}, {'vnd.software602.filler.form-xml-zip': 'application/vnd.software602.filler.form-xml-zip'}, {'vnd.solent.sdkm+xml': 'application/vnd.solent.sdkm+xml'}, {'vnd.spotfire.dxp': 'application/vnd.spotfire.dxp'}, {'vnd.spotfire.sfs': 'application/vnd.spotfire.sfs'}, {'vnd.sqlite3': 'application/vnd.sqlite3'}, {'vnd.sss-cod': 'application/vnd.sss-cod'}, {'vnd.sss-dtf': 'application/vnd.sss-dtf'}, {'vnd.sss-ntf': 'application/vnd.sss-ntf'}, {'vnd.stepmania.package': 'application/vnd.stepmania.package'}, {'vnd.stepmania.stepchart': 'application/vnd.stepmania.stepchart'}, {'vnd.street-stream': 'application/vnd.street-stream'}, {'vnd.sun.wadl+xml': 'application/vnd.sun.wadl+xml'}, {'vnd.sus-calendar': 'application/vnd.sus-calendar'}, {'vnd.svd': 'application/vnd.svd'}, {'vnd.swiftview-ics': 'application/vnd.swiftview-ics'}, {'vnd.sycle+xml': 'application/vnd.sycle+xml'}, {'vnd.syncml+xml': 'application/vnd.syncml+xml'}, {'vnd.syncml.dm+wbxml': 'application/vnd.syncml.dm+wbxml'}, {'vnd.syncml.dm+xml': 'application/vnd.syncml.dm+xml'}, {'vnd.syncml.dm.notification': 'application/vnd.syncml.dm.notification'}, {'vnd.syncml.dmddf+wbxml': 'application/vnd.syncml.dmddf+wbxml'}, {'vnd.syncml.dmddf+xml': 'application/vnd.syncml.dmddf+xml'}, {'vnd.syncml.dmtnds+wbxml': 'application/vnd.syncml.dmtnds+wbxml'}, {'vnd.syncml.dmtnds+xml': 'application/vnd.syncml.dmtnds+xml'}, {'vnd.syncml.ds.notification': 'application/vnd.syncml.ds.notification'}, {'vnd.tableschema+json': 'application/vnd.tableschema+json'}, {'vnd.tao.intent-module-archive': 'application/vnd.tao.intent-module-archive'}, {'vnd.tcpdump.pcap': 'application/vnd.tcpdump.pcap'}, {'vnd.think-cell.ppttc+json': 'application/vnd.think-cell.ppttc+json'}, {'vnd.tmd.mediaflex.api+xml': 'application/vnd.tmd.mediaflex.api+xml'}, {'vnd.tml': 'application/vnd.tml'}, {'vnd.tmobile-livetv': 'application/vnd.tmobile-livetv'}, {'vnd.tri.onesource': 'application/vnd.tri.onesource'}, {'vnd.trid.tpt': 'application/vnd.trid.tpt'}, {'vnd.triscape.mxs': 'application/vnd.triscape.mxs'}, {'vnd.trueapp': 'application/vnd.trueapp'}, {'vnd.truedoc': 'application/vnd.truedoc'}, {'vnd.ubisoft.webplayer': 'application/vnd.ubisoft.webplayer'}, {'vnd.ufdl': 'application/vnd.ufdl'}, {'vnd.uiq.theme': 'application/vnd.uiq.theme'}, {'vnd.umajin': 'application/vnd.umajin'}, {'vnd.unity': 'application/vnd.unity'}, {'vnd.uoml+xml': 'application/vnd.uoml+xml'}, {'vnd.uplanet.alert': 'application/vnd.uplanet.alert'}, {'vnd.uplanet.alert-wbxml': 'application/vnd.uplanet.alert-wbxml'}, {'vnd.uplanet.bearer-choice': 'application/vnd.uplanet.bearer-choice'}, {'vnd.uplanet.bearer-choice-wbxml': 'application/vnd.uplanet.bearer-choice-wbxml'}, {'vnd.uplanet.cacheop': 'application/vnd.uplanet.cacheop'}, {'vnd.uplanet.cacheop-wbxml': 'application/vnd.uplanet.cacheop-wbxml'}, {'vnd.uplanet.channel': 'application/vnd.uplanet.channel'}, {'vnd.uplanet.channel-wbxml': 'application/vnd.uplanet.channel-wbxml'}, {'vnd.uplanet.list': 'application/vnd.uplanet.list'}, {'vnd.uplanet.list-wbxml': 'application/vnd.uplanet.list-wbxml'}, {'vnd.uplanet.listcmd': 'application/vnd.uplanet.listcmd'}, {'vnd.uplanet.listcmd-wbxml': 'application/vnd.uplanet.listcmd-wbxml'}, {'vnd.uplanet.signal': 'application/vnd.uplanet.signal'}, {'vnd.uri-map': 'application/vnd.uri-map'}, {'vnd.valve.source.material': 'application/vnd.valve.source.material'}, {'vnd.vcx': 'application/vnd.vcx'}, {'vnd.vd-study': 'application/vnd.vd-study'}, {'vnd.vectorworks': 'application/vnd.vectorworks'}, {'vnd.vel+json': 'application/vnd.vel+json'}, {'vnd.verimatrix.vcas': 'application/vnd.verimatrix.vcas'}, {'vnd.veryant.thin': 'application/vnd.veryant.thin'}, {'vnd.ves.encrypted': 'application/vnd.ves.encrypted'}, {'vnd.vidsoft.vidconference': 'application/vnd.vidsoft.vidconference'}, {'vnd.visio': 'application/vnd.visio'}, {'vnd.visionary': 'application/vnd.visionary'}, {'vnd.vividence.scriptfile': 'application/vnd.vividence.scriptfile'}, {'vnd.vsf': 'application/vnd.vsf'}, {'vnd.wap.sic': 'application/vnd.wap.sic'}, {'vnd.wap.slc': 'application/vnd.wap.slc'}, {'vnd.wap.wbxml': 'application/vnd.wap.wbxml'}, {'vnd.wap.wmlc': 'application/vnd.wap.wmlc'}, {'vnd.wap.wmlscriptc': 'application/vnd.wap.wmlscriptc'}, {'vnd.webturbo': 'application/vnd.webturbo'}, {'vnd.wfa.dpp': 'application/vnd.wfa.dpp'}, {'vnd.wfa.p2p': 'application/vnd.wfa.p2p'}, {'vnd.wfa.wsc': 'application/vnd.wfa.wsc'}, {'vnd.windows.devicepairing': 'application/vnd.windows.devicepairing'}, {'vnd.wmc': 'application/vnd.wmc'}, {'vnd.wmf.bootstrap': 'application/vnd.wmf.bootstrap'}, {'vnd.wolfram.mathematica': 'application/vnd.wolfram.mathematica'}, {'vnd.wolfram.mathematica.package': 'application/vnd.wolfram.mathematica.package'}, {'vnd.wolfram.player': 'application/vnd.wolfram.player'}, {'vnd.wordperfect': 'application/vnd.wordperfect'}, {'vnd.wqd': 'application/vnd.wqd'}, {'vnd.wrq-hp3000-labelled': 'application/vnd.wrq-hp3000-labelled'}, {'vnd.wt.stf': 'application/vnd.wt.stf'}, {'vnd.wv.csp+wbxml': 'application/vnd.wv.csp+wbxml'}, {'vnd.wv.csp+xml': 'application/vnd.wv.csp+xml'}, {'vnd.wv.ssp+xml': 'application/vnd.wv.ssp+xml'}, {'vnd.xacml+json': 'application/vnd.xacml+json'}, {'vnd.xara': 'application/vnd.xara'}, {'vnd.xfdl': 'application/vnd.xfdl'}, {'vnd.xfdl.webform': 'application/vnd.xfdl.webform'}, {'vnd.xmi+xml': 'application/vnd.xmi+xml'}, {'vnd.xmpie.cpkg': 'application/vnd.xmpie.cpkg'}, {'vnd.xmpie.dpkg': 'application/vnd.xmpie.dpkg'}, {'vnd.xmpie.plan': 'application/vnd.xmpie.plan'}, {'vnd.xmpie.ppkg': 'application/vnd.xmpie.ppkg'}, {'vnd.xmpie.xlim': 'application/vnd.xmpie.xlim'}, {'vnd.yamaha.hv-dic': 'application/vnd.yamaha.hv-dic'}, {'vnd.yamaha.hv-script': 'application/vnd.yamaha.hv-script'}, {'vnd.yamaha.hv-voice': 'application/vnd.yamaha.hv-voice'}, {'vnd.yamaha.openscoreformat': 'application/vnd.yamaha.openscoreformat'}, {'vnd.yamaha.openscoreformat.osfpvg+xml': 'application/vnd.yamaha.openscoreformat.osfpvg+xml'}, {'vnd.yamaha.remote-setup': 'application/vnd.yamaha.remote-setup'}, {'vnd.yamaha.smaf-audio': 'application/vnd.yamaha.smaf-audio'}, {'vnd.yamaha.smaf-phrase': 'application/vnd.yamaha.smaf-phrase'}, {'vnd.yamaha.through-ngn': 'application/vnd.yamaha.through-ngn'}, {'vnd.yamaha.tunnel-udpencap': 'application/vnd.yamaha.tunnel-udpencap'}, {'vnd.yaoweme': 'application/vnd.yaoweme'}, {'vnd.yellowriver-custom-menu': 'application/vnd.yellowriver-custom-menu'}, {'vnd.zul': 'application/vnd.zul'}, {'vnd.zzazz.deck+xml': 'application/vnd.zzazz.deck+xml'}, {'voicexml+xml': 'application/voicexml+xml'}, {'voucher-cms+json': 'application/voucher-cms+json'}, {'vq-rtcpxr': 'application/vq-rtcpxr'}, {'wasm': 'application/wasm'}, {'watcherinfo+xml': 'application/watcherinfo+xml'}, {'webpush-options+json': 'application/webpush-options+json'}, {'whoispp-query': 'application/whoispp-query'}, {'whoispp-response': 'application/whoispp-response'}, {'widget': 'application/widget'}, {'wita': 'application/wita'}, {'wordperfect5.1': 'application/wordperfect5.1'}, {'wsdl+xml': 'application/wsdl+xml'}, {'wspolicy+xml': 'application/wspolicy+xml'}, {'x-pki-message': 'application/x-pki-message'}, {'x-www-form-urlencoded': 'application/x-www-form-urlencoded'}, {'x-x509-ca-cert': 'application/x-x509-ca-cert'}, {'x-x509-ca-ra-cert': 'application/x-x509-ca-ra-cert'}, {'x-x509-next-ca-cert': 'application/x-x509-next-ca-cert'}, {'x400-bp': 'application/x400-bp'}, {'xacml+xml': 'application/xacml+xml'}, {'xcap-att+xml': 'application/xcap-att+xml'}, {'xcap-caps+xml': 'application/xcap-caps+xml'}, {'xcap-diff+xml': 'application/xcap-diff+xml'}, {'xcap-el+xml': 'application/xcap-el+xml'}, {'xcap-error+xml': 'application/xcap-error+xml'}, {'xcap-ns+xml': 'application/xcap-ns+xml'}, {'xcon-conference-info+xml': 'application/xcon-conference-info+xml'}, {'xcon-conference-info-diff+xml': 'application/xcon-conference-info-diff+xml'}, {'xenc+xml': 'application/xenc+xml'}, {'xhtml+xml': 'application/xhtml+xml'}, {'xliff+xml': 'application/xliff+xml'}, {'xml': 'application/xml'}, {'xml-dtd': 'application/xml-dtd'}, {'xml-external-parsed-entity': 'application/xml-external-parsed-entity'}, {'xml-patch+xml': 'application/xml-patch+xml'}, {'xmpp+xml': 'application/xmpp+xml'}, {'xop+xml': 'application/xop+xml'}, {'xslt+xml': 'application/xslt+xml'}, {'xv+xml': 'application/xv+xml'}, {'yang': 'application/yang'}, {'yang-data+json': 'application/yang-data+json'}, {'yang-data+xml': 'application/yang-data+xml'}, {'yang-patch+json': 'application/yang-patch+json'}, {'yang-patch+xml': 'application/yang-patch+xml'}, {'yin+xml': 'application/yin+xml'}, {'zip': 'application/zip'}, {'zlib': 'application/zlib'}, {'zstd': 'application/zstd'}, {'1d-interleaved-parityfec': 'audio/1d-interleaved-parityfec'}, {'32kadpcm': 'audio/32kadpcm'}, {'3gpp': 'audio/3gpp'}, {'3gpp2': 'audio/3gpp2'}, {'AMR': 'audio/AMR'}, {'AMR-WB': 'audio/AMR-WB'}, {'ATRAC-ADVANCED-LOSSLESS': 'audio/ATRAC-ADVANCED-LOSSLESS'}, {'ATRAC-X': 'audio/ATRAC-X'}, {'ATRAC3': 'audio/ATRAC3'}, {'BV16': 'audio/BV16'}, {'BV32': 'audio/BV32'}, {'CN': 'audio/CN'}, {'DAT12': 'audio/DAT12'}, {'DV': 'audio/DV'}, {'DVI4': 'audio/DVI4'}, {'EVRC': 'audio/EVRC'}, {'EVRC-QCP': 'audio/EVRC-QCP'}, {'EVRC0': 'audio/EVRC0'}, {'EVRC1': 'audio/EVRC1'}, {'EVRCB': 'audio/EVRCB'}, {'EVRCB0': 'audio/EVRCB0'}, {'EVRCB1': 'audio/EVRCB1'}, {'EVRCNW': 'audio/EVRCNW'}, {'EVRCNW0': 'audio/EVRCNW0'}, {'EVRCNW1': 'audio/EVRCNW1'}, {'EVRCWB': 'audio/EVRCWB'}, {'EVRCWB0': 'audio/EVRCWB0'}, {'EVRCWB1': 'audio/EVRCWB1'}, {'EVS': 'audio/EVS'}, {'G711-0': 'audio/G711-0'}, {'G719': 'audio/G719'}, {'G722': 'audio/G722'}, {'G7221': 'audio/G7221'}, {'G723': 'audio/G723'}, {'G726-16': 'audio/G726-16'}, {'G726-24': 'audio/G726-24'}, {'G726-32': 'audio/G726-32'}, {'G726-40': 'audio/G726-40'}, {'G728': 'audio/G728'}, {'G729': 'audio/G729'}, {'G7291': 'audio/G7291'}, {'G729D': 'audio/G729D'}, {'G729E': 'audio/G729E'}, {'GSM': 'audio/GSM'}, {'GSM-EFR': 'audio/GSM-EFR'}, {'GSM-HR-08': 'audio/GSM-HR-08'}, {'L16': 'audio/L16'}, {'L20': 'audio/L20'}, {'L24': 'audio/L24'}, {'L8': 'audio/L8'}, {'LPC': 'audio/LPC'}, {'MELP': 'audio/MELP'}, {'MELP1200': 'audio/MELP1200'}, {'MELP2400': 'audio/MELP2400'}, {'MELP600': 'audio/MELP600'}, {'MP4A-LATM': 'audio/MP4A-LATM'}, {'MPA': 'audio/MPA'}, {'PCMA': 'audio/PCMA'}, {'PCMA-WB': 'audio/PCMA-WB'}, {'PCMU': 'audio/PCMU'}, {'PCMU-WB': 'audio/PCMU-WB'}, {'QCELP': 'audio/QCELP'}, {'RED': 'audio/RED'}, {'SMV': 'audio/SMV'}, {'SMV-QCP': 'audio/SMV-QCP'}, {'SMV0': 'audio/SMV0'}, {'TETRA_ACELP': 'audio/TETRA_ACELP'}, {'TETRA_ACELP_BB': 'audio/TETRA_ACELP_BB'}, {'TSVCIS': 'audio/TSVCIS'}, {'UEMCLIP': 'audio/UEMCLIP'}, {'VDVI': 'audio/VDVI'}, {'VMR-WB': 'audio/VMR-WB'}, {'aac': 'audio/aac'}, {'ac3': 'audio/ac3'}, {'amr-wb+': 'audio/amr-wb+'}, {'aptx': 'audio/aptx'}, {'asc': 'audio/asc'}, {'basic': 'audio/basic'}, {'clearmode': 'audio/clearmode'}, {'dls': 'audio/dls'}, {'dsr-es201108': 'audio/dsr-es201108'}, {'dsr-es202050': 'audio/dsr-es202050'}, {'dsr-es202211': 'audio/dsr-es202211'}, {'dsr-es202212': 'audio/dsr-es202212'}, {'eac3': 'audio/eac3'}, {'encaprtp': 'audio/encaprtp'}, {'example': 'audio/example'}, {'flexfec': 'audio/flexfec'}, {'fwdred': 'audio/fwdred'}, {'iLBC': 'audio/iLBC'}, {'ip-mr_v2.5': 'audio/ip-mr_v2.5'}, {'mhas': 'audio/mhas'}, {'mobile-xmf': 'audio/mobile-xmf'}, {'mp4': 'audio/mp4'}, {'mpa-robust': 'audio/mpa-robust'}, {'mpeg': 'audio/mpeg'}, {'mpeg4-generic': 'audio/mpeg4-generic'}, {'ogg': 'audio/ogg'}, {'opus': 'audio/opus'}, {'parityfec': 'audio/parityfec'}, {'prs.sid': 'audio/prs.sid'}, {'raptorfec': 'audio/raptorfec'}, {'rtp-enc-aescm128': 'audio/rtp-enc-aescm128'}, {'rtp-midi': 'audio/rtp-midi'}, {'rtploopback': 'audio/rtploopback'}, {'rtx': 'audio/rtx'}, {'scip': 'audio/scip'}, {'sofa': 'audio/sofa'}, {'sp-midi': 'audio/sp-midi'}, {'speex': 'audio/speex'}, {'t140c': 'audio/t140c'}, {'t38': 'audio/t38'}, {'telephone-event': 'audio/telephone-event'}, {'tone': 'audio/tone'}, {'ulpfec': 'audio/ulpfec'}, {'usac': 'audio/usac'}, {'vnd.3gpp.iufp': 'audio/vnd.3gpp.iufp'}, {'vnd.4SB': 'audio/vnd.4SB'}, {'vnd.CELP': 'audio/vnd.CELP'}, {'vnd.audiokoz': 'audio/vnd.audiokoz'}, {'vnd.cisco.nse': 'audio/vnd.cisco.nse'}, {'vnd.cmles.radio-events': 'audio/vnd.cmles.radio-events'}, {'vnd.cns.anp1': 'audio/vnd.cns.anp1'}, {'vnd.cns.inf1': 'audio/vnd.cns.inf1'}, {'vnd.dece.audio': 'audio/vnd.dece.audio'}, {'vnd.digital-winds': 'audio/vnd.digital-winds'}, {'vnd.dlna.adts': 'audio/vnd.dlna.adts'}, {'vnd.dolby.heaac.1': 'audio/vnd.dolby.heaac.1'}, {'vnd.dolby.heaac.2': 'audio/vnd.dolby.heaac.2'}, {'vnd.dolby.mlp': 'audio/vnd.dolby.mlp'}, {'vnd.dolby.mps': 'audio/vnd.dolby.mps'}, {'vnd.dolby.pl2': 'audio/vnd.dolby.pl2'}, {'vnd.dolby.pl2x': 'audio/vnd.dolby.pl2x'}, {'vnd.dolby.pl2z': 'audio/vnd.dolby.pl2z'}, {'vnd.dolby.pulse.1': 'audio/vnd.dolby.pulse.1'}, {'vnd.dra': 'audio/vnd.dra'}, {'vnd.dts': 'audio/vnd.dts'}, {'vnd.dts.hd': 'audio/vnd.dts.hd'}, {'vnd.dts.uhd': 'audio/vnd.dts.uhd'}, {'vnd.dvb.file': 'audio/vnd.dvb.file'}, {'vnd.everad.plj': 'audio/vnd.everad.plj'}, {'vnd.hns.audio': 'audio/vnd.hns.audio'}, {'vnd.lucent.voice': 'audio/vnd.lucent.voice'}, {'vnd.ms-playready.media.pya': 'audio/vnd.ms-playready.media.pya'}, {'vnd.nokia.mobile-xmf': 'audio/vnd.nokia.mobile-xmf'}, {'vnd.nortel.vbk': 'audio/vnd.nortel.vbk'}, {'vnd.nuera.ecelp4800': 'audio/vnd.nuera.ecelp4800'}, {'vnd.nuera.ecelp7470': 'audio/vnd.nuera.ecelp7470'}, {'vnd.nuera.ecelp9600': 'audio/vnd.nuera.ecelp9600'}, {'vnd.octel.sbc': 'audio/vnd.octel.sbc'}, {'vnd.presonus.multitrack': 'audio/vnd.presonus.multitrack'}, {'vnd.rhetorex.32kadpcm': 'audio/vnd.rhetorex.32kadpcm'}, {'vnd.rip': 'audio/vnd.rip'}, {'vnd.sealedmedia.softseal.mpeg': 'audio/vnd.sealedmedia.softseal.mpeg'}, {'vnd.vmx.cvsd': 'audio/vnd.vmx.cvsd'}, {'vorbis': 'audio/vorbis'}, {'vorbis-config': 'audio/vorbis-config'}, {'collection': 'font/collection'}, {'otf': 'font/otf'}, {'sfnt': 'font/sfnt'}, {'ttf': 'font/ttf'}, {'woff': 'font/woff'}, {'woff2': 'font/woff2'}, {'aces': 'image/aces'}, {'avci': 'image/avci'}, {'avcs': 'image/avcs'}, {'avif': 'image/avif'}, {'bmp': 'image/bmp'}, {'cgm': 'image/cgm'}, {'dicom-rle': 'image/dicom-rle'}, {'emf': 'image/emf'}, {'example': 'image/example'}, {'fits': 'image/fits'}, {'g3fax': 'image/g3fax'}, {'gif': 'image/gif'}, {'heic': 'image/heic'}, {'heic-sequence': 'image/heic-sequence'}, {'heif': 'image/heif'}, {'heif-sequence': 'image/heif-sequence'}, {'hej2k': 'image/hej2k'}, {'hsj2': 'image/hsj2'}, {'ief': 'image/ief'}, {'jls': 'image/jls'}, {'jp2': 'image/jp2'}, {'jpeg': 'image/jpeg'}, {'jph': 'image/jph'}, {'jphc': 'image/jphc'}, {'jpm': 'image/jpm'}, {'jpx': 'image/jpx'}, {'jxr': 'image/jxr'}, {'jxrA': 'image/jxrA'}, {'jxrS': 'image/jxrS'}, {'jxs': 'image/jxs'}, {'jxsc': 'image/jxsc'}, {'jxsi': 'image/jxsi'}, {'jxss': 'image/jxss'}, {'ktx': 'image/ktx'}, {'ktx2': 'image/ktx2'}, {'naplps': 'image/naplps'}, {'png': 'image/png'}, {'prs.btif': 'image/prs.btif'}, {'prs.pti': 'image/prs.pti'}, {'pwg-raster': 'image/pwg-raster'}, {'svg+xml': 'image/svg+xml'}, {'t38': 'image/t38'}, {'tiff': 'image/tiff'}, {'tiff-fx': 'image/tiff-fx'}, {'vnd.adobe.photoshop': 'image/vnd.adobe.photoshop'}, {'vnd.airzip.accelerator.azv': 'image/vnd.airzip.accelerator.azv'}, {'vnd.cns.inf2': 'image/vnd.cns.inf2'}, {'vnd.dece.graphic': 'image/vnd.dece.graphic'}, {'vnd.djvu': 'image/vnd.djvu'}, {'vnd.dvb.subtitle': 'image/vnd.dvb.subtitle'}, {'vnd.dwg': 'image/vnd.dwg'}, {'vnd.dxf': 'image/vnd.dxf'}, {'vnd.fastbidsheet': 'image/vnd.fastbidsheet'}, {'vnd.fpx': 'image/vnd.fpx'}, {'vnd.fst': 'image/vnd.fst'}, {'vnd.fujixerox.edmics-mmr': 'image/vnd.fujixerox.edmics-mmr'}, {'vnd.fujixerox.edmics-rlc': 'image/vnd.fujixerox.edmics-rlc'}, {'vnd.globalgraphics.pgb': 'image/vnd.globalgraphics.pgb'}, {'vnd.microsoft.icon': 'image/vnd.microsoft.icon'}, {'vnd.mix': 'image/vnd.mix'}, {'vnd.mozilla.apng': 'image/vnd.mozilla.apng'}, {'vnd.ms-modi': 'image/vnd.ms-modi'}, {'vnd.net-fpx': 'image/vnd.net-fpx'}, {'vnd.pco.b16': 'image/vnd.pco.b16'}, {'vnd.radiance': 'image/vnd.radiance'}, {'vnd.sealed.png': 'image/vnd.sealed.png'}, {'vnd.sealedmedia.softseal.gif': 'image/vnd.sealedmedia.softseal.gif'}, {'vnd.sealedmedia.softseal.jpg': 'image/vnd.sealedmedia.softseal.jpg'}, {'vnd.svf': 'image/vnd.svf'}, {'vnd.tencent.tap': 'image/vnd.tencent.tap'}, {'vnd.valve.source.texture': 'image/vnd.valve.source.texture'}, {'vnd.wap.wbmp': 'image/vnd.wap.wbmp'}, {'vnd.xiff': 'image/vnd.xiff'}, {'vnd.zbrush.pcx': 'image/vnd.zbrush.pcx'}, {'wmf': 'image/wmf'}, {'CPIM': 'message/CPIM'}, {'delivery-status': 'message/delivery-status'}, {'disposition-notification': 'message/disposition-notification'}, {'example': 'message/example'}, {'external-body': 'message/external-body'}, {'feedback-report': 'message/feedback-report'}, {'global': 'message/global'}, {'global-delivery-status': 'message/global-delivery-status'}, {'global-disposition-notification': 'message/global-disposition-notification'}, {'global-headers': 'message/global-headers'}, {'http': 'message/http'}, {'imdn+xml': 'message/imdn+xml'}, {'partial': 'message/partial'}, {'rfc822': 'message/rfc822'}, {'s-http': 'message/s-http'}, {'sip': 'message/sip'}, {'sipfrag': 'message/sipfrag'}, {'tracking-status': 'message/tracking-status'}, {'vnd.wfa.wsc': 'message/vnd.wfa.wsc'}, {'3mf': 'model/3mf'}, {'e57': 'model/e57'}, {'example': 'model/example'}, {'gltf+json': 'model/gltf+json'}, {'gltf-binary': 'model/gltf-binary'}, {'iges': 'model/iges'}, {'mesh': 'model/mesh'}, {'mtl': 'model/mtl'}, {'obj': 'model/obj'}, {'stl': 'model/stl'}, {'vnd.collada+xml': 'model/vnd.collada+xml'}, {'vnd.dwf': 'model/vnd.dwf'}, {'vnd.flatland.3dml': 'model/vnd.flatland.3dml'}, {'vnd.gdl': 'model/vnd.gdl'}, {'vnd.gs-gdl': 'model/vnd.gs-gdl'}, {'vnd.gtw': 'model/vnd.gtw'}, {'vnd.moml+xml': 'model/vnd.moml+xml'}, {'vnd.mts': 'model/vnd.mts'}, {'vnd.opengex': 'model/vnd.opengex'}, {'vnd.parasolid.transmit.binary': 'model/vnd.parasolid.transmit.binary'}, {'vnd.parasolid.transmit.text': 'model/vnd.parasolid.transmit.text'}, {'vnd.pytha.pyox': 'model/vnd.pytha.pyox'}, {'vnd.rosette.annotated-data-model': 'model/vnd.rosette.annotated-data-model'}, {'vnd.sap.vds': 'model/vnd.sap.vds'}, {'vnd.usdz+zip': 'model/vnd.usdz+zip'}, {'vnd.valve.source.compiled-map': 'model/vnd.valve.source.compiled-map'}, {'vnd.vtu': 'model/vnd.vtu'}, {'vrml': 'model/vrml'}, {'x3d+fastinfoset': 'model/x3d+fastinfoset'}, {'x3d+xml': 'model/x3d+xml'}, {'x3d-vrml': 'model/x3d-vrml'}, {'alternative': 'multipart/alternative'}, {'appledouble': 'multipart/appledouble'}, {'byteranges': 'multipart/byteranges'}, {'digest': 'multipart/digest'}, {'encrypted': 'multipart/encrypted'}, {'example': 'multipart/example'}, {'form-data': 'multipart/form-data'}, {'header-set': 'multipart/header-set'}, {'mixed': 'multipart/mixed'}, {'multilingual': 'multipart/multilingual'}, {'parallel': 'multipart/parallel'}, {'related': 'multipart/related'}, {'report': 'multipart/report'}, {'signed': 'multipart/signed'}, {'vnd.bint.med-plus': 'multipart/vnd.bint.med-plus'}, {'voice-message': 'multipart/voice-message'}, {'x-mixed-replace': 'multipart/x-mixed-replace'}, {'print': 'offline/print'}, {'1d-interleaved-parityfec': 'text/1d-interleaved-parityfec'}, {'RED': 'text/RED'}, {'SGML': 'text/SGML'}, {'cache-manifest': 'text/cache-manifest'}, {'calendar': 'text/calendar'}, {'cql': 'text/cql'}, {'cql-expression': 'text/cql-expression'}, {'cql-identifier': 'text/cql-identifier'}, {'css': 'text/css'}, {'csv': 'text/csv'}, {'csv-schema': 'text/csv-schema'}, {'dns': 'text/dns'}, {'encaprtp': 'text/encaprtp'}, {'enriched': 'text/enriched'}, {'example': 'text/example'}, {'fhirpath': 'text/fhirpath'}, {'flexfec': 'text/flexfec'}, {'fwdred': 'text/fwdred'}, {'gff3': 'text/gff3'}, {'grammar-ref-list': 'text/grammar-ref-list'}, {'html': 'text/html'}, {'jcr-cnd': 'text/jcr-cnd'}, {'markdown': 'text/markdown'}, {'mizar': 'text/mizar'}, {'n3': 'text/n3'}, {'parameters': 'text/parameters'}, {'parityfec': 'text/parityfec'}, {'plain': 'text/plain'}, {'provenance-notation': 'text/provenance-notation'}, {'prs.fallenstein.rst': 'text/prs.fallenstein.rst'}, {'prs.lines.tag': 'text/prs.lines.tag'}, {'prs.prop.logic': 'text/prs.prop.logic'}, {'raptorfec': 'text/raptorfec'}, {'rfc822-headers': 'text/rfc822-headers'}, {'richtext': 'text/richtext'}, {'rtf': 'text/rtf'}, {'rtp-enc-aescm128': 'text/rtp-enc-aescm128'}, {'rtploopback': 'text/rtploopback'}, {'rtx': 'text/rtx'}, {'shaclc': 'text/shaclc'}, {'shex': 'text/shex'}, {'spdx': 'text/spdx'}, {'strings': 'text/strings'}, {'t140': 'text/t140'}, {'tab-separated-values': 'text/tab-separated-values'}, {'troff': 'text/troff'}, {'turtle': 'text/turtle'}, {'ulpfec': 'text/ulpfec'}, {'uri-list': 'text/uri-list'}, {'vcard': 'text/vcard'}, {'vnd.DMClientScript': 'text/vnd.DMClientScript'}, {'vnd.IPTC.NITF': 'text/vnd.IPTC.NITF'}, {'vnd.IPTC.NewsML': 'text/vnd.IPTC.NewsML'}, {'vnd.a': 'text/vnd.a'}, {'vnd.abc': 'text/vnd.abc'}, {'vnd.ascii-art': 'text/vnd.ascii-art'}, {'vnd.curl': 'text/vnd.curl'}, {'vnd.debian.copyright': 'text/vnd.debian.copyright'}, {'vnd.dvb.subtitle': 'text/vnd.dvb.subtitle'}, {'vnd.esmertec.theme-descriptor': 'text/vnd.esmertec.theme-descriptor'}, {'vnd.ficlab.flt': 'text/vnd.ficlab.flt'}, {'vnd.fly': 'text/vnd.fly'}, {'vnd.fmi.flexstor': 'text/vnd.fmi.flexstor'}, {'vnd.gml': 'text/vnd.gml'}, {'vnd.graphviz': 'text/vnd.graphviz'}, {'vnd.hans': 'text/vnd.hans'}, {'vnd.hgl': 'text/vnd.hgl'}, {'vnd.in3d.3dml': 'text/vnd.in3d.3dml'}, {'vnd.in3d.spot': 'text/vnd.in3d.spot'}, {'vnd.latex-z': 'text/vnd.latex-z'}, {'vnd.motorola.reflex': 'text/vnd.motorola.reflex'}, {'vnd.ms-mediapackage': 'text/vnd.ms-mediapackage'}, {'vnd.net2phone.commcenter.command': 'text/vnd.net2phone.commcenter.command'}, {'vnd.radisys.msml-basic-layout': 'text/vnd.radisys.msml-basic-layout'}, {'vnd.senx.warpscript': 'text/vnd.senx.warpscript'}, {'vnd.sosi': 'text/vnd.sosi'}, {'vnd.sun.j2me.app-descriptor': 'text/vnd.sun.j2me.app-descriptor'}, {'vnd.trolltech.linguist': 'text/vnd.trolltech.linguist'}, {'vnd.wap.si': 'text/vnd.wap.si'}, {'vnd.wap.sl': 'text/vnd.wap.sl'}, {'vnd.wap.wml': 'text/vnd.wap.wml'}, {'vnd.wap.wmlscript': 'text/vnd.wap.wmlscript'}, {'vtt': 'text/vtt'}, {'xml': 'text/xml'}, {'xml-external-parsed-entity': 'text/xml-external-parsed-entity'}, {'1d-interleaved-parityfec': 'video/1d-interleaved-parityfec'}, {'3gpp': 'video/3gpp'}, {'3gpp-tt': 'video/3gpp-tt'}, {'3gpp2': 'video/3gpp2'}, {'AV1': 'video/AV1'}, {'BMPEG': 'video/BMPEG'}, {'BT656': 'video/BT656'}, {'CelB': 'video/CelB'}, {'DV': 'video/DV'}, {'FFV1': 'video/FFV1'}, {'H261': 'video/H261'}, {'H263': 'video/H263'}, {'H263-1998': 'video/H263-1998'}, {'H263-2000': 'video/H263-2000'}, {'H264': 'video/H264'}, {'H264-RCDO': 'video/H264-RCDO'}, {'H264-SVC': 'video/H264-SVC'}, {'H265': 'video/H265'}, {'JPEG': 'video/JPEG'}, {'MP1S': 'video/MP1S'}, {'MP2P': 'video/MP2P'}, {'MP2T': 'video/MP2T'}, {'MP4V-ES': 'video/MP4V-ES'}, {'MPV': 'video/MPV'}, {'SMPTE292M': 'video/SMPTE292M'}, {'VP8': 'video/VP8'}, {'VP9': 'video/VP9'}, {'encaprtp': 'video/encaprtp'}, {'example': 'video/example'}, {'flexfec': 'video/flexfec'}, {'iso.segment': 'video/iso.segment'}, {'jpeg2000': 'video/jpeg2000'}, {'mj2': 'video/mj2'}, {'mp4': 'video/mp4'}, {'mpeg': 'video/mpeg'}, {'mpeg4-generic': 'video/mpeg4-generic'}, {'nv': 'video/nv'}, {'ogg': 'video/ogg'}, {'parityfec': 'video/parityfec'}, {'pointer': 'video/pointer'}, {'quicktime': 'video/quicktime'}, {'raptorfec': 'video/raptorfec'}, {'raw': 'video/raw'}, {'rtp-enc-aescm128': 'video/rtp-enc-aescm128'}, {'rtploopback': 'video/rtploopback'}, {'rtx': 'video/rtx'}, {'scip': 'video/scip'}, {'smpte291': 'video/smpte291'}, {'ulpfec': 'video/ulpfec'}, {'vc1': 'video/vc1'}, {'vc2': 'video/vc2'}, {'vnd.CCTV': 'video/vnd.CCTV'}, {'vnd.dece.hd': 'video/vnd.dece.hd'}, {'vnd.dece.mobile': 'video/vnd.dece.mobile'}, {'vnd.dece.mp4': 'video/vnd.dece.mp4'}, {'vnd.dece.pd': 'video/vnd.dece.pd'}, {'vnd.dece.sd': 'video/vnd.dece.sd'}, {'vnd.dece.video': 'video/vnd.dece.video'}, {'vnd.directv.mpeg': 'video/vnd.directv.mpeg'}, {'vnd.directv.mpeg-tts': 'video/vnd.directv.mpeg-tts'}, {'vnd.dlna.mpeg-tts': 'video/vnd.dlna.mpeg-tts'}, {'vnd.dvb.file': 'video/vnd.dvb.file'}, {'vnd.fvt': 'video/vnd.fvt'}, {'vnd.hns.video': 'video/vnd.hns.video'}, {'vnd.iptvforum.1dparityfec-1010': 'video/vnd.iptvforum.1dparityfec-1010'}, {'vnd.iptvforum.1dparityfec-2005': 'video/vnd.iptvforum.1dparityfec-2005'}, {'vnd.iptvforum.2dparityfec-1010': 'video/vnd.iptvforum.2dparityfec-1010'}, {'vnd.iptvforum.2dparityfec-2005': 'video/vnd.iptvforum.2dparityfec-2005'}, {'vnd.iptvforum.ttsavc': 'video/vnd.iptvforum.ttsavc'}, {'vnd.iptvforum.ttsmpeg2': 'video/vnd.iptvforum.ttsmpeg2'}, {'vnd.motorola.video': 'video/vnd.motorola.video'}, {'vnd.motorola.videop': 'video/vnd.motorola.videop'}, {'vnd.mpegurl': 'video/vnd.mpegurl'}, {'vnd.ms-playready.media.pyv': 'video/vnd.ms-playready.media.pyv'}, {'vnd.nokia.interleaved-multimedia': 'video/vnd.nokia.interleaved-multimedia'}, {'vnd.nokia.mp4vr': 'video/vnd.nokia.mp4vr'}, {'vnd.nokia.videovoip': 'video/vnd.nokia.videovoip'}, {'vnd.objectvideo': 'video/vnd.objectvideo'}, {'vnd.radgamettools.bink': 'video/vnd.radgamettools.bink'}, {'vnd.radgamettools.smacker': 'video/vnd.radgamettools.smacker'}, {'vnd.sealed.mpeg1': 'video/vnd.sealed.mpeg1'}, {'vnd.sealed.mpeg4': 'video/vnd.sealed.mpeg4'}, {'vnd.sealed.swf': 'video/vnd.sealed.swf'}, {'vnd.sealedmedia.softseal.mov': 'video/vnd.sealedmedia.softseal.mov'}, {'vnd.uvvu.mp4': 'video/vnd.uvvu.mp4'}, {'vnd.vivo': 'video/vnd.vivo'}, {'vnd.youtube.yt': 'video/vnd.youtube.yt'}]}),
]:
contracts_documents.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
contracts = QgsVectorLayer(filename+"|layername=contracts", "contracts", "ogr")
group.insertChildNode(-1, QgsLayerTreeLayer(contracts))
QgsProject.instance().addMapLayer(contracts, False)
for idx, type, config in [
(0, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(1, 'UuidGenerator', {}),
(2, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(3, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(4, 'ValueMap', {'map': [{'Public Private Partnership (PPP)': 'ppp'}, {'Private': 'private'}, {'Public': 'public'}]}),
(5, 'TextEdit', {'IsMultiline': False, 'UseHtml': False}),
(6, 'ValueMap', {'map': [{'Andorran Peseta': 'ADP'}, {'UAE Dirham': 'AED'}, {'Afghani': 'AFA'}, {'Afghani': 'AFN'}, {'Old Lek': 'ALK'}, {'Lek': 'ALL'}, {'Armenian Dram': 'AMD'}, {'Netherlands Antillean Guilder': 'ANG'}, {'Kwanza': 'AOA'}, {'Kwanza': 'AOK'}, {'New Kwanza': 'AON'}, {'Kwanza Reajustado': 'AOR'}, {'Austral': 'ARA'}, {'Peso Argentino': 'ARP'}, {'Argentine Peso': 'ARS'}, {'Peso': 'ARY'}, {'Schilling': 'ATS'}, {'Australian Dollar': 'AUD'}, {'Aruban Florin': 'AWG'}, {'Azerbaijan Manat': 'AYM'}, {'Azerbaijanian Manat': 'AZM'}, {'Azerbaijan Manat': 'AZN'}, {'Dinar': 'BAD'}, {'Convertible Mark': 'BAM'}, {'Barbados Dollar': 'BBD'}, {'Taka': 'BDT'}, {'Convertible Franc': 'BEC'}, {'Belgian Franc': 'BEF'}, {'Financial Franc': 'BEL'}, {'Lev A/52': 'BGJ'}, {'Lev A/62': 'BGK'}, {'Lev': 'BGL'}, {'Bulgarian Lev': 'BGN'}, {'Bahraini Dinar': 'BHD'}, {'Burundi Franc': 'BIF'}, {'Bermudian Dollar': 'BMD'}, {'Brunei Dollar': 'BND'}, {'Boliviano': 'BOB'}, {'Peso boliviano': 'BOP'}, {'Mvdol': 'BOV'}, {'Cruzeiro': 'BRB'}, {'Cruzado': 'BRC'}, {'Cruzeiro': 'BRE'}, {'Brazilian Real': 'BRL'}, {'New Cruzado': 'BRN'}, {'Cruzeiro Real': 'BRR'}, {'Bahamian Dollar': 'BSD'}, {'Ngultrum': 'BTN'}, {'Kyat': 'BUK'}, {'Pula': 'BWP'}, {'Belarusian Ruble': 'BYB'}, {'Belarusian Ruble': 'BYN'}, {'Belarusian Ruble': 'BYR'}, {'Belize Dollar': 'BZD'}, {'Canadian Dollar': 'CAD'}, {'Congolese Franc': 'CDF'}, {'WIR Franc (for electronic)': 'CHC'}, {'WIR Euro': 'CHE'}, {'Swiss Franc': 'CHF'}, {'WIR Franc': 'CHW'}, {'Unidad de Fomento': 'CLF'}, {'Chilean Peso': 'CLP'}, {'Yuan Renminbi': 'CNY'}, {'Colombian Peso': 'COP'}, {'Unidad de Valor Real': 'COU'}, {'Costa Rican Colon': 'CRC'}, {'Serbian Dinar': 'CSD'}, {'Krona A/53': 'CSJ'}, {'Koruna': 'CSK'}, {'Peso Convertible': 'CUC'}, {'Cuban Peso': 'CUP'}, {'Cabo Verde Escudo': 'CVE'}, {'Cyprus Pound': 'CYP'}, {'Czech Koruna': 'CZK'}, {'Mark der DDR': 'DDM'}, {'Deutsche Mark': 'DEM'}, {'Djibouti Franc': 'DJF'}, {'Danish Krone': 'DKK'}, {'Dominican Peso': 'DOP'}, {'Algerian Dinar': 'DZD'}, {'Sucre': 'ECS'}, {'Unidad de Valor Constante (UVC)': 'ECV'}, {'Kroon': 'EEK'}, {'Egyptian Pound': 'EGP'}, {'Nakfa': 'ERN'}, {'Spanish Peseta': 'ESA'}, {'"A" Account (convertible Peseta Account)': 'ESB'}, {'Spanish Peseta': 'ESP'}, {'Ethiopian Birr': 'ETB'}, {'Euro': 'EUR'}, {'Markka': 'FIM'}, {'Fiji Dollar': 'FJD'}, {'Falkland Islands Pound': 'FKP'}, {'French Franc': 'FRF'}, {'Pound Sterling': 'GBP'}, {'Georgian Coupon': 'GEK'}, {'Lari': 'GEL'}, {'Cedi': 'GHC'}, {'Ghana Cedi': 'GHP'}, {'Ghana Cedi': 'GHS'}, {'Gibraltar Pound': 'GIP'}, {'Dalasi': 'GMD'}, {'Syli': 'GNE'}, {'Guinean Franc': 'GNF'}, {'Syli': 'GNS'}, {'Ekwele': 'GQE'}, {'Drachma': 'GRD'}, {'Quetzal': 'GTQ'}, {'Guinea Escudo': 'GWE'}, {'Guinea-Bissau Peso': 'GWP'}, {'Guyana Dollar': 'GYD'}, {'Hong Kong Dollar': 'HKD'}, {'Lempira': 'HNL'}, {'Croatian Dinar': 'HRD'}, {'Kuna': 'HRK'}, {'Gourde': 'HTG'}, {'Forint': 'HUF'}, {'Rupiah': 'IDR'}, {'Irish Pound': 'IEP'}, {'Pound': 'ILP'}, {'Old Shekel': 'ILR'}, {'New Israeli Sheqel': 'ILS'}, {'Indian Rupee': 'INR'}, {'Iraqi Dinar': 'IQD'}, {'Iranian Rial': 'IRR'}, {'Old Krona': 'ISJ'}, {'Iceland Krona': 'ISK'}, {'Italian Lira': 'ITL'}, {'Jamaican Dollar': 'JMD'}, {'Jordanian Dinar': 'JOD'}, {'Yen': 'JPY'}, {'Kenyan Shilling': 'KES'}, {'Som': 'KGS'}, {'Riel': 'KHR'}, {'Comorian Franc': 'KMF'}, {'North Korean Won': 'KPW'}, {'Won': 'KRW'}, {'Kuwaiti Dinar': 'KWD'}, {'Cayman Islands Dollar': 'KYD'}, {'Tenge': 'KZT'}, {'Pathet Lao Kip': 'LAJ'}, {'Lao Kip': 'LAK'}, {'Lebanese Pound': 'LBP'}, {'Sri Lanka Rupee': 'LKR'}, {'Liberian Dollar': 'LRD'}, {'Loti': 'LSL'}, {'Loti': 'LSM'}, {'Lithuanian Litas': 'LTL'}, {'Talonas': 'LTT'}, {'Luxembourg Convertible Franc': 'LUC'}, {'Luxembourg Franc': 'LUF'}, {'Luxembourg Financial Franc': 'LUL'}, {'Latvian Lats': 'LVL'}, {'Latvian Ruble': 'LVR'}, {'Libyan Dinar': 'LYD'}, {'Moroccan Dirham': 'MAD'}, {'Moldovan Leu': 'MDL'}, {'Malagasy Ariary': 'MGA'}, {'Malagasy Franc': 'MGF'}, {'Denar': 'MKD'}, {'Mali Franc': 'MLF'}, {'Kyat': 'MMK'}, {'Tugrik': 'MNT'}, {'Pataca': 'MOP'}, {'Ouguiya': 'MRO'}, {'Ouguiya': 'MRU'}, {'Maltese Lira': 'MTL'}, {'Maltese Pound': 'MTP'}, {'Mauritius Rupee': 'MUR'}, {'Maldive Rupee': 'MVQ'}, {'Rufiyaa': 'MVR'}, {'Malawi Kwacha': 'MWK'}, {'Mexican Peso': 'MXN'}, {'Mexican Peso': 'MXP'}, {'Mexican Unidad de Inversion (UDI)': 'MXV'}, {'Malaysian Ringgit': 'MYR'}, {'Mozambique Escudo': 'MZE'}, {'Mozambique Metical': 'MZM'}, {'Mozambique Metical': 'MZN'}, {'Namibia Dollar': 'NAD'}, {'Naira': 'NGN'}, {'Cordoba': 'NIC'}, {'Cordoba Oro': 'NIO'}, {'Netherlands Guilder': 'NLG'}, {'Norwegian Krone': 'NOK'}, {'Nepalese Rupee': 'NPR'}, {'New Zealand Dollar': 'NZD'}, {'Rial Omani': 'OMR'}, {'Balboa': 'PAB'}, {'Sol': 'PEH'}, {'Inti': 'PEI'}, {'Sol': 'PEN'}, {'Sol': 'PES'}, {'Kina': 'PGK'}, {'Philippine Peso': 'PHP'}, {'Pakistan Rupee': 'PKR'}, {'Zloty': 'PLN'}, {'Zloty': 'PLZ'}, {'Portuguese Escudo': 'PTE'}, {'Guarani': 'PYG'}, {'Qatari Rial': 'QAR'}, {'Rhodesian Dollar': 'RHD'}, {'Leu A/52': 'ROK'}, {'Old Leu': 'ROL'}, {'Romanian Leu': 'RON'}, {'Serbian Dinar': 'RSD'}, {'Russian Ruble': 'RUB'}, {'Russian Ruble': 'RUR'}, {'Rwanda Franc': 'RWF'}, {'Saudi Riyal': 'SAR'}, {'Solomon Islands Dollar': 'SBD'}, {'Seychelles Rupee': 'SCR'}, {'Sudanese Dinar': 'SDD'}, {'Sudanese Pound': 'SDG'}, {'Sudanese Pound': 'SDP'}, {'Swedish Krona': 'SEK'}, {'Singapore Dollar': 'SGD'}, {'Saint Helena Pound': 'SHP'}, {'Tolar': 'SIT'}, {'Slovak Koruna': 'SKK'}, {'Leone': 'SLL'}, {'Somali Shilling': 'SOS'}, {'Surinam Dollar': 'SRD'}, {'Surinam Guilder': 'SRG'}, {'South Sudanese Pound': 'SSP'}, {'Dobra': 'STD'}, {'Dobra': 'STN'}, {'Rouble': 'SUR'}, {'El Salvador Colon': 'SVC'}, {'Syrian Pound': 'SYP'}, {'Lilangeni': 'SZL'}, {'Baht': 'THB'}, {'Tajik Ruble': 'TJR'}, {'Somoni': 'TJS'}, {'Turkmenistan Manat': 'TMM'}, {'Turkmenistan New Manat': 'TMT'}, {'Tunisian Dinar': 'TND'}, {'Pa’anga': 'TOP'}, {'Timor Escudo': 'TPE'}, {'Old Turkish Lira': 'TRL'}, {'Turkish Lira': 'TRY'}, {'Trinidad and Tobago Dollar': 'TTD'}, {'New Taiwan Dollar': 'TWD'}, {'Tanzanian Shilling': 'TZS'}, {'Hryvnia': 'UAH'}, {'Karbovanet': 'UAK'}, {'Uganda Shilling': 'UGS'}, {'Old Shilling': 'UGW'}, {'Uganda Shilling': 'UGX'}, {'US Dollar': 'USD'}, {'US Dollar (Next day)': 'USN'}, {'US Dollar (Same day)': 'USS'}, {'Uruguay Peso en Unidades Indexadas (UI)': 'UYI'}, {'Old Uruguay Peso': 'UYN'}, {'Uruguayan Peso': 'UYP'}, {'Peso Uruguayo': 'UYU'}, {'Unidad Previsional': 'UYW'}, {'Uzbekistan Sum': 'UZS'}, {'Bolivar': 'VEB'}, {'Bolívar': 'VEF'}, {'Bolívar Soberano': 'VES'}, {'Old Dong': 'VNC'}, {'Dong': 'VND'}, {'Vatu': 'VUV'}, {'Tala': 'WST'}, {'CFA Franc BEAC': 'XAF'}, {'Silver': 'XAG'}, {'Gold': 'XAU'}, {'Bond Markets Unit European Composite Unit (EURCO)': 'XBA'}, {'Bond Markets Unit European Monetary Unit (E.M.U.-6)': 'XBB'}, {'Bond Markets Unit European Unit of Account 9 (E.U.A.-9)': 'XBC'}, {'Bond Markets Unit European Unit of Account 17 (E.U.A.-17)': 'XBD'}, {'East Caribbean Dollar': 'XCD'}, {'SDR (Special Drawing Right)': 'XDR'}, {'European Currency Unit (E.C.U)': 'XEU'}, {'Gold-Franc': 'XFO'}, {'UIC-Franc': 'XFU'}, {'CFA Franc BCEAO': 'XOF'}, {'Palladium': 'XPD'}, {'CFP Franc': 'XPF'}, {'Platinum': 'XPT'}, {'RINET Funds Code': 'XRE'}, {'Sucre': 'XSU'}, {'Codes specifically reserved for testing purposes': 'XTS'}, {'ADB Unit of Account': 'XUA'}, {'The codes assigned for transactions where no currency is involved': 'XXX'}, {'Yemeni Dinar': 'YDD'}, {'Yemeni Rial': 'YER'}, {'New Yugoslavian Dinar': 'YUD'}, {'New Dinar': 'YUM'}, {'Yugoslavian Dinar': 'YUN'}, {'Financial Rand': 'ZAL'}, {'Rand': 'ZAR'}, {'Zambian Kwacha': 'ZMK'}, {'Zambian Kwacha': 'ZMW'}, {'New Zaire': 'ZRN'}, {'Zaire': 'ZRZ'}, {'Rhodesian Dollar': 'ZWC'}, {'Zimbabwe Dollar': 'ZWD'}, {'Zimbabwe Dollar': 'ZWL'}, {'Zimbabwe Dollar (new)': 'ZWN'}, {'Zimbabwe Dollar': 'ZWR'}]}),
(7, 'DateTime', {'allow_null': True, 'calendar_popup': True, 'display_format': 'yyyy-MM-dd', 'field_format': 'yyyy-MM-dd', 'field_iso_format': False}),
(8, 'ValueRelation', {'AllowMulti': False, 'AllowNull': False, 'Description': None, 'FilterExpression': None, 'Key': 'id', 'Layer': 'networks_7a23193a_76b5_4be5_b7cd_d60026cad5b8', 'LayerName': 'networks', 'LayerProviderName': 'ogr', 'LayerSource': '/mnt/9E863086863060C7/GDrive/Work/Repositories/open_fibre/ofds_qgis_template/template.gpkg|layername=networks', 'NofColumns': 1, 'OrderByValue': False, 'UseCompleter': False, 'Value': 'name'}),
]:
contracts.setEditorWidgetSetup(
idx,
QgsEditorWidgetSetup(
type,
config
)
)
def export_json(self):
filename_details = QFileDialog.getSaveFileName(None, "Select output file ","", '*.json')
# catch cancel being pressed
if not filename_details[0]:
return
# Get new filenme
filename = filename_details[0] + ".json"
# Make JSON
networks = {}
# Pass 1 - get all the networks
for k,v in QgsProject.instance().mapLayers().items():
#print("LAYER {}".format(k))
if isinstance(v, QgsVectorLayer) and k.startswith("Networks"):
# TODO find a better way of identifying layers
for f in v.getFeatures():
networks[f.attribute("id")] = {
"id": f.attribute("id"),
"name": f.attribute("name") or "",
# TODO add more fields here
"nodes": [],
"spans": []
}
# Pass 2 - get all the rest
for k,v in QgsProject.instance().mapLayers().items():
if isinstance(v, QgsVectorLayer):
if k.startswith("Nodes"):
for f in v.getFeatures():
network_id = f.attribute("network_id")
if network_id and network_id in networks:
networks[network_id]["nodes"].append({
"id": f.attribute("nodes/0/id"),
"name": f.attribute("nodes/0/name") or "",
"location": json.loads(f.geometry().asJson())
})
elif k.startswith("Spans"):
for f in v.getFeatures():
network_id = f.attribute("network_id_2")
if network_id and network_id in networks:
networks[network_id]["spans"].append({
"id": f.attribute("spans/0/id"),
"name": f.attribute("spans/0/name") or "",
"route": json.loads(f.geometry().asJson())
})
# Save JSON
print(networks)
with open(filename, "w") as fp:
json.dump(
{ "networks": [v for v in networks.values()]},
fp,
indent=2
)