-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOpenAIRELit4.epm
554 lines (553 loc) · 39.7 KB
/
OpenAIRELit4.epm
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
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
<?xml version='1.0' encoding='utf-8'?>
<epm xmlns='http://eprints.org/ep2/data/2.0' id='https://spectrum.library.concordia.ca/id/epm/OpenAIRELit4'>
<epmid>OpenAIRELit4</epmid>
<uri>https://spectrum.library.concordia.ca/id/epm/OpenAIRELit4</uri>
<documents>
<document>
<files>
<file>
<filename>epm/OpenAIRELit4/cfg/cfg.d/z_openaire.pl</filename>
<mime_type>text/plain</mime_type>
<hash>78f2f8ffd0e2d5e67fe10e1d3a4453d2</hash>
<hash_type>MD5</hash_type>
<filesize>128</filesize>
<data encoding='base64'>JGMtPntwbHVnaW5zfS0+eyJFeHBvcnQ6Ok9QRU5BSVJFIn0tPntwYXJhbXN9LT57ZGlzYWJsZX0g
PSAwOw0KJGMtPntwbHVnaW5zfXsiRXhwb3J0OjpPUEVOQUlSRV92aWFfUE1IIn17cGFyYW1zfXtk
aXNhYmxlfSA9IDA7DQo=
</data>
</file>
<file>
<filename>plugins/EPrints/Plugin/Export/OPENAIRE.pm</filename>
<mime_type>text/plain</mime_type>
<hash>4934aa595af0fb526490dd3bc71cf047</hash>
<hash_type>MD5</hash_type>
<filesize>25723</filesize>
<data encoding='base64'>IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwojCiMgRVByaW50czo6UGx1Z2luOjpFeHBvcnQ6Ok9QRU5BSVJFCiMKIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIwojCiMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKCj1wb2QKCj1oZWFkMSBOQU1FCgpCPEVQcmlu
dHM6OlBsdWdpbjo6RXhwb3J0OjpPUEVOQUlSRT4gLSBPUEVOQUlSRSBFeHBvcnQgcGx1Z2luLgoK
PWhlYWQxIERFU0NSSVBUSU9OCgpUaGlzIGV4cG9ydCBwbHVnaW4gaXMgd3JpdHRlbiB0byBleHBv
cnQgaW4gY29tcGxpYW5jZSB3aXRoIEd1aWRlbGluZXMgZm9yIExpdGVyYXR1cmUgUmVwb3NpdG9y
aWVzIE9QRU5BSVJFIHY0Cgo9b3ZlciA0Cgo9Y3V0CgpwYWNrYWdlIEVQcmludHM6OlBsdWdpbjo6
RXhwb3J0OjpPUEVOQUlSRTsKCnVzZSBFUHJpbnRzOjpQbHVnaW46OkV4cG9ydDo6T1BFTkFJUkU7
CkBJU0EgPSAoICJFUHJpbnRzOjpQbHVnaW46OkV4cG9ydDo6WE1MRmlsZSIgKTsKCnVzZSBzdHJp
Y3Q7CgpzdWIgbmV3CnsKCW15KCAkY2xhc3MsICVvcHRzICkgPSBAXzsKCW15ICRzZWxmID0gJGNs
YXNzLT5TVVBFUjo6bmV3KCAlb3B0cyApOwoKCSRzZWxmLT57bmFtZX0gPSAiT1BFTkFJUkUiOwoJ
IyRzZWxmLT57YWNjZXB0fSA9IFsgJ2RhdGFvYmovZXByaW50JywgJ2xpc3QvZXByaW50JyBdOyAK
CSRzZWxmLT57YWNjZXB0fSA9IFsgJ2RhdGFvYmovZXByaW50J107ICAjb25seSBvdXRwdXQgb25l
IGVwcmludAoJJHNlbGYtPnt2aXNpYmxlfSA9ICdhbGwnOwogICAgJHNlbGYtPntzdWZmaXh9ID0g
Jy54bWwnOwogICAgJHNlbGYtPnttaW1ldHlwZX0gPSAnYXBwbGljYXRpb24veG1sOyBjaGFyc2V0
PXV0Zi04JzsKCQoKCXJldHVybiAkc2VsZjsKfQoKCnN1YiBvdXRwdXRfbGlzdAp7CglteSggJHBs
dWdpbiwgJW9wdHMgKSA9IEBfOwoKCW15ICR0eXBlID0gJG9wdHN7bGlzdH0tPmdldF9kYXRhc2V0
LT5jb25maWQ7CgkKCW15ICRwYXJ0ID0gIiI7CgkKCW15ICRyID0gW107CgoJaWYoIGRlZmluZWQg
JG9wdHN7Zmh9ICkKCXsKCQlwcmludCB7JG9wdHN7Zmh9fSAkcGx1Z2luLT54bWxfaGVhZGVyKCk7
Cgl9CgllbHNlCgl7CgkJcHVzaCBAeyRyfSwgJHBsdWdpbi0+eG1sX2hlYWRlcigpOwoJfQoKCSRv
cHRze2xpc3R9LT5tYXAoc3ViIHsKCQlteSggJHNlc3Npb24sICRkYXRhc2V0LCAkZGF0YW9iaiAp
ID0gQF87CgkJJHBhcnQgPSAkcGx1Z2luLT5vdXRwdXRfZGF0YW9iaiggJGRhdGFvYmosIG11bHRp
cGxlID0+IDEsICVvcHRzICk7CgkJaWYoIGRlZmluZWQgJG9wdHN7Zmh9ICkKCQl7CgkJCXByaW50
IHskb3B0c3tmaH19ICRwYXJ0OwoJCX0KCQllbHNlCgkJewoJCQlwdXNoIEB7JHJ9LCAkcGFydDsK
CQl9Cgl9KTsKCglpZiggZGVmaW5lZCAkb3B0c3tmaH0gKQoJewoJCXByaW50IHskb3B0c3tmaH19
ICRwbHVnaW4tPnhtbF9mb290ZXIoKTsKCX0KCWVsc2UKCXsKCQlwdXNoIEB7JHJ9LCAkcGx1Z2lu
LT54bWxfZm9vdGVyKCk7Cgl9CgoKCWlmKCBkZWZpbmVkICRvcHRze2ZofSApCgl7CgkJcmV0dXJu
OwoJfQoKCXJldHVybiBqb2luKCAnJywgQHskcn0gKTsKfQoKCnN1YiBvdXRwdXRfZGF0YW9iagp7
CglteSggJHBsdWdpbiwgJGRhdGFvYmosICVvcHRzICkgPSBAXzsKCglteSAkbXVsdGlwbGUgPSAk
b3B0c3sibXVsdGlwbGUifTsKCQoJbXkgJHJlc3BvbnNlID0gJHBsdWdpbi0+eG1sX2RhdGFvYmog
KCRkYXRhb2JqKTsKCglteSAkcmVzb3VyY2VNYXA9IEVQcmludHM6OlhNTDo6dG9fc3RyaW5nKCAk
cmVzcG9uc2UgKTsKCUVQcmludHM6OlhNTDo6ZGlzcG9zZSggJHJlc3BvbnNlICk7CgkKICAgIHJl
dHVybiAiPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIiA/PiIuJHJlc3Bv
bnNlOwoKfQoKCgpzdWIgeG1sX2RhdGFvYmoKewoJbXkoICRwbHVnaW4sICRkYXRhb2JqLCAlb3B0
cyApID0gQF87CgoJbXkgJG11bHRpcGxlID0gJG9wdHN7Im11bHRpcGxlIn07CgkKCW15ICR0aXRs
ZTsKCWlmKCAkZGF0YW9iai0+ZGF0YXNldC0+Z2V0X2ZpZWxkKCJ0aXRsZSIpKQoJewoJCSR0aXRs
ZSA9ICRkYXRhb2JqLT5nZXRfdmFsdWUoICJ0aXRsZSIgKTsJCgl9CgllbHNlCgl7CgkJJHRpdGxl
ID0gIkVQcmludCAjIi4kZGF0YW9iai0+Z2V0X3ZhbHVlKCAiZXByaW50aWQiICk7CQoJfQoJbXkg
JGVwcmludF91cmwgPSAkZGF0YW9iai0+Z2V0X3VybDsKCW15ICRzZXNzaW9uID0gJHBsdWdpbi0+
e3Nlc3Npb259OwoJCglteSAkZXByaW50X3R5cGUgPSAkZGF0YW9iai0+Z2V0X3ZhbHVlKCAidHlw
ZSIgKTsKCQkKCW15ICRyZXNwb25zZSA9ICRwbHVnaW4tPntzZXNzaW9ufS0+bWFrZV9lbGVtZW50
KAogICAgICAgIAkib2FpcmU6cmVzb3VyY2UiLAoJCSJ4bWxuczp4c2kiID0+ICJodHRwOi8vd3d3
LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIsCiAgICAgICAgCSJ4bWxuczpyZGYiID0+
ICJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiwKICAgICAgICAJ
InhtbG5zOmRjIiA9PiAiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2Ui
LAoJCQkieG1sbnM6ZGF0YWNpdGUiID0+ICJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJu
ZWwtNCIsCgkJCSJ4bWxuczp2YyIgPT4gImh0dHA6Ly93d3cudzMub3JnLzIwMDcvWE1MU2NoZW1h
LXZlcnNpb25pbmciLAoJCQkieG1sbnM6b2FpcmUiID0+ICJodHRwOi8vbmFtZXNwYWNlLm9wZW5h
aXJlLmV1L3NjaGVtYS9vYWlyZS8iLAoJCSJ4c2k6c2NoZW1hTG9jYXRpb24iID0+Imh0dHA6Ly9u
YW1lc3BhY2Uub3BlbmFpcmUuZXUvc2NoZW1hL29haXJlLyBodHRwczovL3d3dy5vcGVuYWlyZS5l
dS9zY2hlbWEvcmVwby1saXQvNC4wL29wZW5haXJlLnhzZCIgKTsKCiAgICAjVElUTEUKCW15ICR0
b3Bjb250ZW50ID0gJHNlc3Npb24tPm1ha2VfZWxlbWVudCggImRhdGFjaXRlOnRpdGxlcyIpOwoJ
bXkgJHN1Yl9jb250ZW50ID0gIiI7Cgkkc3ViX2NvbnRlbnQgPSAkc2Vzc2lvbi0+cmVuZGVyX2Rh
dGFfZWxlbWVudCAoCgkJNCwKCQkiZGF0YWNpdGU6dGl0bGUiLAoJCSR0aXRsZSApOwoJJHRvcGNv
bnRlbnQtPmFwcGVuZENoaWxkKCAkc3ViX2NvbnRlbnQpOwoJJHJlc3BvbnNlLT5hcHBlbmRDaGls
ZCggJHRvcGNvbnRlbnQgKTsJCgkKCW15ICRjcmVhdG9yID0gIiI7CgogICAgI0NSRUFUT1JTCiAg
ICAkdG9wY29udGVudCA9ICRzZXNzaW9uLT5tYWtlX2VsZW1lbnQoICJkYXRhY2l0ZTpjcmVhdG9y
cyIpOwogICAgJHN1Yl9jb250ZW50ID0gIiI7CglpZiAoJGRhdGFvYmotPmV4aXN0c19hbmRfc2V0
KCJjcmVhdG9ycyIpKXsKCQlteSAkbmFtZXMgPSAkZGF0YW9iai0+Z2V0X3ZhbHVlKCAiY3JlYXRv
cnMiICk7CgkJZm9yZWFjaCBteSAkbmFtZSAoIEAkbmFtZXMgKQoJCXsgCgkJCSRjcmVhdG9yID0g
JHNlc3Npb24tPm1ha2VfZWxlbWVudCggImRhdGFjaXRlOmNyZWF0b3IiKTsKCgkJCSMgbmFtZQoJ
CQlteSAkbmFtZV9zdHIgPSBFUHJpbnRzOjpVdGlsczo6bWFrZV9uYW1lX3N0cmluZyggJG5hbWUt
PntuYW1lfSk7CgkJCSRzdWJfY29udGVudCA9ICRzZXNzaW9uLT5yZW5kZXJfZGF0YV9lbGVtZW50
ICgKCQkJCTQsCgkJCQkiZGF0YWNpdGU6Y3JlYXRvck5hbWUiLAoJCQkJJG5hbWVfc3RyLCBuYW1l
VHlwZT0+IlBlcnNvbmFsIgoJCQkpOwoJCQkkY3JlYXRvci0+YXBwZW5kQ2hpbGQoICRzdWJfY29u
dGVudCk7CgoJCQkjIG9yY2lkCgkJCWlmKCBkZWZpbmVkICRuYW1lLT57b3JjaWR9ICYmICAkbmFt
ZS0+e29yY2lkfSBuZSAiIiApCgkJCXsKCQkJCW15ICRvcmNpZCA9ICRzZXNzaW9uLT5tYWtlX2Vs
ZW1lbnQoICJkYXRhY2l0ZTpuYW1lSWRlbnRpZmllciIsCiAgICAgICAgICAgICAgICAgICAgIm5h
bWVJZGVudGlmaWVyU2NoZW1lIiA9PiAiT1JDSUQiLAoJCQkJCSJzY2hlbWVVUkkiID0+ICJodHRw
Oi8vb3JjaWQub3JnIgoJCQkJKTsKCQkJCSRvcmNpZC0+YXBwZW5kQ2hpbGQoICRzZXNzaW9uLT5t
YWtlX3RleHQoICRuYW1lLT57b3JjaWR9ICkgKTsKCQkJCSRjcmVhdG9yLT5hcHBlbmRDaGlsZCgg
JG9yY2lkICk7CgkJCX0KCgkJCSR0b3Bjb250ZW50LT5hcHBlbmRDaGlsZCggJGNyZWF0b3IpOwoJ
CX0KCX0KCgkgI0NPUlBPUkFURSBDUkVBVE9SUwoJIGlmICgkZGF0YW9iai0+ZXhpc3RzX2FuZF9z
ZXQoImNvcnBfY3JlYXRvcnMiKSl7CgkJIG15ICRuYW1lcyA9ICRkYXRhb2JqLT5nZXRfdmFsdWUo
ICJjb3JwX2NyZWF0b3JzIiApOwoJCSBmb3JlYWNoIG15ICRuYW1lICggQCRuYW1lcyApCgkJICB7
IAoJCQkJJHN1Yl9jb250ZW50ID0gJHNlc3Npb24tPnJlbmRlcl9kYXRhX2VsZW1lbnQgKAoJCQkJ
NCwKCQkJCSJkYXRhY2l0ZTpjcmVhdG9yTmFtZSIsCgkJCQkkbmFtZSwgbmFtZVR5cGU9PiJPcmdh
bml6YXRpb25hbCIgKTsKCQkJJGNyZWF0b3IgPSAkc2Vzc2lvbi0+bWFrZV9lbGVtZW50KCAiZGF0
YWNpdGU6Y3JlYXRvciIpOwoJCQkkY3JlYXRvci0+YXBwZW5kQ2hpbGQgKCAkc3ViX2NvbnRlbnQp
OwoJCQkkdG9wY29udGVudC0+YXBwZW5kQ2hpbGQoICRjcmVhdG9yKTsKCQkgIH0KCX0KCSRyZXNw
b25zZS0+YXBwZW5kQ2hpbGQoICR0b3Bjb250ZW50ICk7CgkKCSNDT05UUklCVVRPUlMKCgkjIE1h
cCBFcHJpbnRzIGNvbnRyaWJ1dG9yVHlwZXMgdG8gT3BlbkFJUkUKCSMgRVByaW50cyBpcyBiYXNl
ZCBvbiBMaWJyYXJ5IG9mIENvbmdyZXNzIFJlbGF0b3JzIGh0dHA6Ly93d3cubG9jLmdvdi9sb2Mu
dGVybXMvcmVsYXRvcnMvCgkjIE9wZW5BSVJFIGhhcyB0aGVpciBvd24gbXVjaCBzaG9ydGVyIGxp
c3QgKGJhc2VkIG9uIERhdGFDaXRlKToKCSMgQ29udGFjdFBlcnNvbiwgRGF0YUNvbGxlY3Rvciwg
RGF0YUN1cmF0b3IsIERhdGFNYW5hZ2VyLCBEaXN0cmlidXRvciwgRWRpdG9yLCBIb3N0aW5nSW5z
dGl0dXRpb24sIFByb2R1Y2VyLCBQcm9qZWN0TGVhZGVyLCBQcm9qZWN0TWFuYWdlciwgUHJvamVj
dE1lbWJlciwgUmVnaXN0cmF0aW9uQWdlbmN5LCBSZWdpc3RyYXRpb25BdXRob3JpdHksIFJlbGF0
ZWRQZXJzb24sIFJlc2VhcmNoZXIsIFJlc2VhcmNoR3JvdXAsIFJpZ2h0c0hvbGRlciwgU3BvbnNv
ciwgU3VwZXJ2aXNvciwgV29ya1BhY2thZ2VMZWFkZXIsIE90aGVyCgkKCSBteSAlcmVsYXRvcl9t
YXAgPSAoCgkiaHR0cDovL3d3dy5sb2MuZ292L2xvYy50ZXJtcy9yZWxhdG9ycy9EU1QiID0+ICJE
aXN0cmlidXRvciIsCiAgICAiaHR0cDovL3d3dy5sb2MuZ292L2xvYy50ZXJtcy9yZWxhdG9ycy9F
RFQiID0+ICJFZGl0b3IiLAoJImh0dHA6Ly93d3cubG9jLmdvdi9sb2MudGVybXMvcmVsYXRvcnMv
UFJPIiA9PiAiUHJvZHVjZXIiLAoJImh0dHA6Ly93d3cubG9jLmdvdi9sb2MudGVybXMvcmVsYXRv
cnMvUkVTIiA9PiAiUmVzZWFyY2hlciIsCgkiaHR0cDovL3d3dy5sb2MuZ292L2xvYy50ZXJtcy9y
ZWxhdG9ycy9TUE4iID0+ICJTcG9uc29yIiwKCSJodHRwOi8vd3d3LmxvYy5nb3YvbG9jLnRlcm1z
L3JlbGF0b3JzL09USCIgPT4gIk90aGVyIiwKCSJodHRwOi8vd3d3LmxvYy5nb3YvbG9jLnRlcm1z
L3JlbGF0b3JzL0NQSCIgPT4gIlJpZ2h0c0hvbGRlciIsICAgICMgQ29weXJpZ2h0IGhvbGRlciwg
aW5kaXJlY3QgbWF0Y2gKICAgICJodHRwOi8vd3d3LmxvYy5nb3YvbG9jLnRlcm1zL3JlbGF0b3Jz
L0RUTSIgPT4gIkRhdGFNYW5hZ2VyIiwgICMgbm90IGluIHRoZSBFUHJpbnRzIGxpc3QsIGJ1dCBp
dCBpcyBhIHBhcnQgb2YgTE9DIHJlbGF0b3JzLCBzbyBnb29kIGNhbmRpZGF0ZSB0byBhZGQgICAK
ICAgICJodHRwOi8vd3d3LmxvYy5nb3YvbG9jLnRlcm1zL3JlbGF0b3JzL0hJUyIgPT4gIkhvc3Rp
bmdJbnN0aXR1dGlvbiIsICMgbm90IGluIHRoZSBFUHJpbnRzIGxpc3QsIGJ1dCBpdCBpcyBhIHBh
cnQgb2YgTE9DIHJlbGF0b3JzLCBzbyBnb29kIGNhbmRpZGF0ZSB0byBhZGQgIAoJIkNvbnRhY3RQ
ZXJzb24iID0+ICJDb250YWN0UGVyc29uIiwgICAjIG5vdCBpbiB0aGUgRVByaW50cyBsaXN0LCBi
dXQgcGxhY2luZyBpdCBpbiBjYXNlIHdlIGFkZCBpdAogICAgIkRhdGFDb2xsZWN0b3IiID0+ICJE
YXRhQ29sbGVjdG9yIiwgICMgbm90IGluIHRoZSBFUHJpbnRzIGxpc3QsIGJ1dCBwbGFjaW5nIGl0
IGluIGNhc2Ugd2UgYWRkIGl0CiAgICAiRGF0YUN1cmF0b3IiID0+ICJEYXRhQ3VyYXRvciIsICAg
ICMgbm90IGluIHRoZSBFUHJpbnRzIGxpc3QsIGJ1dCBwbGFjaW5nIGl0IGluIGNhc2Ugd2UgYWRk
IGl0CiAgICAiUHJvamVjdExlYWRlciIgPT4gIlByb2plY3RMZWFkZXIiLCAjIG5vdCBpbiB0aGUg
RVByaW50cyBsaXN0LCBidXQgcGxhY2luZyBpdCBpbiBjYXNlIHdlIGFkZCBpdAogICAgIlByb2pl
Y3RNYW5hZ2VyIiA9PiAiUHJvamVjdE1hbmFnZXIiLCAgIyBub3QgaW4gdGhlIEVQcmludHMgbGlz
dCwgYnV0IHBsYWNpbmcgaXQgaW4gY2FzZSB3ZSBhZGQgaXQKICAgICJQcm9qZWN0TWVtYmVyIiA9
PiAiUHJvamVjdE1lbWJlciIsICAgIyBub3QgaW4gdGhlIEVQcmludHMgbGlzdCwgYnV0IHBsYWNp
bmcgaXQgaW4gY2FzZSB3ZSBhZGQgaXQKICAgICJSZWdpc3RyYXRpb25BZ2VuY3kiID0+ICJSZWdp
c3RyYXRpb25BZ2VuY3kiLCAjIG5vdCBpbiB0aGUgRVByaW50cyBsaXN0LCBidXQgcGxhY2luZyBp
dCBpbiBjYXNlIHdlIGFkZCBpdAogICAgIlJlZ2lzdHJhdGlvbkF1dGhvcml0eSIgPT4gIlJlZ2lz
dHJhdGlvbkF1dGhvcml0eSIsICMgbm90IGluIHRoZSBFUHJpbnRzIGxpc3QsIGJ1dCBwbGFjaW5n
IGl0IGluIGNhc2Ugd2UgYWRkIGl0CiAgICAiUmVsYXRlZFBlcnNvbiIgPT4gIlJlbGF0ZWRQZXJz
b24iLCAgICMgbm90IGluIHRoZSBFUHJpbnRzIGxpc3QsIGJ1dCBwbGFjaW5nIGl0IGluIGNhc2Ug
d2UgYWRkIGl0CiAgICAiUmVzZWFyY2hHcm91cCIgPT4gIlJlc2VhcmNoR3JvdXAiLCAgICMgbm90
IGluIHRoZSBFUHJpbnRzIGxpc3QsIGJ1dCBwbGFjaW5nIGl0IGluIGNhc2Ugd2UgYWRkIGl0CiAg
ICAiU3VwZXJ2aXNvciIgPT4gIlN1cGVydmlzb3IiLCAgICAgICMgbm90IGluIHRoZSBFUHJpbnRz
IGxpc3QsIGJ1dCBwbGFjaW5nIGl0IGluIGNhc2Ugd2UgYWRkIGl0CiAgICAiV29ya1BhY2thZ2VM
ZWFkZXIiID0+ICJXb3JrUGFja2FnZUxlYWRlciIgIyBub3QgaW4gdGhlIEVQcmludHMgbGlzdCwg
YnV0IHBsYWNpbmcgaXQgaW4gY2FzZSB3ZSBhZGQgaXQKCSApOwoJCgkjRURJVE9SUwoJCglteSAk
Y29udHJpYnV0b3IgPSIiOwoJCglpZiAoJGRhdGFvYmotPmV4aXN0c19hbmRfc2V0KCJlZGl0b3Jz
IikgfHwgJGRhdGFvYmotPmV4aXN0c19hbmRfc2V0KCJjb250cmlidXRvcnMiKSkKCXsKCSAJJHRv
cGNvbnRlbnQgPSAkc2Vzc2lvbi0+bWFrZV9lbGVtZW50KCAiZGF0YWNpdGU6Y29udHJpYnV0b3Jz
Iik7CiAgICAJJHN1Yl9jb250ZW50ID0gIiI7CiAgICAgICAgI0VESVRPUlMKICAgICAgICBpZiAo
JGRhdGFvYmotPmV4aXN0c19hbmRfc2V0KCJlZGl0b3JzIikpewogICAgICAgICAgICAgICAgbXkg
JG5hbWVzID0gJGRhdGFvYmotPmdldF92YWx1ZSggImVkaXRvcnMiICk7CiAgICAgICAgICAgICAg
ICBmb3JlYWNoIG15ICRuYW1lICggQCRuYW1lcyApCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICRjb250cmlidXRvciA9ICRzZXNzaW9uLT5tYWtlX2VsZW1lbnQoICJk
YXRhY2l0ZTpjb250cmlidXRvciIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBuYW1lCiAg
ICAgICAgICAgICAgICAgICAgICAgIG15ICRuYW1lX3N0ciA9IEVQcmludHM6OlV0aWxzOjptYWtl
X25hbWVfc3RyaW5nKCAkbmFtZS0+e25hbWV9KTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN1
Yl9jb250ZW50ID0gJHNlc3Npb24tPnJlbmRlcl9kYXRhX2VsZW1lbnQgKAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRh
dGFjaXRlOmNvbnRyaWJ1dG9yTmFtZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JG5hbWVfc3RyLCBjb250cmlidXRvclR5cGU9PiJFZGl0b3IiLCBuYW1lVHlwZT0+IlBlcnNvbmFs
IgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkY29u
dHJpYnV0b3ItPmFwcGVuZENoaWxkKCAkc3ViX2NvbnRlbnQpOwoKICAgICAgICAgICAgICAgICAg
ICAgICAgIyBvcmNpZAogICAgICAgICAgICAgICAgICAgICAgICBpZiggZGVmaW5lZCAkbmFtZS0+
e29yY2lkfSAmJiAgJG5hbWUtPntvcmNpZH0gbmUgIiIgKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJG9yY2lkID0gJHNlc3Npb24t
Pm1ha2VfZWxlbWVudCggImRhdGFjaXRlOm5hbWVJZGVudGlmaWVyIiwKICAgICAgICAgICAgICAg
ICAgICAibmFtZUlkZW50aWZpZXJTY2hlbWUiID0+ICJPUkNJRCIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic2NoZW1lVVJJIiA9PiAiaHR0cDovL29yY2lkLm9yZyIK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICRvcmNpZC0+YXBwZW5kQ2hpbGQoICRzZXNzaW9uLT5tYWtlX3RleHQoICRuYW1l
LT57b3JjaWR9ICkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29udHJpYnV0
b3ItPmFwcGVuZENoaWxkKCAkb3JjaWQgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgICAgICAgICAgJHRvcGNvbnRlbnQtPmFwcGVuZENoaWxkKCAkY29udHJpYnV0
b3IpOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KCQkjQ09OVFJJQlVUT1JTCiAgICAgICAg
aWYgKCRkYXRhb2JqLT5leGlzdHNfYW5kX3NldCgiY29udHJpYnV0b3JzIikpewogICAgICAgICAg
ICAgICAgbXkgJG5hbWVzID0gJGRhdGFvYmotPmdldF92YWx1ZSggImNvbnRyaWJ1dG9ycyIgKTsK
ICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJG5hbWUgKCBAJG5hbWVzICkKICAgICAgICAgICAg
ICAgIHsKCQkJCQkJbXkgJGNvbnRyaWJ1dG9yX3R5cGUgPSAiT3RoZXIiOwoJCQkJCQkkY29udHJp
YnV0b3JfdHlwZT0kbmFtZS0+e3R5cGV9OwoJCQkJCQlpZiAoZGVmaW5lZCAkbmFtZS0+e3R5cGV9
ICYmICRuYW1lLT57dHlwZX0gbmUgIiIpewoJCQkJCQkJbXkgJG1hcHBlZF9jb250cmlidXRvcl90
eXBlID0gKGV4aXN0cyAkcmVsYXRvcl9tYXB7JGNvbnRyaWJ1dG9yX3R5cGV9KSA/ICRyZWxhdG9y
X21hcHskY29udHJpYnV0b3JfdHlwZX0gOiAiT3RoZXIiOwoJCQkJCQkJJGNvbnRyaWJ1dG9yX3R5
cGU9JG1hcHBlZF9jb250cmlidXRvcl90eXBlOwoJCQkJCQl9CQkJCQkKCQkJCQkJCiAgICAgICAg
ICAgICAgICAgICAgICAgICRjb250cmlidXRvciA9ICRzZXNzaW9uLT5tYWtlX2VsZW1lbnQoICJk
YXRhY2l0ZTpjb250cmlidXRvciIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBuYW1lCiAg
ICAgICAgICAgICAgICAgICAgICAgIG15ICRuYW1lX3N0ciA9IEVQcmludHM6OlV0aWxzOjptYWtl
X25hbWVfc3RyaW5nKCAkbmFtZS0+e25hbWV9KTsKICAgICAgICAgICAgICAgICAgICAgICAgJHN1
Yl9jb250ZW50ID0gJHNlc3Npb24tPnJlbmRlcl9kYXRhX2VsZW1lbnQgKAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRh
dGFjaXRlOmNvbnRyaWJ1dG9yTmFtZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JG5hbWVfc3RyLCBjb250cmlidXRvclR5cGU9PiRjb250cmlidXRvcl90eXBlCiAgICAgICAgICAg
ICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb250cmlidXRvci0+YXBw
ZW5kQ2hpbGQoICRzdWJfY29udGVudCk7CgogICAgICAgICAgICAgICAgICAgICAgICAjIG9yY2lk
CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBkZWZpbmVkICRuYW1lLT57b3JjaWR9ICYmICAk
bmFtZS0+e29yY2lkfSBuZSAiIiApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBteSAkb3JjaWQgPSAkc2Vzc2lvbi0+bWFrZV9lbGVtZW50
KCAiZGF0YWNpdGU6bmFtZUlkZW50aWZpZXIiLAogICAgICAgICAgICAgICAgICAgICJuYW1lSWRl
bnRpZmllclNjaGVtZSIgPT4gIk9SQ0lEIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzY2hlbWVVUkkiID0+ICJodHRwOi8vb3JjaWQub3JnIgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9y
Y2lkLT5hcHBlbmRDaGlsZCggJHNlc3Npb24tPm1ha2VfdGV4dCggJG5hbWUtPntvcmNpZH0gKSAp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb250cmlidXRvci0+YXBwZW5kQ2hp
bGQoICRvcmNpZCApOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgICAgICAkdG9wY29udGVudC0+YXBwZW5kQ2hpbGQoICRjb250cmlidXRvcik7CiAgICAgICAg
ICAgICAgICB9CiAgICAgICAgfQoKCSRyZXNwb25zZS0+YXBwZW5kQ2hpbGQoICR0b3Bjb250ZW50
ICk7CiAgICB9CgoJCgkjRlVOREVSUwoJaWYgKCRkYXRhb2JqLT5leGlzdHNfYW5kX3NldCgiZnVu
ZGVycyIpKXsKCQkkdG9wY29udGVudCA9ICRzZXNzaW9uLT5tYWtlX2VsZW1lbnQoICJvYWlyZTpm
dW5kaW5nUmVmZXJlbmNlcyIpOwoJCSRzdWJfY29udGVudCA9ICIiOwoJCW15ICRuYW1lcyA9ICRk
YXRhb2JqLT5nZXRfdmFsdWUoICJmdW5kZXJzIiApOwoJCWZvcmVhY2ggbXkgJG5hbWUgKCBAJG5h
bWVzICkKCQkgIHsgCgkJICAgICRzdWJfY29udGVudCA9ICRzZXNzaW9uLT5tYWtlX2VsZW1lbnQo
ICJvYWlyZTpmdW5kaW5nUmVmZXJlbmNlIik7CgkJCW15ICRuYW1lX3N0ciA9ICRuYW1lOwoJCQlt
eSAkc3ViX3N1Yl9jb250ZW50ID0gJHNlc3Npb24tPnJlbmRlcl9kYXRhX2VsZW1lbnQgKAoJCQkJ
NCwKCQkJCSJvYWlyZTpmdW5kZXJOYW1lIiwKCQkJCSRuYW1lX3N0ciApOwoJCQkkc3ViX2NvbnRl
bnQtPmFwcGVuZENoaWxkKCAkc3ViX3N1Yl9jb250ZW50KTsKCQkJJHRvcGNvbnRlbnQtPmFwcGVu
ZENoaWxkKCAkc3ViX2NvbnRlbnQpOwoJCSAgfQoJCSRyZXNwb25zZS0+YXBwZW5kQ2hpbGQoICR0
b3Bjb250ZW50ICk7CQoJfQoJCgkjIE1hcCBFcHJpbnRzIHR5cGUgdG8gb2FpcmU6cmVzb3VyY2VU
eXBlIGxhYmVsCgkjYXJ0aWNsZSwgYm9va19zZWN0aW9uLCBtb25vZ3JhcGgsIGNvbmZlcmVuY2Vf
aXRlbSwgYm9vaywgdGhlc2lzLCBncmFkdWF0ZV9wcm9qZWN0cywgcGF0ZW50LCBhcnRlZmFjdCwg
ZXhoaWJpdGlvbiwgY29tcG9zaXRpb24sIHBlcmZvcm1hbmNlLCBpbWFnZSwgdmlkZW8sIGF1ZGlv
LCBkYXRhc2V0LCBleHBlcmltZW50LCB0ZWFjaGluZ19yZXNvdXJjZSwgb3RoZXIKCSBteSAldHlw
ZV9tYXAgPSAoCgkgImFydGljbGUiID0+ICJqb3VybmFsIGFydGljbGUiLAoJICJib29rX3NlY3Rp
b24iID0+ICJib29rIHBhcnQiLAoJICJtb25vZ3JhcGgiID0+ICJtb25vZ3JhcGgiLAkjdGhpcyBo
YXMgc3VidHlwZXMsIHNvIHdlIGRlYWwgd2l0aCBpdCBiZWxvdwoJICJjb25mZXJlbmNlX2l0ZW0i
ID0+ICJjb25mZXJlbmNlIG9iamVjdCIsICN0aGlzIGhhcyBzdWJ0eXBlcywgc28gd2UgZGVhbCB3
aXRoIGl0IGJlbG93CgkgImJvb2siID0+ICJib29rIiwKCSAidGhlc2lzIiA9PiAidGhlc2lzIiwg
I3RoaXMgaGFzIHN1YnR5cGVzLCBzbyB3ZSBkZWFsIHdpdGggaXQgYmVsb3cKCSAiZ3JhZHVhdGVf
cHJvamVjdHMiID0+ICJvdGhlciIsCgkgInBhdGVudCIgPT4gInBhdGVudCIsCgkgImFydGVmYWN0
IiA9PiAib3RoZXIiLAoJICJleGhpYml0aW9uIiA9PiAib3RoZXIiLAoJICJjb21wb3NpdGlvbiIg
PT4gIm11c2ljYWwgY29tcG9zaXRpb24iLAoJICJwZXJmb3JtYW5jZSIgPT4gIm90aGVyIiwKCSAi
aW1hZ2UiID0+ICJpbWFnZSIsCgkgInZpZGVvIiA9PiAidmlkZW8iLAoJICJhdWRpbyIgPT4gInNv
dW5kIiwKCSAiZGF0YXNldCIgPT4gImRhdGFzZXQiLAoJICJleHBlcmltZW50IiA9PiAib3RoZXIi
LAoJICJ0ZWFjaGluZ19yZXNvdXJjZSIgPT4gIm90aGVyIiwKCSAib3RoZXIiID0+ICJvdGhlciIK
CSk7CgkKCSMgbWFwIHR5cGUgVVJJIGZyb20gT1BFTkFJUkUgaHR0cHM6Ly9vcGVuYWlyZS1ndWlk
ZWxpbmVzLWZvci1saXRlcmF0dXJlLXJlcG9zaXRvcnktbWFuYWdlcnMucmVhZHRoZWRvY3MuaW8v
ZW4vdjQuMC4wL2ZpZWxkX3B1YmxpY2F0aW9udHlwZS5odG1sCgkgbXkgJXR5cGVfbWFwX3VyaSA9
ICgKCSAJImFubm90YXRpb24iID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBl
L2NfMTE2MiIsCgkgCSJqb3VybmFsIGFydGljbGUiID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9y
ZXNvdXJjZV90eXBlL2NfNjUwMSIsCiAJIAkibGV0dGVyIHRvIHRoZSBlZGl0b3IiID0+ICJodHRw
Oi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfNTQ1YiIsCiAJIAkiZWRpdG9yaWFsIiA9
PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jX2IyMzkiLAogCQkicmVzZWFy
Y2ggYXJ0aWNsZSIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY18yZGY4
ZmJiMSIsCiAJCSJyZXZpZXcgYXJ0aWNsZSIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291
cmNlX3R5cGUvY19kY2FlMDRiYyIsCgkJImRhdGEgcGFwZXIiID0+ICJodHRwOi8vcHVybC5vcmcv
Y29hci9yZXNvdXJjZV90eXBlL2NfYmViOSIgLAoJCSJjb250cmlidXRpb24gdG8gam91cm5hbCIg
PT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY18zZTVhIiAsCgkJImJvb2sg
cmV2aWV3IiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jX2JhMDgiICwK
IAkJImJvb2sgcGFydCIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY18z
MjQ4IiwKCQkiYm9vayIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY18y
ZjMzIiwKCQkiYmlibGlvZ3JhcGh5IiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2Vf
dHlwZS9jXzg2YmMiCSwKCQkicHJlcHJpbnQiID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9yZXNv
dXJjZV90eXBlL2NfODE2YiIsCgkJIndvcmtpbmcgcGFwZXIiID0+ICJodHRwOi8vcHVybC5vcmcv
Y29hci9yZXNvdXJjZV90eXBlL2NfODA0MiIsCgkJInRlY2huaWNhbCBkb2N1bWVudGF0aW9uIiA9
PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzcxYmQiLAoJCSJ0ZWNobmlj
YWwgcmVwb3J0IiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzE4Z2gi
LAoJCSJyZXNlYXJjaCByZXBvcnQiID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90
eXBlL2NfMTh3cyIsCgkJInJlcG9ydCB0byBmdW5kaW5nIGFnZW5jeSIgPT4gImh0dHA6Ly9wdXJs
Lm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY18xOGhqIgksCgkJInByb2plY3QgZGVsaXZlcmFibGUi
ID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfMThvcCIsCgkJInBvbGlj
eSByZXBvcnQiID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfMTg2dSIs
CgkJIm90aGVyIHR5cGUgb2YgcmVwb3J0IiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3Vy
Y2VfdHlwZS9jXzE4d3EiLAoJCSJtZW1vcmFuZHVtIiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIv
cmVzb3VyY2VfdHlwZS9jXzE4d3oiCSwKCQkiaW50ZXJuYWwgcmVwb3J0IiA9PiAiaHR0cDovL3B1
cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzE4d3ciLAoJCSJyZXZpZXciID0+ICJodHRwOi8v
cHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfZWZhMCIJLAoJCSJyZXNlYXJjaCBwcm9wb3Nh
bCIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY19iYWFmIiwKCQkicmVw
b3J0IHBhcnQiID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfYmExZiIs
CgkJInJlcG9ydCIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY185M2Zj
IiwKCQkicGF0ZW50IiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzE1
Y2QiLAoJCSJjb25mZXJlbmNlIHBvc3RlciBub3QgaW4gcHJvY2VlZGluZ3MiID0+ICJodHRwOi8v
cHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfMThjbyIsCgkJImNvbmZlcmVuY2UgcGFwZXIg
bm90IGluIHByb2NlZWRpbmdzIiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlw
ZS9jXzE4Y3AiLAoJCSJjb25mZXJlbmNlIHBvc3RlciIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2Fy
L3Jlc291cmNlX3R5cGUvY182NjcwIiwKCQkiY29uZmVyZW5jZSBwYXBlciIgPT4gImh0dHA6Ly9w
dXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY181Nzk0IiwKCQkiY29uZmVyZW5jZSBvYmplY3Qi
ID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfYzk0ZiIJLAoJCSJjb25m
ZXJlbmNlIHByb2NlZWRpbmdzIiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlw
ZS9jX2Y3NDQiLAoJCSJiYWNoZWxvciB0aGVzaXMiID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9y
ZXNvdXJjZV90eXBlL2NfN2ExZiIsCgkJIm1hc3RlciB0aGVzaXMiID0+ICJodHRwOi8vcHVybC5v
cmcvY29hci9yZXNvdXJjZV90eXBlL2NfYmRjYyIsCgkJImRvY3RvcmFsIHRoZXNpcyIgPT4gImh0
dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY19kYjA2IiwKCQkidGhlc2lzIiA9PiAi
aHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzQ2ZWMiCSwKCQkibGV0dGVyIiA9
PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzA4NTciLAoJCSJsZWN0dXJl
IiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzg1NDQiCSwKCQkidGV4
dCIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY18xOGNmIgksCgkJIm11
c2ljYWwgbm90YXRpb24iID0+ICJodHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2Nf
MThjdyIJLAoJCSJtdXNpY2FsIGNvbXBvc2l0aW9uIiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIv
cmVzb3VyY2VfdHlwZS9jXzE4Y2QiLAoJCSJzb3VuZCIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2Fy
L3Jlc291cmNlX3R5cGUvY18xOGNjIiwKCQkidmlkZW8iID0+ICJodHRwOi8vcHVybC5vcmcvY29h
ci9yZXNvdXJjZV90eXBlL2NfMTJjZSIsCgkJIm1vdmluZyBpbWFnZSIgPT4gImh0dHA6Ly9wdXJs
Lm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY184YTdlIgksCgkJInN0aWxsIGltYWdlIiA9PiAiaHR0
cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jX2VjYzgiCSwKCQkiaW1hZ2UiID0+ICJo
dHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfYzUxMyIJLAkKCQkibWFwIiA9PiAi
aHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzEyY2QiCSwKCQkiY2FydG9ncmFw
aGljIG1hdGVyaWFsIiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvcmVzb3VyY2VfdHlwZS9jXzEy
Y2MiLAoJCSJzb2Z0d2FyZSIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUv
Y181Y2U2IiwKCQkiZGF0YXNldCIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5
cGUvY19kZGIxIiwKCQkiaW50ZXJhY3RpdmUgcmVzb3VyY2UiID0+ICJodHRwOi8vcHVybC5vcmcv
Y29hci9yZXNvdXJjZV90eXBlL2NfZTlhMCIsCgkJIndlYnNpdGUiID0+ICJodHRwOi8vcHVybC5v
cmcvY29hci9yZXNvdXJjZV90eXBlL2NfN2FkOSIJLAoJCSJ3b3JrZmxvdyIgPT4gImh0dHA6Ly9w
dXJsLm9yZy9jb2FyL3Jlc291cmNlX3R5cGUvY18zOTNjIiwKCQkib3RoZXIiID0+ICJodHRwOi8v
cHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBlL2NfMTg0MyIKCSApOwoJIAoKCW15ICRtYXBwZWRf
dHlwZSA9IChleGlzdHMgJHR5cGVfbWFweyRlcHJpbnRfdHlwZX0pID8gJHR5cGVfbWFweyRlcHJp
bnRfdHlwZX0gOiAib3RoZXIiOwoJCgkjZGVhbCB3aXRoIGRvY3VtZW50IHN1YnR5cGVzCglpZiAo
JG1hcHBlZF90eXBlIGVxICJtb25vZ3JhcGgiKXsKCQkkbWFwcGVkX3R5cGUgPSAgIm90aGVyIjsg
I2RlZmF1bHQgaXMgb3RoZXIKCQlpZiAoJGRhdGFvYmotPmV4aXN0c19hbmRfc2V0KCAibW9ub2dy
YXBoX3R5cGUiICkpIHsKCQkJCWlmICgkZGF0YW9iai0+Z2V0X3ZhbHVlKCJtb25vZ3JhcGhfdHlw
ZSIpIGVxICJ3b3JraW5nX3BhcGVyIikgewoJCQkJCSRtYXBwZWRfdHlwZSA9ICJ3b3JraW5nIHBh
cGVyIjsKCQkJCX0KCQkJCWlmICgkZGF0YW9iai0+Z2V0X3ZhbHVlKCJtb25vZ3JhcGhfdHlwZSIp
IGVxICJ0ZWNobmljYWxfcmVwb3J0Iil7CgkJCQkJJG1hcHBlZF90eXBlID0gInRlY2huaWNhbCBy
ZXBvcnQiOwoJCQkJfQoJCX0KCX0KCQoJI21hcCBmcm9tIGxhYmVscyB0byBVUklzCglteSAkbWFw
cGVkX3R5cGVfVVJJID0gKGV4aXN0cyAkdHlwZV9tYXBfdXJpeyRtYXBwZWRfdHlwZX0pID8gJHR5
cGVfbWFwX3VyaXskbWFwcGVkX3R5cGV9IDogImh0dHA6Ly9wdXJsLm9yZy9jb2FyL3Jlc291cmNl
X3R5cGUvY18xODQzIjsKCQoJI21hcCByZXNvdXJjZVR5cGVHZW5lcmFsIGJhc2VkIG9uIE9wZW5B
SVJFCglteSAkbWFwcGVkX3Jlc291cmNlVHlwZUdlbmVyYWwgPSAibGl0ZXJhdHVyZSI7CglpZiAo
JG1hcHBlZF90eXBlIGVxICJkYXRhc2V0Iil7CgkJJG1hcHBlZF9yZXNvdXJjZVR5cGVHZW5lcmFs
ID0gImRhdGFzZXQiOwoJfQoJCgkjIDxvYWlyZTpyZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlR2Vu
ZXJhbD0ibGl0ZXJhdHVyZSIgdXJpPSJodHRwOi8vcHVybC5vcmcvY29hci9yZXNvdXJjZV90eXBl
L2NfOTNmYyI+cmVwb3J0PC9vYWlyZTpyZXNvdXJjZVR5cGU+CgkjcmVzb3VyY2VUeXBlCgkkdG9w
Y29udGVudCA9ICRzZXNzaW9uLT5tYWtlX2VsZW1lbnQoICJvYWlyZTpyZXNvdXJjZVR5cGUiLAoJ
CQkJInVyaSI9PiIkbWFwcGVkX3R5cGVfVVJJIiwgInJlc291cmNlVHlwZUdlbmVyYWwiPT4gIiRt
YXBwZWRfcmVzb3VyY2VUeXBlR2VuZXJhbCIgKTsKCSR0b3Bjb250ZW50LT5hcHBlbmRDaGlsZCgk
c2Vzc2lvbi0+bWFrZV90ZXh0KCRtYXBwZWRfdHlwZSkpOwoJCgkkcmVzcG9uc2UtPmFwcGVuZENo
aWxkKCAkdG9wY29udGVudCApOwkKCQoJIzxkYXRhY2l0ZTppZGVudGlmaWVyIGlkZW50aWZpZXJU
eXBlPSJIYW5kbGUiPmh0dHA6Ly9oZGwuaGFuZGxlLm5ldC8xMjM0LzU2Mjg8L2RhdGFjaXRlOmlk
ZW50aWZpZXI+CgkkdG9wY29udGVudCA9ICRzZXNzaW9uLT5tYWtlX2VsZW1lbnQoICJkYXRhY2l0
ZTppZGVudGlmaWVyIiwKCQkJCSJpZGVudGlmaWVyVHlwZSI9PiJVUkwiKTsKCSR0b3Bjb250ZW50
LT5hcHBlbmRDaGlsZCgkc2Vzc2lvbi0+bWFrZV90ZXh0KCRlcHJpbnRfdXJsKSk7CgkKCSRyZXNw
b25zZS0+YXBwZW5kQ2hpbGQoICR0b3Bjb250ZW50ICk7CQoKCW15ICRtYXBwZWRfcmlnaHRzX1VS
ST0iIjsKCQoJI0FkZCByaWdodHMgaW5mbyAKCW15ICRyZXBvID0gJHBsdWdpbi0+e3Nlc3Npb259
LT5nZXRfcmVwb3NpdG9yeTsKCQoJbXkgJHJpZ2h0c0xhYmVsID0gIm1ldGFkYXRhIG9ubHkgYWNj
ZXNzIjsgI2RlZmF1bHQsIHVubGVzcyB3ZSBmaW5kIGEgZG9jdW1lbnQKCW15ICRmaWxlcmlnaHRz
TGFiZWwgPSAib3BlbiBhY2Nlc3MiOyAjZGVmYXVsdCBmaWxlLWxldmVsIHJpZ2h0cyBsYWJlbCBp
cyBvcGVuIGFjY2VzcwoJCglteSAkZW1iYXJnb19leHBpcnlfZGF0ZSA9ICIiOyAjZGVmYXVsdCBO
VUxMIGVtYmFyZ28gZGF0ZQoJCgkjIG1hcCB0eXBlIFVSSSBmcm9tIE9QRU5BSVJFIGh0dHBzOi8v
b3BlbmFpcmUtZ3VpZGVsaW5lcy1mb3ItbGl0ZXJhdHVyZS1yZXBvc2l0b3J5LW1hbmFnZXJzLnJl
YWR0aGVkb2NzLmlvL2VuL3Y0LjAuMC9maWVsZF9hY2Nlc3NyaWdodHMuaHRtbAoJbXkgJXR5cGVf
bWFwX3JpZ2h0c3VyaSA9ICgKCSJvcGVuIGFjY2VzcyIgPT4gImh0dHA6Ly9wdXJsLm9yZy9jb2Fy
L2FjY2Vzc19yaWdodC9jX2FiZjIiLAoJImVtYmFyZ29lZCBhY2Nlc3MiID0+ICJodHRwOi8vcHVy
bC5vcmcvY29hci9hY2Nlc3NfcmlnaHQvY19mMWNmIiwKCSJyZXN0cmljdGVkIGFjY2VzcyIgPT4g
Imh0dHA6Ly9wdXJsLm9yZy9jb2FyL2FjY2Vzc19yaWdodC9jXzE2ZWMiLAoJIm1ldGFkYXRhIG9u
bHkgYWNjZXNzIiA9PiAiaHR0cDovL3B1cmwub3JnL2NvYXIvYWNjZXNzX3JpZ2h0L2NfMTRjYiIs
CgkpOwoJCgkjY2hlY2sgaWYgYXQgbGVhc3Qgb25lIGRvY3VtZW50LCBzbyBkZWZhdWx0IHRvIG9w
ZW4gYWNjZXNzIHVubGVzcyB3ZSBmaW5kIGFuIGVtYmFyZ28gb3IgcmVzdHJpY3Rpb24KCW15IEBk
b2NzID0gJGRhdGFvYmotPmdldF9hbGxfZG9jdW1lbnRzKCk7CglpZiAoQGRvY3MgPiAwKSB7CgkJ
JHJpZ2h0c0xhYmVsID0gIm9wZW4gYWNjZXNzIjsKCX0KCQoJI2dvIHRocm91Z2ggZG9jdW1lbnRz
LCBkZXRlcm1pbmUgInJpZ2h0c0xhYmVsIiB0byBiZSBvcGVuIGFjY2VzcywgZW1iYXJnb2VkLCBy
ZXN0cmljdGVkIG9yIG1ldGFkYXRhIG9ubHkKCWZvcmVhY2ggbXkgJGRvYyAoIEBkb2NzICkgewoJ
CWlmKCRkb2MtPmV4aXN0c19hbmRfc2V0KCJkYXRlX2VtYmFyZ28iKSl7CgkJCQkkZmlsZXJpZ2h0
c0xhYmVsID0gImVtYmFyZ29lZCBhY2Nlc3MiOyAjdGhpcyBkb2N1bWVudCBpcyBlbWJhcmdvZWQK
CQkJCSRyaWdodHNMYWJlbCA9ICJlbWJhcmdvZWQgYWNjZXNzIjsgI2F0IGxlYXN0IG9uZSBlbWJh
cmdvZWQgLSBzbyBlcHJpbnQgZW1iYXJnb2VkCgkJCQkkZW1iYXJnb19leHBpcnlfZGF0ZSA9ICRk
b2MtPnZhbHVlKCJkYXRlX2VtYmFyZ28iKTsgI3N0b3JlIGVtYmFyZ28gZXhwaXJ5IGRhdGUKICAg
ICAgICB9CgkJZWxzaWYoJGRvYy0+ZXhpc3RzX2FuZF9zZXQoInNlY3VyaXR5IikpewoJCQlpZiAo
KCRkb2MtPnZhbHVlKCJzZWN1cml0eSIpIGVxICJzdGFmZm9ubHkiKSB8fCAoJGRvYy0+dmFsdWUo
InNlY3VyaXR5IikgZXEgInZhbGlkdXNlciIpKXsKCQkJCSRmaWxlcmlnaHRzTGFiZWwgPSAicmVz
dHJpY3RlZCBhY2Nlc3MiOyAjdGhpcyBkb2N1bWVudCBpcyByZXN0cmljdGVkCgkJCQkkcmlnaHRz
TGFiZWwgPSAicmVzdHJpY3RlZCBhY2Nlc3MiOyAjIGF0IGxlYXN0IG9uZSByZXN0cmljdGVkIC0g
c28gZXByaW50IHJlc3RyaWN0ZWQKCQkJfQoJCQllbHNpZiAoJGRvYy0+dmFsdWUoInNlY3VyaXR5
IikgZXEgInB1YmxpYyIpIHsKCQkJCSN0aGlzIGRvY3VtZW50IGlzIG9wZW4gYWNjZXNzIChubyBl
bWJhcmdvIGRhdGUgb3IgdXNlciByZXN0cmljdGlvbnMpCgkJCQkkZmlsZXJpZ2h0c0xhYmVsID0g
Im9wZW4gYWNjZXNzIjsgI3RoaXMgZG9jdW1lbnQgaXMgb3BlbiBhY2Nlc3MKCQkJfQkKCQl9CgkJ
IzxvYWlyZTpmaWxlIGFjY2Vzc1JpZ2h0c1VSST0iaHR0cDovL3B1cmwub3JnL2NvYXIvYWNjZXNz
X3JpZ2h0L2NfYWJmMiIgbWltZVR5cGU9ImFwcGxpY2F0aW9uL3BkZiIgb2JqZWN0VHlwZT0iZnVs
bHRleHQiPmh0dHA6Ly9saW5rLXRvLXRoZS1mdWxsdGV4dC5vcmc8L29haXJlOmZpbGU+CgkJJG1h
cHBlZF9yaWdodHNfVVJJID0gKGV4aXN0cyAkdHlwZV9tYXBfcmlnaHRzdXJpeyRmaWxlcmlnaHRz
TGFiZWx9KSA/ICR0eXBlX21hcF9yaWdodHN1cml7JGZpbGVyaWdodHNMYWJlbH0gOiAiIjsKCQlt
eSAkbWltZV90eXBlPSRkb2MtPnZhbHVlKCJtaW1lX3R5cGUiKTsKCQlteSAkZG9jdXJsPSRkb2Mt
PmdldF91cmw7CgkJJHRvcGNvbnRlbnQgPSAkc2Vzc2lvbi0+bWFrZV9lbGVtZW50KCAib2FpcmU6
ZmlsZSIsImFjY2Vzc1JpZ2h0c1VSSSI9PiIkbWFwcGVkX3JpZ2h0c19VUkkiLCJtaW1lVHlwZSI9
PiIkbWltZV90eXBlIik7CgkJJHRvcGNvbnRlbnQtPmFwcGVuZENoaWxkKCRzZXNzaW9uLT5tYWtl
X3RleHQoIiRkb2N1cmwiKSk7CgkJJHJlc3BvbnNlLT5hcHBlbmRDaGlsZCggJHRvcGNvbnRlbnQg
KTsJCgl9CgoJCgkKCSNtYXAgZXByaW50IHJpZ2h0cyBmcm9tIGxhYmVsIHRvIFVSSXMKCSRtYXBw
ZWRfcmlnaHRzX1VSSSA9IChleGlzdHMgJHR5cGVfbWFwX3JpZ2h0c3VyaXskcmlnaHRzTGFiZWx9
KSA/ICR0eXBlX21hcF9yaWdodHN1cml7JHJpZ2h0c0xhYmVsfSA6ICIiOwoJCgkjPGRhdGFjaXRl
OnJpZ2h0cyByaWdodHNVUkk9Imh0dHA6Ly9wdXJsLm9yZy9jb2FyL2FjY2Vzc19yaWdodC9jX2Fi
ZjIiPm9wZW4gYWNjZXNzPC9kYXRhY2l0ZTpyaWdodHM+CgkkdG9wY29udGVudCA9ICRzZXNzaW9u
LT5tYWtlX2VsZW1lbnQoICJkYXRhY2l0ZTpyaWdodHMiLAoJCQkJInJpZ2h0c1VSSSI9PiIkbWFw
cGVkX3JpZ2h0c19VUkkiKTsKCSR0b3Bjb250ZW50LT5hcHBlbmRDaGlsZCgkc2Vzc2lvbi0+bWFr
ZV90ZXh0KCRyaWdodHNMYWJlbCkpOwoJCgkkcmVzcG9uc2UtPmFwcGVuZENoaWxkKCAkdG9wY29u
dGVudCApOwkKCQoJIzxkYXRhY2l0ZTpkYXRlIGRhdGVUeXBlPSJJc3N1ZWQiPjIwMDAtMTItMjU8
L2RhdGFjaXRlOmRhdGU+CglteSAkZGF0ZSA9ICIiOwoJbXkgJGRhdGVUeXBlID0gIiI7CgkKCWlm
KCAkZGF0YW9iai0+ZXhpc3RzX2FuZF9zZXQoImRhdGUiKSl7CgkJJGRhdGUgPSAkZGF0YW9iai0+
Z2V0X3ZhbHVlKCAiZGF0ZSIgKTsJCgl9CglpZiggJGRhdGFvYmotPmV4aXN0c19hbmRfc2V0KCJk
YXRlX3R5cGUiKSl7CgkJJGRhdGVUeXBlID0gJGRhdGFvYmotPmdldF92YWx1ZSggImRhdGVfdHlw
ZSIgKTsJCgl9CgllbHNpZiAoJGRhdGUgbmUgIiIpewoJCSNpZiB0aGUgZGF0ZSBpcyBzZXQsIGJ1
dCB0aGUgRGF0ZVR5cGUgaXMgbm90IHNldCwgdGhpcyBpcyBhbiBpdGVtIGZyb20gYSB0aW1lIHdo
ZW4gRGF0ZVR5cGUgd2FzIG5vdCByZXF1aXJlZCBpbiBkZXBvc2l0IHdvcmtmbG93CgkJI3dlIG1h
cCB0aGVzZSByZWNvcmRzIHdpdGggYSBtaXNzaW5nIGRhdGV0eXBlIHRvICJwdWJsaXNoZWQiLyJj
b21wbGV0ZWQiIGRhdGUgdHlwZXMgYmVsb3cKCQkkZGF0ZVR5cGUgPSAiVU5LTk9XTiI7Cgl9CgkK
CSNmb3IgZXZlcnl0aGluZyBleGNlcHQgZm9yIHRoZXNlcywgdGhlIG1hcHBpbmcgaXMgbGlrZSB0
aGlzOgoJbXkgJXR5cGVfbWFwX2RhdGUgPSAoCgkgInN1Ym1pdHRlZCIgPT4gIkF2YWlsYWJsZSIs
CgkgInB1Ymxpc2hlZCIgPT4gIklzc3VlZCIsCiAJICJjb21wbGV0ZWQiID0+ICJBdmFpbGFibGUi
LAoJICJVTktOT1dOIiA9PiAiSXNzdWVkIiwKCSApOwoJIAoJICNmb3IgdGhlc2VzLCB3ZSBzaG91
bGQgYWx3YXlzIGhhdmUgY29tcGxldGlvbiBkYXRlIHdoaWNoIG1hcHMgdG8gQWNjZXB0ZWQgZGF0
ZSwgaWYgYW5vdGhlciBkYXRlIHR5cGUgaXMgc3RvcmVkLCB0cmVhdCBpdCB0aGUgc2FtZSB3YXkg
YXMgb3RoZXIgZG9jdW1lbnQgdHlwZXMgYWJvdmUKCSBteSAldHlwZV9tYXBfZGF0ZV90aGVzZXMg
PSAoCgkgInN1Ym1pdHRlZCIgPT4gIkF2YWlsYWJsZSIsCgkgInB1Ymxpc2hlZCIgPT4gIklzc3Vl
ZCIsCiAJICJjb21wbGV0ZWQiID0+ICJBY2NlcHRlZCIsCgkgIlVOS05PV04iID0+ICJBY2NlcHRl
ZCIsCgkgKTsgCgkgCglteSAkbWFwcGVkX2RhdGVUeXBlPSIiOwoJCglpZiAoJG1hcHBlZF90eXBl
IGVxICJ0aGVzaXMiKXsKCQkjbWFwIGZyb20gZXByaW50cyB0byBvcGVuYWlyZSBkYXRlIHR5cGVz
ICh0aGVzZXMpCgkJJG1hcHBlZF9kYXRlVHlwZSA9IChleGlzdHMgJHR5cGVfbWFwX2RhdGVfdGhl
c2VzeyRkYXRlVHlwZX0pID8gJHR5cGVfbWFwX2RhdGVfdGhlc2VzeyRkYXRlVHlwZX0gOiAiIjsK
CQl9CgllbHNlewoJCSNtYXAgZnJvbSBlcHJpbnRzIHRvIG9wZW5haXJlIGRhdGUgdHlwZXMgKG5v
biB0aGVzZXMpCgkJJG1hcHBlZF9kYXRlVHlwZSA9IChleGlzdHMgJHR5cGVfbWFwX2RhdGV7JGRh
dGVUeXBlfSkgPyAkdHlwZV9tYXBfZGF0ZXskZGF0ZVR5cGV9IDogIiI7Cgl9CgkKCSNpZiBlbWJh
cmdvZWQsIGFsd2F5cyBzZXQgdGhlIGRhdGUgYXZhaWxhYmxlIHRvIGVtYmFyZ28gZXhwaXJ5IGRh
dGUKCWlmICgkZW1iYXJnb19leHBpcnlfZGF0ZSBuZSAiIil7CgkJI2luIHNvbWUgY2FzZXMgbW9y
ZSB0aGFuIG9uZSBkYXRlIG1heSBiZSBuZWVkZWQsIHNwZWNpZmljYWxseTogd2hlbiB3ZSBoYXZl
IHB1Ymxpc2hlZCBkYXRlIG9yIGFjY2VwdGVkIGRhdGUgKHRoZXNlcykgYW5kIGVtYmFyZ28gZXhw
aXJ5IGRhdGUKCQlpZiAoJG1hcHBlZF9kYXRlVHlwZSBlcSAiSXNzdWVkIil7CgkJCSR0b3Bjb250
ZW50ID0gJHNlc3Npb24tPm1ha2VfZWxlbWVudCggImRhdGFjaXRlOmRhdGVzIik7CgkJCSRzdWJf
Y29udGVudCA9ICRzZXNzaW9uLT5tYWtlX2VsZW1lbnQoICJkYXRhY2l0ZTpkYXRlIiwKCQkJCQki
ZGF0ZVR5cGUiPT4iQXZhaWxhYmxlIik7CgkJCSRzdWJfY29udGVudC0+YXBwZW5kQ2hpbGQoJHNl
c3Npb24tPm1ha2VfdGV4dCgkZW1iYXJnb19leHBpcnlfZGF0ZSkpOwoJCQkkdG9wY29udGVudC0+
YXBwZW5kQ2hpbGQoJHN1Yl9jb250ZW50KTsKCQkJJHN1Yl9jb250ZW50ID0gJHNlc3Npb24tPm1h
a2VfZWxlbWVudCggImRhdGFjaXRlOmRhdGUiLAoJCQkJCSJkYXRlVHlwZSI9PiJJc3N1ZWQiKTsK
CQkJJHN1Yl9jb250ZW50LT5hcHBlbmRDaGlsZCgkc2Vzc2lvbi0+bWFrZV90ZXh0KCRkYXRlKSk7
CgkJCSR0b3Bjb250ZW50LT5hcHBlbmRDaGlsZCgkc3ViX2NvbnRlbnQpOwoJCQkkcmVzcG9uc2Ut
PmFwcGVuZENoaWxkKCAkdG9wY29udGVudCApOwkKCQl9CgkJZWxzaWYgKCgkbWFwcGVkX2RhdGVU
eXBlIGVxICJBY2NlcHRlZCIpICYmICgkbWFwcGVkX3R5cGUgZXEgInRoZXNpcyIpKXsKCQkJJHRv
cGNvbnRlbnQgPSAkc2Vzc2lvbi0+bWFrZV9lbGVtZW50KCAiZGF0YWNpdGU6ZGF0ZXMiKTsKCQkJ
JHN1Yl9jb250ZW50ID0gJHNlc3Npb24tPm1ha2VfZWxlbWVudCggImRhdGFjaXRlOmRhdGUiLAoJ
CQkJCSJkYXRlVHlwZSI9PiJBdmFpbGFibGUiKTsKCQkJJHN1Yl9jb250ZW50LT5hcHBlbmRDaGls
ZCgkc2Vzc2lvbi0+bWFrZV90ZXh0KCRlbWJhcmdvX2V4cGlyeV9kYXRlKSk7CgkJCSR0b3Bjb250
ZW50LT5hcHBlbmRDaGlsZCgkc3ViX2NvbnRlbnQpOwoJCQkkc3ViX2NvbnRlbnQgPSAkc2Vzc2lv
bi0+bWFrZV9lbGVtZW50KCAiZGF0YWNpdGU6ZGF0ZSIsCgkJCQkJImRhdGVUeXBlIj0+IkFjY2Vw
dGVkIik7CgkJCSRzdWJfY29udGVudC0+YXBwZW5kQ2hpbGQoJHNlc3Npb24tPm1ha2VfdGV4dCgk
ZGF0ZSkpOwoJCQkkdG9wY29udGVudC0+YXBwZW5kQ2hpbGQoJHN1Yl9jb250ZW50KTsKCQkJJHJl
c3BvbnNlLT5hcHBlbmRDaGlsZCggJHRvcGNvbnRlbnQgKTsJCgkJfQoJCWVsc2V7CgkJCSN3aGVu
IHdlIGhhdmUgZW1iYXJnbyBleHBpcnkgZGF0ZSBhbmQgZWl0aGVyIHN1Ym1pdHRlZCBvciBjb21w
bGV0ZWQgZGF0ZSwgb25seSBwcm92aWRlIHRoZSBlbWJhcmdvIGV4cGlyeSBkYXRlCgkJCSR0b3Bj
b250ZW50ID0gJHNlc3Npb24tPm1ha2VfZWxlbWVudCggImRhdGFjaXRlOmRhdGUiLAoJCQkJImRh
dGVUeXBlIj0+IkF2YWlsYWJsZSIpOwoJCQkkdG9wY29udGVudC0+YXBwZW5kQ2hpbGQoJHNlc3Np
b24tPm1ha2VfdGV4dCgkZW1iYXJnb19leHBpcnlfZGF0ZSkpOwoJCQkkcmVzcG9uc2UtPmFwcGVu
ZENoaWxkKCAkdG9wY29udGVudCApOwkKCQl9Cgl9CgoJI25vIGVtYmFyZ28sIHNvIE9BIGRhdGVz
IGFwcGx5CgllbHNpZiAoJGRhdGUgbmUgIiIpewoJCSR0b3Bjb250ZW50ID0gJHNlc3Npb24tPm1h
a2VfZWxlbWVudCggImRhdGFjaXRlOmRhdGUiLAoJCQkJImRhdGVUeXBlIj0+IiRtYXBwZWRfZGF0
ZVR5cGUiKTsKCQkJCQoJCSR0b3Bjb250ZW50LT5hcHBlbmRDaGlsZCgkc2Vzc2lvbi0+bWFrZV90
ZXh0KCRkYXRlKSk7CgkKCQkkcmVzcG9uc2UtPmFwcGVuZENoaWxkKCAkdG9wY29udGVudCApOwkK
Cgl9CgkKCSNleHRyYWN0IGluZGl2aWR1YWwgc3ViamVjdCBrZXl3b3JkcyBmcm9tIHRoZSBjb21i
aW5lZCBmaWVsZAoJaWYoICRkYXRhb2JqLT5leGlzdHNfYW5kX3NldCgia2V5d29yZHMiKSl7CgoJ
CW15ICRrZXl3b3Jkc19maWVsZCA9ICRkYXRhb2JqLT5kYXRhc2V0LT5maWVsZCggImtleXdvcmRz
IiApOwoJCW15IEB3b3JkczsKCQlpZiggJGtleXdvcmRzX2ZpZWxkLT5nZXRfcHJvcGVydHkoICJt
dWx0aXBsZSIgKSApCgkJewoJCQlAd29yZHMgPSBAeyRkYXRhb2JqLT52YWx1ZSggImtleXdvcmRz
IiApfTsKCQl9CgkJZWxzZQoJCXsKCQkJbXkgJHN1YmplY3RzID0gJGRhdGFvYmotPmdldF92YWx1
ZSggImtleXdvcmRzIiApOwoJCQlAd29yZHMgPSBzcGxpdCAvWztcLF0vLCAkc3ViamVjdHM7CgkJ
fQoJCiAgICAgICAgbXkgJHN1YmNvbnRlbnQgPSAiIjsKICAJICAgIG15ICRzdWJqZWN0ID0gIiI7
CgkJJHRvcGNvbnRlbnQgPSAkc2Vzc2lvbi0+bWFrZV9lbGVtZW50KCAiZGF0YWNpdGU6c3ViamVj
dHMiKTsKCQlmb3JlYWNoICggQHdvcmRzICkgewoJCQkkc3ViY29udGVudCA9ICRzZXNzaW9uLT5t
YWtlX2VsZW1lbnQoICJkYXRhY2l0ZTpzdWJqZWN0Iik7CgkJCSRzdWJqZWN0ID0gJHNlc3Npb24t
Pm1ha2VfdGV4dCgkXyk7CgkJCSRzdWJjb250ZW50LT5hcHBlbmRDaGlsZCgkc3ViamVjdCk7CgkJ
CSR0b3Bjb250ZW50LT5hcHBlbmRDaGlsZCgkc3ViY29udGVudCk7CgkJfQoKCQkkcmVzcG9uc2Ut
PmFwcGVuZENoaWxkKCAkdG9wY29udGVudCApOwkKCX0KCQoJRVByaW50czo6WE1MOjp0aWR5KCAk
cmVzcG9uc2UgKTsKCXJldHVybiAkcmVzcG9uc2U7Cgp9CgoxOwoKPWhlYWQxIENPUFlSSUdIVAoK
PWZvciBDT1BZUklHSFQgQkVHSU4KCkNvcHlyaWdodCAyMDIxIFRvbWFzeiBOZXVnZWJhdWVyLCBD
b25jb3JkaWEgVW5pdmVyc2l0eQoKCj1mb3IgQ09QWVJJR0hUIEVORAoKPWZvciBMSUNFTlNFIEJF
R0lOCgpUaGlzIGZpbGUgaXMgcGFydCBvZiBFUHJpbnRzIEw8aHR0cDovL3d3dy5lcHJpbnRzLm9y
Zy8+LgoKRVByaW50cyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IgbW9kaWZ5IGl0CnVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZApieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgoKRVByaW50cyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVApBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGFsb25nIHdpdGgg
RVByaW50cy4gIElmIG5vdCwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCgo9
Zm9yIExJQ0VOU0UgRU5ECg==
</data>
</file>
<file>
<filename>plugins/EPrints/Plugin/Export/OPENAIRE_via_PMH.pm</filename>
<mime_type>text/plain</mime_type>
<hash>5d619d387e3de69732c2259485b599ba</hash>
<hash_type>MD5</hash_type>
<filesize>2385</filesize>
<data encoding='base64'>IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwojCiMgRVByaW50czo6UGx1Z2luOjpFeHBvcnQ6Ok9QRU5BSVJFX3ZpYV9Q
TUgKIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCiMKIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoKPXBvZAoKPWhlYWQxIE5BTUUK
CkI8RVByaW50czo6UGx1Z2luOjpFeHBvcnQ6Ok9QRU5BSVJFX3ZpYV9QTUg+IC0gV3JhcHBlciBm
b3IgT0FJLVBNSCBleHBvcnRpb24gb2YgT1BFTkFJUkUgb2JqZWN0cy4KCj1oZWFkMSBERVNDUklQ
VElPTgoKVGhpcyBwbHVnaW4gZW5hYmxlcyBPUEVOQUlSRSBtYXBzIHRvIGJlIGRpc2NvdmVyZWQg
dmlhIHRoZSBPQUkyIFBNSCBpbnRlcmZhY2UgdG8gRVByaW50cy4KCj1vdmVyIDQKCj1jdXQKcGFj
a2FnZSBFUHJpbnRzOjpQbHVnaW46OkV4cG9ydDo6T1BFTkFJUkVfdmlhX1BNSDsKCnVzZSBFUHJp
bnRzOjpQbHVnaW46OkV4cG9ydDsKCkBJU0EgPSAoICJFUHJpbnRzOjpQbHVnaW46OkV4cG9ydCIg
KTsKCnVzZSBzdHJpY3Q7CgpzdWIgbmV3CnsKCW15KCAkY2xhc3MsICVvcHRzICkgPSBAXzsKCglt
eSAkc2VsZiA9ICRjbGFzcy0+U1VQRVI6Om5ldyggJW9wdHMgKTsKCgkkc2VsZi0+e25hbWV9ID0g
Ik9wZW5BSVJFIjsKCSRzZWxmLT57YWNjZXB0fSA9IFsgJ2RhdGFvYmovZXByaW50JyBdOwoJJHNl
bGYtPnt2aXNpYmxlfSA9ICIiOwoJJHNlbGYtPntzdWZmaXh9ID0gIi54bWwiOwoJJHNlbGYtPntt
aW1ldHlwZX0gPSAiYXBwbGljYXRpb24veG1sIjsKCQoJJHNlbGYtPnttZXRhZGF0YVByZWZpeH0g
PSAib2FpX29wZW5haXJlIjsKCSRzZWxmLT57eG1sbnN9ID0gImh0dHA6Ly9uYW1lc3BhY2Uub3Bl
bmFpcmUuZXUvc2NoZW1hL29haXJlLyI7Cgkkc2VsZi0+e3NjaGVtYUxvY2F0aW9ufSA9ICJodHRw
czovL3d3dy5vcGVuYWlyZS5ldS9zY2hlbWEvcmVwby1saXQvNC4wL29wZW5haXJlLnhzZCI7CgoJ
cmV0dXJuICRzZWxmOwp9CgoKc3ViIG91dHB1dF9kYXRhb2JqCnsKCW15KCAkcGx1Z2luLCAkZGF0
YW9iaiApID0gQF87CgoJbXkgJHhtbCA9ICRwbHVnaW4tPnhtbF9kYXRhb2JqKCAkZGF0YW9iaiAp
OwoKCW15ICRyZXNvdXJjZU1hcCA9IEVQcmludHM6OlhNTDo6dG9fc3RyaW5nKCAkeG1sICk7CgoJ
RVByaW50czo6WE1MOjpkaXNwb3NlKCR4bWwpOwoKCXJldHVybiAkcmVzb3VyY2VNYXA7Cn0KCgpz
dWIgeG1sX2RhdGFvYmoKewoJbXkoICRwbHVnaW4sICRkYXRhb2JqICkgPSBAXzsKCglteSAkbWFp
bl9wbHVnaW4gPSAkcGx1Z2luLT57c2Vzc2lvbn0tPnBsdWdpbiggIkV4cG9ydDo6T1BFTkFJUkUi
ICk7CgoJbXkgJGRhdGEgPSAkbWFpbl9wbHVnaW4tPnhtbF9kYXRhb2JqKCAkZGF0YW9iaiApOwoJ
CglyZXR1cm4gJGRhdGE7Cn0KCgoxOwoKPWhlYWQxIENPUFlSSUdIVAoKPWZvciBDT1BZUklHSFQg
QkVHSU4KCkNvcHlyaWdodCAyMDAwLTIwMTEgVW5pdmVyc2l0eSBvZiBTb3V0aGFtcHRvbi4KQ29w
eXJpZ2h0IDIwMTkgVG9tYXN6IE5ldWdlYmF1ZXIsIENvbmNvcmRpYSBVbml2ZXJzaXR5Cgo9Zm9y
IENPUFlSSUdIVCBFTkQKCj1mb3IgTElDRU5TRSBCRUdJTgoKVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
RVByaW50cyBMPGh0dHA6Ly93d3cuZXByaW50cy5vcmcvPi4KCkVQcmludHMgaXMgZnJlZSBzb2Z0
d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAp1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo
ZWQKYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0
aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCkVQcmlu
dHMgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0
IFdJVEhPVVQKQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YgTUVSQ0hBTlRBQklMSVRZIG9yCkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkxpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKTGljZW5zZSBhbG9uZyB3aXRoIEVQcmludHMuICBJZiBub3QsIHNlZSBMPGh0
dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKPWZvciBMSUNFTlNFIEVORAoK
</data>
</file>
</files>
<mime_type>text/plain</mime_type>
<format>text</format>
<main>plugins/EPrints/Plugin/Export/OPENAIRE_via_PMH.pm</main>
<content>install</content>
</document>
</documents>
<version>1.0.4</version>
<creators>
<item>
<name>
<family>Neugebauer</family>
<given>Tomasz</given>
</name>
<id>[email protected]</id>
</item>
</creators>
<title>OpenAIRE Export Plugin - Literature Repository Guidelines</title>
<description>Export Plugin for Interoperability with OpenAIRE.
Exports metadata based on Guidelines for Literature Repositories by OpenAIRE (https://openaire-guidelines-for-literature-repository-managers.readthedocs.io/en/v4.0.0/).This plugin was developed as a part of Canadian Association of Research Libraries OpenAIRE Pilot Project.
This version includes export of contributors and editors.</description>
<requirements>To enable the plugin, the following lines are added in cfg/cfg.d/z_openaire.pl (included with the bazaar plugin)
$c->{plugins}->{"Export::OPENAIRE"}->{params}->{disable} = 0;
$c->{plugins}{"Export::OPENAIRE_via_PMH"}{params}{disable} = 0;</requirements>
</epm>