libvim-clj.core
(->vim)
Returns an object that you can call the other functions on. You *must* call the `init` function on it before anything else. Line numbers are 1-based and column numbers are 0-based (don't ask me why).
+ Source
IVim
+ Source
(execute vim cmd)
Example
(
execute
vim
"set expandtab"
)
(get-command-completion vim)
(get-command-position vim)
(get-command-text vim)
(get-current-buffer vim)
(get-cursor-column vim)
(get-cursor-line vim)
(get-file-name vim buffer-ptr)
(get-line vim buffer-ptr line-num)
(get-line-count vim buffer-ptr)
(get-mode vim)
(get-search-highlights vim start-line end-line)
Warning: This function could behave badly if you don't have hlsearch enabled: (execute vim "set hlsearch")
(get-search-pattern vim)
Warning: This function could behave badly if you don't have hlsearch enabled: (execute vim "set hlsearch")
(get-tab-size vim)
(get-visual-range vim)
(get-visual-type vim)
(get-window-height vim)
(get-window-left-column vim)
(get-window-top-line vim)
(get-window-width vim)
(init vim)
(input vim input)
Examples
Input a character
(
input
vim
"h"
)
Input a special character See: https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-_Tutorial_%28Part_2%29
(
input
vim
"<Enter>"
)
(input-unicode vim input)
Example
Input a unicode character
(
input-unicode
vim
"者"
)
(open-buffer vim file-name)
Example
(
open-buffer
vim
"hello.txt"
)
(select-active? vim)
(set-current-buffer vim buffer-ptr)
(set-cursor-position vim line-num col-num)
(set-on-auto-command vim callback)
Example
(
set-on-auto-command
vim
(
fn
[
buffer-ptr
event
]
(
case
event
EVENT_BUFENTER
(
println
"User entered a buffer"
)
nil
)
)
)
(set-on-buffer-update vim callback)
Example
(
set-on-buffer-update
vim
(
fn
[
buffer-ptr
start-line
end-line
line-count
]
(
println
"Buffer"
buffer-ptr
"was updated"
)
)
)
(set-on-message vim callback)
Example
(
set-on-message
vim
(
fn
[
{
:keys
[
title
message
message-priority
]
}
]
(
println
message
)
)
)
(set-on-quit vim callback)
Example
(
set-on-quit
vim
(
fn
[
buffer-ptr
forced?
]
(
System/exit
0
)
)
)
(set-on-stop-search-highlight vim callback)
Example
(
set-on-stop-search-highlight
vim
(
fn
[
]
(
println
":noh was executed"
)
)
)
(set-on-unhandled-escape vim callback)
Example
(
set-on-unhandled-escape
vim
(
fn
[
]
(
println
"User pressed Esc in normal mode"
)
)
)
(set-on-yank vim callback)
Example
(
set-on-yank
vim
(
fn
[
{
:keys
[
start-line
start-column
end-line
end-column
]
}
]
(
println
"User copied text"
)
)
)
(set-tab-size vim size)
(set-window-height vim height)
(set-window-top-left vim top left)
(set-window-width vim width)
(visual-active? vim)
ezpucy1tZXRhIG5pbCwgOnR5cGUgOmNsaiwgOm5zZXMgW3s6dmFyLXN5bXMgW3ByaW1pdGl2ZXMtY2xhc3NuYW1lcyArJyBkZWNpbWFsPyByZXN0YXJ0LWFnZW50IHNvcnQtYnkgbWFjcm9leHBhbmQgZW5zdXJlIGNodW5rLWZpcnN0IGVkdWN0aW9uIHRyZWUtc2VxIHVuY2hlY2tlZC1yZW1haW5kZXItaW50IHNlcSByZWR1Y2Ugd2hlbi1maXJzdCBmaW5kLW5zIGdldC10aHJlYWQtYmluZGluZ3MgY29udGFpbnM/IGV2ZXJ5PyBwcm94eS1tYXBwaW5ncyBrZWVwLWluZGV4ZWQgY29uZC0+PiBzdWJzIHJlZi1taW4taGlzdG9yeSBzZXQgdGFrZS1sYXN0IGJpdC1zZXQgcmVhZGVyLWNvbmRpdGlvbmFsIGdlbi1jbGFzcyBxdWFsaWZpZWQta2V5d29yZD8gd2hpbGUgLT5FZHVjdGlvbiBidXRsYXN0IHNhdGlzZmllcz8gbGluZS1zZXEgdW5jaGVja2VkLXN1YnRyYWN0LWludCAqcHJpbnQtbmFtZXNwYWNlLW1hcHMqIHRha2UtbnRoIGZpcnN0IHJlLWdyb3VwcyBzZXE/IGRlYycgbnMtdW5tYXAgcHJpbnRsbi1zdHIgd2l0aC1iaW5kaW5ncyogaW5zdC1tcyBpdGVyYXRvci1zZXEgaXRlcmF0ZSBzbHVycCBuZXdsaW5lIHNob3J0LWFycmF5IGZuPyBkb2FsbCBwcmVmZXJzIGVudW1lcmF0aW9uLXNlcSBkZWR1cGUgZGlzc29jIGF0b20gaW1wb3J0IGJpdC1zaGlmdC1yaWdodCBwcmludC1tZXRob2QgcGVlayBhZ2V0IHB2YWx1ZXMgYm91bmQtZm4gdnN3YXAhIGxhc3QgcHIgbmFtZXNwYWNlIHB1c2gtdGhyZWFkLWJpbmRpbmdzIGJhc2VzID0gcmVhZCtzdHJpbmcgZG9zeW5jIHJlbW92ZS1ucyB0YWtlIHZlY3Rvcj8gdGhyZWFkLWJvdW5kPyBzZW5kLXZpYSBib29sZWFuIGJpdC1zaGlmdC1sZWZ0IGFueT8gZmluZC12YXIgcmFuZC1pbnQgYWNsb25lIFByaW50V3JpdGVyLW9uIHZyZXNldCEgY2h1bmsgZGVjIGZ1dHVyZS1jYWxsIHJlc3VsdHNldC1zZXEgc3RydWN0IG1hcCBqdXh0IG5zLXB1YmxpY3MgPCAqc291cmNlLXBhdGgqIHdpdGgtbG9hZGluZy1jb250ZXh0IHRlc3QgcmVzdCBleC1kYXRhIGNvbXBpbGUgaXNhPyBib29sZWFuPyAuLiBtdW5nZSBkZWxheSBzZXQtZXJyb3ItbW9kZSEgcmUtc2VxIGNoYXI/IG1ha2UtaGllcmFyY2h5IHNldC1hZ2VudC1zZW5kLWV4ZWN1dG9yISBzd2FwLXZhbHMhIGtlZXAgY2hhciBtYXBjYXQgdW5jaGVja2VkLWxvbmcgYXNldC1sb25nIHNvbWU/IHVuY2hlY2tlZC1uZWdhdGUgcmVtb3ZlLXRhcCBnZW4taW50ZXJmYWNlICpjb21tYW5kLWxpbmUtYXJncyogcmV2ZXJzZSBpbnN0PyByYW5nZSBzb3J0IC1jYWNoZS1wcm90b2NvbC1mbiB1bmNoZWNrZWQtaW5jLWludCBtYXAtaW5kZXhlZCB3aXRoLWJpbmRpbmdzIHJhbmQtbnRoIGNvbXAgYXdhaXQgc3BpdCBmdXR1cmUtZG9uZT8gKnJlYWQtZXZhbCogZG9ydW4gc2ltcGxlLXN5bWJvbD8gZGlzaiAqMiBldmFsIGNvbnMgcmVmZXIgcHJpbnQtZHVwIC1yZXNldC1tZXRob2RzIGZsb2F0cyBwb3M/IGZuaWwgbWVyZ2Utd2l0aCBudGhyZXN0IGxvYWQgaWYtbm90ICp2ZXJib3NlLWRlZnJlY29yZHMqIHNlcXVlbnRpYWw/ICpwcmludC1sZXZlbCogc2h1ZmZsZSBib29sZWFuLWFycmF5IGZpbmQgYWxlbmd0aCBiaXQteG9yIGRlbGl2ZXIgZG9zZXEgdW5zaWduZWQtYml0LXNoaWZ0LXJpZ2h0IG5lZz8gdmFyLXNldCB1bmNoZWNrZWQtZmxvYXQgcG1hcCBlcnJvci1tb2RlIG51bSByZWR1Y2VkPyBkaXNqISBmbG9hdD8gYXNldC1mbG9hdCBkZWZ0eXBlIGJlYW4gYm9vbGVhbnMgbnMtdW5hbGlhcyB3aGVuLWxldCBpbnQtYXJyYXkgc2V0PyBpbmMnIGNhdCBTdGFja1RyYWNlRWxlbWVudC0+dmVjICpzdXBwcmVzcy1yZWFkKiBmbHVzaCB0YWtlLXdoaWxlIHZhcnktbWV0YSA8PSBhbHRlciAtJyBpZi1zb21lIGNvbmohIHJlcGVhdGVkbHkgemlwbWFwIHJlc2V0LXZhbHMhIGFsdGVyLXZhci1yb290IGJpZ2ludGVnZXIgcmVtb3ZlICogcmUtcGF0dGVybiBtaW4gcG9wISBjaHVuay1hcHBlbmQgcHJuLXN0ciB3aXRoLXByZWNpc2lvbiBmb3JtYXQgcmV2ZXJzaWJsZT8gc2h1dGRvd24tYWdlbnRzIGNvbmogYm91bmQ/IHRyYW5zZHVjZSBsYXp5LXNlcSAqcHJpbnQtbGVuZ3RoKiAqZmlsZSogY29tcGFyZS1hbmQtc2V0ISAqdXNlLWNvbnRleHQtY2xhc3Nsb2FkZXIqIGF3YWl0MSBsZXQgcmVmLXNldCBwb3AtdGhyZWFkLWJpbmRpbmdzIGludGVybGVhdmUgcHJpbnRmIG1hcD8gLT4gZGVmc3RydWN0ICplcnIqIGdldCBkb3RvIGlkZW50aXR5IGludG8gYXJlZHVjZSBsb25nIGRvdWJsZSB2b2xhdGlsZT8gZGVmaW5saW5lIG5maXJzdCBtZXRhIGZpbmQtcHJvdG9jb2wtaW1wbCBiaXQtYW5kLW5vdCAqZGVmYXVsdC1kYXRhLXJlYWRlci1mbiogdmFyPyBtZXRob2Qtc2lnIHVuY2hlY2tlZC1hZGQtaW50IHVucXVvdGUtc3BsaWNpbmcgaGFzaC1vcmRlcmVkLWNvbGwgZnV0dXJlIHJlc2V0LW1ldGEhIGN5Y2xlIGZuIHNlcXVlIGVtcHR5PyBzaG9ydCBkZWZpbnRlcmZhY2UgYWRkLXRhcCBmaWx0ZXJ2IGhhc2ggcXVvdCBucy1hbGlhc2VzIHJlYWQgdW5jaGVja2VkLWRvdWJsZSBrZXkgbG9uZ3Mgbm90PSBzdHJpbmc/IHVyaT8gYXNldC1kb3VibGUgdW5jaGVja2VkLW11bHRpcGx5LWludCBjaHVuay1yZXN0IHBjYWxscyAqYWxsb3ctdW5yZXNvbHZlZC12YXJzKiByZW1vdmUtYWxsLW1ldGhvZHMgbnMtcmVzb2x2ZSBhcy0+IGFzZXQtYm9vbGVhbiB0cmFtcG9saW5lIGRvdWJsZT8gd2hlbi1ub3QgKjEgdmVjICpwcmludC1tZXRhKiB3aGVuIGludCBtYXAtZW50cnk/IG5zLXJlZmVycyByYW5kIHNlY29uZCB2ZWN0b3Itb2YgaGFzaC1jb21iaW5lID4gcmVwbGFjZSBpbnQ/IGFzc29jaWF0aXZlPyB1bmNoZWNrZWQtaW50IHNldC1lcnJvci1oYW5kbGVyISBpbnN0LW1zKiBrZXl3b3JkPyBmb3JjZSBib3VuZC1mbiogbmFtZXNwYWNlLW11bmdlIGdyb3VwLWJ5IHBybiBleHRlbmQgdW5jaGVja2VkLW11bHRpcGx5IHNvbWUtPj4gZGVmYXVsdC1kYXRhLXJlYWRlcnMgLT5WZWNTZXEgZXZlbj8gdW5jaGVja2VkLWRlYyBJbnN0IHRhZ2dlZC1saXRlcmFsPyBkb3VibGUtYXJyYXkgaW4tbnMgY3JlYXRlLW5zIHJlLW1hdGNoZXIgZGVmbiByZWYgYmlnaW50IGV4dGVuZHM/IHByb21pc2UgYXNldC1jaGFyIHJzZXEgZXgtY2F1c2UgY29uc3RydWN0LXByb3h5IGFnZW50LWVycm9ycyAqY29tcGlsZS1maWxlcyogZXgtbWVzc2FnZSAqbWF0aC1jb250ZXh0KiBmbG9hdCBwci1zdHIgY29uY2F0IGFzZXQtc2hvcnQgc2V0LWFnZW50LXNlbmQtb2ZmLWV4ZWN1dG9yISBucyBzeW1ib2wgdG8tYXJyYXktMmQgbW9kIGFtYXAgcG9wIHVzZSB1bnF1b3RlIGRlY2xhcmUgZGlzc29jISByZWR1Y3Rpb25zIGFzZXQtYnl0ZSBpbmRleGVkPyByZWYtaGlzdG9yeS1jb3VudCAtIGFzc29jISBoYXNoLXNldCByZWR1Y2Uta3Ygb3IgY2FzdCByZXNldCEgbmFtZSBmZmlyc3Qgc29ydGVkLXNldCBjb3VudGVkPyBieXRlLWFycmF5IHRhZ2dlZC1saXRlcmFsIHByaW50bG4gZXh0ZW5kLXR5cGUgbWFjcm9leHBhbmQtMSBhc3NvYy1pbiBjaGFyLW5hbWUtc3RyaW5nIGJpdC10ZXN0IGRlZm1ldGhvZCByZXF1aXJpbmctcmVzb2x2ZSBFTVBUWS1OT0RFIHRpbWUgbWVtb2l6ZSBhbHRlci1tZXRhISBmdXR1cmU/IHplcm8/IHNpbXBsZS1rZXl3b3JkPyByZXF1aXJlIHVuY2hlY2tlZC1kZWMtaW50IHBlcnNpc3RlbnQhIG5uZXh0IGFkZC13YXRjaCBub3QtZXZlcnk/IGNsYXNzPyByZW0gYWdlbnQtZXJyb3Igc29tZSBmdXR1cmUtY2FuY2VsbGVkPyBtZW1mbiBuZWctaW50PyBzdHJ1Y3QtbWFwIGRyb3AgKmRhdGEtcmVhZGVycyogbnRoIHNvcnRlZD8gbmlsPyBleHRlbmQtcHJvdG9jb2wgc3BsaXQtYXQgKmUgbG9hZC1yZWFkZXIgcmFuZG9tLXNhbXBsZSBjb25kLT4gZG90aW1lcyBzZWxlY3Qta2V5cyBiaXQtYW5kIGJvdW5kZWQtY291bnQgdXBkYXRlIGxpc3QqIHJlaWZ5IHVwZGF0ZS1pbiBwcmVmZXItbWV0aG9kIGFzZXQtaW50ICpjbG9qdXJlLXZlcnNpb24qIGVuc3VyZS1yZWR1Y2VkIConIGluc3RhbmNlPyB3aXRoLW9wZW4gbWl4LWNvbGxlY3Rpb24taGFzaCByZS1maW5kIHJ1biEgdmFsIGRlZm9uY2UgdW5jaGVja2VkLWFkZCBsb2FkZWQtbGlicyAtPlZlYyBieXRlcz8gbm90IHdpdGgtbWV0YSB1bnJlZHVjZWQgdGhlLW5zIHJlY29yZD8gdHlwZSBpZGVudGljYWw/IHVuY2hlY2tlZC1kaXZpZGUtaW50IG5zLW5hbWUgbWF4LWtleSAqdW5jaGVja2VkLW1hdGgqIGRlZm4tICpvdXQqIGZpbGUtc2VxIGFnZW50IG5zLW1hcCBzZXQtdmFsaWRhdG9yISBpZGVudD8gZGVmcHJvdG9jb2wgc3dhcCEgdmFscyB1bmNoZWNrZWQtc3VidHJhY3QgdGFwPiAqd2Fybi1vbi1yZWZsZWN0aW9uKiBzb3J0ZWQtc2V0LWJ5IHN5bmMgcXVhbGlmaWVkLWlkZW50PyBhc3NlcnQgKmNvbXBpbGUtcGF0aCogdHJ1ZT8gcmVsZWFzZS1wZW5kaW5nLXNlbmRzIHByaW50IGVtcHR5IHJlbW92ZS1tZXRob2QgKmluKiBwcmludC1jdG9yIGxldGZuIHZvbGF0aWxlISAvIHJlYWQtbGluZSByZWFkZXItY29uZGl0aW9uYWw/IGJpdC1vciBjbGVhci1hZ2VudC1lcnJvcnMgdmVjdG9yIHByb3h5LXN1cGVyID49IGRyb3AtbGFzdCBub3QtZW1wdHkgZGlzdGluY3QgcGFydGl0aW9uIGxvb3AgYWRkLWNsYXNzcGF0aCBiaXQtZmxpcCBsb25nLWFycmF5IGRlc2NlbmRhbnRzIG1lcmdlIGFjY2Vzc29yIGludGVnZXI/IG1hcHYgcGFydGl0aW9uLWFsbCBwYXJ0aXRpb24tYnkgbnVtZXJhdG9yIG9iamVjdC1hcnJheSB3aXRoLW91dC1zdHIgY29uZHAgZGVyaXZlIGxvYWQtc3RyaW5nIHNwZWNpYWwtc3ltYm9sPyBhbmNlc3RvcnMgc3Vic2VxIGVycm9yLWhhbmRsZXIgZ2Vuc3ltIGNvbmQgcmF0aW8/IGRlbGF5PyBpbnRlcm4gcHJpbnQtc2ltcGxlIGZsYXR0ZW4gZG91YmxlcyBoYWx0LXdoZW4gd2l0aC1pbi1zdHIgcmVtb3ZlLXdhdGNoIGV4LWluZm8gaWZuPyBzb21lLT4gbmF0LWludD8gcHJveHktbmFtZSBucy1pbnRlcm5zIGFsbC1ucyBmaW5kLXByb3RvY29sLW1ldGhvZCBzdWJ2ZWMgZm9yIGJpbmRpbmcgcGFydGlhbCBjaHVua2VkLXNlcT8gZmluZC1rZXl3b3JkIHJlcGxpY2F0ZSBtaW4ta2V5IHJlZHVjZWQgY2hhci1lc2NhcGUtc3RyaW5nIHJlLW1hdGNoZXMgYXJyYXktbWFwIHVuY2hlY2tlZC1ieXRlIHdpdGgtbG9jYWwtdmFycyBucy1pbXBvcnRzIHNlbmQtb2ZmIGRlZm1hY3JvIGV2ZXJ5LXByZWQga2V5cyByYXRpb25hbGl6ZSBsb2FkLWZpbGUgZGlzdGluY3Q/IHBvcy1pbnQ/IGV4dGVuZGVycyB1bmNoZWNrZWQtc2hvcnQgbWV0aG9kcyBvZGQ/IC0+QXJyYXlDaHVuayBmbG9hdC1hcnJheSAqMyBhbGlhcyBmcmVxdWVuY2llcyByZWFkLXN0cmluZyBwcm94eSByc3Vic2VxIGluYyBnZXQtbWV0aG9kIHdpdGgtcmVkZWZzIHV1aWQ/IGJpdC1jbGVhciBmaWx0ZXIgbG9ja2luZyBsaXN0ICsgc3BsaXQtd2l0aCBhc2V0IC0+VmVjTm9kZSBrZXl3b3JkICpucyogZGVzdHJ1Y3R1cmUgKmFzc2VydCogZGVmbXVsdGkgY2hhcnMgc3RyIG5leHQgaGFzaC1tYXAgaWYtbGV0IHVuZGVyaXZlIHJlZi1tYXgtaGlzdG9yeSBUaHJvd2FibGUtPm1hcCBmYWxzZT8gKnByaW50LXJlYWRhYmx5KiBpbnRzIGNsYXNzIHNvbWUtZm4gY2FzZSAqZmx1c2gtb24tbmV3bGluZSogdG8tYXJyYXkgYmlnZGVjIGxpc3Q/IHNpbXBsZS1pZGVudD8gYml0LW5vdCBpbyEgeG1sLXNlcSBieXRlIG1heCA9PSAqYWdlbnQqIGxhenktY2F0IGNvbW1lbnQgcGFyZW50cyBjb3VudCBzdXBlcnMgKmZuLWxvYWRlciogc29ydGVkLW1hcC1ieSBhcHBseSBpbnRlcnBvc2UgZGVyZWYgYXNzb2MgcmF0aW9uYWw/IHRyYW5zaWVudCBjbG9qdXJlLXZlcnNpb24gY2h1bmstY29ucyBjb21wYXJhdG9yIHNvcnRlZC1tYXAgc2VuZCBkcm9wLXdoaWxlIHByb3h5LWNhbGwtd2l0aC1zdXBlciByZWFsaXplZD8gY2hhci1hcnJheSByZXNvbHZlIGNvbXBhcmUgY29tcGxlbWVudCAqY29tcGlsZXItb3B0aW9ucyogKnByaW50LWR1cCogZGVmcmVjb3JkIHdpdGgtcmVkZWZzLWZuIHNlcXVlbmNlIGNvbnN0YW50bHkgZ2V0LXByb3h5LWNsYXNzIG1ha2UtYXJyYXkgc2hvcnRzIGNvbXBsZXRpbmcgdXBkYXRlLXByb3h5IHVuY2hlY2tlZC1uZWdhdGUtaW50IGhhc2gtdW5vcmRlcmVkLWNvbGwgcmVwZWF0IHVuY2hlY2tlZC1pbmMgKnJlYWRlci1yZXNvbHZlciogbnRobmV4dCBhbmQgY3JlYXRlLXN0cnVjdCBnZXQtdmFsaWRhdG9yIG51bWJlcj8gYXdhaXQtZm9yIGNodW5rLW5leHQgcHJpbnQtc3RyIG5vdC1hbnk/IGludG8tYXJyYXkgcXVhbGlmaWVkLXN5bWJvbD8gaW5pdC1wcm94eSBjaHVuay1idWZmZXIgc2VxYWJsZT8gc3ltYm9sPyB3aGVuLXNvbWUgdW5jaGVja2VkLWNoYXIgLT4+IGZ1dHVyZS1jYW5jZWwgdmFyLWdldCBjb21tdXRlIGNvbGw/IGdldC1pbiBmbmV4dCBkZW5vbWluYXRvciBieXRlcyByZWZlci1jbG9qdXJlXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLmNvcmV9IHs6dmFyLXN5bXMgW1B1YiByZWR1Y2UgcmVtb3ZlPiB0aW1lb3V0IHVuc3ViKiBhZG1peCogdW5taXgqIG1peCBwdWIgdGFrZSB1bnN1Yi1hbGwqIDwhIG1hcCBNdXggbWFwY2F0PiBidWZmZXIgY2xvc2UhIG9mZmVyISBjaGFuIHNvbG8tbW9kZSogdGFwIGdvIGFkbWl4IHByb21pc2UtY2hhbiB1bmlxdWUgbXV4Y2gqIHNvbG8tbW9kZSB0cmFuc2R1Y2Ugb250by1jaGFuIHRvLWNoYW4gZHJvcHBpbmctYnVmZmVyIHVudGFwLWFsbCBpbnRvID4hISBhbHQhIHBpcGVsaW5lIHN1YiBnby1sb29wIG1hcD4gcGlwZSB1bm1peCBmaWx0ZXI8IHN1YiogcmVtb3ZlPCBhbHQhISB1bnRhcCogPCEhIHRvZ2dsZSB1bnRhcC1hbGwqIHNsaWRpbmctYnVmZmVyIHBhcnRpdGlvbiBNdWx0IG1lcmdlIHBhcnRpdGlvbi1ieSB1bnN1Yi1hbGwgPiEgdW5taXgtYWxsKiBzcGxpdCB1bm1peC1hbGwgZmlsdGVyPiB0YXAqIHVudGFwIGFsdHMhIHVuc3ViIHBvbGwhIHRocmVhZCBtYXA8IGZuLWhhbmRsZXIgZG8tYWx0cyBwaXBlbGluZS1ibG9ja2luZyBwaXBlbGluZS1hc3luYyBNaXggdG9nZ2xlKiBtdWx0IHRocmVhZC1jYWxsIGFsdHMhISBtYXBjYXQ8IGlvYy1hbHRzISB1bmJsb2NraW5nLWJ1ZmZlcj8gZG8tYWx0IHB1dCEgdGFrZSFdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuY29yZS5hc3luY30gezp2YXItc3ltcyBbLT5Qcm9taXNlQnVmZmVyIC0+RHJvcHBpbmdCdWZmZXIgZHJvcHBpbmctYnVmZmVyIGZpeGVkLWJ1ZmZlciAtPkZpeGVkQnVmZmVyIHNsaWRpbmctYnVmZmVyIC0+U2xpZGluZ0J1ZmZlciBwcm9taXNlLWJ1ZmZlcl0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5jb3JlLmFzeW5jLmltcGwuYnVmZmVyc30gezp2YXItc3ltcyBbY2xlYW51cCBjaGFuIGJveCBNTUMgYWJvcnQgYXNzZXJ0LXVubG9jayAtPk1hbnlUb01hbnlDaGFubmVsXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLmNvcmUuYXN5bmMuaW1wbC5jaGFubmVsc30gezp2YXItc3ltcyBbY291bnRlZC10aHJlYWQtZmFjdG9yeSBwcm9jZXNzb3JzXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLmNvcmUuYXN5bmMuaW1wbC5jb25jdXJyZW50fSB7OnZhci1zeW1zIFtleGVjdXRvciBydW5dLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuY29yZS5hc3luYy5pbXBsLmRpc3BhdGNofSB7OnZhci1zeW1zIFt0aHJlYWQtcG9vbC1leGVjdXRvcl0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5jb3JlLmFzeW5jLmltcGwuZXhlYy50aHJlYWRwb29sfSB7OnZhci1zeW1zIFtpbmRleC1zdGF0ZS1tYWNoaW5lIC0+UG9wVHJ5IEVYQ0VQVElPTi1GUkFNRVMgYmxvY2stcmVmZXJlbmNlcyByZWFkcy1mcm9tIGluZGV4LWJsb2NrIG1hcC0+Q2FzZSBtYXAtPkluc3RhbmNlSW50ZXJvcCBhZGQtYmxvY2sgaW5zdHJ1Y3Rpb24/IC0+UmF3Q29kZSBsZXQtYmluZGluZy10by1zc2EgbWFwLT5Db25kQnIgbWFwLT5Db25zdCAtPkNhbGwgLT5KbXAgLT5Db25kQnIgbWFwLT5QdXNoVHJ5IGNvdW50LXBlcnNpc3RlbnQtdmFsdWVzIGdldC1iaW5kaW5nIGdlbi1wbGFuIC1pdGVtLXRvLXNzYSAtPkNhc2UgZ2V0LWJsb2NrIGlkLWZvci1pbnN0IGluZGV4LWluc3RydWN0aW9uIHBkZWJ1ZyB3cml0ZXMtdG8gLT5Eb3QgbWFwLT5DdXN0b21UZXJtaW5hdG9yIHRlcm1pbmF0b3ItY29kZSBzZXQtYmxvY2sgLT5DYXRjaEhhbmRsZXIgU1RBVEUtSURYIC0+UHVzaFRyeSBtYXJrLXRyYW5zaXRpb25zIC0+Rm4gbWFwLT5DYXRjaEhhbmRsZXIgLT5SZXR1cm4gYXNldC1vYmplY3QgcnVuLXBhc3NlcyBJRW1pdHRhYmxlSW5zdHJ1Y3Rpb24gbWFwLT5DYWxsIElUZXJtaW5hdG9yIG1hcC0+Rm4gZW1pdC1pbnN0cnVjdGlvbiBJSW5zdHJ1Y3Rpb24gbWFwLT5Eb3QgbWFrZS1lbnYgcHJvcGFnYXRlLXJlY3VyIHRlcm1pbmF0ZS1ibG9jayAtPkluc3RhbmNlSW50ZXJvcCBtYXAtPlBvcFRyeSBwZXJzaXN0ZW50LXZhbHVlPyBwcm9wYWdhdGUtdHJhbnNpdGlvbnMgYXNzb2MtaW4tcGxhbiBydW4tc3RhdGUtbWFjaGluZS13cmFwcGVkIHB1c2gtYWx0ZXItYmluZGluZyBhc2V0LWFsbCEgZGVidWcgcGFyc2UtdG8tc3RhdGUtbWFjaGluZSBnZXQtcGxhbiBGTi1JRFggYWdldC1vYmplY3QgcmV0dXJuLWNoYW4gYWxsIHBvcC1iaW5kaW5nIC0+RW5kRmluYWxseSBuZXN0ZWQtZ28/IC0+UmVjdXIgYWRkLWluc3RydWN0aW9uIG5vLW9wIHBhc3NlcyBwdXNoLWJpbmRpbmcgLT5DdXN0b21UZXJtaW5hdG9yIEJJTkRJTkdTLUlEWCBtYXAtPlJldHVybiBpdGVtLXRvLXNzYSBtYXAtPkVuZEZpbmFsbHkgYXN5bmMtY3VzdG9tLXRlcm1pbmF0b3JzIC0+U3RhdGljQ2FsbCBtYXAtPlJhd0NvZGUgQ1VSUkVOVC1FWENFUFRJT04gZW1pdC1oaW50ZWQgLT5Db25zdCBtYXAtPlN0YXRpY0NhbGwgcHJpbnQtcGxhbiBydW4tc3RhdGUtbWFjaGluZSBnZXQtaW4tcGxhbiB1cGRhdGUtaW4tcGxhbiBtYXAtPlJlY3VyIG1hcC0+Sm1wIGZpbmlzaGVkPyBVU0VSLVNUQVJULUlEWCBwdXQhIHRha2UhIHZhci1uYW1lIHN0YXRlLW1hY2hpbmUgVkFMVUUtSURYXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLmNvcmUuYXN5bmMuaW1wbC5pb2MtbWFjcm9zfSB7OnZhci1zeW1zIFttdXRleF0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5jb3JlLmFzeW5jLmltcGwubXV0ZXh9IHs6dmFyLXN5bXMgW3JlbW92ZSEgY2xvc2UtYnVmISBjbG9zZSEgSGFuZGxlciBibG9ja2FibGU/IGFjdGl2ZT8gQnVmZmVyIGZ1bGw/IGFkZCEgbG9jay1pZCBleGVjIEV4ZWN1dG9yIGFkZCEqIFJlYWRQb3J0IENoYW5uZWwgY2xvc2VkPyBVbmJsb2NraW5nQnVmZmVyIE1BWC1RVUVVRS1TSVpFIGNvbW1pdCBwdXQhIHRha2UhIFdyaXRlUG9ydF0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5jb3JlLmFzeW5jLmltcGwucHJvdG9jb2xzfSB7OnZhci1zeW1zIFstPlRpbWVvdXRRdWV1ZUVudHJ5IHRpbWVvdXQgdGltZW91dC1kYWVtb24gVElNRU9VVF9SRVNPTFVUSU9OX01TXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLmNvcmUuYXN5bmMuaW1wbC50aW1lcnN9IHs6dmFyLXN5bXMgW2RlZmNhY2hlIGNsZWFyLXNvZnQtY2FjaGUhIG1ha2UtcmVmZXJlbmNlIC0+Rm5DYWNoZSAtPlNvZnRDYWNoZSBzb2Z0LWNhY2hlLWZhY3RvcnkgLT5UVExDYWNoZSBoYXM/IGV2aWN0IG1pc3MgbG9va3VwIGhpdCB0aHJvdWdoIHR0bC1jYWNoZS1mYWN0b3J5IGx1LWNhY2hlLWZhY3RvcnkgLT5MSVJTQ2FjaGUgLT5MUlVDYWNoZSAtPkJhc2ljQ2FjaGUgbGlycy1jYWNoZS1mYWN0b3J5IGJhc2ljLWNhY2hlLWZhY3RvcnkgQ2FjaGVQcm90b2NvbCBzZWVkIGZpZm8tY2FjaGUtZmFjdG9yeSAtPkZJRk9DYWNoZSAtPkxVQ2FjaGUgbHJ1LWNhY2hlLWZhY3RvcnldLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuY29yZS5jYWNoZX0gezp2YXItc3ltcyBbbWVtby10dGwgLT5QbHVnZ2FibGVNZW1vaXphdGlvbiBtZW1vIG1lbW9pemVkPyBsdSBmaWZvIG1lbW8tdW53cmFwIHRocm91Z2gqIG1lbW8tZmlmbyBtZW1vLXN3YXAhIC0+UmV0cnlpbmdEZWxheSBscnUgYnVpbGQtbWVtb2l6ZXIgc25hcHNob3QgdHRsIG1lbW8tbHUgbWVtby1jbGVhciEgbWVtby1scnVdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuY29yZS5tZW1vaXplfSB7OnZhci1zeW1zIFtJS1ZSZWR1Y2UgTmF2aWdhYmxlIG5hdiBEYXRhZmlhYmxlIENvbGxSZWR1Y2UgZGF0YWZ5IGNvbGwtcmVkdWNlIGludGVybmFsLXJlZHVjZSBJbnRlcm5hbFJlZHVjZSBrdi1yZWR1Y2VdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuY29yZS5wcm90b2NvbHN9IHs6dmFyLXN5bXMgW3N0b3Atc2VydmVyIHJlcGwtaW5pdCBzdGFydC1zZXJ2ZXIgc3RhcnQtc2VydmVycyBzdG9wLXNlcnZlcnMgcmVwbC1yZWFkICpzZXNzaW9uKiBpby1wcmVwbCBwcmVwbCByZXBsIHJlbW90ZS1wcmVwbF0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5jb3JlLnNlcnZlcn0gezp2YXItc3ltcyBbZXZlbi1udW1iZXItb2YtZm9ybXM/XSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLmNvcmUuc3BlY3MuYWxwaGF9IHs6dmFyLXN5bXMgW3BhZC1sZW5ndGggZW5jb2RlIGRlY29kZSEgZGVjLWxlbmd0aCBkZWNvZGUgZW5jLWxlbmd0aCBlbmNvZGUhIGVuY29kaW5nLXRyYW5zZmVyIGRlY29kaW5nLXRyYW5zZmVyXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLmRhdGEuY29kZWMuYmFzZTY0fSB7OnZhci1zeW1zIFstPlBlcnNpc3RlbnRQcmlvcml0eU1hcCBwcmlvcml0eS1tYXAtYnkgYXBwbHkta2V5Zm4gcHJpb3JpdHktbWFwLWtleWZuIHByaW9yaXR5LW1hcC1rZXlmbi1ieSBwcmlvcml0eS1tYXBdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuZGF0YS5wcmlvcml0eS1tYXB9IHs6dmFyLXN5bXMgW25hdiBkYXRhZnldLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuZGF0YWZ5fSB7OnZhci1zeW1zIFtyZWFkIHJlYWQtc3RyaW5nXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLmVkbn0gezp2YXItc3ltcyBbdmFsaWRhdGVkIHJlYWQtaW5zdGFudC10aW1lc3RhbXAgcmVhZC1pbnN0YW50LWNhbGVuZGFyIHJlYWQtaW5zdGFudC1kYXRlIHBhcnNlLXRpbWVzdGFtcF0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5pbnN0YW50fSB7OnZhci1zeW1zIFtkZWZhdWx0LXN0cmVhbXMtaW1wbCBtYWtlLW91dHB1dC1zdHJlYW0gbWFrZS1wYXJlbnRzIGRlbGV0ZS1maWxlIGlucHV0LXN0cmVhbSBtYWtlLXdyaXRlciBhcy1yZWxhdGl2ZS1wYXRoIGNvcHkgYXMtZmlsZSBvdXRwdXQtc3RyZWFtIG1ha2UtcmVhZGVyIENvZXJjaW9ucyBmaWxlIG1ha2UtaW5wdXQtc3RyZWFtIElPRmFjdG9yeSByZXNvdXJjZSB3cml0ZXIgYXMtdXJsIHJlYWRlcl0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5qYXZhLmlvfSB7OnZhci1zeW1zIFttYWluIHdpdGgtYmluZGluZ3Mgc3RhY2stZWxlbWVudC1zdHIgcmVwbC1jYXVnaHQgcmVwbC1leGNlcHRpb24gZXJyLT5tc2cgcmVwbC1yZWFkIGxvYWQtc2NyaXB0IHNraXAtaWYtZW9sIHNraXAtd2hpdGVzcGFjZSByZXBvcnQtZXJyb3Igcm9vdC1jYXVzZSByZXBsLXJlcXVpcmVzIGRlbXVuZ2Ugd2l0aC1yZWFkLWtub3duIGV4LXN0ciByZW51bWJlcmluZy1yZWFkIHJlcGwgcmVwbC1wcm9tcHQgZXgtdHJpYWdlXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLm1haW59IHs6dmFyLXN5bXMgW3BwcmludCBzaW1wbGUtZGlzcGF0Y2ggZ2V0LXByZXR0eS13cml0ZXIgKnByaW50LXN1cHByZXNzLW5hbWVzcGFjZXMqICpwcmludC1wcmV0dHkqICpwcmludC1wcHJpbnQtZGlzcGF0Y2gqIHBwcmludC1uZXdsaW5lIGNvZGUtZGlzcGF0Y2ggcHJpbnQtbGVuZ3RoLWxvb3AgcHByaW50LXRhYiBwcHJpbnQtbG9naWNhbC1ibG9jayBwcmludC10YWJsZSBwcCBzZXQtcHByaW50LWRpc3BhdGNoIGZyZXNoLWxpbmUgZm9ybWF0dGVyLW91dCBmb3JtYXR0ZXIgcHByaW50LWluZGVudCAqcHJpbnQtcmFkaXgqIGNsLWZvcm1hdCAqcHJpbnQtbWlzZXItd2lkdGgqIHdyaXRlICpwcmludC1yaWdodC1tYXJnaW4qIHdyaXRlLW91dCB3aXRoLXBwcmludC1kaXNwYXRjaCAqcHJpbnQtYmFzZSpdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUucHByaW50fSB7OnZhci1zeW1zIFstPkZpZWxkIC0+TWV0aG9kIFR5cGVSZWZlcmVuY2UgcmVmbGVjdCBtYXAtPkZpZWxkIG1hcC0+TWV0aG9kIHR5cGVuYW1lIC0+SmF2YVJlZmxlY3RvciAtPkFzbVJlZmxlY3RvciByZXNvbHZlLWNsYXNzIGZsYWctZGVzY3JpcHRvcnMgZG8tcmVmbGVjdCBDbGFzc1Jlc29sdmVyIFJlZmxlY3RvciAtPkNvbnN0cnVjdG9yIG1hcC0+Q29uc3RydWN0b3IgdHlwZS1yZWZsZWN0XSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLnJlZmxlY3R9IHs6dmFyLXN5bXMgW3NvdXJjZS1mbiBkb2Mgc3RhY2stZWxlbWVudC1zdHIgZmluZC1kb2MgZGlyIHBzdCBkaXItZm4gc291cmNlIHNldC1icmVhay1oYW5kbGVyISByb290LWNhdXNlIGRlbXVuZ2UgdGhyZWFkLXN0b3BwZXIgYXByb3Bvc10sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5yZXBsfSB7OnZhci1zeW1zIFt1bmlvbiBtYXAtaW52ZXJ0IGpvaW4gc2VsZWN0IGludGVyc2VjdGlvbiBzdXBlcnNldD8gaW5kZXggc3Vic2V0PyByZW5hbWUgcmVuYW1lLWtleXMgcHJvamVjdCBkaWZmZXJlbmNlXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLnNldH0gezp2YXItc3ltcyBbZm9ybSAmIG5pbGFibGUtaW1wbCAqcmVjdXJzaW9uLWxpbWl0KiAqY29sbC1lcnJvci1saW1pdCogZnNwZWMgZXhwbGFpbi1wcmludGVyIFNwZWNpemUgZXZlcnkga2V5cyogYWx0LWltcGwgZGVmLWltcGwgKmV4cGxhaW4tb3V0KiByZWdleC1zcGVjLWltcGwgbWVyZ2Utc3BlYy1pbXBsIGV4cGxhaW4tZGF0YSogY2hlY2stYXNzZXJ0cyBhc3NlcnQqIGluc3QtaW4tcmFuZ2U/IG5pbGFibGUgYW5kLXNwZWMtaW1wbCBkZXNjcmliZSogbWFwLXNwZWMtaW1wbCBjb2xsLW9mIGNhdCAqIGV4cGxhaW4gd2l0aC1nZW4qIG9yLXNwZWMtaW1wbCAqZnNwZWMtaXRlcmF0aW9ucyogU3BlYyB1bmZvcm0gdmFsaWQ/IGdlbiBldmVyeS1rdiBpbnQtaW4gYWx0IG5vbmNvbmZvcm1pbmcgdW5mb3JtKiBhYmJyZXYgcmVnZXg/IGludC1pbi1yYW5nZT8gb3Igc3BlYz8gcmVnaXN0cnkgcmVwK2ltcGwgZXhlcmNpc2UtZm4gZXhlcmNpc2UgbXVsdGktc3BlYyBleHBsYWluLWRhdGEgdHVwbGUtaW1wbCBtdWx0aS1zcGVjLWltcGwgdHVwbGUgY29uZm9ybSBnZW4qIGZzcGVjLWltcGwgYXNzZXJ0ID8gKmNvbGwtY2hlY2stbGltaXQqIG1lcmdlIGdldC1zcGVjIGNvbmZvcm1lciBldmVyeS1pbXBsIHNwZWMga2V5cyBzcGVjLWltcGwgKyBpbnZhbGlkPyBhbXAtaW1wbCBtYXAtb2YgY2F0LWltcGwgZXhwbGFpbi1zdHIgKmNvbXBpbGUtYXNzZXJ0cyogd2l0aC1nZW4gY29uZm9ybSogY2hlY2stYXNzZXJ0cz8gcmVwLWltcGwgZG91YmxlLWluIGluc3QtaW4gZGVzY3JpYmUgZXhwbGFpbi1vdXQgYW5kIHNwZWNpemUqIGRlZiBtYXliZS1pbXBsIGV4cGxhaW4qIGZkZWZdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuc3BlYy5hbHBoYX0gezp2YXItc3ltcyBbdXVpZCBnZW4tZm9yLXByZWQgbGF6eS1wcmltIHNldCBvbmUtb2YgYW55LXByaW50YWJsZSB2ZWN0b3ItZGlzdGluY3QgYm9vbGVhbiBzdHJpbmctYWxwaGFudW1lcmljIG1hcCBkZWxheSBzaW1wbGUtdHlwZSBjaGFyIGJpbmQgc3ltYm9sLW5zIGFueSBzaHVmZmxlIGxhenktcHJpbXMgY2F0IGRvdWJsZSBjaGFyLWFscGhhIGludCByZXR1cm4gZ2VuLWZvci1uYW1lIHN5bWJvbCBxdWljay1jaGVjayBjaGFyLWFscGhhbnVtZXJpYyBjaG9vc2UgZm9yLWFsbCogc3RyaW5nLWFzY2lpIGZyZXF1ZW5jeSBkb3VibGUqIGdlbmVyYXRlIGRlbGF5LWltcGwgbGF6eS1jb21iaW5hdG9ycyB0dXBsZSBzdHJpbmcgdmVjdG9yIGxhcmdlLWludGVnZXIga2V5d29yZC1ucyBub3QtZW1wdHkgZWxlbWVudHMgc2FtcGxlIGxpc3QgbGFyZ2UtaW50ZWdlcioga2V5d29yZCBoYXNoLW1hcCByYXRpbyBzdWNoLXRoYXQgZm1hcCBjaGFyLWFzY2lpIHNpbXBsZS10eXBlLXByaW50YWJsZSBsYXp5LWNvbWJpbmF0b3IgYnl0ZXNdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUuc3BlYy5nZW4uYWxwaGF9IHs6dmFyLXN5bXMgW2VuZHMtd2l0aD8gY2FwaXRhbGl6ZSByZXZlcnNlIGpvaW4gcmVwbGFjZS1maXJzdCBzdGFydHMtd2l0aD8gZXNjYXBlIGxhc3QtaW5kZXgtb2YgcmUtcXVvdGUtcmVwbGFjZW1lbnQgaW5jbHVkZXM/IHJlcGxhY2Ugc3BsaXQtbGluZXMgbG93ZXItY2FzZSB0cmltLW5ld2xpbmUgdXBwZXItY2FzZSBzcGxpdCB0cmltciBpbmRleC1vZiB0cmltIHRyaW1sIGJsYW5rP10sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS5zdHJpbmd9IHs6dmFyLXN5bXMgW21hY3JvZXhwYW5kIHZhbGlkLWJpbmRpbmctc3ltYm9sPyBhbmFseXplLWxldCBhbmFseXplLW1hcCBwYXJzZS1kZWYgcGFyc2UtcXVvdGUgcGFyc2UtbmV3IGFuYWx5emUtZm4tbWV0aG9kIHBhcnNlLWludm9rZSBhbmFseXplIHBhcnNlLWRvdCBwYXJzZS1kbyBhbmFseXplLWNvbnN0IHBhcnNlLWxvb3AqIGFuYWx5emUtdmVjdG9yIHZhcj8gcGFyc2UtaWYgLWFuYWx5emUtZm9ybSBjcmVhdGUtdmFyIHBhcnNlLXRyeSBhbmFseXplLXN5bWJvbCBtYWNyb2V4cGFuZC0xIGFuYWx5emUtYm9keSBwYXJzZS1sZXRmbiogcGFyc2UtY2F0Y2ggYW5hbHl6ZS1zZXEgcGFyc2UtcmVjdXIgZW1wdHktZW52IGFuYWx5emUtaW4tZW52IHBhcnNlLWZuKiB2YWxpZGF0ZS1iaW5kaW5ncyBwYXJzZS1sZXQqIHBhcnNlLXRocm93IGFuYWx5emUtc2V0IC1wYXJzZSBwYXJzZSB3cmFwcGluZy1tZXRhIHBhcnNlLXNldCEgc3BlY2lhbHMgYW5hbHl6ZS1mb3JtIHBhcnNlLXZhcl0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplcn0gezp2YXItc3ltcyBbdXBkYXRlLWNoaWxkcmVuIHBvc3R3YWxrIGNoaWxkcmVuIHdhbGsgcHJld2FsayBjaGlsZHJlbiogY3ljbGluZyBhc3QtPmVhdiB1cGRhdGUtY2hpbGRyZW4tcmVkdWNlZCBub2Rlc10sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5hc3R9IHs6dmFyLXN5bXMgW2Vuc3VyZSBkZXJlZi1lbnYgKmVudiogd2l0aC1lbnZdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIuZW52fSB7OnZhci1zeW1zIFthbmFseXplLW5zIHBhcnNlLWNhc2UqIGdsb2JhbC1lbnYgYW5hbHl6ZSBxdWFsaWZ5LWFyZ2xpc3RzIHBhcnNlLXJlaWZ5KiBhbmFseXplK2V2YWwgYW5hbHl6ZS1tZXRob2QtaW1wbHMgZGVzdWdhci1zeW1ib2wgY3JlYXRlLXZhciBydW4tcGFzc2VzIHBhcnNlLW1vbml0b3ItZW50ZXIgcGFyc2UtaW1wb3J0KiBidWlsZC1ucy1tYXAgbWFjcm9leHBhbmQtMSBkZXN1Z2FyLWhvc3QtZXhwciBwYXJzZS1kZWZ0eXBlKiBwYXJzZS1vcHRzK21ldGhvZHMgLWRlZnR5cGUgZGVmYXVsdC1wYXNzZXMgZW1wdHktZW52IHVwZGF0ZS1ucy1tYXAhIG1hY3JvZXhwYW5kLWFsbCBzY2hlZHVsZWQtZGVmYXVsdC1wYXNzZXMgcGFyc2UgZGVmYXVsdC1wYXNzZXMtb3B0cyBwYXJzZS1tb25pdG9yLWV4aXQgc3BlY2lhbHMgLT5FeGNlcHRpb25UaHJvd25dLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIuanZtfSB7OnZhci1zeW1zIFt1bmJveCBzdGF0aWMtbWV0aG9kcyBtZW1iZXJzIHNwZWNpYWwtYXJyYXlzIHN0YXRpYy1maWVsZCBwcmltaXRpdmU/IGluc3RhbmNlLW1ldGhvZHMgbnVtZXJpYz8gaW5zdGFuY2UtbWV0aG9kIHN0YXRpYy1tZW1iZXJzIHdpZGVyLXRhZyBzdGF0aWMtbWV0aG9kIHdpZGVyLXByaW1pdGl2ZSBwcmltLW9yLW9iaiBucy0+cmVscGF0aCB0cnktYmVzdC1tYXRjaCBtYXliZS1jbGFzcyBpbnN0YW5jZS1tZW1iZXJzIG1heWJlLWNsYXNzLWZyb20tc3RyaW5nIGJveCBhcnJheS1jbGFzcyBucy11cmwgbWVtYmVycyogc3Vic3VtZXM/IHdpZGVyLXRhZyogbmFtZS1tYXRjaGVzPyBjb252ZXJ0aWJsZT8gaW5zdGFuY2UtZmllbGQgcHJpbS1pbnRlcmZhY2UgaW5saW5lPyB0YWctbWF0Y2g/IG1heWJlLWNsYXNzLWxpdGVyYWwgc3BlY2lhbHMgbWFjcm8/IHdpZGVyLXRoYW4gb2JqZWN0LW1lbWJlcnNdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIuanZtLnV0aWxzfSB7OnZhci1zeW1zIFtzY2hlZHVsZS1wYXNzZXMgc2F0aXNmaWVzLWFmZmVjdGVkPyBzY2hlZHVsZSBncm91cCBjb21waWxlLXBhc3NlcyBzY2hlZHVsZSogY2FsY3VsYXRlLWRlcHMgZGVzdWdhci1kZXBzIG1heWJlLWxvb3BpbmctcGFzcyBjb2xsYXBzZV0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXN9IHs6dmFyLXN5bXMgW2FkZC1iaW5kaW5nLWF0b21dLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLmFkZC1iaW5kaW5nLWF0b219IHs6dmFyLXN5bXMgW2NsZWFudXBdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLmNsZWFudXB9IHs6dmFyLXN5bXMgW2NvbnN0YW50LWxpZnRdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLmNvbnN0YW50LWxpZnRlcn0gezp2YXItc3ltcyBbZWxpZGVzIGVsaWRlLW1ldGEgcmVwbGFjZS1tZXRhIGdldC1lbGlkZXMgLWVsaWRlLW1ldGFdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLmVsaWRlLW1ldGF9IHs6dmFyLXN5bXMgW2VtaXQtYmluZGluZ3MgLWVtaXQtZm9ybSBlbWl0LWZvcm0gLWVtaXQtZm9ybSogZW1pdC1oeWdpZW5pYy1mb3JtXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLnRvb2xzLmFuYWx5emVyLnBhc3Nlcy5lbWl0LWZvcm19IHs6dmFyLXN5bXMgWy1hbmFseXplLWhvc3QtZXhwciBhbmFseXplLWhvc3QtZXhwciBtYXliZS1zdGF0aWMtZmllbGQgbWF5YmUtaW5zdGFuY2UtbWV0aG9kIGFuYWx5emUtaG9zdC1jYWxsIG1heWJlLWluc3RhbmNlLWZpZWxkIGFuYWx5emUtaG9zdC1maWVsZCBtYXliZS1zdGF0aWMtbWV0aG9kXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLnRvb2xzLmFuYWx5emVyLnBhc3Nlcy5qdm0uYW5hbHl6ZS1ob3N0LWV4cHJ9IHs6dmFyLXN5bXMgW2Fubm90YXRlLWhvc3QtaW5mb10sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuanZtLmFubm90YXRlLWhvc3QtaW5mb30gezp2YXItc3ltcyBbYW5ub3RhdGUtbG9vcHMgY2hlY2stcmVjdXIgLWNoZWNrLXJlY3VyIC1sb29wc10sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuanZtLmFubm90YXRlLWxvb3BzfSB7OnZhci1zeW1zIFstYW5ub3RhdGUtdGFnIGFubm90YXRlLXRhZ10sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuanZtLmFubm90YXRlLXRhZ30gezp2YXItc3ltcyBbaWYtbGV0LWJveCBib3hlZD8gLWJveCBib3hdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLmp2bS5ib3h9IHs6dmFyLXN5bXMgW2NsYXNzaWZ5LWludm9rZV0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuanZtLmNsYXNzaWZ5LWludm9rZX0gezp2YXItc3ltcyBbY29uc3RhbnQtbGlmdCBjb25zdGFudC1saWZ0Kl0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuanZtLmNvbnN0YW50LWxpZnRlcn0gezp2YXItc3ltcyBbLWVtaXQtZm9ybSBlbWl0LWZvcm0gLWVtaXQtZm9ybSogY2xhc3MtPnN0ciBlbWl0LWh5Z2llbmljLWZvcm0gY2xhc3MtPnN5bV0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuanZtLmVtaXQtZm9ybX0gezp2YXItc3ltcyBbZml4LWNhc2UtdGVzdF0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuanZtLmZpeC1jYXNlLXRlc3R9IHs6dmFyLXN5bXMgWy1pbmZlci10YWcgaW5mZXItdGFnID0tYXJnbGlzdHM/XSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLnRvb2xzLmFuYWx5emVyLnBhc3Nlcy5qdm0uaW5mZXItdGFnfSB7OnZhci1zeW1zIFt2YWxpZGF0ZS10YWcgdmFsaWRhdGUtY2FsbCB2YWxpZGF0ZSB2YWxpZGF0ZS1pbnRlcmZhY2VzIC12YWxpZGF0ZV0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuanZtLnZhbGlkYXRlfSB7OnZhci1zeW1zIFtmaW5kLW1pc21hdGNoZXMgZGlydHkgLXZhbGlkYXRlLWxvb3AtbG9jYWxzIHZhbGlkYXRlLWxvb3AtbG9jYWxzIC12YWxpZGF0ZS1sb29wLWxvY2FscyogLWNsZWFudXAtZGlydHktbm9kZXNdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLmp2bS52YWxpZGF0ZS1sb29wLWxvY2Fsc30gezp2YXItc3ltcyBbdmFsaWRhdGUtcmVjdXJdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLmp2bS52YWxpZGF0ZS1yZWN1cn0gezp2YXItc3ltcyBbd2Fybi1vbi1yZWZsZWN0aW9uIHdhcm5dLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLmp2bS53YXJuLW9uLXJlZmxlY3Rpb259IHs6dmFyLXN5bXMgWy1tZXJnZS1zb3VyY2UtaW5mbyBzb3VyY2UtaW5mb10sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5hbmFseXplci5wYXNzZXMuc291cmNlLWluZm99IHs6dmFyLXN5bXMgW3ByZXNlcnZpbmctcmF3LWZvcm1zIHRyaW0gLXRyaW1dLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIucGFzc2VzLnRyaW19IHs6dmFyLXN5bXMgW25vcm1hbGl6ZSB1bmlxdWlmeS1sb2NhbHMqIC11bmlxdWlmeS1sb2NhbHMgKmxvY2Fscy1mcmFtZSogdW5pcXVpZnktYmluZGluZyAqbG9jYWxzLWNvdW50ZXIqIHVuaXF1aWZ5LWxvY2Fscy1hcm91bmQgdW5pcXVpZnktbG9jYWxzIHVuaXF1aWZ5XSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLnRvb2xzLmFuYWx5emVyLnBhc3Nlcy51bmlxdWlmeX0gezp2YXItc3ltcyBbd2Fybi1lYXJtdWZmXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLnRvb2xzLmFuYWx5emVyLnBhc3Nlcy53YXJuLWVhcm11ZmZ9IHs6dmFyLXN5bXMgW3R5cGU/IGN0eCBib29sZWFuPyBtYXB2JyByc2VxdiBwcm90b2NvbC1ub2RlPyBzZWxlY3Qta2V5cycgLXNvdXJjZS1pbmZvIGNsYXNzaWZ5IHJlZmVyZW5jZT8gdXBkYXRlLXZhbHMgcmVzb2x2ZS1zeW0gcHJpdmF0ZT8gY29uc3RhbnQ/IHJlZ2V4PyBkeW5hbWljPyBjb21waWxlLWlmIGludG8hIGNvbnN0LXZhbCBkaXNzb2MtZW52IHVwZGF0ZS1rdiByZWNvcmQ/IGJ1dGxhc3QrbGFzdCBvYmo/IHNvdXJjZS1pbmZvIG1tZXJnZSByZXNvbHZlLW5zIHVwZGF0ZS1rZXlzIGFyZ2xpc3QtZm9yLWFyaXR5IG1hY3JvPyBtZXJnZSddLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMuYW5hbHl6ZXIudXRpbHN9IHs6dmFyLXN5bXMgW2NsaSBwYXJzZS1vcHRzIHN1bW1hcml6ZSBnZXQtZGVmYXVsdC1vcHRpb25zIGZvcm1hdC1saW5lcyBtYWtlLXN1bW1hcnktcGFydF0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5jbGl9IHs6dmFyLXN5bXMgWypyZWFkLWV2YWwqICpzdXBwcmVzcy1yZWFkKiAqZGVmYXVsdC1kYXRhLXJlYWRlci1mbiogcmVhZCByZWFkLXN5bWJvbCBkZWZhdWx0LWRhdGEtcmVhZGVycyAqZGF0YS1yZWFkZXJzKiAqcmVhZC1kZWxpbSogcmVzb2x2ZS1zeW1ib2wgKmFsaWFzLW1hcCogcmVhZC1yZWdleCBzeW50YXgtcXVvdGUgcmVhZC1zdHJpbmcgbWFwLWZ1bmNdLCA6dHlwZSA6Y2xqLCA6c3ltIGNsb2p1cmUudG9vbHMucmVhZGVyfSB7OnZhci1zeW1zIFtkZWZhdWx0LXV1aWQtcmVhZGVyIHZhbGlkYXRlZCBjbG9qdXJlLnRvb2xzLnJlYWRlci5kZWZhdWx0X2RhdGFfcmVhZGVycy5wcm94eSRqYXZhLmxhbmcuVGhyZWFkTG9jYWwkZmYxOTI3NGEgcmVhZC1pbnN0YW50LXRpbWVzdGFtcCByZWFkLWluc3RhbnQtY2FsZW5kYXIgcmVhZC1pbnN0YW50LWRhdGUgcGFyc2UtdGltZXN0YW1wXSwgOnR5cGUgOmNsaiwgOnN5bSBjbG9qdXJlLnRvb2xzLnJlYWRlci5kZWZhdWx0LWRhdGEtcmVhZGVyc30gezp2YXItc3ltcyBbbWF0Y2gtbnVtYmVyIHNraXAtbGluZSBpbnQtcGF0dGVybiByZWFkLWNvbW1lbnQgcGFyc2Utc3ltYm9sIG51bWJlci1saXRlcmFsPyByZWFkLXBhc3QgZmxvYXQtcGF0dGVybiB0aHJvd2luZy1yZWFkZXIgcmF0aW8tcGF0dGVybl0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5yZWFkZXIuaW1wbC5jb21tb25zfSB7OnZhci1zeW1zIFt3aGl0ZXNwYWNlPyBjaGFyIG51bWVyaWM/IG1ha2UtdmFyIHNlY29uZCcgZGVzdWdhci1tZXRhIDw9Y2xvanVyZS0xLTctYWxwaGE1IGV4LWluZm8/IG5ld2xpbmU/IG5hbWVzcGFjZS1rZXlzIGNvbXBpbGUtd2hlbl0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5yZWFkZXIuaW1wbC51dGlsc30gezp2YXItc3ltcyBbUmVhZGVyQ29lcmNlciBpbmRleGluZy1wdXNoLWJhY2stcmVhZGVyIGxvZy1zb3VyY2UqIG1lcmdlLW1ldGEgLT5TdHJpbmdSZWFkZXIgdG8tcGJyIHRvLXJkciByZWFkZXItZXJyb3IgUmVhZGVyIHNvdXJjZS1sb2dnaW5nLXB1c2gtYmFjay1yZWFkZXIgdW5yZWFkIHBlZWstY2hhciBwdXNoLWJhY2stcmVhZGVyIElQdXNoYmFja1JlYWRlciBpbmRleGluZy1yZWFkZXI/IHN0cmluZy1yZWFkZXIgcmVhZC1jaGFyIGdldC1jb2x1bW4tbnVtYmVyIGdldC1maWxlLW5hbWUgcmVhZC1saW5lIC0+UHVzaGJhY2tSZWFkZXIgUHVzaGJhY2tSZWFkZXJDb2VyY2VyIHN0cmluZy1wdXNoLWJhY2stcmVhZGVyIGxvZy1zb3VyY2UgLT5Tb3VyY2VMb2dnaW5nUHVzaGJhY2tSZWFkZXIgLT5JbnB1dFN0cmVhbVJlYWRlciBsaW5lLXN0YXJ0PyBpbnB1dC1zdHJlYW0tcHVzaC1iYWNrLXJlYWRlciBzb3VyY2UtbG9nZ2luZy1yZWFkZXI/IEluZGV4aW5nUmVhZGVyIGdldC1saW5lLW51bWJlciBpbnB1dC1zdHJlYW0tcmVhZGVyIC0+SW5kZXhpbmdQdXNoYmFja1JlYWRlcl0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS50b29scy5yZWFkZXIucmVhZGVyLXR5cGVzfSB7OnZhci1zeW1zIFtwb3N0d2FsayBrZXl3b3JkaXplLWtleXMgd2FsayBwcmV3YWxrLXJlcGxhY2Ugc3RyaW5naWZ5LWtleXMgcHJld2FsayBwb3N0d2Fsay1kZW1vIHByZXdhbGstZGVtbyBtYWNyb2V4cGFuZC1hbGwgcG9zdHdhbGstcmVwbGFjZV0sIDp0eXBlIDpjbGosIDpzeW0gY2xvanVyZS53YWxrfSB7OnZhci1zeW1zIFtjaGFuIDwhISBwdXQhXSwgOnR5cGUgOmNsaiwgOnN5bSBkeW5hZG9jLmFsaWFzZXN9IHs6dmFyLXN5bXMgW3Zhci1zeW0tPnVybCBzcGVjLT5odG1sIGV4YW1wbGUtPmh0bWwgaW5pdC1lZGl0b3IgZXhwYW5kYWJsZS1zZWN0aW9uIG5zLXN5bS0+dXJsIHNpZGViYXIgdmFyLT5odG1sIGV4cG9ydC1mb3JtIGV4cG9ydCBzb3VyY2UtPmh0bWwgYXBwIGluaXQtZXhhbXBsZS1lZGl0b3JdLCA6dHlwZSA6Y2xqLCA6c3ltIGR5bmFkb2MuY29tbW9ufSB7OnZhci1zeW1zIFtwcmludC1zZXJ2ZXIgaGFuZGxlciBwYWdlLXN0YXRlIGRlZHVwZS1uc2VzIGdldC1jbGotdmFycyBkZXYtc3RhcnQgZ2V0LWNsanMtbnNlcy1hbmQtdmFycy1keW5hbWljYWxseSAtbWFpbiBnZXQtY2xqLW5zZXMgZ2V0LWV4YW1wbGVzIHZhci1tYXAtPnZhcnMgZ2V0LWNsanMtbnNlcy1hbmQtdmFycyBzdGFydCAqb3B0aW9ucyBwdWJsaWMtZmlsZXMgZ2V0LWNsanMtdmFycyBwYWdlIGV4cG9ydCAqd2ViLXNlcnZlciBnZXQtY2xqcy1uc2VzIGdldC1jbGotdmFyLWluZm9dLCA6dHlwZSA6Y2xqLCA6c3ltIGR5bmFkb2MuY29yZX0gezp2YXItc3ltcyBbZGVmZXhhbXBsZSByZWdpc3RyeS1yZWYgcGFyc2UtZXhhbXBsZSBkZWZleGFtcGxlcyBwYXJzZS12YWwgcGFyc2UtbnMgZGVmZXhhbXBsZSogcGFyc2Uta2V5cyBkZWZleGFtcGxlcypdLCA6dHlwZSA6Y2xqLCA6c3ltIGR5bmFkb2MuZXhhbXBsZX0gezp2YXItc3ltcyBbcmVhZC1jbGpzLWZpbGUgdmlzaWJsZT8gZ2V0LWNsanMtYXJnbGlzdHMgZ2V0LWNsanMtbnNlcy1hbmQtdmFyc10sIDp0eXBlIDpjbGosIDpzeW0gZHluYWRvYy5zdGF0aWN9IHs6dmFyLXN5bXMgW2Zvcm0tPnNlcmlhbGl6YWJsZSBwYXJzZS11cmkgZmxhdHRlbi12YWxzIGNsaS1vcHRpb25zIHByb2Nlc3MtZXhhbXBsZV0sIDp0eXBlIDpjbGosIDpzeW0gZHluYWRvYy51dGlsc30gezp2YXItc3ltcyBbKmNsanMtaW5mbyB3YXRjaC1yZXF1ZXN0ICpjaGFubmVsLT51cmkgaW5pdC13YXRjaGVyIV0sIDp0eXBlIDpjbGosIDpzeW0gZHluYWRvYy53YXRjaH0gezp2YXItc3ltcyBbdGh1bmstdGltZW91dCB1Z2xpZnktdGltZS11bml0XSwgOnR5cGUgOmNsaiwgOnN5bSBldmFsLXNvdXAuY2xvamFpbH0gezp2YXItc3ltcyBbd3JhcC1zZWN1cml0eSBjb2RlLT5yZXN1bHRzIHdyYXAtdGltZW91dCBldmFsX3NvdXAuY29yZS5wcm94eSRqYXZhLmxhbmcuU2VjdXJpdHlNYW5hZ2VyJGZmMTkyNzRhIHdpdGgtc2VjdXJpdHldLCA6dHlwZSA6Y2xqLCA6c3ltIGV2YWwtc291cC5jb3JlfSB7OnZhci1zeW1zIFtwcm9jZXNzLWhhbmRsZXIgcHJvY2Vzcy1wYXRocyBleHRyYWN0LXBhdGhzLWJ5LXR5cGUgY3JlYXRlZD8gd2F0Y2ghIHN0b3AhIGRlbGV0ZWQ/IHJlbW92ZS1kdXBsaWNhdGUtcGF0aHMgZmlsZT8gcmVtb3ZlLWNoaWxkcmVuLXBhdGhzIHByb2Nlc3MtY29udGV4dCBkaXJlY3Rvcnk/IG1vZGlmaWVkPyBjYXRjaC1lcnJvcnNdLCA6dHlwZSA6Y2xqLCA6c3ltIGhhd2suY29yZX0gezp2YXItc3ltcyBbc3RhbmRhcmQtd2F0Y2gtZXZlbnQta2luZHMgcG9sbGluZy13YXRjaGVyLWltcGwgYmFyYmFyeS13YXRjaC1ldmVudC1raW5kcyBzdG9wISBuZXctd2F0Y2hlciBiYXJiYXJ5LXdhdGNoZXItaW1wbCBzZW5zaXRpdml0eS13YXRjaC1ldmVudC1tb2RpZmllcnMgV2F0Y2hlciBqYXZhLXdhdGNoZXItaW1wbCB0YWtlISByZWdpc3RlciFdLCA6dHlwZSA6Y2xqLCA6c3ltIGhhd2sud2F0Y2hlcn0gezp2YXItc3ltcyBbbGluZS0+c2VnbWVudHMgdGFnLT5oaWNjdXAgbGluZS0+aHRtbCBjb2RlLT5oaWNjdXAgc3BsaXQtbGluZXMgY29kZS0+aHRtbCBsaW5lLT5oaWNjdXAgdGFncy1mb3ItbGluZS0+aGljY3VwIHRhZy0+aHRtbCBlc2NhcGUtaHRtbC1zdHIgdGFncy1mb3ItbGluZS0+aHRtbCBzdHJ1Y3R1cml6ZS1oaWNjdXAgZXNjYXBlLWh0bWwtY2hhciBwYXJzZS1saW5lc10sIDp0eXBlIDpjbGosIDpzeW0gaHRtbC1zb3VwLmNvcmV9IHs6dmFyLXN5bXMgW2F1dG8tZXZlbnRzIG1vZGVzXSwgOnR5cGUgOmNsaiwgOnN5bSBsaWJ2aW0tY2xqLmNvbnN0YW50c30gezp2YXItc3ltcyBbaW5wdXQgZ2V0LXNlYXJjaC1oaWdobGlnaHRzIG9wZW4tYnVmZmVyIHNldC10YWItc2l6ZSBnZXQtY29tbWFuZC1wb3NpdGlvbiBnZXQtbGluZS1jb3VudCBzZXQtb24tc3RvcC1zZWFyY2gtaGlnaGxpZ2h0IHNldC1jdXJyZW50LWJ1ZmZlciBnZXQtY3VycmVudC1idWZmZXIgZ2V0LWN1cnNvci1saW5lIHNldC13aW5kb3ctaGVpZ2h0IElWaW0gc2V0LW9uLXF1aXQgc2V0LWN1cnNvci1wb3NpdGlvbiAtPnZpbSBnZXQtc2VhcmNoLXBhdHRlcm4gc2V0LXdpbmRvdy13aWR0aCBnZXQtY29tbWFuZC1jb21wbGV0aW9uIGluaXQgZ2V0LXZpc3VhbC10eXBlIGlucHV0LXVuaWNvZGUgZ2V0LXdpbmRvdy1oZWlnaHQgZ2V0LW1vZGUgZXhlY3V0ZSBnZXQtbGluZSBnZXQtY3Vyc29yLWNvbHVtbiBzZXQtb24teWFuayBnZXQtZmlsZS1uYW1lIHNldC1vbi11bmhhbmRsZWQtZXNjYXBlIGdldC1jb21tYW5kLXRleHQgc2V0LW9uLW1lc3NhZ2UgdmlzdWFsLWFjdGl2ZT8gZ2V0LXdpbmRvdy10b3AtbGluZSBnZXQtd2luZG93LWxlZnQtY29sdW1uIHNlbGVjdC1hY3RpdmU/IHNldC13aW5kb3ctdG9wLWxlZnQgc2V0LW9uLWJ1ZmZlci11cGRhdGUgZ2V0LXRhYi1zaXplIGdldC13aW5kb3ctd2lkdGggZ2V0LXZpc3VhbC1yYW5nZSBzZXQtb24tYXV0by1jb21tYW5kXSwgOnR5cGUgOmNsaiwgOnN5bSBsaWJ2aW0tY2xqLmNvcmV9IHs6dmFyLXN5bXMgW3JlYWQrc3RyaW5nICpyZWFkLWV2YWwqICpzdXBwcmVzcy1yZWFkKiAqZGVmYXVsdC1kYXRhLXJlYWRlci1mbiogcmVhZCByZWFkLXN5bWJvbCBkZWZhdWx0LWRhdGEtcmVhZGVycyAqZGF0YS1yZWFkZXJzKiAqcmVhZC1kZWxpbSogcmVzb2x2ZS1zeW1ib2wgKmFsaWFzLW1hcCogKndyYXAtdmFsdWUtYW5kLWFkZC1tZXRhZGF0YT8qIHJlYWQtcmVnZXggc3ludGF4LXF1b3RlIHJlYWQtc3RyaW5nIG1hcC1mdW5jXSwgOnR5cGUgOmNsaiwgOnN5bSBvYWtjbG9qdXJlLnRvb2xzLnJlYWRlcn0gezp2YXItc3ltcyBbZGVmYXVsdC11dWlkLXJlYWRlciB2YWxpZGF0ZWQgb2FrY2xvanVyZS50b29scy5yZWFkZXIuZGVmYXVsdF9kYXRhX3JlYWRlcnMucHJveHkkamF2YS5sYW5nLlRocmVhZExvY2FsJGZmMTkyNzRhIHJlYWQtaW5zdGFudC10aW1lc3RhbXAgcmVhZC1pbnN0YW50LWNhbGVuZGFyIHJlYWQtaW5zdGFudC1kYXRlIHBhcnNlLXRpbWVzdGFtcF0sIDp0eXBlIDpjbGosIDpzeW0gb2FrY2xvanVyZS50b29scy5yZWFkZXIuZGVmYXVsdC1kYXRhLXJlYWRlcnN9IHs6dmFyLXN5bXMgW21hdGNoLW51bWJlciBza2lwLWxpbmUgaW50LXBhdHRlcm4gcmVhZC1jb21tZW50IHBhcnNlLXN5bWJvbCBudW1iZXItbGl0ZXJhbD8gcmVhZC1wYXN0IGZsb2F0LXBhdHRlcm4gdGhyb3dpbmctcmVhZGVyIHJhdGlvLXBhdHRlcm5dLCA6dHlwZSA6Y2xqLCA6c3ltIG9ha2Nsb2p1cmUudG9vbHMucmVhZGVyLmltcGwuY29tbW9uc30gezp2YXItc3ltcyBbdGhyb3ctYmFkLWRpc3BhdGNoIHRocm93LWludmFsaWQtdW5pY29kZS1lc2NhcGUgdGhyb3ctYmFkLW5zIHRocm93LXVua25vd24tcmVhZGVyLXRhZyB0aHJvdy1lb2YtYXQtZGlzcGF0Y2ggdGhyb3ctYmFkLW1ldGFkYXRhLXRhcmdldCB0aHJvdy1pbnZhbGlkLW51bWJlciByZWFkZXItZXJyb3IgdGhyb3ctaW52YWxpZC11bmljb2RlLWxpdGVyYWwgdGhyb3ctbnMtbWFwLW5vLW1hcCB0aHJvdy11bnN1cHBvcnRlZC1jaGFyYWN0ZXIgdGhyb3ctZmVhdHVyZS1ub3Qta2V5d29yZCB0aHJvdy1lb2YtZGVsaW1pdGVkIHRocm93LWVvZi1pbi1jaGFyYWN0ZXIgdGhyb3ctYmFkLWNoYXIgZW9mLWVycm9yIHRocm93LWJhZC1tZXRhZGF0YSB0aHJvdy1lb2YtcmVhZGluZyB0aHJvdy1lb2YtZXJyb3IgaWxsZWdhbC1hcmctZXJyb3IgdGhyb3ctaW52YWxpZC1vY3RhbC1sZW4gdGhyb3ctaW52YWxpZC11bmljb2RlLWRpZ2l0IHRocm93LWludmFsaWQtdW5pY29kZS1kaWdpdC1pbi10b2tlbiB0aHJvdy1pbnZhbGlkLXVuaWNvZGUtbGVuIHRocm93LXNpbmdsZS1jb2xvbiB0aHJvdy1vZGQtbWFwIHRocm93LWJhZC1vY3RhbC1udW1iZXIgdGhyb3ctYmFkLXJlYWRlci10YWcgdGhyb3ctdW5tYXRjaC1kZWxpbWl0ZXIgdGhyb3ctaW52YWxpZC1jaGFyYWN0ZXItbGl0ZXJhbCB0aHJvdy1pbnZhbGlkLXVuaWNvZGUtY2hhciB0aHJvdy1iYWQtZXNjYXBlLWNoYXIgdGhyb3ctbm8tZGlzcGF0Y2ggdGhyb3ctZW9mLWF0LXN0YXJ0IHRocm93LWludmFsaWRdLCA6dHlwZSA6Y2xqLCA6c3ltIG9ha2Nsb2p1cmUudG9vbHMucmVhZGVyLmltcGwuZXJyb3JzfSB7OnZhci1zeW1zIFtpbnNwZWN0IGluc3BlY3QqXSwgOnR5cGUgOmNsaiwgOnN5bSBvYWtjbG9qdXJlLnRvb2xzLnJlYWRlci5pbXBsLmluc3BlY3R9IHs6dmFyLXN5bXMgW3doaXRlc3BhY2U/IGNoYXIgbnVtZXJpYz8gbWFrZS12YXIgc2Vjb25kJyBkZXN1Z2FyLW1ldGEgPD1jbG9qdXJlLTEtNy1hbHBoYTUgZXgtaW5mbz8gbmV3bGluZT8gbmFtZXNwYWNlLWtleXMgY29tcGlsZS13aGVuXSwgOnR5cGUgOmNsaiwgOnN5bSBvYWtjbG9qdXJlLnRvb2xzLnJlYWRlci5pbXBsLnV0aWxzfSB7OnZhci1zeW1zIFtSZWFkZXJDb2VyY2VyIGluZGV4aW5nLXB1c2gtYmFjay1yZWFkZXIgbG9nLXNvdXJjZSogbWVyZ2UtbWV0YSAtPlN0cmluZ1JlYWRlciB0by1wYnIgdG8tcmRyIFJlYWRlciBzb3VyY2UtbG9nZ2luZy1wdXNoLWJhY2stcmVhZGVyIHVucmVhZCBwZWVrLWNoYXIgcHVzaC1iYWNrLXJlYWRlciBJUHVzaGJhY2tSZWFkZXIgaW5kZXhpbmctcmVhZGVyPyBzdHJpbmctcmVhZGVyIHJlYWQtY2hhciBnZXQtY29sdW1uLW51bWJlciBnZXQtZmlsZS1uYW1lIHJlYWQtbGluZSAtPlB1c2hiYWNrUmVhZGVyIFB1c2hiYWNrUmVhZGVyQ29lcmNlciBzdHJpbmctcHVzaC1iYWNrLXJlYWRlciBsb2ctc291cmNlIC0+U291cmNlTG9nZ2luZ1B1c2hiYWNrUmVhZGVyIC0+SW5wdXRTdHJlYW1SZWFkZXIgbGluZS1zdGFydD8gaW5wdXQtc3RyZWFtLXB1c2gtYmFjay1yZWFkZXIgc291cmNlLWxvZ2dpbmctcmVhZGVyPyBJbmRleGluZ1JlYWRlciBnZXQtbGluZS1udW1iZXIgaW5wdXQtc3RyZWFtLXJlYWRlciAtPkluZGV4aW5nUHVzaGJhY2tSZWFkZXJdLCA6dHlwZSA6Y2xqLCA6c3ltIG9ha2Nsb2p1cmUudG9vbHMucmVhZGVyLnJlYWRlci10eXBlc30gezp2YXItc3ltcyBbYmFzZTY0LWVuY29kZV0sIDp0eXBlIDpjbGosIDpzeW0gb3JnLmh0dHBraXQuZW5jb2RlfSB7OnZhci1zeW1zIFtvbi1yZWNlaXZlIGFjY2VwdCBydW4tc2VydmVyIHNlbmQhIHNlbmQtd2Vic29ja2V0LWhhbmRzaGFrZSEgb24tY2xvc2Ugb24tcGluZyB3aXRoLWNoYW5uZWwgQ2hhbm5lbCBjbG9zZSBzZWMtd2Vic29ja2V0LWFjY2VwdCB3ZWJzb2NrZXQ/IG9wZW4/XSwgOnR5cGUgOmNsaiwgOnN5bSBvcmcuaHR0cGtpdC5zZXJ2ZXJ9IHs6dmFyLXN5bXMgW3dyYXAtY29udGVudC10eXBlIGNvbnRlbnQtdHlwZS1yZXNwb25zZV0sIDp0eXBlIDpjbGosIDpzeW0gcmluZy5taWRkbGV3YXJlLmNvbnRlbnQtdHlwZX0gezp2YXItc3ltcyBbZmlsZS1yZXF1ZXN0IHdyYXAtZmlsZV0sIDp0eXBlIDpjbGosIDpzeW0gcmluZy5taWRkbGV3YXJlLmZpbGV9IHs6dmFyLXN5bXMgW2hlYWQtcmVxdWVzdCB3cmFwLWhlYWQgaGVhZC1yZXNwb25zZV0sIDp0eXBlIDpjbGosIDpzeW0gcmluZy5taWRkbGV3YXJlLmhlYWR9IHs6dmFyLXN5bXMgW2tleXdvcmQtcGFyYW1zLXJlcXVlc3Qgd3JhcC1rZXl3b3JkLXBhcmFtc10sIDp0eXBlIDpjbGosIDpzeW0gcmluZy5taWRkbGV3YXJlLmtleXdvcmQtcGFyYW1zfSB7OnZhci1zeW1zIFt3cmFwLXBhcmFtcyBwYXJhbXMtcmVxdWVzdCBhc3NvYy1mb3JtLXBhcmFtcyBhc3NvYy1xdWVyeS1wYXJhbXNdLCA6dHlwZSA6Y2xqLCA6c3ltIHJpbmcubWlkZGxld2FyZS5wYXJhbXN9IHs6dmFyLXN5bXMgW3dyYXAtcmVzb3VyY2UgcmVzb3VyY2UtcmVxdWVzdF0sIDp0eXBlIDpjbGosIDpzeW0gcmluZy5taWRkbGV3YXJlLnJlc291cmNlfSB7OnZhci1zeW1zIFtwZXJjZW50LWVuY29kZSB1cmwtZGVjb2RlIGZpeC1zdHJpbmctcmVwbGFjZS1idWcgZm9ybS1lbmNvZGUgZm9ybS1kZWNvZGUtc3RyIGZvcm0tZGVjb2RlIGFzc29jLWNvbmogdXJsLWVuY29kZSBGb3JtRW5jb2RlYWJsZSBmb3JtLWVuY29kZSogYmFzZTY0LWRlY29kZSBwZXJjZW50LWRlY29kZSBiYXNlNjQtZW5jb2RlXSwgOnR5cGUgOmNsaiwgOnN5bSByaW5nLnV0aWwuY29kZWN9IHs6dmFyLXN5bXMgW2xhc3QtbW9kaWZpZWQtZGF0ZSBjbG9zZSEgcGlwZWQtaW5wdXQtc3RyZWFtIHN0cmluZy1pbnB1dC1zdHJlYW1dLCA6dHlwZSA6Y2xqLCA6c3ltIHJpbmcudXRpbC5pb30gezp2YXItc3ltcyBbZXh0LW1pbWUtdHlwZSBkZWZhdWx0LW1pbWUtdHlwZXNdLCA6dHlwZSA6Y2xqLCA6c3ltIHJpbmcudXRpbC5taW1lLXR5cGV9IHs6dmFyLXN5bXMgW3JlLXRva2VuIHJlLXF1b3RlZCByZS1jaGFyc2V0IHJlLXZhbHVlXSwgOnR5cGUgOmNsaiwgOnN5bSByaW5nLnV0aWwucGFyc2luZ30gezp2YXItc3ltcyBbcmVxdWVzdC11cmwgYm9keS1zdHJpbmcgY29udGVudC1sZW5ndGggY29udGVudC10eXBlIHBhdGgtaW5mbyBjaGFyYWN0ZXItZW5jb2RpbmcgdXJsZW5jb2RlZC1mb3JtPyBzZXQtY29udGV4dCBpbi1jb250ZXh0P10sIDp0eXBlIDpjbGosIDpzeW0gcmluZy51dGlsLnJlcXVlc3R9IHs6dmFyLXN5bXMgW2dldC1oZWFkZXIgYmFkLXJlcXVlc3QgcmVkaXJlY3QgcmVkaXJlY3Qtc3RhdHVzLWNvZGVzIHNldC1jb29raWUgcmVzcG9uc2UgZmluZC1oZWFkZXIgZmlsZS1yZXNwb25zZSByZXNvdXJjZS1yZXNwb25zZSBnZXQtY2hhcnNldCBjcmVhdGVkIGhlYWRlciBjaGFyc2V0IHVybC1yZXNwb25zZSByZWRpcmVjdC1hZnRlci1wb3N0IHVwZGF0ZS1oZWFkZXIgcmVzb3VyY2UtZGF0YSBzdGF0dXMgbm90LWZvdW5kIGNvbnRlbnQtdHlwZSByZXNwb25zZT9dLCA6dHlwZSA6Y2xqLCA6c3ltIHJpbmcudXRpbC5yZXNwb25zZX0gezp2YXItc3ltcyBbaHR0cC1kYXRlLWZvcm1hdHMgZm9ybWF0LWRhdGUgcGFyc2UtZGF0ZV0sIDp0eXBlIDpjbGosIDpzeW0gcmluZy51dGlsLnRpbWV9IHs6dmFyLXN5bXMgW21vdW50IHVubW91bnQgbG9jYWwgcmVhY3RpdmUgcmVmLW5vZGUgcmVhY3QgcmVuZGVyLXN0YXRpYy1tYXJrdXAgcmVxdWVzdC1yZW5kZXIgd2l0aC1rZXkgYnVpbGQtZGVmY3MgcmVmIGRlZmMgc3RhdGljIGRlZmNzIGN1cnNvciBzdGF0ZSBjdXJzb3ItaW4gZG9tLW5vZGUgd2l0aC1yZWYgYnVpbGQtZGVmYyByZW5kZXItaHRtbCBidWlsZC1kZWZjYyBkZXJpdmVkLWF0b20gZGVmY2NdLCA6dHlwZSA6Y2xqLCA6c3ltIHJ1bS5jb3JlfSB7OnZhci1zeW1zIFstPkN1cnNvcl0sIDp0eXBlIDpjbGosIDpzeW0gcnVtLmN1cnNvcn0gezp2YXItc3ltcyBbZGVyaXZlZC1hdG9tXSwgOnR5cGUgOmNsaiwgOnN5bSBydW0uZGVyaXZlZC1hdG9tfSB7OnZhci1zeW1zIFtub3JtYWxpemUtY3NzLXZhbHVlIHJlbmRlci1jbGFzcyEgcmVuZGVyLWlubmVyLWh0bWwhICpzZWxlY3QtdmFsdWUqIHJlbmRlci1hdHRycyEgcmVuZGVyLXN0eWxlLWt2ISBub3JtYWxpemUtY3NzLWtleSB1bml0bGVzcy1jc3MtcHJvcHMgcmVuZGVyLXN0YXRpYy1tYXJrdXAgdG8tc3RyIG5vcm1hbGl6ZS1hdHRyLWtleSByZW5kZXItdGV4dGFyZWEtdmFsdWUhIHJlbmRlci1jb250ZW50ISBub3RoaW5nPyBub3JtYWxpemUtZWxlbWVudCByZW5kZXItYXR0ciEgcmVuZGVyLWNsYXNzZXMhIGFwcGVuZCEgZ2V0LXZhbHVlIFRvU3RyaW5nIHBhcnNlLXNlbGVjdG9yIC1yZW5kZXItaHRtbCByZW5kZXItaHRtbCBIdG1sUmVuZGVyZXIgcmVuZGVyLWVsZW1lbnQhIG5vcm1hbGl6ZWQtYXR0cnMgZXNjYXBlLWh0bWwgcmVuZGVyLXN0eWxlIV0sIDp0eXBlIDpjbGosIDpzeW0gcnVtLnNlcnZlci1yZW5kZXJ9IHs6dmFyLXN5bXMgW2NhbGwtYWxsIGNvbGxlY3QgY29sbGVjdCpdLCA6dHlwZSA6Y2xqLCA6c3ltIHJ1bS51dGlsfSB7OnZhci1zeW1zIFtzcGVjaWFsLWluZGVudCBjb2RlLT50YWdzIGluZGVudC1mb3ItbGluZSBhZGp1c3QtaW5kZW50IHJlYWQtc2FmZSB1bndyYXAtdmFsdWUgZ2V0LXRhZ3MtYmVmb3JlLWxpbmUgZm9yd2FyZC1pbmRlbnQtZm9yLWxpbmUgdGFnLW1hcCBiYWNrLWluZGVudC1mb3ItbGluZV0sIDp0eXBlIDpjbGosIDpzeW0gdGFnLXNvdXAuY29yZX1dLCA6aGlkZS1iYWRnZT8gZmFsc2UsIDpjbGpzLW5zZXMtYW5kLXZhcnMge30sIDpyZWwtcGF0aCAiIiwgOmhpZGUtc2lkZWJhcj8gdHJ1ZSwgOnN0YXRpYz8gdHJ1ZSwgOm5zLXN5bSBsaWJ2aW0tY2xqLmNvcmUsIDp2YXJzIFt7OnN5bSAtPnZpbSwgOm1ldGEgezphcmdsaXN0cyAoW10pLCA6ZG9jICJSZXR1cm5zIGFuIG9iamVjdCB0aGF0IHlvdSBjYW4gY2FsbCB0aGUgb3RoZXIgZnVuY3Rpb25zIG9uLlxuICBZb3UgKm11c3QqIGNhbGwgdGhlIGBpbml0YCBmdW5jdGlvbiBvbiBpdCBiZWZvcmUgYW55dGhpbmcgZWxzZS5cbiAgTGluZSBudW1iZXJzIGFyZSAxLWJhc2VkIGFuZCBjb2x1bW4gbnVtYmVycyBhcmUgMC1iYXNlZCAoZG9uJ3QgYXNrIG1lIHdoeSkuIn0sIDpzb3VyY2UgIihkZWZuIC0+dmltXG4gIFwiUmV0dXJucyBhbiBvYmplY3QgdGhhdCB5b3UgY2FuIGNhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyBvbi5cbiAgWW91ICptdXN0KiBjYWxsIHRoZSBgaW5pdGAgZnVuY3Rpb24gb24gaXQgYmVmb3JlIGFueXRoaW5nIGVsc2UuXG4gIExpbmUgbnVtYmVycyBhcmUgMS1iYXNlZCBhbmQgY29sdW1uIG51bWJlcnMgYXJlIDAtYmFzZWQgKGRvbid0IGFzayBtZSB3aHkpLlwiXG4gIFtdXG4gIChsZXQgW2xpYm5hbWUgKGNvbmRwID0gKFBsYXRmb3JtL2dldClcbiAgICAgICAgICAgICAgICAgIFBsYXRmb3JtL1dJTkRPV1MgXCJsaWJ2aW1cIlxuICAgICAgICAgICAgICAgICAgUGxhdGZvcm0vTUFDT1NYIFwidmltXCJcbiAgICAgICAgICAgICAgICAgIFBsYXRmb3JtL0xJTlVYIFwidmltXCJcbiAgICAgICAgICAgICAgICAgICh0aHJvdyAoZXgtaW5mbyBcIkNhbid0IGZpbmQgYSB2aW0gYmluYXJ5IGZvciB5b3VyIHBsYXRmb3JtXCIge30pKSlcbiAgICAgICAgXlNoYXJlZExpYnJhcnkgbGliICh0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExpYnJhcnkvbG9hZE5hdGl2ZSBuaWwgbGlibmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhdGNoIE51bGxQb2ludGVyRXhjZXB0aW9uIF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGhyb3cgKGV4LWluZm8gXCJMV0pHTCAzLjIuMyBvciBncmVhdGVyIGlzIHJlcXVpcmVkXCIge30pKSkpXG4gICAgICAgIDs7IGZ1bmN0aW9uIHBvaW50ZXJzXG4gICAgICAgIGluaXQnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbUluaXRcIilcbiAgICAgICAgb3Blbi1idWZmZXInICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbUJ1ZmZlck9wZW5cIilcbiAgICAgICAgZ2V0LWN1cnJlbnQtYnVmZmVyJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1CdWZmZXJHZXRDdXJyZW50XCIpXG4gICAgICAgIHNldC1jdXJyZW50LWJ1ZmZlcicgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltQnVmZmVyU2V0Q3VycmVudFwiKVxuICAgICAgICBnZXQtZmlsZS1uYW1lJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1CdWZmZXJHZXRGaWxlbmFtZVwiKVxuICAgICAgICBnZXQtbGluZScgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltQnVmZmVyR2V0TGluZVwiKVxuICAgICAgICBnZXQtbGluZS1jb3VudCcgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltQnVmZmVyR2V0TGluZUNvdW50XCIpXG4gICAgICAgIHNldC1vbi1idWZmZXItdXBkYXRlJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1TZXREZXN0cnVjdHVyZWRCdWZmZXJVcGRhdGVDYWxsYmFja1wiKVxuICAgICAgICBzZXQtb24tYXV0by1jb21tYW5kJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1TZXRBdXRvQ29tbWFuZENhbGxiYWNrXCIpXG4gICAgICAgIGdldC1jb21tYW5kLXRleHQnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbUNvbW1hbmRMaW5lR2V0VGV4dFwiKVxuICAgICAgICBnZXQtY29tbWFuZC1wb3NpdGlvbicgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltQ29tbWFuZExpbmVHZXRQb3NpdGlvblwiKVxuICAgICAgICBnZXQtY29tbWFuZC1jb21wbGV0aW9uJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1Db21tYW5kTGluZUdldENvbXBsZXRpb25cIilcbiAgICAgICAgZ2V0LWN1cnNvci1jb2x1bW4nICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbUN1cnNvckdldENvbHVtblwiKVxuICAgICAgICBnZXQtY3Vyc29yLWxpbmUnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbUN1cnNvckdldExpbmVcIilcbiAgICAgICAgc2V0LWN1cnNvci1wb3NpdGlvbicgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltQ3Vyc29yU2V0UG9zaXRpb25EZXN0cnVjdHVyZWRcIilcbiAgICAgICAgaW5wdXQnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbUtleVwiKVxuICAgICAgICBpbnB1dC11bmljb2RlJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1JbnB1dFwiKVxuICAgICAgICBleGVjdXRlJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1FeGVjdXRlXCIpXG4gICAgICAgIHNldC1vbi1xdWl0JyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1TZXRRdWl0Q2FsbGJhY2tcIilcbiAgICAgICAgc2V0LW9uLXVuaGFuZGxlZC1lc2NhcGUnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbVNldFVuaGFuZGxlZEVzY2FwZUNhbGxiYWNrXCIpXG4gICAgICAgIHNldC10YWItc2l6ZScgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltT3B0aW9uU2V0VGFiU2l6ZVwiKVxuICAgICAgICBnZXQtdGFiLXNpemUnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbU9wdGlvbkdldFRhYlNpemVcIilcbiAgICAgICAgZ2V0LXZpc3VhbC10eXBlJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1WaXN1YWxHZXRUeXBlXCIpXG4gICAgICAgIHZpc3VhbC1hY3RpdmU/JyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1WaXN1YWxJc0FjdGl2ZVwiKVxuICAgICAgICBzZWxlY3QtYWN0aXZlPycgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltU2VsZWN0SXNBY3RpdmVcIilcbiAgICAgICAgZ2V0LXZpc3VhbC1yYW5nZScgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltVmlzdWFsR2V0UmFuZ2VEZXN0cnVjdHVyZWRcIilcbiAgICAgICAgZ2V0LXNlYXJjaC1oaWdobGlnaHRzJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1TZWFyY2hHZXRIaWdobGlnaHRzRGVzdHJ1Y3R1cmVkXCIpXG4gICAgICAgIGdldC1zZWFyY2gtcGF0dGVybicgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltU2VhcmNoR2V0UGF0dGVyblwiKVxuICAgICAgICBzZXQtb24tc3RvcC1zZWFyY2gtaGlnaGxpZ2h0JyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1TZXRTdG9wU2VhcmNoSGlnaGxpZ2h0Q2FsbGJhY2tcIilcbiAgICAgICAgZ2V0LXdpbmRvdy13aWR0aCcgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltV2luZG93R2V0V2lkdGhcIilcbiAgICAgICAgZ2V0LXdpbmRvdy1oZWlnaHQnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbVdpbmRvd0dldEhlaWdodFwiKVxuICAgICAgICBnZXQtd2luZG93LXRvcC1saW5lJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1XaW5kb3dHZXRUb3BMaW5lXCIpXG4gICAgICAgIGdldC13aW5kb3ctbGVmdC1jb2x1bW4nICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbVdpbmRvd0dldExlZnRDb2x1bW5cIilcbiAgICAgICAgc2V0LXdpbmRvdy13aWR0aCcgKC5nZXRGdW5jdGlvbkFkZHJlc3MgbGliIFwidmltV2luZG93U2V0V2lkdGhcIilcbiAgICAgICAgc2V0LXdpbmRvdy1oZWlnaHQnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbVdpbmRvd1NldEhlaWdodFwiKVxuICAgICAgICBzZXQtd2luZG93LXRvcC1sZWZ0JyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1XaW5kb3dTZXRUb3BMZWZ0XCIpXG4gICAgICAgIGdldC1tb2RlJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1HZXRNb2RlXCIpXG4gICAgICAgIHNldC1vbi15YW5rJyAoLmdldEZ1bmN0aW9uQWRkcmVzcyBsaWIgXCJ2aW1TZXREZXN0cnVjdHVyZWRZYW5rQ2FsbGJhY2tcIilcbiAgICAgICAgc2V0LW9uLW1lc3NhZ2UnICguZ2V0RnVuY3Rpb25BZGRyZXNzIGxpYiBcInZpbVNldE1lc3NhZ2VDYWxsYmFja1wiKVxuICAgICAgICA7OyBzdGF0ZSB0byBzdG9yZSB0aGUgZ2xvYmFsIGNhbGxiYWNrc1xuICAgICAgICA7OyB0byBlbnN1cmUgdGhhdCB0aGV5IGFyZSBub3QgZ2FyYmFnZSBjb2xsZWN0ZWRcbiAgICAgICAgKm9uLWJ1ZmZlci11cGRhdGUgKHZvbGF0aWxlISBuaWwpXG4gICAgICAgICpvbi1hdXRvLWNvbW1hbmQgKHZvbGF0aWxlISBuaWwpXG4gICAgICAgICpvbi1xdWl0ICh2b2xhdGlsZSEgbmlsKVxuICAgICAgICAqb24tdW5oYW5kbGVkLWVzY2FwZSAodm9sYXRpbGUhIG5pbClcbiAgICAgICAgKm9uLXN0b3Atc2VhcmNoLWhpZ2hsaWdodCAodm9sYXRpbGUhIG5pbClcbiAgICAgICAgKm9uLXlhbmsgKHZvbGF0aWxlISBuaWwpXG4gICAgICAgICpvbi1tZXNzYWdlICh2b2xhdGlsZSEgbmlsKVxuICAgICAgICA7OyB0aGUgY2FsbCB2bVxuICAgICAgICA7OyBub3Qgc3VyZSB3aGF0IHRoZSBiZXN0IG1heCBzaXplIGlzIGhlcmVcbiAgICAgICAgdm0gKER5bkNhbGwvZGNOZXdDYWxsVk0gMTAyNCldXG4gICAgKHJlaWZ5IElWaW1cbiAgICAgIChpbml0IFt0aGlzXVxuICAgICAgICAoRHluQ2FsbC9kY01vZGUgdm0gRHluQ2FsbC9EQ19DQUxMX0NfREVGQVVMVClcbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsVm9pZCB2bSBpbml0JykpXG4gICAgICAob3Blbi1idWZmZXIgW3RoaXMgZmlsZS1uYW1lXVxuICAgICAgICAobGV0IFtiYiAoTWVtb3J5VXRpbC9tZW1VVEY4IF5DaGFyU2VxdWVuY2UgZmlsZS1uYW1lKV1cbiAgICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAgIChEeW5DYWxsL2RjQXJnUG9pbnRlciB2bSAoTWVtb3J5VXRpbC9tZW1BZGRyZXNzIGJiKSlcbiAgICAgICAgICAoRHluQ2FsbC9kY0FyZ0xvbmcgdm0gMSlcbiAgICAgICAgICAoRHluQ2FsbC9kY0FyZ0ludCB2bSAwKVxuICAgICAgICAgIChsZXQgW2J1ZmZlci1wdHIgKER5bkNhbGwvZGNDYWxsUG9pbnRlciB2bSBvcGVuLWJ1ZmZlcicpXVxuICAgICAgICAgICAgKE1lbW9yeVV0aWwvbWVtRnJlZSBiYilcbiAgICAgICAgICAgIGJ1ZmZlci1wdHIpKSlcbiAgICAgIChnZXQtY3VycmVudC1idWZmZXIgW3RoaXNdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbFBvaW50ZXIgdm0gZ2V0LWN1cnJlbnQtYnVmZmVyJykpXG4gICAgICAoc2V0LWN1cnJlbnQtYnVmZmVyIFt0aGlzIGJ1ZmZlci1wdHJdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQXJnUG9pbnRlciB2bSBidWZmZXItcHRyKVxuICAgICAgICAoRHluQ2FsbC9kY0NhbGxWb2lkIHZtIHNldC1jdXJyZW50LWJ1ZmZlcicpKVxuICAgICAgKGdldC1maWxlLW5hbWUgW3RoaXMgYnVmZmVyLXB0cl1cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdQb2ludGVyIHZtIGJ1ZmZlci1wdHIpXG4gICAgICAgIChwdHItPnN0ciAoRHluQ2FsbC9kY0NhbGxQb2ludGVyIHZtIGdldC1maWxlLW5hbWUnKSkpXG4gICAgICAoZ2V0LWxpbmUgW3RoaXMgYnVmZmVyLXB0ciBsaW5lLW51bV1cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdQb2ludGVyIHZtIGJ1ZmZlci1wdHIpXG4gICAgICAgIChEeW5DYWxsL2RjQXJnTG9uZyB2bSBsaW5lLW51bSlcbiAgICAgICAgKHB0ci0+c3RyIChEeW5DYWxsL2RjQ2FsbFBvaW50ZXIgdm0gZ2V0LWxpbmUnKSkpXG4gICAgICAoZ2V0LWxpbmUtY291bnQgW3RoaXMgYnVmZmVyLXB0cl1cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdQb2ludGVyIHZtIGJ1ZmZlci1wdHIpXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbExvbmcgdm0gZ2V0LWxpbmUtY291bnQnKSlcbiAgICAgIChzZXQtb24tYnVmZmVyLXVwZGF0ZSBbdGhpcyBjYWxsYmFja11cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdQb2ludGVyIHZtIChNZW1vcnlVdGlsL21lbUFkZHJlc3NTYWZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2cmVzZXQhICpvbi1idWZmZXItdXBkYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlaWZ5IENhbGxiYWNrSSRWXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2sgW3RoaXMgYXJnc11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBbYnVmZmVyLXB0ciAoRHluQ2FsbGJhY2svZGNiQXJnUG9pbnRlciBhcmdzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydC1saW5lIChEeW5DYWxsYmFjay9kY2JBcmdMb25nIGFyZ3MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZC1saW5lIChEeW5DYWxsYmFjay9kY2JBcmdMb25nIGFyZ3MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtY291bnQgKER5bkNhbGxiYWNrL2RjYkFyZ0xvbmcgYXJncyldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGxiYWNrIGJ1ZmZlci1wdHIgc3RhcnQtbGluZSBlbmQtbGluZSBsaW5lLWNvdW50KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0U2lnbmF0dXJlIFt0aGlzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIihwbGxsKXZcIikpKSkpXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gc2V0LW9uLWJ1ZmZlci11cGRhdGUnKSlcbiAgICAgIChzZXQtb24tYXV0by1jb21tYW5kIFt0aGlzIGNhbGxiYWNrXVxuICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAoRHluQ2FsbC9kY0FyZ1BvaW50ZXIgdm0gKE1lbW9yeVV0aWwvbWVtQWRkcmVzc1NhZmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZyZXNldCEgKm9uLWF1dG8tY29tbWFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWlmeSBDYWxsYmFja0kkVlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGxiYWNrIFt0aGlzIGFyZ3NdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgW2V2ZW50IChEeW5DYWxsYmFjay9kY2JBcmdJbnQgYXJncylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLXB0ciAoRHluQ2FsbGJhY2svZGNiQXJnUG9pbnRlciBhcmdzKV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2sgYnVmZmVyLXB0ciAoY29uc3RhbnRzL2F1dG8tZXZlbnRzIGV2ZW50KSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldFNpZ25hdHVyZSBbdGhpc11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIoaXApdlwiKSkpKSlcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsVm9pZCB2bSBzZXQtb24tYXV0by1jb21tYW5kJykpXG4gICAgICAoZ2V0LWNvbW1hbmQtdGV4dCBbdGhpc11cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKHB0ci0+c3RyIChEeW5DYWxsL2RjQ2FsbFBvaW50ZXIgdm0gZ2V0LWNvbW1hbmQtdGV4dCcpKSlcbiAgICAgIChnZXQtY29tbWFuZC1wb3NpdGlvbiBbdGhpc11cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsSW50IHZtIGdldC1jb21tYW5kLXBvc2l0aW9uJykpXG4gICAgICAoZ2V0LWNvbW1hbmQtY29tcGxldGlvbiBbdGhpc11cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKGxldCBbKmNvbXBsZXRpb24gKHZvbGF0aWxlISBuaWwpXG4gICAgICAgICAgICAgIGNhbGxiYWNrIChyZWlmeSBDYWxsYmFja0kkVlxuICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFjayBbdGhpcyBhcmdzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZyZXNldCEgKmNvbXBsZXRpb24gKHB0ci0+c3RyIChEeW5DYWxsYmFjay9kY2JBcmdQb2ludGVyIGFyZ3MpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGdldFNpZ25hdHVyZSBbdGhpc11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiKHApdlwiKSldXG4gICAgICAgICAgKER5bkNhbGwvZGNBcmdQb2ludGVyIHZtIChNZW1vcnlVdGlsL21lbUFkZHJlc3NTYWZlIGNhbGxiYWNrKSlcbiAgICAgICAgICAoRHluQ2FsbC9kY0NhbGxWb2lkIHZtIGdldC1jb21tYW5kLWNvbXBsZXRpb24nKVxuICAgICAgICAgIEAqY29tcGxldGlvbikpXG4gICAgICAoZ2V0LWN1cnNvci1jb2x1bW4gW3RoaXNdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbEludCB2bSBnZXQtY3Vyc29yLWNvbHVtbicpKVxuICAgICAgKGdldC1jdXJzb3ItbGluZSBbdGhpc11cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsTG9uZyB2bSBnZXQtY3Vyc29yLWxpbmUnKSlcbiAgICAgIChzZXQtY3Vyc29yLXBvc2l0aW9uIFt0aGlzIGxpbmUtbnVtIGNvbC1udW1dXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQXJnTG9uZyB2bSBsaW5lLW51bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdJbnQgdm0gY29sLW51bSlcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsVm9pZCB2bSBzZXQtY3Vyc29yLXBvc2l0aW9uJykpXG4gICAgICAoaW5wdXQgW3RoaXMgaW5wdXRdXG4gICAgICAgIChsZXQgW2JiIChNZW1vcnlVdGlsL21lbVVURjggXkNoYXJTZXF1ZW5jZSBpbnB1dCldXG4gICAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgICAoRHluQ2FsbC9kY0FyZ1BvaW50ZXIgdm0gKE1lbW9yeVV0aWwvbWVtQWRkcmVzcyBiYikpXG4gICAgICAgICAgKER5bkNhbGwvZGNDYWxsVm9pZCB2bSBpbnB1dCcpXG4gICAgICAgICAgKE1lbW9yeVV0aWwvbWVtRnJlZSBiYikpKVxuICAgICAgKGlucHV0LXVuaWNvZGUgW3RoaXMgaW5wdXRdXG4gICAgICAgIChsZXQgW2JiIChNZW1vcnlVdGlsL21lbVVURjggXkNoYXJTZXF1ZW5jZSBpbnB1dCldXG4gICAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgICAoRHluQ2FsbC9kY0FyZ1BvaW50ZXIgdm0gKE1lbW9yeVV0aWwvbWVtQWRkcmVzcyBiYikpXG4gICAgICAgICAgKER5bkNhbGwvZGNDYWxsVm9pZCB2bSBpbnB1dC11bmljb2RlJylcbiAgICAgICAgICAoTWVtb3J5VXRpbC9tZW1GcmVlIGJiKSkpXG4gICAgICAoZXhlY3V0ZSBbdGhpcyBjbWRdXG4gICAgICAgIChsZXQgW2JiIChNZW1vcnlVdGlsL21lbVVURjggXkNoYXJTZXF1ZW5jZSBjbWQpXVxuICAgICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgICAgKER5bkNhbGwvZGNBcmdQb2ludGVyIHZtIChNZW1vcnlVdGlsL21lbUFkZHJlc3MgYmIpKVxuICAgICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gZXhlY3V0ZScpXG4gICAgICAgICAgKE1lbW9yeVV0aWwvbWVtRnJlZSBiYikpKVxuICAgICAgKHNldC1vbi1xdWl0IFt0aGlzIGNhbGxiYWNrXVxuICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAoRHluQ2FsbC9kY0FyZ1BvaW50ZXIgdm0gKE1lbW9yeVV0aWwvbWVtQWRkcmVzc1NhZmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZyZXNldCEgKm9uLXF1aXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVpZnkgQ2FsbGJhY2tJJFZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFjayBbdGhpcyBhcmdzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IFtidWZmZXItcHRyIChEeW5DYWxsYmFjay9kY2JBcmdQb2ludGVyIGFyZ3MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlPyAoRHluQ2FsbGJhY2svZGNiQXJnQm9vbCBhcmdzKV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2sgYnVmZmVyLXB0ciBmb3JjZT8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRTaWduYXR1cmUgW3RoaXNdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiKHBiKXZcIikpKSkpXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gc2V0LW9uLXF1aXQnKSlcbiAgICAgIChzZXQtb24tdW5oYW5kbGVkLWVzY2FwZSBbdmltIGNhbGxiYWNrXVxuICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAoRHluQ2FsbC9kY0FyZ1BvaW50ZXIgdm0gKE1lbW9yeVV0aWwvbWVtQWRkcmVzc1NhZmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZyZXNldCEgKm9uLXVuaGFuZGxlZC1lc2NhcGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVpZnkgQ2FsbGJhY2tJJFZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFjayBbdGhpcyBhcmdzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2spKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldFNpZ25hdHVyZSBbdGhpc11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIoKXZcIikpKSkpXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gc2V0LW9uLXVuaGFuZGxlZC1lc2NhcGUnKSlcbiAgICAgIChzZXQtdGFiLXNpemUgW3RoaXMgc2l6ZV1cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdJbnQgdm0gc2l6ZSlcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsVm9pZCB2bSBzZXQtdGFiLXNpemUnKSlcbiAgICAgIChnZXQtdGFiLXNpemUgW3RoaXNdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbEludCB2bSBnZXQtdGFiLXNpemUnKSlcbiAgICAgIChnZXQtdmlzdWFsLXR5cGUgW3RoaXNdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChjaGFyIChEeW5DYWxsL2RjQ2FsbEludCB2bSBnZXQtdmlzdWFsLXR5cGUnKSkpXG4gICAgICAodmlzdWFsLWFjdGl2ZT8gW3RoaXNdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgICg9IDEgKER5bkNhbGwvZGNDYWxsSW50IHZtIHZpc3VhbC1hY3RpdmU/JykpKVxuICAgICAgKHNlbGVjdC1hY3RpdmU/IFt0aGlzXVxuICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAoPSAxIChEeW5DYWxsL2RjQ2FsbEludCB2bSBzZWxlY3QtYWN0aXZlPycpKSlcbiAgICAgIChnZXQtdmlzdWFsLXJhbmdlIFt0aGlzXVxuICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAobGV0IFsqcmFuZ2UgKHZvbGF0aWxlISBuaWwpXG4gICAgICAgICAgICAgIGNhbGxiYWNrIChyZWlmeSBDYWxsYmFja0kkVlxuICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFjayBbdGhpcyBhcmdzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBbc3RhcnQtbGluZSAoRHluQ2FsbGJhY2svZGNiQXJnTG9uZyBhcmdzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQtY29sdW1uIChEeW5DYWxsYmFjay9kY2JBcmdJbnQgYXJncylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZC1saW5lIChEeW5DYWxsYmFjay9kY2JBcmdMb25nIGFyZ3MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQtY29sdW1uIChEeW5DYWxsYmFjay9kY2JBcmdJbnQgYXJncyldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2cmVzZXQhICpyYW5nZSB7OnN0YXJ0LWxpbmUgc3RhcnQtbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzdGFydC1jb2x1bW4gc3RhcnQtY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVuZC1saW5lIGVuZC1saW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVuZC1jb2x1bW4gZW5kLWNvbHVtbn0pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0U2lnbmF0dXJlIFt0aGlzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIobGlsaSl2XCIpKV1cbiAgICAgICAgICAoRHluQ2FsbC9kY0FyZ1BvaW50ZXIgdm0gKE1lbW9yeVV0aWwvbWVtQWRkcmVzc1NhZmUgY2FsbGJhY2spKVxuICAgICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gZ2V0LXZpc3VhbC1yYW5nZScpXG4gICAgICAgICAgQCpyYW5nZSkpXG4gICAgICAoZ2V0LXNlYXJjaC1oaWdobGlnaHRzIFt2aW0gc3RhcnQtbGluZSBlbmQtbGluZV1cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdMb25nIHZtIHN0YXJ0LWxpbmUpXG4gICAgICAgIChEeW5DYWxsL2RjQXJnTG9uZyB2bSBlbmQtbGluZSlcbiAgICAgICAgKGxldCBbKmhpZ2hsaWdodHMgKHZvbGF0aWxlISBbXSlcbiAgICAgICAgICAgICAgY2FsbGJhY2sgKHJlaWZ5IENhbGxiYWNrSSRWXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGxiYWNrIFt0aGlzIGFyZ3NdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IFtzdGFydC1saW5lIChEeW5DYWxsYmFjay9kY2JBcmdMb25nIGFyZ3MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydC1jb2x1bW4gKER5bkNhbGxiYWNrL2RjYkFyZ0ludCBhcmdzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kLWxpbmUgKER5bkNhbGxiYWNrL2RjYkFyZ0xvbmcgYXJncylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZC1jb2x1bW4gKER5bkNhbGxiYWNrL2RjYkFyZ0ludCBhcmdzKV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZzd2FwISAqaGlnaGxpZ2h0cyBjb25qXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezpzdGFydC1saW5lIHN0YXJ0LWxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnN0YXJ0LWNvbHVtbiBzdGFydC1jb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVuZC1saW5lIGVuZC1saW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDplbmQtY29sdW1uIGVuZC1jb2x1bW59KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGdldFNpZ25hdHVyZSBbdGhpc11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiKGxpbGkpdlwiKSldXG4gICAgICAgICAgKER5bkNhbGwvZGNBcmdQb2ludGVyIHZtIChNZW1vcnlVdGlsL21lbUFkZHJlc3NTYWZlIGNhbGxiYWNrKSlcbiAgICAgICAgICAoRHluQ2FsbC9kY0NhbGxWb2lkIHZtIGdldC1zZWFyY2gtaGlnaGxpZ2h0cycpXG4gICAgICAgICAgQCpoaWdobGlnaHRzKSlcbiAgICAgIChnZXQtc2VhcmNoLXBhdHRlcm4gW3ZpbV1cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKHB0ci0+c3RyIChEeW5DYWxsL2RjQ2FsbFBvaW50ZXIgdm0gZ2V0LXNlYXJjaC1wYXR0ZXJuJykpKVxuICAgICAgKHNldC1vbi1zdG9wLXNlYXJjaC1oaWdobGlnaHQgW3ZpbSBjYWxsYmFja11cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdQb2ludGVyIHZtIChNZW1vcnlVdGlsL21lbUFkZHJlc3NTYWZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2cmVzZXQhICpvbi1zdG9wLXNlYXJjaC1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVpZnkgQ2FsbGJhY2tJJFZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFjayBbdGhpcyBhcmdzXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2spKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldFNpZ25hdHVyZSBbdGhpc11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIoKXZcIikpKSkpXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gc2V0LW9uLXN0b3Atc2VhcmNoLWhpZ2hsaWdodCcpKVxuICAgICAgKGdldC13aW5kb3ctd2lkdGggW3ZpbV1cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsSW50IHZtIGdldC13aW5kb3ctd2lkdGgnKSlcbiAgICAgIChnZXQtd2luZG93LWhlaWdodCBbdmltXVxuICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAoRHluQ2FsbC9kY0NhbGxJbnQgdm0gZ2V0LXdpbmRvdy1oZWlnaHQnKSlcbiAgICAgIChnZXQtd2luZG93LXRvcC1saW5lIFt2aW1dXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbEludCB2bSBnZXQtd2luZG93LXRvcC1saW5lJykpXG4gICAgICAoZ2V0LXdpbmRvdy1sZWZ0LWNvbHVtbiBbdmltXVxuICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAoRHluQ2FsbC9kY0NhbGxJbnQgdm0gZ2V0LXdpbmRvdy1sZWZ0LWNvbHVtbicpKVxuICAgICAgKHNldC13aW5kb3ctd2lkdGggW3ZpbSB3aWR0aF1cbiAgICAgICAgKER5bkNhbGwvZGNSZXNldCB2bSlcbiAgICAgICAgKER5bkNhbGwvZGNBcmdJbnQgdm0gd2lkdGgpXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gc2V0LXdpbmRvdy13aWR0aCcpKVxuICAgICAgKHNldC13aW5kb3ctaGVpZ2h0IFt2aW0gaGVpZ2h0XVxuICAgICAgICAoRHluQ2FsbC9kY1Jlc2V0IHZtKVxuICAgICAgICAoRHluQ2FsbC9kY0FyZ0ludCB2bSBoZWlnaHQpXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gc2V0LXdpbmRvdy1oZWlnaHQnKSlcbiAgICAgIChzZXQtd2luZG93LXRvcC1sZWZ0IFt2aW0gdG9wIGxlZnRdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQXJnSW50IHZtIHRvcClcbiAgICAgICAgKER5bkNhbGwvZGNBcmdJbnQgdm0gbGVmdClcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsVm9pZCB2bSBzZXQtd2luZG93LXRvcC1sZWZ0JykpXG4gICAgICAoZ2V0LW1vZGUgW3RoaXNdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChjb25zdGFudHMvbW9kZXMgKER5bkNhbGwvZGNDYWxsSW50IHZtIGdldC1tb2RlJykpKVxuICAgICAgKHNldC1vbi15YW5rIFt2aW0gY2FsbGJhY2tdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQXJnUG9pbnRlciB2bSAoTWVtb3J5VXRpbC9tZW1BZGRyZXNzU2FmZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodnJlc2V0ISAqb24teWFua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWlmeSBDYWxsYmFja0kkVlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGxiYWNrIFt0aGlzIGFyZ3NdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgW3N0YXJ0LWxpbmUgKER5bkNhbGxiYWNrL2RjYkFyZ0xvbmcgYXJncylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQtY29sdW1uIChEeW5DYWxsYmFjay9kY2JBcmdJbnQgYXJncylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kLWxpbmUgKER5bkNhbGxiYWNrL2RjYkFyZ0xvbmcgYXJncylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kLWNvbHVtbiAoRHluQ2FsbGJhY2svZGNiQXJnSW50IGFyZ3MpXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFjayB7OnN0YXJ0LWxpbmUgc3RhcnQtbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnN0YXJ0LWNvbHVtbiBzdGFydC1jb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDplbmQtbGluZSBlbmQtbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmVuZC1jb2x1bW4gZW5kLWNvbHVtbn0pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRTaWduYXR1cmUgW3RoaXNdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiKGxpbGkpdlwiKSkpKSlcbiAgICAgICAgKER5bkNhbGwvZGNDYWxsVm9pZCB2bSBzZXQtb24teWFuaycpKVxuICAgICAgKHNldC1vbi1tZXNzYWdlIFt2aW0gY2FsbGJhY2tdXG4gICAgICAgIChEeW5DYWxsL2RjUmVzZXQgdm0pXG4gICAgICAgIChEeW5DYWxsL2RjQXJnUG9pbnRlciB2bSAoTWVtb3J5VXRpbC9tZW1BZGRyZXNzU2FmZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodnJlc2V0ISAqb24tbWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWlmeSBDYWxsYmFja0kkVlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGxiYWNrIFt0aGlzIGFyZ3NdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgW3RpdGxlIChEeW5DYWxsYmFjay9kY2JBcmdQb2ludGVyIGFyZ3MpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyAoRHluQ2FsbGJhY2svZGNiQXJnUG9pbnRlciBhcmdzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2ctcHJpb3JpdHkgKER5bkNhbGxiYWNrL2RjYkFyZ0ludCBhcmdzKV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2sgezp0aXRsZSAocHRyLT5zdHIgdGl0bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWVzc2FnZSAocHRyLT5zdHIgbXNnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1lc3NhZ2UtcHJpb3JpdHkgbXNnLXByaW9yaXR5fSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldFNpZ25hdHVyZSBbdGhpc11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIocHBpKXZcIikpKSkpXG4gICAgICAgIChEeW5DYWxsL2RjQ2FsbFZvaWQgdm0gc2V0LW9uLW1lc3NhZ2UnKSkpKSkiLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gSVZpbSwgOm1ldGEgezpkb2MgbmlsfSwgOnNvdXJjZSAiKGRlZnByb3RvY29sIElWaW1cbiAgKGluaXQgW3ZpbV0pXG4gIChvcGVuLWJ1ZmZlciBbdmltIGZpbGUtbmFtZV0pXG4gIChnZXQtY3VycmVudC1idWZmZXIgW3ZpbV0pXG4gIChzZXQtY3VycmVudC1idWZmZXIgW3ZpbSBidWZmZXItcHRyXSlcbiAgKGdldC1maWxlLW5hbWUgW3ZpbSBidWZmZXItcHRyXSlcbiAgKGdldC1saW5lIFt2aW0gYnVmZmVyLXB0ciBsaW5lLW51bV0pXG4gIChnZXQtbGluZS1jb3VudCBbdmltIGJ1ZmZlci1wdHJdKVxuICAoc2V0LW9uLWJ1ZmZlci11cGRhdGUgW3ZpbSBjYWxsYmFja10pXG4gIChzZXQtb24tYXV0by1jb21tYW5kIFt2aW0gY2FsbGJhY2tdKVxuICAoZ2V0LWNvbW1hbmQtdGV4dCBbdmltXSlcbiAgKGdldC1jb21tYW5kLXBvc2l0aW9uIFt2aW1dKVxuICAoZ2V0LWNvbW1hbmQtY29tcGxldGlvbiBbdmltXSlcbiAgKGdldC1jdXJzb3ItY29sdW1uIFt2aW1dKVxuICAoZ2V0LWN1cnNvci1saW5lIFt2aW1dKVxuICAoc2V0LWN1cnNvci1wb3NpdGlvbiBbdmltIGxpbmUtbnVtIGNvbC1udW1dKVxuICAoaW5wdXQgW3ZpbSBpbnB1dF0pXG4gIChpbnB1dC11bmljb2RlIFt2aW0gaW5wdXRdKVxuICAoZXhlY3V0ZSBbdmltIGNtZF0pXG4gIChzZXQtb24tcXVpdCBbdmltIGNhbGxiYWNrXSlcbiAgKHNldC1vbi11bmhhbmRsZWQtZXNjYXBlIFt2aW0gY2FsbGJhY2tdKVxuICAoc2V0LXRhYi1zaXplIFt2aW0gc2l6ZV0pXG4gIChnZXQtdGFiLXNpemUgW3ZpbV0pXG4gIChnZXQtdmlzdWFsLXR5cGUgW3ZpbV0pXG4gICh2aXN1YWwtYWN0aXZlPyBbdmltXSlcbiAgKHNlbGVjdC1hY3RpdmU/IFt2aW1dKVxuICAoZ2V0LXZpc3VhbC1yYW5nZSBbdmltXSlcbiAgKGdldC1zZWFyY2gtaGlnaGxpZ2h0cyBbdmltIHN0YXJ0LWxpbmUgZW5kLWxpbmVdXG4gICAgXCJXYXJuaW5nOiBUaGlzIGZ1bmN0aW9uIGNvdWxkIGJlaGF2ZSBiYWRseSBpZiB5b3UgZG9uJ3QgaGF2ZSBobHNlYXJjaCBlbmFibGVkOlxuICAgIChleGVjdXRlIHZpbSBcXFwic2V0IGhsc2VhcmNoXFxcIilcIilcbiAgKGdldC1zZWFyY2gtcGF0dGVybiBbdmltXVxuICAgIFwiV2FybmluZzogVGhpcyBmdW5jdGlvbiBjb3VsZCBiZWhhdmUgYmFkbHkgaWYgeW91IGRvbid0IGhhdmUgaGxzZWFyY2ggZW5hYmxlZDpcbiAgICAoZXhlY3V0ZSB2aW0gXFxcInNldCBobHNlYXJjaFxcXCIpXCIpXG4gIChzZXQtb24tc3RvcC1zZWFyY2gtaGlnaGxpZ2h0IFt2aW0gY2FsbGJhY2tdKVxuICAoZ2V0LXdpbmRvdy13aWR0aCBbdmltXSlcbiAgKGdldC13aW5kb3ctaGVpZ2h0IFt2aW1dKVxuICAoZ2V0LXdpbmRvdy10b3AtbGluZSBbdmltXSlcbiAgKGdldC13aW5kb3ctbGVmdC1jb2x1bW4gW3ZpbV0pXG4gIChzZXQtd2luZG93LXdpZHRoIFt2aW0gd2lkdGhdKVxuICAoc2V0LXdpbmRvdy1oZWlnaHQgW3ZpbSBoZWlnaHRdKVxuICAoc2V0LXdpbmRvdy10b3AtbGVmdCBbdmltIHRvcCBsZWZ0XSlcbiAgKGdldC1tb2RlIFt2aW1dKVxuICAoc2V0LW9uLXlhbmsgW3ZpbSBjYWxsYmFja10pXG4gIChzZXQtb24tbWVzc2FnZSBbdmltIGNhbGxiYWNrXSkpIiwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW119IHs6c3ltIGV4ZWN1dGUsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gY21kXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFt7OmJvZHkgKGV4ZWN1dGUgdmltICJzZXQgZXhwYW5kdGFiIiksIDpib2R5LXN0ciAiKGV4ZWN1dGUgdmltIFwic2V0IGV4cGFuZHRhYlwiKVxuIiwgOmlkICJsaWJ2aW0tY2xqLmNvcmUvZXhlY3V0ZS8wIn1dfSB7OnN5bSBnZXQtY29tbWFuZC1jb21wbGV0aW9uLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBnZXQtY29tbWFuZC1wb3NpdGlvbiwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gZ2V0LWNvbW1hbmQtdGV4dCwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gZ2V0LWN1cnJlbnQtYnVmZmVyLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBnZXQtY3Vyc29yLWNvbHVtbiwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gZ2V0LWN1cnNvci1saW5lLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBnZXQtZmlsZS1uYW1lLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIGJ1ZmZlci1wdHJdKSwgOmRvYyBuaWx9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW119IHs6c3ltIGdldC1saW5lLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIGJ1ZmZlci1wdHIgbGluZS1udW1dKSwgOmRvYyBuaWx9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW119IHs6c3ltIGdldC1saW5lLWNvdW50LCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIGJ1ZmZlci1wdHJdKSwgOmRvYyBuaWx9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW119IHs6c3ltIGdldC1tb2RlLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBnZXQtc2VhcmNoLWhpZ2hsaWdodHMsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gc3RhcnQtbGluZSBlbmQtbGluZV0pLCA6ZG9jICJXYXJuaW5nOiBUaGlzIGZ1bmN0aW9uIGNvdWxkIGJlaGF2ZSBiYWRseSBpZiB5b3UgZG9uJ3QgaGF2ZSBobHNlYXJjaCBlbmFibGVkOlxuICAgIChleGVjdXRlIHZpbSBcInNldCBobHNlYXJjaFwiKSJ9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW119IHs6c3ltIGdldC1zZWFyY2gtcGF0dGVybiwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jICJXYXJuaW5nOiBUaGlzIGZ1bmN0aW9uIGNvdWxkIGJlaGF2ZSBiYWRseSBpZiB5b3UgZG9uJ3QgaGF2ZSBobHNlYXJjaCBlbmFibGVkOlxuICAgIChleGVjdXRlIHZpbSBcInNldCBobHNlYXJjaFwiKSJ9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW119IHs6c3ltIGdldC10YWItc2l6ZSwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gZ2V0LXZpc3VhbC1yYW5nZSwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gZ2V0LXZpc3VhbC10eXBlLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBnZXQtd2luZG93LWhlaWdodCwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gZ2V0LXdpbmRvdy1sZWZ0LWNvbHVtbiwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gZ2V0LXdpbmRvdy10b3AtbGluZSwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gZ2V0LXdpbmRvdy13aWR0aCwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gaW5pdCwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gaW5wdXQsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gaW5wdXRdKSwgOmRvYyBuaWx9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW3s6ZG9jICJJbnB1dCBhIGNoYXJhY3RlciIsIDpib2R5IChpbnB1dCB2aW0gImgiKSwgOmJvZHktc3RyICIoaW5wdXQgdmltIFwiaFwiKVxuIiwgOmlkICJsaWJ2aW0tY2xqLmNvcmUvaW5wdXQvMCJ9IHs6ZG9jICJJbnB1dCBhIHNwZWNpYWwgY2hhcmFjdGVyXG4gICBTZWU6IGh0dHBzOi8vdmltLmZhbmRvbS5jb20vd2lraS9NYXBwaW5nX2tleXNfaW5fVmltXy1fVHV0b3JpYWxfJTI4UGFydF8yJTI5IiwgOmJvZHkgKGlucHV0IHZpbSAiPEVudGVyPiIpLCA6Ym9keS1zdHIgIihpbnB1dCB2aW0gXCI8RW50ZXI+XCIpXG4iLCA6aWQgImxpYnZpbS1jbGouY29yZS9pbnB1dC8xIn1dfSB7OnN5bSBpbnB1dC11bmljb2RlLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIGlucHV0XSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFt7OmRvYyAiSW5wdXQgYSB1bmljb2RlIGNoYXJhY3RlciIsIDpib2R5IChpbnB1dC11bmljb2RlIHZpbSAi6ICFIiksIDpib2R5LXN0ciAiKGlucHV0LXVuaWNvZGUgdmltIFwi6ICFXCIpXG4iLCA6aWQgImxpYnZpbS1jbGouY29yZS9pbnB1dC11bmljb2RlLzAifV19IHs6c3ltIG9wZW4tYnVmZmVyLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIGZpbGUtbmFtZV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbezpib2R5IChvcGVuLWJ1ZmZlciB2aW0gImhlbGxvLnR4dCIpLCA6Ym9keS1zdHIgIihvcGVuLWJ1ZmZlciB2aW0gXCJoZWxsby50eHRcIilcbiIsIDppZCAibGlidmltLWNsai5jb3JlL29wZW4tYnVmZmVyLzAifV19IHs6c3ltIHNlbGVjdC1hY3RpdmU/LCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBzZXQtY3VycmVudC1idWZmZXIsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gYnVmZmVyLXB0cl0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gc2V0LWN1cnNvci1wb3NpdGlvbiwgOm1ldGEgezphcmdsaXN0cyAoW3ZpbSBsaW5lLW51bSBjb2wtbnVtXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBzZXQtb24tYXV0by1jb21tYW5kLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIGNhbGxiYWNrXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFt7OmJvZHkgKHNldC1vbi1hdXRvLWNvbW1hbmQgdmltIChmbiBbYnVmZmVyLXB0ciBldmVudF0gKGNhc2UgZXZlbnQgRVZFTlRfQlVGRU5URVIgKHByaW50bG4gIlVzZXIgZW50ZXJlZCBhIGJ1ZmZlciIpIG5pbCkpKSwgOmJvZHktc3RyICIoc2V0LW9uLWF1dG8tY29tbWFuZFxuIHZpbVxuIChmblxuICBbYnVmZmVyLXB0ciBldmVudF1cbiAgKGNhc2UgZXZlbnQgRVZFTlRfQlVGRU5URVIgKHByaW50bG4gXCJVc2VyIGVudGVyZWQgYSBidWZmZXJcIikgbmlsKSkpXG4iLCA6aWQgImxpYnZpbS1jbGouY29yZS9zZXQtb24tYXV0by1jb21tYW5kLzAifV19IHs6c3ltIHNldC1vbi1idWZmZXItdXBkYXRlLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIGNhbGxiYWNrXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFt7OmJvZHkgKHNldC1vbi1idWZmZXItdXBkYXRlIHZpbSAoZm4gW2J1ZmZlci1wdHIgc3RhcnQtbGluZSBlbmQtbGluZSBsaW5lLWNvdW50XSAocHJpbnRsbiAiQnVmZmVyIiBidWZmZXItcHRyICJ3YXMgdXBkYXRlZCIpKSksIDpib2R5LXN0ciAiKHNldC1vbi1idWZmZXItdXBkYXRlXG4gdmltXG4gKGZuXG4gIFtidWZmZXItcHRyIHN0YXJ0LWxpbmUgZW5kLWxpbmUgbGluZS1jb3VudF1cbiAgKHByaW50bG4gXCJCdWZmZXJcIiBidWZmZXItcHRyIFwid2FzIHVwZGF0ZWRcIikpKVxuIiwgOmlkICJsaWJ2aW0tY2xqLmNvcmUvc2V0LW9uLWJ1ZmZlci11cGRhdGUvMCJ9XX0gezpzeW0gc2V0LW9uLW1lc3NhZ2UsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gY2FsbGJhY2tdKSwgOmRvYyBuaWx9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW3s6Ym9keSAoc2V0LW9uLW1lc3NhZ2UgdmltIChmbiBbezprZXlzIFt0aXRsZSBtZXNzYWdlIG1lc3NhZ2UtcHJpb3JpdHldfV0gKHByaW50bG4gbWVzc2FnZSkpKSwgOmJvZHktc3RyICIoc2V0LW9uLW1lc3NhZ2VcbiB2aW1cbiAoZm4gW3s6a2V5cyBbdGl0bGUgbWVzc2FnZSBtZXNzYWdlLXByaW9yaXR5XX1dIChwcmludGxuIG1lc3NhZ2UpKSlcbiIsIDppZCAibGlidmltLWNsai5jb3JlL3NldC1vbi1tZXNzYWdlLzAifV19IHs6c3ltIHNldC1vbi1xdWl0LCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIGNhbGxiYWNrXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFt7OmJvZHkgKHNldC1vbi1xdWl0IHZpbSAoZm4gW2J1ZmZlci1wdHIgZm9yY2VkP10gKFN5c3RlbS9leGl0IDApKSksIDpib2R5LXN0ciAiKHNldC1vbi1xdWl0IHZpbSAoZm4gW2J1ZmZlci1wdHIgZm9yY2VkP10gKFN5c3RlbS9leGl0IDApKSlcbiIsIDppZCAibGlidmltLWNsai5jb3JlL3NldC1vbi1xdWl0LzAifV19IHs6c3ltIHNldC1vbi1zdG9wLXNlYXJjaC1oaWdobGlnaHQsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gY2FsbGJhY2tdKSwgOmRvYyBuaWx9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW3s6Ym9keSAoc2V0LW9uLXN0b3Atc2VhcmNoLWhpZ2hsaWdodCB2aW0gKGZuIFtdIChwcmludGxuICI6bm9oIHdhcyBleGVjdXRlZCIpKSksIDpib2R5LXN0ciAiKHNldC1vbi1zdG9wLXNlYXJjaC1oaWdobGlnaHQgdmltIChmbiBbXSAocHJpbnRsbiBcIjpub2ggd2FzIGV4ZWN1dGVkXCIpKSlcbiIsIDppZCAibGlidmltLWNsai5jb3JlL3NldC1vbi1zdG9wLXNlYXJjaC1oaWdobGlnaHQvMCJ9XX0gezpzeW0gc2V0LW9uLXVuaGFuZGxlZC1lc2NhcGUsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gY2FsbGJhY2tdKSwgOmRvYyBuaWx9LCA6c291cmNlIG5pbCwgOnNwZWMgbmlsLCA6ZXhhbXBsZXMgW3s6Ym9keSAoc2V0LW9uLXVuaGFuZGxlZC1lc2NhcGUgdmltIChmbiBbXSAocHJpbnRsbiAiVXNlciBwcmVzc2VkIEVzYyBpbiBub3JtYWwgbW9kZSIpKSksIDpib2R5LXN0ciAiKHNldC1vbi11bmhhbmRsZWQtZXNjYXBlXG4gdmltXG4gKGZuIFtdIChwcmludGxuIFwiVXNlciBwcmVzc2VkIEVzYyBpbiBub3JtYWwgbW9kZVwiKSkpXG4iLCA6aWQgImxpYnZpbS1jbGouY29yZS9zZXQtb24tdW5oYW5kbGVkLWVzY2FwZS8wIn1dfSB7OnN5bSBzZXQtb24teWFuaywgOm1ldGEgezphcmdsaXN0cyAoW3ZpbSBjYWxsYmFja10pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbezpib2R5IChzZXQtb24teWFuayB2aW0gKGZuIFt7OmtleXMgW3N0YXJ0LWxpbmUgc3RhcnQtY29sdW1uIGVuZC1saW5lIGVuZC1jb2x1bW5dfV0gKHByaW50bG4gIlVzZXIgY29waWVkIHRleHQiKSkpLCA6Ym9keS1zdHIgIihzZXQtb24teWFua1xuIHZpbVxuIChmblxuICBbezprZXlzIFtzdGFydC1saW5lIHN0YXJ0LWNvbHVtbiBlbmQtbGluZSBlbmQtY29sdW1uXX1dXG4gIChwcmludGxuIFwiVXNlciBjb3BpZWQgdGV4dFwiKSkpXG4iLCA6aWQgImxpYnZpbS1jbGouY29yZS9zZXQtb24teWFuay8wIn1dfSB7OnN5bSBzZXQtdGFiLXNpemUsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gc2l6ZV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX0gezpzeW0gc2V0LXdpbmRvdy1oZWlnaHQsIDptZXRhIHs6YXJnbGlzdHMgKFt2aW0gaGVpZ2h0XSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBzZXQtd2luZG93LXRvcC1sZWZ0LCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIHRvcCBsZWZ0XSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSBzZXQtd2luZG93LXdpZHRoLCA6bWV0YSB7OmFyZ2xpc3RzIChbdmltIHdpZHRoXSksIDpkb2MgbmlsfSwgOnNvdXJjZSBuaWwsIDpzcGVjIG5pbCwgOmV4YW1wbGVzIFtdfSB7OnN5bSB2aXN1YWwtYWN0aXZlPywgOm1ldGEgezphcmdsaXN0cyAoW3ZpbV0pLCA6ZG9jIG5pbH0sIDpzb3VyY2UgbmlsLCA6c3BlYyBuaWwsIDpleGFtcGxlcyBbXX1dfQ==