Devel
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
March 2013
- 64 participants
- 61 discussions
Hi Everyone,
I'd like to propose a feature we've been doing some investigation into,
which is to integrate cloud-init support into oVirt.
Cloud-init is used to help provision new Linux systems by setting the
hostname, ip, ssh keys, timezone, injecting files, and more. It's used by
OpenStack (amongst others) now, and has a lot of features that may be
helpful to our users.
Details are still evolving, but for more info please see the wiki page:
http://www.ovirt.org/Features/Cloud-Init_Integration
All feedback is welcome!
Thanks,
Greg
8
11
[Engine-devel] Proposal VDSM <=> Engine Data Statistics Retrieval Optimization
by Vinzenz Feenstra 30 May '13
by Vinzenz Feenstra 30 May '13
30 May '13
This is a multi-part message in MIME format.
--------------020305070807050907000005
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Please find the prettier version on the wiki:
http://www.ovirt.org/Proposal_VDSM_-_Engine_Data_Statistics_Retrieval
Proposal VDSM - Engine Data Statistics Retrieval
VDSM <=> Engine data retrieval optimization
Motivation:
Currently the RHEVM engine is polling the a lot of data from VDSM every
15 seconds. This should be optimized and the amount of data requested
should be more specific.
For each VM the data currently contains much more information than
actually needed which blows up the size of the XML content quite big. We
could optimize this by splitting the reply on the getVmStats based on
the request of the engine into sections. For this reason Omer Frenkel
and me have split up the data into parts based on their usage.
This data can and usually does change during the lifetime of the VM.
Rarely Changed:
This data is change not very frequent and it should be enough to update
this only once in a while. Most commonly this data changes after changes
made in the UI or after a migration of the VM to another Host.
*Status* = Running
*acpiEnable* = true
*vmType* = kvm
*guestName* = W864GUESTAGENTT
*displayType* = qxl
*guestOs* = Win 8
*kvmEnable* = true #/*this should be constant and never changed*/
*pauseCode* = NOERR
*monitorResponse* = 0
*session* = Locked # unused
*netIfaces* = [{'name': 'Realtek RTL8139C+ Fast Ethernet NIC', 'inet6': ['fe80::490c:92bb:bbcc:9f87'], 'inet': ['10.34.60.148'], 'hw': '00:1a:4a:22:3c:db'}]
*appsList* = ['RHEV-Tools 3.2.4', 'RHEV-Agent64 3.2.3', 'RHEV-Serial64 3.2.3', 'RHEV-Network64 3.2.2', 'RHEV-Network64 3.2.3', 'RHEV-Block64 3.2.3', 'RHEV-Balloon64 3.2.3', 'RHEV-Balloon64 3.2.2', 'RHEV-Agent64 3.2.2', 'RHEV-USB 3.2.3', 'RHEV-Block64 3.2.2', 'RHEV-Serial64 3.2.2']
*pid* = 11314
*guestIPs* = 10.34.60.148 # duplicated info
*displayIp* = 0
*displayPort* = 5902
*displaySecurePort* = 5903
*username* = user@W864GUESTAGENTT
*clientIp* =
*lastLogin* = 1361976900.67
Often Changed:
This data is changed quite often however it is not necessary to update
this data every 15 seconds. As this is cumulative data and reflects the
current status, and it does not need to be snapshotted every 15 seconds
to retrieve statistics. The data can be retrieved in much more generous
time slices. (e.g. Every 5 minutes)
*network* = {'vnet1': {'macAddr': '00:1a:4a:22:3c:db', 'rxDropped': '0', 'txDropped': '0', 'rxErrors': '0', 'txRate': '0.0', 'rxRate': '0.0', 'txErrors': '0', 'state': 'unknown', 'speed': '100', 'name': 'vnet1'}}
*disksUsage* = [{'path': 'c:\\', 'total': '64055406592', 'fs': 'NTFS', 'used': '19223846912'}, {'path': 'd:\\', 'total': '3490912256', 'fs': 'UDF', 'used': '3490912256'}]
*timeOffset* = 14422
*elapsedTime* = 68591
*hash* = 2335461227228498964
*statsAge* = 0.09 # unused
Often Changed but unused
This data does not seem to be used in the engine at all. It is *not*
even used in the data warehouse.
*memoryStats* = {'swap_out': '0', 'majflt': '0', 'mem_free': '1466884', 'swap_in': '0', 'pageflt': '0', 'mem_total': '2096736', 'mem_unused': '1466884'}
*balloonInfo* = {'balloon_max': 2097152, 'balloon_cur': 2097152}
*disks* = {'vda': {'readLatency': '0', 'apparentsize': '64424509440', 'writeLatency': '1754496', 'imageID': '28abb923-7b89-4638-84f8-1700f0b76482', 'flushLatency': '156549', 'readRate': '0.00', 'truesize': '18855059456', 'writeRate': '952.05'}, 'hdc': {'readLatency': '0', 'apparentsize': '0', 'writeLatency': '0', 'flushLatency': '0', 'readRate': '0.00', 'truesize': '0', 'writeRate': '0.00'}}
Very frequent uppdates needed by webadmin portal:
This data is mostly needed for the webadmin portal and might be required
to be updated quite often. An exception here is the statsAge field,
which seems to be unused by the Engine. This data could be requested
every 15 seconds to keep things as they are now.
*cpuSys* = 2.32
*cpuUser* = 1.34
*memUsage* = 30
Proposed Solution for VDSM & Engine:
We will introduce new optional parameters to getVmStats, getAllVmStats
and list to allow a finer grained specification of data which should be
included.
*Parameter:* *statsType*=/*<string>*/ (getVmStats, getAllVmStats only)
*Allowed values:*
* full (default to keep backwards compatibility)
* app-list (Just send the application list)
* rare (include everything from rarely changed to very frequent)
* often (include everything from often changed to very frequent)
* frequent (only send the very frequently changed items)
*Parameter:* *clientId*=*<string>* The client id is specified by the
client and should be unique however constantly used.
*Parameter:* *diff*=*<boolean>* In combination with the clientId VDSM
will send only differences to the previous request from the named
clientId. (if diff=true)
Additional Change:
Besides the introduction of the new parameters for list, getVmStats and
getAllVmStats it might make sense to include a hash for the appList into
the rarely changed section of the response which would allow to identify
changes and avoid having to sent the complete appList every so often and
only if the hash known to the client is outdated.
*Note:* The appList (Application List) reported by the guest agent could
be fully implemented on request only, as long as the guest agent
installed supports this. As there seems to be a request to have the
complete list of installed applications on all guests this data could be
quite extensive and a huge list. On the other hand this data is only
rarely visible and therefore it should not be requested all the time and
only on demand.
Improvement of the Guest Agent:
As part of the proposed solution it is necessary to improve the guest
agent as well. For the full application list there should be implemented
a caching system which will be fully reactive and should not poll the
application list for example all the time. The guest can create a
prepared data file containing all data in the JSON format (as used for
the communication with VDSM via VIO) and just have to read that file
from disk and directly sends it to VDSM. However it is quite possible
that this list is to big and it might have to be chunked into pieces.
(Multiple messages, which would have to be supported by VDSM then as
well) The solution for this is to make VDSM request this data and it
will retrieve the data necessary on request only.
--
Regards,
Vinzenz Feenstra | Senior Software Engineer
RedHat Engineering Virtualization R & D
Phone: +420 532 294 625
IRC: vfeenstr or evilissimo
Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com
--------------020305070807050907000005
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Please find the prettier version on the wiki:
<a class="moz-txt-link-freetext" href="http://www.ovirt.org/Proposal_VDSM_-_Engine_Data_Statistics_Retrieval">http://www.ovirt.org/Proposal_VDSM_-_Engine_Data_Statistics_Retrieval</a><br>
<br>
<h1 id="firstHeading" class="firstHeading page-header"><span
dir="auto">Proposal VDSM - Engine Data Statistics Retrieval</span></h1>
<h2><span class="mw-headline"
id="VDSM_.3C.3D.3E_Engine_data_retrieval_optimization">VDSM
<=> Engine data retrieval optimization </span></h2>
<h3> <span class="mw-headline" id="Motivation:"> Motivation: </span></h3>
<p>Currently the RHEVM engine is polling the a lot of data from VDSM
every 15 seconds. This should be optimized and the amount of data
requested should be more specific.
</p>
<p>For each VM the data currently contains much more information
than actually needed which blows up the size of the XML content
quite big. We could optimize this by splitting the reply on the
getVmStats based on the request of the engine into sections.
For this reason Omer Frenkel and me have split up the data into
parts based on their usage.
</p>
<p>This data can and usually does change during the lifetime of the
VM.
</p>
<h4> <span class="mw-headline" id="Rarely_Changed:"> Rarely
Changed: </span></h4>
<p>This data is change not very frequent and it should be enough to
update this only once in a while.
Most commonly this data changes after changes made in the UI or
after a migration of the VM to another Host.
</p>
<pre> <b>Status</b> = Running
<b>acpiEnable</b> = true
<b>vmType</b> = kvm
<b>guestName</b> = W864GUESTAGENTT
<b>displayType</b> = qxl
<b>guestOs</b> = Win 8
<b>kvmEnable</b> = true # <i><b>this should be constant and never changed</b></i>
<b>pauseCode</b> = NOERR
<b>monitorResponse</b> = 0
<b>session</b> = Locked # unused
<b>netIfaces</b> = [{'name': 'Realtek RTL8139C+ Fast Ethernet NIC', 'inet6': ['fe80::490c:92bb:bbcc:9f87'], 'inet': ['10.34.60.148'], 'hw': '00:1a:4a:22:3c:db'}]
<b>appsList</b> = ['RHEV-Tools 3.2.4', 'RHEV-Agent64 3.2.3', 'RHEV-Serial64 3.2.3', 'RHEV-Network64 3.2.2', 'RHEV-Network64 3.2.3', 'RHEV-Block64 3.2.3', 'RHEV-Balloon64 3.2.3', 'RHEV-Balloon64 3.2.2', 'RHEV-Agent64 3.2.2', 'RHEV-USB 3.2.3', 'RHEV-Block64 3.2.2', 'RHEV-Serial64 3.2.2']
<b>pid</b> = 11314
<b>guestIPs</b> = 10.34.60.148 # duplicated info
<b>displayIp</b> = 0
<b>displayPort</b> = 5902
<b>displaySecurePort</b> = 5903
<b>username</b> = user@W864GUESTAGENTT
<b>clientIp</b> =
<b>lastLogin</b> = 1361976900.67
</pre>
<h4> <span class="mw-headline" id="Often_Changed:"> Often Changed:
</span></h4>
<p>This data is changed quite often however it is not necessary to
update this data every 15 seconds. As this is cumulative data and
reflects the current status, and it does not need to be
snapshotted every 15 seconds to retrieve statistics. The data can
be retrieved in much more generous time slices. (e.g. Every 5
minutes)
</p>
<pre> <b>network</b> = {'vnet1': {'macAddr': '00:1a:4a:22:3c:db', 'rxDropped': '0', 'txDropped': '0', 'rxErrors': '0', 'txRate': '0.0', 'rxRate': '0.0', 'txErrors': '0', 'state': 'unknown', 'speed': '100', 'name': 'vnet1'}}
<b>disksUsage</b> = [{'path': 'c:\\', 'total': '64055406592', 'fs': 'NTFS', 'used': '19223846912'}, {'path': 'd:\\', 'total': '3490912256', 'fs': 'UDF', 'used': '3490912256'}]
<b>timeOffset</b> = 14422
<b>elapsedTime</b> = 68591
<b>hash</b> = 2335461227228498964
<b>statsAge</b> = 0.09 # unused
</pre>
<h4> <span class="mw-headline" id="Often_Changed_but_unused"> Often
Changed but unused </span></h4>
<p>This data does not seem to be used in the engine at all. It is <b>not</b>
even used in the data warehouse.
</p>
<pre> <b>memoryStats</b> = {'swap_out': '0', 'majflt': '0', 'mem_free': '1466884', 'swap_in': '0', 'pageflt': '0', 'mem_total': '2096736', 'mem_unused': '1466884'}
<b>balloonInfo</b> = {'balloon_max': 2097152, 'balloon_cur': 2097152}
<b>disks</b> = {'vda': {'readLatency': '0', 'apparentsize': '64424509440', 'writeLatency': '1754496', 'imageID': '28abb923-7b89-4638-84f8-1700f0b76482', 'flushLatency': '156549', 'readRate': '0.00', 'truesize': '18855059456', 'writeRate': '952.05'}, 'hdc': {'readLatency': '0', 'apparentsize': '0', 'writeLatency': '0', 'flushLatency': '0', 'readRate': '0.00', 'truesize': '0', 'writeRate': '0.00'}}
</pre>
<h4> <span class="mw-headline"
id="Very_frequent_uppdates_needed_by_webadmin_portal:"> Very
frequent uppdates needed by webadmin portal: </span></h4>
<p>This data is mostly needed for the webadmin portal and might be
required to be updated quite often. An exception here is the
statsAge field, which seems to be unused by the Engine.
This data could be requested every 15 seconds to keep things as
they are now.
</p>
<pre> <b>cpuSys</b> = 2.32
<b>cpuUser</b> = 1.34
<b>memUsage</b> = 30
</pre>
<h2> <span class="mw-headline"
id="Proposed_Solution_for_VDSM_.26_Engine:"> Proposed Solution
for VDSM & Engine: </span></h2>
<p>We will introduce new optional parameters to getVmStats,
getAllVmStats and list to allow a finer grained specification of
data which should be included.
</p>
<p><b>Parameter:</b> <b>statsType</b>=<i><b><string></b></i>
(getVmStats, getAllVmStats only)
<b>Allowed values:</b>
</p>
<ul>
<li> full (default to keep backwards compatibility)
</li>
<li> app-list (Just send the application list)
</li>
<li> rare (include everything from rarely changed to very
frequent)
</li>
<li> often (include everything from often changed to very
frequent)
</li>
<li> frequent (only send the very frequently changed items)
</li>
</ul>
<p><br>
<b>Parameter:</b> <b>clientId</b>=<b><string></b>
The client id is specified by the client and should be unique
however constantly used.
</p>
<p><b>Parameter:</b> <b>diff</b>=<b><boolean></b>
In combination with the clientId VDSM will send only differences
to the previous request from the named clientId. (if diff=true)
</p>
<p><br>
</p>
<h3> <span class="mw-headline" id="Additional_Change:"> Additional
Change: </span></h3>
<p>Besides the introduction of the new parameters for list,
getVmStats and getAllVmStats it might make sense to include a hash
for the appList into the rarely changed section of the response
which would allow to identify changes and avoid having to sent the
complete appList every so often and only if the hash known to the
client is outdated.
</p>
<p><b>Note:</b> The appList (Application List) reported by the guest
agent could be fully implemented on request only, as long as the
guest agent installed supports this. As there seems to be a
request to have the complete list of installed applications on all
guests this data could be quite extensive and a huge list. On the
other hand this data is only rarely visible and therefore it
should not be requested all the time and only on demand.
</p>
<h3> <span class="mw-headline" id="Improvement_of_the_Guest_Agent:">
Improvement of the Guest Agent: </span></h3>
<p>As part of the proposed solution it is necessary to improve the
guest agent as well. For the full application list there should be
implemented a caching system which will be fully reactive and
should not poll the application list for example all the time.
The guest can create a prepared data file containing all data in
the JSON format (as used for the communication with VDSM via VIO)
and just have to read that file from disk and directly sends it to
VDSM.
However it is quite possible that this list is to big and it might
have to be chunked into pieces. (Multiple messages, which would
have to be supported by VDSM then as well)
The solution for this is to make VDSM request this data and it
will retrieve the data necessary on request only.
</p>
<pre class="moz-signature" cols="72">--
Regards,
Vinzenz Feenstra | Senior Software Engineer
RedHat Engineering Virtualization R & D
Phone: +420 532 294 625
IRC: vfeenstr or evilissimo
Better technology. Faster innovation. Powered by community collaboration.
See how it works at redhat.com</pre>
</body>
</html>
--------------020305070807050907000005--
8
23
[Engine-devel] [ANN] Development environment and Gentoo packaging (preview)
by Alon Bar-Lev 16 May '13
by Alon Bar-Lev 16 May '13
16 May '13
Hello All,
We[1] are working to rewrite the current installer to something more portable and flexible.
Currently two milestones had been reached:
1. Ability to install almost fully functioning ovirt-engine at $HOME for development environment.
2. Porting ovirt-engine to run on different distribution, Gentoo.
We will be glad to receive feedback on either.
Code is located at github[2] for now, at otopi branch.
Instructions for setting up development environment are available[3].
Gentoo overlay for live ebuilds is available[4], the following packages are valid:
- app-emulation/otopi
- app-emulation/ovirt-host-deploy
- app-emulation/ovirt-jboss-bin
- app-emulation/ovirt-engine
Why Gentoo first? because source based distributions demands the highest level of customization, solving the complex issue ease to continue porting to binary based distributions.
Please remember that this is work in progress, and not guarantee to be stable or even work... The installer was re-written from scratch so expect issues at this point.
Any feedback is welcomed, we are focusing first in providing the functionality of the existing installer to be able to replace it entirely before going into new adventures.
Regards,
Alon Bar-Lev.
[1] Alex Lourie, Sandro Bonazzola, Alon Bar-Lev
[2] https://github.com/alonbl/ovirt-engine
[3] https://github.com/alonbl/ovirt-engine/blob/otopi/README.developer
[4] https://github.com/alonbl/ovirt-overlay
2
1
Hi All
Recent development of the otopi [1] framework allows us to migrate the engine-setup,
upgrade and cleanup (and potentially other) utilities to implementation as an otopi
plugin.
Potential benefits of such a move are:
1. Be able to port engine to other distributions.
2. Be able to install engine in a development mode.
3. Be able to customize installation easily.
4. Share installation of components (reports, dwh).
5. Modular implementation, reduce maintenance costs.
6. Code reuse of installer code for multiple purposes (host-deploy,
enigne-setup).
Currently we are in the process of creating a 'setup' plugin for
the otopi, and the progress can be monitored at [2]. The current
roadmap for the feature is as follows:
1. Recreate the configuration utilities as plugins in otopi.
2. Support side-by side installation using both the old and the
new utilities.
3. Switch to the new utility when the confidence that it is on-par
with an old one is high.
Our goal is to have the new utilities ready for 3.3 release (at
least for the step 2 in the roadmap).
We'd like to hear as much feedback as possible, so we could
address it as soon as possible.
Thanks!
[1] http://gerrit.ovirt.org/#/q/project:otopi,n,z
[2] http://www.ovirt.org/Features/Otopi_Infra_Migration
6
12
[Engine-devel] Any way to setup ovirt engine 3.2.0 or 3.2.1 running enviroment?
by Chen, Wei D 03 May '13
by Chen, Wei D 03 May '13
03 May '13
Hi,
We notice that ovirt-engine's version (rpm package and source code) has updated from 3.2.0 to 3.2.1. As our development process is always based on 3.2.0. Is there any way to re-setup 3.2.0 running environment?
Besides, we also cannot setup 3.2.1 ovrit-engine running environment as its dependent package glusterfs-3.4 cannot be found from ovirt repo or fedora18 repo. How can I fix this issue? Thanks.
Best Regards,
Dave Chen
4
7
Hi all,
The current mechanism in oVirt to check whether a feature is supported
in a particular compatibility version is to use the FeatureSupported
class. e.g.
FeatureSupported.networkLinking(getVm().getVdsGroupCompatibilityVersion())
Checks whether the "network linking" feature is supported for the the
VM's cluster compatibility version. This internally checks whether the
value of the corresponding config (NetworkLinkingSupported) for the
given compatibility version is true/false.
I'm not sure if this is a good idea, since a feature is typically
supported "from" a particular version. E.g. Gluster support was
introduced in 3.1, and it continues to be available in all subsequent
versions. So I see no point in adding configuration for every version
indicating whether the feature is supported in that version or not. I
suggest to use either of the following options:
1) Instead of using a boolean config for each version, use a single
string config that indicates the "supported from" version e.g.
GlusterSupportedFrom = 3.1. There could be rare cases where a feature,
for some reason, is removed in some release. In such cases, we could use
one additional config for the "supported to" version.
2) Continue with the boolean approach, but do not have entries for every
version; rather make use of the "default value" for majority of cases,
and add the explicit version mapping for the minority e.g.
GlusterSupported = true by default, and false in case of 3.0 (only one
config required for 3.0)
Thoughts?
Regards,
Shireesh
7
16
Hi guys,
I've just merged some UI Plugin patches that improve existing API functions, as well as add some new API functions. Please read on to learn what's new.
Modal dialog API
================
Function improved: showDialog
New signature:
showDialog(title, dialogToken, contentUrl, width, height [, options])
Example usage:
showDialog('My Dialog', 'my-dialog', 'http://www.foobar.com/', '800px', '600px', {
// Default value = empty array (no buttons)
buttons: [
{
label: 'Do stuff',
onClick: function() {
alert('Bump!');
}
}
],
// Default value = false
resizeEnabled: true,
// Default value = true
closeIconVisible: true,
// Default value = true
closeOnEscKey: true
});
Notable changes:
* modal dialogs now look & feel the same as standard WebAdmin dialogs
* width & height are strings containing CSS units
* the reason why buttons default to empty array is to give plugin authors the choice to provide custom buttons (or similar input elements) via dialog content (iframe), and use HTML5 window.postMessage to call the plugin (coming soon!)
--
New function: setDialogContentUrl
New signature:
setDialogContentUrl(dialogToken, contentUrl)
Example usage:
setDialogContentUrl('my-dialog', 'http://www.example.com/')
--
New function: closeDialog
New signature:
closeDialog(dialogToken)
Example usage:
closeDialog('my-dialog')
Tab API
=======
Functions improved: addMainTab & addSubTab
New signatures:
addMainTab(label, historyToken, contentUrl [, options])
addSubTab(entityTypeName, label, historyToken, contentUrl [, options])
Example usage:
// Tab is left-aligned by default
addMainTab('Foo Tab', 'foo-tab', 'http://www.foo.com/');
// Tab is right-aligned via options object
addSubTab('VirtualMachine', 'Bar Tab', 'bar-tab', 'http://www.bar.com/', {
alignRight: true
});
--
Regards,
Vojtech
5
8
[Engine-devel] Open Attestation integration with oVirt engine proposal has submitted patchset5 for your review
by Chen, Wei D 02 Apr '13
by Chen, Wei D 02 Apr '13
02 Apr '13
Hi all,
Before submitting this patch set, we has updated our design page, and new feature about VM template has added to this patchset. In patchset a lot of frontend changes has been imported.
Welcome to review our patchset and thanks advance for your suggestion.
Detailed description: http://wiki.ovirt.org/Trusted_compute_pools
In this patch set, follow changes has been introduced:
1. GUI changes to support for creating a trusted VM on a trusted physical host.
2. View/Edit VM changes to enable end user switch between three run on options.
3. Template relevant changes to support end user create a trusted VM template and create trusted VM based on this template afterwards.
4. Bug fixing and code cleanup.
5. wiki design page update.
Best Regards,
Dave Chen
4
7
Hello,
I would like to start a discussion about the subject. I think this is
something we need to do if one day we want to be able to use any
database other than PostgreSQL.
I did an small example of what it takes and how it looks like to have
the SQL code into the DAOs:
http://gerrit.ovirt.org/13347
It isn't rocket science, it isn't an exciting task, it isn't fun, but
something I think we should eventually do.
I appreciate any comment about how and when to do this, including those
saying that instead of this primitive approach we should use this or
that ORM framework.
Regards,
Juan Hernandez
--
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
13
25
I would like to propose that we add Sandro Bonazzola as a maintainer for
the Ovirt ISO Uploader, Image Uploader and Log Collector. He too has
been enormously helpful with the maintenance of the tools.
Thanks,
Keith Robertson
6
5
Hi
In a current setup flow there are 3 ways of generating mac pool ranges:
1. Generated from the second and third parts of the first non-local IP:
{base MAC}:{IP part2}:{IP part3}:00-{base MAC}:{IP part2}:{IP
part3}:ff
2. If (1) could not be done for some reason, we have default values in
setup.
3. If (2) didn't work for some reason, the values are left as created
during DB creation.
Assuming that we want (1) to work the best way possible, and to create
"random" enough values for Mac Pool ranges, I would ask for an opinion
for a better way.
I am considering creating random int values instead of fetching the IP
as it's simpler and safer than parsing 'ip a' output.
Thanks.
Alex Lourie
Software Engineer in Integration
Red Hat.
1
0
Hi Daniel,
these are excellent questions! I'm CC'ing engine-devel to reach out to everyone who might be interested in them.
> why dialogToken is mandatory? (wouldn't it be more convenience to make it optional?)
dialogToken is used to work with the dialog once it's displayed via showDialog API function.
For example, there are no buttons defined for the dialog by default, so you might want to define at least a "Close" button:
api.showDialog('My Dialog', 'my-dialog', 'http://www.abc.com/', '800px', '600px', {
buttons: [
{
label: 'Close',
onClick: function() { api.closeDialog('my-dialog'); }
}
]
});
As you can see, you need dialogToken at least to close the dialog :) another example of a dialog button:
{
label: 'Load different content',
onClick: function() { api.setDialogContentUrl('my-dialog', 'http://www.xyz.com/'); }
}
(The above are just simple examples, you can put whatever code you like into onClick function.)
> what are dialogToken's restrictions (no-spaces?/etc...)
Unlike historyToken in custom tab API (addMainTab/addSubTab/etc.), dialogToken doesn't have any restrictions. It's recommended to use "token-string-lowercase-without-spaces" syntax, but it's just a recommendation.
As for historyToken in custom tab API, the "token-string-lowercase-without-spaces" syntax is preferred, because historyToken value will be part of WebAdmin URL (e.g. WebAdmin.html#my-main-tab) when navigating to the given custom tab.
Regards,
Vojtech
----- Original Message -----
From: "Daniel Erez" <derez(a)redhat.com>
To: "Vojtech Szocs" <vszocs(a)redhat.com>
Sent: Thursday, March 28, 2013 8:14:38 PM
Subject: webadmin: UI plugin dialog API improved
Hi Voj,
Some qqs about showDialog api:
* why dialogToken is mandatory? (wouldn't it be more convenience to make it optional?)
* what are dialogToken's restrictions (no-spaces?/etc...)
10x,
Daniel
1
0
I would like to propose that we add Kiril Nesenko as a maintainer for
the Ovirt ISO Uploader, Image Uploader and Log Collector. He has been
enormously helpful with the maintenance of the tools.
Thanks,
Keith Robertson
8
8
[Engine-devel] oVirt web GUI no longer supports Microsoft Internet Explorer 6 and 7
by Vojtech Szocs 29 Mar '13
by Vojtech Szocs 29 Mar '13
29 Mar '13
Hello everyone,
please be advised that oVirt web GUI (WebAdmin & UserPortal) no longer supports Microsoft Internet Explorer 6 and 7.
It's still possible to use Internet Explorer 8, although it has known performance issues which impact overall application performance. For WebAdmin, it's recommended to use Internet Explorer 9 or above.
We decided to drop support for Internet Explorer 6 and 7 mainly because of poor JavaScript & rendering engine performance and poor compliance to HTML5 standards.
Regards,
Vojtech
1
0
29 Mar '13
Hi guys,
it's now possible to specify location (representation) of buttons added via addMainTabActionButton API.
For example:
api.addMainTabActionButton('Host', 'My Button', {
location: 'OnlyFromContext',
onClick: function() { ... },
...
});
Supported values for button location:
* 'OnlyFromContext' - button available only from context menu
* 'OnlyFromToolBar' - button available only from toolbar (action panel)
* 'ContextAndToolBar' (default) - button available from both context menu and toolbar (action panel)
Regards,
Vojtech
1
0
[Engine-devel] No need to compile for all browsers when debugging oVirt Frontend applications
by Vojtech Szocs 29 Mar '13
by Vojtech Szocs 29 Mar '13
29 Mar '13
Hi guys,
I've just learned that it's not necessary to do GWT compilation for *all browsers* in order to debug given oVirt Frontend application (WebAdmin or UserPortal).
Full oVirt build & deploy to Engine is still recommended, but you can use "gwt.userAgent" property to restrict GWT compilation only for a couple of browsers:
$ mvn clean install -Pdep,gwt-admin,gwt-user -Dgwt.userAgent=gecko1_8,ie8
The example above means "compile only for Firefox and IE8".
I suspect it's because of GWT permutation selector script (*.nocache.js) being optimized-out in case you perform compilation for a single browser, which might interfere with the way how GWT plugin connects to Development Mode.
Regards,
Vojtech
1
0
Hi,
I'm currently working on bug 904029, support for POSIX parameters and values
in engine-manage-domains. I think there are two possible solutions:
1) Write custom parser (similar to EngineConfigCLIParser used for engine-config)
2) Add CLI parsing library to project and use it for all command line clients
(first implementation could be for engine-manage-domains)
I think 2) is much better approach, but I'm not sure about the process of adding new
library to project.
Personally I like JCommander ( http://jcommander.org ), using annotation for parameter
specification is great. JCommander is licensed with Apache 2.0 license, so the addition
shouldn't be a problem.
So, would it be possible to add JCommander library to project?
Martin Perina
2
2
Hello together,
regarding support for OpenLDAP as domain provider I found this mail from last year on ovirt-users list :http://lists.ovirt.org/pipermail/users/2012-July/002791.html
I would like to add support for OpenLDAP to oVirt. As a start I had a look at ovirt-engine/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/adbroker/ITDS* which seems to be very similar to the RHDS classes.
I simply copied all ITDS*.java files to OpenLdap*.java and changed class names and so forth from ITDS/itds to OpenLdap/openLdap. I also changed user and group attributes to make sense for OpenLDAP. Additionally I enhanced the LdapQueryMetadataFactoryImpl class, again copying mostly from ITDS and others.
To the very last I enhanced the enum at ovirt-engine/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/ldap/LdapProviderType.java with an OpenLDAP entry.
Right now I do not oversee the whole LDAPBroker code. Especially I do not know how enum at LdapProviderType.java is related the code found at bll/adbroker/*.
Could you please give me some guidance and advise, if I am on the right track? I could also send a diff of all changes to the list, if that is helpful. Thanks very much.
3
13
Hi,
I am working on refactoring some of the backend code in bll and need to
create interfaces so that I can eliminate the dependency between bll and
the new module.
Currently I created the interfaces in
org.ovirt.engine.core.common.interfaces, but from what I understand this
module is used by both frontend and backend. The new interfaces will
only be used by the backend. What would be the best place to put these
new interfaces?
Ravi
6
6
Hi,
I get the following error in the engine web gui while trying to
create a new VM (server or desktop)
Error:
gvm:
Cannot add VM if custom VM properties are in invalid format. Please
check the input.
Whats custom property is it talking about ?
Under 'Custom Property' in new VM Dialog.. it has nothing.. it says "no
properties"
I am on a git based engine setup.... trying to validate gluster storage
domain, but unable to proceed from this step.
Any workarounds/inputs appreciate
thanx,
deepak
2
4
Hi,
The watchdog patch was broken down into a patchset:
http://gerrit.ovirt.org/13057
http://gerrit.ovirt.org/13058
http://gerrit.ovirt.org/13059
http://gerrit.ovirt.org/13060
You are welcome to review it, it is working, however due to internal changes it is being completely rewritten.
Laszlo
1
0
[Engine-devel] Features requests for the setup/configuration utilities - feedback requested
by Alex Lourie 19 Mar '13
by Alex Lourie 19 Mar '13
19 Mar '13
Hi All
As we are working on the configuration utilities (engine-setup,
engine-upgrade and engine-cleanup), we would like to get as much
community involvement as possible. As such, we'd like to hear the
wishes of the community in regards with those tools.
I've created a wiki page [1] where we will keep the list of feature
requests. We would appreciate adding features to the list of by
replying to this thread directly.
Please do not bugs to that list - the bugs should be resolved in due
course according to their priorities and should not affect the features
that we would like to implement.
Thank you.
[1] http://www.ovirt.org/Features/Engine-Config-Utilities
--
Alex Lourie
Software Engineer in RHEVM Integration
Red Hat
4
10
Hi guys,
for those of you getting "Exception: java.lang.OutOfMemoryError" or similar errors during GWT compilation of WebAdmin/UserPortal, it's now possible to override default JVM arguments for GWT compiler via command line.
For example:
$ mvn clean install -Pdep,gwt-admin,gwt-user -Dgwt-plugin.extraJvmArgs="-Xms1024M -Xmx2048M -XX:PermSize=256M -XX:MaxPermSize=512M"
Note: you can find default "gwt-plugin.extraJvmArgs" value in $OVIRT_HOME/frontend/webadmin/modules/pom.xml
Regards,
Vojtech
1
0
[Engine-devel] vfs_type not being sent by engine to VDSM for GLUSTER DOMAIN case
by Deepak C Shetty 19 Mar '13
by Deepak C Shetty 19 Mar '13
19 Mar '13
This is a multi-part message in MIME format.
--------------040206010801040103040709
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
I by mistake sent this earlier to users@ovirt
I think the right list is engine-devel, hence resending. Sorry for the
mispost earlier.
-------- Original Message --------
Subject: vfs_type not being sent by engine to VDSM for GLUSTER DOMAIN case
Date: Mon, 18 Mar 2013 20:23:57 +0530
From: Deepak C Shetty <deepakcs(a)linux.vnet.ibm.com>
Organization: IBM India Pvt. Ltd.
To: users(a)ovirt.org <users(a)ovirt.org>, Sharad Mishra <snmishra(a)us.ibm.com>
Hi All,
I am validating GLUSTERFS Storage domain engine patches (worked on
by Sharad, in Cc) as posted here...
http://gerrit.ovirt.org/#/q/status:open+project:ovirt-engine+branch:master+…
against VDSM Glusterfs domain support (already upstream in VDSM)
I see the below issue as part of me creatign a new Gluster Storage
DOmain in the UI
Engine logs...
2013-03-18 13:27:29,149 INFO
[org.ovirt.engine.core.vdsbroker.vdsbroker.ConnectStorageServerVDSCommand]
(http--0.0.0.0-8700-1) [4b751967] START,
ConnectStorageServerVDSCommand(HostName = vm-vdsm-de-1, HostId =
c0ff5edc-4e30-4553-9125-2d1cee9f19ec, storagePoolId =
00000000-0000-0000-0000-000000000000, storageType = GLUSTERFS,
connectionList = [{ id: null, connection: vm-vdsm-de-1:dpkvol4, iqn:
null, vfsType: glusterfs, mountOptions: null, nfsVersion: null,
nfsRetrans: null, nfsTimeo: null };]), log id: f88d42d
VDSM Logs...
Thread-77::INFO::2013-03-18
13:32:35,541::logUtils::44::dispatcher::(wrapper) Run and protect:
connectStorageServer(domType=7,
spUUID='00000000-0000-0000-0000-000000000000', conList=[{'connection':
'vm-vdsm-de-1:dpkvol4', 'iqn': '', 'portal': '', 'user': '', 'password':
'******', 'id': '00000000-0000-0000-0000-000000000000', 'port': ''}],
options=None)*--> Notice no vfs_type here !!!*
VDSM doesn't recv. the vfs_type in the conList dict !!!
I had this small chat with Saggi of VDSM, just to confirm that there
isn't a possibility that VDSM might be stripping args that are recd.
from Engine.. and it doesn't.
---------------------------------------------------------------------------------------------------------------------
<deepakcs> saggi, Hi
<saggi> deepakcs: hi
<deepakcs> saggi, Is it possible that VDSM might strip down some of the
connparams that are recd. as part of connectStorageServer ?
<deepakcs> saggi, In engine log for GLUSTERFS_DOMAIN i see vfsType being
passed, but connectStorageServer log doesn't show vfs_type in the params
dict
<deepakcs> saggi, so wodering where vfs_type is getting dropped in this
whole process
<saggi> Probably not being sent
<saggi> if it's not being logged
<deepakcs> saggi, engine log has this....
<deepakcs> 2013-03-18 13:27:29,149 INFO
[org.ovirt.engine.core.vdsbroker.vdsbroker.ConnectStorageServerVDSCommand]
(http--0.0.0.0-8700-1) [4b751967] START,
ConnectStorageServerVDSCommand(HostName = vm-vdsm-de-1, HostId =
c0ff5edc-4e30-4553-9125-2d1cee9f19ec, storagePoolId =
00000000-0000-0000-0000-000000000000, storageType = GLUSTERFS,
connectionList = [{ id: null, connection: vm-vdsm-de-1:dpkvol4, iqn:
null, vfsType: glusterfs, mountOptions: null, nfsVersion: nul
<deepakcs> l, nfsRetrans: null, nfsTimeo: null };]), log id: f88d42d
<deepakcs> saggi, on VDSM side i see this...
<deepakcs> Thread-77::INFO::2013-03-18
13:32:35,541::logUtils::44::dispatcher::(wrapper) Run and protect:
connectStorageServer(domType=7,
spUUID='00000000-0000-0000-0000-000000000000', conList=[{'connection':
'vm-vdsm-de-1:dpkvol4', 'iqn': '', 'portal': '', 'user': '', 'password':
'******', 'id': '00000000-0000-0000-0000-000000000000', 'port': ''}],
options=None) --> Notice no vfs_type here !!!
<saggi> Then you are not sending the correct connection type
<deepakcs> saggi, 'you' means the engine side of code ? engine patches
is being done by Sharad, and I amtrying to work with them on this issue
<deepakcs> saggi, domType=7 is GLUSTERFS_DOMAIN, so its correct on that
front
<saggi> If it show nfsRetrans you are using nfs which doesn't have a
vfs_type argument
<deepakcs> saggi, but engine log says storageType = GLUSTERFS
<deepakcs> saggi, maybe i can send mail to users@ovirt list to see if
anybody can provide more clues
<deepakcs> saggi, but definitely this doesn't looks like a vdsm side of
issue rite ?
<saggi> We log the params as we get them
<deepakcs> saggi, right, thats what i also see.. just wanted to confirm
once with you, before i sent mail to ovirt folks
---------------------------------------------------------------------------------------------------------------------
Can someone help provide any clues on what might be the issue here ?
Because VDSM doesn't see vfs_type, the connectStorageServer fails and
hence new SD cannot be created !
thanx,
deepak
--------------040206010801040103040709
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<tt>I by mistake sent this earlier to users@ovirt<br>
I think the right list is engine-devel, hence resending. Sorry for
the mispost earlier.<br>
</tt>
<div class="moz-forward-container"><br>
<br>
-------- Original Message --------
<table class="moz-email-headers-table" border="0" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject:
</th>
<td>vfs_type not being sent by engine to VDSM for GLUSTER
DOMAIN case</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date: </th>
<td>Mon, 18 Mar 2013 20:23:57 +0530</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
<td>Deepak C Shetty <a class="moz-txt-link-rfc2396E" href="mailto:deepakcs@linux.vnet.ibm.com"><deepakcs(a)linux.vnet.ibm.com></a></td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Organization:
</th>
<td>IBM India Pvt. Ltd.</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">To: </th>
<td><a class="moz-txt-link-abbreviated" href="mailto:users@ovirt.org">users(a)ovirt.org</a> <a class="moz-txt-link-rfc2396E" href="mailto:users@ovirt.org"><users(a)ovirt.org></a>, Sharad Mishra
<a class="moz-txt-link-rfc2396E" href="mailto:snmishra@us.ibm.com"><snmishra(a)us.ibm.com></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<tt>Hi All,<br>
I am validating GLUSTERFS Storage domain engine patches
(worked on by Sharad, in Cc) as posted here...<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://gerrit.ovirt.org/#/q/status:open+project:ovirt-engine+branch:master+…">http://gerrit.ovirt.org/#/q/status:open+project:ovirt-engine+branch:master+…</a><br>
against VDSM Glusterfs domain support (already upstream in VDSM)<br>
<br>
I see the below issue as part of me creatign a new Gluster
Storage DOmain in the UI<br>
<br>
Engine logs...<br>
<br>
2013-03-18 13:27:29,149 INFO
[org.ovirt.engine.core.vdsbroker.vdsbroker.ConnectStorageServerVDSCommand]
(http--0.0.0.0-8700-1) [4b751967] START,
ConnectStorageServerVDSCommand(HostName = vm-vdsm-de-1, HostId =
c0ff5edc-4e30-4553-9125-2d1cee9f19ec, storagePoolId =
00000000-0000-0000-0000-000000000000, storageType = GLUSTERFS,
connectionList = [{ id: null, connection: vm-vdsm-de-1:dpkvol4,
iqn: null, vfsType: glusterfs, mountOptions: null, nfsVersion:
null, nfsRetrans: null, nfsTimeo: null };]), log id: f88d42d<br>
<br>
VDSM Logs...<br>
<br>
Thread-77::<a moz-do-not-send="true"
class="moz-txt-link-freetext" href="INFO::2013-03-18">INFO::2013-03-18</a>
13:32:35,541::logUtils::44::dispatcher::(wrapper) Run and
protect: connectStorageServer(domType=7,
spUUID='00000000-0000-0000-0000-000000000000',
conList=[{'connection': 'vm-vdsm-de-1:dpkvol4', 'iqn': '',
'portal': '', 'user': '', 'password': '******', 'id':
'00000000-0000-0000-0000-000000000000', 'port': ''}],
options=None)<b> --> Notice no vfs_type here !!!</b><br>
<br>
VDSM doesn't recv. the vfs_type in the conList dict !!!<br>
<br>
I had this small chat with Saggi of VDSM, just to confirm that
there isn't a possibility that VDSM might be stripping args that
are recd. from Engine.. and it doesn't.<br>
<br>
</tt><br>
<tt><tt>---------------------------------------------------------------------------------------------------------------------<br>
</tt><deepakcs> saggi, Hi<br>
<saggi> deepakcs: hi<br>
<br>
<deepakcs> saggi, Is it possible that VDSM might strip
down some of the connparams that are recd. as part of
connectStorageServer ?<br>
<deepakcs> saggi, In engine log for GLUSTERFS_DOMAIN i see
vfsType being passed, but connectStorageServer log doesn't show
vfs_type in the params dict<br>
<deepakcs> saggi, so wodering where vfs_type is getting
dropped in this whole process<br>
<saggi> Probably not being sent<br>
<saggi> if it's not being logged<br>
<deepakcs> saggi, engine log has this....<br>
<deepakcs> 2013-03-18 13:27:29,149 INFO
[org.ovirt.engine.core.vdsbroker.vdsbroker.ConnectStorageServerVDSCommand]
(http--0.0.0.0-8700-1) [4b751967] START,
ConnectStorageServerVDSCommand(HostName = vm-vdsm-de-1, HostId =
c0ff5edc-4e30-4553-9125-2d1cee9f19ec, storagePoolId =
00000000-0000-0000-0000-000000000000, storageType = GLUSTERFS,
connectionList = [{ id: null, connection: vm-vdsm-de-1:dpkvol4,
iqn: null, vfsType: glusterfs, mountOptions: null, nfsVersion:
nul<br>
<deepakcs> l, nfsRetrans: null, nfsTimeo: null };]), log
id: f88d42d<br>
<deepakcs> saggi, on VDSM side i see this...<br>
<deepakcs> Thread-77::<a moz-do-not-send="true"
class="moz-txt-link-freetext" href="INFO::2013-03-18">INFO::2013-03-18</a>
13:32:35,541::logUtils::44::dispatcher::(wrapper) Run and
protect: connectStorageServer(domType=7,
spUUID='00000000-0000-0000-0000-000000000000',
conList=[{'connection': 'vm-vdsm-de-1:dpkvol4', 'iqn': '',
'portal': '', 'user': '', 'password': '******', 'id':
'00000000-0000-0000-0000-000000000000', 'port': ''}],
options=None) --> Notice no vfs_type here !!!<br>
<saggi> Then you are not sending the correct connection
type<br>
<br>
<deepakcs> saggi, 'you' means the engine side of code ?
engine patches is being done by Sharad, and I amtrying to work
with them on this issue<br>
<br>
<deepakcs> saggi, domType=7 is GLUSTERFS_DOMAIN, so its
correct on that front<br>
<saggi> If it show nfsRetrans you are using nfs which
doesn't have a vfs_type argument<br>
<deepakcs> saggi, but engine log says storageType =
GLUSTERFS<br>
<deepakcs> saggi, maybe i can send mail to users@ovirt
list to see if anybody can provide more clues<br>
<deepakcs> saggi, but definitely this doesn't looks like a
vdsm side of issue rite ?<br>
<saggi> We log the params as we get them<br>
<br>
<deepakcs> saggi, right, thats what i also see.. just
wanted to confirm once with you, before i sent mail to ovirt
folks<br>
<br>
---------------------------------------------------------------------------------------------------------------------<br>
<br>
<br>
Can someone help provide any clues on what might be the issue
here ?<br>
Because VDSM doesn't see vfs_type, the connectStorageServer
fails and hence new SD cannot be created !<br>
<br>
thanx,<br>
deepak<br>
<br>
</tt><br>
<br>
</div>
<br>
</body>
</html>
--------------040206010801040103040709--
3
2
Hi,
We are trying to develop a simple android app to monitor and manage
gluster clusters by consuming the restapi exposed by engine. The first
screen is the login screen, which is similar to the webadmin login
screen. Here, we want to populate the combo box of "domains" by fetching
it from the restapi. However, the domains api cannot be invoked without
authentication! So we have a sort of a chicken-and-egg problem.
Any suggestions on how to tackle this? I feel the "domains" api should
be "public", in the sense it should not expect authentication.
Regards,
Shireesh
6
9
Hello,
On recent fedora-18 NetworkManager started to set default STP for the bridges to on, this is a change in the default of distribution, which up until now was off, I opened a bug[1].
If you experiencing disconnect of hosts from network due to STP detection, a workaround is available.
Simply add:
---
STP="off"
---
To the wired interfaces (eth0, em1...) before host deployment, this will be copied to the management bridge and will prevent NetworkManager to use its default.
Regards,
Alon Bar-Lev.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=922702
1
0
[Engine-devel] Proposal for support ISO domain on other types of file based storage.
by Mark Wu 18 Mar '13
by Mark Wu 18 Mar '13
18 Mar '13
This is a multi-part message in MIME format.
--------------070305010507040809030004
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hi guys,
Currently, ISO domain is only supported on NFS storage. It could
improve the ease of use if it allows other types
of file based storage to store ISO images. After an investigation, I
found there's not any restriction on this idea.
So the whole work is removing the limitation on engine side. That means
engine should allow ISO domain could
have different storage type from the data center it's attached, like
what we do with nfs ISO domain in SAN DC.
I start this idea with localfs. I know local storage can't be seen in
cluster level. But it also provides a choice if no
NFS available. VMs can be created on the host which has the ISO repo,
and then be migrated to any other host in the cluster.
I have done the initial patches: allow creation ISO domain on localfs
[1] and support import ISO domain on localfs [2]
I don't have much experience in java/j2ee/web development and engine
architecture. The patches just work for me.
I am not sure if it will bring some potential problems. So any feedback
on the patch or the idea will be appreciated very much.
Mark.
[1] http://gerrit.ovirt.org/#/c/12687/
[2] http://gerrit.ovirt.org/#/c/12916/
--------------070305010507040809030004
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi guys, <br>
<br>
Currently, ISO domain is only supported on NFS storage. It could
improve the ease of use if it allows other types<br>
of file based storage to store ISO images. After an investigation,
I found there's not any restriction on this idea.<br>
So the whole work is removing the limitation on engine side. That
means engine should allow ISO domain could <br>
have different storage type from the data center it's attached, like
what we do with nfs ISO domain in SAN DC.<br>
<br>
I start this idea with localfs. I know local storage can't be seen
in cluster level. But it also provides a choice if no<br>
NFS available. VMs can be created on the host which has the ISO
repo, and then be migrated to any other host in the cluster.<br>
I have done the initial patches: allow creation ISO domain on
localfs [1] and support import ISO domain on localfs [2]<br>
I don't have much experience in java/j2ee/web development and engine
architecture. The patches just work for me.<br>
I am not sure if it will bring some potential problems. So any
feedback on the patch or the idea will be appreciated very much.<br>
<br>
<br>
Mark.<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<br>
[1] <a href="http://gerrit.ovirt.org/#/c/12687/">http://gerrit.ovirt.org/#/c/12687/</a><br>
[2]
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<a href="http://gerrit.ovirt.org/#/c/12916/">http://gerrit.ovirt.org/#/c/12916/<br>
</a>
</body>
</html>
--------------070305010507040809030004--
3
9
[Engine-devel] make rpm error: No targets specified and no makefile found. Stop
by qyddbear 18 Mar '13
by qyddbear 18 Mar '13
18 Mar '13
------=_Part_279309_491577683.1363594708599
Content-Type: text/plain; charset=GBK
Content-Transfer-Encoding: 7bit
Hi, I am a green learner, I tried to make ovirt-engine rpm from compiled source code. when I run make rpm, and the log as follows. Can anyone tell me what's the matter? Thanks!
[root@localhost ovirt-engine-3.1.0]# make rpm
sed -e 's/@PACKAGE_VERSION@/3.1.0/g' \
-e 's/@PACKAGE_RELEASE@/3.26/g' packaging/fedora/spec/ovirt-engine.spec.in > ovirt-engine.spec
git ls-files | tar --files-from /proc/self/fd/0 -czf ovirt-engine-3.1.0.tar.gz ovirt-engine.spec
rm -f ovirt-engine.spec
You can use rpmbuild -tb ovirt-engine-3.1.0.tar.gz to produce rpms
rm -rf /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild
mkdir -p /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/{SPECS,RPMS,SRPMS,SOURCES,BUILD,BUILDROOT}
mkdir -p output
rpmbuild -ts --define="_topdir /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild" ovirt-engine-3.1.0.tar.gz
Wrote: /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/SRPMS/ovirt-engine-3.1.0-3.26.el6.src.rpm
mv /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/SRPMS/*.rpm output
rm -rf /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild
srpm is ready at output
rm -rf /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild
mkdir -p /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/{SPECS,RPMS,SRPMS,SOURCES,BUILD,BUILDROOT}
mkdir -p output
rpmbuild --define="_topdir /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild" --rebuild output/ovirt-engine-3.1.0*.src.rpm
Installing output/ovirt-engine-3.1.0-3.26.el6.src.rpm
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.3JQHHM
+ umask 022
+ cd /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD
+ rm -rf ovirt-engine-3.1.0
+ /bin/mkdir -p ovirt-engine-3.1.0
+ cd ovirt-engine-3.1.0
+ /bin/tar -xf -
+ /usr/bin/gzip -dc /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/SOURCES/ovirt-engine-3.1.0.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.qesWT3
+ umask 022
+ cd /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD
+ cd ovirt-engine-3.1.0
+ LANG=C
+ export LANG
+ unset DISPLAY
+ make -j1 PACKAGE_NAME=ovirt-engine ENGINE_NAME=ovirt-engine LOCALSTATE_DIR=/var ENGINE_STATE=/var/lib/ovirt-engine PREFIX=/usr SYSCONF_DIR=/etc BIN_DIR=/usr/bin DATAROOT_DIR=/usr/share MAN_DIR=/usr/share/man PYTHON=/usr/bin/python PYTHON_DIR=/usr/lib/python2.6/site-packages JAVA_DIR=/usr/share/java MAVENPOM_DIR=/usr/share/maven2/poms PKG_JAVA_DIR=/usr/share/java/ovirt-engine PKG_SYSCONF_DIR=/etc/ovirt-engine PKG_EAR_DIR=/usr/share/ovirt-engine/engine.ear PKG_PKI_DIR=/etc/pki/ovirt-engine PKG_JBOSS_MODULES=/usr/share/ovirt-engine/modules
make[1]: Entering directory `/home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD/ovirt-engine-3.1.0'
make[1]: *** No targets specified and no makefile found. Stop.
make[1]: Leaving directory `/home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD/ovirt-engine-3.1.0'
error: Bad exit status from /var/tmp/rpm-tmp.qesWT3 (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.qesWT3 (%build)
make: *** [rpm] Error 1
There is a ovirt-engine.spec under /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD/ovirt-engine-3.1.0
------=_Part_279309_491577683.1363594708599
Content-Type: text/html; charset=GBK
Content-Transfer-Encoding: 7bit
<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div>Hi, I am a green learner, I tried to make ovirt-engine rpm from compiled source code. when I run make rpm, and the log as follows. Can anyone tell me what's the matter? Thanks!</div><div><br></div><div>[root@localhost ovirt-engine-3.1.0]# make rpm</div><div><span style="background-color: rgb(192, 192, 192);">sed -e 's/@PACKAGE_VERSION@/3.1.0/g' \</span></div><div><span style="background-color: rgb(192, 192, 192);"> -e 's/@PACKAGE_RELEASE@/3.26/g' packaging/fedora/spec/ovirt-engine.spec.in > ovirt-engine.spec</span></div><div><span style="background-color: rgb(192, 192, 192);">git ls-files | tar --files-from /proc/self/fd/0 -czf ovirt-engine-3.1.0.tar.gz ovirt-engine.spec</span></div><div><span style="background-color: rgb(192, 192, 192);">rm -f ovirt-engine.spec</span></div><div><span style="background-color: rgb(192, 192, 192);"><br></span></div><div><span style="background-color: rgb(192, 192, 192);">You can use rpmbuild -tb ovirt-engine-3.1.0.tar.gz to produce rpms</span></div><div><span style="background-color: rgb(192, 192, 192);"><br></span></div><div><span style="background-color: rgb(192, 192, 192);">rm -rf /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild</span></div><div><span style="background-color: rgb(192, 192, 192);">mkdir -p /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/{SPECS,RPMS,SRPMS,SOURCES,BUILD,BUILDROOT}</span></div><div><span style="background-color: rgb(192, 192, 192);">mkdir -p output</span></div><div><span style="background-color: rgb(192, 192, 192);">rpmbuild -ts --define="_topdir /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild" ovirt-engine-3.1.0.tar.gz</span></div><div><span style="background-color: rgb(192, 192, 192);">Wrote: /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/SRPMS/ovirt-engine-3.1.0-3.26.el6.src.rpm</span></div><div><span style="background-color: rgb(192, 192, 192);">mv /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/SRPMS/*.rpm output</span></div><div><span style="background-color: rgb(192, 192, 192);">rm -rf /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild</span></div><div><span style="background-color: rgb(192, 192, 192);"><br></span></div><div><span style="background-color: rgb(192, 192, 192);">srpm is ready at output</span></div><div><span style="background-color: rgb(192, 192, 192);"><br></span></div><div><span style="background-color: rgb(192, 192, 192);">rm -rf /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild</span></div><div><span style="background-color: rgb(192, 192, 192);">mkdir -p /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/{SPECS,RPMS,SRPMS,SOURCES,BUILD,BUILDROOT}</span></div><div><span style="background-color: rgb(192, 192, 192);">mkdir -p output</span></div><div><span style="background-color: rgb(192, 192, 192);">rpmbuild --define="_topdir /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild" --rebuild output/ovirt-engine-3.1.0*.src.rpm</span></div><div><span style="background-color: rgb(192, 192, 192);">Installing output/ovirt-engine-3.1.0-3.26.el6.src.rpm</span></div><div><span style="background-color: rgb(192, 192, 192);">Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.3JQHHM</span></div><div><span style="background-color: rgb(192, 192, 192);">+ umask 022</span></div><div><span style="background-color: rgb(192, 192, 192);">+ cd /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD</span></div><div><span style="background-color: rgb(192, 192, 192);">+ LANG=C</span></div><div><span style="background-color: rgb(192, 192, 192);">+ export LANG</span></div><div><span style="background-color: rgb(192, 192, 192);">+ unset DISPLAY</span></div><div><span style="background-color: rgb(192, 192, 192);">+ cd /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD</span></div><div><span style="background-color: rgb(192, 192, 192);">+ rm -rf ovirt-engine-3.1.0</span></div><div><span style="background-color: rgb(192, 192, 192);">+ /bin/mkdir -p ovirt-engine-3.1.0</span></div><div><span style="background-color: rgb(192, 192, 192);">+ cd ovirt-engine-3.1.0</span></div><div><span style="background-color: rgb(192, 192, 192);">+ /bin/tar -xf -</span></div><div><span style="background-color: rgb(192, 192, 192);">+ /usr/bin/gzip -dc /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/SOURCES/ovirt-engine-3.1.0.tar.gz</span></div><div><span style="background-color: rgb(192, 192, 192);">+ STATUS=0</span></div><div><span style="background-color: rgb(192, 192, 192);">+ '[' 0 -ne 0 ']'</span></div><div><span style="background-color: rgb(192, 192, 192);">+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .</span></div><div><span style="background-color: rgb(192, 192, 192);">+ exit 0</span></div><div><span style="background-color: rgb(192, 192, 192);">Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.qesWT3</span></div><div><span style="background-color: rgb(192, 192, 192);">+ umask 022</span></div><div><span style="background-color: rgb(192, 192, 192);">+ cd /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD</span></div><div><span style="background-color: rgb(192, 192, 192);">+ cd ovirt-engine-3.1.0</span></div><div><span style="background-color: rgb(192, 192, 192);">+ LANG=C</span></div><div><span style="background-color: rgb(192, 192, 192);">+ export LANG</span></div><div><span style="background-color: rgb(192, 192, 192);">+ unset DISPLAY</span></div><div><span style="background-color: rgb(192, 192, 192);">+ make -j1 PACKAGE_NAME=ovirt-engine ENGINE_NAME=ovirt-engine LOCALSTATE_DIR=/var ENGINE_STATE=/var/lib/ovirt-engine PREFIX=/usr SYSCONF_DIR=/etc BIN_DIR=/usr/bin DATAROOT_DIR=/usr/share MAN_DIR=/usr/share/man PYTHON=/usr/bin/python PYTHON_DIR=/usr/lib/python2.6/site-packages JAVA_DIR=/usr/share/java MAVENPOM_DIR=/usr/share/maven2/poms PKG_JAVA_DIR=/usr/share/java/ovirt-engine PKG_SYSCONF_DIR=/etc/ovirt-engine PKG_EAR_DIR=/usr/share/ovirt-engine/engine.ear PKG_PKI_DIR=/etc/pki/ovirt-engine PKG_JBOSS_MODULES=/usr/share/ovirt-engine/modules</span></div><div><span style="background-color: rgb(192, 192, 192);">make[1]: Entering directory `/home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD/ovirt-engine-3.1.0'</span></div><div><b style="background-color: rgb(192, 192, 192);">make[1]: *** No targets specified and no makefile found. Stop.</b></div><div><span style="background-color: rgb(192, 192, 192);">make[1]: Leaving directory `/home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD/ovirt-engine-3.1.0'</span></div><div><span style="background-color: rgb(192, 192, 192);">error: Bad exit status from /var/tmp/rpm-tmp.qesWT3 (%build)</span></div><div><span style="background-color: rgb(192, 192, 192);"><br></span></div><div><span style="background-color: rgb(192, 192, 192);"><br></span></div><div><span style="background-color: rgb(192, 192, 192);">RPM build errors:</span></div><div><span style="background-color: rgb(192, 192, 192);"> Bad exit status from /var/tmp/rpm-tmp.qesWT3 (%build)</span></div><div><span style="background-color: rgb(192, 192, 192);">make: *** [rpm] Error 1</span></div><div><br></div><div><br></div><div>There is a ovirt-engine.spec under /home/wqx/ovirt-engine-3.1.0/tmp.rpmbuild/BUILD/ovirt-engine-3.1.0
</div><div><br></div><div><br></div></div></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>
------=_Part_279309_491577683.1363594708599--
2
3
17 Mar '13
Hi all,
Do we need CreateComputerAccountCommand and its correspoding ldap broker LdapCreateComputerAccountCommand?
Thanks,
Yair
4
5
[Engine-devel] Better testing for ValidationResults using ValidationResultMatchers
by Mike Kolesnik 17 Mar '13
by Mike Kolesnik 17 Mar '13
17 Mar '13
------=_Part_1902201_1683252520.1363512635975
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Hi,
If you don't know what ValidationResult is, check out http://www.ovirt.org/ValidationResult
In a gist, I added a new way to test this using JUnit's assertThat syntax:
// Test that validation result is valid
assertThat(someValidation(), isValid());
// Test that validation result is invalid
assertThat(someValidation(), failsWith(VdcBllMessages.SOME_ERROR));
// Test that validation result is invalid and has replacement
assertThat(someValidation(), both(failsWith(VdcBllMessages.SOME_ERROR)).and(replacements(hasItem(EXPECTED_REPLACEMENT)))); You need to statically import ValidationResultMatchers (and the basic JUnit matchers) for this to work.
The rest I documented in the aforementioned wiki.
Check out the patch: http://gerrit.ovirt.org/#/c/13061
Or how to use it: http://gerrit.ovirt.org/#/c/13062
Regards,
Mike
------=_Part_1902201_1683252520.1363512635975
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: times new roman,new york,times,serif; font-size: 12pt; color: #000000'>Hi,<br><br>If you don't know what ValidationResult is, check out http://www.ovirt.org/ValidationResult<br><br>In a gist, I added a new way to test this using JUnit's assertThat syntax:<br><pre>// Test that validation result is valid
assertThat(someValidation(), isValid());
// Test that validation result is invalid
assertThat(someValidation(), failsWith(VdcBllMessages.SOME_ERROR));
// Test that validation result is invalid and has replacement
assertThat(someValidation(), both(failsWith(VdcBllMessages.SOME_ERROR)).and(replacements(hasItem(EXPECTED_REPLACEMENT))));
</pre>You need to statically import ValidationResultMatchers (and the basic JUnit matchers) for this to work.<br><br>The rest I documented in the aforementioned wiki.<br><br>Check out the patch: http://gerrit.ovirt.org/#/c/13061<br><br>Or how to use it: http://gerrit.ovirt.org/#/c/13062<br><br><div><span name="x"></span>Regards,<br>Mike<span name="x"></span><br></div><br></div></body></html>
------=_Part_1902201_1683252520.1363512635975--
1
0
------=_Part_1894359_617512914.1363509997819
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Hi,
Lately I had to add an error message that "name is already used".
I looked in the translations files and saw many messages for specific entity types in the system that looked much the same:
VDS_TRY_CREATE_WITH_EXISTING_PARAMS=Cannot ${action} ${type}. Host with the same name already exists
ACTION_TYPE_FAILED_VM_ALREADY_EXIST = Cannot $ { action } $ { type }. VM with the same name already exists .
etc..
What I decided to do is not add another "X with the same name already exists" message,
but instead add a generic message for this condition.
You can review the patch here :
http://gerrit.ovirt.org/#/c/12361
I also went the extra mile to change the current messages that look like this to use this message:
http://gerrit.ovirt.org/#/c/13063/
It is not a full coverage, since some commands don't fill the $action $type replacements,
and the required change is a bit bigger than this patch scope, but it's a good start.
FYI, and if you see other generic messages repeating themselves, don't hesitate to squash them.
Regards,
Mike
------=_Part_1894359_617512914.1363509997819
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
<html><head><style type=3D'text/css'>p { margin: 0; }</style></head><body><=
div style=3D'font-family: times new roman,new york,times,serif; font-size: =
12pt; color: #000000'>Hi,<br><br>Lately I had to add an error message that =
"name is already used".<br>I looked in the translations files and saw many =
messages for specific entity types in the system that looked much the same:=
<br><span class=3D"str">VDS_TRY_CREATE_WITH_EXISTING_PARAMS=3DCannot ${acti=
on} ${type}. Host with the same name already exists<br></span><span class=
=3D"pln">ACTION_TYPE_FAILED_VM_ALREADY_EXIST</span><span class=3D"pun">=3D<=
/span><span class=3D"typ">Cannot</span><span class=3D"pln"> $</span><span c=
lass=3D"pun">{</span><span class=3D"pln">action</span><span class=3D"pun">}=
</span><span class=3D"pln"> $</span><span class=3D"pun">{</span><span class=
=3D"pln">type</span><span class=3D"pun">}.</span><span class=3D"pln"> VM </=
span><span class=3D"kwd">with</span><span class=3D"pln"> the same name alre=
ady exists</span><span class=3D"pun">.</span><br>etc..<br><br>What I decide=
d to do is not add another "X with the same name already exists" message,<b=
r>but instead add a generic message for this condition.<br><br>You can revi=
ew the patch here:<br>http://gerrit.ovirt.org/#/c/12361<br><br>I also went =
the extra mile to change the current messages that look like this to use th=
is message:<br>http://gerrit.ovirt.org/#/c/13063/<br><br>It is not a full c=
overage, since some commands don't fill the $action $type replacements,<br>=
and the required change is a bit bigger than this patch scope, but it's a g=
ood start.<br><br>FYI, and if you see other generic messages repeating them=
selves, don't hesitate to squash them.<br><br><div><span name=3D"x"></span>=
Regards,<br>Mike<span name=3D"x"></span><br></div><br></div></body></html>
------=_Part_1894359_617512914.1363509997819--
1
0
Hi,
I just wanted to share a partial result from testing of engine db load
during operation (SQL queries frequencies). Maybe, we can decide later,
if some SQL queries result CACHING can boost throughput for larger
deployments.
The caching technology can be from a simple HashMap lookup to
deployments of something like http://ehcache.org/ (memory database).
I prepared two simple scenarios:
- oVirt engine, 2 hosts, 1 VM, running 15 minutes (Power on + Up state)
- oVirt engine, 2 hosts, 10 VMs from one pool, running 15 minutes (Power
on + Up state)
Appending 2 spreadsheets with data about the most used SQL queries
(generated by PostgreSQL standard pg_statements_stat module).
e.g.
- 2nd row shows number of granted connections from the db pool (e.g. can
be used to set optimal connection pool size) (check of connection
health: select 1)
- most of the queries are wrapped by a PLSQL function so we see a wrapper:
/select * from getvdsgroupbyvdsgroupid($1, $2, $3)/
and near to it the 'real' query:
/SELECT vds_groups_view.*//
// FROM vds_groups_view//
// WHERE vds_group_id = v_vds_group_id//
// AND (NOT v_is_filtered OR EXISTS (SELECT 1//
// FROM
user_vds_groups_permissions_view//
// WHERE user_id = v_user_id AND
entity_id = v_vds_group_id))//
/
Just as an example, I selected in yellow color some queries, which
probably do not change often, but are very frequent.
Other tools like 'pg_top' can provide runtime statistics of db processes
(cpu, mem, locks, ... views).
By enabling debug level logging of PostgreSQL we can check real values
to the queries.
Of course, it would be useful to run such tests with many hosts and VMs
to predict scaling issues.
More info about tools configuration:
http://www.ovirt.org/Engine_database_performance_monitoring
Regards,
Libor
5
6
fyi,
EL6 rpms for various ovirt project are now available via the nightly repos:
http://resources.ovirt.org/releases/nightly/rpm/EL/6/noarch/
Eyal.
1
0
14 Mar '13
hi,
A new version of the engine watchdog support is available in gerrit. This version finished the rest-api support by adding the capabilities resources. The features listed in the feature page are ready, so if you have enough time and courage, please give it a try!
I have left the patch with [wip] because I am waiting for the end of some discussions about the technical background.
http://gerrit.ovirt.org/#/c/12419/
Thx,
Laszlo
2
1
Re: [Engine-devel] [oVirt Jenkins] ovirt_engine_find_bugs - Build # 3737 - Still Unstable!
by Eyal Edri 14 Mar '13
by Eyal Edri 14 Mar '13
14 Mar '13
Latest commit introduced new NORMAL findbugs, please fix.
eyal.
infra team.
----- Original Message -----
> From: "Jenkins ci oVirt Server" <jenkins(a)ovirt.org>
> To: eedri(a)redhat.com, engine-patches(a)ovirt.org, oliel(a)redhat.com, yzaslavs(a)redhat.com, dcaro(a)redhat.com,
> gerrit2(a)gerrit.ovirt.org
> Sent: Thursday, March 14, 2013 12:32:10 AM
> Subject: [oVirt Jenkins] ovirt_engine_find_bugs - Build # 3737 - Still Unstable!
>
> Project: http://jenkins.ovirt.org/job/ovirt_engine_find_bugs/
> Build: http://jenkins.ovirt.org/job/ovirt_engine_find_bugs/3737/
> Build Number: 3737
> Build Status: Still Unstable
> Triggered By: Started by an SCM change
>
> -------------------------------------
> Changes Since Last Success:
> -------------------------------------
> Changes for Build #3733
> [Michael Kublin] engine: Making all internal actions to have same
> correlationId
>
>
> Changes for Build #3734
> [Gerrit Code Review] webadmin: Attach disk - verify valid selection
>
> [Gerrit Code Review] webadmin: Make Template dialog - style
> modifications
>
> [Gerrit Code Review] webadmin: About dialog - remove redundant code
>
>
> Changes for Build #3735
> [Allon Mureinik] core: AuditLogableBaseTest synthetic access
>
> [Allon Mureinik] core: TestAuditLoggableBase serial warning
>
>
> Changes for Build #3736
> [Kiril Nesenko] webadmin: Change default doc path.
>
>
> Changes for Build #3737
> [Gerrit Code Review] db: do not write to dbscripts after installation
>
>
>
>
> -----------------
> Failed Tests:
> -----------------
> No tests ran.
>
>
1
0
Hi all,
I would like to present you a document I'm working on (still in draft/working-in-progress mode) of changes to be done at the engine async task manager.
Regarding the detailed design -
The suggested design breaks the task management into two modules - task management/polling part + command management (in context of completion of tasks/commands).
The current status of the design is that the design of task management is provided (needs some polishing) - the command management design will be provided soon.
In addition, we already have some ideas for an alternative design for the task management part (as suggested by Saggi Mizrahi).
After converging , we will present the complete design.
The reason we're sending the Wiki now is that community members will be aware mainly to the motivations behind the changes
(Perhaps we should create separate documents for the design and for the motivation/requirements)
http://www.ovirt.org/Wiki/AsyncTaskManagerChanges
Yair
2
2
Hi,
I came across a VmDynamic property 'kvm_enable'. It sounds strange for me, because ovirt is very colsely integrated with kvm. So a short dig into this flag...
There is a similar thing for the VDS, it is set to true by vdsm is the host CPU has a VT flag. It is actually used to check if the host is OK to run VMS.
But the one for Vm it looks like a distributed logical loop in vdsm: it is set when constructing a VM object (vdsm/vm.py:~343) from the data sent by the client (engine) and then reported back in vm stats, so it is just a roundtrip between vdsm and it's client.
In the engine side, it is just keeps sending it between the frontend DB and vdsm, never part of a decision.
Is this still needed here? Can I remove?
VDSM guys?
Thx,
Laszlo
3
3
13 Mar '13
--_005_C5A0092C63E939488005F15F736A8112097A57B9SHSMSX101ccrcor_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
SGksDQogICBJbiBvcmRlciB0byBhZGQgbmV3IGZlYXR1cmUgdG8gT3ZpcnQsIHRoYXQgaXMgdXNl
ciBjYW4gY2hvb3NlIHZpcnR1YWwgbWFjaGluZSB3aGV0aGVyIG9uIHRydXN0ZWQgbWFjaGluZSBv
ciBub3Qgd2hlbiBpdCBydW5zIHVwLCB3ZSBtb2RpZmllZCB0aGUgcmVsYXRpdmUgZmlsZXMuDQpP
dXIgZ29hbCBpcyB3aGVuIHRoZSB1c2VyIGNsaWNrIHRoZSB0cnVzdGVkIGJ1dHRvbiwgUnVuL01p
Z3JhdGlvbiBvcHRpb25zIGFyZSBkaXNhYmxlZC4gQnV0IHVuZm9ydHVuYXRlbHksIHdlIGhhdmVu
4oCZdCBzdWNjZWVkZWQgaW4gZ3JhcGhpYyBpbnRlcmZhY2UuIA0KSSBtb2RpZmllZCB0aGVzZSBm
aWxlcywgSSBjYW7igJl0IHNlZSBIb3N0IFRhYiwgY2FuIHlvdSBnaXZlIG1lIHNvbWUgaGVscD8g
TWF5YmUgd2UgbmVlZCBtb2RpZnkgbW9yZSBmaWxlcy4gV2UgZGlkIHRoZSBmb2xsb3dpbmcgZWZm
b3J0czoNCigxKSBhZGQgYSB0cnVzdGVkIHJhZGlvIGJ1dHRvbi4NCigyKSBNb2RpZnkgQWJzdHJh
Y3RWbVBvcHVwV2lkZ2V0LnVpLnhtbA0KPGc6SG9yaXpvbnRhbFBhbmVsIHZlcnRpY2FsQWxpZ25t
ZW50PSdBTElHTl9NSURETEUnPg0KwqDCoMKgwqAgPGc6UmFkaW9CdXR0b24gdWk6ZmllbGQ9InJ1
blZNT25UcnVzdGVkSG9zdCIvPg0KwqAgwqDCoMKgPGU6RW50aXR5TW9kZWxSYWRpb0J1dHRvbkVk
aXRvciB3aWR0aD0iMTUwcHgiIHVpOmZpZWxkPSJydW5WTU9uVHJ1c3RlZEhvc3RFZGl0b3IiDQrC
oMKgwqDCoMKgwqDCoMKgIMKgwqDCoMKgwqDCoMKgwqAgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLnJh
ZGlvQnV0dG9ufSIgLz4NCjwvZzpIb3Jpem9udGFsUGFuZWw+DQooMykgTW9kaWZ5IEFic3RyYWN0
Vm1Qb3B1cFdpZGdldC5qYXZhDQpAVWlGaWVsZChwcm92aWRlZCA9IHRydWUpDQpAUGF0aCh2YWx1
ZSA9ICJydW5WTU9uVHJ1c3RlZEhvc3QuZW50aXR5IikNCsKgwqDCoCBAV2l0aEVsZW1lbnRJZCgi
cnVuVk1PblRydXN0ZWRIb3N0IikNCnB1YmxpYyBFbnRpdHlNb2RlbFJhZGlvQnV0dG9uRWRpdG9y
IHJ1blZNT25UcnVzdGVkSG9zdEVkaXRvcjsNCg0KaW5pdExpc3RlbmVycyBtZXRob2Q6DQpvYmpl
Y3QuZ2V0SXNBdXRvQXNzaWduKCkuZ2V0UHJvcGVydHlDaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5l
cihuZXcgSUV2ZW50TGlzdGVuZXIoKSB7DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEBPdmVycmlk
ZQ0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwdWJsaWMgdm9pZCBldmVudFJhaXNlZChFdmVudCBl
diwgT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGFyZ3MpIHsNCsKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBib29sZWFuIGlzQXV0b0Fzc2lnbiA9IChCb29sZWFuKSBvYmplY3QuZ2V0SXNB
dXRvQXNzaWduKCkuZ2V0RW50aXR5KCk7DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
Ym9vbGVhbiBydW5WTU9uVHJ1c3RlZEhvc3QgPSAoQm9vbGVhbikgb2JqZWN0LmdldFJ1blZNT25U
cnVzdGVkSG9zdCgpLmdldEVudGl0eSgpOw0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IGRlZmF1bHRIb3N0RWRpdG9yLnNldEVuYWJsZWQoIWlzQXV0b0Fzc2lnbiAmJiAhcnVuVk1PblRy
dXN0ZWRIb3N0KTsNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL2RlZmF1bHRIb3N0
RWRpdG9yLnNldEVuYWJsZWQoIWlzQXV0b0Fzc2lnbik7DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgLy8gb25seSB0aGlzIGlzIG5vdCBiaW5kIHRvIHRoZSBtb2RlbCwgc28gbmVlZHMg
dG8gbGlzdGVuIHRvIHRoZSBjaGFuZ2UgZXhwbGljaXRseQ0KwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCBzcGVjaWZpY0hvc3Quc2V0VmFsdWUoIWlzQXV0b0Fzc2lnbiAmJiAhcnVuVk1PblRy
dXN0ZWRIb3N0KTsNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy9zcGVjaWZpY0hvc3Qu
c2V0VmFsdWUoIWlzQXV0b0Fzc2lnbik7DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCsKgwqDC
oMKgwqDCoMKgIH0pOw0KaXNBdXRvQXNzaWduRWRpdG9yLmFkZERvbUhhbmRsZXIobmV3IENsaWNr
SGFuZGxlcigpIHsNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQE92ZXJyaWRlDQrCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHB1YmxpYyB2b2lkIG9uQ2xpY2soQ2xpY2tFdmVudCBldmVudCkgew0KwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmF1bHRIb3N0RWRpdG9yLnNldEVuYWJsZWQo
ZmFsc2UpOw0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9DQrCoMKgwqDCoMKgwqDCoCB9LCBDbGlj
a0V2ZW50LmdldFR5cGUoKSk7DQrCoMKgwqDCoMKgwqDCoCB2bS5nZXRJc0F1dG9Bc3NpZ24oKS5n
ZXRFbnRpdHlDaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcihuZXcgSUV2ZW50TGlzdGVuZXIoKSB7
DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEBPdmVycmlkZQ0KwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCBwdWJsaWMgdm9pZCBldmVudFJhaXNlZChFdmVudCBldiwgT2JqZWN0IHNlbmRlciwgRXZlbnRB
cmdzIGFyZ3MpIHsNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWlzQXV0b0Fz
c2lnbkVkaXRvci5hc1JhZGlvQnV0dG9uKCkuZ2V0VmFsdWUoKSAmJiAhcnVuVk1PblRydXN0ZWRI
b3N0RWRpdG9yLmFzUmFkaW9CdXR0b24oKS5nZXRWYWx1ZSgpKQ0KwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIHsNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNw
ZWNpZmljSG9zdC5zZXRWYWx1ZSh0cnVlLCB0cnVlKTsNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCB9DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCsKgwqDCoMKgwqDCoMKgIH0pOw0K
wqDCoMKgwqDCoMKgwqAgcnVuVk1PblRydXN0ZWRIb3N0RWRpdG9yLmFkZERvbUhhbmRsZXIobmV3
IENsaWNrSGFuZGxlcigpIHsNCsKgwqAgwqDCoMKgwqDCoMKgwqDCoMKgQE92ZXJyaWRlDQrCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHB1YmxpYyB2b2lkIG9uQ2xpY2soQ2xpY2tFdmVudCBldmVudCkg
ew0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmF1bHRIb3N0RWRpdG9yLnNldEVu
YWJsZWQoZmFsc2UpOw0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9DQrCoMKgwqDCoMKgwqDCoCB9
LCBDbGlja0V2ZW50LmdldFR5cGUoKSk7DQrCoMKgwqDCoMKgwqDCoCB2bS5nZXRSdW5WTU9uVHJ1
c3RlZEhvc3QoKS5nZXRFbnRpdHlDaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcihuZXcgSUV2ZW50
TGlzdGVuZXIoKSB7DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEBPdmVycmlkZQ0KwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoCBwdWJsaWMgdm9pZCBldmVudFJhaXNlZChFdmVudCBldiwgT2JqZWN0IHNl
bmRlciwgRXZlbnRBcmdzIGFyZ3MpIHsNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp
ZiAoIXJ1blZNT25UcnVzdGVkSG9zdEVkaXRvci5hc1JhZGlvQnV0dG9uKCkuZ2V0VmFsdWUoKSAm
JiAhaXNBdXRvQXNzaWduRWRpdG9yLmFzUmFkaW9CdXR0b24oKS5nZXRWYWx1ZSgpKQ0KwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHsNCsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHNwZWNpZmljSG9zdC5zZXRWYWx1ZSh0cnVlLCB0cnVlKTsNCsKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCB9DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCsKgwqDCoMKg
wqDCoMKgIH0pOw0KKDQpIE1vZGlmeSBVbml0Vm1Nb2RlbC5qYXZhDQrCoCBwcml2YXRlIHZvaWQg
UnVuVk1PblRydXN0ZWRIb3N0X0VudGl0eUNoYW5nZWQoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdz
IGFyZ3MpDQrCoMKgIHsNCsKgwqDCoMKgwqDCoMKgIGlmICgoQm9vbGVhbikgZ2V0UnVuVk1PblRy
dXN0ZWRIb3N0KCkuZ2V0RW50aXR5KCkgPT0gdHJ1ZSkNCsKgwqDCoMKgwqDCoMKgIHsNCsKgwqDC
oMKgwqDCoMKgwqDCoMKgwqAgY2xlYXJBbmREaXNhYmxlKGdldFJ1blZNT25TcGVjaWZpY0hvc3Qo
KSk7DQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNsZWFyQW5kRGlzYWJsZShnZXRIb3N0Q3B1KCkp
Ow0KwqDCoMKgwqDCoMKgwqAgfQ0KwqDCoMKgwqDCoMKgwqAgZWxzZQ0KwqDCoMKgwqDCoMKgwqAg
ew0KwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnZXRSdW5WTU9uU3BlY2lmaWNIb3N0KCkuc2V0SXND
aGFuZ2FibGUodHJ1ZSk7DQrCoMKgwqDCoMKgwqDCoCB9DQrCoMKgIMKgwqDCoMKgwqBiZWhhdmlv
ci51cGRhdGVDcHVQaW5uaW5nVmlzaWJpbGl0eSgpOw0K44CA44CAfQ0KDQo=
--_005_C5A0092C63E939488005F15F736A8112097A57B9SHSMSX101ccrcor_
Content-Type: text/xml; name="AbstractVmPopupWidget.ui.xml"
Content-Description: AbstractVmPopupWidget.ui.xml
Content-Disposition: attachment; filename="AbstractVmPopupWidget.ui.xml";
size=16078; creation-date="Tue, 12 Mar 2013 08:33:20 GMT";
modification-date="Tue, 12 Mar 2013 08:24:34 GMT"
Content-Transfer-Encoding: base64
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSB1aTpVaUJp
bmRlciBTWVNURU0gImh0dHA6Ly9kbC5nb29nbGUuY29tL2d3dC9EVEQveGh0bWwuZW50Ij4NCjx1
aTpVaUJpbmRlciB4bWxuczp1aT0idXJuOnVpOmNvbS5nb29nbGUuZ3d0LnVpYmluZGVyIiB4bWxu
czpnPSJ1cm46aW1wb3J0OmNvbS5nb29nbGUuZ3d0LnVzZXIuY2xpZW50LnVpIg0KICAgICAgICAg
ICAgIHhtbG5zOmQ9InVybjppbXBvcnQ6b3JnLm92aXJ0LmVuZ2luZS51aS5jb21tb24ud2lkZ2V0
LmRpYWxvZyINCiAgICAgICAgICAgICB4bWxuczplPSJ1cm46aW1wb3J0Om9yZy5vdmlydC5lbmdp
bmUudWkuY29tbW9uLndpZGdldC5lZGl0b3IiDQogICAgICAgICAgICAgeG1sbnM6dD0idXJuOmlt
cG9ydDpvcmcub3ZpcnQuZW5naW5lLnVpLmNvbW1vbi53aWRnZXQuZGlhbG9nLnRhYiINCiAgICAg
ICAgICAgICB4bWxuczpzPSJ1cm46aW1wb3J0Om9yZy5vdmlydC5lbmdpbmUudWkuY29tbW9uLndp
ZGdldC51aWNvbW1vbi5zdG9yYWdlIg0KICAgICAgICAgICAgIHhtbG5zOms9InVybjppbXBvcnQ6
b3JnLm92aXJ0LmVuZ2luZS51aS5jb21tb24ud2lkZ2V0LmZvcm0ua2V5X3ZhbHVlIj4NCg0KICAg
IDx1aTp3aXRoIGZpZWxkPSdjb25zdGFudHMnIHR5cGU9J29yZy5vdmlydC5lbmdpbmUudWkuY29t
bW9uLkNvbW1vbkFwcGxpY2F0aW9uQ29uc3RhbnRzJy8+DQoNCiAgICA8dWk6c3R5bGUgdHlwZT0i
b3JnLm92aXJ0LmVuZ2luZS51aS5jb21tb24ud2lkZ2V0LnVpY29tbW9uLnBvcHVwLkFic3RyYWN0
Vm1Qb3B1cFdpZGdldC5TdHlsZSI+DQoJCS5nZW5lcmFsVGFiVG9wRGVjb3JhdG9yIHsNCgkJCWJh
Y2tncm91bmQtY29sb3I6ICNEM0QzRDM7DQoJCQltYXJnaW4tdG9wOiA0cHg7DQoJCQltYXJnaW4t
cmlnaHQ6IDNweDsNCgkJCW1hcmdpbi1ib3R0b206IDIwcHg7DQoJCQlwYWRkaW5nLXRvcDogNnB4
Ow0KCQkJcGFkZGluZy1ib3R0b206IDZweDsNCgkJfQ0KDQoJCS5zZWN0aW9uUGFuZWwgew0KCQkJ
bWFyZ2luLWJvdHRvbTogMjBweDsNCgkJfQ0KDQoJCS5zZWN0aW9uTGFiZWwgew0KCQkJZm9udC13
ZWlnaHQ6IGJvbGQ7DQoJCQltYXJnaW4tdG9wOiAxMHB4Ow0KCQkJbWFyZ2luLWJvdHRvbTogNXB4
Ow0KCQl9DQoNCgkJLnNlY3Rpb25Db21tZW50IHsNCgkJCW1hcmdpbi10b3A6IDEwcHg7DQoJCQlt
YXJnaW4tbGVmdDogNXB4Ow0KCQkJZm9udC1zdHlsZTogaXRhbGljOw0KCQl9DQoNCgkJLmNoZWNr
Ym94V2l0aExvbmdMYWJlbCwuY2hlY2tib3ggew0KCQkJbWFyZ2luLWxlZnQ6IC05cHg7DQoJCX0N
Cg0KCQkuY2hlY2tib3hXaXRoTG9uZ0xhYmVsIGxhYmVsIHsNCgkJCW1hcmdpbi1sZWZ0OiAyNnB4
Ow0KCQkJbWFyZ2luLXRvcDogLTI2cHg7DQoJCQlkaXNwbGF5OiBibG9jazsNCgkJCWxpbmUtaGVp
Z2h0OiAyMHB4Ow0KCQl9DQoNCgkJLmxvbmdDaGVja2JveENvbnRlbnQgew0KCQkJd2lkdGg6IDkw
JTsNCgkJfQ0KDQoJCS5wcm92aXNpb25pbmdFZGl0b3Igew0KCQkJcGFkZGluZy1yaWdodDogMjVw
eDsNCgkJfQ0KDQoJCS5wcm92aXNpb25pbmdFZGl0b3JDb250ZW50ICB7DQoJCQlkaXNwbGF5OiBu
b25lOw0KCQl9DQoNCgkJLnByb3Zpc2lvbmluZ1JhZGlvQ29udGVudCAgew0KCQkJcGFkZGluZy10
b3A6IDNweDsNCgkJCXdpZHRoOiAxMDAlOw0KCQl9DQoNCgkJLmRpc2tzQWxsb2NhdGlvbiB7DQoJ
CQlwYWRkaW5nLWxlZnQ6IDVweDsNCgkJCXBhZGRpbmctdG9wOiAxMHB4Ow0KCQl9DQoNCgkJLmRp
c2tzQWxsb2NhdGlvblBhbmVsIHsNCgkJCXdpZHRoOiA0OTBweDsNCgkJCXBhZGRpbmctdG9wOiA1
cHg7DQoJCQlwYWRkaW5nLWJvdHRvbTogMTBweDsNCgkJfQ0KDQogICAgICAgIC50ZXh0Qm94IHsN
CiAgICAgICAgICAgIHdpZHRoOiAzMHB4Ow0KICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0Ow0KICAg
ICAgICB9DQoNCiAgICAgICAgLm51bU9mVm1zTGFiZWwgew0KICAgICAgICAgICAgbWFyZ2luLWxl
ZnQ6IDVweDsNCiAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOw0KICAgICAgICB9DQoNCiAgICAg
ICAgLmFzc2lnbmVkVm1zTGFiZWwgew0KICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDsNCiAg
ICAgICAgfQ0KDQogICAgICAgIC5wcmVzdGFydGVkSGludExhYmVsIHsNCiAgICAgICAgICAgIGZv
bnQtc2l6ZTogN3B0Ow0KICAgICAgICAgICAgY29sb3I6IGdyYXk7DQogICAgICAgICAgICB0ZXh0
LWFsaWduOiByaWdodDsNCiAgICAgICAgfQ0KDQoJCS5yYWRpb0J1dHRvbiB7DQoNCgkJfQ0KDQoJ
CS5yYWRpb0J1dHRvblNwZWNpZmljSG9zdCB7DQogICAgICAgICAgICBtYXJnaW4tbGVmdDogNXB4
Ow0KCQl9DQoNCgkJLnJhZGlvQnV0dG9uUnVuT25UcnVzdGVkSG9zdCB7DQogICAgICAgICAgICBt
YXJnaW4tbGVmdDogNXB4Ow0KICAgICAgICAgICAgICAgIH0NCg0KCQkubGFiZWwgew0KCQkJd2lk
dGg6IDM1MHB4Ow0KCQl9DQoNCiAgICAgICAgLmxhYmVsRGlzYWJsZWQgew0KICAgICAgICAgICAg
Y29sb3I6IGdyYXk7DQogICAgICAgIH0NCg0KCQkucnVuSG9zdFBhbmVsIHsNCg0KCQl9DQoNCgkJ
LmF0dGFjaENkUGFuZWwgew0KCQkJd2lkdGg6IDEwMCU7DQoJCX0NCg0KICAgICAgICAuY2RBdHRh
Y2hlZExhYmVsV2lkdGggew0KICAgICAgICAgICAgd2lkdGg6IDMwcHg7DQogICAgICAgIH0NCg0K
CQkuaG9zdFJ1bk1pZ3JhdGlvbk9wdGlvbnMgew0KCQkJbWFyZ2luLWxlZnQ6IDZweDsNCgkJfQ0K
DQoJCS53YXJuaW5nTWVzc2FnZUxhYmVsIHsNCgkJCWNvbG9yOiAjQ0QyMTI3Ow0KCQkJcG9zaXRp
b246IGFic29sdXRlOw0KCQkJYm90dG9tOiAxMHB4Ow0KCQl9DQoNCgkJLmV4cGxhbmF0aW9uTGFi
ZWwgew0KCQkJZm9udC1zdHlsZTogaXRhbGljOw0KCQkJbWFyZ2luLWxlZnQ6IDQwcHg7DQoJCQlt
YXJnaW4tYm90dG9tOiAxMHB4Ow0KCQkJd2lkdGg6IDMwMHB4Ow0KCQl9DQoNCgkJLmNwdVBpbm5p
bmdTdHlsZSB7DQoJCX0NCg0KCQkuZXhwYW5kZXJDb250ZW50LC5nZW5lcmFsRXhwYW5kZXJDb250
ZW50IHsNCgkJCXBhZGRpbmctbGVmdDogMTBweDsNCgkJfQ0KCQkNCgkJLmV4cGFuZGVyQ29udGVu
dCB7DQoJCQlmbG9hdDogbGVmdDsNCgkJfQ0KDQoJCS53YXJuaW5nTGFiZWwgew0KICAgICAgICAg
ICAgY29sb3I6IHJlZDsNCiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOw0KICAgICAgICAg
ICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLnBv
b2xFZGl0Vm1zIHsNCgkJCWxpbmUtaGVpZ2h0OiAzMHB4Ow0KCQkJcGFkZGluZzogMCA1cHg7DQoJ
CQlwYWRkaW5nLWJvdHRvbTogMzVweDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLnBy
ZXN0YXJ0ZWRWbXNFZGl0b3JDb250ZW50IHsNCiAgICAgICAgCXdpZHRoOiAyMzBweDsNCiAgICAg
ICAgfQ0KICAgICAgICANCiAgICAgICAgLnByZXN0YXJ0ZWRWbXNFZGl0b3Igew0KICAgICAgICAJ
ZmxvYXQ6IHJpZ2h0Ow0KICAgICAgICAJd2lkdGg6IDIzMHB4Ow0KICAgICAgICB9DQogICAgICAg
IA0KICAgICAgICAuZWRpdFByZXN0YXJ0ZWRWbXNFZGl0b3Igew0KICAgICAgICAJZmxvYXQ6IGxl
ZnQ7DQogICAgICAgIAlwYWRkaW5nLXJpZ2h0OiAxMHB4Ow0KICAgICAgICB9DQogICAgICAgIA0K
ICAgICAgICAucHJlc3RhcnRlZFZtc0ljb24gew0KICAgICAgICAJZmxvYXQ6IGxlZnQ7DQogICAg
ICAgIAlwYWRkaW5nLXRvcDogNXB4Ow0KICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7DQog
ICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC5wcmVzdGFydGVkTGFiZWxXaXRoSGVscCB7DQog
ICAgICAgIAlmbG9hdDogbGVmdDsNCiAgICAgICAgCXdpZHRoOiAyNTFweDsNCiAgICAgICAgfQ0K
DQogICAgICAgIC5pbmNyZWFzZVByZXN0YXJ0ZWRMYWJlbCB7DQogICAgICAgIAlmbG9hdDogbGVm
dDsNCiAgICAgICAgCXdpZHRoOiAyNTFweDsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAg
LmVpZHRQcmVzdGFydGVkVm1zIHsNCiAgICAgICAgCWZsb2F0OiBsZWZ0Ow0KICAgICAgICAJd2lk
dGg6IDIzMHB4Ow0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAuZWlkdEluY3JlYXNlVm1z
IHsNCiAgICAgICAgCWZsb2F0OiBsZWZ0Ow0KICAgICAgICAJd2lkdGg6IDIzMHB4Ow0KICAgICAg
ICB9DQogICAgICAgIA0KICAgICAgICAucHJlc3RhcnRlZExhYmVsIHsNCiAgICAgICAgCWZsb2F0
OiBsZWZ0Ow0KICAgICAgICAJY29sb3I6ICMzMzMzMzM7DQogICAgICAgIH0NCiAgICAgICAgDQog
ICAgICAgIC5pbmNyZWFzZVZtc0luUG9vbFZtcyB7DQogICAgICAgIAlmbG9hdDogbGVmdDsNCiAg
ICAgICAgfQ0KICAgICAgICANCgk8L3VpOnN0eWxlPg0KDQoJPHQ6RGlhbG9nVGFiUGFuZWwgd2lk
dGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+DQoJCTx0OnRhYj4NCgkJCTx0OkRpYWxvZ1RhYiB1aTpm
aWVsZD0iZ2VuZXJhbFRhYiI+DQoJCQkJPHQ6Y29udGVudD4NCgkJCQkJPGc6Rmxvd1BhbmVsPg0K
CQkJCQkJPGc6Rmxvd1BhbmVsIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5nZW5lcmFsVGFiVG9wRGVj
b3JhdG9yfSI+DQoJCQkJCQkJPGU6TGlzdE1vZGVsTGlzdEJveEVkaXRvciB1aTpmaWVsZD0iZGF0
YUNlbnRlckVkaXRvciIgLz4NCgkJCQkJCQk8ZTpMaXN0TW9kZWxMaXN0Qm94RWRpdG9yIHVpOmZp
ZWxkPSJjbHVzdGVyRWRpdG9yIiAvPg0KCQkJCQkJCTxlOkxpc3RNb2RlbExpc3RCb3hFZGl0b3Ig
dWk6ZmllbGQ9InF1b3RhRWRpdG9yIiAvPg0KCQkJCQkJPC9nOkZsb3dQYW5lbD4NCgkJCQkJCTxn
OkZsb3dQYW5lbCBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuc2VjdGlvblBhbmVsfSI+DQoJCQkJCQkJ
PGU6RW50aXR5TW9kZWxUZXh0Qm94RWRpdG9yIHVpOmZpZWxkPSJuYW1lRWRpdG9yIiAvPg0KCQkJ
CQkJCTxlOkVudGl0eU1vZGVsVGV4dEJveEVkaXRvciB1aTpmaWVsZD0iZGVzY3JpcHRpb25FZGl0
b3IiIC8+DQoNCjwhLS0gCQkJCQkJTmV3IFZNIFBvb2wJCQkJCQkJIC0tPg0KCQkJCQkJCTxlOkVu
dGl0eU1vZGVsVGV4dEJveEVkaXRvciB1aTpmaWVsZD0ibnVtT2ZWbXNFZGl0b3IiIC8+DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPGc6Rmxvd1BhbmVsIHVpOmZpZWxkPSJuZXdQb29sRWRp
dFZtc1BhbmVsIiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUucG9vbEVkaXRWbXN9Ij4NCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAJPGc6Rmxvd1BhbmVsIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5w
cmVzdGFydGVkTGFiZWxXaXRoSGVscH0iPg0KCQkJCQkJCQkJPGc6TGFiZWwgdWk6ZmllbGQ9InBy
ZXN0YXJ0ZWRMYWJlbCIgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLnByZXN0YXJ0ZWRMYWJlbH0iIC8+
DQoJCQkJCQkJCQk8ZDpJbmZvSWNvbiB1aTpmaWVsZD0ibmV3UG9vbFByZXN0YXJ0ZWRWbXNJY29u
IiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUucHJlc3RhcnRlZFZtc0ljb259IiAvPg0KCQkJCQkJCQk8
L2c6Rmxvd1BhbmVsPg0KCQkJCQkJCQk8ZTpFbnRpdHlNb2RlbFRleHRCb3hPbmx5RWRpdG9yIHVp
OmZpZWxkPSJwcmVzdGFydGVkVm1zRWRpdG9yIiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUucHJlc3Rh
cnRlZFZtc0VkaXRvcn0iIGNvbnRlbnRXaWRnZXRTdHlsZU5hbWU9IntzdHlsZS5wcmVzdGFydGVk
Vm1zRWRpdG9yQ29udGVudH0iIC8+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nOkZs
b3dQYW5lbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjwhLS0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEVkaXQgVk0gUG9vbCAtLT4NCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8ZzpGbG93UGFuZWwgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLnBvb2xFZGl0Vm1zfSIgdWk6
ZmllbGQ9ImVkaXRQb29sRWRpdFZtc1BhbmVsIj4NCgkJCQkJCQkJPGc6Rmxvd1BhbmVsIGFkZFN0
eWxlTmFtZXM9IntzdHlsZS5wcmVzdGFydGVkTGFiZWxXaXRoSGVscH0iPg0KCQkJCQkJCQkJPGc6
TGFiZWwgdWk6ZmllbGQ9ImVkaXRQcmVzdGFydGVkVm1zTGFiZWwiIGFkZFN0eWxlTmFtZXM9Intz
dHlsZS5wcmVzdGFydGVkTGFiZWx9IiAvPg0KCQkJCQkJCQkJPGQ6SW5mb0ljb24gdWk6ZmllbGQ9
ImVkaXRQb29sUHJlc3RhcnRlZFZtc0ljb24iIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5wcmVzdGFy
dGVkVm1zSWNvbn0iIC8+DQoJCQkJCQkJCTwvZzpGbG93UGFuZWw+DQoJCQkJCQkJCTxnOkZsb3dQ
YW5lbCBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuZWlkdFByZXN0YXJ0ZWRWbXN9Ij4NCgkJCQkJCQkJ
CTxlOkVudGl0eU1vZGVsVGV4dEJveE9ubHlFZGl0b3IgdWk6ZmllbGQ9ImVkaXRQcmVzdGFydGVk
Vm1zRWRpdG9yIiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuZWRpdFByZXN0YXJ0ZWRWbXNFZGl0b3J9
IiBjb250ZW50V2lkZ2V0U3R5bGVOYW1lPSJ7c3R5bGUudGV4dEJveH0iIC8+DQoJCQkJCQkJCQk8
ZzpWYWx1ZUxhYmVsIHVpOmZpZWxkPSJvdXRPZnhJblBvb2wiIC8+DQoJCQkJCQkJCTwvZzpGbG93
UGFuZWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nOkZsb3dQYW5lbD4NCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZzpG
bG93UGFuZWwgdWk6ZmllbGQ9ImVkaXRQb29sSW5jcmFzZU51bU9mVm1zUGFuZWwiIGFkZFN0eWxl
TmFtZXM9IntzdHlsZS5wb29sRWRpdFZtc30iPg0KCQkJCQkJCQk8ZzpMYWJlbCB0ZXh0PSJ7Y29u
c3RhbnRzLmluY3JlYXNlTnVtYmVyT2ZWTXNJblBvb2xCeX0iIGFkZFN0eWxlTmFtZXM9IntzdHls
ZS5pbmNyZWFzZVByZXN0YXJ0ZWRMYWJlbH0iIC8+DQoJCQkJCQkJCTxnOkZsb3dQYW5lbCBhZGRT
dHlsZU5hbWVzPSJ7c3R5bGUuZWlkdEluY3JlYXNlVm1zfSI+DQoJCQkJCQkJCQk8ZTpFbnRpdHlN
b2RlbFRleHRCb3hPbmx5RWRpdG9yIHVpOmZpZWxkPSJpbmNyYXNlTnVtT2ZWbXNFZGl0b3IiIGFk
ZFN0eWxlTmFtZXM9IntzdHlsZS5lZGl0UHJlc3RhcnRlZFZtc0VkaXRvcn0iIGNvbnRlbnRXaWRn
ZXRTdHlsZU5hbWU9IntzdHlsZS50ZXh0Qm94fSIgLz4NCgkJCQkJCQkJCTxnOkxhYmVsIHRleHQ9
Intjb25zdGFudHMudm1zfSIgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLmluY3JlYXNlVm1zSW5Qb29s
Vm1zfSIgLz4NCgkJCQkJCQkJPC9nOkZsb3dQYW5lbD4NCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA8L2c6Rmxvd1BhbmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlOkxpc3RN
b2RlbExpc3RCb3hFZGl0b3IgdWk6ZmllbGQ9InRlbXBsYXRlRWRpdG9yIi8+DQogICAgICAgICAg
ICAgICAgICAgICAgICA8L2c6Rmxvd1BhbmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGc6
Rmxvd1BhbmVsIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5zZWN0aW9uUGFuZWx9Ij4NCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8ZTpFbnRpdHlNb2RlbFRleHRCb3hFZGl0b3IgdWk6ZmllbGQ9
Im1lbVNpemVFZGl0b3IiLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZTpFbnRpdHlN
b2RlbFRleHRCb3hFZGl0b3IgdWk6ZmllbGQ9InRvdGFsdkNQVXNFZGl0b3IiIC8+DQoJCQkJCQkJ
PGc6Rmxvd1BhbmVsIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5zZWN0aW9uUGFuZWx9Ij4NCgkJCQkJ
CQkJPGQ6QWR2YW5jZWRQYXJhbWV0ZXJzRXhwYW5kZXIgdWk6ZmllbGQ9ImdlbmVyYWxBZHZhbmNl
ZFBhcmFtZXRlckV4cGFuZGVyIi8+DQoJCQkJCQkJCTxnOkZsb3dQYW5lbCB1aTpmaWVsZD0iZ2Vu
ZXJhbEFkdmFuY2VkUGFyYW1ldGVyRXhwYW5kZXJDb250ZW50IiBhZGRTdHlsZU5hbWVzPSJ7c3R5
bGUuZ2VuZXJhbEV4cGFuZGVyQ29udGVudH0iPg0KCQkJCQkJCQkJPGU6TGlzdE1vZGVsTGlzdEJv
eEVkaXRvciB1aTpmaWVsZD0iY29yZVBlclNvY2tldEVkaXRvciIgLz4NCgkJCQkJCQkJCTxlOkxp
c3RNb2RlbExpc3RCb3hFZGl0b3IgdWk6ZmllbGQ9Im51bU9mU29ja2V0c0VkaXRvciIgLz4NCgkJ
CQkJCQkJPC9nOkZsb3dQYW5lbD4NCgkJCQkJCQk8L2c6Rmxvd1BhbmVsPg0KCQkJCQkJPC9nOkZs
b3dQYW5lbD4NCgkJCQkJCTxnOkZsb3dQYW5lbCBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuc2VjdGlv
blBhbmVsfSI+DQoJCQkJCQkJPGU6TGlzdE1vZGVsTGlzdEJveEVkaXRvciB1aTpmaWVsZD0ib1NU
eXBlRWRpdG9yIiAvPg0KCQkJCQkJCTxlOkVudGl0eU1vZGVsQ2hlY2tCb3hFZGl0b3IgdWk6Zmll
bGQ9ImlzU3RhdGVsZXNzRWRpdG9yIiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuY2hlY2tib3h9IiAv
Pg0KCQkJCQkJCTxlOkVudGl0eU1vZGVsQ2hlY2tCb3hFZGl0b3IgdWk6ZmllbGQ9ImlzRGVsZXRl
UHJvdGVjdGVkRWRpdG9yIiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuY2hlY2tib3h9IiAvPg0KCQkJ
CQkJPC9nOkZsb3dQYW5lbD4NCgkJCQkJCTxnOkZsb3dQYW5lbCBhZGRTdHlsZU5hbWVzPSJ7c3R5
bGUuc2VjdGlvblBhbmVsfSI+DQoJCQkJCQkJDQoJCQkJCQk8L2c6Rmxvd1BhbmVsPg0KCQkJCQkJ
PGc6TGFiZWwgdWk6ZmllbGQ9ImdlbmVyYWxXYXJuaW5nTWVzc2FnZSIgYWRkU3R5bGVOYW1lcz0i
e3N0eWxlLndhcm5pbmdNZXNzYWdlTGFiZWx9IiAvPg0KCQkJCQk8L2c6Rmxvd1BhbmVsPg0KCQkJ
CTwvdDpjb250ZW50Pg0KCQkJPC90OkRpYWxvZ1RhYj4NCgkJPC90OnRhYj4NCgkJPHQ6dGFiPg0K
CQkJPHQ6RGlhbG9nVGFiIHVpOmZpZWxkPSJwb29sVGFiIj4NCgkJCQk8dDpjb250ZW50Pg0KCQkJ
CQk8ZzpGbG93UGFuZWw+DQoJCQkJCQk8ZTpMaXN0TW9kZWxMaXN0Qm94RWRpdG9yIHVpOmZpZWxk
PSJwb29sVHlwZUVkaXRvciIgLz4NCgkJCQkJPC9nOkZsb3dQYW5lbD4NCgkJCQk8L3Q6Y29udGVu
dD4NCgkJCTwvdDpEaWFsb2dUYWI+DQoJCTwvdDp0YWI+DQoJCTx0OnRhYj4NCgkJICAgICAgIDx0
OkRpYWxvZ1RhYiB1aTpmaWVsZD0iaW5pdGlhbFJ1blRhYiI+DQoJCQkJPHQ6Y29udGVudD4NCgkJ
CQkJPGc6Rmxvd1BhbmVsPg0KCQkJCSAgICAgIAkgICAgICAgIDxnOkxhYmVsIGFkZFN0eWxlTmFt
ZXM9IntzdHlsZS5zZWN0aW9uTGFiZWx9IiB0ZXh0PSJ7Y29uc3RhbnRzLmluaXRpYWxSdW5HZW5l
cmFsfSIgLz4NCgkJCQkJICAgICAgICA8ZTpMaXN0TW9kZWxMaXN0Qm94RWRpdG9yIHVpOmZpZWxk
PSJ0aW1lWm9uZUVkaXRvciIgLz4NCgkJCQkJCTxnOkxhYmVsIGFkZFN0eWxlTmFtZXM9IntzdHls
ZS5zZWN0aW9uTGFiZWx9IiB0ZXh0PSJ7Y29uc3RhbnRzLmluaXRpYWxSdW5XaW5kb3dzfSIgLz4N
CgkJCQkJCTxlOkxpc3RNb2RlbExpc3RCb3hFZGl0b3IgdWk6ZmllbGQ9ImRvbWFpbkVkaXRvciIg
Lz4NCgkJCQkJPC9nOkZsb3dQYW5lbD4NCgkJCQk8L3Q6Y29udGVudD4NCgkJCTwvdDpEaWFsb2dU
YWI+DQoJCTwvdDp0YWI+DQoJCTx0OnRhYj4NCgkJCTx0OkRpYWxvZ1RhYiB1aTpmaWVsZD0iY29u
c29sZVRhYiI+DQoJCQkJPHQ6Y29udGVudD4NCgkJCQkJPGc6Rmxvd1BhbmVsPg0KCQkJCQkJPGU6
TGlzdE1vZGVsTGlzdEJveEVkaXRvciB1aTpmaWVsZD0iZGlzcGxheVByb3RvY29sRWRpdG9yIiAv
Pg0KCQkJCQkJPGU6TGlzdE1vZGVsTGlzdEJveEVkaXRvciB1aTpmaWVsZD0idXNiU3VwcG9ydEVk
aXRvciIgLz4NCgkJCQkJCTxlOkxpc3RNb2RlbExpc3RCb3hFZGl0b3IgdWk6ZmllbGQ9Im51bU9m
TW9uaXRvcnNFZGl0b3IiIC8+DQoJCQkJCQk8ZTpFbnRpdHlNb2RlbENoZWNrQm94RWRpdG9yIHVp
OmZpZWxkPSJpc1NtYXJ0Y2FyZEVuYWJsZWRFZGl0b3IiIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5j
aGVja2JveH0iIC8+DQoJCQkJCQk8ZzpMYWJlbCB1aTpmaWVsZD0ibmF0aXZlVXNiV2FybmluZ01l
c3NhZ2UiIHRleHQ9Intjb25zdGFudHMubmF0aXZlVXNiU3VwcG9ydFdhcm5pbmd9IiBhZGRTdHls
ZU5hbWVzPSJ7c3R5bGUud2FybmluZ01lc3NhZ2VMYWJlbH0iIC8+DQoJCQkJCQk8ZDpBZHZhbmNl
ZFBhcmFtZXRlcnNFeHBhbmRlciB1aTpmaWVsZD0iZXhwYW5kZXIiLz4NCgkJCQkJCTxnOkZsb3dQ
YW5lbCB1aTpmaWVsZD0iZXhwYW5kZXJDb250ZW50IiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuZXhw
YW5kZXJDb250ZW50fSI+DQoJCQkJCQkJPGc6TGFiZWwgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLndh
cm5pbmdMYWJlbH0iIHRleHQ9Intjb25zdGFudHMuYWR2YW5jZWRPcHRpb25zTGFiZWx9IiAvPg0K
CQkJCQkJCTxlOkVudGl0eU1vZGVsQ2hlY2tCb3hFZGl0b3IgdWk6ZmllbGQ9ImFsbG93Q29uc29s
ZVJlY29ubmVjdEVkaXRvciIgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLmNoZWNrYm94V2l0aExvbmdM
YWJlbH0iIC8+DQoJCQkJCQk8L2c6Rmxvd1BhbmVsPg0KCQkJCQk8L2c6Rmxvd1BhbmVsPg0KCQkJ
CTwvdDpjb250ZW50Pg0KCQkJPC90OkRpYWxvZ1RhYj4NCgkJPC90OnRhYj4NCgkJPHQ6dGFiPg0K
CQkJPHQ6RGlhbG9nVGFiIHVpOmZpZWxkPSJob3N0VGFiIj4NCgkJCQk8dDpjb250ZW50Pg0KCQkJ
CQk8ZzpGbG93UGFuZWw+DQoJCQkJCQk8ZzpMYWJlbCBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuc2Vj
dGlvbkxhYmVsfSIgdGV4dD0ie2NvbnN0YW50cy5ydW5PblZtUG9wdXB9IiAvPg0KCQkJCQkJPGc6
VmVydGljYWxQYW5lbCBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUucnVuSG9zdFBhbmVsfSIgdmVydGlj
YWxBbGlnbm1lbnQ9J0FMSUdOX01JRERMRSc+DQoJCQkJCQkJPGU6RW50aXR5TW9kZWxSYWRpb0J1
dHRvbkVkaXRvciB3aWR0aD0iMTUwcHgiIHVpOmZpZWxkPSJpc0F1dG9Bc3NpZ25FZGl0b3IiDQoJ
CQkJCQkJCWFkZFN0eWxlTmFtZXM9IntzdHlsZS5yYWRpb0J1dHRvbn0iIC8+DQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPGc6SG9yaXpvbnRhbFBhbmVsIHZlcnRpY2FsQWxpZ25tZW50PSdB
TElHTl9NSURETEUnPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZzpSYWRpb0J1
dHRvbiB1aTpmaWVsZD0ic3BlY2lmaWNIb3N0IiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUucmFkaW9C
dXR0b25TcGVjaWZpY0hvc3R9IiAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
ZzpMYWJlbCB1aTpmaWVsZD0ic3BlY2lmaWNIb3N0TGFiZWwiIHRleHQ9Intjb25zdGFudHMuc3Bl
Y2lmaWNWbVBvcHVwfSIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGU6TGlz
dE1vZGVsTGlzdEJveEVkaXRvciB1aTpmaWVsZD0iZGVmYXVsdEhvc3RFZGl0b3IiIC8+DQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPC9nOkhvcml6b250YWxQYW5lbD4NCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8ZzpIb3Jpem9udGFsUGFuZWwgdmVydGljYWxBbGlnbm1lbnQ9J0FM
SUdOX01JRERMRSc+DQoJCQkJCQkJPGU6RW50aXR5TW9kZWxSYWRpb0J1dHRvbkVkaXRvciB3aWR0
aD0iMTUwcHgiIHVpOmZpZWxkPSJydW5WTU9uVHJ1c3RlZEhvc3RFZGl0b3IiDQoJCQkJCQkJCWFk
ZFN0eWxlTmFtZXM9IntzdHlsZS5yYWRpb0J1dHRvbn0iIC8+DQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9nOkhvcml6b250YWxQYW5lbD4NCgkJCQkJCTwvZzpWZXJ0aWNhbFBhbmVsPg0K
CQkJCQkJPGc6TGFiZWwgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLnNlY3Rpb25MYWJlbH0iIHRleHQ9
Intjb25zdGFudHMucnVuTWlncmF0aW9uT3B0aW9uc1ZtUG9wdXB9IiAvPg0KCQkJCQkJPGc6VmVy
dGljYWxQYW5lbCB3aWR0aD0iMTAwJSIgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLmhvc3RSdW5NaWdy
YXRpb25PcHRpb25zfSI+DQoJCQkJCQkJPGU6RW50aXR5TW9kZWxDaGVja0JveEVkaXRvciB1aTpm
aWVsZD0icnVuVk1PblNwZWNpZmljSG9zdEVkaXRvciIgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLmNo
ZWNrYm94fSIgLz4NCgkJCQkJCQk8ZTpFbnRpdHlNb2RlbENoZWNrQm94RWRpdG9yIHVpOmZpZWxk
PSJob3N0Q3B1RWRpdG9yIiBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuY2hlY2tib3h9IiAvPg0KCQkJ
CQkJCTxlOkVudGl0eU1vZGVsQ2hlY2tCb3hFZGl0b3IgdWk6ZmllbGQ9ImRvbnRNaWdyYXRlVk1F
ZGl0b3IiIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5jaGVja2JveFdpdGhMb25nTGFiZWx9IiAvPg0K
CQkJCQkJPC9nOlZlcnRpY2FsUGFuZWw+DQoJCQkJCQk8ZTpFbnRpdHlNb2RlbFRleHRCb3hFZGl0
b3IgdWk6ZmllbGQ9ImNwdVBpbm5pbmciIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5jcHVQaW5uaW5n
U3R5bGV9Ii8+DQoJCQkJCQk8ZzpIVE1MIHVpOmZpZWxkPSJjcHVQaW5uaW5nTGFiZWwiIGFkZFN0
eWxlTmFtZXM9IntzdHlsZS5leHBsYW5hdGlvbkxhYmVsfSxnZW5lcmFsRGlhbG9nQ29tbWVudCIg
Lz4NCgkJCQkJPC9nOkZsb3dQYW5lbD4NCgkJCQk8L3Q6Y29udGVudD4NCgkJCTwvdDpEaWFsb2dU
YWI+DQoJCTwvdDp0YWI+DQoJCTx0OnRhYj4NCgkJCTx0OkRpYWxvZ1RhYiB1aTpmaWVsZD0iaGln
aEF2YWlsYWJpbGl0eVRhYiI+DQoJCQkJPHQ6Y29udGVudD4NCgkJCQkJPGc6Rmxvd1BhbmVsPg0K
CQkJCQkJPGc6Rmxvd1BhbmVsIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5zZWN0aW9uUGFuZWx9Ij4N
CgkJCQkJCQk8ZTpFbnRpdHlNb2RlbENoZWNrQm94RWRpdG9yIHVpOmZpZWxkPSJpc0hpZ2hseUF2
YWlsYWJsZUVkaXRvciIgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLmNoZWNrYm94fSIgLz4NCgkJCQkJ
CTwvZzpGbG93UGFuZWw+DQoJCQkJCQk8ZzpGbG93UGFuZWwgYWRkU3R5bGVOYW1lcz0ie3N0eWxl
LnNlY3Rpb25QYW5lbH0iPg0KCQkJCQkJCTxnOkxhYmVsIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5z
ZWN0aW9uTGFiZWx9IiB0ZXh0PSJ7Y29uc3RhbnRzLnByaW9yRm9yUnVuTWlncmF0aW9uUXVldWVW
bVBvcHVwfSIgLz4NCgkJCQkJCQk8ZTpFbnRpdHlNb2RlbENlbGxUYWJsZSB1aTpmaWVsZD0icHJp
b3JpdHlFZGl0b3IiIC8+DQoJCQkJCQk8L2c6Rmxvd1BhbmVsPg0KCQkJCQk8L2c6Rmxvd1BhbmVs
Pg0KCQkJCTwvdDpjb250ZW50Pg0KCQkJPC90OkRpYWxvZ1RhYj4NCgkJPC90OnRhYj4NCgkJPHQ6
dGFiPg0KCQkJPHQ6RGlhbG9nVGFiIHVpOmZpZWxkPSJyZXNvdXJjZUFsbG9jYXRpb25UYWIiPg0K
CQkJCTx0OmNvbnRlbnQ+DQoJCQkJCTxnOkZsb3dQYW5lbD4NCgkJCQkJCTxnOkZsb3dQYW5lbCBh
ZGRTdHlsZU5hbWVzPSJ7c3R5bGUuc2VjdGlvblBhbmVsfSI+DQoJCQkJCQkJPGc6TGFiZWwgYWRk
U3R5bGVOYW1lcz0ie3N0eWxlLnNlY3Rpb25MYWJlbH0iIHRleHQ9Intjb25zdGFudHMubWVtQWxs
b2NWbVBvcHVwfSIgLz4NCgkJCQkJCQk8ZTpFbnRpdHlNb2RlbFRleHRCb3hFZGl0b3IgdWk6Zmll
bGQ9Im1pbkFsbG9jYXRlZE1lbW9yeUVkaXRvciIgLz4NCgkJCQkJCTwvZzpGbG93UGFuZWw+DQoJ
CQkJCQk8ZzpGbG93UGFuZWwgdWk6ZmllbGQ9InN0b3JhZ2VBbGxvY2F0aW9uUGFuZWwiIGFkZFN0
eWxlTmFtZXM9IntzdHlsZS5zZWN0aW9uUGFuZWx9Ij4NCgkJCQkJCQk8ZzpIb3Jpem9udGFsUGFu
ZWw+DQoJCQkJCQkJCTxnOkxhYmVsIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5zZWN0aW9uTGFiZWx9
IiB0ZXh0PSJ7Y29uc3RhbnRzLnN0b3JhZ2VBbGxvY1ZtUG9wdXB9IiAvPg0KCQkJCQkJCQk8ZzpM
YWJlbCBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuc2VjdGlvbkNvbW1lbnR9IiB0ZXh0PSJ7Y29uc3Rh
bnRzLmF2YWlsT25seVRlbXBsU2VsZWN0ZWRWbVBvcHVwfSIgLz4NCgkJCQkJCQk8L2c6SG9yaXpv
bnRhbFBhbmVsPg0KCQkJCQkJCTxnOkhvcml6b250YWxQYW5lbCB1aTpmaWVsZD0icHJvdmlzaW9u
U2VsZWN0aW9uUGFuZWwiPg0KCQkJCQkJCQk8ZTpMaXN0TW9kZWxMaXN0Qm94RWRpdG9yIHVpOmZp
ZWxkPSJwcm92aXNpb25pbmdFZGl0b3IiIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5wcm92aXNpb25p
bmdFZGl0b3J9IiAvPg0KCQkJCQkJCQk8ZzpWZXJ0aWNhbFBhbmVsPg0KCQkJCQkJCQkJPGU6RW50
aXR5TW9kZWxSYWRpb0J1dHRvbkVkaXRvciB1aTpmaWVsZD0icHJvdmlzaW9uaW5nVGhpbkVkaXRv
ciIvPg0KCQkJCQkJCQkJPGU6RW50aXR5TW9kZWxSYWRpb0J1dHRvbkVkaXRvciB1aTpmaWVsZD0i
cHJvdmlzaW9uaW5nQ2xvbmVFZGl0b3IiLz4NCgkJCQkJCQkJPC9nOlZlcnRpY2FsUGFuZWw+DQoJ
CQkJCQkJPC9nOkhvcml6b250YWxQYW5lbD4NCgkJCQkJCQk8ZzpGbG93UGFuZWwgdWk6ZmllbGQ9
ImRpc2tzQWxsb2NhdGlvblBhbmVsIj4NCgkJCQkJCQk8ZzpMYWJlbCB1aTpmaWVsZD0iZGlza3NB
bGxvY2F0aW9uTGFiZWwiIHRleHQ9Intjb25zdGFudHMuZGlza3NBbGxvY2F0aW9ufSIgIGFkZFN0
eWxlTmFtZXM9IntzdHlsZS5kaXNrc0FsbG9jYXRpb259IiB2aXNpYmxlPSJmYWxzZSIgLz4NCgkJ
CQkJCQkJPGc6VmVydGljYWxQYW5lbD4NCgkJCQkJCQkJCTxzOkRpc2tzQWxsb2NhdGlvblZpZXcg
dWk6ZmllbGQ9ImRpc2tzQWxsb2NhdGlvblZpZXciIGxpc3RIZWlnaHQ9IjE3MHB4IiBsaXN0V2lk
dGg9IjQ5MHB4IiBzaG93Vm9sdW1lVHlwZT0idHJ1ZSIgYWRkU3R5bGVOYW1lcz0ie3N0eWxlLmRp
c2tzQWxsb2NhdGlvblBhbmVsfSIgLz4NCgkJCQkJCQkJPC9nOlZlcnRpY2FsUGFuZWw+DQoJCQkJ
CQkJPC9nOkZsb3dQYW5lbD4NCgkJCQkJCTwvZzpGbG93UGFuZWw+DQoJCQkJCTwvZzpGbG93UGFu
ZWw+DQoJCQkJPC90OmNvbnRlbnQ+DQoJCQk8L3Q6RGlhbG9nVGFiPg0KCQk8L3Q6dGFiPg0KCQk8
dDp0YWI+DQoJCQk8dDpEaWFsb2dUYWIgdWk6ZmllbGQ9ImJvb3RPcHRpb25zVGFiIj4NCgkJCQk8
dDpjb250ZW50Pg0KCQkJCQk8ZzpGbG93UGFuZWw+DQoJCQkJCQk8ZzpGbG93UGFuZWwgYWRkU3R5
bGVOYW1lcz0ie3N0eWxlLnNlY3Rpb25QYW5lbH0iPg0KCQkJCQkJCTxnOkxhYmVsIGFkZFN0eWxl
TmFtZXM9IntzdHlsZS5zZWN0aW9uTGFiZWx9IiB0ZXh0PSJ7Y29uc3RhbnRzLmJvb3RTZXF1ZW5j
ZVZtUG9wdXB9IiAvPg0KCQkJCQkJCTxlOkxpc3RNb2RlbExpc3RCb3hFZGl0b3IgdWk6ZmllbGQ9
ImZpcnN0Qm9vdERldmljZUVkaXRvciIgLz4NCgkJCQkJCQk8ZTpMaXN0TW9kZWxMaXN0Qm94RWRp
dG9yIHVpOmZpZWxkPSJzZWNvbmRCb290RGV2aWNlRWRpdG9yIiAvPg0KCQkJCQkJCTxnOkhvcml6
b250YWxQYW5lbCBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuYXR0YWNoQ2RQYW5lbH0iIHZlcnRpY2Fs
QWxpZ25tZW50PSJBTElHTl9NSURETEUiPg0KCQkJCQkJCQk8ZTpFbnRpdHlNb2RlbENoZWNrQm94
RWRpdG9yIGxhYmVsPSJ7Y29uc3RhbnRzLmF0dGFjaENkVm1Qb3B1cH0iIHVpOmZpZWxkPSJjZEF0
dGFjaGVkRWRpdG9yIiAvPg0KCQkJCQkJCQk8ZTpMaXN0TW9kZWxMaXN0Qm94RWRpdG9yIHVpOmZp
ZWxkPSJjZEltYWdlRWRpdG9yIiAvPg0KCQkJCQkJCTwvZzpIb3Jpem9udGFsUGFuZWw+DQoJCQkJ
CQk8L2c6Rmxvd1BhbmVsPg0KCQkJCQkJPGc6Rmxvd1BhbmVsIHVpOmZpZWxkPSJsaW51eEJvb3RP
cHRpb25zUGFuZWwiIGFkZFN0eWxlTmFtZXM9IntzdHlsZS5zZWN0aW9uUGFuZWx9Ij4NCgkJCQkJ
CQk8ZzpMYWJlbCBhZGRTdHlsZU5hbWVzPSJ7c3R5bGUuc2VjdGlvbkxhYmVsfSIgdGV4dD0ie2Nv
bnN0YW50cy5saW51eEJvb3RPcHRpb25zVm1Qb3B1cH0iIC8+DQoJCQkJCQkJPGU6RW50aXR5TW9k
ZWxUZXh0Qm94RWRpdG9yIHVpOmZpZWxkPSJrZXJuZWxfcGF0aEVkaXRvciIgLz4NCgkJCQkJCQk8
ZTpFbnRpdHlNb2RlbFRleHRCb3hFZGl0b3IgdWk6ZmllbGQ9ImluaXRyZF9wYXRoRWRpdG9yIiAv
Pg0KCQkJCQkJCTxlOkVudGl0eU1vZGVsVGV4dEJveEVkaXRvciB1aTpmaWVsZD0ia2VybmVsX3Bh
cmFtZXRlcnNFZGl0b3IiIC8+DQoJCQkJCQk8L2c6Rmxvd1BhbmVsPg0KCQkJCQk8L2c6Rmxvd1Bh
bmVsPg0KCQkJCTwvdDpjb250ZW50Pg0KCQkJPC90OkRpYWxvZ1RhYj4NCgkJPC90OnRhYj4NCgkJ
PHQ6dGFiPg0KCQkJPHQ6RGlhbG9nVGFiIHVpOmZpZWxkPSJjdXN0b21Qcm9wZXJ0aWVzVGFiIj4N
CgkJCQk8dDpjb250ZW50Pg0KCQkJCQk8ZzpGbG93UGFuZWw+DQogICAgICAgICAgICAgICAgICAg
ICAgICA8azpLZXlWYWx1ZVdpZGdldCB1aTpmaWVsZD0iY3VzdG9tUHJvcGVydGllc1NoZWV0RWRp
dG9yIi8+DQoJCQkJCTwvZzpGbG93UGFuZWw+DQoJCQkJPC90OmNvbnRlbnQ+DQoJCQk8L3Q6RGlh
bG9nVGFiPg0KCQk8L3Q6dGFiPg0KCTwvdDpEaWFsb2dUYWJQYW5lbD4NCg0KPC91aTpVaUJpbmRl
cj4NCg==
--_005_C5A0092C63E939488005F15F736A8112097A57B9SHSMSX101ccrcor_
Content-Type: application/octet-stream; name="UnitVmModel.java"
Content-Description: UnitVmModel.java
Content-Disposition: attachment; filename="UnitVmModel.java"; size=75481;
creation-date="Tue, 12 Mar 2013 08:33:20 GMT";
modification-date="Tue, 12 Mar 2013 08:25:07 GMT"
Content-Transfer-Encoding: base64
cGFja2FnZSBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLm1vZGVscy52bXM7CgppbXBv
cnQgamF2YS51dGlsLkFycmF5TGlzdDsKaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBq
YXZhLnV0aWwuQ29sbGVjdGlvbnM7CmltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKaW1wb3J0
IGphdmEudXRpbC5EYXRlOwppbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CmltcG9ydCBqYXZhLnV0
aWwuTGlzdDsKCmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNzZW50
aXRpZXMuQm9vdFNlcXVlbmNlOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5i
dXNpbmVzc2VudGl0aWVzLkRpc3BsYXlUeXBlOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3Jl
LmNvbW1vbi5idXNpbmVzc2VudGl0aWVzLlF1b3RhRW5mb3JjZW1lbnRUeXBlRW51bTsKaW1wb3J0
IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy5Vc2JQb2xpY3k7
CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNzZW50aXRpZXMuVkRT
OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNpbmVzc2VudGl0aWVzLlZE
U0dyb3VwOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNpbmVzc2VudGl0
aWVzLlZtT3NUeXBlOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNpbmVz
c2VudGl0aWVzLlZtVHlwZTsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVz
aW5lc3NlbnRpdGllcy5zdG9yYWdlX2RvbWFpbnM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNv
cmUuY29tbW9uLmJ1c2luZXNzZW50aXRpZXMuc3RvcmFnZV9wb29sOwppbXBvcnQgb3JnLm92aXJ0
LmVuZ2luZS5jb3JlLmNvbW1vbi5xdWVyaWVzLlZkY1F1ZXJ5VHlwZTsKaW1wb3J0IG9yZy5vdmly
dC5lbmdpbmUuY29yZS5jb21wYXQuRXZlbnQ7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUu
Y29tcGF0LkV2ZW50QXJnczsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21wYXQuR3Vp
ZDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21wYXQuSUV2ZW50TGlzdGVuZXI7Cmlt
cG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tcGF0Lk5HdWlkOwppbXBvcnQgb3JnLm92aXJ0
LmVuZ2luZS5jb3JlLmNvbXBhdC5Qcm9wZXJ0eUNoYW5nZWRFdmVudEFyZ3M7CmltcG9ydCBvcmcu
b3ZpcnQuZW5naW5lLmNvcmUuY29tcGF0LlN0cmluZ0hlbHBlcjsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUuY29yZS5jb21wYXQuVmVyc2lvbjsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuZnJv
bnRlbmQuQXN5bmNRdWVyeTsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuZnJvbnRlbmQuRnJv
bnRlbmQ7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLmZyb250ZW5kLklOZXdBc3luY0NhbGxi
YWNrOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi5MaW5xOwppbXBvcnQg
b3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi5kYXRhcHJvdmlkZXIuQXN5bmNEYXRhUHJv
dmlkZXI7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLm1vZGVscy5FbnRp
dHlNb2RlbDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkudWljb21tb253ZWIubW9kZWxzLkxp
c3RNb2RlbDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkudWljb21tb253ZWIubW9kZWxzLk1v
ZGVsOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi5tb2RlbHMuU3lzdGVt
VHJlZUl0ZW1Nb2RlbDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkudWljb21tb253ZWIubW9k
ZWxzLlN5c3RlbVRyZWVJdGVtVHlwZTsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkudWljb21t
b253ZWIubW9kZWxzLnN0b3JhZ2UuRGlza3NBbGxvY2F0aW9uTW9kZWw7CmltcG9ydCBvcmcub3Zp
cnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLm1vZGVscy52bXMua2V5X3ZhbHVlLktleVZhbHVlTW9k
ZWw7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLnZhbGlkYXRpb24uQnl0
ZVNpemVWYWxpZGF0aW9uOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi52
YWxpZGF0aW9uLkkxOE5OYW1lVmFsaWRhdGlvbjsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWku
dWljb21tb253ZWIudmFsaWRhdGlvbi5JVmFsaWRhdGlvbjsKaW1wb3J0IG9yZy5vdmlydC5lbmdp
bmUudWkudWljb21tb253ZWIudmFsaWRhdGlvbi5JbnRlZ2VyVmFsaWRhdGlvbjsKaW1wb3J0IG9y
Zy5vdmlydC5lbmdpbmUudWkudWljb21tb253ZWIudmFsaWRhdGlvbi5MZW5ndGhWYWxpZGF0aW9u
OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi52YWxpZGF0aW9uLk5vVHJp
bW1pbmdXaGl0ZXNwYWNlc1ZhbGlkYXRpb247CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVp
Y29tbW9ud2ViLnZhbGlkYXRpb24uTm90RW1wdHlRdW90YVZhbGlkYXRpb247CmltcG9ydCBvcmcu
b3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLnZhbGlkYXRpb24uTm90RW1wdHlWYWxpZGF0aW9u
OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi52YWxpZGF0aW9uLlNwZWNp
YWxBc2NpaUkxOE5Pck5vbmVWYWxpZGF0aW9uOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS51
aWNvbW1vbndlYi52YWxpZGF0aW9uLlZhbGlkYXRpb25SZXN1bHQ7CmltcG9ydCBvcmcub3ZpcnQu
ZW5naW5lLnVpLnVpY29tcGF0LkNvbnN0YW50c01hbmFnZXI7CgpwdWJsaWMgY2xhc3MgVW5pdFZt
TW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgV0lORE9X
U19WTV9OQU1FX01BWF9MSU1JVCA9IDE1OwogICAgcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgTk9O
X1dJTkRPV1NfVk1fTkFNRV9NQVhfTElNSVQgPSA2NDsKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwg
aW50IFZNX1RFTVBMQVRFX05BTUVfTUFYX0xJTUlUID0gNDA7CiAgICBwdWJsaWMgc3RhdGljIGZp
bmFsIGludCBERVNDUklQVElPTl9NQVhfTElNSVQgPSAyNTU7CgogICAgcHJpdmF0ZSBib29sZWFu
IHByaXZhdGVJc05ldzsKCiAgICBwdWJsaWMgYm9vbGVhbiBnZXRJc05ldygpCiAgICB7CiAgICAg
ICAgcmV0dXJuIHByaXZhdGVJc05ldzsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRJc05ldyhi
b29sZWFuIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVJc05ldyA9IHZhbHVlOwogICAgfQoK
ICAgIHByaXZhdGUgYm9vbGVhbiB2bUF0dGFjaGVkVG9Qb29sOwoKICAgIHB1YmxpYyBib29sZWFu
IGlzVm1BdHRhY2hlZFRvUG9vbCgpIHsKICAgICAgICByZXR1cm4gdm1BdHRhY2hlZFRvUG9vbDsK
ICAgIH0KCiAgICAvKioKICAgICAqIE5vdGU6IFdlIGFzc3VtZSB0aGF0IHRoaXMgbWV0aG9kIGlz
IGNhbGxlZCBvbmx5IG9uY2UsIG9uIHRoZSBjcmVhdGlvbiBzdGFnZQogICAgICogb2YgdGhlIG1v
ZGVsLiBpZiB0aGlzIGFzc3VtcHRpb24gaXMgY2hhbmdlZCAoaS5lIHRoZSBWTSBjYW4gYXR0YWNo
ZWQvZGV0YWNoZWQKICAgICAqIGZyb20gYSBwb29sIGFmdGVyIHRoZSBtb2RlbCBpcyBjcmVhdGVk
KSwgdGhpcyBtZXRob2Qgc2hvdWxkIGJlIG1vZGlmaWVkCiAgICAgKi8KICAgIHB1YmxpYyB2b2lk
IHNldFZtQXR0YWNoZWRUb1Bvb2woYm9vbGVhbiB2YWx1ZSkgewogICAgICAgIGlmICh2YWx1ZSkg
ewogICAgICAgICAgICAvLyA9PUdlbmVyYWwgVGFiPT0KICAgICAgICAgICAgZ2V0RGF0YUNlbnRl
cigpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAgICAgZ2V0Q2x1c3RlcigpLnNldElz
Q2hhbmdhYmxlKCF2YWx1ZSk7CiAgICAgICAgICAgIGdldFF1b3RhKCkuc2V0SXNDaGFuZ2FibGUo
ZmFsc2UpOwogICAgICAgICAgICBnZXREZXNjcmlwdGlvbigpLnNldElzQ2hhbmdhYmxlKGZhbHNl
KTsKCiAgICAgICAgICAgIGdldE51bU9mRGVza3RvcHMoKS5zZXRJc0NoYW5nYWJsZShmYWxzZSk7
CiAgICAgICAgICAgIGdldFByZXN0YXJ0ZWRWbXMoKS5zZXRJc0NoYW5nYWJsZShmYWxzZSk7Cgog
ICAgICAgICAgICBnZXRUZW1wbGF0ZSgpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAg
ICAgZ2V0TWVtU2l6ZSgpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAgICAgZ2V0VG90
YWxDUFVDb3JlcygpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKCiAgICAgICAgICAgIGdldENvcmVz
UGVyU29ja2V0KCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAgICBnZXROdW1PZlNv
Y2tldHMoKS5zZXRJc0NoYW5nYWJsZShmYWxzZSk7CgogICAgICAgICAgICBnZXRPU1R5cGUoKS5z
ZXRJc0NoYW5nYWJsZShmYWxzZSk7CiAgICAgICAgICAgIGdldElzU3RhdGVsZXNzKCkuc2V0SXND
aGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAgICBnZXRJc0RlbGV0ZVByb3RlY3RlZCgpLnNldElz
Q2hhbmdhYmxlKGZhbHNlKTsKCiAgICAgICAgICAgIC8vID09SW5pdGlhbCBydW4gVGFiPT0KICAg
ICAgICAgICAgZ2V0VGltZVpvbmUoKS5zZXRJc0NoYW5nYWJsZShmYWxzZSk7CiAgICAgICAgICAg
IGdldERvbWFpbigpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKCiAgICAgICAgICAgIC8vID09Q29u
c29sZSBUYWI9PQogICAgICAgICAgICBnZXREaXNwbGF5UHJvdG9jb2woKS5zZXRJc0NoYW5nYWJs
ZShmYWxzZSk7CiAgICAgICAgICAgIGdldFVzYlBvbGljeSgpLnNldElzQ2hhbmdhYmxlKGZhbHNl
KTsKICAgICAgICAgICAgZ2V0TnVtT2ZNb25pdG9ycygpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsK
ICAgICAgICAgICAgZ2V0SXNTbWFydGNhcmRFbmFibGVkKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2Up
OwogICAgICAgICAgICBnZXRBbGxvd0NvbnNvbGVSZWNvbm5lY3QoKS5zZXRJc0NoYW5nYWJsZShm
YWxzZSk7CgogICAgICAgICAgICAvLyA9PUhvc3QgVGFiPT0KICAgICAgICAgICAgZ2V0SXNBdXRv
QXNzaWduKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAgICBnZXREZWZhdWx0SG9z
dCgpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAgICAgZ2V0UnVuVk1PblNwZWNpZmlj
SG9zdCgpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAgICAgZ2V0UnVuVk1PblRydXN0
ZWRIb3N0KCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAgICBnZXRIb3N0Q3B1KCku
c2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAgICBnZXREb250TWlncmF0ZVZNKCkuc2V0
SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAgICBnZXRDcHVQaW5uaW5nKCkuc2V0SXNDaGFu
Z2FibGUoZmFsc2UpOwoKICAgICAgICAgICAgLy8gPT1SZXNvdXJjZSBBbGxvY2F0aW9uIFRhYj09
CiAgICAgICAgICAgIGdldE1pbkFsbG9jYXRlZE1lbW9yeSgpLnNldElzQ2hhbmdhYmxlKGZhbHNl
KTsKICAgICAgICAgICAgZ2V0UHJvdmlzaW9uaW5nKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwog
ICAgICAgICAgICBnZXRQcm92aXNpb25pbmdUaGluX0lzU2VsZWN0ZWQoKS5zZXRJc0NoYW5nYWJs
ZShmYWxzZSk7CiAgICAgICAgICAgIGdldFByb3Zpc2lvbmluZ0Nsb25lX0lzU2VsZWN0ZWQoKS5z
ZXRJc0NoYW5nYWJsZShmYWxzZSk7CiAgICAgICAgICAgIGdldERpc2tzQWxsb2NhdGlvbk1vZGVs
KCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwoKICAgICAgICAgICAgLy8gPT1Cb290IE9wdGlvbnMg
VGFiPT0KICAgICAgICAgICAgZ2V0Rmlyc3RCb290RGV2aWNlKCkuc2V0SXNDaGFuZ2FibGUoZmFs
c2UpOwogICAgICAgICAgICBnZXRTZWNvbmRCb290RGV2aWNlKCkuc2V0SXNDaGFuZ2FibGUoZmFs
c2UpOwogICAgICAgICAgICBnZXRDZEF0dGFjaGVkKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwog
ICAgICAgICAgICBnZXRDZEltYWdlKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAg
ICBnZXRLZXJuZWxfcGF0aCgpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAgICAgZ2V0
SW5pdHJkX3BhdGgoKS5zZXRJc0NoYW5nYWJsZShmYWxzZSk7CiAgICAgICAgICAgIGdldEtlcm5l
bF9wYXJhbWV0ZXJzKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwoKICAgICAgICAgICAgLy8gPT1D
dXN0b20gUHJvcGVydGllcyBUYWI9PQogICAgICAgICAgICBnZXRDdXN0b21Qcm9wZXJ0aWVzKCku
c2V0SXNDaGFuZ2FibGUoZmFsc2UpOwoKICAgICAgICAgICAgdm1BdHRhY2hlZFRvUG9vbCA9IHRy
dWU7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgVm1UeXBlIHByaXZhdGVWbVR5cGUgPSBn
ZXRWbVR5cGUoKS52YWx1ZXMoKVswXTsKCiAgICBwdWJsaWMgVm1UeXBlIGdldFZtVHlwZSgpCiAg
ICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVWbVR5cGU7CiAgICB9CgogICAgcHVibGljIHZvaWQg
c2V0Vm1UeXBlKFZtVHlwZSB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlVm1UeXBlID0gdmFs
dWU7CiAgICB9CgogICAgcHJpdmF0ZSBTdHJpbmcgcHJpdmF0ZUhhc2g7CgogICAgcHVibGljIFN0
cmluZyBnZXRIYXNoKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZUhhc2g7CiAgICB9Cgog
ICAgcHVibGljIHZvaWQgc2V0SGFzaChTdHJpbmcgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0
ZUhhc2ggPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIGJvb2xlYW4gaXNCbGFua1RlbXBsYXRl
OwoKICAgIHB1YmxpYyBib29sZWFuIGdldElzQmxhbmtUZW1wbGF0ZSgpCiAgICB7CiAgICAgICAg
cmV0dXJuIGlzQmxhbmtUZW1wbGF0ZTsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRJc0JsYW5r
VGVtcGxhdGUoYm9vbGVhbiB2YWx1ZSkKICAgIHsKICAgICAgICBpZiAoaXNCbGFua1RlbXBsYXRl
ICE9IHZhbHVlKQogICAgICAgIHsKICAgICAgICAgICAgaXNCbGFua1RlbXBsYXRlID0gdmFsdWU7
CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQcm9wZXJ0eUNoYW5nZWRFdmVudEFy
Z3MoIklzQmxhbmtUZW1wbGF0ZSIpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIH0KICAgIH0KCiAg
ICBwcml2YXRlIGJvb2xlYW4gaXNXaW5kb3dzT1M7CgogICAgcHVibGljIGJvb2xlYW4gZ2V0SXNX
aW5kb3dzT1MoKQogICAgewogICAgICAgIHJldHVybiBpc1dpbmRvd3NPUzsKICAgIH0KCiAgICBw
dWJsaWMgdm9pZCBzZXRJc1dpbmRvd3NPUyhib29sZWFuIHZhbHVlKQogICAgewogICAgICAgIGlm
IChpc1dpbmRvd3NPUyAhPSB2YWx1ZSkKICAgICAgICB7CiAgICAgICAgICAgIGlzV2luZG93c09T
ID0gdmFsdWU7CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQcm9wZXJ0eUNoYW5n
ZWRFdmVudEFyZ3MoIklzV2luZG93c09TIikpOyAvLyROT04tTkxTLTEkCiAgICAgICAgfQogICAg
fQoKICAgIHByaXZhdGUgYm9vbGVhbiBpc0xpbnV4X1VuYXNzaWduX1Vua25vd25PUzsKCiAgICBw
dWJsaWMgYm9vbGVhbiBnZXRJc0xpbnV4X1VuYXNzaWduX1Vua25vd25PUygpCiAgICB7CiAgICAg
ICAgcmV0dXJuIGlzTGludXhfVW5hc3NpZ25fVW5rbm93bk9TOwogICAgfQoKICAgIHB1YmxpYyB2
b2lkIHNldElzTGludXhfVW5hc3NpZ25fVW5rbm93bk9TKGJvb2xlYW4gdmFsdWUpCiAgICB7CiAg
ICAgICAgaWYgKGlzTGludXhfVW5hc3NpZ25fVW5rbm93bk9TICE9IHZhbHVlKQogICAgICAgIHsK
ICAgICAgICAgICAgaXNMaW51eF9VbmFzc2lnbl9Vbmtub3duT1MgPSB2YWx1ZTsKICAgICAgICAg
ICAgT25Qcm9wZXJ0eUNoYW5nZWQobmV3IFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncygiSXNMaW51
eF9VbmFzc2lnbl9Vbmtub3duT1MiKSk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB9CiAgICB9Cgog
ICAgcHJpdmF0ZSBTdHJpbmcgY3B1Tm90aWZpY2F0aW9uOwoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0
Q1BVTm90aWZpY2F0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gY3B1Tm90aWZpY2F0aW9uOwog
ICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldENQVU5vdGlmaWNhdGlvbihTdHJpbmcgdmFsdWUpCiAg
ICB7CiAgICAgICAgaWYgKCFTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKGNwdU5vdGlmaWNhdGlv
biwgdmFsdWUpKQogICAgICAgIHsKICAgICAgICAgICAgY3B1Tm90aWZpY2F0aW9uID0gdmFsdWU7
CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQcm9wZXJ0eUNoYW5nZWRFdmVudEFy
Z3MoIkNQVU5vdGlmaWNhdGlvbiIpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIH0KICAgIH0KCiAg
ICBwdWJsaWMgYm9vbGVhbiBpc0NQVXNBbW91bnRWYWxpZDsKCiAgICBwdWJsaWMgYm9vbGVhbiBn
ZXRJc0NQVXNBbW91bnRWYWxpZCgpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzQ1BVc0Ftb3VudFZh
bGlkOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldElzQ1BVc0Ftb3VudFZhbGlkKGJvb2xlYW4g
dmFsdWUpCiAgICB7CiAgICAgICAgaWYgKGlzQ1BVc0Ftb3VudFZhbGlkICE9IHZhbHVlKQogICAg
ICAgIHsKICAgICAgICAgICAgaXNDUFVzQW1vdW50VmFsaWQgPSB2YWx1ZTsKICAgICAgICAgICAg
T25Qcm9wZXJ0eUNoYW5nZWQobmV3IFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncygiSXNDUFVzQW1v
dW50VmFsaWQiKSk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBi
b29sZWFuIGlzR2VuZXJhbFRhYlZhbGlkOwoKICAgIHB1YmxpYyBib29sZWFuIGdldElzR2VuZXJh
bFRhYlZhbGlkKCkKICAgIHsKICAgICAgICByZXR1cm4gaXNHZW5lcmFsVGFiVmFsaWQ7CiAgICB9
CgogICAgcHVibGljIHZvaWQgc2V0SXNHZW5lcmFsVGFiVmFsaWQoYm9vbGVhbiB2YWx1ZSkKICAg
IHsKICAgICAgICBpZiAoaXNHZW5lcmFsVGFiVmFsaWQgIT0gdmFsdWUpCiAgICAgICAgewogICAg
ICAgICAgICBpc0dlbmVyYWxUYWJWYWxpZCA9IHZhbHVlOwogICAgICAgICAgICBPblByb3BlcnR5
Q2hhbmdlZChuZXcgUHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdzKCJJc0dlbmVyYWxUYWJWYWxpZCIp
KTsgLy8kTk9OLU5MUy0xJAogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGJvb2xlYW4gaXNG
aXJzdFJ1blRhYlZhbGlkOwoKICAgIHB1YmxpYyBib29sZWFuIGdldElzRmlyc3RSdW5UYWJWYWxp
ZCgpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzRmlyc3RSdW5UYWJWYWxpZDsKICAgIH0KCiAgICBw
dWJsaWMgdm9pZCBzZXRJc0ZpcnN0UnVuVGFiVmFsaWQoYm9vbGVhbiB2YWx1ZSkKICAgIHsKICAg
ICAgICBpZiAoaXNGaXJzdFJ1blRhYlZhbGlkICE9IHZhbHVlKQogICAgICAgIHsKICAgICAgICAg
ICAgaXNGaXJzdFJ1blRhYlZhbGlkID0gdmFsdWU7CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFu
Z2VkKG5ldyBQcm9wZXJ0eUNoYW5nZWRFdmVudEFyZ3MoIklzRmlyc3RSdW5UYWJWYWxpZCIpKTsg
Ly8kTk9OLU5MUy0xJAogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGJvb2xlYW4gaXNEaXNw
bGF5VGFiVmFsaWQ7CgogICAgcHVibGljIGJvb2xlYW4gZ2V0SXNEaXNwbGF5VGFiVmFsaWQoKQog
ICAgewogICAgICAgIHJldHVybiBpc0Rpc3BsYXlUYWJWYWxpZDsKICAgIH0KCiAgICBwdWJsaWMg
dm9pZCBzZXRJc0Rpc3BsYXlUYWJWYWxpZChib29sZWFuIHZhbHVlKQogICAgewogICAgICAgIGlm
IChpc0Rpc3BsYXlUYWJWYWxpZCAhPSB2YWx1ZSkKICAgICAgICB7CiAgICAgICAgICAgIGlzRGlz
cGxheVRhYlZhbGlkID0gdmFsdWU7CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQ
cm9wZXJ0eUNoYW5nZWRFdmVudEFyZ3MoIklzRGlzcGxheVRhYlZhbGlkIikpOyAvLyROT04tTkxT
LTEkCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgYm9vbGVhbiBpc0FsbG9jYXRpb25UYWJW
YWxpZDsKCiAgICBwdWJsaWMgYm9vbGVhbiBnZXRJc0FsbG9jYXRpb25UYWJWYWxpZCgpCiAgICB7
CiAgICAgICAgcmV0dXJuIGlzQWxsb2NhdGlvblRhYlZhbGlkOwogICAgfQoKICAgIHB1YmxpYyB2
b2lkIHNldElzQWxsb2NhdGlvblRhYlZhbGlkKGJvb2xlYW4gdmFsdWUpCiAgICB7CiAgICAgICAg
aWYgKGlzQWxsb2NhdGlvblRhYlZhbGlkICE9IHZhbHVlKQogICAgICAgIHsKICAgICAgICAgICAg
aXNBbGxvY2F0aW9uVGFiVmFsaWQgPSB2YWx1ZTsKICAgICAgICAgICAgT25Qcm9wZXJ0eUNoYW5n
ZWQobmV3IFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncygiSXNBbGxvY2F0aW9uVGFiVmFsaWQiKSk7
IC8vJE5PTi1OTFMtMSQKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBib29sZWFuIGlzSG9z
dFRhYlZhbGlkOwoKICAgIHB1YmxpYyBib29sZWFuIGdldElzSG9zdFRhYlZhbGlkKCkKICAgIHsK
ICAgICAgICByZXR1cm4gaXNIb3N0VGFiVmFsaWQ7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0
SXNIb3N0VGFiVmFsaWQoYm9vbGVhbiB2YWx1ZSkKICAgIHsKICAgICAgICBpZiAoaXNIb3N0VGFi
VmFsaWQgIT0gdmFsdWUpCiAgICAgICAgewogICAgICAgICAgICBpc0hvc3RUYWJWYWxpZCA9IHZh
bHVlOwogICAgICAgICAgICBPblByb3BlcnR5Q2hhbmdlZChuZXcgUHJvcGVydHlDaGFuZ2VkRXZl
bnRBcmdzKCJJc0hvc3RUYWJWYWxpZCIpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIH0KICAgIH0K
CiAgICBwcml2YXRlIGJvb2xlYW4gaXNCb290U2VxdWVuY2VUYWJWYWxpZDsKCiAgICBwdWJsaWMg
Ym9vbGVhbiBnZXRJc0Jvb3RTZXF1ZW5jZVRhYlZhbGlkKCkKICAgIHsKICAgICAgICByZXR1cm4g
aXNCb290U2VxdWVuY2VUYWJWYWxpZDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRJc0Jvb3RT
ZXF1ZW5jZVRhYlZhbGlkKGJvb2xlYW4gdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKGlzQm9vdFNl
cXVlbmNlVGFiVmFsaWQgIT0gdmFsdWUpCiAgICAgICAgewogICAgICAgICAgICBpc0Jvb3RTZXF1
ZW5jZVRhYlZhbGlkID0gdmFsdWU7CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQ
cm9wZXJ0eUNoYW5nZWRFdmVudEFyZ3MoIklzQm9vdFNlcXVlbmNlVGFiVmFsaWQiKSk7IC8vJE5P
Ti1OTFMtMSQKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBib29sZWFuIGlzQ3VzdG9tUHJv
cGVydGllc1RhYlZhbGlkOwoKICAgIHB1YmxpYyBib29sZWFuIGdldElzQ3VzdG9tUHJvcGVydGll
c1RhYlZhbGlkKCkKICAgIHsKICAgICAgICByZXR1cm4gaXNDdXN0b21Qcm9wZXJ0aWVzVGFiVmFs
aWQ7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0SXNDdXN0b21Qcm9wZXJ0aWVzVGFiVmFsaWQo
Ym9vbGVhbiB2YWx1ZSkKICAgIHsKICAgICAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0aWVzVGFiVmFs
aWQgIT0gdmFsdWUpCiAgICAgICAgewogICAgICAgICAgICBpc0N1c3RvbVByb3BlcnRpZXNUYWJW
YWxpZCA9IHZhbHVlOwogICAgICAgICAgICBPblByb3BlcnR5Q2hhbmdlZChuZXcgUHJvcGVydHlD
aGFuZ2VkRXZlbnRBcmdzKCJJc0N1c3RvbVByb3BlcnRpZXNUYWJWYWxpZCIpKTsgLy8kTk9OLU5M
Uy0xJAogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29s
TGlzdE1vZGVsIHByaXZhdGVEYXRhQ2VudGVyOwoKICAgIHB1YmxpYyBMaXN0TW9kZWwgZ2V0RGF0
YUNlbnRlcigpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVEYXRhQ2VudGVyOwogICAgfQoK
ICAgIHByaXZhdGUgdm9pZCBzZXREYXRhQ2VudGVyKE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlz
dE1vZGVsIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVEYXRhQ2VudGVyID0gdmFsdWU7CiAg
ICB9CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCBwcml2YXRl
U3RvcmFnZURvbWFpbjsKCiAgICBwdWJsaWMgTGlzdE1vZGVsIGdldFN0b3JhZ2VEb21haW4oKQog
ICAgewogICAgICAgIHJldHVybiBwcml2YXRlU3RvcmFnZURvbWFpbjsKICAgIH0KCiAgICBwcml2
YXRlIHZvaWQgc2V0U3RvcmFnZURvbWFpbihOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2Rl
bCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlU3RvcmFnZURvbWFpbiA9IHZhbHVlOwogICAg
fQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0TW9kZWwgcHJpdmF0ZVRl
bXBsYXRlOwoKICAgIHB1YmxpYyBMaXN0TW9kZWwgZ2V0VGVtcGxhdGUoKQogICAgewogICAgICAg
IHJldHVybiBwcml2YXRlVGVtcGxhdGU7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldFRlbXBs
YXRlKE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsIHZhbHVlKQogICAgewogICAgICAg
IHByaXZhdGVUZW1wbGF0ZSA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgRW50aXR5TW9kZWwg
cHJpdmF0ZU5hbWU7CgogICAgcHVibGljIEVudGl0eU1vZGVsIGdldE5hbWUoKQogICAgewogICAg
ICAgIHJldHVybiBwcml2YXRlTmFtZTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgc2V0TmFtZShF
bnRpdHlNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlTmFtZSA9IHZhbHVlOwogICAg
fQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0TW9kZWwgcHJpdmF0ZU9T
VHlwZTsKCiAgICBwdWJsaWMgTGlzdE1vZGVsIGdldE9TVHlwZSgpCiAgICB7CiAgICAgICAgcmV0
dXJuIHByaXZhdGVPU1R5cGU7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldE9TVHlwZShOb3RD
aGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRl
T1NUeXBlID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9v
bExpc3RNb2RlbCBwcml2YXRlTnVtT2ZNb25pdG9yczsKCiAgICBwdWJsaWMgTGlzdE1vZGVsIGdl
dE51bU9mTW9uaXRvcnMoKQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlTnVtT2ZNb25pdG9y
czsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgc2V0TnVtT2ZNb25pdG9ycyhOb3RDaGFuZ2FibGVG
b3JWbUluUG9vbExpc3RNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlTnVtT2ZNb25p
dG9ycyA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xF
bnRpdHlNb2RlbCBwcml2YXRlQWxsb3dDb25zb2xlUmVjb25uZWN0OwoKICAgIHB1YmxpYyBFbnRp
dHlNb2RlbCBnZXRBbGxvd0NvbnNvbGVSZWNvbm5lY3QoKQogICAgewogICAgICAgIHJldHVybiBw
cml2YXRlQWxsb3dDb25zb2xlUmVjb25uZWN0OwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRB
bGxvd0NvbnNvbGVSZWNvbm5lY3QoTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCB2
YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlQWxsb3dDb25zb2xlUmVjb25uZWN0ID0gdmFsdWU7
CiAgICB9CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHBy
aXZhdGVEZXNjcmlwdGlvbjsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0RGVzY3JpcHRpb24o
KQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlRGVzY3JpcHRpb247CiAgICB9CgogICAgcHJp
dmF0ZSB2b2lkIHNldERlc2NyaXB0aW9uKE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9k
ZWwgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZURlc2NyaXB0aW9uID0gdmFsdWU7CiAgICB9
CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCBwcml2YXRlRG9t
YWluOwoKICAgIHB1YmxpYyBMaXN0TW9kZWwgZ2V0RG9tYWluKCkKICAgIHsKICAgICAgICByZXR1
cm4gcHJpdmF0ZURvbWFpbjsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgc2V0RG9tYWluKE5vdENo
YW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVE
b21haW4gPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29s
RW50aXR5TW9kZWwgcHJpdmF0ZU1lbVNpemU7CgogICAgcHVibGljIEVudGl0eU1vZGVsIGdldE1l
bVNpemUoKQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlTWVtU2l6ZTsKICAgIH0KCiAgICBw
cml2YXRlIHZvaWQgc2V0TWVtU2l6ZShOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVs
IHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVNZW1TaXplID0gdmFsdWU7CiAgICB9CgogICAg
cHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHByaXZhdGVNaW5BbGxv
Y2F0ZWRNZW1vcnk7CgogICAgcHVibGljIEVudGl0eU1vZGVsIGdldE1pbkFsbG9jYXRlZE1lbW9y
eSgpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVNaW5BbGxvY2F0ZWRNZW1vcnk7CiAgICB9
CgogICAgcHJpdmF0ZSB2b2lkIHNldE1pbkFsbG9jYXRlZE1lbW9yeShOb3RDaGFuZ2FibGVGb3JW
bUluUG9vbEVudGl0eU1vZGVsIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVNaW5BbGxvY2F0
ZWRNZW1vcnkgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Q
b29sTGlzdE1vZGVsIHByaXZhdGVRdW90YTsKCiAgICBwdWJsaWMgTGlzdE1vZGVsIGdldFF1b3Rh
KCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZVF1b3RhOwogICAgfQoKICAgIHByaXZhdGUg
dm9pZCBzZXRRdW90YShOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCB2YWx1ZSkKICAg
IHsKICAgICAgICBwcml2YXRlUXVvdGEgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5vdENo
YW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsIHByaXZhdGVDbHVzdGVyOwoKICAgIHB1YmxpYyBM
aXN0TW9kZWwgZ2V0Q2x1c3RlcigpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVDbHVzdGVy
OwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRDbHVzdGVyKE5vdENoYW5nYWJsZUZvclZtSW5Q
b29sTGlzdE1vZGVsIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVDbHVzdGVyID0gdmFsdWU7
CiAgICB9CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCBwcml2
YXRlVXNiUG9saWN5OwoKICAgIHB1YmxpYyBMaXN0TW9kZWwgZ2V0VXNiUG9saWN5KCkKICAgIHsK
ICAgICAgICByZXR1cm4gcHJpdmF0ZVVzYlBvbGljeTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQg
c2V0VXNiUG9saWN5KE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsIHZhbHVlKQogICAg
ewogICAgICAgIHByaXZhdGVVc2JQb2xpY3kgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5v
dENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsIHByaXZhdGVUaW1lWm9uZTsKCiAgICBwdWJs
aWMgTGlzdE1vZGVsIGdldFRpbWVab25lKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZVRp
bWVab25lOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRUaW1lWm9uZShOb3RDaGFuZ2FibGVG
b3JWbUluUG9vbExpc3RNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlVGltZVpvbmUg
PSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1v
ZGVsIHByaXZhdGVOdW1PZlNvY2tldHM7CgogICAgcHVibGljIExpc3RNb2RlbCBnZXROdW1PZlNv
Y2tldHMoKQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlTnVtT2ZTb2NrZXRzOwogICAgfQoK
ICAgIHByaXZhdGUgdm9pZCBzZXROdW1PZlNvY2tldHMoTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xM
aXN0TW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZU51bU9mU29ja2V0cyA9IHZhbHVl
OwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCBw
cml2YXRlVG90YWxDUFVDb3JlczsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0VG90YWxDUFVD
b3JlcygpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVUb3RhbENQVUNvcmVzOwogICAgfQoK
ICAgIHByaXZhdGUgdm9pZCBzZXRUb3RhbENQVUNvcmVzKE5vdENoYW5nYWJsZUZvclZtSW5Qb29s
RW50aXR5TW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZVRvdGFsQ1BVQ29yZXMgPSB2
YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVs
IHByaXZhdGVDb3Jlc1BlclNvY2tldDsKCiAgICBwdWJsaWMgTGlzdE1vZGVsIGdldENvcmVzUGVy
U29ja2V0KCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZUNvcmVzUGVyU29ja2V0OwogICAg
fQoKICAgIHByaXZhdGUgdm9pZCBzZXRDb3Jlc1BlclNvY2tldChOb3RDaGFuZ2FibGVGb3JWbUlu
UG9vbExpc3RNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlQ29yZXNQZXJTb2NrZXQg
PSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1v
ZGVsIHByaXZhdGVEZWZhdWx0SG9zdDsKCiAgICBwdWJsaWMgTGlzdE1vZGVsIGdldERlZmF1bHRI
b3N0KCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZURlZmF1bHRIb3N0OwogICAgfQoKICAg
IHByaXZhdGUgdm9pZCBzZXREZWZhdWx0SG9zdChOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RN
b2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlRGVmYXVsdEhvc3QgPSB2YWx1ZTsKICAg
IH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgcHJpdmF0
ZWlzU21hcnRjYXJkRW5hYmxlZDsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0SXNTbWFydGNh
cmRFbmFibGVkKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZWlzU21hcnRjYXJkRW5hYmxl
ZDsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgc2V0SXNTbWFydGNhcmRFbmFibGVkKE5vdENoYW5n
YWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZWlz
U21hcnRjYXJkRW5hYmxlZCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxl
Rm9yVm1JblBvb2xFbnRpdHlNb2RlbCBwcml2YXRlSXNTdGF0ZWxlc3M7CgogICAgcHVibGljIEVu
dGl0eU1vZGVsIGdldElzU3RhdGVsZXNzKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZUlz
U3RhdGVsZXNzOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRJc1N0YXRlbGVzcyhOb3RDaGFu
Z2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVJ
c1N0YXRlbGVzcyA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1J
blBvb2xFbnRpdHlNb2RlbCBwcml2YXRlSXNEZWxldGVQcm90ZWN0ZWQ7CgogICAgcHVibGljIEVu
dGl0eU1vZGVsIGdldElzRGVsZXRlUHJvdGVjdGVkKCkgewogICAgICAgIHJldHVybiBwcml2YXRl
SXNEZWxldGVQcm90ZWN0ZWQ7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0SXNEZWxldGVQcm90
ZWN0ZWQoTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCBkZWxldGVQcm90ZWN0ZWQp
IHsKICAgICAgICB0aGlzLnByaXZhdGVJc0RlbGV0ZVByb3RlY3RlZCA9IGRlbGV0ZVByb3RlY3Rl
ZDsKICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsIHBy
aXZhdGVEaXNwbGF5UHJvdG9jb2w7CgogICAgcHVibGljIExpc3RNb2RlbCBnZXREaXNwbGF5UHJv
dG9jb2woKQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlRGlzcGxheVByb3RvY29sOwogICAg
fQoKICAgIHByaXZhdGUgdm9pZCBzZXREaXNwbGF5UHJvdG9jb2woTm90Q2hhbmdhYmxlRm9yVm1J
blBvb2xMaXN0TW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZURpc3BsYXlQcm90b2Nv
bCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRp
dHlNb2RlbCBwcml2YXRlUHJvdmlzaW9uaW5nOwoKICAgIHB1YmxpYyBFbnRpdHlNb2RlbCBnZXRQ
cm92aXNpb25pbmcoKQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlUHJvdmlzaW9uaW5nOwog
ICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRQcm92aXNpb25pbmcoTm90Q2hhbmdhYmxlRm9yVm1J
blBvb2xFbnRpdHlNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlUHJvdmlzaW9uaW5n
ID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0
eU1vZGVsIHByaXZhdGVQcm92aXNpb25pbmdUaGluX0lzU2VsZWN0ZWQ7CgogICAgcHVibGljIEVu
dGl0eU1vZGVsIGdldFByb3Zpc2lvbmluZ1RoaW5fSXNTZWxlY3RlZCgpCiAgICB7CiAgICAgICAg
cmV0dXJuIHByaXZhdGVQcm92aXNpb25pbmdUaGluX0lzU2VsZWN0ZWQ7CiAgICB9CgogICAgcHVi
bGljIHZvaWQgc2V0UHJvdmlzaW9uaW5nVGhpbl9Jc1NlbGVjdGVkKE5vdENoYW5nYWJsZUZvclZt
SW5Qb29sRW50aXR5TW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZVByb3Zpc2lvbmlu
Z1RoaW5fSXNTZWxlY3RlZCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxl
Rm9yVm1JblBvb2xFbnRpdHlNb2RlbCBwcml2YXRlUHJvdmlzaW9uaW5nQ2xvbmVfSXNTZWxlY3Rl
ZDsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0UHJvdmlzaW9uaW5nQ2xvbmVfSXNTZWxlY3Rl
ZCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVQcm92aXNpb25pbmdDbG9uZV9Jc1NlbGVj
dGVkOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldFByb3Zpc2lvbmluZ0Nsb25lX0lzU2VsZWN0
ZWQoTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAg
ICBwcml2YXRlUHJvdmlzaW9uaW5nQ2xvbmVfSXNTZWxlY3RlZCA9IHZhbHVlOwogICAgfQoKICAg
IHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0TW9kZWwgcHJpdmF0ZVByaW9yaXR5
OwoKICAgIHB1YmxpYyBMaXN0TW9kZWwgZ2V0UHJpb3JpdHkoKQogICAgewogICAgICAgIHJldHVy
biBwcml2YXRlUHJpb3JpdHk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldFByaW9yaXR5KE5v
dENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsIHZhbHVlKQogICAgewogICAgICAgIHByaXZh
dGVQcmlvcml0eSA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1J
blBvb2xFbnRpdHlNb2RlbCBwcml2YXRlSXNIaWdobHlBdmFpbGFibGU7CgogICAgcHVibGljIEVu
dGl0eU1vZGVsIGdldElzSGlnaGx5QXZhaWxhYmxlKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJp
dmF0ZUlzSGlnaGx5QXZhaWxhYmxlOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRJc0hpZ2hs
eUF2YWlsYWJsZShOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHZhbHVlKQogICAg
ewogICAgICAgIHByaXZhdGVJc0hpZ2hseUF2YWlsYWJsZSA9IHZhbHVlOwogICAgfQoKICAgIHBy
aXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0TW9kZWwgcHJpdmF0ZUZpcnN0Qm9vdERl
dmljZTsKCiAgICBwdWJsaWMgTGlzdE1vZGVsIGdldEZpcnN0Qm9vdERldmljZSgpCiAgICB7CiAg
ICAgICAgcmV0dXJuIHByaXZhdGVGaXJzdEJvb3REZXZpY2U7CiAgICB9CgogICAgcHJpdmF0ZSB2
b2lkIHNldEZpcnN0Qm9vdERldmljZShOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCB2
YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlRmlyc3RCb290RGV2aWNlID0gdmFsdWU7CiAgICB9
CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCBwcml2YXRlU2Vj
b25kQm9vdERldmljZTsKCiAgICBwdWJsaWMgTGlzdE1vZGVsIGdldFNlY29uZEJvb3REZXZpY2Uo
KQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlU2Vjb25kQm9vdERldmljZTsKICAgIH0KCiAg
ICBwcml2YXRlIHZvaWQgc2V0U2Vjb25kQm9vdERldmljZShOb3RDaGFuZ2FibGVGb3JWbUluUG9v
bExpc3RNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlU2Vjb25kQm9vdERldmljZSA9
IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0TW9k
ZWwgcHJpdmF0ZUNkSW1hZ2U7CgogICAgcHVibGljIExpc3RNb2RlbCBnZXRDZEltYWdlKCkKICAg
IHsKICAgICAgICByZXR1cm4gcHJpdmF0ZUNkSW1hZ2U7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lk
IHNldENkSW1hZ2UoTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0TW9kZWwgdmFsdWUpCiAgICB7
CiAgICAgICAgcHJpdmF0ZUNkSW1hZ2UgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5vdENo
YW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgY2RBdHRhY2hlZDsKCiAgICBwdWJsaWMgRW50
aXR5TW9kZWwgZ2V0Q2RBdHRhY2hlZCgpIHsKICAgICAgICByZXR1cm4gY2RBdHRhY2hlZDsKICAg
IH0KCiAgICBwdWJsaWMgdm9pZCBzZXRDZEF0dGFjaGVkKE5vdENoYW5nYWJsZUZvclZtSW5Qb29s
RW50aXR5TW9kZWwgdmFsdWUpIHsKICAgICAgICBjZEF0dGFjaGVkID0gdmFsdWU7CiAgICB9Cgog
ICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHByaXZhdGVJbml0
cmRfcGF0aDsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0SW5pdHJkX3BhdGgoKQogICAgewog
ICAgICAgIHJldHVybiBwcml2YXRlSW5pdHJkX3BhdGg7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lk
IHNldEluaXRyZF9wYXRoKE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgdmFsdWUp
CiAgICB7CiAgICAgICAgcHJpdmF0ZUluaXRyZF9wYXRoID0gdmFsdWU7CiAgICB9CgogICAgcHJp
dmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHByaXZhdGVLZXJuZWxfcGF0
aDsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0S2VybmVsX3BhdGgoKQogICAgewogICAgICAg
IHJldHVybiBwcml2YXRlS2VybmVsX3BhdGg7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldEtl
cm5lbF9wYXRoKE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgdmFsdWUpCiAgICB7
CiAgICAgICAgcHJpdmF0ZUtlcm5lbF9wYXRoID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBO
b3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHByaXZhdGVLZXJuZWxfcGFyYW1ldGVy
czsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0S2VybmVsX3BhcmFtZXRlcnMoKQogICAgewog
ICAgICAgIHJldHVybiBwcml2YXRlS2VybmVsX3BhcmFtZXRlcnM7CiAgICB9CgogICAgcHJpdmF0
ZSB2b2lkIHNldEtlcm5lbF9wYXJhbWV0ZXJzKE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5
TW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZUtlcm5lbF9wYXJhbWV0ZXJzID0gdmFs
dWU7CiAgICB9CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVs
IHByaXZhdGVDdXN0b21Qcm9wZXJ0aWVzOwoKICAgIHB1YmxpYyBFbnRpdHlNb2RlbCBnZXRDdXN0
b21Qcm9wZXJ0aWVzKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZUN1c3RvbVByb3BlcnRp
ZXM7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldEN1c3RvbVByb3BlcnRpZXMoTm90Q2hhbmdh
YmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2YXRlQ3Vz
dG9tUHJvcGVydGllcyA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9y
Vm1JblBvb2xLZXlWYWx1ZU1vZGVsIGN1c3RvbVByb3BlcnR5U2hlZXQ7CgogICAgcHVibGljIEtl
eVZhbHVlTW9kZWwgZ2V0Q3VzdG9tUHJvcGVydHlTaGVldCgpIHsKICAgICAgICByZXR1cm4gY3Vz
dG9tUHJvcGVydHlTaGVldDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRDdXN0b21Qcm9wZXJ0
eVNoZWV0KE5vdENoYW5nYWJsZUZvclZtSW5Qb29sS2V5VmFsdWVNb2RlbCBjdXN0b21Qcm9wZXJ0
eVNoZWV0KSB7CiAgICAgICAgdGhpcy5jdXN0b21Qcm9wZXJ0eVNoZWV0ID0gY3VzdG9tUHJvcGVy
dHlTaGVldDsKICAgIH0KCiAgICBwcml2YXRlIEhhc2hNYXA8VmVyc2lvbiwgQXJyYXlMaXN0PFN0
cmluZz4+IHByaXZhdGVDdXN0b21Qcm9wZXJ0aWVzS2V5c0xpc3Q7CgogICAgcHVibGljIEhhc2hN
YXA8VmVyc2lvbiwgQXJyYXlMaXN0PFN0cmluZz4+IGdldEN1c3RvbVByb3BlcnRpZXNLZXlzTGlz
dCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVDdXN0b21Qcm9wZXJ0aWVzS2V5c0xpc3Q7
CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0Q3VzdG9tUHJvcGVydGllc0tleXNMaXN0KEhhc2hN
YXA8VmVyc2lvbiwgQXJyYXlMaXN0PFN0cmluZz4+IHZhbHVlKQogICAgewogICAgICAgIHByaXZh
dGVDdXN0b21Qcm9wZXJ0aWVzS2V5c0xpc3QgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIE5v
dENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgcHJpdmF0ZUlzQXV0b0Fzc2lnbjsKCiAg
ICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0SXNBdXRvQXNzaWduKCkKICAgIHsKICAgICAgICByZXR1
cm4gcHJpdmF0ZUlzQXV0b0Fzc2lnbjsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRJc0F1dG9B
c3NpZ24oTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCB2YWx1ZSkKICAgIHsKICAg
ICAgICBwcml2YXRlSXNBdXRvQXNzaWduID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBOb3RD
aGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHByaXZhdGVSdW5WTU9uU3BlY2lmaWNIb3N0
OwoKICAgIHB1YmxpYyBFbnRpdHlNb2RlbCBnZXRSdW5WTU9uU3BlY2lmaWNIb3N0KCkKICAgIHsK
ICAgICAgICByZXR1cm4gcHJpdmF0ZVJ1blZNT25TcGVjaWZpY0hvc3Q7CiAgICB9CgogICAgcHVi
bGljIHZvaWQgc2V0UnVuVk1PblNwZWNpZmljSG9zdChOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVu
dGl0eU1vZGVsIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVSdW5WTU9uU3BlY2lmaWNIb3N0
ID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0
eU1vZGVsIHByaXZhdGVSdW5WTU9uVHJ1c3RlZEhvc3Q7CgogICAgcHVibGljIEVudGl0eU1vZGVs
IGdldFJ1blZNT25UcnVzdGVkSG9zdCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVSdW5W
TU9uVHJ1c3RlZEhvc3Q7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0UnVuVk1PblRydXN0ZWRI
b3N0KE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgdmFsdWUpCiAgICB7CiAgICAg
ICAgcHJpdmF0ZVJ1blZNT25UcnVzdGVkSG9zdCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUg
Tm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCBob3N0Q3B1OwoKICAgIHB1YmxpYyBF
bnRpdHlNb2RlbCBnZXRIb3N0Q3B1KCkgewogICAgICAgIHJldHVybiBob3N0Q3B1OwogICAgfQoK
ICAgIHB1YmxpYyB2b2lkIHNldEhvc3RDcHUoTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlN
b2RlbCBob3N0Q3B1KSB7CiAgICAgICAgdGhpcy5ob3N0Q3B1ID0gaG9zdENwdTsKICAgIH0KCiAg
ICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgcHJpdmF0ZURvbnRN
aWdyYXRlVk07CgogICAgcHVibGljIEVudGl0eU1vZGVsIGdldERvbnRNaWdyYXRlVk0oKQogICAg
ewogICAgICAgIHJldHVybiBwcml2YXRlRG9udE1pZ3JhdGVWTTsKICAgIH0KCiAgICBwdWJsaWMg
dm9pZCBzZXREb250TWlncmF0ZVZNKE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwg
dmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZURvbnRNaWdyYXRlVk0gPSB2YWx1ZTsKICAgIH0K
CiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgcHJpdmF0ZUlz
VGVtcGxhdGVQdWJsaWM7CgogICAgcHVibGljIEVudGl0eU1vZGVsIGdldElzVGVtcGxhdGVQdWJs
aWMoKQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlSXNUZW1wbGF0ZVB1YmxpYzsKICAgIH0K
CiAgICBwcml2YXRlIHZvaWQgc2V0SXNUZW1wbGF0ZVB1YmxpYyhOb3RDaGFuZ2FibGVGb3JWbUlu
UG9vbEVudGl0eU1vZGVsIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVJc1RlbXBsYXRlUHVi
bGljID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBib29sZWFuIHByaXZhdGVJc0ZpcnN0UnVu
OwoKICAgIHB1YmxpYyBib29sZWFuIGdldElzRmlyc3RSdW4oKQogICAgewogICAgICAgIHJldHVy
biBwcml2YXRlSXNGaXJzdFJ1bjsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRJc0ZpcnN0UnVu
KGJvb2xlYW4gdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZUlzRmlyc3RSdW4gPSB2YWx1ZTsK
ICAgIH0KCiAgICBwcml2YXRlIExpc3Q8RGlza01vZGVsPiBkaXNrczsKCiAgICBwdWJsaWMgTGlz
dDxEaXNrTW9kZWw+IGdldERpc2tzKCkKICAgIHsKICAgICAgICByZXR1cm4gZGlza3M7CiAgICB9
CgogICAgcHVibGljIHZvaWQgc2V0RGlza3MoTGlzdDxEaXNrTW9kZWw+IHZhbHVlKQogICAgewog
ICAgICAgIGlmIChkaXNrcyAhPSB2YWx1ZSkKICAgICAgICB7CiAgICAgICAgICAgIGRpc2tzID0g
dmFsdWU7CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQcm9wZXJ0eUNoYW5nZWRF
dmVudEFyZ3MoIkRpc2tzIikpOyAvLyROT04tTkxTLTEkCiAgICAgICAgfQogICAgfQoKICAgIHBy
aXZhdGUgRGlza3NBbGxvY2F0aW9uTW9kZWwgZGlza3NBbGxvY2F0aW9uTW9kZWw7CgogICAgcHVi
bGljIERpc2tzQWxsb2NhdGlvbk1vZGVsIGdldERpc2tzQWxsb2NhdGlvbk1vZGVsKCkKICAgIHsK
ICAgICAgICByZXR1cm4gZGlza3NBbGxvY2F0aW9uTW9kZWw7CiAgICB9CgogICAgcHJpdmF0ZSB2
b2lkIHNldERpc2tzQWxsb2NhdGlvbk1vZGVsKERpc2tzQWxsb2NhdGlvbk1vZGVsIHZhbHVlKQog
ICAgewogICAgICAgIGRpc2tzQWxsb2NhdGlvbk1vZGVsID0gdmFsdWU7CiAgICB9CgogICAgcHJp
dmF0ZSBib29sZWFuIGlzRGlza3NBdmFpbGFibGU7CgogICAgcHVibGljIGJvb2xlYW4gZ2V0SXNE
aXNrc0F2YWlsYWJsZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzRGlza3NBdmFpbGFibGU7CiAg
ICB9CgogICAgcHVibGljIHZvaWQgc2V0SXNEaXNrc0F2YWlsYWJsZShib29sZWFuIHZhbHVlKQog
ICAgewogICAgICAgIGlmIChpc0Rpc2tzQXZhaWxhYmxlICE9IHZhbHVlKQogICAgICAgIHsKICAg
ICAgICAgICAgaXNEaXNrc0F2YWlsYWJsZSA9IHZhbHVlOwogICAgICAgICAgICBPblByb3BlcnR5
Q2hhbmdlZChuZXcgUHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdzKCJJc0Rpc2tzQXZhaWxhYmxlIikp
OyAvLyROT04tTkxTLTEkCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgYm9vbGVhbiBpc0hv
c3RBdmFpbGFibGU7CgogICAgcHVibGljIGJvb2xlYW4gZ2V0SXNIb3N0QXZhaWxhYmxlKCkKICAg
IHsKICAgICAgICByZXR1cm4gaXNIb3N0QXZhaWxhYmxlOwogICAgfQoKICAgIHB1YmxpYyB2b2lk
IHNldElzSG9zdEF2YWlsYWJsZShib29sZWFuIHZhbHVlKQogICAgewogICAgICAgIGlmIChpc0hv
c3RBdmFpbGFibGUgIT0gdmFsdWUpCiAgICAgICAgewogICAgICAgICAgICBpc0hvc3RBdmFpbGFi
bGUgPSB2YWx1ZTsKICAgICAgICAgICAgT25Qcm9wZXJ0eUNoYW5nZWQobmV3IFByb3BlcnR5Q2hh
bmdlZEV2ZW50QXJncygiSXNIb3N0QXZhaWxhYmxlIikpOyAvLyROT04tTkxTLTEkCiAgICAgICAg
fQogICAgfQoKICAgIHByaXZhdGUgQm9vbGVhbiBpc0RhdGFjZW50ZXJBdmFpbGFibGU7CgogICAg
cHVibGljIEJvb2xlYW4gZ2V0SXNEYXRhY2VudGVyQXZhaWxhYmxlKCkKICAgIHsKICAgICAgICBy
ZXR1cm4gaXNEYXRhY2VudGVyQXZhaWxhYmxlOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldElz
RGF0YWNlbnRlckF2YWlsYWJsZShCb29sZWFuIHZhbHVlKQogICAgewogICAgICAgIGlmIChpc0Rh
dGFjZW50ZXJBdmFpbGFibGUgPT0gbnVsbCAmJiB2YWx1ZSA9PSBudWxsKQogICAgICAgIHsKICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoaXNEYXRhY2VudGVyQXZhaWxh
YmxlID09IG51bGwgfHwgIWlzRGF0YWNlbnRlckF2YWlsYWJsZS5lcXVhbHModmFsdWUpKQogICAg
ICAgIHsKICAgICAgICAgICAgaXNEYXRhY2VudGVyQXZhaWxhYmxlID0gdmFsdWU7CiAgICAgICAg
ICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQcm9wZXJ0eUNoYW5nZWRFdmVudEFyZ3MoIklzRGF0
YWNlbnRlckF2YWlsYWJsZSIpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIH0KICAgIH0KCiAgICBw
cml2YXRlIGZpbmFsIFZtTW9kZWxCZWhhdmlvckJhc2UgYmVoYXZpb3I7CgogICAgcHVibGljIFZt
TW9kZWxCZWhhdmlvckJhc2UgZ2V0QmVoYXZpb3IoKSB7CiAgICAgICAgcmV0dXJuIGJlaGF2aW9y
OwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRCZWhhdmlvcihWbU1vZGVsQmVoYXZpb3JCYXNl
IHZhbHVlKSB7CiAgICB9CgogICAgcHJpdmF0ZSBpbnQgX21pbk1lbVNpemUgPSAxOwoKICAgIHB1
YmxpYyBpbnQgZ2V0X01pbk1lbVNpemUoKQogICAgewogICAgICAgIHJldHVybiBfbWluTWVtU2l6
ZTsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRfTWluTWVtU2l6ZShpbnQgdmFsdWUpCiAgICB7
CiAgICAgICAgX21pbk1lbVNpemUgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIGludCBfbWF4
TWVtU2l6ZTMyID0gMjA0ODA7CgogICAgcHVibGljIGludCBnZXRfTWF4TWVtU2l6ZTMyKCkKICAg
IHsKICAgICAgICByZXR1cm4gX21heE1lbVNpemUzMjsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBz
ZXRfTWF4TWVtU2l6ZTMyKGludCB2YWx1ZSkKICAgIHsKICAgICAgICBfbWF4TWVtU2l6ZTMyID0g
dmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBpbnQgX21heE1lbVNpemU2NCA9IDI2MjE0NDsKCiAg
ICBwdWJsaWMgaW50IGdldF9NYXhNZW1TaXplNjQoKQogICAgewogICAgICAgIHJldHVybiBfbWF4
TWVtU2l6ZTY0OwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldF9NYXhNZW1TaXplNjQoaW50IHZh
bHVlKQogICAgewogICAgICAgIF9tYXhNZW1TaXplNjQgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2
YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgY3B1UGlubmluZzsKCiAgICBw
dWJsaWMgRW50aXR5TW9kZWwgZ2V0Q3B1UGlubmluZygpIHsKICAgICAgICByZXR1cm4gY3B1UGlu
bmluZzsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRDcHVQaW5uaW5nKE5vdENoYW5nYWJsZUZv
clZtSW5Qb29sRW50aXR5TW9kZWwgY3B1UGlubmluZykgewogICAgICAgIHRoaXMuY3B1UGlubmlu
ZyA9IGNwdVBpbm5pbmc7CiAgICB9CgogICAgcHVibGljIFVuaXRWbU1vZGVsKFZtTW9kZWxCZWhh
dmlvckJhc2UgYmVoYXZpb3IpCiAgICB7CiAgICAgICAgRnJvbnRlbmQuZ2V0UXVlcnlTdGFydGVk
RXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlzKTsKICAgICAgICBGcm9udGVuZC5nZXRRdWVyeUNvbXBs
ZXRlRXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlzKTsKCiAgICAgICAgRnJvbnRlbmQuU3Vic2NyaWJl
KG5ldyBWZGNRdWVyeVR5cGVbXSB7IFZkY1F1ZXJ5VHlwZS5HZXRTdG9yYWdlRG9tYWluc0J5U3Rv
cmFnZVBvb2xJZCwKICAgICAgICAgICAgICAgIFZkY1F1ZXJ5VHlwZS5HZXRBbGxJc29JbWFnZXNM
aXN0QnlTdG9yYWdlUG9vbElkLCBWZGNRdWVyeVR5cGUuR2V0VGltZVpvbmVzLAogICAgICAgICAg
ICAgICAgVmRjUXVlcnlUeXBlLkdldERlZnVhbHRUaW1lWm9uZSwKICAgICAgICAgICAgICAgIFZk
Y1F1ZXJ5VHlwZS5HZXREb21haW5MaXN0LCBWZGNRdWVyeVR5cGUuR2V0Q29uZmlndXJhdGlvblZh
bHVlLAogICAgICAgICAgICAgICAgVmRjUXVlcnlUeXBlLkdldFZkc0dyb3Vwc0J5U3RvcmFnZVBv
b2xJZCwgVmRjUXVlcnlUeXBlLkdldFZtVGVtcGxhdGVzQnlTdG9yYWdlUG9vbElkLAogICAgICAg
ICAgICAgICAgVmRjUXVlcnlUeXBlLkdldFZtVGVtcGxhdGVzRGlza3MsIFZkY1F1ZXJ5VHlwZS5H
ZXRTdG9yYWdlRG9tYWluc0J5Vm1UZW1wbGF0ZUlkLAogICAgICAgICAgICAgICAgVmRjUXVlcnlU
eXBlLkdldFN0b3JhZ2VEb21haW5CeUlkLCBWZGNRdWVyeVR5cGUuR2V0RGF0YUNlbnRlcnNXaXRo
UGVybWl0dGVkQWN0aW9uT25DbHVzdGVycywKICAgICAgICAgICAgICAgIFZkY1F1ZXJ5VHlwZS5H
ZXRDbHVzdGVyc1dpdGhQZXJtaXR0ZWRBY3Rpb24sIFZkY1F1ZXJ5VHlwZS5HZXRWbVRlbXBsYXRl
c1dpdGhQZXJtaXR0ZWRBY3Rpb24sCiAgICAgICAgICAgICAgICBWZGNRdWVyeVR5cGUuR2V0VmRz
R3JvdXBCeUlkLCBWZGNRdWVyeVR5cGUuR2V0U3RvcmFnZVBvb2xCeUlkLCBWZGNRdWVyeVR5cGUu
R2V0QWxsRGlza3NCeVZtSWQsCiAgICAgICAgICAgICAgICBWZGNRdWVyeVR5cGUuR2V0Vm1UZW1w
bGF0ZSwgVmRjUXVlcnlUeXBlLkdldFZtQ29uZmlndXJhdGlvbkJ5U25hcHNob3QsCiAgICAgICAg
ICAgICAgICBWZGNRdWVyeVR5cGUuR2V0UGVybWl0dGVkU3RvcmFnZURvbWFpbnNCeVN0b3JhZ2VQ
b29sSWQsIFZkY1F1ZXJ5VHlwZS5TZWFyY2ggfSk7CgogICAgICAgIHRoaXMuYmVoYXZpb3IgPSBi
ZWhhdmlvcjsKICAgICAgICB0aGlzLmJlaGF2aW9yLnNldE1vZGVsKHRoaXMpOwoKICAgICAgICBz
ZXRTdG9yYWdlRG9tYWluKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCgpKTsK
ICAgICAgICBzZXROYW1lKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkp
OwogICAgICAgIHNldE51bU9mTW9uaXRvcnMobmV3IE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlz
dE1vZGVsKCkpOwogICAgICAgIHNldEFsbG93Q29uc29sZVJlY29ubmVjdChuZXcgTm90Q2hhbmdh
YmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBzZXREZXNjcmlwdGlvbihuZXcg
Tm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBzZXREb21haW4o
bmV3IE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsKCkpOwogICAgICAgIHNldE1pbkFs
bG9jYXRlZE1lbW9yeShuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsK
ICAgICAgICBzZXRVc2JQb2xpY3kobmV3IE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVs
KCkpOwogICAgICAgIHNldElzU3RhdGVsZXNzKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVu
dGl0eU1vZGVsKCkpOwogICAgICAgIHNldElzU21hcnRjYXJkRW5hYmxlZChuZXcgTm90Q2hhbmdh
YmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBzZXRJc0RlbGV0ZVByb3RlY3Rl
ZChuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKCiAgICAgICAgc2V0
Q2RJbWFnZShuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0TW9kZWwoKSk7CiAgICAgICAg
Z2V0Q2RJbWFnZSgpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKCiAgICAgICAgc2V0Q2RBdHRhY2hl
ZChuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBnZXRD
ZEF0dGFjaGVkKCkuZ2V0RW50aXR5Q2hhbmdlZEV2ZW50KCkuYWRkTGlzdGVuZXIobmV3IElFdmVu
dExpc3RlbmVyKCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIHZv
aWQgZXZlbnRSYWlzZWQoRXZlbnQgZXYsIE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKSB7
CgogICAgICAgICAgICAgICAgZ2V0Q2RJbWFnZSgpLnNldElzQ2hhbmdhYmxlKChCb29sZWFuKSBn
ZXRDZEF0dGFjaGVkKCkuZ2V0RW50aXR5KCkpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAg
ICAgICAgZ2V0Q2RBdHRhY2hlZCgpLnNldEVudGl0eShmYWxzZSk7CgogICAgICAgIHNldElzSGln
aGx5QXZhaWxhYmxlKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkpOwog
ICAgICAgIHNldERvbnRNaWdyYXRlVk0obmV3IE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5
TW9kZWwoKSk7CiAgICAgICAgc2V0SXNUZW1wbGF0ZVB1YmxpYyhuZXcgTm90Q2hhbmdhYmxlRm9y
Vm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBzZXRLZXJuZWxfcGFyYW1ldGVycyhuZXcg
Tm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBzZXRLZXJuZWxf
cGF0aChuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBz
ZXRJbml0cmRfcGF0aChuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsK
ICAgICAgICBzZXRDdXN0b21Qcm9wZXJ0aWVzKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVu
dGl0eU1vZGVsKCkpOwogICAgICAgIHNldEN1c3RvbVByb3BlcnR5U2hlZXQobmV3IE5vdENoYW5n
YWJsZUZvclZtSW5Qb29sS2V5VmFsdWVNb2RlbCgpKTsKICAgICAgICBzZXREaXNwbGF5UHJvdG9j
b2wobmV3IE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsKCkpOwogICAgICAgIHNldFNl
Y29uZEJvb3REZXZpY2UobmV3IE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsKCkpOwog
ICAgICAgIHNldFByaW9yaXR5KG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCgp
KTsKCiAgICAgICAgc2V0RGF0YUNlbnRlcihuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0
TW9kZWwoKSk7CiAgICAgICAgZ2V0RGF0YUNlbnRlcigpLmdldFNlbGVjdGVkSXRlbUNoYW5nZWRF
dmVudCgpLmFkZExpc3RlbmVyKHRoaXMpOwoKICAgICAgICBzZXRUZW1wbGF0ZShuZXcgTm90Q2hh
bmdhYmxlRm9yVm1JblBvb2xMaXN0TW9kZWwoKSk7CiAgICAgICAgZ2V0VGVtcGxhdGUoKS5nZXRT
ZWxlY3RlZEl0ZW1DaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlzKTsKCiAgICAgICAgc2V0
UXVvdGEobmV3IE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1vZGVsKCkpOwogICAgICAgIGdl
dFF1b3RhKCkuc2V0SXNBdmFpbGFibGUoZmFsc2UpOwoKICAgICAgICBzZXRDbHVzdGVyKG5ldyBO
b3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCgpKTsKICAgICAgICBnZXRDbHVzdGVyKCku
Z2V0U2VsZWN0ZWRJdGVtQ2hhbmdlZEV2ZW50KCkuYWRkTGlzdGVuZXIodGhpcyk7CgogICAgICAg
IHNldFRpbWVab25lKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCgpKTsKICAg
ICAgICBnZXRUaW1lWm9uZSgpLmdldFNlbGVjdGVkSXRlbUNoYW5nZWRFdmVudCgpLmFkZExpc3Rl
bmVyKHRoaXMpOwoKICAgICAgICBzZXREZWZhdWx0SG9zdChuZXcgTm90Q2hhbmdhYmxlRm9yVm1J
blBvb2xMaXN0TW9kZWwoKSk7CiAgICAgICAgZ2V0RGVmYXVsdEhvc3QoKS5nZXRTZWxlY3RlZEl0
ZW1DaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlzKTsKCiAgICAgICAgc2V0T1NUeXBlKG5l
dyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCgpKTsKICAgICAgICBnZXRPU1R5cGUo
KS5nZXRTZWxlY3RlZEl0ZW1DaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlzKTsKCiAgICAg
ICAgc2V0Rmlyc3RCb290RGV2aWNlKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2Rl
bCgpKTsKICAgICAgICBnZXRGaXJzdEJvb3REZXZpY2UoKS5nZXRTZWxlY3RlZEl0ZW1DaGFuZ2Vk
RXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlzKTsKCiAgICAgICAgc2V0UHJvdmlzaW9uaW5nKG5ldyBO
b3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkpOwogICAgICAgIGdldFByb3Zpc2lv
bmluZygpLmdldEVudGl0eUNoYW5nZWRFdmVudCgpLmFkZExpc3RlbmVyKHRoaXMpOwoKICAgICAg
ICBzZXRNZW1TaXplKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkpOwog
ICAgICAgIGdldE1lbVNpemUoKS5nZXRFbnRpdHlDaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcih0
aGlzKTsKCiAgICAgICAgc2V0VG90YWxDUFVDb3JlcyhuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBv
b2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBnZXRUb3RhbENQVUNvcmVzKCkuZ2V0RW50aXR5Q2hh
bmdlZEV2ZW50KCkuYWRkTGlzdGVuZXIodGhpcyk7CgogICAgICAgIHNldE51bU9mU29ja2V0cyhu
ZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xMaXN0TW9kZWwoKSk7CiAgICAgICAgZ2V0TnVtT2ZT
b2NrZXRzKCkuZ2V0U2VsZWN0ZWRJdGVtQ2hhbmdlZEV2ZW50KCkuYWRkTGlzdGVuZXIodGhpcyk7
CgogICAgICAgIHNldENvcmVzUGVyU29ja2V0KG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExp
c3RNb2RlbCgpKTsKICAgICAgICBnZXRDb3Jlc1BlclNvY2tldCgpLmdldFNlbGVjdGVkSXRlbUNo
YW5nZWRFdmVudCgpLmFkZExpc3RlbmVyKHRoaXMpOwoKICAgICAgICBzZXRSdW5WTU9uU3BlY2lm
aWNIb3N0KG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkpOwogICAgICAg
IGdldFJ1blZNT25TcGVjaWZpY0hvc3QoKS5nZXRFbnRpdHlDaGFuZ2VkRXZlbnQoKS5hZGRMaXN0
ZW5lcih0aGlzKTsKCiAgICAgICAgc2V0UnVuVk1PblRydXN0ZWRIb3N0KG5ldyBOb3RDaGFuZ2Fi
bGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkpOwogICAgICAgIGdldFJ1blZNT25UcnVzdGVkSG9z
dCgpLmdldEVudGl0eUNoYW5nZWRFdmVudCgpLmFkZExpc3RlbmVyKHRoaXMpOwoKICAgICAgICBz
ZXRIb3N0Q3B1KG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkpOwogICAg
ICAgIGdldEhvc3RDcHUoKS5nZXRFbnRpdHlDaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlz
KTsKCiAgICAgICAgc2V0RG9udE1pZ3JhdGVWTShuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xF
bnRpdHlNb2RlbCgpKTsKICAgICAgICBnZXREb250TWlncmF0ZVZNKCkuZ2V0RW50aXR5Q2hhbmdl
ZEV2ZW50KCkuYWRkTGlzdGVuZXIodGhpcyk7CgogICAgICAgIHNldElzQXV0b0Fzc2lnbihuZXcg
Tm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgpKTsKICAgICAgICBnZXRJc0F1dG9B
c3NpZ24oKS5nZXRFbnRpdHlDaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlzKTsKCiAgICAg
ICAgc2V0SXNUZW1wbGF0ZVB1YmxpYyhuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlN
b2RlbCgpKTsKICAgICAgICBnZXRJc1RlbXBsYXRlUHVibGljKCkuZ2V0RW50aXR5Q2hhbmdlZEV2
ZW50KCkuYWRkTGlzdGVuZXIodGhpcyk7CgogICAgICAgIHNldElzSG9zdFRhYlZhbGlkKHRydWUp
OwogICAgICAgIHNldElzQ3VzdG9tUHJvcGVydGllc1RhYlZhbGlkKGdldElzSG9zdFRhYlZhbGlk
KCkpOwogICAgICAgIHNldElzQm9vdFNlcXVlbmNlVGFiVmFsaWQoZ2V0SXNDdXN0b21Qcm9wZXJ0
aWVzVGFiVmFsaWQoKSk7CiAgICAgICAgc2V0SXNBbGxvY2F0aW9uVGFiVmFsaWQoZ2V0SXNCb290
U2VxdWVuY2VUYWJWYWxpZCgpKTsKICAgICAgICBzZXRJc0Rpc3BsYXlUYWJWYWxpZChnZXRJc0Fs
bG9jYXRpb25UYWJWYWxpZCgpKTsKICAgICAgICBzZXRJc0ZpcnN0UnVuVGFiVmFsaWQoZ2V0SXNE
aXNwbGF5VGFiVmFsaWQoKSk7CiAgICAgICAgc2V0SXNHZW5lcmFsVGFiVmFsaWQoZ2V0SXNGaXJz
dFJ1blRhYlZhbGlkKCkpOwoKICAgICAgICAvLyBOT1RFOiBUaGlzIGlzIGJlY2F1c2UgY3VycmVu
dGx5IHRoZSBhdXRvIGdlbmVyYXRlZCB2aWV3IGNvZGUgdHJpZXMgdG8gcmVnaXN0ZXIgZXZlbnRz
IG9mIHBvb2x0eXBlIGZvcgogICAgICAgIC8vIFZNL1RlbXBsYXRlIHZpZXdzIGFzIHRoaXMgbW9k
ZWwgaXMgc2hhcmVkIGFjcm9zcyBWTS9UZW1wbGF0ZS9Qb29sIG1vZGVscwogICAgICAgIHNldFBv
b2xUeXBlKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCgpKTsKCiAgICAgICAg
c2V0TnVtT2ZEZXNrdG9wcyhuZXcgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2RlbCgp
KTsKICAgICAgICBnZXROdW1PZkRlc2t0b3BzKCkuc2V0RW50aXR5KDApOwogICAgICAgIGdldE51
bU9mRGVza3RvcHMoKS5zZXRJc0F2YWlsYWJsZShmYWxzZSk7CgogICAgICAgIHNldEFzc2lnbmVk
Vm1zKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkpOwogICAgICAgIGdl
dEFzc2lnbmVkVm1zKCkuc2V0RW50aXR5KDApOwogICAgICAgIGdldEFzc2lnbmVkVm1zKCkuc2V0
SXNBdmFpbGFibGUoZmFsc2UpOwogICAgICAgIC8vIEFzc2lnbmVkIFZNcyBjb3VudCBpcyBhbHdh
eXMgcmVhZC1vbmx5LgogICAgICAgIGdldEFzc2lnbmVkVm1zKCkuc2V0SXNDaGFuZ2FibGUoZmFs
c2UpOwoKICAgICAgICBzZXRQcmVzdGFydGVkVm1zKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9v
bEVudGl0eU1vZGVsKCkpOwogICAgICAgIGdldFByZXN0YXJ0ZWRWbXMoKS5zZXRFbnRpdHkoMCk7
CiAgICAgICAgZ2V0UHJlc3RhcnRlZFZtcygpLnNldElzQXZhaWxhYmxlKGZhbHNlKTsKCiAgICAg
ICAgc2V0RGlza3NBbGxvY2F0aW9uTW9kZWwobmV3IERpc2tzQWxsb2NhdGlvbk1vZGVsKCkpOwoK
ICAgICAgICBzZXRQcm92aXNpb25pbmdDbG9uZV9Jc1NlbGVjdGVkKG5ldyBOb3RDaGFuZ2FibGVG
b3JWbUluUG9vbEVudGl0eU1vZGVsKCkpOwogICAgICAgIGdldFByb3Zpc2lvbmluZ0Nsb25lX0lz
U2VsZWN0ZWQoKS5nZXRFbnRpdHlDaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcih0aGlzKTsKCiAg
ICAgICAgc2V0UHJvdmlzaW9uaW5nVGhpbl9Jc1NlbGVjdGVkKG5ldyBOb3RDaGFuZ2FibGVGb3JW
bUluUG9vbEVudGl0eU1vZGVsKCkpOwogICAgICAgIGdldFByb3Zpc2lvbmluZ1RoaW5fSXNTZWxl
Y3RlZCgpLmdldEVudGl0eUNoYW5nZWRFdmVudCgpLmFkZExpc3RlbmVyKHRoaXMpOwoKICAgICAg
ICBzZXRDcHVQaW5uaW5nKG5ldyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsKCkp
OwogICAgICAgIGdldENwdVBpbm5pbmcoKS5zZXRFbnRpdHkoIiIpOwogICAgICAgIGdldENwdVBp
bm5pbmcoKS5zZXRJc0F2YWlsYWJsZShmYWxzZSk7CgogICAgICAgIGluaXRUaW1lWm9uZXMoKTsK
ICAgIH0KCiAgICBwcml2YXRlIHZvaWQgaW5pdFRpbWVab25lcygpIHsKICAgICAgICBnZXRPU1R5
cGUoKS5nZXRTZWxlY3RlZEl0ZW1DaGFuZ2VkRXZlbnQoKS5hZGRMaXN0ZW5lcihuZXcgSUV2ZW50
TGlzdGVuZXIoKSB7CgogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIHZv
aWQgZXZlbnRSYWlzZWQoRXZlbnQgZXYsIE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKSB7
CiAgICAgICAgICAgICAgICBnZXRCZWhhdmlvcigpLnVwZGF0ZVRpbWVab25lKCk7CiAgICAgICAg
ICAgIH0KICAgICAgICB9KTsKCiAgICB9CgogICAgcHVibGljIHZvaWQgSW5pdGlhbGl6ZShTeXN0
ZW1UcmVlSXRlbU1vZGVsIFN5c3RlbVRyZWVTZWxlY3RlZEl0ZW0pCiAgICB7CiAgICAgICAgc3Vw
ZXIuSW5pdGlhbGl6ZSgpOwoKICAgICAgICBzZXRIYXNoKGdldEhhc2hOYW1lKCkgKyBuZXcgRGF0
ZSgpKTsKCiAgICAgICAgZ2V0TWVtU2l6ZSgpLnNldEVudGl0eSgyNTYpOwogICAgICAgIGdldE1p
bkFsbG9jYXRlZE1lbW9yeSgpLnNldEVudGl0eSgyNTYpOwogICAgICAgIGdldElzU3RhdGVsZXNz
KCkuc2V0RW50aXR5KGZhbHNlKTsKICAgICAgICBnZXRJc1NtYXJ0Y2FyZEVuYWJsZWQoKS5zZXRF
bnRpdHkoZmFsc2UpOwogICAgICAgIGdldElzSGlnaGx5QXZhaWxhYmxlKCkuc2V0RW50aXR5KGZh
bHNlKTsKICAgICAgICBnZXREb250TWlncmF0ZVZNKCkuc2V0RW50aXR5KGZhbHNlKTsKICAgICAg
ICBnZXRJc0F1dG9Bc3NpZ24oKS5zZXRFbnRpdHkodHJ1ZSk7CiAgICAgICAgZ2V0SXNUZW1wbGF0
ZVB1YmxpYygpLnNldEVudGl0eSh0cnVlKTsKCiAgICAgICAgZ2V0UnVuVk1PblNwZWNpZmljSG9z
dCgpLnNldEVudGl0eShmYWxzZSk7CiAgICAgICAgZ2V0UnVuVk1PblNwZWNpZmljSG9zdCgpLnNl
dElzQ2hhbmdhYmxlKGZhbHNlKTsKCiAgICAgICAgZ2V0UnVuVk1PblRydXN0ZWRIb3N0KCkuc2V0
RW50aXR5KGZhbHNlKTsKCiAgICAgICAgZ2V0SG9zdENwdSgpLnNldEVudGl0eShmYWxzZSk7CiAg
ICAgICAgZ2V0UnVuVk1PblNwZWNpZmljSG9zdCgpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKCiAg
ICAgICAgZ2V0Q2RJbWFnZSgpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKCiAgICAgICAgSW5pdE9T
VHlwZSgpOwogICAgICAgIEluaXREaXNwbGF5UHJvdG9jb2woKTsKICAgICAgICBJbml0Rmlyc3RC
b290RGV2aWNlKCk7CiAgICAgICAgSW5pdE51bU9mTW9uaXRvcnMoKTsKICAgICAgICBJbml0QWxs
b3dDb25zb2xlUmVjb25uZWN0KCk7CiAgICAgICAgSW5pdE1pbmltYWxWbU1lbVNpemUoKTsKICAg
ICAgICBJbml0TWF4aW1hbFZtTWVtU2l6ZTMyT1MoKTsKCiAgICAgICAgYmVoYXZpb3IuSW5pdGlh
bGl6ZShTeXN0ZW1UcmVlU2VsZWN0ZWRJdGVtKTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1
YmxpYyB2b2lkIGV2ZW50UmFpc2VkKEV2ZW50IGV2LCBPYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3Mg
YXJncykKICAgIHsKICAgICAgICBzdXBlci5ldmVudFJhaXNlZChldiwgc2VuZGVyLCBhcmdzKTsK
CiAgICAgICAgaWYgKGV2LmVxdWFscyhGcm9udGVuZC5RdWVyeVN0YXJ0ZWRFdmVudERlZmluaXRp
b24pCiAgICAgICAgICAgICAgICAmJiBTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKEZyb250ZW5k
LmdldEN1cnJlbnRDb250ZXh0KCksIGdldEhhc2goKSkpCiAgICAgICAgewogICAgICAgICAgICBG
cm9udGVuZF9RdWVyeVN0YXJ0ZWQoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoZXYuZXF1
YWxzKEZyb250ZW5kLlF1ZXJ5Q29tcGxldGVFdmVudERlZmluaXRpb24pCiAgICAgICAgICAgICAg
ICAmJiBTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKEZyb250ZW5kLmdldEN1cnJlbnRDb250ZXh0
KCksIGdldEhhc2goKSkpCiAgICAgICAgewogICAgICAgICAgICBGcm9udGVuZF9RdWVyeUNvbXBs
ZXRlKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGV2LmVxdWFscyhMaXN0TW9kZWwuU2Vs
ZWN0ZWRJdGVtQ2hhbmdlZEV2ZW50RGVmaW5pdGlvbikpCiAgICAgICAgewogICAgICAgICAgICBp
ZiAoc2VuZGVyID09IGdldERhdGFDZW50ZXIoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgRGF0YUNlbnRlcl9TZWxlY3RlZEl0ZW1DaGFuZ2VkKHNlbmRlciwgYXJncyk7CiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoc2VuZGVyID09IGdldFRlbXBsYXRlKCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIFRlbXBsYXRlX1NlbGVjdGVkSXRlbUNoYW5nZWQoc2Vu
ZGVyLCBhcmdzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChzZW5kZXIgPT0g
Z2V0Q2x1c3RlcigpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDbHVzdGVyX1NlbGVj
dGVkSXRlbUNoYW5nZWQoc2VuZGVyLCBhcmdzKTsKICAgICAgICAgICAgICAgIEluaXRVc2JQb2xp
Y3koKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChzZW5kZXIgPT0gZ2V0VGlt
ZVpvbmUoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVGltZVpvbmVfU2VsZWN0ZWRJ
dGVtQ2hhbmdlZChzZW5kZXIsIGFyZ3MpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2Ug
aWYgKHNlbmRlciA9PSBnZXREZWZhdWx0SG9zdCgpKQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBEZWZhdWx0SG9zdF9TZWxlY3RlZEl0ZW1DaGFuZ2VkKHNlbmRlciwgYXJncyk7CiAgICAg
ICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoc2VuZGVyID09IGdldE9TVHlwZSgpKQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBPU1R5cGVfU2VsZWN0ZWRJdGVtQ2hhbmdlZChzZW5k
ZXIsIGFyZ3MpOwogICAgICAgICAgICAgICAgSW5pdFVzYlBvbGljeSgpOwogICAgICAgICAgICB9
CiAgICAgICAgICAgIGVsc2UgaWYgKHNlbmRlciA9PSBnZXRGaXJzdEJvb3REZXZpY2UoKSkKICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgRmlyc3RCb290RGV2aWNlX1NlbGVjdGVkSXRlbUNo
YW5nZWQoc2VuZGVyLCBhcmdzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChz
ZW5kZXIgPT0gZ2V0RGlzcGxheVByb3RvY29sKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIERpc3BsYXlQcm90b2NvbF9TZWxlY3RlZEl0ZW1DaGFuZ2VkKHNlbmRlciwgYXJncyk7CiAg
ICAgICAgICAgICAgICBJbml0VXNiUG9saWN5KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAg
ZWxzZSBpZiAoc2VuZGVyID09IGdldE51bU9mU29ja2V0cygpKQogICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICBOdW1PZlNvY2tldHNfRW50aXR5Q2hhbmdlZChzZW5kZXIsIGFyZ3MpOwogICAg
ICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKHNlbmRlciA9PSBnZXRDb3Jlc1BlclNvY2tl
dCgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBDb3Jlc1BlclNvY2tldF9FbnRpdHlD
aGFuZ2VkKHNlbmRlciwgYXJncyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxz
ZSBpZiAoZXYuZXF1YWxzKEVudGl0eU1vZGVsLkVudGl0eUNoYW5nZWRFdmVudERlZmluaXRpb24p
KQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHNlbmRlciA9PSBnZXRNZW1TaXplKCkpCiAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgIE1lbVNpemVfRW50aXR5Q2hhbmdlZChzZW5kZXIsIGFy
Z3MpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKHNlbmRlciA9PSBnZXRUb3Rh
bENQVUNvcmVzKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFRvdGFsQ1BVQ29yZXNf
RW50aXR5Q2hhbmdlZChzZW5kZXIsIGFyZ3MpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVs
c2UgaWYgKHNlbmRlciA9PSBnZXRSdW5WTU9uU3BlY2lmaWNIb3N0KCkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIFJ1blZNT25TcGVjaWZpY0hvc3RfRW50aXR5Q2hhbmdlZChzZW5kZXIs
IGFyZ3MpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKHNlbmRlciA9PSBnZXRE
b250TWlncmF0ZVZNKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIERvbnRNaWdyYXRl
Vk1fRW50aXR5Q2hhbmdlZChzZW5kZXIsIGFyZ3MpOwogICAgICAgICAgICB9CiAgICAgICAgICAg
IGVsc2UgaWYgKHNlbmRlciA9PSBnZXRSdW5WTU9uVHJ1c3RlZEhvc3QoKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgUnVuVk1PblRydXN0ZWRIb3N0X0VudGl0eUNoYW5nZWQoc2VuZGVy
LCBhcmdzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChzZW5kZXIgPT0gZ2V0
SXNBdXRvQXNzaWduKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIElzQXV0b0Fzc2ln
bl9FbnRpdHlDaGFuZ2VkKHNlbmRlciwgYXJncyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IGVsc2UgaWYgKHNlbmRlciA9PSBnZXRQcm92aXNpb25pbmcoKSkKICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgUHJvdmlzaW9uaW5nX1NlbGVjdGVkSXRlbUNoYW5nZWQoc2VuZGVyLCBhcmdz
KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChzZW5kZXIgPT0gZ2V0UHJvdmlz
aW9uaW5nVGhpbl9Jc1NlbGVjdGVkKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlm
ICgoQm9vbGVhbikgZ2V0UHJvdmlzaW9uaW5nVGhpbl9Jc1NlbGVjdGVkKCkuZ2V0RW50aXR5KCkp
IHsKICAgICAgICAgICAgICAgICAgICBnZXRQcm92aXNpb25pbmcoKS5zZXRFbnRpdHkoZmFsc2Up
OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKHNl
bmRlciA9PSBnZXRQcm92aXNpb25pbmdDbG9uZV9Jc1NlbGVjdGVkKCkpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIGlmICgoQm9vbGVhbikgZ2V0UHJvdmlzaW9uaW5nQ2xvbmVfSXNTZWxl
Y3RlZCgpLmdldEVudGl0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgZ2V0UHJvdmlzaW9uaW5n
KCkuc2V0RW50aXR5KHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg
ICAgfQogICAgfQoKICAgIHByaXZhdGUgaW50IHF1ZXJ5Q291bnRlcjsKCiAgICBwcml2YXRlIHZv
aWQgRnJvbnRlbmRfUXVlcnlTdGFydGVkKCkKICAgIHsKICAgICAgICBxdWVyeUNvdW50ZXIrKzsK
ICAgICAgICBpZiAoZ2V0UHJvZ3Jlc3MoKSA9PSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAg
U3RhcnRQcm9ncmVzcyhudWxsKTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIEZy
b250ZW5kX1F1ZXJ5Q29tcGxldGUoKQogICAgewogICAgICAgIHF1ZXJ5Q291bnRlci0tOwogICAg
ICAgIGlmIChxdWVyeUNvdW50ZXIgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIFN0b3BQcm9n
cmVzcygpOwogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgdm9pZCBJbml0TnVtT2ZNb25p
dG9ycygpCiAgICB7CiAgICAgICAgaWYgKGdldFZtVHlwZSgpID09IFZtVHlwZS5EZXNrdG9wKQog
ICAgICAgIHsKICAgICAgICAgICAgQXN5bmNEYXRhUHJvdmlkZXIuR2V0TnVtT2ZNb25pdG9yTGlz
dChuZXcgQXN5bmNRdWVyeSh0aGlzLAogICAgICAgICAgICAgICAgICAgIG5ldyBJTmV3QXN5bmND
YWxsYmFjaygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAg
ICAgICAgICAgICAgIHB1YmxpYyB2b2lkIE9uU3VjY2VzcyhPYmplY3QgdGFyZ2V0LCBPYmplY3Qg
cmV0dXJuVmFsdWUpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbml0Vm1Nb2RlbCBt
b2RlbCA9IChVbml0Vm1Nb2RlbCkgdGFyZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
SW50ZWdlciBvbGROdW1PZk1vbml0b3JzID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChtb2RlbC5nZXROdW1PZk1vbml0b3JzKCkuZ2V0U2VsZWN0ZWRJdGVtKCkgIT0gbnVs
bCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvbGROdW1PZk1vbml0b3JzID0gKEludGVnZXIpIG1vZGVsLmdldE51bU9mTW9uaXRv
cnMoKS5nZXRTZWxlY3RlZEl0ZW0oKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5TGlzdDxJbnRlZ2VyPiBudW1PZk1vbml0b3Jz
ID0gKEFycmF5TGlzdDxJbnRlZ2VyPikgcmV0dXJuVmFsdWU7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb2RlbC5nZXROdW1PZk1vbml0b3JzKCkuc2V0SXRlbXMobnVtT2ZNb25pdG9ycyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2xkTnVtT2ZNb25pdG9ycyAhPSBudWxs
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGVsLmdldE51bU9mTW9uaXRvcnMoKS5zZXRTZWxlY3RlZEl0ZW0ob2xkTnVtT2ZN
b25pdG9ycyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgZ2V0SGFzaCgpKSk7CiAgICAgICAgfQog
ICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGdldE51bU9mTW9uaXRvcnMoKS5zZXRJ
dGVtcyhuZXcgQXJyYXlMaXN0PEludGVnZXI+KEFycmF5cy5hc0xpc3QobmV3IEludGVnZXJbXSB7
IDEgfSkpKTsKICAgICAgICAgICAgZ2V0TnVtT2ZNb25pdG9ycygpLnNldFNlbGVjdGVkSXRlbSgx
KTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIHZvaWQgSW5pdEFsbG93Q29uc29sZVJl
Y29ubmVjdCgpCiAgICB7CiAgICAgICAgZ2V0QWxsb3dDb25zb2xlUmVjb25uZWN0KCkuc2V0RW50
aXR5KGdldFZtVHlwZSgpID09IFZtVHlwZS5TZXJ2ZXIpOwogICAgfQoKICAgIHByaXZhdGUgdm9p
ZCBJbml0T1NUeXBlKCkKICAgIHsKICAgICAgICBMaXN0PFZtT3NUeXBlPiBvc0xpc3QgPSBBcnJh
eXMuYXNMaXN0KFZtT3NUeXBlLnZhbHVlcygpKTsKICAgICAgICBDb2xsZWN0aW9ucy5zb3J0KG9z
TGlzdCwgbmV3IENvbXBhcmF0b3I8Vm1Pc1R5cGU+KCkgewoKICAgICAgICAgICAgQE92ZXJyaWRl
CiAgICAgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZShWbU9zVHlwZSBvMSwgVm1Pc1R5cGUgbzIp
IHsKICAgICAgICAgICAgICAgIC8vIG1vdmluZyBVbmFzc2lnbmVkIHRvIHRoZSBoZWFkIG9mIHRo
ZSBsaXN0CiAgICAgICAgICAgICAgICBpZiAobzEubmFtZSgpLmVxdWFscyhWbU9zVHlwZS5VbmFz
c2lnbmVkLm5hbWUoKSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKG8yLm5hbWUoKS5lcXVhbHMoVm1Pc1R5cGUu
VW5hc3NpZ25lZC5uYW1lKCkpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAg
ICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIG8xLm5hbWUoKS5jb21wYXJlVG8o
bzIubmFtZSgpKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICBnZXRPU1R5cGUo
KS5zZXRJdGVtcyhvc0xpc3QpOwogICAgICAgIGdldE9TVHlwZSgpLnNldFNlbGVjdGVkSXRlbShW
bU9zVHlwZS5VbmFzc2lnbmVkKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgSW5pdFVzYlBvbGlj
eSgpIHsKICAgICAgICBWRFNHcm91cCBjbHVzdGVyID0gKFZEU0dyb3VwKSBnZXRDbHVzdGVyKCku
Z2V0U2VsZWN0ZWRJdGVtKCk7CiAgICAgICAgVm1Pc1R5cGUgb3NUeXBlID0gKFZtT3NUeXBlKSBn
ZXRPU1R5cGUoKS5nZXRTZWxlY3RlZEl0ZW0oKTsKICAgICAgICBEaXNwbGF5VHlwZSBkaXNwbGF5
VHlwZSA9IChEaXNwbGF5VHlwZSkgKGdldERpc3BsYXlQcm90b2NvbCgpLmdldFNlbGVjdGVkSXRl
bSgpICE9IG51bGwgPwogICAgICAgICAgICAgICAgKChFbnRpdHlNb2RlbCkgZ2V0RGlzcGxheVBy
b3RvY29sKCkuZ2V0U2VsZWN0ZWRJdGVtKCkpLmdldEVudGl0eSgpIDogbnVsbCk7CgogICAgICAg
IGlmIChvc1R5cGUgPT0gbnVsbCB8fCBjbHVzdGVyID09IG51bGwgfHwgZGlzcGxheVR5cGUgPT0g
bnVsbCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBnZXRVc2JQb2xp
Y3koKS5zZXRJc0NoYW5nYWJsZSh0cnVlKTsKICAgICAgICBpZiAoVmVyc2lvbi52M18xLmNvbXBh
cmVUbyhjbHVzdGVyLmdldGNvbXBhdGliaWxpdHlfdmVyc2lvbigpKSA+IDApIHsKICAgICAgICAg
ICAgaWYgKG9zVHlwZS5pc1dpbmRvd3MoKSkgewogICAgICAgICAgICAgICAgZ2V0VXNiUG9saWN5
KCkuc2V0SXRlbXMoQXJyYXlzLmFzTGlzdCgKICAgICAgICAgICAgICAgICAgICAgICAgVXNiUG9s
aWN5LkRJU0FCTEVELAogICAgICAgICAgICAgICAgICAgICAgICBVc2JQb2xpY3kuRU5BQkxFRF9M
RUdBQ1kKICAgICAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICBnZXRVc2JQb2xpY3koKS5zZXRJdGVtcyhBcnJheXMuYXNMaXN0KFVzYlBv
bGljeS5ESVNBQkxFRCkpOwogICAgICAgICAgICAgICAgZ2V0VXNiUG9saWN5KCkuc2V0U2VsZWN0
ZWRJdGVtKFVzYlBvbGljeS5ESVNBQkxFRCk7CiAgICAgICAgICAgICAgICBnZXRVc2JQb2xpY3ko
KS5zZXRJc0NoYW5nYWJsZShmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAg
IGlmIChWZXJzaW9uLnYzXzEuY29tcGFyZVRvKGNsdXN0ZXIuZ2V0Y29tcGF0aWJpbGl0eV92ZXJz
aW9uKCkpIDw9IDApIHsKICAgICAgICAgICAgaWYgKG9zVHlwZS5pc0xpbnV4KCkpIHsKICAgICAg
ICAgICAgICAgIGdldFVzYlBvbGljeSgpLnNldEl0ZW1zKEFycmF5cy5hc0xpc3QoCiAgICAgICAg
ICAgICAgICAgICAgICAgIFVzYlBvbGljeS5ESVNBQkxFRCwKICAgICAgICAgICAgICAgICAgICAg
ICAgVXNiUG9saWN5LkVOQUJMRURfTkFUSVZFCiAgICAgICAgICAgICAgICAgICAgICAgICkpOwog
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZ2V0VXNiUG9saWN5KCkuc2V0SXRl
bXMoCiAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5cy5hc0xpc3QoCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVXNiUG9saWN5LkRJU0FCTEVELAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFVzYlBvbGljeS5FTkFCTEVEX0xFR0FDWSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVc2JQb2xpY3kuRU5BQkxFRF9OQVRJVkUKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGRp
c3BsYXlUeXBlICE9IERpc3BsYXlUeXBlLnF4bCkgewogICAgICAgICAgICBnZXRVc2JQb2xpY3ko
KS5zZXRJc0NoYW5nYWJsZShmYWxzZSk7CiAgICAgICAgfQoKICAgICAgICBnZXRVc2JQb2xpY3ko
KS5zZXRTZWxlY3RlZEl0ZW0oVXNiUG9saWN5LkRJU0FCTEVEKTsKICAgIH0KCiAgICBwcml2YXRl
IHZvaWQgSW5pdE1pbmltYWxWbU1lbVNpemUoKQogICAgewogICAgICAgIEFzeW5jRGF0YVByb3Zp
ZGVyLkdldE1pbmltYWxWbU1lbVNpemUobmV3IEFzeW5jUXVlcnkodGhpcywKICAgICAgICAgICAg
ICAgIG5ldyBJTmV3QXN5bmNDYWxsYmFjaygpIHsKICAgICAgICAgICAgICAgICAgICBAT3ZlcnJp
ZGUKICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBPblN1Y2Nlc3MoT2JqZWN0IHRhcmdl
dCwgT2JqZWN0IHJldHVyblZhbHVlKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBVbml0Vm1N
b2RlbCB2bU1vZGVsID0gKFVuaXRWbU1vZGVsKSB0YXJnZXQ7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHZtTW9kZWwuc2V0X01pbk1lbVNpemUoKEludGVnZXIpIHJldHVyblZhbHVlKTsKCiAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgZ2V0SGFzaCgpKSk7CiAgICB9Cgog
ICAgcHJpdmF0ZSB2b2lkIEluaXRNYXhpbWFsVm1NZW1TaXplMzJPUygpCiAgICB7CiAgICAgICAg
QXN5bmNEYXRhUHJvdmlkZXIuR2V0TWF4aW1hbFZtTWVtU2l6ZTMyT1MobmV3IEFzeW5jUXVlcnko
dGhpcywKICAgICAgICAgICAgICAgIG5ldyBJTmV3QXN5bmNDYWxsYmFjaygpIHsKICAgICAgICAg
ICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBPblN1
Y2Nlc3MoT2JqZWN0IHRhcmdldCwgT2JqZWN0IHJldHVyblZhbHVlKSB7CgogICAgICAgICAgICAg
ICAgICAgICAgICBVbml0Vm1Nb2RlbCB2bU1vZGVsID0gKFVuaXRWbU1vZGVsKSB0YXJnZXQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHZtTW9kZWwuc2V0X01heE1lbVNpemUzMigoSW50ZWdlcikg
cmV0dXJuVmFsdWUpOwoKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCBn
ZXRIYXNoKCkpKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgVXBkYXRlTWF4aW1hbFZtTWVtU2l6
ZSgpCiAgICB7CiAgICAgICAgVkRTR3JvdXAgY2x1c3RlciA9IChWRFNHcm91cCkgZ2V0Q2x1c3Rl
cigpLmdldFNlbGVjdGVkSXRlbSgpOwoKICAgICAgICBpZiAoY2x1c3RlciAhPSBudWxsKQogICAg
ICAgIHsKICAgICAgICAgICAgQXN5bmNEYXRhUHJvdmlkZXIuR2V0TWF4aW1hbFZtTWVtU2l6ZTY0
T1MobmV3IEFzeW5jUXVlcnkodGhpcywKICAgICAgICAgICAgICAgICAgICBuZXcgSU5ld0FzeW5j
Q2FsbGJhY2soKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBPblN1Y2Nlc3MoT2JqZWN0IHRhcmdldCwgT2JqZWN0
IHJldHVyblZhbHVlKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pdFZtTW9kZWwg
dm1Nb2RlbCA9IChVbml0Vm1Nb2RlbCkgdGFyZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdm1Nb2RlbC5zZXRfTWF4TWVtU2l6ZTY0KChJbnRlZ2VyKSByZXR1cm5WYWx1ZSk7CgogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgZ2V0SGFzaCgpKSwg
Y2x1c3Rlci5nZXRjb21wYXRpYmlsaXR5X3ZlcnNpb24oKS50b1N0cmluZygpKTsKICAgICAgICB9
CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIEluaXREaXNwbGF5UHJvdG9jb2woKQogICAgewogICAg
ICAgIEFycmF5TGlzdDxFbnRpdHlNb2RlbD4gZGlzcGxheVByb3RvY29sT3B0aW9ucyA9IG5ldyBB
cnJheUxpc3Q8RW50aXR5TW9kZWw+KCk7CgogICAgICAgIEVudGl0eU1vZGVsIHNwaWNlUHJvdG9j
b2wgPSBuZXcgRW50aXR5TW9kZWwoKTsKICAgICAgICBzcGljZVByb3RvY29sLnNldFRpdGxlKENv
bnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5zcGljZVRpdGxlKCkp
OwogICAgICAgIHNwaWNlUHJvdG9jb2wuc2V0RW50aXR5KERpc3BsYXlUeXBlLnF4bCk7CgogICAg
ICAgIEVudGl0eU1vZGVsIHZuY1Byb3RvY29sID0gbmV3IEVudGl0eU1vZGVsKCk7CiAgICAgICAg
dm5jUHJvdG9jb2wuc2V0VGl0bGUoQ29uc3RhbnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENv
bnN0YW50cygpLlZOQ1RpdGxlKCkpOwogICAgICAgIHZuY1Byb3RvY29sLnNldEVudGl0eShEaXNw
bGF5VHlwZS52bmMpOwoKICAgICAgICBkaXNwbGF5UHJvdG9jb2xPcHRpb25zLmFkZChzcGljZVBy
b3RvY29sKTsKICAgICAgICBkaXNwbGF5UHJvdG9jb2xPcHRpb25zLmFkZCh2bmNQcm90b2NvbCk7
CiAgICAgICAgZ2V0RGlzcGxheVByb3RvY29sKCkuc2V0SXRlbXMoZGlzcGxheVByb3RvY29sT3B0
aW9ucyk7CgogICAgICAgIGdldERpc3BsYXlQcm90b2NvbCgpLmdldFNlbGVjdGVkSXRlbUNoYW5n
ZWRFdmVudCgpLmFkZExpc3RlbmVyKHRoaXMpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBJbml0
Rmlyc3RCb290RGV2aWNlKCkKICAgIHsKICAgICAgICBFbnRpdHlNb2RlbCB0ZW1wVmFyID0gbmV3
IEVudGl0eU1vZGVsKCk7CiAgICAgICAgdGVtcFZhci5zZXRUaXRsZShDb25zdGFudHNNYW5hZ2Vy
LmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuaGFyZERpc2tUaXRsZSgpKTsKICAgICAgICB0
ZW1wVmFyLnNldEVudGl0eShCb290U2VxdWVuY2UuQyk7CiAgICAgICAgRW50aXR5TW9kZWwgaGFy
ZERpc2tPcHRpb24gPSB0ZW1wVmFyOwoKICAgICAgICBBcnJheUxpc3Q8RW50aXR5TW9kZWw+IGZp
cnN0Qm9vdERldmljZUl0ZW1zID0gbmV3IEFycmF5TGlzdDxFbnRpdHlNb2RlbD4oKTsKICAgICAg
ICBmaXJzdEJvb3REZXZpY2VJdGVtcy5hZGQoaGFyZERpc2tPcHRpb24pOwogICAgICAgIEVudGl0
eU1vZGVsIHRlbXBWYXIyID0gbmV3IEVudGl0eU1vZGVsKCk7CiAgICAgICAgdGVtcFZhcjIuc2V0
VGl0bGUoQ29uc3RhbnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0YW50cygpLmNkcm9t
VGl0bGUoKSk7CiAgICAgICAgdGVtcFZhcjIuc2V0RW50aXR5KEJvb3RTZXF1ZW5jZS5EKTsKICAg
ICAgICBmaXJzdEJvb3REZXZpY2VJdGVtcy5hZGQodGVtcFZhcjIpOwogICAgICAgIEVudGl0eU1v
ZGVsIHRlbXBWYXIzID0gbmV3IEVudGl0eU1vZGVsKCk7CiAgICAgICAgdGVtcFZhcjMuc2V0VGl0
bGUoQ29uc3RhbnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0YW50cygpLm5ldHdvcmtQ
WEVUaXRsZSgpKTsKICAgICAgICB0ZW1wVmFyMy5zZXRFbnRpdHkoQm9vdFNlcXVlbmNlLk4pOwog
ICAgICAgIGZpcnN0Qm9vdERldmljZUl0ZW1zLmFkZCh0ZW1wVmFyMyk7CiAgICAgICAgZ2V0Rmly
c3RCb290RGV2aWNlKCkuc2V0SXRlbXMoZmlyc3RCb290RGV2aWNlSXRlbXMpOwogICAgICAgIGdl
dEZpcnN0Qm9vdERldmljZSgpLnNldFNlbGVjdGVkSXRlbShoYXJkRGlza09wdGlvbik7CiAgICB9
CgogICAgcHJpdmF0ZSB2b2lkIERhdGFDZW50ZXJfU2VsZWN0ZWRJdGVtQ2hhbmdlZChPYmplY3Qg
c2VuZGVyLCBFdmVudEFyZ3MgYXJncykKICAgIHsKICAgICAgICBiZWhhdmlvci5EYXRhQ2VudGVy
X1NlbGVjdGVkSXRlbUNoYW5nZWQoKTsKCiAgICAgICAgc3RvcmFnZV9wb29sIGRhdGFDZW50ZXIg
PSAoc3RvcmFnZV9wb29sKSBnZXREYXRhQ2VudGVyKCkuZ2V0U2VsZWN0ZWRJdGVtKCk7CiAgICAg
ICAgaWYgKGRhdGFDZW50ZXIgIT0gbnVsbCkgewogICAgICAgICAgICBnZXREaXNrc0FsbG9jYXRp
b25Nb2RlbCgpLnNldFF1b3RhRW5mb3JjZW1lbnRUeXBlKGRhdGFDZW50ZXIuZ2V0UXVvdGFFbmZv
cmNlbWVudFR5cGUoKSk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgdm9pZCBUZW1wbGF0
ZV9TZWxlY3RlZEl0ZW1DaGFuZ2VkKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKQogICAg
ewogICAgICAgIGJlaGF2aW9yLlRlbXBsYXRlX1NlbGVjdGVkSXRlbUNoYW5nZWQoKTsKICAgIH0K
CiAgICBwcml2YXRlIHZvaWQgQ2x1c3Rlcl9TZWxlY3RlZEl0ZW1DaGFuZ2VkKE9iamVjdCBzZW5k
ZXIsIEV2ZW50QXJncyBhcmdzKQogICAgewogICAgICAgIGJlaGF2aW9yLkNsdXN0ZXJfU2VsZWN0
ZWRJdGVtQ2hhbmdlZCgpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBUaW1lWm9uZV9TZWxlY3Rl
ZEl0ZW1DaGFuZ2VkKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKQogICAgewogICAgfQoK
ICAgIHByaXZhdGUgdm9pZCBEZWZhdWx0SG9zdF9TZWxlY3RlZEl0ZW1DaGFuZ2VkKE9iamVjdCBz
ZW5kZXIsIEV2ZW50QXJncyBhcmdzKQogICAgewogICAgICAgIGJlaGF2aW9yLkRlZmF1bHRIb3N0
X1NlbGVjdGVkSXRlbUNoYW5nZWQoKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgT1NUeXBlX1Nl
bGVjdGVkSXRlbUNoYW5nZWQoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGFyZ3MpCiAgICB7CiAg
ICAgICAgVm1Pc1R5cGUgb3NUeXBlID0gKFZtT3NUeXBlKSBnZXRPU1R5cGUoKS5nZXRTZWxlY3Rl
ZEl0ZW0oKTsKCiAgICAgICAgc2V0SXNXaW5kb3dzT1MoQXN5bmNEYXRhUHJvdmlkZXIuSXNXaW5k
b3dzT3NUeXBlKG9zVHlwZSkpOwogICAgICAgIHNldElzTGludXhfVW5hc3NpZ25fVW5rbm93bk9T
KEFzeW5jRGF0YVByb3ZpZGVyLklzTGludXhPc1R5cGUob3NUeXBlKSB8fCBvc1R5cGUgPT0gVm1P
c1R5cGUuVW5hc3NpZ25lZAogICAgICAgICAgICAgICAgfHwgb3NUeXBlID09IFZtT3NUeXBlLk90
aGVyKTsKCiAgICAgICAgZ2V0SW5pdHJkX3BhdGgoKS5zZXRJc0NoYW5nYWJsZShnZXRJc0xpbnV4
X1VuYXNzaWduX1Vua25vd25PUygpKTsKICAgICAgICBnZXRJbml0cmRfcGF0aCgpLnNldElzQXZh
aWxhYmxlKGdldElzTGludXhfVW5hc3NpZ25fVW5rbm93bk9TKCkpOwoKICAgICAgICBnZXRLZXJu
ZWxfcGF0aCgpLnNldElzQ2hhbmdhYmxlKGdldElzTGludXhfVW5hc3NpZ25fVW5rbm93bk9TKCkp
OwogICAgICAgIGdldEtlcm5lbF9wYXRoKCkuc2V0SXNBdmFpbGFibGUoZ2V0SXNMaW51eF9VbmFz
c2lnbl9Vbmtub3duT1MoKSk7CgogICAgICAgIGdldEtlcm5lbF9wYXJhbWV0ZXJzKCkuc2V0SXND
aGFuZ2FibGUoZ2V0SXNMaW51eF9VbmFzc2lnbl9Vbmtub3duT1MoKSk7CiAgICAgICAgZ2V0S2Vy
bmVsX3BhcmFtZXRlcnMoKS5zZXRJc0F2YWlsYWJsZShnZXRJc0xpbnV4X1VuYXNzaWduX1Vua25v
d25PUygpKTsKCiAgICAgICAgZ2V0RG9tYWluKCkuc2V0SXNDaGFuZ2FibGUoZ2V0SXNXaW5kb3dz
T1MoKSk7CiAgICAgICAgZ2V0QmVoYXZpb3IoKS51cGRhdGVUaW1lWm9uZSgpOwoKICAgIH0KCiAg
ICBwcml2YXRlIHZvaWQgRmlyc3RCb290RGV2aWNlX1NlbGVjdGVkSXRlbUNoYW5nZWQoT2JqZWN0
IHNlbmRlciwgRXZlbnRBcmdzIGFyZ3MpCiAgICB7CiAgICAgICAgRW50aXR5TW9kZWwgZW50aXR5
TW9kZWwgPSAoRW50aXR5TW9kZWwpIGdldEZpcnN0Qm9vdERldmljZSgpLmdldFNlbGVjdGVkSXRl
bSgpOwogICAgICAgIEJvb3RTZXF1ZW5jZSBmaXJzdERldmljZSA9IChCb290U2VxdWVuY2UpIGVu
dGl0eU1vZGVsLmdldEVudGl0eSgpOwoKICAgICAgICBBcnJheUxpc3Q8RW50aXR5TW9kZWw+IGxp
c3QgPSBuZXcgQXJyYXlMaXN0PEVudGl0eU1vZGVsPigpOwogICAgICAgIGZvciAoT2JqZWN0IGl0
ZW0gOiBnZXRGaXJzdEJvb3REZXZpY2UoKS5nZXRJdGVtcygpKQogICAgICAgIHsKICAgICAgICAg
ICAgRW50aXR5TW9kZWwgYSA9IChFbnRpdHlNb2RlbCkgaXRlbTsKICAgICAgICAgICAgaWYgKChC
b290U2VxdWVuY2UpIGEuZ2V0RW50aXR5KCkgIT0gZmlyc3REZXZpY2UpCiAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgIGxpc3QuYWRkKGEpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAg
ICAgICBFbnRpdHlNb2RlbCB0ZW1wVmFyID0gbmV3IEVudGl0eU1vZGVsKCk7CiAgICAgICAgdGVt
cFZhci5zZXRUaXRsZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRz
KCkubm9uZVRpdGxlKCkpOwogICAgICAgIEVudGl0eU1vZGVsIG5vbmVPcHRpb24gPSB0ZW1wVmFy
OwoKICAgICAgICBsaXN0LmFkZCgwLCBub25lT3B0aW9uKTsKCiAgICAgICAgZ2V0U2Vjb25kQm9v
dERldmljZSgpLnNldEl0ZW1zKGxpc3QpOwogICAgICAgIGdldFNlY29uZEJvb3REZXZpY2UoKS5z
ZXRTZWxlY3RlZEl0ZW0obm9uZU9wdGlvbik7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIFByb3Zp
c2lvbmluZ19TZWxlY3RlZEl0ZW1DaGFuZ2VkKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdz
KQogICAgewogICAgICAgIGJlaGF2aW9yLlByb3Zpc2lvbmluZ19TZWxlY3RlZEl0ZW1DaGFuZ2Vk
KCk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIERpc3BsYXlQcm90b2NvbF9TZWxlY3RlZEl0ZW1D
aGFuZ2VkKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKQogICAgewogICAgICAgIEVudGl0
eU1vZGVsIGVudGl0eU1vZGVsID0gKEVudGl0eU1vZGVsKSBnZXREaXNwbGF5UHJvdG9jb2woKS5n
ZXRTZWxlY3RlZEl0ZW0oKTsKICAgICAgICBpZiAoZW50aXR5TW9kZWwgPT0gbnVsbCkKICAgICAg
ICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgRGlzcGxheVR5cGUgdHlw
ZSA9IChEaXNwbGF5VHlwZSkgZW50aXR5TW9kZWwuZ2V0RW50aXR5KCk7CgogICAgICAgIGlmICh0
eXBlID09IERpc3BsYXlUeXBlLnZuYykKICAgICAgICB7CiAgICAgICAgICAgIGdldFVzYlBvbGlj
eSgpLnNldFNlbGVjdGVkSXRlbShvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNz
ZW50aXRpZXMuVXNiUG9saWN5LkRJU0FCTEVEKTsKICAgICAgICAgICAgZ2V0SXNTbWFydGNhcmRF
bmFibGVkKCkuc2V0RW50aXR5KGZhbHNlKTsKICAgICAgICB9CgogICAgICAgIGdldFVzYlBvbGlj
eSgpLnNldElzQ2hhbmdhYmxlKHR5cGUgPT0gRGlzcGxheVR5cGUucXhsKTsKICAgICAgICBnZXRJ
c1NtYXJ0Y2FyZEVuYWJsZWQoKS5zZXRJc0NoYW5nYWJsZSh0eXBlID09IERpc3BsYXlUeXBlLnF4
bCk7CgogICAgICAgIFVwZGF0ZU51bU9mTW9uaXRvcnMoKTsKICAgIH0KCiAgICBwcml2YXRlIHZv
aWQgTWVtU2l6ZV9FbnRpdHlDaGFuZ2VkKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKQog
ICAgewogICAgICAgIGJlaGF2aW9yLlVwZGF0ZU1pbkFsbG9jYXRlZE1lbW9yeSgpOwogICAgfQoK
ICAgIHByaXZhdGUgdm9pZCBOdW1PZlNvY2tldHNfRW50aXR5Q2hhbmdlZChPYmplY3Qgc2VuZGVy
LCBFdmVudEFyZ3MgYXJncykKICAgIHsKICAgICAgICBiZWhhdmlvci5udW1PZlNvY2tldENoYW5n
ZWQoKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgVG90YWxDUFVDb3Jlc19FbnRpdHlDaGFuZ2Vk
KE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKSB7CiAgICAgICAgLy8gZG8gbm90IGxpc3Rl
biBvbiBjaGFuZ2VzIHdoaWxlIHRoZSB0b3RhbENwdUNvcmVzQ2hhbmdlZCBpcyBhZGp1c3Rpbmcg
dGhlbQogICAgICAgIGdldE51bU9mU29ja2V0cygpLmdldFNlbGVjdGVkSXRlbUNoYW5nZWRFdmVu
dCgpLnJlbW92ZUxpc3RlbmVyKHRoaXMpOwogICAgICAgIGdldFRvdGFsQ1BVQ29yZXMoKS5nZXRF
bnRpdHlDaGFuZ2VkRXZlbnQoKS5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKICAgICAgICBnZXRDb3Jl
c1BlclNvY2tldCgpLmdldFNlbGVjdGVkSXRlbUNoYW5nZWRFdmVudCgpLnJlbW92ZUxpc3RlbmVy
KHRoaXMpOwoKICAgICAgICBiZWhhdmlvci50b3RhbENwdUNvcmVzQ2hhbmdlZCgpOwoKICAgICAg
ICAvLyBzdGFydCBsaXN0ZW5pbmcgYWdhaW4KICAgICAgICBnZXRUb3RhbENQVUNvcmVzKCkuZ2V0
RW50aXR5Q2hhbmdlZEV2ZW50KCkuYWRkTGlzdGVuZXIodGhpcyk7CiAgICAgICAgZ2V0TnVtT2ZT
b2NrZXRzKCkuZ2V0U2VsZWN0ZWRJdGVtQ2hhbmdlZEV2ZW50KCkuYWRkTGlzdGVuZXIodGhpcyk7
CiAgICAgICAgZ2V0Q29yZXNQZXJTb2NrZXQoKS5nZXRTZWxlY3RlZEl0ZW1DaGFuZ2VkRXZlbnQo
KS5hZGRMaXN0ZW5lcih0aGlzKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgQ29yZXNQZXJTb2Nr
ZXRfRW50aXR5Q2hhbmdlZChPYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgYXJncykgewogICAgICAg
IGJlaGF2aW9yLmNvcmVzUGVyU29ja2V0Q2hhbmdlZCgpOwogICAgfQoKICAgIHByaXZhdGUgdm9p
ZCBjbGVhckFuZERpc2FibGUoRW50aXR5TW9kZWwgZW50aXR5TW9kZWwpIHsKICAgICAgICBlbnRp
dHlNb2RlbC5zZXRFbnRpdHkoZmFsc2UpOwogICAgICAgIGVudGl0eU1vZGVsLnNldElzQ2hhbmdh
YmxlKGZhbHNlKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgUnVuVk1PblNwZWNpZmljSG9zdF9F
bnRpdHlDaGFuZ2VkKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKQogICAgewogICAgICAg
IGlmICgoQm9vbGVhbikgZ2V0UnVuVk1PblNwZWNpZmljSG9zdCgpLmdldEVudGl0eSgpID09IHRy
dWUpCiAgICAgICAgewogICAgICAgICAgICBjbGVhckFuZERpc2FibGUoZ2V0RG9udE1pZ3JhdGVW
TSgpKTsKICAgICAgICAgICAgZ2V0SG9zdENwdSgpLnNldElzQ2hhbmdhYmxlKHRydWUpOwogICAg
ICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBjbGVhckFuZERpc2FibGUo
Z2V0SG9zdENwdSgpKTsKICAgICAgICAgICAgZ2V0RG9udE1pZ3JhdGVWTSgpLnNldElzQ2hhbmdh
YmxlKHRydWUpOwogICAgICAgIH0KICAgICAgICBiZWhhdmlvci51cGRhdGVDcHVQaW5uaW5nVmlz
aWJpbGl0eSgpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBSdW5WTU9uVHJ1c3RlZEhvc3RfRW50
aXR5Q2hhbmdlZChPYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgYXJncykKICAgIHsKICAgICAgICBp
ZiAoKEJvb2xlYW4pIGdldFJ1blZNT25UcnVzdGVkSG9zdCgpLmdldEVudGl0eSgpID09IHRydWUp
CiAgICAgICAgewogICAgICAgICAgICBjbGVhckFuZERpc2FibGUoZ2V0UnVuVk1PblNwZWNpZmlj
SG9zdCgpKTsKICAgICAgICAgICAgY2xlYXJBbmREaXNhYmxlKGdldEhvc3RDcHUoKSk7CiAgICAg
ICAgICAgIGNsZWFyQW5kRGlzYWJsZShnZXREb250TWlncmF0ZVZNKCkpOwogICAgICAgIH0KICAg
ICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBnZXRSdW5WTU9uU3BlY2lmaWNIb3N0KCku
c2V0SXNDaGFuZ2FibGUodHJ1ZSk7CiAgICAgICAgICAgIGdldERvbnRNaWdyYXRlVk0oKS5zZXRJ
c0NoYW5nYWJsZSh0cnVlKTsKICAgICAgICB9CiAgICAgICAgYmVoYXZpb3IudXBkYXRlQ3B1UGlu
bmluZ1Zpc2liaWxpdHkoKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgRG9udE1pZ3JhdGVWTV9F
bnRpdHlDaGFuZ2VkKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKQogICAgewogICAgICAg
IGlmKChCb29sZWFuKSBnZXREb250TWlncmF0ZVZNKCkuZ2V0RW50aXR5KCkgPT0gdHJ1ZSApIHsK
ICAgICAgICAgICAgY2xlYXJBbmREaXNhYmxlKGdldFJ1blZNT25TcGVjaWZpY0hvc3QoKSk7CiAg
ICAgICAgICAgIGdldEhvc3RDcHUoKS5zZXRJc0NoYW5nYWJsZSh0cnVlKTsKICAgICAgICB9CiAg
ICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgY2xlYXJBbmREaXNhYmxlKGdldEhvc3RD
cHUoKSk7CiAgICAgICAgICAgIGdldFJ1blZNT25TcGVjaWZpY0hvc3QoKS5zZXRJc0NoYW5nYWJs
ZSh0cnVlKTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIElzQXV0b0Fzc2lnbl9F
bnRpdHlDaGFuZ2VkKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKQogICAgewogICAgICAg
IGlmICgoQm9vbGVhbikgZ2V0SXNBdXRvQXNzaWduKCkuZ2V0RW50aXR5KCkgPT0gdHJ1ZSkKICAg
ICAgICB7CiAgICAgICAgICAgIGNsZWFyQW5kRGlzYWJsZShnZXRSdW5WTU9uU3BlY2lmaWNIb3N0
KCkpOwogICAgICAgICAgICBjbGVhckFuZERpc2FibGUoZ2V0SG9zdENwdSgpKTsKICAgICAgICB9
CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgZ2V0UnVuVk1PblNwZWNpZmljSG9z
dCgpLnNldElzQ2hhbmdhYmxlKHRydWUpOwogICAgICAgIH0KICAgICAgICBiZWhhdmlvci51cGRh
dGVDcHVQaW5uaW5nVmlzaWJpbGl0eSgpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBVcGRhdGVO
dW1PZk1vbml0b3JzKCkKICAgIHsKICAgICAgICBib29sZWFuIGlzVm5jID0gZmFsc2U7CgogICAg
ICAgIGlmIChnZXREaXNwbGF5UHJvdG9jb2woKS5nZXRTZWxlY3RlZEl0ZW0oKSAhPSBudWxsKQog
ICAgICAgIHsKICAgICAgICAgICAgRGlzcGxheVR5cGUgZGlzcGxheVR5cGUgPSAoRGlzcGxheVR5
cGUpICgoRW50aXR5TW9kZWwpIGdldERpc3BsYXlQcm90b2NvbCgpLmdldFNlbGVjdGVkSXRlbSgp
KS5nZXRFbnRpdHkoKTsKICAgICAgICAgICAgaXNWbmMgPSBkaXNwbGF5VHlwZSA9PSBEaXNwbGF5
VHlwZS52bmM7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNWbmMpCiAgICAgICAgewogICAgICAg
ICAgICBnZXROdW1PZk1vbml0b3JzKCkuc2V0U2VsZWN0ZWRJdGVtKDEpOwogICAgICAgICAgICBn
ZXROdW1PZk1vbml0b3JzKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgIGdldE51bU9mTW9uaXRvcnMoKS5zZXRJc0NoYW5nYWJsZSh0cnVlKTsKICAg
ICAgICB9CiAgICB9CgogICAgcHVibGljIEJvb3RTZXF1ZW5jZSBnZXRCb290U2VxdWVuY2UoKQog
ICAgewogICAgICAgIEVudGl0eU1vZGVsIGZpcnN0U2VsZWN0ZWRJdGVtID0gKEVudGl0eU1vZGVs
KSBnZXRGaXJzdEJvb3REZXZpY2UoKS5nZXRTZWxlY3RlZEl0ZW0oKTsKICAgICAgICBFbnRpdHlN
b2RlbCBzZWNvbmRTZWxlY3RlZEl0ZW0gPSAoRW50aXR5TW9kZWwpIGdldFNlY29uZEJvb3REZXZp
Y2UoKS5nZXRTZWxlY3RlZEl0ZW0oKTsKCiAgICAgICAgU3RyaW5nIGZpcnN0U2VsZWN0ZWRTdHJp
bmcgPQogICAgICAgICAgICAgICAgZmlyc3RTZWxlY3RlZEl0ZW0uZ2V0RW50aXR5KCkgPT0gbnVs
bCA/ICIiIDogZmlyc3RTZWxlY3RlZEl0ZW0uZ2V0RW50aXR5KCkudG9TdHJpbmcoKTsgLy8kTk9O
LU5MUy0xJAogICAgICAgIFN0cmluZyBzZWNvbmRTZWxlY3RlZFN0cmluZyA9CiAgICAgICAgICAg
ICAgICBzZWNvbmRTZWxlY3RlZEl0ZW0uZ2V0RW50aXR5KCkgPT0gbnVsbCA/ICIiIDogc2Vjb25k
U2VsZWN0ZWRJdGVtLmdldEVudGl0eSgpLnRvU3RyaW5nKCk7IC8vJE5PTi1OTFMtMSQKCiAgICAg
ICAgcmV0dXJuIEJvb3RTZXF1ZW5jZS52YWx1ZU9mKGZpcnN0U2VsZWN0ZWRTdHJpbmcgKyBzZWNv
bmRTZWxlY3RlZFN0cmluZyk7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0Qm9vdFNlcXVlbmNl
KEJvb3RTZXF1ZW5jZSB2YWx1ZSkKICAgIHsKICAgICAgICBBcnJheUxpc3Q8Qm9vdFNlcXVlbmNl
PiBpdGVtcyA9IG5ldyBBcnJheUxpc3Q8Qm9vdFNlcXVlbmNlPigpOwogICAgICAgIGZvciAoY2hh
ciBhIDogdmFsdWUudG9TdHJpbmcoKS50b0NoYXJBcnJheSgpKQogICAgICAgIHsKICAgICAgICAg
ICAgaXRlbXMuYWRkKEJvb3RTZXF1ZW5jZS52YWx1ZU9mKChuZXcgQ2hhcmFjdGVyKGEpKS50b1N0
cmluZygpKSk7CiAgICAgICAgfQoKICAgICAgICBPYmplY3QgZmlyc3RCb290RGV2aWNlID0gbnVs
bDsKICAgICAgICBmb3IgKE9iamVjdCBpdGVtIDogZ2V0Rmlyc3RCb290RGV2aWNlKCkuZ2V0SXRl
bXMoKSkKICAgICAgICB7CiAgICAgICAgICAgIEVudGl0eU1vZGVsIGEgPSAoRW50aXR5TW9kZWwp
IGl0ZW07CiAgICAgICAgICAgIGlmICgoQm9vdFNlcXVlbmNlKSBhLmdldEVudGl0eSgpID09IExp
bnEuRmlyc3RPckRlZmF1bHQoaXRlbXMpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBm
aXJzdEJvb3REZXZpY2UgPSBhOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGdldEZp
cnN0Qm9vdERldmljZSgpLnNldFNlbGVjdGVkSXRlbShmaXJzdEJvb3REZXZpY2UpOwoKICAgICAg
ICBBcnJheUxpc3Q8RW50aXR5TW9kZWw+IHNlY29uZERldmljZU9wdGlvbnMgPQogICAgICAgICAg
ICAgICAgTGlucS48RW50aXR5TW9kZWw+IENhc3QoZ2V0U2Vjb25kQm9vdERldmljZSgpLmdldEl0
ZW1zKCkpOwoKICAgICAgICBpZiAoaXRlbXMuc2l6ZSgpID4gMSkKICAgICAgICB7CiAgICAgICAg
ICAgIEJvb3RTZXF1ZW5jZSBsYXN0ID0gaXRlbXMuZ2V0KGl0ZW1zLnNpemUoKSAtIDEpOwogICAg
ICAgICAgICBmb3IgKEVudGl0eU1vZGVsIGEgOiBzZWNvbmREZXZpY2VPcHRpb25zKQogICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICBpZiAoYS5nZXRFbnRpdHkoKSAhPSBudWxsICYmIChCb290
U2VxdWVuY2UpIGEuZ2V0RW50aXR5KCkgPT0gbGFzdCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBnZXRTZWNvbmRCb290RGV2aWNlKCkuc2V0U2VsZWN0ZWRJdGVtKGEpOwog
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9
CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGZvciAoRW50aXR5
TW9kZWwgYSA6IHNlY29uZERldmljZU9wdGlvbnMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIGlmIChhLmdldEVudGl0eSgpID09IG51bGwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgZ2V0U2Vjb25kQm9vdERldmljZSgpLnNldFNlbGVjdGVkSXRlbShhKTsKICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQog
ICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgdm9pZCBTZXREYXRhQ2VudGVyKFVuaXRWbU1vZGVs
IG1vZGVsLCBBcnJheUxpc3Q8c3RvcmFnZV9wb29sPiBsaXN0KQogICAgewogICAgICAgIGlmICht
b2RlbC5nZXRCZWhhdmlvcigpLmdldFN5c3RlbVRyZWVTZWxlY3RlZEl0ZW0oKSAhPSBudWxsCiAg
ICAgICAgICAgICAgICAmJiBtb2RlbC5nZXRCZWhhdmlvcigpLmdldFN5c3RlbVRyZWVTZWxlY3Rl
ZEl0ZW0oKS5nZXRUeXBlKCkgIT0gU3lzdGVtVHJlZUl0ZW1UeXBlLlN5c3RlbSkKICAgICAgICB7
CiAgICAgICAgICAgIHN3aXRjaCAobW9kZWwuZ2V0QmVoYXZpb3IoKS5nZXRTeXN0ZW1UcmVlU2Vs
ZWN0ZWRJdGVtKCkuZ2V0VHlwZSgpKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGNhc2UgVGVt
cGxhdGVzOgogICAgICAgICAgICBjYXNlIERhdGFDZW50ZXI6CiAgICAgICAgICAgICAgICBzdG9y
YWdlX3Bvb2wgc2VsZWN0RGF0YUNlbnRlciA9CiAgICAgICAgICAgICAgICAgICAgICAgIChzdG9y
YWdlX3Bvb2wpIG1vZGVsLmdldEJlaGF2aW9yKCkuZ2V0U3lzdGVtVHJlZVNlbGVjdGVkSXRlbSgp
LmdldEVudGl0eSgpOwogICAgICAgICAgICAgICAgZm9yIChzdG9yYWdlX3Bvb2wgZGMgOiBsaXN0
KSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdERhdGFDZW50ZXIuZ2V0SWQoKS5lcXVh
bHMoZGMuZ2V0SWQoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0RGF0YUNlbnRl
ciA9IGRjOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBtb2RlbC5nZXREYXRhQ2VudGVy
KCkKICAgICAgICAgICAgICAgICAgICAgICAgLnNldEl0ZW1zKG5ldyBBcnJheUxpc3Q8c3RvcmFn
ZV9wb29sPihBcnJheXMuYXNMaXN0KG5ldyBzdG9yYWdlX3Bvb2xbXSB7IHNlbGVjdERhdGFDZW50
ZXIgfSkpKTsKICAgICAgICAgICAgICAgIG1vZGVsLmdldERhdGFDZW50ZXIoKS5zZXRTZWxlY3Rl
ZEl0ZW0oc2VsZWN0RGF0YUNlbnRlcik7CiAgICAgICAgICAgICAgICBtb2RlbC5nZXREYXRhQ2Vu
dGVyKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAgICAgICAgbW9kZWwuZ2V0RGF0
YUNlbnRlcigpLnNldEluZm8oIkNhbm5vdCBjaG9vc2UgRGF0YSBDZW50ZXIgaW4gdHJlZSBjb250
ZXh0Iik7IC8vJE5PTi1OTFMtMSQKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBj
YXNlIENsdXN0ZXI6CiAgICAgICAgICAgIGNhc2UgVk1zOgogICAgICAgICAgICAgICAgVkRTR3Jv
dXAgY2x1c3RlciA9IChWRFNHcm91cCkgbW9kZWwuZ2V0QmVoYXZpb3IoKS5nZXRTeXN0ZW1UcmVl
U2VsZWN0ZWRJdGVtKCkuZ2V0RW50aXR5KCk7CiAgICAgICAgICAgICAgICBmb3IgKHN0b3JhZ2Vf
cG9vbCBkYyA6IGxpc3QpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYg
KGRjLmdldElkKCkuZXF1YWxzKGNsdXN0ZXIuZ2V0U3RvcmFnZVBvb2xJZCgpKSkKICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsLmdldERhdGFDZW50ZXIo
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRJdGVtcyhuZXcgQXJyYXlMaXN0
PHN0b3JhZ2VfcG9vbD4oQXJyYXlzLmFzTGlzdChuZXcgc3RvcmFnZV9wb29sW10geyBkYyB9KSkp
OwogICAgICAgICAgICAgICAgICAgICAgICBtb2RlbC5nZXREYXRhQ2VudGVyKCkuc2V0U2VsZWN0
ZWRJdGVtKGRjKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbW9kZWwuZ2V0RGF0YUNl
bnRlcigpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAgICAgICAgIG1vZGVsLmdldERh
dGFDZW50ZXIoKS5zZXRJbmZvKCJDYW5ub3QgY2hvb3NlIERhdGEgQ2VudGVyIGluIHRyZWUgY29u
dGV4dCIpOyAvLyROT04tTkxTLTEkCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
Y2FzZSBIb3N0OgogICAgICAgICAgICAgICAgVkRTIGhvc3QgPSAoVkRTKSBtb2RlbC5nZXRCZWhh
dmlvcigpLmdldFN5c3RlbVRyZWVTZWxlY3RlZEl0ZW0oKS5nZXRFbnRpdHkoKTsKICAgICAgICAg
ICAgICAgIGZvciAoc3RvcmFnZV9wb29sIGRjIDogbGlzdCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBpZiAoZGMuZ2V0SWQoKS5lcXVhbHMoaG9zdC5nZXRTdG9yYWdlUG9v
bElkKCkpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgbW9k
ZWwuZ2V0RGF0YUNlbnRlcigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldEl0
ZW1zKG5ldyBBcnJheUxpc3Q8c3RvcmFnZV9wb29sPihBcnJheXMuYXNMaXN0KG5ldyBzdG9yYWdl
X3Bvb2xbXSB7IGRjIH0pKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsLmdldERhdGFD
ZW50ZXIoKS5zZXRTZWxlY3RlZEl0ZW0oZGMpOwogICAgICAgICAgICAgICAgICAgICAgICBtb2Rl
bC5nZXREYXRhQ2VudGVyKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAgICAgICAg
ICAgICAgICBtb2RlbC5nZXREYXRhQ2VudGVyKCkuc2V0SW5mbygiQ2Fubm90IGNob29zZSBEYXRh
IENlbnRlciBpbiB0cmVlIGNvbnRleHQiKTsgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSBTdG9yYWdlOgogICAgICAgICAg
ICAgICAgc3RvcmFnZV9kb21haW5zIHN0b3JhZ2UgPSAoc3RvcmFnZV9kb21haW5zKSBtb2RlbC5n
ZXRCZWhhdmlvcigpLmdldFN5c3RlbVRyZWVTZWxlY3RlZEl0ZW0oKS5nZXRFbnRpdHkoKTsKICAg
ICAgICAgICAgICAgIGZvciAoc3RvcmFnZV9wb29sIGRjIDogbGlzdCkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGMuZ2V0SWQoKS5lcXVhbHMoc3RvcmFnZS5nZXRz
dG9yYWdlX3Bvb2xfaWQoKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgICAgICBtb2RlbC5nZXREYXRhQ2VudGVyKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAuc2V0SXRlbXMobmV3IEFycmF5TGlzdDxzdG9yYWdlX3Bvb2w+KEFycmF5cy5hc0xpc3Qo
bmV3IHN0b3JhZ2VfcG9vbFtdIHsgZGMgfSkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgbW9k
ZWwuZ2V0RGF0YUNlbnRlcigpLnNldFNlbGVjdGVkSXRlbShkYyk7CiAgICAgICAgICAgICAgICAg
ICAgICAgIG1vZGVsLmdldERhdGFDZW50ZXIoKS5zZXRJc0NoYW5nYWJsZShmYWxzZSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGVsLmdldERhdGFDZW50ZXIoKS5zZXRJbmZvKCJDYW5ub3Qg
Y2hvb3NlIERhdGEgQ2VudGVyIGluIHRyZWUgY29udGV4dCIpOyAvLyROT04tTkxTLTEkCiAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQog
ICAgICAgIHsKICAgICAgICAgICAgbW9kZWwuZ2V0RGF0YUNlbnRlcigpLnNldEl0ZW1zKGxpc3Qp
OwogICAgICAgICAgICBtb2RlbC5nZXREYXRhQ2VudGVyKCkuc2V0U2VsZWN0ZWRJdGVtKExpbnEu
Rmlyc3RPckRlZmF1bHQobGlzdCkpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgdm9pZCBT
ZXRDbHVzdGVycyhVbml0Vm1Nb2RlbCBtb2RlbCwgQXJyYXlMaXN0PFZEU0dyb3VwPiBjbHVzdGVy
cywgTkd1aWQgY2x1c3Rlckd1aWQpCiAgICB7CiAgICAgICAgVm1Nb2RlbEJlaGF2aW9yQmFzZSBi
ZWhhdmlvciA9IG1vZGVsLmdldEJlaGF2aW9yKCk7CiAgICAgICAgaWYgKGJlaGF2aW9yLmdldFN5
c3RlbVRyZWVTZWxlY3RlZEl0ZW0oKSAhPSBudWxsCiAgICAgICAgICAgICAgICAmJiBiZWhhdmlv
ci5nZXRTeXN0ZW1UcmVlU2VsZWN0ZWRJdGVtKCkuZ2V0VHlwZSgpICE9IFN5c3RlbVRyZWVJdGVt
VHlwZS5TeXN0ZW0pCiAgICAgICAgewogICAgICAgICAgICBzd2l0Y2ggKG1vZGVsLmdldEJlaGF2
aW9yKCkuZ2V0U3lzdGVtVHJlZVNlbGVjdGVkSXRlbSgpLmdldFR5cGUoKSkKICAgICAgICAgICAg
ewogICAgICAgICAgICBjYXNlIENsdXN0ZXI6CiAgICAgICAgICAgIGNhc2UgVk1zOgogICAgICAg
ICAgICAgICAgVkRTR3JvdXAgY2x1c3RlciA9IChWRFNHcm91cCkgYmVoYXZpb3IuZ2V0U3lzdGVt
VHJlZVNlbGVjdGVkSXRlbSgpLmdldEVudGl0eSgpOwogICAgICAgICAgICAgICAgbW9kZWwuZ2V0
Q2x1c3RlcigpLnNldEl0ZW1zKG5ldyBBcnJheUxpc3Q8VkRTR3JvdXA+KEFycmF5cy5hc0xpc3Qo
bmV3IFZEU0dyb3VwW10geyBjbHVzdGVyIH0pKSk7CiAgICAgICAgICAgICAgICBtb2RlbC5nZXRD
bHVzdGVyKCkuc2V0U2VsZWN0ZWRJdGVtKGNsdXN0ZXIpOwogICAgICAgICAgICAgICAgbW9kZWwu
Z2V0Q2x1c3RlcigpLnNldElzQ2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAgICAgICAgIG1vZGVs
LmdldENsdXN0ZXIoKS5zZXRJbmZvKCJDYW5ub3QgY2hvb3NlIENsdXN0ZXIgaW4gdHJlZSBjb250
ZXh0Iik7IC8vJE5PTi1OTFMtMSQKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBj
YXNlIEhvc3Q6CiAgICAgICAgICAgICAgICBWRFMgaG9zdCA9IChWRFMpIGJlaGF2aW9yLmdldFN5
c3RlbVRyZWVTZWxlY3RlZEl0ZW0oKS5nZXRFbnRpdHkoKTsKICAgICAgICAgICAgICAgIGZvciAo
VkRTR3JvdXAgaXRlckNsdXN0ZXIgOiBjbHVzdGVycykKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICBpZiAoaXRlckNsdXN0ZXIuZ2V0SWQoKS5lcXVhbHMoaG9zdC5nZXR2ZHNf
Z3JvdXBfaWQoKSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICBtb2RlbC5nZXRDbHVzdGVyKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0
SXRlbXMobmV3IEFycmF5TGlzdDxWRFNHcm91cD4oQXJyYXlzLmFzTGlzdChuZXcgVkRTR3JvdXBb
XSB7IGl0ZXJDbHVzdGVyIH0pKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsLmdldENs
dXN0ZXIoKS5zZXRTZWxlY3RlZEl0ZW0oaXRlckNsdXN0ZXIpOwogICAgICAgICAgICAgICAgICAg
ICAgICBtb2RlbC5nZXRDbHVzdGVyKCkuc2V0SXNDaGFuZ2FibGUoZmFsc2UpOwogICAgICAgICAg
ICAgICAgICAgICAgICBtb2RlbC5nZXRDbHVzdGVyKCkuc2V0SW5mbygiQ2Fubm90IGNob29zZSBD
bHVzdGVyIGluIHRyZWUgY29udGV4dCIpOyAvLyROT04tTkxTLTEkCiAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAg
bW9kZWwuZ2V0Q2x1c3RlcigpLnNldEl0ZW1zKGNsdXN0ZXJzKTsKICAgICAgICAgICAgICAgIGlm
IChjbHVzdGVyR3VpZCA9PSBudWxsKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICAgIG1vZGVsLmdldENsdXN0ZXIoKS5zZXRTZWxlY3RlZEl0ZW0oTGlucS5GaXJzdE9yRGVmYXVs
dChjbHVzdGVycykpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG1vZGVsLmdldENsdXN0ZXIoKS5zZXRT
ZWxlY3RlZEl0ZW0oTGlucS5GaXJzdE9yRGVmYXVsdChjbHVzdGVycywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5ldyBMaW5xLkNsdXN0ZXJQcmVkaWNhdGUoKEd1aWQpIGNsdXN0ZXJHdWlk
KSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
IH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKCiAgICAgICAgICAgIG1vZGVsLmdl
dENsdXN0ZXIoKS5zZXRJdGVtcyhjbHVzdGVycyk7CiAgICAgICAgICAgIGlmIChjbHVzdGVyR3Vp
ZCA9PSBudWxsKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtb2RlbC5nZXRDbHVzdGVy
KCkuc2V0U2VsZWN0ZWRJdGVtKExpbnEuRmlyc3RPckRlZmF1bHQoY2x1c3RlcnMpKTsKICAgICAg
ICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1v
ZGVsLmdldENsdXN0ZXIoKS5zZXRTZWxlY3RlZEl0ZW0oTGlucS5GaXJzdE9yRGVmYXVsdChjbHVz
dGVycywKICAgICAgICAgICAgICAgICAgICAgICAgbmV3IExpbnEuQ2x1c3RlclByZWRpY2F0ZSgo
R3VpZCkgY2x1c3Rlckd1aWQpKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAg
cHVibGljIGJvb2xlYW4gVmFsaWRhdGUoKQogICAgewogICAgICAgIGdldERhdGFDZW50ZXIoKS5W
YWxpZGF0ZVNlbGVjdGVkSXRlbShuZXcgSVZhbGlkYXRpb25bXSB7IG5ldyBOb3RFbXB0eVZhbGlk
YXRpb24oKSB9KTsKICAgICAgICBnZXRDbHVzdGVyKCkuVmFsaWRhdGVTZWxlY3RlZEl0ZW0obmV3
IElWYWxpZGF0aW9uW10geyBuZXcgTm90RW1wdHlWYWxpZGF0aW9uKCkgfSk7CiAgICAgICAgZ2V0
TWVtU2l6ZSgpLlZhbGlkYXRlRW50aXR5KG5ldyBJVmFsaWRhdGlvbltdIHsgbmV3IEJ5dGVTaXpl
VmFsaWRhdGlvbigpIH0pOwogICAgICAgIGdldE1pbkFsbG9jYXRlZE1lbW9yeSgpLlZhbGlkYXRl
RW50aXR5KG5ldyBJVmFsaWRhdGlvbltdIHsgbmV3IEJ5dGVTaXplVmFsaWRhdGlvbigpIH0pOwog
ICAgICAgIGdldE9TVHlwZSgpLlZhbGlkYXRlU2VsZWN0ZWRJdGVtKG5ldyBOb3RFbXB0eVZhbGlk
YXRpb25bXSB7IG5ldyBOb3RFbXB0eVZhbGlkYXRpb24oKSB9KTsKCiAgICAgICAgc3RvcmFnZV9w
b29sIGRhdGFDZW50ZXIgPSAoc3RvcmFnZV9wb29sKSBnZXREYXRhQ2VudGVyKCkuZ2V0U2VsZWN0
ZWRJdGVtKCk7CiAgICAgICAgaWYgKGRhdGFDZW50ZXIgIT0gbnVsbCAmJiBkYXRhQ2VudGVyLmdl
dFF1b3RhRW5mb3JjZW1lbnRUeXBlKCkgPT0gUXVvdGFFbmZvcmNlbWVudFR5cGVFbnVtLkhBUkRf
RU5GT1JDRU1FTlQpIHsKICAgICAgICAgICAgZ2V0UXVvdGEoKS5WYWxpZGF0ZVNlbGVjdGVkSXRl
bShuZXcgSVZhbGlkYXRpb25bXSB7IG5ldyBOb3RFbXB0eVF1b3RhVmFsaWRhdGlvbigpIH0pOwog
ICAgICAgIH0KCiAgICAgICAgZ2V0VG90YWxDUFVDb3JlcygpLlZhbGlkYXRlRW50aXR5KG5ldyBJ
VmFsaWRhdGlvbltdIHsKICAgICAgICAgICAgICAgIG5ldyBOb3RFbXB0eVZhbGlkYXRpb24oKSwK
ICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyVmFsaWRhdGlvbigxLCBiZWhhdmlvci5tYXhDcHVz
KSwKICAgICAgICAgICAgICAgIG5ldyBUb3RhbENwdUNvcmVzQ29tcG9zYWJsZVZhbGlkYXRpb24o
KSB9KTsKCiAgICAgICAgaWYgKGdldE9TVHlwZSgpLmdldElzVmFsaWQoKSkKICAgICAgICB7CiAg
ICAgICAgICAgIFZtT3NUeXBlIG9zVHlwZSA9IChWbU9zVHlwZSkgZ2V0T1NUeXBlKCkuZ2V0U2Vs
ZWN0ZWRJdGVtKCk7CiAgICAgICAgICAgIGdldE5hbWUoKS5WYWxpZGF0ZUVudGl0eSgKICAgICAg
ICAgICAgICAgICAgICBuZXcgSVZhbGlkYXRpb25bXSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuZXcgTm90RW1wdHlWYWxpZGF0aW9uKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXcgTGVuZ3RoVmFsaWRhdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Z2V0QmVoYXZpb3IoKSBpbnN0YW5jZW9mIFRlbXBsYXRlVm1Nb2RlbEJlaGF2aW9yIHx8IGdldEJl
aGF2aW9yKCkgaW5zdGFuY2VvZiBOZXdUZW1wbGF0ZVZtTW9kZWxCZWhhdmlvcikKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBWTV9URU1QTEFURV9OQU1FX01BWF9MSU1JVCA6
IEFzeW5jRGF0YVByb3ZpZGVyLklzV2luZG93c09zVHlwZShvc1R5cGUpID8gV0lORE9XU19WTV9O
QU1FX01BWF9MSU1JVCA6IE5PTl9XSU5ET1dTX1ZNX05BTUVfTUFYX0xJTUlUKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5ldyBJMThOTmFtZVZhbGlkYXRpb24oKQogICAgICAgICAgICAg
ICAgICAgIH0pOwoKICAgICAgICAgICAgZ2V0RGVzY3JpcHRpb24oKS5WYWxpZGF0ZUVudGl0eSgK
ICAgICAgICAgICAgICAgICAgICBuZXcgSVZhbGlkYXRpb25bXSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXcgTGVuZ3RoVmFsaWRhdGlvbihERVNDUklQVElPTl9NQVhfTElNSVQpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFNwZWNpYWxBc2NpaUkxOE5Pck5vbmVWYWxp
ZGF0aW9uKCkKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGJvb2xlYW4gaXM2
NE9zVHlwZSA9CiAgICAgICAgICAgICAgICAgICAgKG9zVHlwZSA9PSBWbU9zVHlwZS5PdGhlciB8
fCBvc1R5cGUgPT0gVm1Pc1R5cGUuT3RoZXJMaW51eCB8fCBBc3luY0RhdGFQcm92aWRlci5JczY0
Yml0T3NUeXBlKG9zVHlwZSkpOwogICAgICAgICAgICBpbnQgbWF4TWVtU2l6ZSA9IGlzNjRPc1R5
cGUgPyBnZXRfTWF4TWVtU2l6ZTY0KCkgOiBnZXRfTWF4TWVtU2l6ZTMyKCk7CgogICAgICAgICAg
ICBWYWxpZGF0ZU1lbW9yeVNpemUoZ2V0TWVtU2l6ZSgpLCBtYXhNZW1TaXplLCBfbWluTWVtU2l6
ZSk7CiAgICAgICAgICAgIGlmICghKHRoaXMuZ2V0QmVoYXZpb3IoKSBpbnN0YW5jZW9mIFRlbXBs
YXRlVm1Nb2RlbEJlaGF2aW9yKSkgewogICAgICAgICAgICAgICAgLy8gTWluaW11bSAnUGh5c2lj
YWwgTWVtb3J5IEd1YXJhbnRlZWQnIGlzIDFNQgogICAgICAgICAgICAgICAgVmFsaWRhdGVNZW1v
cnlTaXplKGdldE1pbkFsbG9jYXRlZE1lbW9yeSgpLCAoSW50ZWdlcikgZ2V0TWVtU2l6ZSgpLmdl
dEVudGl0eSgpLCAxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKChCb29s
ZWFuKSBnZXRJc0F1dG9Bc3NpZ24oKS5nZXRFbnRpdHkoKSA9PSBmYWxzZSAmJiAoQm9vbGVhbikg
Z2V0UnVuVk1PblRydXN0ZWRIb3N0KCkuZ2V0RW50aXR5KCkgPT0gZmFsc2UgKSB7CiAgICAgICAg
ICAgIGdldERlZmF1bHRIb3N0KCkuVmFsaWRhdGVTZWxlY3RlZEl0ZW0obmV3IElWYWxpZGF0aW9u
W10geyBuZXcgTm90RW1wdHlWYWxpZGF0aW9uKCkgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgZ2V0RGVmYXVsdEhvc3QoKS5zZXRJc1ZhbGlkKHRydWUpOwogICAgICAgIH0KCiAgICAg
ICAgZ2V0VGVtcGxhdGUoKS5WYWxpZGF0ZVNlbGVjdGVkSXRlbShuZXcgSVZhbGlkYXRpb25bXSB7
IG5ldyBOb3RFbXB0eVZhbGlkYXRpb24oKSB9KTsKICAgICAgICBnZXREaXNrc0FsbG9jYXRpb25N
b2RlbCgpLlZhbGlkYXRlRW50aXR5KG5ldyBJVmFsaWRhdGlvbltdIHt9KTsKCiAgICAgICAgZ2V0
Q2RJbWFnZSgpLnNldElzVmFsaWQodHJ1ZSk7CiAgICAgICAgaWYgKGdldENkSW1hZ2UoKS5nZXRJ
c0NoYW5nYWJsZSgpKSB7CiAgICAgICAgICAgIGdldENkSW1hZ2UoKS5WYWxpZGF0ZVNlbGVjdGVk
SXRlbShuZXcgSVZhbGlkYXRpb25bXSB7IG5ldyBOb3RFbXB0eVZhbGlkYXRpb24oKSB9KTsKICAg
ICAgICB9CgogICAgICAgIGdldEtlcm5lbF9wYXRoKCkuc2V0SXNWYWxpZCh0cnVlKTsKICAgICAg
ICBnZXRLZXJuZWxfcGFyYW1ldGVycygpLnNldElzVmFsaWQodHJ1ZSk7CiAgICAgICAgZ2V0SW5p
dHJkX3BhdGgoKS5zZXRJc1ZhbGlkKHRydWUpOwogICAgICAgIGlmIChnZXRLZXJuZWxfcGF0aCgp
LmdldEVudGl0eSgpID09IG51bGwpIHsKICAgICAgICAgICAgZ2V0S2VybmVsX3BhdGgoKS5zZXRF
bnRpdHkoIiIpOyAvLyROT04tTkxTLTEkCiAgICAgICAgfQogICAgICAgIGlmIChnZXRLZXJuZWxf
cGFyYW1ldGVycygpLmdldEVudGl0eSgpID09IG51bGwpIHsKICAgICAgICAgICAgZ2V0S2VybmVs
X3BhcmFtZXRlcnMoKS5zZXRFbnRpdHkoIiIpOyAvLyROT04tTkxTLTEkCiAgICAgICAgfQogICAg
ICAgIGlmIChnZXRJbml0cmRfcGF0aCgpLmdldEVudGl0eSgpID09IG51bGwpIHsKICAgICAgICAg
ICAgZ2V0SW5pdHJkX3BhdGgoKS5zZXRFbnRpdHkoIiIpOyAvLyROT04tTkxTLTEkCiAgICAgICAg
fQoKICAgICAgICBpZiAoaXNMaW51eF9VbmFzc2lnbl9Vbmtub3duT1MpIHsKICAgICAgICAgICAg
Z2V0S2VybmVsX3BhdGgoKS5WYWxpZGF0ZUVudGl0eShuZXcgSVZhbGlkYXRpb25bXSB7IG5ldyBO
b1RyaW1taW5nV2hpdGVzcGFjZXNWYWxpZGF0aW9uKCkgfSk7CiAgICAgICAgICAgIGdldEluaXRy
ZF9wYXRoKCkuVmFsaWRhdGVFbnRpdHkobmV3IElWYWxpZGF0aW9uW10geyBuZXcgTm9UcmltbWlu
Z1doaXRlc3BhY2VzVmFsaWRhdGlvbigpIH0pOwogICAgICAgICAgICBnZXRLZXJuZWxfcGFyYW1l
dGVycygpLlZhbGlkYXRlRW50aXR5KG5ldyBJVmFsaWRhdGlvbltdIHsgbmV3IE5vVHJpbW1pbmdX
aGl0ZXNwYWNlc1ZhbGlkYXRpb24oKSB9KTsKCiAgICAgICAgICAgIFN0cmluZyBrZXJuZWxQYXRo
ID0gKFN0cmluZykgZ2V0S2VybmVsX3BhdGgoKS5nZXRFbnRpdHkoKTsKICAgICAgICAgICAgU3Ry
aW5nIGluaXRyZFBhdGggPSAoU3RyaW5nKSBnZXRJbml0cmRfcGF0aCgpLmdldEVudGl0eSgpOwog
ICAgICAgICAgICBTdHJpbmcga2VybmVsUGFyYW1zID0gKFN0cmluZykgZ2V0S2VybmVsX3BhcmFt
ZXRlcnMoKS5nZXRFbnRpdHkoKTsKCiAgICAgICAgICAgIGlmICgoa2VybmVsUGFyYW1zLmxlbmd0
aCgpID4gMCB8fCBpbml0cmRQYXRoLmxlbmd0aCgpID4gMCkgJiYga2VybmVsUGF0aC5sZW5ndGgo
KSA9PSAwKSB7CiAgICAgICAgICAgICAgICBib29sZWFuIGtlcm5lbFBhcmFtSW52YWxpZCA9IGZh
bHNlOwogICAgICAgICAgICAgICAgYm9vbGVhbiBpbmV0ZFBhdGhJbnZhbGlkID0gZmFsc2U7Cgog
ICAgICAgICAgICAgICAgaWYgKGtlcm5lbFBhcmFtcy5sZW5ndGgoKSA+IDApIHsKICAgICAgICAg
ICAgICAgICAgICBnZXRLZXJuZWxfcGFyYW1ldGVycygpLnNldElzVmFsaWQoZmFsc2UpOwogICAg
ICAgICAgICAgICAgICAgIGtlcm5lbFBhcmFtSW52YWxpZCA9IHRydWU7CiAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICBpZiAoaW5pdHJkUGF0aC5sZW5ndGgoKSA+IDApIHsKICAgICAg
ICAgICAgICAgICAgICBnZXRJbml0cmRfcGF0aCgpLnNldElzVmFsaWQoZmFsc2UpOwogICAgICAg
ICAgICAgICAgICAgIGluZXRkUGF0aEludmFsaWQgPSB0cnVlOwogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPQogICAgICAgICAgICAgICAgICAgICAgICBDb25z
dGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAuZ2V0TWVzc2FnZXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbnZhbGlk
UGF0aChrZXJuZWxQYXJhbUludmFsaWQgPyBDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb25zdGFudHMoKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmtlcm5lbEludmFsaWQoKSA6
ICIiLCAvLyROT04tTkxTLTEkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrZXJuZWxQYXJhbUludmFsaWQgJiYgaW5ldGRQYXRoSW52YWxpZCA/IENvbnN0YW50c01hbmFn
ZXIuZ2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAuZ2V0Q29uc3RhbnRzKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLm9yKCkgOiAiIiwgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW5ldGRQYXRoSW52YWxpZCA/IENvbnN0YW50c01hbmFn
ZXIuZ2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAuZ2V0Q29uc3RhbnRzKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLmluZXRkSW52YWxpZCgpIDogIiIpOyAvLyROT04tTkxTLTEkCgogICAg
ICAgICAgICAgICAgZ2V0S2VybmVsX3BhdGgoKS5zZXRJc1ZhbGlkKGZhbHNlKTsKICAgICAgICAg
ICAgICAgIGdldEluaXRyZF9wYXRoKCkuZ2V0SW52YWxpZGl0eVJlYXNvbnMoKS5hZGQobXNnKTsK
ICAgICAgICAgICAgICAgIGdldEtlcm5lbF9wYXJhbWV0ZXJzKCkuZ2V0SW52YWxpZGl0eVJlYXNv
bnMoKS5hZGQobXNnKTsKICAgICAgICAgICAgICAgIGdldEtlcm5lbF9wYXRoKCkuZ2V0SW52YWxp
ZGl0eVJlYXNvbnMoKS5hZGQobXNnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
Ym9vbGVhbiBjdXN0b21Qcm9wZXJ0eVNoZWV0VmFsaWQgPSBnZXRDdXN0b21Qcm9wZXJ0eVNoZWV0
KCkudmFsaWRhdGUoKTsKCiAgICAgICAgc2V0SXNCb290U2VxdWVuY2VUYWJWYWxpZCh0cnVlKTsK
ICAgICAgICBzZXRJc0FsbG9jYXRpb25UYWJWYWxpZChnZXRJc0Jvb3RTZXF1ZW5jZVRhYlZhbGlk
KCkpOwogICAgICAgIHNldElzRGlzcGxheVRhYlZhbGlkKGdldElzQWxsb2NhdGlvblRhYlZhbGlk
KCkpOwogICAgICAgIHNldElzRmlyc3RSdW5UYWJWYWxpZChnZXRJc0Rpc3BsYXlUYWJWYWxpZCgp
KTsKICAgICAgICBzZXRJc0dlbmVyYWxUYWJWYWxpZChnZXRJc0ZpcnN0UnVuVGFiVmFsaWQoKSk7
CgogICAgICAgIHNldElzR2VuZXJhbFRhYlZhbGlkKGdldE5hbWUoKS5nZXRJc1ZhbGlkKCkgJiYg
Z2V0RGVzY3JpcHRpb24oKS5nZXRJc1ZhbGlkKCkgJiYgZ2V0RGF0YUNlbnRlcigpLmdldElzVmFs
aWQoKQogICAgICAgICAgICAgICAgJiYgZ2V0VGVtcGxhdGUoKS5nZXRJc1ZhbGlkKCkgJiYgZ2V0
Q2x1c3RlcigpLmdldElzVmFsaWQoKSAmJiBnZXRNZW1TaXplKCkuZ2V0SXNWYWxpZCgpCiAgICAg
ICAgICAgICAgICAmJiBnZXRNaW5BbGxvY2F0ZWRNZW1vcnkoKS5nZXRJc1ZhbGlkKCkpOwoKICAg
ICAgICBzZXRJc0ZpcnN0UnVuVGFiVmFsaWQoZ2V0RG9tYWluKCkuZ2V0SXNWYWxpZCgpICYmIGdl
dFRpbWVab25lKCkuZ2V0SXNWYWxpZCgpKTsKICAgICAgICBzZXRJc0Rpc3BsYXlUYWJWYWxpZChn
ZXRVc2JQb2xpY3koKS5nZXRJc1ZhbGlkKCkgJiYgZ2V0TnVtT2ZNb25pdG9ycygpLmdldElzVmFs
aWQoKSk7CiAgICAgICAgc2V0SXNIb3N0VGFiVmFsaWQoZ2V0RGVmYXVsdEhvc3QoKS5nZXRJc1Zh
bGlkKCkpOwogICAgICAgIHNldElzQWxsb2NhdGlvblRhYlZhbGlkKGdldERpc2tzQWxsb2NhdGlv
bk1vZGVsKCkuZ2V0SXNWYWxpZCgpICYmIGdldE1pbkFsbG9jYXRlZE1lbW9yeSgpLmdldElzVmFs
aWQoKSk7CiAgICAgICAgc2V0SXNCb290U2VxdWVuY2VUYWJWYWxpZChnZXRDZEltYWdlKCkuZ2V0
SXNWYWxpZCgpICYmIGdldEtlcm5lbF9wYXRoKCkuZ2V0SXNWYWxpZCgpKTsKICAgICAgICBzZXRJ
c0N1c3RvbVByb3BlcnRpZXNUYWJWYWxpZChjdXN0b21Qcm9wZXJ0eVNoZWV0VmFsaWQpOwoKICAg
ICAgICByZXR1cm4gZ2V0TmFtZSgpLmdldElzVmFsaWQoKSAmJiBnZXREZXNjcmlwdGlvbigpLmdl
dElzVmFsaWQoKSAmJiBnZXREYXRhQ2VudGVyKCkuZ2V0SXNWYWxpZCgpCiAgICAgICAgICAgICAg
ICAmJiBnZXREaXNrc0FsbG9jYXRpb25Nb2RlbCgpLmdldElzVmFsaWQoKSAmJiBnZXRUZW1wbGF0
ZSgpLmdldElzVmFsaWQoKSAmJiBnZXRDbHVzdGVyKCkuZ2V0SXNWYWxpZCgpCiAgICAgICAgICAg
ICAgICAmJiBnZXREZWZhdWx0SG9zdCgpLmdldElzVmFsaWQoKSAmJiBnZXRNZW1TaXplKCkuZ2V0
SXNWYWxpZCgpICYmIGdldE1pbkFsbG9jYXRlZE1lbW9yeSgpLmdldElzVmFsaWQoKQogICAgICAg
ICAgICAgICAgJiYgZ2V0TnVtT2ZNb25pdG9ycygpLmdldElzVmFsaWQoKSAmJiBnZXREb21haW4o
KS5nZXRJc1ZhbGlkKCkgJiYgZ2V0VXNiUG9saWN5KCkuZ2V0SXNWYWxpZCgpCiAgICAgICAgICAg
ICAgICAmJiBnZXRUaW1lWm9uZSgpLmdldElzVmFsaWQoKSAmJiBnZXRPU1R5cGUoKS5nZXRJc1Zh
bGlkKCkgJiYgZ2V0Q2RJbWFnZSgpLmdldElzVmFsaWQoKQogICAgICAgICAgICAgICAgJiYgZ2V0
S2VybmVsX3BhdGgoKS5nZXRJc1ZhbGlkKCkKICAgICAgICAgICAgICAgICYmIGdldEtlcm5lbF9w
YXJhbWV0ZXJzKCkuZ2V0SXNWYWxpZCgpICYmIGdldEluaXRyZF9wYXRoKCkuZ2V0SXNWYWxpZCgp
CiAgICAgICAgICAgICAgICAmJiBiZWhhdmlvci5WYWxpZGF0ZSgpCiAgICAgICAgICAgICAgICAm
JiBjdXN0b21Qcm9wZXJ0eVNoZWV0VmFsaWQgJiYgZ2V0UXVvdGEoKS5nZXRJc1ZhbGlkKCk7Cgog
ICAgfQoKICAgIGNsYXNzIFRvdGFsQ3B1Q29yZXNDb21wb3NhYmxlVmFsaWRhdGlvbiBpbXBsZW1l
bnRzIElWYWxpZGF0aW9uIHsKCiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgcHVibGljIFZhbGlk
YXRpb25SZXN1bHQgVmFsaWRhdGUoT2JqZWN0IHZhbHVlKSB7CiAgICAgICAgICAgIGJvb2xlYW4g
aXNPayA9IGJlaGF2aW9yLmlzTnVtT2ZTb2NrZXRzQ29ycmVjdChJbnRlZ2VyLnBhcnNlSW50KGdl
dFRvdGFsQ1BVQ29yZXMoKS5nZXRFbnRpdHkoKS50b1N0cmluZygpKSk7CiAgICAgICAgICAgIFZh
bGlkYXRpb25SZXN1bHQgcmVzID0gbmV3IFZhbGlkYXRpb25SZXN1bHQoKTsKICAgICAgICAgICAg
cmVzLnNldFN1Y2Nlc3MoaXNPayk7CiAgICAgICAgICAgIHJlcy5zZXRSZWFzb25zKEFycmF5cy5h
c0xpc3QoQ29uc3RhbnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpCiAgICAgICAgICAgICAgICAgICAg
LmdldE1lc3NhZ2VzKCkKICAgICAgICAgICAgICAgICAgICAuaW5jb3JyZWN0VkNQVU51bWJlcigp
KSk7CiAgICAgICAgICAgIHJldHVybiByZXM7CgogICAgICAgIH0KCiAgICB9CgogICAgcHJpdmF0
ZSB2b2lkIFZhbGlkYXRlTWVtb3J5U2l6ZShFbnRpdHlNb2RlbCBtb2RlbCwgaW50IG1heE1lbVNp
emUsIGludCBtaW5NZW1TaXplKQogICAgewogICAgICAgIGJvb2xlYW4gaXNWYWxpZCA9IGZhbHNl
OwoKICAgICAgICBpbnQgbWVtU2l6ZSA9IChJbnRlZ2VyKSBtb2RlbC5nZXRFbnRpdHkoKTsKCiAg
ICAgICAgaWYgKG1lbVNpemUgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIG1vZGVsLmdldElu
dmFsaWRpdHlSZWFzb25zKCkuYWRkKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKQogICAg
ICAgICAgICAgICAgICAgIC5nZXRNZXNzYWdlcygpCiAgICAgICAgICAgICAgICAgICAgLm1lbVNp
emVCZXR3ZWVuKG1pbk1lbVNpemUsIG1heE1lbVNpemUpKTsKICAgICAgICB9CiAgICAgICAgZWxz
ZSBpZiAobWVtU2l6ZSA+IG1heE1lbVNpemUpCiAgICAgICAgewogICAgICAgICAgICBtb2RlbC5n
ZXRJbnZhbGlkaXR5UmVhc29ucygpLmFkZChDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkK
ICAgICAgICAgICAgICAgICAgICAuZ2V0TWVzc2FnZXMoKQogICAgICAgICAgICAgICAgICAgIC5t
YXhNZW1TaXplSXMobWF4TWVtU2l6ZSkpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChtZW1T
aXplIDwgbWluTWVtU2l6ZSkKICAgICAgICB7CiAgICAgICAgICAgIG1vZGVsLmdldEludmFsaWRp
dHlSZWFzb25zKCkuYWRkKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKQogICAgICAgICAg
ICAgICAgICAgIC5nZXRNZXNzYWdlcygpCiAgICAgICAgICAgICAgICAgICAgLm1pbk1lbVNpemVJ
cyhtaW5NZW1TaXplKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAg
ICAgIGlzVmFsaWQgPSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgbW9kZWwuc2V0SXNWYWxpZChp
c1ZhbGlkKTsKICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sTGlzdE1v
ZGVsIHBvb2xUeXBlOwoKICAgIHB1YmxpYyBMaXN0TW9kZWwgZ2V0UG9vbFR5cGUoKQogICAgewog
ICAgICAgIHJldHVybiBwb29sVHlwZTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgdm9pZCBzZXRQb29s
VHlwZShOb3RDaGFuZ2FibGVGb3JWbUluUG9vbExpc3RNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAg
ICBwb29sVHlwZSA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1J
blBvb2xFbnRpdHlNb2RlbCBudW1PZkRlc2t0b3BzOwoKICAgIHB1YmxpYyBFbnRpdHlNb2RlbCBn
ZXROdW1PZkRlc2t0b3BzKCkKICAgIHsKICAgICAgICByZXR1cm4gbnVtT2ZEZXNrdG9wczsKICAg
IH0KCiAgICBwcm90ZWN0ZWQgdm9pZCBzZXROdW1PZkRlc2t0b3BzKE5vdENoYW5nYWJsZUZvclZt
SW5Qb29sRW50aXR5TW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgbnVtT2ZEZXNrdG9wcyA9IHZh
bHVlOwogICAgfQoKICAgIHByaXZhdGUgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xFbnRpdHlNb2Rl
bCBhc3NpZ25lZFZtczsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0QXNzaWduZWRWbXMoKQog
ICAgewogICAgICAgIHJldHVybiBhc3NpZ25lZFZtczsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBz
ZXRBc3NpZ25lZFZtcyhOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIHZhbHVlKQog
ICAgewogICAgICAgIGFzc2lnbmVkVm1zID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBib29s
ZWFuIGlzUG9vbFRhYlZhbGlkOwoKICAgIHB1YmxpYyBib29sZWFuIGdldElzUG9vbFRhYlZhbGlk
KCkKICAgIHsKICAgICAgICByZXR1cm4gaXNQb29sVGFiVmFsaWQ7CiAgICB9CgogICAgcHVibGlj
IHZvaWQgc2V0SXNQb29sVGFiVmFsaWQoYm9vbGVhbiB2YWx1ZSkKICAgIHsKICAgICAgICBpZiAo
aXNQb29sVGFiVmFsaWQgIT0gdmFsdWUpCiAgICAgICAgewogICAgICAgICAgICBpc1Bvb2xUYWJW
YWxpZCA9IHZhbHVlOwogICAgICAgICAgICBPblByb3BlcnR5Q2hhbmdlZChuZXcgUHJvcGVydHlD
aGFuZ2VkRXZlbnRBcmdzKCJJc1Bvb2xUYWJWYWxpZCIpKTsgLy8kTk9OLU5MUy0xJAogICAgICAg
IH0KICAgIH0KCiAgICBwcml2YXRlIE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwg
cHJlc3RhcnRlZFZtczsKCiAgICBwdWJsaWMgRW50aXR5TW9kZWwgZ2V0UHJlc3RhcnRlZFZtcygp
IHsKICAgICAgICByZXR1cm4gcHJlc3RhcnRlZFZtczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgdm9p
ZCBzZXRQcmVzdGFydGVkVm1zKE5vdENoYW5nYWJsZUZvclZtSW5Qb29sRW50aXR5TW9kZWwgdmFs
dWUpIHsKICAgICAgICBwcmVzdGFydGVkVm1zID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBT
dHJpbmcgcHJlc3RhcnRlZFZtc0hpbnQ7CgogICAgcHVibGljIFN0cmluZyBnZXRQcmVzdGFydGVk
Vm1zSGludCgpIHsKICAgICAgICByZXR1cm4gcHJlc3RhcnRlZFZtc0hpbnQ7CiAgICB9CgogICAg
cHVibGljIHZvaWQgc2V0UHJlc3RhcnRlZFZtc0hpbnQoU3RyaW5nIHZhbHVlKSB7CiAgICAgICAg
aWYgKHByZXN0YXJ0ZWRWbXNIaW50ICE9IHZhbHVlKSB7CiAgICAgICAgICAgIHByZXN0YXJ0ZWRW
bXNIaW50ID0gdmFsdWU7CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQcm9wZXJ0
eUNoYW5nZWRFdmVudEFyZ3MoIlByZXN0YXJ0ZWRWbXNIaW50IikpOyAvLyROT04tTkxTLTEkCiAg
ICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgY2xhc3MgTm90Q2hhbmdhYmxlRm9yVm1JblBvb2xM
aXN0TW9kZWwgZXh0ZW5kcyBMaXN0TW9kZWwgewogICAgICAgIEBPdmVycmlkZQogICAgICAgIHB1
YmxpYyB2b2lkIHNldElzQ2hhbmdhYmxlKGJvb2xlYW4gdmFsdWUpIHsKICAgICAgICAgICAgaWYg
KCFpc1ZtQXR0YWNoZWRUb1Bvb2woKSkKICAgICAgICAgICAgICAgIHN1cGVyLnNldElzQ2hhbmdh
YmxlKHZhbHVlKTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBjbGFzcyBOb3RDaGFuZ2Fi
bGVGb3JWbUluUG9vbEVudGl0eU1vZGVsIGV4dGVuZHMgRW50aXR5TW9kZWwgewogICAgICAgIEBP
dmVycmlkZQogICAgICAgIHB1YmxpYyB2b2lkIHNldElzQ2hhbmdhYmxlKGJvb2xlYW4gdmFsdWUp
IHsKICAgICAgICAgICAgaWYgKCFpc1ZtQXR0YWNoZWRUb1Bvb2woKSkKICAgICAgICAgICAgICAg
IHN1cGVyLnNldElzQ2hhbmdhYmxlKHZhbHVlKTsKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0
ZSBjbGFzcyBOb3RDaGFuZ2FibGVGb3JWbUluUG9vbEtleVZhbHVlTW9kZWwgZXh0ZW5kcyBLZXlW
YWx1ZU1vZGVsIHsKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgdm9pZCBzZXRJc0No
YW5nYWJsZShib29sZWFuIHZhbHVlKSB7CiAgICAgICAgICAgIGlmICghaXNWbUF0dGFjaGVkVG9Q
b29sKCkpCiAgICAgICAgICAgICAgICBzdXBlci5zZXRJc0NoYW5nYWJsZSh2YWx1ZSk7CiAgICAg
ICAgfQogICAgfQp9Cg==
--_005_C5A0092C63E939488005F15F736A8112097A57B9SHSMSX101ccrcor_
Content-Type: application/octet-stream; name="AbstractVmPopupWidget.java"
Content-Description: AbstractVmPopupWidget.java
Content-Disposition: attachment; filename="AbstractVmPopupWidget.java";
size=44510; creation-date="Tue, 12 Mar 2013 08:33:20 GMT";
modification-date="Tue, 12 Mar 2013 08:24:49 GMT"
Content-Transfer-Encoding: base64
cGFja2FnZSBvcmcub3ZpcnQuZW5naW5lLnVpLmNvbW1vbi53aWRnZXQudWljb21tb24ucG9wdXA7
CgppbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKaW1wb3J0IGphdmEudXRpbC5MaXN0OwppbXBv
cnQgamF2YS51dGlsLk1hcC5FbnRyeTsKCmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29t
bW9uLmJ1c2luZXNzZW50aXRpZXMuRGlzazsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5j
b21tb24uYnVzaW5lc3NlbnRpdGllcy5EaXNrLkRpc2tTdG9yYWdlVHlwZTsKaW1wb3J0IG9yZy5v
dmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy5EaXNrSW1hZ2U7CmltcG9y
dCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNzZW50aXRpZXMuSW1hZ2VTdGF0
dXM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNzZW50aXRpZXMu
UXVvdGE7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNzZW50aXRp
ZXMuVXNiUG9saWN5OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNpbmVz
c2VudGl0aWVzLlZEUzsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5l
c3NlbnRpdGllcy5WRFNHcm91cDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24u
YnVzaW5lc3NlbnRpdGllcy5WbVRlbXBsYXRlOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3Jl
LmNvbW1vbi5idXNpbmVzc2VudGl0aWVzLlZtVHlwZTsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUu
Y29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy5zdG9yYWdlX3Bvb2w7CmltcG9ydCBvcmcub3Zp
cnQuZW5naW5lLmNvcmUuY29tcGF0LkV2ZW50OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3Jl
LmNvbXBhdC5FdmVudEFyZ3M7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tcGF0LklF
dmVudExpc3RlbmVyOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbXBhdC5Qcm9wZXJ0
eUNoYW5nZWRFdmVudEFyZ3M7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLmNvbW1vbi5Db21t
b25BcHBsaWNhdGlvbkNvbnN0YW50czsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuY29tbW9u
LkNvbW1vbkFwcGxpY2F0aW9uTWVzc2FnZXM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLmNv
bW1vbi5Db21tb25BcHBsaWNhdGlvblJlc291cmNlczsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUu
dWkuY29tbW9uLmlkaGFuZGxlci5XaXRoRWxlbWVudElkOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2lu
ZS51aS5jb21tb24ud2lkZ2V0LkFsaWduOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS5jb21t
b24ud2lkZ2V0LmRpYWxvZy5BZHZhbmNlZFBhcmFtZXRlcnNFeHBhbmRlcjsKaW1wb3J0IG9yZy5v
dmlydC5lbmdpbmUudWkuY29tbW9uLndpZGdldC5kaWFsb2cuSW5mb0ljb247CmltcG9ydCBvcmcu
b3ZpcnQuZW5naW5lLnVpLmNvbW1vbi53aWRnZXQuZGlhbG9nLnRhYi5EaWFsb2dUYWI7CmltcG9y
dCBvcmcub3ZpcnQuZW5naW5lLnVpLmNvbW1vbi53aWRnZXQuZGlhbG9nLnRhYi5EaWFsb2dUYWJQ
YW5lbDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuY29tbW9uLndpZGdldC5lZGl0b3IuRW50
aXR5TW9kZWxDZWxsVGFibGU7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLmNvbW1vbi53aWRn
ZXQuZWRpdG9yLkVudGl0eU1vZGVsQ2hlY2tCb3hFZGl0b3I7CmltcG9ydCBvcmcub3ZpcnQuZW5n
aW5lLnVpLmNvbW1vbi53aWRnZXQuZWRpdG9yLkVudGl0eU1vZGVsUmFkaW9CdXR0b25FZGl0b3I7
CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLmNvbW1vbi53aWRnZXQuZWRpdG9yLkVudGl0eU1v
ZGVsVGV4dEJveEVkaXRvcjsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuY29tbW9uLndpZGdl
dC5lZGl0b3IuRW50aXR5TW9kZWxUZXh0Qm94T25seUVkaXRvcjsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUudWkuY29tbW9uLndpZGdldC5lZGl0b3IuTGlzdE1vZGVsTGlzdEJveEVkaXRvcjsKaW1w
b3J0IG9yZy5vdmlydC5lbmdpbmUudWkuY29tbW9uLndpZGdldC5mb3JtLmtleV92YWx1ZS5LZXlW
YWx1ZVdpZGdldDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuY29tbW9uLndpZGdldC5wYXJz
ZXIuTWVtb3J5U2l6ZVBhcnNlcjsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuY29tbW9uLndp
ZGdldC5yZW5kZXJlci5FbnVtUmVuZGVyZXI7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLmNv
bW1vbi53aWRnZXQucmVuZGVyZXIuTWVtb3J5U2l6ZVJlbmRlcmVyOwppbXBvcnQgb3JnLm92aXJ0
LmVuZ2luZS51aS5jb21tb24ud2lkZ2V0LnJlbmRlcmVyLk51bGxTYWZlUmVuZGVyZXI7CmltcG9y
dCBvcmcub3ZpcnQuZW5naW5lLnVpLmNvbW1vbi53aWRnZXQudGFibGUuY29sdW1uLlRleHRDb2x1
bW5XaXRoVG9vbHRpcDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuY29tbW9uLndpZGdldC51
aWNvbW1vbi5zdG9yYWdlLkRpc2tzQWxsb2NhdGlvblZpZXc7CmltcG9ydCBvcmcub3ZpcnQuZW5n
aW5lLnVpLnVpY29tbW9ud2ViLm1vZGVscy5FbnRpdHlNb2RlbDsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUudWkudWljb21tb253ZWIubW9kZWxzLkxpc3RNb2RlbDsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUudWkudWljb21tb253ZWIubW9kZWxzLnZtcy5EaXNrTW9kZWw7CmltcG9ydCBvcmcub3Zp
cnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLm1vZGVscy52bXMuVW5pdFZtTW9kZWw7CmltcG9ydCBv
cmcub3ZpcnQuZW5naW5lLnVpLnVpY29tcGF0LkVudW1UcmFuc2xhdG9yOwppbXBvcnQgb3JnLm92
aXJ0LmVuZ2luZS51aS51aWNvbXBhdC5leHRlcm5hbC5TdHJpbmdVdGlsczsKCmltcG9ydCBjb20u
Z29vZ2xlLmd3dC5jb3JlLmNsaWVudC5HV1Q7CmltcG9ydCBjb20uZ29vZ2xlLmd3dC5lZGl0b3Iu
Y2xpZW50LlNpbXBsZUJlYW5FZGl0b3JEcml2ZXI7CmltcG9ydCBjb20uZ29vZ2xlLmd3dC5ldmVu
dC5kb20uY2xpZW50LkNsaWNrRXZlbnQ7CmltcG9ydCBjb20uZ29vZ2xlLmd3dC5ldmVudC5kb20u
Y2xpZW50LkNsaWNrSGFuZGxlcjsKaW1wb3J0IGNvbS5nb29nbGUuZ3d0LmV2ZW50LmxvZ2ljYWwu
c2hhcmVkLlZhbHVlQ2hhbmdlRXZlbnQ7CmltcG9ydCBjb20uZ29vZ2xlLmd3dC5ldmVudC5sb2dp
Y2FsLnNoYXJlZC5WYWx1ZUNoYW5nZUhhbmRsZXI7CmltcG9ydCBjb20uZ29vZ2xlLmd3dC5yZXNv
dXJjZXMuY2xpZW50LkNzc1Jlc291cmNlOwppbXBvcnQgY29tLmdvb2dsZS5nd3Quc2FmZWh0bWwu
Y2xpZW50LlNhZmVIdG1sVGVtcGxhdGVzOwppbXBvcnQgY29tLmdvb2dsZS5nd3Quc2FmZWh0bWwu
c2hhcmVkLlNhZmVIdG1sOwppbXBvcnQgY29tLmdvb2dsZS5nd3QudGV4dC5zaGFyZWQuQWJzdHJh
Y3RSZW5kZXJlcjsKaW1wb3J0IGNvbS5nb29nbGUuZ3d0LnVpYmluZGVyLmNsaWVudC5VaUJpbmRl
cjsKaW1wb3J0IGNvbS5nb29nbGUuZ3d0LnVpYmluZGVyLmNsaWVudC5VaUZpZWxkOwppbXBvcnQg
Y29tLmdvb2dsZS5nd3QudXNlci5jZWxsdmlldy5jbGllbnQuQ2VsbFRhYmxlOwppbXBvcnQgY29t
Lmdvb2dsZS5nd3QudXNlci5jZWxsdmlldy5jbGllbnQuQ2VsbFRhYmxlLlJlc291cmNlczsKaW1w
b3J0IGNvbS5nb29nbGUuZ3d0LnVzZXIuY2xpZW50LnVpLkZsb3dQYW5lbDsKaW1wb3J0IGNvbS5n
b29nbGUuZ3d0LnVzZXIuY2xpZW50LnVpLkhUTUw7CmltcG9ydCBjb20uZ29vZ2xlLmd3dC51c2Vy
LmNsaWVudC51aS5Ib3Jpem9udGFsUGFuZWw7CmltcG9ydCBjb20uZ29vZ2xlLmd3dC51c2VyLmNs
aWVudC51aS5MYWJlbDsKaW1wb3J0IGNvbS5nb29nbGUuZ3d0LnVzZXIuY2xpZW50LnVpLlBhbmVs
OwppbXBvcnQgY29tLmdvb2dsZS5nd3QudXNlci5jbGllbnQudWkuUmFkaW9CdXR0b247CmltcG9y
dCBjb20uZ29vZ2xlLmd3dC51c2VyLmNsaWVudC51aS5WYWx1ZUxhYmVsOwoKcHVibGljIGFic3Ry
YWN0IGNsYXNzIEFic3RyYWN0Vm1Qb3B1cFdpZGdldCBleHRlbmRzIEFic3RyYWN0TW9kZWxCb3Vu
ZFBvcHVwV2lkZ2V0PFVuaXRWbU1vZGVsPiB7CgogICAgaW50ZXJmYWNlIERyaXZlciBleHRlbmRz
IFNpbXBsZUJlYW5FZGl0b3JEcml2ZXI8VW5pdFZtTW9kZWwsIEFic3RyYWN0Vm1Qb3B1cFdpZGdl
dD4gewogICAgICAgIERyaXZlciBkcml2ZXIgPSBHV1QuY3JlYXRlKERyaXZlci5jbGFzcyk7CiAg
ICB9CgogICAgaW50ZXJmYWNlIFZpZXdVaUJpbmRlciBleHRlbmRzIFVpQmluZGVyPERpYWxvZ1Rh
YlBhbmVsLCBBYnN0cmFjdFZtUG9wdXBXaWRnZXQ+IHsKICAgICAgICBWaWV3VWlCaW5kZXIgdWlC
aW5kZXIgPSBHV1QuY3JlYXRlKFZpZXdVaUJpbmRlci5jbGFzcyk7CiAgICB9CgogICAgcHJvdGVj
dGVkIGludGVyZmFjZSBTdHlsZSBleHRlbmRzIENzc1Jlc291cmNlIHsKICAgICAgICBTdHJpbmcg
bG9uZ0NoZWNrYm94Q29udGVudCgpOwoKICAgICAgICBTdHJpbmcgcHJvdmlzaW9uaW5nRWRpdG9y
Q29udGVudCgpOwoKICAgICAgICBTdHJpbmcgcHJvdmlzaW9uaW5nUmFkaW9Db250ZW50KCk7Cgog
ICAgICAgIFN0cmluZyBjZEF0dGFjaGVkTGFiZWxXaWR0aCgpOwoKICAgICAgICBTdHJpbmcgYXNz
aWduZWRWbXNMYWJlbCgpOwoKICAgICAgICBTdHJpbmcgbGFiZWxEaXNhYmxlZCgpOwogICAgfQoK
ICAgIGludGVyZmFjZSBQcmVzdGFydGVkVm1zQ29udGV4dEhlbHAgZXh0ZW5kcyBTYWZlSHRtbFRl
bXBsYXRlcyB7CiAgICAgICAgQFRlbXBsYXRlKCI8aT57MH08L2k+IikKICAgICAgICBTYWZlSHRt
bCBpdGFsaWNUZXh0Q29udGFpbmVyKFN0cmluZyB0ZXh0KTsKICAgIH0KCiAgICBwcml2YXRlIHN0
YXRpYyBQcmVzdGFydGVkVm1zQ29udGV4dEhlbHAgcHJlc3RhcnRlZFZtc0NvbnRleHRIZWxwOwoK
ICAgIEBVaUZpZWxkCiAgICBwcm90ZWN0ZWQgU3R5bGUgc3R5bGU7CgogICAgLy8gPT1HZW5lcmFs
IFRhYj09CiAgICBAVWlGaWVsZAogICAgcHJvdGVjdGVkIERpYWxvZ1RhYiBnZW5lcmFsVGFiOwoK
ICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1ZSkKICAgIEBQYXRoKHZhbHVlID0gImRhdGFDZW50
ZXIuc2VsZWN0ZWRJdGVtIikKICAgIEBXaXRoRWxlbWVudElkKCJkYXRhQ2VudGVyIikKICAgIHB1
YmxpYyBMaXN0TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4gZGF0YUNlbnRlckVkaXRvcjsKCiAg
ICBAVWlGaWVsZChwcm92aWRlZCA9IHRydWUpCiAgICBAUGF0aCh2YWx1ZSA9ICJjbHVzdGVyLnNl
bGVjdGVkSXRlbSIpCiAgICBAV2l0aEVsZW1lbnRJZCgiY2x1c3RlciIpCiAgICBwdWJsaWMgTGlz
dE1vZGVsTGlzdEJveEVkaXRvcjxPYmplY3Q+IGNsdXN0ZXJFZGl0b3I7CgogICAgQFVpRmllbGQo
cHJvdmlkZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAicXVvdGEuc2VsZWN0ZWRJdGVtIikK
ICAgIEBXaXRoRWxlbWVudElkKCJxdW90YSIpCiAgICBwdWJsaWMgTGlzdE1vZGVsTGlzdEJveEVk
aXRvcjxPYmplY3Q+IHF1b3RhRWRpdG9yOwoKICAgIEBVaUZpZWxkCiAgICBAUGF0aCh2YWx1ZSA9
ICJuYW1lLmVudGl0eSIpCiAgICBAV2l0aEVsZW1lbnRJZCgibmFtZSIpCiAgICBwdWJsaWMgRW50
aXR5TW9kZWxUZXh0Qm94RWRpdG9yIG5hbWVFZGl0b3I7CgogICAgQFVpRmllbGQKICAgIEBQYXRo
KHZhbHVlID0gImRlc2NyaXB0aW9uLmVudGl0eSIpCiAgICBAV2l0aEVsZW1lbnRJZCgiZGVzY3Jp
cHRpb24iKQogICAgcHVibGljIEVudGl0eU1vZGVsVGV4dEJveEVkaXRvciBkZXNjcmlwdGlvbkVk
aXRvcjsKCiAgICBAVWlGaWVsZChwcm92aWRlZCA9IHRydWUpCiAgICBAUGF0aCh2YWx1ZSA9ICJ0
ZW1wbGF0ZS5zZWxlY3RlZEl0ZW0iKQogICAgQFdpdGhFbGVtZW50SWQoInRlbXBsYXRlIikKICAg
IHB1YmxpYyBMaXN0TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4gdGVtcGxhdGVFZGl0b3I7Cgog
ICAgQFVpRmllbGQocHJvdmlkZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAibWVtU2l6ZS5l
bnRpdHkiKQogICAgQFdpdGhFbGVtZW50SWQoIm1lbVNpemUiKQogICAgcHVibGljIEVudGl0eU1v
ZGVsVGV4dEJveEVkaXRvciBtZW1TaXplRWRpdG9yOwoKICAgIEBVaUZpZWxkCiAgICBASWdub3Jl
CiAgICBIVE1MIGNwdVBpbm5pbmdMYWJlbDsKCiAgICBAVWlGaWVsZAogICAgQFBhdGgodmFsdWUg
PSAidG90YWxDUFVDb3Jlcy5lbnRpdHkiKQogICAgQFdpdGhFbGVtZW50SWQoInRvdGFsQ1BVQ29y
ZXMiKQogICAgcHVibGljIEVudGl0eU1vZGVsVGV4dEJveEVkaXRvciB0b3RhbHZDUFVzRWRpdG9y
OwoKICAgIEBVaUZpZWxkCiAgICBAUGF0aCh2YWx1ZSA9ICJudW1PZlNvY2tldHMuc2VsZWN0ZWRJ
dGVtIikKICAgIEBXaXRoRWxlbWVudElkKCJudW1PZlNvY2tldHMiKQogICAgcHVibGljIExpc3RN
b2RlbExpc3RCb3hFZGl0b3I8T2JqZWN0PiBudW1PZlNvY2tldHNFZGl0b3I7CgogICAgQFVpRmll
bGQKICAgIEBQYXRoKHZhbHVlID0gImNvcmVzUGVyU29ja2V0LnNlbGVjdGVkSXRlbSIpCiAgICBA
V2l0aEVsZW1lbnRJZCgiY29yZXNQZXJTb2NrZXQiKQogICAgcHVibGljIExpc3RNb2RlbExpc3RC
b3hFZGl0b3I8T2JqZWN0PiBjb3JlUGVyU29ja2V0RWRpdG9yOwoKICAgIEBVaUZpZWxkKHByb3Zp
ZGVkID0gdHJ1ZSkKICAgIEBQYXRoKHZhbHVlID0gIm9TVHlwZS5zZWxlY3RlZEl0ZW0iKQogICAg
QFdpdGhFbGVtZW50SWQoIm9zVHlwZSIpCiAgICBwdWJsaWMgTGlzdE1vZGVsTGlzdEJveEVkaXRv
cjxPYmplY3Q+IG9TVHlwZUVkaXRvcjsKCiAgICBAVWlGaWVsZChwcm92aWRlZCA9IHRydWUpCiAg
ICBAUGF0aCh2YWx1ZSA9ICJpc0RlbGV0ZVByb3RlY3RlZC5lbnRpdHkiKQogICAgQFdpdGhFbGVt
ZW50SWQoImlzRGVsZXRlUHJvdGVjdGVkIikKICAgIHB1YmxpYyBFbnRpdHlNb2RlbENoZWNrQm94
RWRpdG9yIGlzRGVsZXRlUHJvdGVjdGVkRWRpdG9yOwoKICAgIEBVaUZpZWxkCiAgICBASWdub3Jl
CiAgICBMYWJlbCBnZW5lcmFsV2FybmluZ01lc3NhZ2U7CgogICAgLy8gPT0gUG9vbHMgPT0KICAg
IEBVaUZpZWxkCiAgICBwcm90ZWN0ZWQgRGlhbG9nVGFiIHBvb2xUYWI7CgogICAgQFVpRmllbGQo
cHJvdmlkZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAicG9vbFR5cGUuc2VsZWN0ZWRJdGVt
IikKICAgIEBXaXRoRWxlbWVudElkKCJwb29sVHlwZSIpCiAgICBwdWJsaWMgTGlzdE1vZGVsTGlz
dEJveEVkaXRvcjxPYmplY3Q+IHBvb2xUeXBlRWRpdG9yOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVk
ID0gdHJ1ZSkKICAgIEBJZ25vcmUKICAgIHB1YmxpYyBJbmZvSWNvbiBuZXdQb29sUHJlc3RhcnRl
ZFZtc0ljb247CgogICAgQFVpRmllbGQocHJvdmlkZWQgPSB0cnVlKQogICAgQElnbm9yZQogICAg
cHVibGljIEluZm9JY29uIGVkaXRQb29sUHJlc3RhcnRlZFZtc0ljb247CgogICAgQFVpRmllbGQK
ICAgIEBQYXRoKHZhbHVlID0gInByZXN0YXJ0ZWRWbXMuZW50aXR5IikKICAgIEBXaXRoRWxlbWVu
dElkKCJwcmVzdGFydGVkVm1zIikKICAgIHB1YmxpYyBFbnRpdHlNb2RlbFRleHRCb3hPbmx5RWRp
dG9yIHByZXN0YXJ0ZWRWbXNFZGl0b3I7CgogICAgQFVpRmllbGQKICAgIEBJZ25vcmUKICAgIHB1
YmxpYyBGbG93UGFuZWwgbmV3UG9vbEVkaXRWbXNQYW5lbDsKCiAgICBAVWlGaWVsZAogICAgQEln
bm9yZQogICAgcHVibGljIExhYmVsIHByZXN0YXJ0ZWRMYWJlbDsKCiAgICBAVWlGaWVsZChwcm92
aWRlZCA9IHRydWUpCiAgICBAUGF0aCgibnVtT2ZEZXNrdG9wcy5lbnRpdHkiKQogICAgQFdpdGhF
bGVtZW50SWQoIm51bU9mVm1zIikKICAgIHB1YmxpYyBFbnRpdHlNb2RlbFRleHRCb3hFZGl0b3Ig
bnVtT2ZWbXNFZGl0b3I7CgogICAgQFVpRmllbGQKICAgIEBJZ25vcmUKICAgIHB1YmxpYyBGbG93
UGFuZWwgZWRpdFBvb2xFZGl0Vm1zUGFuZWw7CgogICAgQFVpRmllbGQKICAgIEBJZ25vcmUKICAg
IHB1YmxpYyBGbG93UGFuZWwgZWRpdFBvb2xJbmNyYXNlTnVtT2ZWbXNQYW5lbDsKCiAgICBAVWlG
aWVsZAogICAgQElnbm9yZQogICAgcHVibGljIExhYmVsIGVkaXRQcmVzdGFydGVkVm1zTGFiZWw7
CgogICAgQFVpRmllbGQKICAgIEBQYXRoKCJwcmVzdGFydGVkVm1zLmVudGl0eSIpCiAgICBAV2l0
aEVsZW1lbnRJZCgiZWRpdFByZXN0YXJ0ZWRWbXMiKQogICAgcHVibGljIEVudGl0eU1vZGVsVGV4
dEJveE9ubHlFZGl0b3IgZWRpdFByZXN0YXJ0ZWRWbXNFZGl0b3I7CgogICAgQFVpRmllbGQocHJv
dmlkZWQgPSB0cnVlKQogICAgQFBhdGgoIm51bU9mRGVza3RvcHMuZW50aXR5IikKICAgIEBXaXRo
RWxlbWVudElkKCJpbmNyYXNlTnVtT2ZWbXMiKQogICAgcHVibGljIEVudGl0eU1vZGVsVGV4dEJv
eE9ubHlFZGl0b3IgaW5jcmFzZU51bU9mVm1zRWRpdG9yOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVk
ID0gdHJ1ZSkKICAgIEBQYXRoKCJhc3NpZ25lZFZtcy5lbnRpdHkiKQogICAgcHVibGljIFZhbHVl
TGFiZWw8T2JqZWN0PiBvdXRPZnhJblBvb2w7CgogICAgLy8gPT1Jbml0aWFsIHJ1biBUYWI9PQog
ICAgQFVpRmllbGQKICAgIHByb3RlY3RlZCBEaWFsb2dUYWIgaW5pdGlhbFJ1blRhYjsKCiAgICBA
VWlGaWVsZChwcm92aWRlZCA9IHRydWUpCiAgICBAUGF0aCh2YWx1ZSA9ICJkb21haW4uc2VsZWN0
ZWRJdGVtIikKICAgIEBXaXRoRWxlbWVudElkKCJkb21haW4iKQogICAgcHVibGljIExpc3RNb2Rl
bExpc3RCb3hFZGl0b3I8T2JqZWN0PiBkb21haW5FZGl0b3I7CgogICAgQFVpRmllbGQocHJvdmlk
ZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAidGltZVpvbmUuc2VsZWN0ZWRJdGVtIikKICAg
IEBXaXRoRWxlbWVudElkKCJ0aW1lWm9uZSIpCiAgICBwdWJsaWMgTGlzdE1vZGVsTGlzdEJveEVk
aXRvcjxPYmplY3Q+IHRpbWVab25lRWRpdG9yOwoKICAgIC8vID09Q29uc29sZSBUYWI9PQogICAg
QFVpRmllbGQKICAgIHByb3RlY3RlZCBEaWFsb2dUYWIgY29uc29sZVRhYjsKCiAgICBAVWlGaWVs
ZChwcm92aWRlZCA9IHRydWUpCiAgICBAUGF0aCh2YWx1ZSA9ICJkaXNwbGF5UHJvdG9jb2wuc2Vs
ZWN0ZWRJdGVtIikKICAgIEBXaXRoRWxlbWVudElkKCJkaXNwbGF5UHJvdG9jb2wiKQogICAgcHVi
bGljIExpc3RNb2RlbExpc3RCb3hFZGl0b3I8T2JqZWN0PiBkaXNwbGF5UHJvdG9jb2xFZGl0b3I7
CgogICAgQFVpRmllbGQocHJvdmlkZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAidXNiUG9s
aWN5LnNlbGVjdGVkSXRlbSIpCiAgICBAV2l0aEVsZW1lbnRJZCgidXNiUG9saWN5IikKICAgIHB1
YmxpYyBMaXN0TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4gdXNiU3VwcG9ydEVkaXRvcjsKCiAg
ICBAVWlGaWVsZChwcm92aWRlZCA9IHRydWUpCiAgICBAUGF0aCh2YWx1ZSA9ICJudW1PZk1vbml0
b3JzLnNlbGVjdGVkSXRlbSIpCiAgICBAV2l0aEVsZW1lbnRJZCgibnVtT2ZNb25pdG9ycyIpCiAg
ICBwdWJsaWMgTGlzdE1vZGVsTGlzdEJveEVkaXRvcjxPYmplY3Q+IG51bU9mTW9uaXRvcnNFZGl0
b3I7CgogICAgQFVpRmllbGQocHJvdmlkZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAiaXNT
dGF0ZWxlc3MuZW50aXR5IikKICAgIEBXaXRoRWxlbWVudElkKCJpc1N0YXRlbGVzcyIpCiAgICBw
dWJsaWMgRW50aXR5TW9kZWxDaGVja0JveEVkaXRvciBpc1N0YXRlbGVzc0VkaXRvcjsKCiAgICBA
VWlGaWVsZChwcm92aWRlZCA9IHRydWUpCiAgICBAUGF0aCh2YWx1ZSA9ICJpc1NtYXJ0Y2FyZEVu
YWJsZWQuZW50aXR5IikKICAgIEBXaXRoRWxlbWVudElkKCJpc1NtYXJ0Y2FyZEVuYWJsZWQiKQog
ICAgcHVibGljIEVudGl0eU1vZGVsQ2hlY2tCb3hFZGl0b3IgaXNTbWFydGNhcmRFbmFibGVkRWRp
dG9yOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1ZSkKICAgIEBQYXRoKHZhbHVlID0gImFs
bG93Q29uc29sZVJlY29ubmVjdC5lbnRpdHkiKQogICAgQFdpdGhFbGVtZW50SWQoImFsbG93Q29u
c29sZVJlY29ubmVjdCIpCiAgICBwdWJsaWMgRW50aXR5TW9kZWxDaGVja0JveEVkaXRvciBhbGxv
d0NvbnNvbGVSZWNvbm5lY3RFZGl0b3I7CgogICAgLy8gPT1Ib3N0IFRhYj09CiAgICBAVWlGaWVs
ZAogICAgcHJvdGVjdGVkIERpYWxvZ1RhYiBob3N0VGFiOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVk
ID0gdHJ1ZSkKICAgIEBQYXRoKHZhbHVlID0gInJ1blZNT25TcGVjaWZpY0hvc3QuZW50aXR5IikK
ICAgIEBXaXRoRWxlbWVudElkKCJydW5WTU9uU3BlY2lmaWNIb3N0IikKICAgIHB1YmxpYyBFbnRp
dHlNb2RlbENoZWNrQm94RWRpdG9yIHJ1blZNT25TcGVjaWZpY0hvc3RFZGl0b3I7CgogICAgQFVp
RmllbGQocHJvdmlkZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAiaG9zdENwdS5lbnRpdHki
KQogICAgQFdpdGhFbGVtZW50SWQoImhvc3RDcHUiKQogICAgcHVibGljIEVudGl0eU1vZGVsQ2hl
Y2tCb3hFZGl0b3IgaG9zdENwdUVkaXRvcjsKCiAgICBAVWlGaWVsZChwcm92aWRlZCA9IHRydWUp
CiAgICBAUGF0aCh2YWx1ZSA9ICJkb250TWlncmF0ZVZNLmVudGl0eSIpCiAgICBAV2l0aEVsZW1l
bnRJZCgiZG9udE1pZ3JhdGVWTSIpCiAgICBwdWJsaWMgRW50aXR5TW9kZWxDaGVja0JveEVkaXRv
ciBkb250TWlncmF0ZVZNRWRpdG9yOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1ZSkKICAg
IEBJZ25vcmUKICAgIEBXaXRoRWxlbWVudElkKCJzcGVjaWZpY0hvc3QiKQogICAgcHVibGljIFJh
ZGlvQnV0dG9uIHNwZWNpZmljSG9zdDsKCiAgICBAVWlGaWVsZAogICAgQElnbm9yZQogICAgcHVi
bGljIExhYmVsIHNwZWNpZmljSG9zdExhYmVsOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1
ZSkKICAgIEBQYXRoKHZhbHVlID0gImRlZmF1bHRIb3N0LnNlbGVjdGVkSXRlbSIpCiAgICBAV2l0
aEVsZW1lbnRJZCgiZGVmYXVsdEhvc3QiKQogICAgcHVibGljIExpc3RNb2RlbExpc3RCb3hFZGl0
b3I8T2JqZWN0PiBkZWZhdWx0SG9zdEVkaXRvcjsKCiAgICBAVWlGaWVsZChwcm92aWRlZCA9IHRy
dWUpCiAgICBAUGF0aCh2YWx1ZSA9ICJpc0F1dG9Bc3NpZ24uZW50aXR5IikKICAgIEBXaXRoRWxl
bWVudElkKCJpc0F1dG9Bc3NpZ24iKQogICAgcHVibGljIEVudGl0eU1vZGVsUmFkaW9CdXR0b25F
ZGl0b3IgaXNBdXRvQXNzaWduRWRpdG9yOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1ZSkK
ICAgIEBQYXRoKHZhbHVlID0gInJ1blZNT25UcnVzdGVkSG9zdC5lbnRpdHkiKQogICAgQFdpdGhF
bGVtZW50SWQoInJ1blZNT25UcnVzdGVkSG9zdCIpCiAgICBwdWJsaWMgRW50aXR5TW9kZWxSYWRp
b0J1dHRvbkVkaXRvciBydW5WTU9uVHJ1c3RlZEhvc3RFZGl0b3I7CgogICAgQFVpRmllbGQKICAg
IEBQYXRoKHZhbHVlID0gImNwdVBpbm5pbmcuZW50aXR5IikKICAgIEBXaXRoRWxlbWVudElkKCJj
cHVQaW5uaW5nIikKICAgIHB1YmxpYyBFbnRpdHlNb2RlbFRleHRCb3hFZGl0b3IgY3B1UGlubmlu
ZzsKCiAgICAvLyA9PUhpZ2ggQXZhaWxhYmlsaXR5IFRhYj09CiAgICBAVWlGaWVsZAogICAgcHJv
dGVjdGVkIERpYWxvZ1RhYiBoaWdoQXZhaWxhYmlsaXR5VGFiOwoKICAgIEBVaUZpZWxkKHByb3Zp
ZGVkID0gdHJ1ZSkKICAgIEBQYXRoKHZhbHVlID0gImlzSGlnaGx5QXZhaWxhYmxlLmVudGl0eSIp
CiAgICBAV2l0aEVsZW1lbnRJZCgiaXNIaWdobHlBdmFpbGFibGUiKQogICAgcHVibGljIEVudGl0
eU1vZGVsQ2hlY2tCb3hFZGl0b3IgaXNIaWdobHlBdmFpbGFibGVFZGl0b3I7CgogICAgLy8gVE9E
TzogUHJpb3JpdHkgaXMgYSBMaXN0TW9kZWwgd2hpY2ggaXMgcmVuZGVyZWQgYXMgUmFkaW9Cb3gK
ICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1ZSkKICAgIEBJZ25vcmUKICAgIEBXaXRoRWxlbWVu
dElkKCJwcmlvcml0eSIpCiAgICBwdWJsaWMgRW50aXR5TW9kZWxDZWxsVGFibGU8TGlzdE1vZGVs
PiBwcmlvcml0eUVkaXRvcjsKCiAgICAvLyA9PVJlc291cmNlIEFsbG9jYXRpb24gVGFiPT0KICAg
IEBVaUZpZWxkCiAgICBwcm90ZWN0ZWQgRGlhbG9nVGFiIHJlc291cmNlQWxsb2NhdGlvblRhYjsK
CiAgICBAVWlGaWVsZAogICAgcHJvdGVjdGVkIEZsb3dQYW5lbCBzdG9yYWdlQWxsb2NhdGlvblBh
bmVsOwoKICAgIEBVaUZpZWxkCiAgICBwcm90ZWN0ZWQgSG9yaXpvbnRhbFBhbmVsIHByb3Zpc2lv
blNlbGVjdGlvblBhbmVsOwoKICAgIEBVaUZpZWxkCiAgICBwcm90ZWN0ZWQgRmxvd1BhbmVsIGRp
c2tzQWxsb2NhdGlvblBhbmVsOwoKICAgIEBVaUZpZWxkCiAgICBASWdub3JlCiAgICBAV2l0aEVs
ZW1lbnRJZCgicHJvdmlzaW9uaW5nIikKICAgIHB1YmxpYyBMaXN0TW9kZWxMaXN0Qm94RWRpdG9y
PE9iamVjdD4gcHJvdmlzaW9uaW5nRWRpdG9yOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1
ZSkKICAgIEBQYXRoKHZhbHVlID0gIm1pbkFsbG9jYXRlZE1lbW9yeS5lbnRpdHkiKQogICAgQFdp
dGhFbGVtZW50SWQoIm1pbkFsbG9jYXRlZE1lbW9yeSIpCiAgICBwdWJsaWMgRW50aXR5TW9kZWxU
ZXh0Qm94RWRpdG9yIG1pbkFsbG9jYXRlZE1lbW9yeUVkaXRvcjsKCiAgICBAVWlGaWVsZChwcm92
aWRlZCA9IHRydWUpCiAgICBAUGF0aCh2YWx1ZSA9ICJwcm92aXNpb25pbmdUaGluX0lzU2VsZWN0
ZWQuZW50aXR5IikKICAgIEBXaXRoRWxlbWVudElkKCJwcm92aXNpb25pbmdUaGluIikKICAgIHB1
YmxpYyBFbnRpdHlNb2RlbFJhZGlvQnV0dG9uRWRpdG9yIHByb3Zpc2lvbmluZ1RoaW5FZGl0b3I7
CgogICAgQFVpRmllbGQocHJvdmlkZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAicHJvdmlz
aW9uaW5nQ2xvbmVfSXNTZWxlY3RlZC5lbnRpdHkiKQogICAgQFdpdGhFbGVtZW50SWQoInByb3Zp
c2lvbmluZ0Nsb25lIikKICAgIHB1YmxpYyBFbnRpdHlNb2RlbFJhZGlvQnV0dG9uRWRpdG9yIHBy
b3Zpc2lvbmluZ0Nsb25lRWRpdG9yOwoKICAgIEBVaUZpZWxkCiAgICBASWdub3JlCiAgICBMYWJl
bCBkaXNrc0FsbG9jYXRpb25MYWJlbDsKCiAgICBAVWlGaWVsZChwcm92aWRlZCA9IHRydWUpCiAg
ICBASWdub3JlCiAgICBAV2l0aEVsZW1lbnRJZCgiZGlza3NBbGxvY2F0aW9uIikKICAgIHB1Ymxp
YyBEaXNrc0FsbG9jYXRpb25WaWV3IGRpc2tzQWxsb2NhdGlvblZpZXc7CgogICAgLy8gPT1Cb290
IE9wdGlvbnMgVGFiPT0KICAgIEBVaUZpZWxkCiAgICBwcm90ZWN0ZWQgRGlhbG9nVGFiIGJvb3RP
cHRpb25zVGFiOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1ZSkKICAgIEBQYXRoKHZhbHVl
ID0gImZpcnN0Qm9vdERldmljZS5zZWxlY3RlZEl0ZW0iKQogICAgQFdpdGhFbGVtZW50SWQoImZp
cnN0Qm9vdERldmljZSIpCiAgICBwdWJsaWMgTGlzdE1vZGVsTGlzdEJveEVkaXRvcjxPYmplY3Q+
IGZpcnN0Qm9vdERldmljZUVkaXRvcjsKCiAgICBAVWlGaWVsZChwcm92aWRlZCA9IHRydWUpCiAg
ICBAUGF0aCh2YWx1ZSA9ICJzZWNvbmRCb290RGV2aWNlLnNlbGVjdGVkSXRlbSIpCiAgICBAV2l0
aEVsZW1lbnRJZCgic2Vjb25kQm9vdERldmljZSIpCiAgICBwdWJsaWMgTGlzdE1vZGVsTGlzdEJv
eEVkaXRvcjxPYmplY3Q+IHNlY29uZEJvb3REZXZpY2VFZGl0b3I7CgogICAgQFVpRmllbGQocHJv
dmlkZWQgPSB0cnVlKQogICAgQFBhdGgodmFsdWUgPSAiY2RJbWFnZS5zZWxlY3RlZEl0ZW0iKQog
ICAgQFdpdGhFbGVtZW50SWQoImNkSW1hZ2UiKQogICAgcHVibGljIExpc3RNb2RlbExpc3RCb3hF
ZGl0b3I8T2JqZWN0PiBjZEltYWdlRWRpdG9yOwoKICAgIEBVaUZpZWxkKHByb3ZpZGVkID0gdHJ1
ZSkKICAgIEBQYXRoKHZhbHVlID0gImNkQXR0YWNoZWQuZW50aXR5IikKICAgIEBXaXRoRWxlbWVu
dElkKCJjZEF0dGFjaGVkIikKICAgIHB1YmxpYyBFbnRpdHlNb2RlbENoZWNrQm94RWRpdG9yIGNk
QXR0YWNoZWRFZGl0b3I7CgogICAgQFVpRmllbGQKICAgIHByb3RlY3RlZCBGbG93UGFuZWwgbGlu
dXhCb290T3B0aW9uc1BhbmVsOwoKICAgIEBVaUZpZWxkCiAgICBAUGF0aCh2YWx1ZSA9ICJrZXJu
ZWxfcGF0aC5lbnRpdHkiKQogICAgQFdpdGhFbGVtZW50SWQoImtlcm5lbFBhdGgiKQogICAgcHVi
bGljIEVudGl0eU1vZGVsVGV4dEJveEVkaXRvciBrZXJuZWxfcGF0aEVkaXRvcjsKCiAgICBAVWlG
aWVsZAogICAgQFBhdGgodmFsdWUgPSAiaW5pdHJkX3BhdGguZW50aXR5IikKICAgIEBXaXRoRWxl
bWVudElkKCJpbml0cmRQYXRoIikKICAgIHB1YmxpYyBFbnRpdHlNb2RlbFRleHRCb3hFZGl0b3Ig
aW5pdHJkX3BhdGhFZGl0b3I7CgogICAgQFVpRmllbGQKICAgIEBQYXRoKHZhbHVlID0gImtlcm5l
bF9wYXJhbWV0ZXJzLmVudGl0eSIpCiAgICBAV2l0aEVsZW1lbnRJZCgia2VybmVsUGFyYW1ldGVy
cyIpCiAgICBwdWJsaWMgRW50aXR5TW9kZWxUZXh0Qm94RWRpdG9yIGtlcm5lbF9wYXJhbWV0ZXJz
RWRpdG9yOwoKICAgIEBVaUZpZWxkCiAgICBASWdub3JlCiAgICBMYWJlbCBuYXRpdmVVc2JXYXJu
aW5nTWVzc2FnZTsKCiAgICAvLyA9PUN1c3RvbSBQcm9wZXJ0aWVzIFRhYj09CiAgICBAVWlGaWVs
ZAogICAgcHJvdGVjdGVkIERpYWxvZ1RhYiBjdXN0b21Qcm9wZXJ0aWVzVGFiOwoKICAgIEBVaUZp
ZWxkCiAgICBASWdub3JlCiAgICBwcm90ZWN0ZWQgS2V5VmFsdWVXaWRnZXQgY3VzdG9tUHJvcGVy
dGllc1NoZWV0RWRpdG9yOwoKICAgIENvbW1vbkFwcGxpY2F0aW9uQ29uc3RhbnRzIGNvbnN0YW50
czsKICAgIENvbW1vbkFwcGxpY2F0aW9uTWVzc2FnZXMgbWVzc2FnZXM7CgogICAgQFVpRmllbGQK
ICAgIEBJZ25vcmUKICAgIHByb3RlY3RlZCBBZHZhbmNlZFBhcmFtZXRlcnNFeHBhbmRlciBleHBh
bmRlcjsKCiAgICBAVWlGaWVsZAogICAgQElnbm9yZQogICAgUGFuZWwgZXhwYW5kZXJDb250ZW50
OwoKICAgIEBVaUZpZWxkCiAgICBASWdub3JlCiAgICBBZHZhbmNlZFBhcmFtZXRlcnNFeHBhbmRl
ciBnZW5lcmFsQWR2YW5jZWRQYXJhbWV0ZXJFeHBhbmRlcjsKCiAgICBAVWlGaWVsZAogICAgQEln
bm9yZQogICAgUGFuZWwgZ2VuZXJhbEFkdmFuY2VkUGFyYW1ldGVyRXhwYW5kZXJDb250ZW50OwoK
ICAgIEBTdXBwcmVzc1dhcm5pbmdzKHsgInVuY2hlY2tlZCIsICJyYXd0eXBlcyIgfSkKICAgIHB1
YmxpYyBBYnN0cmFjdFZtUG9wdXBXaWRnZXQoQ29tbW9uQXBwbGljYXRpb25Db25zdGFudHMgY29u
c3RhbnRzLAogICAgICAgICAgICBDb21tb25BcHBsaWNhdGlvblJlc291cmNlcyByZXNvdXJjZXMs
CiAgICAgICAgICAgIGZpbmFsIENvbW1vbkFwcGxpY2F0aW9uTWVzc2FnZXMgbWVzc2FnZXMpIHsK
ICAgICAgICB0aGlzLmNvbnN0YW50cyA9IGNvbnN0YW50czsKICAgICAgICB0aGlzLm1lc3NhZ2Vz
ID0gbWVzc2FnZXM7CgogICAgICAgIGluaXRMaXN0Qm94RWRpdG9ycygpOwogICAgICAgIC8vIENv
bnRhaW5zIGEgc3BlY2lhbCBwYXJzZXIvcmVuZGVyZXIKICAgICAgICBtZW1TaXplRWRpdG9yID0g
bmV3IEVudGl0eU1vZGVsVGV4dEJveEVkaXRvcigKICAgICAgICAgICAgICAgIG5ldyBNZW1vcnlT
aXplUmVuZGVyZXIoY29uc3RhbnRzKSwgbmV3IE1lbW9yeVNpemVQYXJzZXIoKSk7CiAgICAgICAg
bWluQWxsb2NhdGVkTWVtb3J5RWRpdG9yID0gbmV3IEVudGl0eU1vZGVsVGV4dEJveEVkaXRvcigK
ICAgICAgICAgICAgICAgIG5ldyBNZW1vcnlTaXplUmVuZGVyZXIoY29uc3RhbnRzKSwgbmV3IE1l
bW9yeVNpemVQYXJzZXIoKSk7CgogICAgICAgIC8vIFRPRE86IEhvdyB0byBhbGlnbiByaWdodCB3
aXRob3V0IGNyZWF0aW5nIHRoZSB3aWRnZXQgbWFudWFsbHk/CiAgICAgICAgcnVuVk1PblNwZWNp
ZmljSG9zdEVkaXRvciA9IG5ldyBFbnRpdHlNb2RlbENoZWNrQm94RWRpdG9yKEFsaWduLlJJR0hU
KTsKICAgICAgICBob3N0Q3B1RWRpdG9yID0gbmV3IEVudGl0eU1vZGVsQ2hlY2tCb3hFZGl0b3Io
QWxpZ24uUklHSFQpOwogICAgICAgIGRvbnRNaWdyYXRlVk1FZGl0b3IgPSBuZXcgRW50aXR5TW9k
ZWxDaGVja0JveEVkaXRvcihBbGlnbi5SSUdIVCk7CiAgICAgICAgaXNIaWdobHlBdmFpbGFibGVF
ZGl0b3IgPSBuZXcgRW50aXR5TW9kZWxDaGVja0JveEVkaXRvcihBbGlnbi5SSUdIVCk7CiAgICAg
ICAgaXNTdGF0ZWxlc3NFZGl0b3IgPSBuZXcgRW50aXR5TW9kZWxDaGVja0JveEVkaXRvcihBbGln
bi5SSUdIVCk7CiAgICAgICAgaXNEZWxldGVQcm90ZWN0ZWRFZGl0b3IgPSBuZXcgRW50aXR5TW9k
ZWxDaGVja0JveEVkaXRvcihBbGlnbi5SSUdIVCk7CiAgICAgICAgaXNTbWFydGNhcmRFbmFibGVk
RWRpdG9yID0gbmV3IEVudGl0eU1vZGVsQ2hlY2tCb3hFZGl0b3IoQWxpZ24uUklHSFQpOwogICAg
ICAgIGNkQXR0YWNoZWRFZGl0b3IgPSBuZXcgRW50aXR5TW9kZWxDaGVja0JveEVkaXRvcihBbGln
bi5MRUZUKTsKICAgICAgICBhbGxvd0NvbnNvbGVSZWNvbm5lY3RFZGl0b3IgPSBuZXcgRW50aXR5
TW9kZWxDaGVja0JveEVkaXRvcihBbGlnbi5SSUdIVCk7CgogICAgICAgIHByaW9yaXR5RWRpdG9y
ID0gbmV3IEVudGl0eU1vZGVsQ2VsbFRhYmxlPExpc3RNb2RlbD4oCiAgICAgICAgICAgICAgICAo
UmVzb3VyY2VzKSBHV1QuY3JlYXRlKEJ1dHRvbkNlbGxUYWJsZVJlc291cmNlcy5jbGFzcykpOwog
ICAgICAgIGRpc2tzQWxsb2NhdGlvblZpZXcgPSBuZXcgRGlza3NBbGxvY2F0aW9uVmlldyhjb25z
dGFudHMpOwoKICAgICAgICBpZiAocHJlc3RhcnRlZFZtc0NvbnRleHRIZWxwID09IG51bGwpIHsK
ICAgICAgICAgICAgcHJlc3RhcnRlZFZtc0NvbnRleHRIZWxwID0gR1dULmNyZWF0ZShQcmVzdGFy
dGVkVm1zQ29udGV4dEhlbHAuY2xhc3MpOwogICAgICAgIH0KCiAgICAgICAgaW5pdFBvb2xTcGVj
aWZpY1dpZGdldHMocmVzb3VyY2VzLCBtZXNzYWdlcyk7CgogICAgICAgIGluaXRXaWRnZXQoVmll
d1VpQmluZGVyLnVpQmluZGVyLmNyZWF0ZUFuZEJpbmRVaSh0aGlzKSk7CgogICAgICAgIGV4cGFu
ZGVyLmluaXRXaXRoQ29udGVudChleHBhbmRlckNvbnRlbnQuZ2V0RWxlbWVudCgpKTsKICAgICAg
ICBnZW5lcmFsQWR2YW5jZWRQYXJhbWV0ZXJFeHBhbmRlci5pbml0V2l0aENvbnRlbnQoZ2VuZXJh
bEFkdmFuY2VkUGFyYW1ldGVyRXhwYW5kZXJDb250ZW50LmdldEVsZW1lbnQoKSk7CiAgICAgICAg
ZWRpdFByZXN0YXJ0ZWRWbXNFZGl0b3Iuc2V0S2VlcFRpdGxlT25TZXRFbmFibGVkKHRydWUpOwoK
ICAgICAgICBhcHBseVN0eWxlcygpOwoKICAgICAgICBwb29sVGFiLnNldFZpc2libGUoZmFsc2Up
OwoKICAgICAgICBsb2NhbGl6ZShjb25zdGFudHMpOwoKICAgICAgICBnZW5lcmF0ZUlkcygpOwoK
ICAgICAgICBoaWRlUG9vbFNwZWNpZmljRmllbGRzKCk7CgogICAgICAgIHByaW9yaXR5RWRpdG9y
LmFkZEVudGl0eU1vZGVsQ29sdW1uKG5ldyBUZXh0Q29sdW1uV2l0aFRvb2x0aXA8RW50aXR5TW9k
ZWw+KCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIFN0cmluZyBn
ZXRWYWx1ZShFbnRpdHlNb2RlbCBtb2RlbCkgewogICAgICAgICAgICAgICAgcmV0dXJuIG1vZGVs
LmdldFRpdGxlKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LCAiIik7IC8vJE5PTi1OTFMtMSQK
CiAgICAgICAgRHJpdmVyLmRyaXZlci5pbml0aWFsaXplKHRoaXMpOwogICAgfQoKICAgIHByb3Rl
Y3RlZCB2b2lkIGluaXRQb29sU3BlY2lmaWNXaWRnZXRzKENvbW1vbkFwcGxpY2F0aW9uUmVzb3Vy
Y2VzIHJlc291cmNlcywKICAgICAgICAgICAgZmluYWwgQ29tbW9uQXBwbGljYXRpb25NZXNzYWdl
cyBtZXNzYWdlcykgewogICAgICAgIGNyZWF0ZU51bU9mRGVza3RvcEVkaXRvcnMoKTsKCiAgICAg
ICAgaW5jcmFzZU51bU9mVm1zRWRpdG9yLnNldEtlZXBUaXRsZU9uU2V0RW5hYmxlZCh0cnVlKTsK
ICAgICAgICBudW1PZlZtc0VkaXRvci5zZXRLZWVwVGl0bGVPblNldEVuYWJsZWQodHJ1ZSk7Cgog
ICAgICAgIG5ld1Bvb2xQcmVzdGFydGVkVm1zSWNvbiA9CiAgICAgICAgICAgICAgICBuZXcgSW5m
b0ljb24ocHJlc3RhcnRlZFZtc0NvbnRleHRIZWxwLml0YWxpY1RleHRDb250YWluZXIobWVzc2Fn
ZXMucHJlc3RhcnRlZEhlbHAoKSksIHJlc291cmNlcyk7IC8vJE5PTi1OTFMtMSQKCiAgICAgICAg
ZWRpdFBvb2xQcmVzdGFydGVkVm1zSWNvbiA9CiAgICAgICAgICAgICAgICBuZXcgSW5mb0ljb24o
cHJlc3RhcnRlZFZtc0NvbnRleHRIZWxwLml0YWxpY1RleHRDb250YWluZXIobWVzc2FnZXMucHJl
c3RhcnRlZEhlbHAoKSksIHJlc291cmNlcyk7IC8vJE5PTi1OTFMtMSQKCiAgICAgICAgb3V0T2Z4
SW5Qb29sID0gbmV3IFZhbHVlTGFiZWw8T2JqZWN0PihuZXcgQWJzdHJhY3RSZW5kZXJlcjxPYmpl
Y3Q+KCkgewoKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcg
cmVuZGVyKE9iamVjdCBvYmplY3QpIHsKICAgICAgICAgICAgICAgIHJldHVybiBtZXNzYWdlcy5v
dXRPZlhWTXNJblBvb2wob2JqZWN0LnRvU3RyaW5nKCkpOwogICAgICAgICAgICB9CgogICAgICAg
IH0pOwogICAgfQoKICAgIC8qKgogICAgICogVGhlcmUgYXJlIHR3byBlZGl0b3JzIHdoaWNoIGVk
aXRzIHRoZSBzYW1lIGVudGl0eSAtIGluIHRoZSBjb3JyZWN0IHN1YmNsYXNzIG1ha2Ugc3VyZSB0
aGF0IHRoZSBjb3JyZWN0IG9uZSdzCiAgICAgKiB2YWx1ZSBpcyB1c2VkIHRvIGVkaXQgdGhlIG1v
ZGVsCiAgICAgKiA8cD4KICAgICAqIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGp1c3QgY3Jl
YXRlcyB0aGUgc2ltcGxlIGVkaXRvcnMKICAgICAqLwogICAgcHJvdGVjdGVkIHZvaWQgY3JlYXRl
TnVtT2ZEZXNrdG9wRWRpdG9ycygpIHsKICAgICAgICBpbmNyYXNlTnVtT2ZWbXNFZGl0b3IgPSBu
ZXcgRW50aXR5TW9kZWxUZXh0Qm94T25seUVkaXRvcigpOwogICAgICAgIG51bU9mVm1zRWRpdG9y
ID0gbmV3IEVudGl0eU1vZGVsVGV4dEJveEVkaXRvcigpOwogICAgfQoKICAgIHByaXZhdGUgdm9p
ZCBoaWRlUG9vbFNwZWNpZmljRmllbGRzKCkgewogICAgICAgIG51bU9mVm1zRWRpdG9yLnNldFZp
c2libGUoZmFsc2UpOwogICAgICAgIG5ld1Bvb2xFZGl0Vm1zUGFuZWwuc2V0VmlzaWJsZShmYWxz
ZSk7CiAgICAgICAgZWRpdFBvb2xFZGl0Vm1zUGFuZWwuc2V0VmlzaWJsZShmYWxzZSk7CiAgICAg
ICAgZWRpdFBvb2xJbmNyYXNlTnVtT2ZWbXNQYW5lbC5zZXRWaXNpYmxlKGZhbHNlKTsKICAgIH0K
CiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgdm9pZCBnZW5lcmF0ZUlkcygpOwoKICAgIEBTdXBwcmVz
c1dhcm5pbmdzKHsgInJhd3R5cGVzIiwgInVuY2hlY2tlZCIgfSkKICAgIHByaXZhdGUgdm9pZCBp
bml0TGlzdEJveEVkaXRvcnMoKSB7CiAgICAgICAgLy8gR2VuZXJhbCB0YWIKICAgICAgICBkYXRh
Q2VudGVyRWRpdG9yID0gbmV3IExpc3RNb2RlbExpc3RCb3hFZGl0b3I8T2JqZWN0PihuZXcgTnVs
bFNhZmVSZW5kZXJlcjxPYmplY3Q+KCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAg
ICAgcHVibGljIFN0cmluZyByZW5kZXJOdWxsU2FmZShPYmplY3Qgb2JqZWN0KSB7CiAgICAgICAg
ICAgICAgICByZXR1cm4gKChzdG9yYWdlX3Bvb2wpIG9iamVjdCkuZ2V0bmFtZSgpOwogICAgICAg
ICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIGNsdXN0ZXJFZGl0b3IgPSBuZXcgTGlzdE1vZGVs
TGlzdEJveEVkaXRvcjxPYmplY3Q+KG5ldyBOdWxsU2FmZVJlbmRlcmVyPE9iamVjdD4oKSB7CiAg
ICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgU3RyaW5nIHJlbmRlck51bGxT
YWZlKE9iamVjdCBvYmplY3QpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoKFZEU0dyb3VwKSBv
YmplY3QpLmdldG5hbWUoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICBxdW90
YUVkaXRvciA9IG5ldyBMaXN0TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4obmV3IE51bGxTYWZl
UmVuZGVyZXI8T2JqZWN0PigpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1
YmxpYyBTdHJpbmcgcmVuZGVyTnVsbFNhZmUoT2JqZWN0IG9iamVjdCkgewogICAgICAgICAgICAg
ICAgcmV0dXJuICgoUXVvdGEpIG9iamVjdCkuZ2V0UXVvdGFOYW1lKCk7CiAgICAgICAgICAgIH0K
ICAgICAgICB9KTsKCiAgICAgICAgdGVtcGxhdGVFZGl0b3IgPSBuZXcgTGlzdE1vZGVsTGlzdEJv
eEVkaXRvcjxPYmplY3Q+KG5ldyBOdWxsU2FmZVJlbmRlcmVyPE9iamVjdD4oKSB7CiAgICAgICAg
ICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgU3RyaW5nIHJlbmRlck51bGxTYWZlKE9i
amVjdCBvYmplY3QpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoKFZtVGVtcGxhdGUpIG9iamVj
dCkuZ2V0bmFtZSgpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIG9TVHlwZUVk
aXRvciA9IG5ldyBMaXN0TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4obmV3IEVudW1SZW5kZXJl
cigpKTsKCiAgICAgICAgLy8gUG9vbHMKICAgICAgICBwb29sVHlwZUVkaXRvciA9IG5ldyBMaXN0
TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4obmV3IE51bGxTYWZlUmVuZGVyZXI8T2JqZWN0Pigp
IHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVuZGVy
TnVsbFNhZmUoT2JqZWN0IG9iamVjdCkgewogICAgICAgICAgICAgICAgcmV0dXJuICgoRW50aXR5
TW9kZWwpIG9iamVjdCkuZ2V0VGl0bGUoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAg
ICAgICAvLyBXaW5kb3dzIFN5c3ByZXAKICAgICAgICBkb21haW5FZGl0b3IgPSBuZXcgTGlzdE1v
ZGVsTGlzdEJveEVkaXRvcjxPYmplY3Q+KG5ldyBOdWxsU2FmZVJlbmRlcmVyPE9iamVjdD4oKSB7
CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgU3RyaW5nIHJlbmRlck51
bGxTYWZlKE9iamVjdCBvYmplY3QpIHsKICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QudG9T
dHJpbmcoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICB0aW1lWm9uZUVkaXRv
ciA9IG5ldyBMaXN0TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4obmV3IE51bGxTYWZlUmVuZGVy
ZXI8T2JqZWN0PigpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyBT
dHJpbmcgcmVuZGVyTnVsbFNhZmUoT2JqZWN0IG9iamVjdCkgewogICAgICAgICAgICAgICAgcmV0
dXJuICgoRW50cnk8U3RyaW5nLCBTdHJpbmc+KSBvYmplY3QpLmdldFZhbHVlKCk7CiAgICAgICAg
ICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gQ29uc29sZSB0YWIKICAgICAgICBkaXNwbGF5
UHJvdG9jb2xFZGl0b3IgPSBuZXcgTGlzdE1vZGVsTGlzdEJveEVkaXRvcjxPYmplY3Q+KG5ldyBO
dWxsU2FmZVJlbmRlcmVyPE9iamVjdD4oKSB7CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAg
ICAgICBwdWJsaWMgU3RyaW5nIHJlbmRlck51bGxTYWZlKE9iamVjdCBvYmplY3QpIHsKICAgICAg
ICAgICAgICAgIHJldHVybiAoKEVudGl0eU1vZGVsKSBvYmplY3QpLmdldFRpdGxlKCk7CiAgICAg
ICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgdXNiU3VwcG9ydEVkaXRvciA9IG5ldyBMaXN0
TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4obmV3IEVudW1SZW5kZXJlcigpKTsKICAgICAgICBu
dW1PZk1vbml0b3JzRWRpdG9yID0gbmV3IExpc3RNb2RlbExpc3RCb3hFZGl0b3I8T2JqZWN0Pihu
ZXcgTnVsbFNhZmVSZW5kZXJlcjxPYmplY3Q+KCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAg
ICAgICAgICAgcHVibGljIFN0cmluZyByZW5kZXJOdWxsU2FmZShPYmplY3Qgb2JqZWN0KSB7CiAg
ICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAg
ICAgICB9KTsKCiAgICAgICAgLy8gSG9zdCBUYWIKICAgICAgICBzcGVjaWZpY0hvc3QgPSBuZXcg
UmFkaW9CdXR0b24oInJ1blZtT25Ib3N0R3JvdXAiKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIGlz
QXV0b0Fzc2lnbkVkaXRvciA9IG5ldyBFbnRpdHlNb2RlbFJhZGlvQnV0dG9uRWRpdG9yKCJydW5W
bU9uSG9zdEdyb3VwIik7IC8vJE5PTi1OTFMtMSQKICAgICAgICBkZWZhdWx0SG9zdEVkaXRvciA9
IG5ldyBMaXN0TW9kZWxMaXN0Qm94RWRpdG9yPE9iamVjdD4obmV3IE51bGxTYWZlUmVuZGVyZXI8
T2JqZWN0PigpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyBTdHJp
bmcgcmVuZGVyTnVsbFNhZmUoT2JqZWN0IG9iamVjdCkgewogICAgICAgICAgICAgICAgcmV0dXJu
ICgoVkRTKSBvYmplY3QpLmdldHZkc19uYW1lKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsK
ICAgICAgICBydW5WTU9uVHJ1c3RlZEhvc3RFZGl0b3IgPSBuZXcgRW50aXR5TW9kZWxSYWRpb0J1
dHRvbkVkaXRvcigicnVuVm1Pbkhvc3RHcm91cCIpOyAvLyROT04tTkxTLTEkCgogICAgICAgIC8v
IFJlc291cmNlIEFsbG9jYXRpb24KICAgICAgICBwcm92aXNpb25pbmdUaGluRWRpdG9yID0gbmV3
IEVudGl0eU1vZGVsUmFkaW9CdXR0b25FZGl0b3IoInByb3Zpc2lvbmluZ0dyb3VwIik7IC8vJE5P
Ti1OTFMtMSQKICAgICAgICBwcm92aXNpb25pbmdDbG9uZUVkaXRvciA9IG5ldyBFbnRpdHlNb2Rl
bFJhZGlvQnV0dG9uRWRpdG9yKCJwcm92aXNpb25pbmdHcm91cCIpOyAvLyROT04tTkxTLTEkCgog
ICAgICAgIC8vIEJvb3QgT3B0aW9ucyBUYWIKICAgICAgICBmaXJzdEJvb3REZXZpY2VFZGl0b3Ig
PSBuZXcgTGlzdE1vZGVsTGlzdEJveEVkaXRvcjxPYmplY3Q+KG5ldyBOdWxsU2FmZVJlbmRlcmVy
PE9iamVjdD4oKSB7CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgU3Ry
aW5nIHJlbmRlck51bGxTYWZlKE9iamVjdCBvYmplY3QpIHsKICAgICAgICAgICAgICAgIHJldHVy
biAoKEVudGl0eU1vZGVsKSBvYmplY3QpLmdldFRpdGxlKCk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9KTsKCiAgICAgICAgc2Vjb25kQm9vdERldmljZUVkaXRvciA9IG5ldyBMaXN0TW9kZWxMaXN0
Qm94RWRpdG9yPE9iamVjdD4obmV3IE51bGxTYWZlUmVuZGVyZXI8T2JqZWN0PigpIHsKICAgICAg
ICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyBTdHJpbmcgcmVuZGVyTnVsbFNhZmUo
T2JqZWN0IG9iamVjdCkgewogICAgICAgICAgICAgICAgcmV0dXJuICgoRW50aXR5TW9kZWwpIG9i
amVjdCkuZ2V0VGl0bGUoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICBjZElt
YWdlRWRpdG9yID0gbmV3IExpc3RNb2RlbExpc3RCb3hFZGl0b3I8T2JqZWN0PihuZXcgTnVsbFNh
ZmVSZW5kZXJlcjxPYmplY3Q+KCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAg
cHVibGljIFN0cmluZyByZW5kZXJOdWxsU2FmZShPYmplY3Qgb2JqZWN0KSB7CiAgICAgICAgICAg
ICAgICByZXR1cm4gKFN0cmluZykgb2JqZWN0OwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAg
ICB9CgogICAgcHJvdGVjdGVkIHZvaWQgbG9jYWxpemUoQ29tbW9uQXBwbGljYXRpb25Db25zdGFu
dHMgY29uc3RhbnRzKSB7CiAgICAgICAgLy8gVGFicwogICAgICAgIGhpZ2hBdmFpbGFiaWxpdHlU
YWIuc2V0TGFiZWwoY29uc3RhbnRzLmhpZ2hBdmFpbFZtUG9wdXAoKSk7CiAgICAgICAgcmVzb3Vy
Y2VBbGxvY2F0aW9uVGFiLnNldExhYmVsKGNvbnN0YW50cy5yZXNvdXJjZUFsbG9jVm1Qb3B1cCgp
KTsKICAgICAgICBib290T3B0aW9uc1RhYi5zZXRMYWJlbChjb25zdGFudHMuYm9vdE9wdGlvbnNW
bVBvcHVwKCkpOwogICAgICAgIGN1c3RvbVByb3BlcnRpZXNUYWIuc2V0TGFiZWwoY29uc3RhbnRz
LmN1c3RvbVByb3BzVm1Qb3B1cCgpKTsKCiAgICAgICAgLy8gR2VuZXJhbCBUYWIKICAgICAgICBn
ZW5lcmFsVGFiLnNldExhYmVsKGNvbnN0YW50cy5HZW5lcmFsVm1Qb3B1cCgpKTsKICAgICAgICBk
YXRhQ2VudGVyRWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy5kY1ZtUG9wdXAoKSk7CiAgICAgICAg
Y2x1c3RlckVkaXRvci5zZXRMYWJlbChjb25zdGFudHMuaG9zdENsdXN0ZXJWbVBvcHVwKCkpOwog
ICAgICAgIHF1b3RhRWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy5xdW90YVZtUG9wdXAoKSk7CiAg
ICAgICAgbmFtZUVkaXRvci5zZXRMYWJlbChjb25zdGFudHMubmFtZVZtUG9wdXAoKSk7CiAgICAg
ICAgZGVzY3JpcHRpb25FZGl0b3Iuc2V0TGFiZWwoY29uc3RhbnRzLmRlc2NyaXB0aW9uVm1Qb3B1
cCgpKTsKICAgICAgICB0ZW1wbGF0ZUVkaXRvci5zZXRMYWJlbChjb25zdGFudHMuYmFzZWRPblRl
bXBsYXRlVm1Qb3B1cCgpKTsKICAgICAgICBtZW1TaXplRWRpdG9yLnNldExhYmVsKGNvbnN0YW50
cy5tZW1TaXplVm1Qb3B1cCgpKTsKICAgICAgICB0b3RhbHZDUFVzRWRpdG9yLnNldExhYmVsKGNv
bnN0YW50cy5udW1PZlZDUFVzKCkpOwogICAgICAgIGNvcmVQZXJTb2NrZXRFZGl0b3Iuc2V0TGFi
ZWwoY29uc3RhbnRzLmNvcmVzUGVyU29ja2V0KCkpOwogICAgICAgIG51bU9mU29ja2V0c0VkaXRv
ci5zZXRMYWJlbChjb25zdGFudHMubnVtT2ZTb2NrZXRzKCkpOwoKICAgICAgICBvU1R5cGVFZGl0
b3Iuc2V0TGFiZWwoY29uc3RhbnRzLm9zVm1Qb3B1cCgpKTsKICAgICAgICBpc1N0YXRlbGVzc0Vk
aXRvci5zZXRMYWJlbChjb25zdGFudHMuc3RhdGVsZXNzVm1Qb3B1cCgpKTsKICAgICAgICBpc0Rl
bGV0ZVByb3RlY3RlZEVkaXRvci5zZXRMYWJlbChjb25zdGFudHMuZGVsZXRlUHJvdGVjdGlvblBv
cHVwKCkpOwogICAgICAgIGlzU21hcnRjYXJkRW5hYmxlZEVkaXRvci5zZXRMYWJlbChjb25zdGFu
dHMuc21hcnRjYXJkVm1Qb3B1cCgpKTsKCiAgICAgICAgLy8gUG9vbHMgVGFiCiAgICAgICAgcG9v
bFRhYi5zZXRMYWJlbChjb25zdGFudHMucG9vbFZtUG9wdXAoKSk7CiAgICAgICAgcG9vbFR5cGVF
ZGl0b3Iuc2V0TGFiZWwoY29uc3RhbnRzLnBvb2xUeXBlVm1Qb3B1cCgpKTsKICAgICAgICBlZGl0
UHJlc3RhcnRlZFZtc0xhYmVsLnNldFRleHQoY29uc3RhbnRzLnByZXN0YXJ0ZWRWbXMoKSk7Cgog
ICAgICAgIHByZXN0YXJ0ZWRMYWJlbC5zZXRUZXh0KGNvbnN0YW50cy5wcmVzdGFydGVkUG9vbFBv
cHVwKCkpOwogICAgICAgIG51bU9mVm1zRWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy5udW1PZlZt
c1Bvb2xQb3B1cCgpKTsKCiAgICAgICAgLy8gaW5pdGlhbCBydW4gVGFiCiAgICAgICAgaW5pdGlh
bFJ1blRhYi5zZXRMYWJlbChjb25zdGFudHMuaW5pdGlhbFJ1blZtUG9wdXAoKSk7CiAgICAgICAg
ZG9tYWluRWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy5kb21haW5WbVBvcHVwKCkpOwogICAgICAg
IHRpbWVab25lRWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy50elZtUG9wdXAoKSk7CgogICAgICAg
IC8vIENvbnNvbGUgVGFiCiAgICAgICAgY29uc29sZVRhYi5zZXRMYWJlbChjb25zdGFudHMuY29u
c29sZVZtUG9wdXAoKSk7CiAgICAgICAgZGlzcGxheVByb3RvY29sRWRpdG9yLnNldExhYmVsKGNv
bnN0YW50cy5wcm90b2NvbFZtUG9wdXAoKSk7CiAgICAgICAgdXNiU3VwcG9ydEVkaXRvci5zZXRM
YWJlbChjb25zdGFudHMudXNiUG9saWN5Vm1Qb3B1cCgpKTsKICAgICAgICBudW1PZk1vbml0b3Jz
RWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy5tb25pdG9yc1ZtUG9wdXAoKSk7CiAgICAgICAgYWxs
b3dDb25zb2xlUmVjb25uZWN0RWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy5hbGxvd0NvbnNvbGVS
ZWNvbm5lY3QoKSk7CgogICAgICAgIC8vIEhvc3QgVGFiCiAgICAgICAgaG9zdFRhYi5zZXRMYWJl
bChjb25zdGFudHMuaG9zdFZtUG9wdXAoKSk7CiAgICAgICAgaXNBdXRvQXNzaWduRWRpdG9yLnNl
dExhYmVsKGNvbnN0YW50cy5hbnlIb3N0SW5DbHVzdGVyVm1Qb3B1cCgpKTsKICAgICAgICAvLyBz
cGVjaWZpY0hvc3RFZGl0b3Iuc2V0TGFiZWwoIlNwZWNpZmljIik7CiAgICAgICAgcnVuVk1PblRy
dXN0ZWRIb3N0RWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy5ydW5WTU9uVHJ1c3RlZEhvc3RWbVBv
cHVwKCkpOwogICAgICAgIHJ1blZNT25TcGVjaWZpY0hvc3RFZGl0b3Iuc2V0TGFiZWwoY29uc3Rh
bnRzLnJ1bk9uU2VsZWN0ZWRIb3N0Vm1Qb3B1cCgpKTsKICAgICAgICBob3N0Q3B1RWRpdG9yLnNl
dExhYmVsKGNvbnN0YW50cy51c2VIb3N0Q3B1KCkpOwogICAgICAgIGRvbnRNaWdyYXRlVk1FZGl0
b3Iuc2V0TGFiZWwoY29uc3RhbnRzLmFsbG93TWlncmF0aW9uT25seUFkbWluVm1Qb3B1cCgpKTsK
ICAgICAgICBjcHVQaW5uaW5nLnNldExhYmVsKGNvbnN0YW50cy5jcHVQaW5uaW5nTGFiZWwoKSk7
CiAgICAgICAgY3B1UGlubmluZ0xhYmVsLnNldEhUTUwoY29uc3RhbnRzLmNwdVBpbm5pbmdMYWJl
bEV4cGxhbmF0aW9uKCkpOwoKICAgICAgICAvLyBIaWdoIEF2YWlsYWJpbGl0eSBUYWIKICAgICAg
ICBpc0hpZ2hseUF2YWlsYWJsZUVkaXRvci5zZXRMYWJlbChjb25zdGFudHMuaGlnaGx5QXZhaWxh
YmxlVm1Qb3B1cCgpKTsKCiAgICAgICAgLy8gUmVzb3VyY2UgQWxsb2NhdGlvbiBUYWIKICAgICAg
ICBwcm92aXNpb25pbmdFZGl0b3Iuc2V0TGFiZWwoY29uc3RhbnRzLnRlbXBsYXRlUHJvdmlzVm1Q
b3B1cCgpKTsKICAgICAgICBwcm92aXNpb25pbmdUaGluRWRpdG9yLnNldExhYmVsKGNvbnN0YW50
cy50aGluVm1Qb3B1cCgpKTsKICAgICAgICBwcm92aXNpb25pbmdDbG9uZUVkaXRvci5zZXRMYWJl
bChjb25zdGFudHMuY2xvbmVWbVBvcHVwKCkpOwogICAgICAgIG1pbkFsbG9jYXRlZE1lbW9yeUVk
aXRvci5zZXRMYWJlbChjb25zdGFudHMucGh5c01lbUd1YXJWbVBvcHVwKCkpOwoKICAgICAgICAv
LyBCb290IE9wdGlvbnMKICAgICAgICBmaXJzdEJvb3REZXZpY2VFZGl0b3Iuc2V0TGFiZWwoY29u
c3RhbnRzLmZpcnN0RGV2aWNlVm1Qb3B1cCgpKTsKICAgICAgICBzZWNvbmRCb290RGV2aWNlRWRp
dG9yLnNldExhYmVsKGNvbnN0YW50cy5zZWNvbmREZXZpY2VWbVBvcHVwKCkpOwogICAgICAgIGtl
cm5lbF9wYXRoRWRpdG9yLnNldExhYmVsKGNvbnN0YW50cy5rZXJuZWxQYXRoVm1Qb3B1cCgpKTsK
ICAgICAgICBpbml0cmRfcGF0aEVkaXRvci5zZXRMYWJlbChjb25zdGFudHMuaW5pdHJkUGF0aFZt
UG9wdXAoKSk7CiAgICAgICAga2VybmVsX3BhcmFtZXRlcnNFZGl0b3Iuc2V0TGFiZWwoY29uc3Rh
bnRzLmtlcm5lbFBhcmFtc1ZtUG9wdXAoKSk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIGFwcGx5
U3R5bGVzKCkgewogICAgICAgIHJ1blZNT25TcGVjaWZpY0hvc3RFZGl0b3IuYWRkQ29udGVudFdp
ZGdldFN0eWxlTmFtZShzdHlsZS5sb25nQ2hlY2tib3hDb250ZW50KCkpOwogICAgICAgIGhvc3RD
cHVFZGl0b3IuYWRkQ29udGVudFdpZGdldFN0eWxlTmFtZShzdHlsZS5sb25nQ2hlY2tib3hDb250
ZW50KCkpOwogICAgICAgIGRvbnRNaWdyYXRlVk1FZGl0b3IuYWRkQ29udGVudFdpZGdldFN0eWxl
TmFtZShzdHlsZS5sb25nQ2hlY2tib3hDb250ZW50KCkpOwogICAgICAgIGFsbG93Q29uc29sZVJl
Y29ubmVjdEVkaXRvci5hZGRDb250ZW50V2lkZ2V0U3R5bGVOYW1lKHN0eWxlLmxvbmdDaGVja2Jv
eENvbnRlbnQoKSk7CiAgICAgICAgcHJvdmlzaW9uaW5nRWRpdG9yLmFkZENvbnRlbnRXaWRnZXRT
dHlsZU5hbWUoc3R5bGUucHJvdmlzaW9uaW5nRWRpdG9yQ29udGVudCgpKTsKICAgICAgICBwcm92
aXNpb25pbmdUaGluRWRpdG9yLmFkZENvbnRlbnRXaWRnZXRTdHlsZU5hbWUoc3R5bGUucHJvdmlz
aW9uaW5nUmFkaW9Db250ZW50KCkpOwogICAgICAgIHByb3Zpc2lvbmluZ0Nsb25lRWRpdG9yLmFk
ZENvbnRlbnRXaWRnZXRTdHlsZU5hbWUoc3R5bGUucHJvdmlzaW9uaW5nUmFkaW9Db250ZW50KCkp
OwogICAgICAgIGNkQXR0YWNoZWRFZGl0b3IuYWRkQ29udGVudFdpZGdldFN0eWxlTmFtZShzdHls
ZS5jZEF0dGFjaGVkTGFiZWxXaWR0aCgpKTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1Ymxp
YyB2b2lkIGVkaXQoVW5pdFZtTW9kZWwgb2JqZWN0KSB7CiAgICAgICAgcHJpb3JpdHlFZGl0b3Iu
c2V0Um93RGF0YShuZXcgQXJyYXlMaXN0PEVudGl0eU1vZGVsPigpKTsKICAgICAgICBwcmlvcml0
eUVkaXRvci5lZGl0KG9iamVjdC5nZXRQcmlvcml0eSgpKTsKICAgICAgICBEcml2ZXIuZHJpdmVy
LmVkaXQob2JqZWN0KTsKICAgICAgICBpbml0VGFiQXZhaWxhYmlsaXR5TGlzdGVuZXJzKG9iamVj
dCk7CiAgICAgICAgaW5pdExpc3RlbmVycyhvYmplY3QpOwogICAgICAgIGluaXRDdXN0b21Qcm9w
ZXJ0eVNoZWV0KG9iamVjdCk7CgogICAgICAgIC8vIG51bU9mVm1zTGFiZWwuc2V0VmlzaWJsZShm
YWxzZSk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIGluaXRDdXN0b21Qcm9wZXJ0eVNoZWV0KGZp
bmFsIFVuaXRWbU1vZGVsIG9iamVjdCkgewogICAgICAgIG9iamVjdC5nZXRDdXN0b21Qcm9wZXJ0
eVNoZWV0KCkuZ2V0S2V5VmFsdWVMaW5lcygpLmdldEl0ZW1zQ2hhbmdlZEV2ZW50KCkuYWRkTGlz
dGVuZXIobmV3IElFdmVudExpc3RlbmVyKCkgewoKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAg
ICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50UmFpc2VkKEV2ZW50IGV2LCBPYmplY3Qgc2VuZGVyLCBF
dmVudEFyZ3MgYXJncykgewogICAgICAgICAgICAgICAgY3VzdG9tUHJvcGVydGllc1NoZWV0RWRp
dG9yLmVkaXQob2JqZWN0LmdldEN1c3RvbVByb3BlcnR5U2hlZXQoKSk7CiAgICAgICAgICAgIH0K
ICAgICAgICB9KTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgdm9pZCBzZXR1cEhvc3RUYWJBdmFpbGFi
aWxpdHkoVW5pdFZtTW9kZWwgbW9kZWwpIHsKICAgICAgICAvL2hvc3RUYWIuc2V0VmlzaWJsZSht
b2RlbC5nZXRJc0hvc3RBdmFpbGFibGUoKSk7CiAgICAgICAgaG9zdFRhYi5zZXRWaXNpYmxlKHRy
dWUpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBpbml0TGlzdGVuZXJzKGZpbmFsIFVuaXRWbU1v
ZGVsIG9iamVjdCkgewogICAgICAgIC8vIFRPRE8gc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGNv
cmUgZnJhbWV3b3JrCiAgICAgICAgb2JqZWN0LmdldFByb3BlcnR5Q2hhbmdlZEV2ZW50KCkuYWRk
TGlzdGVuZXIobmV3IElFdmVudExpc3RlbmVyKCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAg
ICAgICAgICAgcHVibGljIHZvaWQgZXZlbnRSYWlzZWQoRXZlbnQgZXYsIE9iamVjdCBzZW5kZXIs
IEV2ZW50QXJncyBhcmdzKSB7CiAgICAgICAgICAgICAgICBTdHJpbmcgcHJvcE5hbWUgPSAoKFBy
b3BlcnR5Q2hhbmdlZEV2ZW50QXJncykgYXJncykuUHJvcGVydHlOYW1lOwogICAgICAgICAgICAg
ICAgaWYgKCJJc0hvc3RBdmFpbGFibGUiLmVxdWFscyhwcm9wTmFtZSkpIHsgLy8kTk9OLU5MUy0x
JAogICAgICAgICAgICAgICAgICAgIHNldHVwSG9zdFRhYkF2YWlsYWJpbGl0eShvYmplY3QpOwog
ICAgICAgICAgICAgICAgfSBlbHNlIGlmICgiSXNIb3N0VGFiVmFsaWQiLmVxdWFscyhwcm9wTmFt
ZSkpIHsgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAgICAgIGlmIChvYmplY3QuZ2V0SXNI
b3N0VGFiVmFsaWQoKSkgewogICAgICAgICAgICAgICAgICAgICAgICBob3N0VGFiLm1hcmtBc1Zh
bGlkKCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgaG9zdFRhYi5tYXJrQXNJbnZhbGlkKG51bGwpOwogICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgc2V0dXBIb3N0VGFiQXZhaWxhYmlsaXR5KG9i
amVjdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgb2JqZWN0LmdldElzQXV0
b0Fzc2lnbigpLmdldFByb3BlcnR5Q2hhbmdlZEV2ZW50KCkuYWRkTGlzdGVuZXIobmV3IElFdmVu
dExpc3RlbmVyKCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIHZv
aWQgZXZlbnRSYWlzZWQoRXZlbnQgZXYsIE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKSB7
CiAgICAgICAgICAgICAgICBib29sZWFuIGlzQXV0b0Fzc2lnbiA9IChCb29sZWFuKSBvYmplY3Qu
Z2V0SXNBdXRvQXNzaWduKCkuZ2V0RW50aXR5KCk7CiAgICAgICAgICAgICAgICBib29sZWFuIHJ1
blZNT25UcnVzdGVkSG9zdCA9IChCb29sZWFuKSBvYmplY3QuZ2V0UnVuVk1PblRydXN0ZWRIb3N0
KCkuZ2V0RW50aXR5KCk7CiAgICAgICAgICAgICAgICBkZWZhdWx0SG9zdEVkaXRvci5zZXRFbmFi
bGVkKCFpc0F1dG9Bc3NpZ24gJiYgIXJ1blZNT25UcnVzdGVkSG9zdCk7CiAgICAgICAgICAgICAg
ICAvL2RlZmF1bHRIb3N0RWRpdG9yLnNldEVuYWJsZWQoIWlzQXV0b0Fzc2lnbik7CgogICAgICAg
ICAgICAgICAgLy8gb25seSB0aGlzIGlzIG5vdCBiaW5kIHRvIHRoZSBtb2RlbCwgc28gbmVlZHMg
dG8gbGlzdGVuIHRvIHRoZSBjaGFuZ2UgZXhwbGljaXRseQogICAgICAgICAgICAgICBzcGVjaWZp
Y0hvc3Quc2V0VmFsdWUoIWlzQXV0b0Fzc2lnbiAmJiAhcnVuVk1PblRydXN0ZWRIb3N0KTsKICAg
ICAgICAgICAgICAgLy9zcGVjaWZpY0hvc3Quc2V0VmFsdWUoIWlzQXV0b0Fzc2lnbik7CiAgICAg
ICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gb25seSBmb3Igbm9uIGxvY2FsIHN0b3Jh
Z2UgYXZhaWxhYmxlCiAgICAgICAgc2V0dXBIb3N0VGFiQXZhaWxhYmlsaXR5KG9iamVjdCk7Cgog
ICAgICAgIG9iamVjdC5nZXRTdG9yYWdlRG9tYWluKCkuZ2V0SXRlbXNDaGFuZ2VkRXZlbnQoKS5h
ZGRMaXN0ZW5lcihuZXcgSUV2ZW50TGlzdGVuZXIoKSB7CiAgICAgICAgICAgIEBPdmVycmlkZQog
ICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVudFJhaXNlZChFdmVudCBldiwgT2JqZWN0IHNlbmRl
ciwgRXZlbnRBcmdzIGFyZ3MpIHsKICAgICAgICAgICAgICAgIGFkZERpc2tBbGxvY2F0aW9uKG9i
amVjdCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgb2JqZWN0LmdldFByb3Zp
c2lvbmluZygpLmdldFByb3BlcnR5Q2hhbmdlZEV2ZW50KCkuYWRkTGlzdGVuZXIobmV3IElFdmVu
dExpc3RlbmVyKCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIHZv
aWQgZXZlbnRSYWlzZWQoRXZlbnQgZXYsIE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBhcmdzKSB7
CiAgICAgICAgICAgICAgICBib29sZWFuIGlzUHJvdmlzaW9uaW5nQ2hhbmdhYmxlID0gb2JqZWN0
LmdldFByb3Zpc2lvbmluZygpLmdldElzQ2hhbmdhYmxlKCk7CiAgICAgICAgICAgICAgICBwcm92
aXNpb25pbmdUaGluRWRpdG9yLnNldEVuYWJsZWQoaXNQcm92aXNpb25pbmdDaGFuZ2FibGUpOwog
ICAgICAgICAgICAgICAgcHJvdmlzaW9uaW5nQ2xvbmVFZGl0b3Iuc2V0RW5hYmxlZChpc1Byb3Zp
c2lvbmluZ0NoYW5nYWJsZSk7CgogICAgICAgICAgICAgICAgYm9vbGVhbiBpc1Byb3Zpc2lvbmlu
Z0F2YWlsYWJsZSA9IG9iamVjdC5nZXRQcm92aXNpb25pbmcoKS5nZXRJc0F2YWlsYWJsZSgpOwog
ICAgICAgICAgICAgICAgcHJvdmlzaW9uU2VsZWN0aW9uUGFuZWwuc2V0VmlzaWJsZShpc1Byb3Zp
c2lvbmluZ0F2YWlsYWJsZSk7CgogICAgICAgICAgICAgICAgYm9vbGVhbiBpc0Rpc2tzQXZhaWxh
YmxlID0gb2JqZWN0LmdldElzRGlza3NBdmFpbGFibGUoKTsKICAgICAgICAgICAgICAgIGRpc2tz
QWxsb2NhdGlvblBhbmVsLnNldFZpc2libGUoaXNEaXNrc0F2YWlsYWJsZSk7CgogICAgICAgICAg
ICAgICAgc3RvcmFnZUFsbG9jYXRpb25QYW5lbC5zZXRWaXNpYmxlKGlzUHJvdmlzaW9uaW5nQXZh
aWxhYmxlIHx8IGlzRGlza3NBdmFpbGFibGUpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7Cgog
ICAgICAgIG9iamVjdC5nZXRVc2JQb2xpY3koKS5nZXRQcm9wZXJ0eUNoYW5nZWRFdmVudCgpLmFk
ZExpc3RlbmVyKG5ldyBJRXZlbnRMaXN0ZW5lcigpIHsKCiAgICAgICAgICAgIEBPdmVycmlkZQog
ICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVudFJhaXNlZChFdmVudCBldiwgT2JqZWN0IHNlbmRl
ciwgRXZlbnRBcmdzIGFyZ3MpIHsKICAgICAgICAgICAgICAgIFByb3BlcnR5Q2hhbmdlZEV2ZW50
QXJncyBlID0gKFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncykgYXJnczsKCiAgICAgICAgICAgICAg
ICBpZiAoZS5Qcm9wZXJ0eU5hbWUgPT0gIlNlbGVjdGVkSXRlbSIpIHsgLy8kTk9OLU5MUy0xJAog
ICAgICAgICAgICAgICAgICAgIHVwZGF0ZVVzYk5hdGl2ZU1lc3NhZ2VWaXNpYmlsaXR5KG9iamVj
dCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAg
dXBkYXRlVXNiTmF0aXZlTWVzc2FnZVZpc2liaWxpdHkob2JqZWN0KTsKICAgIH0KCiAgICBwcm90
ZWN0ZWQgdm9pZCB1cGRhdGVVc2JOYXRpdmVNZXNzYWdlVmlzaWJpbGl0eShmaW5hbCBVbml0Vm1N
b2RlbCBvYmplY3QpIHsKICAgICAgICBuYXRpdmVVc2JXYXJuaW5nTWVzc2FnZS5zZXRWaXNpYmxl
KG9iamVjdC5nZXRVc2JQb2xpY3koKS5nZXRTZWxlY3RlZEl0ZW0oKSA9PSBVc2JQb2xpY3kuRU5B
QkxFRF9OQVRJVkUpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBhZGREaXNrQWxsb2NhdGlvbihV
bml0Vm1Nb2RlbCBtb2RlbCkgewogICAgICAgIC8vIEFycmF5TGlzdDxzdG9yYWdlX2RvbWFpbnM+
IHN0b3JhZ2VEb21haW5zID0gKEFycmF5TGlzdDxzdG9yYWdlX2RvbWFpbnM+KSBtb2RlbC5nZXRT
dG9yYWdlRG9tYWluKCkuZ2V0SXRlbXMoKTsKICAgICAgICBpZiAoIW1vZGVsLmdldElzRGlza3NB
dmFpbGFibGUoKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGRpc2tz
QWxsb2NhdGlvblZpZXcuZWRpdChtb2RlbC5nZXREaXNrc0FsbG9jYXRpb25Nb2RlbCgpKTsKICAg
ICAgICBtb2RlbC5nZXREaXNrc0FsbG9jYXRpb25Nb2RlbCgpLmdldFN0b3JhZ2VEb21haW4oKS5z
ZXRJdGVtcyhtb2RlbC5nZXRTdG9yYWdlRG9tYWluKCkuZ2V0SXRlbXMoKSk7CiAgICAgICAgbW9k
ZWwuZ2V0RGlza3NBbGxvY2F0aW9uTW9kZWwoKS5zZXREaXNrcyhtb2RlbC5nZXREaXNrcygpKTsK
ICAgIH0KCiAgICBwcml2YXRlIHZvaWQgaW5pdFRhYkF2YWlsYWJpbGl0eUxpc3RlbmVycyhmaW5h
bCBVbml0Vm1Nb2RlbCB2bSkgewogICAgICAgIC8vIFRPRE8gc2hvdWxkIGJlIGhhbmRsZWQgYnkg
dGhlIGNvcmUgZnJhbWV3b3JrCiAgICAgICAgdm0uZ2V0UHJvcGVydHlDaGFuZ2VkRXZlbnQoKS5h
ZGRMaXN0ZW5lcihuZXcgSUV2ZW50TGlzdGVuZXIoKSB7CiAgICAgICAgICAgIEBPdmVycmlkZQog
ICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVudFJhaXNlZChFdmVudCBldiwgT2JqZWN0IHNlbmRl
ciwgRXZlbnRBcmdzIGFyZ3MpIHsKICAgICAgICAgICAgICAgIFN0cmluZyBwcm9wTmFtZSA9ICgo
UHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdzKSBhcmdzKS5Qcm9wZXJ0eU5hbWU7CiAgICAgICAgICAg
ICAgICBpZiAoIklzV2luZG93c09TIi5lcXVhbHMocHJvcE5hbWUpKSB7IC8vJE5PTi1OTFMtMSQK
ICAgICAgICAgICAgICAgICAgICBkb21haW5FZGl0b3Iuc2V0RW5hYmxlZCh2bS5nZXRJc1dpbmRv
d3NPUygpKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIklzR2VuZXJhbFRhYlZhbGlkIi5l
cXVhbHMocHJvcE5hbWUpKSB7IC8vJE5PTi1OTFMtMSQKICAgICAgICAgICAgICAgICAgICBpZiAo
dm0uZ2V0SXNHZW5lcmFsVGFiVmFsaWQoKSkgewogICAgICAgICAgICAgICAgICAgICAgICBnZW5l
cmFsVGFiLm1hcmtBc1ZhbGlkKCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgZ2VuZXJhbFRhYi5tYXJrQXNJbnZhbGlkKG51bGwpOwogICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIklzRGlzcGxheVRhYlZh
bGlkIi5lcXVhbHMocHJvcE5hbWUpKSB7IC8vJE5PTi1OTFMtMSQKICAgICAgICAgICAgICAgICAg
ICBpZiAodm0uZ2V0SXNEaXNwbGF5VGFiVmFsaWQoKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICBjb25zb2xlVGFiLm1hcmtBc1ZhbGlkKCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZVRhYi5tYXJrQXNJbnZhbGlkKG51bGwpOwog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIklzQWxsb2Nh
dGlvblRhYlZhbGlkIi5lcXVhbHMocHJvcE5hbWUpKSB7IC8vJE5PTi1OTFMtMSQKICAgICAgICAg
ICAgICAgICAgICBpZiAodm0uZ2V0SXNBbGxvY2F0aW9uVGFiVmFsaWQoKSkgewogICAgICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZUFsbG9jYXRpb25UYWIubWFya0FzVmFsaWQoKTsKICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZUFs
bG9jYXRpb25UYWIubWFya0FzSW52YWxpZChudWxsKTsKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKCJJc0hpZ2hseUF2YWlsYWJsZSIuZXF1YWxzKHByb3BO
YW1lKSkgeyAvLyROT04tTkxTLTEkCiAgICAgICAgICAgICAgICAgICAgaGlnaEF2YWlsYWJpbGl0
eVRhYi5zZXRWaXNpYmxlKChCb29sZWFuKSB2bS5nZXRJc0hpZ2hseUF2YWlsYWJsZSgpLmdldEVu
dGl0eSgpKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIklzQm9vdFNlcXVlbmNlVGFiVmFs
aWQiLmVxdWFscyhwcm9wTmFtZSkpIHsgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAgICAg
IGlmICgoQm9vbGVhbikgdm0uZ2V0SXNIaWdobHlBdmFpbGFibGUoKS5nZXRFbnRpdHkoKSkgewog
ICAgICAgICAgICAgICAgICAgICAgICBib290T3B0aW9uc1RhYi5tYXJrQXNWYWxpZCgpOwogICAg
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJvb3RPcHRp
b25zVGFiLm1hcmtBc0ludmFsaWQobnVsbCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfSBlbHNlIGlmICgiSXNDdXN0b21Qcm9wZXJ0aWVzVGFiVmFsaWQiLmVxdWFscyhw
cm9wTmFtZSkpIHsgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAgICAgIGlmICh2bS5nZXRJ
c0N1c3RvbVByb3BlcnRpZXNUYWJWYWxpZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGN1
c3RvbVByb3BlcnRpZXNUYWIubWFya0FzVmFsaWQoKTsKICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21Qcm9wZXJ0aWVzVGFiLm1hcmtBc0lu
dmFsaWQobnVsbCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgZWxzZSBpZiAoIklzRGlza3NBdmFpbGFibGUiLmVxdWFscyhwcm9wTmFtZSkp
IHsgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gaXNEaXNrc0F2YWls
YWJsZSA9IHZtLmdldElzRGlza3NBdmFpbGFibGUoKTsKICAgICAgICAgICAgICAgICAgICBkaXNr
c0FsbG9jYXRpb25QYW5lbC5zZXRWaXNpYmxlKGlzRGlza3NBdmFpbGFibGUpOwoKICAgICAgICAg
ICAgICAgICAgICBib29sZWFuIGlzUHJvdmlzaW9uaW5nQXZhaWxhYmxlID0gdm0uZ2V0UHJvdmlz
aW9uaW5nKCkuZ2V0SXNBdmFpbGFibGUoKTsKICAgICAgICAgICAgICAgICAgICBzdG9yYWdlQWxs
b2NhdGlvblBhbmVsLnNldFZpc2libGUoaXNQcm92aXNpb25pbmdBdmFpbGFibGUgfHwgaXNEaXNr
c0F2YWlsYWJsZSk7CgogICAgICAgICAgICAgICAgICAgIGlmIChpc0Rpc2tzQXZhaWxhYmxlKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB3YXJuaW5nIG1lc3NhZ2UgYnkgZGlz
a3Mgc3RhdHVzCiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZURpc2tzV2FybmluZ0J5SW1h
Z2VTdGF0dXModm0uZ2V0RGlza3MoKSwgSW1hZ2VTdGF0dXMuSUxMRUdBTCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgIHVwZGF0ZURpc2tzV2FybmluZ0J5SW1hZ2VTdGF0dXModm0uZ2V0RGlza3Mo
KSwgSW1hZ2VTdGF0dXMuTE9DS0VEKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIHdhcm5pbmcg
bWVzc2FnZQogICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmFsV2FybmluZ01lc3NhZ2Uuc2V0
VGV4dCgiIik7IC8vJE5PTi1OTFMtMSQKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gSGlnaCBBdmFpbGFi
aWxpdHkgb25seSBhdmFpbCBpbiBzZXJ2ZXIgbW9kZQogICAgICAgIGhpZ2hBdmFpbGFiaWxpdHlU
YWIuc2V0VmlzaWJsZSh2bS5nZXRWbVR5cGUoKS5lcXVhbHMoVm1UeXBlLlNlcnZlcikpOwoKICAg
ICAgICAvLyBUT0RPOiBNb3ZlIHRvIGEgbW9yZSBhcHByb3ByaWF0ZSBtZXRob2QKICAgICAgICB2
bS5nZXRQcm9wZXJ0eUNoYW5nZWRFdmVudCgpLmFkZExpc3RlbmVyKG5ldyBJRXZlbnRMaXN0ZW5l
cigpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyB2b2lkIGV2ZW50
UmFpc2VkKEV2ZW50IGV2LCBPYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgYXJncykgewogICAgICAg
ICAgICAgICAgU3RyaW5nIHByb3BOYW1lID0gKChQcm9wZXJ0eUNoYW5nZWRFdmVudEFyZ3MpIGFy
Z3MpLlByb3BlcnR5TmFtZTsKICAgICAgICAgICAgICAgIGlmICgiSXNMaW51eF9VbmFzc2lnbl9V
bmtub3duT1MiLmVxdWFscyhwcm9wTmFtZSkpIHsgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAg
ICAgICAgIGxpbnV4Qm9vdE9wdGlvbnNQYW5lbC5zZXRWaXNpYmxlKHZtLmdldElzTGludXhfVW5h
c3NpZ25fVW5rbm93bk9TKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg
ICAgfSk7CgogICAgICAgIC8vIG9ubHkgYXZhaWwgZm9yIGRlc2t0b3AgbW9kZQogICAgICAgIGlz
U3RhdGVsZXNzRWRpdG9yLnNldFZpc2libGUodm0uZ2V0Vm1UeXBlKCkuZXF1YWxzKFZtVHlwZS5E
ZXNrdG9wKSk7CiAgICAgICAgbnVtT2ZNb25pdG9yc0VkaXRvci5zZXRWaXNpYmxlKHZtLmdldFZt
VHlwZSgpLmVxdWFscyhWbVR5cGUuRGVza3RvcCkpOwoKICAgICAgICBkZWZhdWx0SG9zdEVkaXRv
ci5zZXRFbmFibGVkKGZhbHNlKTsKICAgICAgICBzcGVjaWZpY0hvc3QuYWRkVmFsdWVDaGFuZ2VI
YW5kbGVyKG5ldyBWYWx1ZUNoYW5nZUhhbmRsZXI8Qm9vbGVhbj4oKSB7CiAgICAgICAgICAgIEBP
dmVycmlkZQogICAgICAgICAgICBwdWJsaWMgdm9pZCBvblZhbHVlQ2hhbmdlKFZhbHVlQ2hhbmdl
RXZlbnQ8Qm9vbGVhbj4gZXZlbnQpIHsKICAgICAgICAgICAgICAgICAgICBkZWZhdWx0SG9zdEVk
aXRvci5zZXRFbmFibGVkKHNwZWNpZmljSG9zdC5nZXRWYWx1ZSgpKTsKICAgICAgICAgICAgICAg
ICAgICAgVmFsdWVDaGFuZ2VFdmVudC5maXJlKGlzQXV0b0Fzc2lnbkVkaXRvci5hc1JhZGlvQnV0
dG9uKCksIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICAvLyBUT0RP
OiBUaGlzIGlzIGEgaGFjayBhbmQgc2hvdWxkIGJlIGhhbmRsZWQgY2xlYW5seSB2aWEgbW9kZWwg
cHJvcGVydHkgYXZhaWxhYmlsaXR5CiAgICAgICAgaXNBdXRvQXNzaWduRWRpdG9yLmFkZERvbUhh
bmRsZXIobmV3IENsaWNrSGFuZGxlcigpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAg
ICAgIHB1YmxpYyB2b2lkIG9uQ2xpY2soQ2xpY2tFdmVudCBldmVudCkgewogICAgICAgICAgICAg
ICAgZGVmYXVsdEhvc3RFZGl0b3Iuc2V0RW5hYmxlZChmYWxzZSk7CiAgICAgICAgICAgIH0KICAg
ICAgICB9LCBDbGlja0V2ZW50LmdldFR5cGUoKSk7CgogICAgICAgIHZtLmdldElzQXV0b0Fzc2ln
bigpLmdldEVudGl0eUNoYW5nZWRFdmVudCgpLmFkZExpc3RlbmVyKG5ldyBJRXZlbnRMaXN0ZW5l
cigpIHsKCiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVu
dFJhaXNlZChFdmVudCBldiwgT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGFyZ3MpIHsKICAgICAg
ICAgICAgICAgIGlmICghaXNBdXRvQXNzaWduRWRpdG9yLmFzUmFkaW9CdXR0b24oKS5nZXRWYWx1
ZSgpICYmICFydW5WTU9uVHJ1c3RlZEhvc3RFZGl0b3IuYXNSYWRpb0J1dHRvbigpLmdldFZhbHVl
KCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWNIb3N0LnNl
dFZhbHVlKHRydWUsIHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg
ICAgfSk7CgogICAgICAgIC8qcnVuVk1PblRydXN0ZWRIb3N0RWRpdG9yLmFkZERvbUhhbmRsZXIo
bmV3IENsaWNrSGFuZGxlcigpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1
YmxpYyB2b2lkIG9uQ2xpY2soQ2xpY2tFdmVudCBldmVudCkgewogICAgICAgICAgICAgICAgZGVm
YXVsdEhvc3RFZGl0b3Iuc2V0RW5hYmxlZChmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9
LCBDbGlja0V2ZW50LmdldFR5cGUoKSk7CgogICAgICAgIHZtLmdldFJ1blZNT25UcnVzdGVkSG9z
dCgpLmdldEVudGl0eUNoYW5nZWRFdmVudCgpLmFkZExpc3RlbmVyKG5ldyBJRXZlbnRMaXN0ZW5l
cigpIHsKCiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVu
dFJhaXNlZChFdmVudCBldiwgT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGFyZ3MpIHsKICAgICAg
ICAgICAgICAgIGlmICghcnVuVk1PblRydXN0ZWRIb3N0RWRpdG9yLmFzUmFkaW9CdXR0b24oKS5n
ZXRWYWx1ZSgpICYmICFpc0F1dG9Bc3NpZ25FZGl0b3IuYXNSYWRpb0J1dHRvbigpLmdldFZhbHVl
KCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWNIb3N0LnNl
dFZhbHVlKHRydWUsIHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAg
ICAgfSk7Ki8KCiAgICAgICAgY3B1UGlubmluZ0xhYmVsLnNldFZpc2libGUodm0uZ2V0Q3B1UGlu
bmluZygpLmdldElzQXZhaWxhYmxlKCkpOwogICAgICAgIHZtLmdldENwdVBpbm5pbmcoKS5nZXRQ
cm9wZXJ0eUNoYW5nZWRFdmVudCgpLmFkZExpc3RlbmVyKG5ldyBJRXZlbnRMaXN0ZW5lcigpIHsK
CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgdm9pZCBldmVudFJhaXNl
ZChFdmVudCBldiwgT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGFyZ3MpIHsKICAgICAgICAgICAg
ICAgIGNwdVBpbm5pbmdMYWJlbC5zZXRWaXNpYmxlKHZtLmdldENwdVBpbm5pbmcoKS5nZXRJc0F2
YWlsYWJsZSgpKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgIH0KCiAgICBwcml2YXRl
IHZvaWQgdXBkYXRlRGlza3NXYXJuaW5nQnlJbWFnZVN0YXR1cyhMaXN0PERpc2tNb2RlbD4gZGlz
a3MsIEltYWdlU3RhdHVzIGltYWdlU3RhdHVzKSB7CiAgICAgICAgQXJyYXlMaXN0PFN0cmluZz4g
ZGlza3NBbGlhc2VzID0KICAgICAgICAgICAgICAgIGdldERpc2tzQWxpYXNlc0J5SW1hZ2VTdGF0
dXMoZGlza3MsIGltYWdlU3RhdHVzKTsKCiAgICAgICAgaWYgKCFkaXNrc0FsaWFzZXMuaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgIGdlbmVyYWxXYXJuaW5nTWVzc2FnZS5zZXRUZXh0KG1lc3NhZ2Vz
LmRpc2tzU3RhdHVzV2FybmluZygKICAgICAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRvci5j
cmVhdGVBbmRUcmFuc2xhdGUoaW1hZ2VTdGF0dXMpLAogICAgICAgICAgICAgICAgICAgIChTdHJp
bmdVdGlscy5qb2luKGRpc2tzQWxpYXNlcywgIiwgIikpKSk7IC8vJE5PTi1OTFMtMSQKICAgICAg
ICB9CiAgICB9CgogICAgcHJpdmF0ZSBBcnJheUxpc3Q8U3RyaW5nPiBnZXREaXNrc0FsaWFzZXNC
eUltYWdlU3RhdHVzKExpc3Q8RGlza01vZGVsPiBkaXNrcywgSW1hZ2VTdGF0dXMgc3RhdHVzKSB7
CiAgICAgICAgQXJyYXlMaXN0PFN0cmluZz4gZGlza3NBbGlhc2VzID0gbmV3IEFycmF5TGlzdDxT
dHJpbmc+KCk7CgogICAgICAgIGlmIChkaXNrcyA9PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVy
biBkaXNrc0FsaWFzZXM7CiAgICAgICAgfQoKICAgICAgICBmb3IgKERpc2tNb2RlbCBkaXNrTW9k
ZWwgOiBkaXNrcykgewogICAgICAgICAgICBEaXNrIGRpc2sgPSBkaXNrTW9kZWwuZ2V0RGlzaygp
OwogICAgICAgICAgICBpZiAoZGlzay5nZXREaXNrU3RvcmFnZVR5cGUoKSA9PSBEaXNrU3RvcmFn
ZVR5cGUuSU1BR0UgJiYKICAgICAgICAgICAgICAgICAgICAoKERpc2tJbWFnZSkgZGlzaykuZ2V0
aW1hZ2VTdGF0dXMoKSA9PSBzdGF0dXMpIHsKCiAgICAgICAgICAgICAgICBkaXNrc0FsaWFzZXMu
YWRkKGRpc2suZ2V0RGlza0FsaWFzKCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAg
ICByZXR1cm4gZGlza3NBbGlhc2VzOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHVibGljIFVu
aXRWbU1vZGVsIGZsdXNoKCkgewogICAgICAgIHByaW9yaXR5RWRpdG9yLmZsdXNoKCk7CiAgICAg
ICAgcmV0dXJuIERyaXZlci5kcml2ZXIuZmx1c2goKTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAg
IHB1YmxpYyB2b2lkIGZvY3VzSW5wdXQoKSB7CiAgICAgICAgbmFtZUVkaXRvci5zZXRGb2N1cyh0
cnVlKTsKICAgIH0KCiAgICBwdWJsaWMgaW50ZXJmYWNlIEJ1dHRvbkNlbGxUYWJsZVJlc291cmNl
cyBleHRlbmRzIENlbGxUYWJsZS5SZXNvdXJjZXMgewogICAgICAgIGludGVyZmFjZSBUYWJsZVN0
eWxlIGV4dGVuZHMgQ2VsbFRhYmxlLlN0eWxlIHsKICAgICAgICB9CgogICAgICAgIEBPdmVycmlk
ZQogICAgICAgIEBTb3VyY2UoeyBDZWxsVGFibGUuU3R5bGUuREVGQVVMVF9DU1MsICJvcmcvb3Zp
cnQvZW5naW5lL3VpL2NvbW1vbi9jc3MvQnV0dG9uQ2VsbFRhYmxlLmNzcyIgfSkKICAgICAgICBU
YWJsZVN0eWxlIGNlbGxUYWJsZVN0eWxlKCk7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwdWJs
aWMgaW50IHNldFRhYkluZGV4ZXMoaW50IG5leHRUYWJJbmRleCkgewogICAgICAgIC8vID09R2Vu
ZXJhbCBUYWI9PQogICAgICAgIG5leHRUYWJJbmRleCA9IGdlbmVyYWxUYWIuc2V0VGFiSW5kZXhl
cyhuZXh0VGFiSW5kZXgpOwogICAgICAgIGRhdGFDZW50ZXJFZGl0b3Iuc2V0VGFiSW5kZXgobmV4
dFRhYkluZGV4KyspOwogICAgICAgIGNsdXN0ZXJFZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYklu
ZGV4KyspOwogICAgICAgIHF1b3RhRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsrKTsK
ICAgICAgICBuYW1lRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsrKTsKICAgICAgICBk
ZXNjcmlwdGlvbkVkaXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5kZXgrKyk7CgogICAgICAgIG51
bU9mVm1zRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsrKTsKICAgICAgICBwcmVzdGFy
dGVkVm1zRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsrKTsKICAgICAgICBlZGl0UHJl
c3RhcnRlZFZtc0VkaXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5kZXgrKyk7CiAgICAgICAgaW5j
cmFzZU51bU9mVm1zRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsrKTsKCiAgICAgICAg
dGVtcGxhdGVFZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4KyspOwogICAgICAgIG1lbVNp
emVFZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4KyspOwogICAgICAgIHRvdGFsdkNQVXNF
ZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4KyspOwoKICAgICAgICBuZXh0VGFiSW5kZXgg
PSBnZW5lcmFsQWR2YW5jZWRQYXJhbWV0ZXJFeHBhbmRlci5zZXRUYWJJbmRleGVzKG5leHRUYWJJ
bmRleCk7CiAgICAgICAgY29yZVBlclNvY2tldEVkaXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5k
ZXgrKyk7CiAgICAgICAgbnVtT2ZTb2NrZXRzRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRl
eCsrKTsKCiAgICAgICAgb1NUeXBlRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsrKTsK
ICAgICAgICBpc1N0YXRlbGVzc0VkaXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5kZXgrKyk7CiAg
ICAgICAgaXNEZWxldGVQcm90ZWN0ZWRFZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4Kysp
OwoKICAgICAgICAvLyA9PSBQb29scyA9PQogICAgICAgIG5leHRUYWJJbmRleCA9IHBvb2xUYWIu
c2V0VGFiSW5kZXhlcyhuZXh0VGFiSW5kZXgpOwogICAgICAgIHBvb2xUeXBlRWRpdG9yLnNldFRh
YkluZGV4KG5leHRUYWJJbmRleCsrKTsKCiAgICAgICAgLy8gPT1Jbml0aWFsIHJ1biBUYWI9PQog
ICAgICAgIG5leHRUYWJJbmRleCA9IGluaXRpYWxSdW5UYWIuc2V0VGFiSW5kZXhlcyhuZXh0VGFi
SW5kZXgpOwogICAgICAgIHRpbWVab25lRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsr
KTsKICAgICAgICBkb21haW5FZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4KyspOwoKICAg
ICAgICAvLyA9PUNvbnNvbGUgVGFiPT0KICAgICAgICBuZXh0VGFiSW5kZXggPSBjb25zb2xlVGFi
LnNldFRhYkluZGV4ZXMobmV4dFRhYkluZGV4KTsKICAgICAgICBkaXNwbGF5UHJvdG9jb2xFZGl0
b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4KyspOwogICAgICAgIHVzYlN1cHBvcnRFZGl0b3Iu
c2V0VGFiSW5kZXgobmV4dFRhYkluZGV4KyspOwogICAgICAgIG51bU9mTW9uaXRvcnNFZGl0b3Iu
c2V0VGFiSW5kZXgobmV4dFRhYkluZGV4KyspOwogICAgICAgIGlzU21hcnRjYXJkRW5hYmxlZEVk
aXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5kZXgrKyk7CiAgICAgICAgbmV4dFRhYkluZGV4ID0g
ZXhwYW5kZXIuc2V0VGFiSW5kZXhlcyhuZXh0VGFiSW5kZXgpOwogICAgICAgIGFsbG93Q29uc29s
ZVJlY29ubmVjdEVkaXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5kZXgrKyk7CgogICAgICAgIC8v
ID09SG9zdCBUYWI9PQogICAgICAgIG5leHRUYWJJbmRleCA9IGhvc3RUYWIuc2V0VGFiSW5kZXhl
cyhuZXh0VGFiSW5kZXgpOwogICAgICAgIGlzQXV0b0Fzc2lnbkVkaXRvci5zZXRUYWJJbmRleChu
ZXh0VGFiSW5kZXgrKyk7CiAgICAgICAgc3BlY2lmaWNIb3N0LnNldFRhYkluZGV4KG5leHRUYWJJ
bmRleCsrKTsKICAgICAgICBkZWZhdWx0SG9zdEVkaXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5k
ZXgrKyk7CiAgICAgICAgcnVuVk1PblNwZWNpZmljSG9zdEVkaXRvci5zZXRUYWJJbmRleChuZXh0
VGFiSW5kZXgrKyk7CiAgICAgICAgcnVuVk1PblRydXN0ZWRIb3N0RWRpdG9yLnNldFRhYkluZGV4
KG5leHRUYWJJbmRleCsrKTsKICAgICAgICBob3N0Q3B1RWRpdG9yLnNldFRhYkluZGV4KG5leHRU
YWJJbmRleCsrKTsKICAgICAgICBkb250TWlncmF0ZVZNRWRpdG9yLnNldFRhYkluZGV4KG5leHRU
YWJJbmRleCsrKTsKICAgICAgICBjcHVQaW5uaW5nLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsr
KTsKCiAgICAgICAgLy8gPT1IaWdoIEF2YWlsYWJpbGl0eSBUYWI9PQogICAgICAgIG5leHRUYWJJ
bmRleCA9IGhpZ2hBdmFpbGFiaWxpdHlUYWIuc2V0VGFiSW5kZXhlcyhuZXh0VGFiSW5kZXgpOwog
ICAgICAgIGlzSGlnaGx5QXZhaWxhYmxlRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsr
KTsKICAgICAgICBwcmlvcml0eUVkaXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5kZXgrKyk7Cgog
ICAgICAgIC8vID09UmVzb3VyY2UgQWxsb2NhdGlvbiBUYWI9PQogICAgICAgIG5leHRUYWJJbmRl
eCA9IHJlc291cmNlQWxsb2NhdGlvblRhYi5zZXRUYWJJbmRleGVzKG5leHRUYWJJbmRleCk7CiAg
ICAgICAgbWluQWxsb2NhdGVkTWVtb3J5RWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRleCsr
KTsKICAgICAgICBwcm92aXNpb25pbmdFZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4Kysp
OwogICAgICAgIHByb3Zpc2lvbmluZ1RoaW5FZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4
KyspOwogICAgICAgIHByb3Zpc2lvbmluZ0Nsb25lRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJ
bmRleCsrKTsKICAgICAgICBuZXh0VGFiSW5kZXggPSBkaXNrc0FsbG9jYXRpb25WaWV3LnNldFRh
YkluZGV4ZXMobmV4dFRhYkluZGV4KTsKCiAgICAgICAgLy8gPT1Cb290IE9wdGlvbnMgVGFiPT0K
ICAgICAgICBuZXh0VGFiSW5kZXggPSBib290T3B0aW9uc1RhYi5zZXRUYWJJbmRleGVzKG5leHRU
YWJJbmRleCk7CiAgICAgICAgZmlyc3RCb290RGV2aWNlRWRpdG9yLnNldFRhYkluZGV4KG5leHRU
YWJJbmRleCsrKTsKICAgICAgICBzZWNvbmRCb290RGV2aWNlRWRpdG9yLnNldFRhYkluZGV4KG5l
eHRUYWJJbmRleCsrKTsKICAgICAgICBjZEF0dGFjaGVkRWRpdG9yLnNldFRhYkluZGV4KG5leHRU
YWJJbmRleCsrKTsKICAgICAgICBjZEltYWdlRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRl
eCsrKTsKICAgICAgICBrZXJuZWxfcGF0aEVkaXRvci5zZXRUYWJJbmRleChuZXh0VGFiSW5kZXgr
Kyk7CiAgICAgICAgaW5pdHJkX3BhdGhFZGl0b3Iuc2V0VGFiSW5kZXgobmV4dFRhYkluZGV4Kysp
OwogICAgICAgIGtlcm5lbF9wYXJhbWV0ZXJzRWRpdG9yLnNldFRhYkluZGV4KG5leHRUYWJJbmRl
eCsrKTsKCiAgICAgICAgLy8gPT1DdXN0b20gUHJvcGVydGllcyBUYWI9PQogICAgICAgIG5leHRU
YWJJbmRleCA9IGN1c3RvbVByb3BlcnRpZXNUYWIuc2V0VGFiSW5kZXhlcyhuZXh0VGFiSW5kZXgp
OwovLyAgICAgICAgY3VzdG9tUHJvcGVydGllc1NoZWV0RWRpdG9yLnNldFRhYkluZGV4KG5leHRU
YWJJbmRleCsrKTsKCiAgICAgICAgcmV0dXJuIG5leHRUYWJJbmRleDsKICAgIH0KfQo=
--_005_C5A0092C63E939488005F15F736A8112097A57B9SHSMSX101ccrcor_
Content-Type: application/octet-stream; name="VmListModel.java"
Content-Description: VmListModel.java
Content-Disposition: attachment; filename="VmListModel.java"; size=114678;
creation-date="Tue, 12 Mar 2013 08:37:27 GMT";
modification-date="Tue, 12 Mar 2013 08:29:15 GMT"
Content-Transfer-Encoding: base64
cGFja2FnZSBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLm1vZGVscy52bXM7CgppbXBv
cnQgamF2YS51dGlsLkFycmF5TGlzdDsKaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBq
YXZhLnV0aWwuSGFzaE1hcDsKaW1wb3J0IGphdmEudXRpbC5MaW5rZWRMaXN0OwppbXBvcnQgamF2
YS51dGlsLkxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuTWFwOwppbXBvcnQgamF2YS51dGlsLk1hcC5F
bnRyeTsKCmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLlZkY0FjdGlvblV0aWxz
OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5hY3Rpb24uQWRkVm1Gcm9tU2Ny
YXRjaFBhcmFtZXRlcnM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmFjdGlv
bi5BZGRWbUZyb21UZW1wbGF0ZVBhcmFtZXRlcnM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNv
cmUuY29tbW9uLmFjdGlvbi5BZGRWbVRlbXBsYXRlUGFyYW1ldGVyczsKaW1wb3J0IG9yZy5vdmly
dC5lbmdpbmUuY29yZS5jb21tb24uYWN0aW9uLkF0dGFjaEVudGl0eVRvVGFnUGFyYW1ldGVyczsK
aW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYWN0aW9uLkNoYW5nZURpc2tDb21t
YW5kUGFyYW1ldGVyczsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYWN0aW9u
LkNoYW5nZVZNQ2x1c3RlclBhcmFtZXRlcnM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUu
Y29tbW9uLmFjdGlvbi5IaWJlcm5hdGVWbVBhcmFtZXRlcnM7CmltcG9ydCBvcmcub3ZpcnQuZW5n
aW5lLmNvcmUuY29tbW9uLmFjdGlvbi5NaWdyYXRlVm1QYXJhbWV0ZXJzOwppbXBvcnQgb3JnLm92
aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5hY3Rpb24uTWlncmF0ZVZtVG9TZXJ2ZXJQYXJhbWV0ZXJz
OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5hY3Rpb24uTW92ZVZtUGFyYW1l
dGVyczsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYWN0aW9uLlJlbW92ZVZt
UGFyYW1ldGVyczsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYWN0aW9uLlJ1
blZtT25jZVBhcmFtczsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYWN0aW9u
LlJ1blZtUGFyYW1zOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5hY3Rpb24u
U2h1dGRvd25WbVBhcmFtZXRlcnM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9u
LmFjdGlvbi5TdG9wVm1QYXJhbWV0ZXJzOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNv
bW1vbi5hY3Rpb24uU3RvcFZtVHlwZUVudW07CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUu
Y29tbW9uLmFjdGlvbi5WZGNBY3Rpb25QYXJhbWV0ZXJzQmFzZTsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUuY29yZS5jb21tb24uYWN0aW9uLlZkY0FjdGlvblR5cGU7CmltcG9ydCBvcmcub3ZpcnQu
ZW5naW5lLmNvcmUuY29tbW9uLmFjdGlvbi5WZGNSZXR1cm5WYWx1ZUJhc2U7CmltcG9ydCBvcmcu
b3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmFjdGlvbi5WbU1hbmFnZW1lbnRQYXJhbWV0ZXJzQmFz
ZTsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYWN0aW9uLlZtT3BlcmF0aW9u
UGFyYW1ldGVyQmFzZTsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5l
c3NlbnRpdGllcy5EaXNrOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNp
bmVzc2VudGl0aWVzLkRpc2suRGlza1N0b3JhZ2VUeXBlOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2lu
ZS5jb3JlLmNvbW1vbi5idXNpbmVzc2VudGl0aWVzLkRpc2tJbWFnZTsKaW1wb3J0IG9yZy5vdmly
dC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy5EaXNwbGF5VHlwZTsKaW1wb3J0
IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy5NaWdyYXRpb25T
dXBwb3J0OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNpbmVzc2VudGl0
aWVzLlF1b3RhOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNpbmVzc2Vu
dGl0aWVzLlVzYlBvbGljeTsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVz
aW5lc3NlbnRpdGllcy5WRFM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1
c2luZXNzZW50aXRpZXMuVkRTR3JvdXA7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29t
bW9uLmJ1c2luZXNzZW50aXRpZXMuVk07CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29t
bW9uLmJ1c2luZXNzZW50aXRpZXMuVm1Pc1R5cGU7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNv
cmUuY29tbW9uLmJ1c2luZXNzZW50aXRpZXMuVm1UZW1wbGF0ZTsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUuY29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy5WbVR5cGU7CmltcG9ydCBvcmcub3Zp
cnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNzZW50aXRpZXMuVm9sdW1lVHlwZTsKaW1wb3J0
IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy5zdG9yYWdlX2Rv
bWFpbnM7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNzZW50aXRp
ZXMuc3RvcmFnZV9wb29sOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNp
bmVzc2VudGl0aWVzLm5ldHdvcmsuVm1OZXR3b3JrSW50ZXJmYWNlOwppbXBvcnQgb3JnLm92aXJ0
LmVuZ2luZS5jb3JlLmNvbW1vbi5pbnRlcmZhY2VzLlNlYXJjaFR5cGU7CmltcG9ydCBvcmcub3Zp
cnQuZW5naW5lLmNvcmUuY29tbW9uLm1vZGUuQXBwbGljYXRpb25Nb2RlOwppbXBvcnQgb3JnLm92
aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5xdWVyaWVzLkdldEFsbERpc2tzQnlWbUlkUGFyYW1ldGVy
czsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24ucXVlcmllcy5JZFF1ZXJ5UGFy
YW1ldGVyczsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24ucXVlcmllcy5TZWFy
Y2hQYXJhbWV0ZXJzOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5xdWVyaWVz
LlZkY1F1ZXJ5UGFyYW1ldGVyc0Jhc2U7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29t
bW9uLnF1ZXJpZXMuVmRjUXVlcnlSZXR1cm5WYWx1ZTsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUu
Y29yZS5jb21tb24ucXVlcmllcy5WZGNRdWVyeVR5cGU7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5l
LmNvcmUuY29tcGF0LkV2ZW50OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbXBhdC5F
dmVudEFyZ3M7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tcGF0Lkd1aWQ7CmltcG9y
dCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuY29tcGF0Lk5HdWlkOwppbXBvcnQgb3JnLm92aXJ0LmVu
Z2luZS5jb3JlLmNvbXBhdC5PYnNlcnZhYmxlQ29sbGVjdGlvbjsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUuY29yZS5jb21wYXQuUHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdzOwppbXBvcnQgb3JnLm92
aXJ0LmVuZ2luZS5jb3JlLmNvbXBhdC5TdHJpbmdIZWxwZXI7CmltcG9ydCBvcmcub3ZpcnQuZW5n
aW5lLmNvcmUuY29tcGF0LlZlcnNpb247CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLmNvcmUuc2Vh
cmNoYmFja2VuZC5TZWFyY2hPYmplY3RzOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS5mcm9u
dGVuZC5Bc3luY1F1ZXJ5OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS5mcm9udGVuZC5Gcm9u
dGVuZDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkuZnJvbnRlbmQuSU5ld0FzeW5jQ2FsbGJh
Y2s7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLkNsb25lcjsKaW1wb3J0
IG9yZy5vdmlydC5lbmdpbmUudWkudWljb21tb253ZWIuTGlucTsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUudWkudWljb21tb253ZWIuVGFnc0VxdWFsaXR5Q29tcGFyZXI7CmltcG9ydCBvcmcub3Zp
cnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLlVJQ29tbWFuZDsKaW1wb3J0IG9yZy5vdmlydC5lbmdp
bmUudWkudWljb21tb253ZWIuZGF0YXByb3ZpZGVyLkFzeW5jRGF0YVByb3ZpZGVyOwppbXBvcnQg
b3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi5tb2RlbHMuQ29uZmlybWF0aW9uTW9kZWw7
CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLm1vZGVscy5FbnRpdHlNb2Rl
bDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkudWljb21tb253ZWIubW9kZWxzLklTdXBwb3J0
U3lzdGVtVHJlZUNvbnRleHQ7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2Vi
Lm1vZGVscy5Nb2RlbDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWkudWljb21tb253ZWIubW9k
ZWxzLlN5c3RlbVRyZWVJdGVtTW9kZWw7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29t
bW9ud2ViLm1vZGVscy5jb25maWd1cmUuQ2hhbmdlQ0RNb2RlbDsKaW1wb3J0IG9yZy5vdmlydC5l
bmdpbmUudWkudWljb21tb253ZWIubW9kZWxzLmNvbmZpZ3VyZS5QZXJtaXNzaW9uTGlzdE1vZGVs
OwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi5tb2RlbHMudGFncy5UYWdM
aXN0TW9kZWw7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tbW9ud2ViLm1vZGVscy50
YWdzLlRhZ01vZGVsOwppbXBvcnQgb3JnLm92aXJ0LmVuZ2luZS51aS51aWNvbW1vbndlYi5tb2Rl
bHMudGVtcGxhdGVzLlZtQmFzZUxpc3RNb2RlbDsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUudWku
dWljb21tb253ZWIubW9kZWxzLnVzZXJwb3J0YWwuQXR0YWNoQ2RNb2RlbDsKaW1wb3J0IG9yZy5v
dmlydC5lbmdpbmUudWkudWljb21wYXQuQXNzZW1ibHk7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5l
LnVpLnVpY29tcGF0LkNvbnN0YW50c01hbmFnZXI7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVp
LnVpY29tcGF0LkZyb250ZW5kQWN0aW9uQXN5bmNSZXN1bHQ7CmltcG9ydCBvcmcub3ZpcnQuZW5n
aW5lLnVpLnVpY29tcGF0LkZyb250ZW5kTXVsdGlwbGVBY3Rpb25Bc3luY1Jlc3VsdDsKaW1wb3J0
IG9yZy5vdmlydC5lbmdpbmUudWkudWljb21wYXQuRnJvbnRlbmRNdWx0aXBsZVF1ZXJ5QXN5bmNS
ZXN1bHQ7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tcGF0LklGcm9udGVuZEFjdGlv
bkFzeW5jQ2FsbGJhY2s7CmltcG9ydCBvcmcub3ZpcnQuZW5naW5lLnVpLnVpY29tcGF0LklGcm9u
dGVuZE11bHRpcGxlQWN0aW9uQXN5bmNDYWxsYmFjazsKaW1wb3J0IG9yZy5vdmlydC5lbmdpbmUu
dWkudWljb21wYXQuSUZyb250ZW5kTXVsdGlwbGVRdWVyeUFzeW5jQ2FsbGJhY2s7CmltcG9ydCBv
cmcub3ZpcnQuZW5naW5lLnVpLnVpY29tcGF0LlJlc291cmNlTWFuYWdlcjsKCnB1YmxpYyBjbGFz
cyBWbUxpc3RNb2RlbCBleHRlbmRzIFZtQmFzZUxpc3RNb2RlbDxWTT4gaW1wbGVtZW50cyBJU3Vw
cG9ydFN5c3RlbVRyZWVDb250ZXh0CnsKCiAgICBwcml2YXRlIFVJQ29tbWFuZCBwcml2YXRlTmV3
U2VydmVyQ29tbWFuZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldE5ld1NlcnZlckNvbW1hbmQo
KQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlTmV3U2VydmVyQ29tbWFuZDsKICAgIH0KCiAg
ICBwcml2YXRlIHZvaWQgc2V0TmV3U2VydmVyQ29tbWFuZChVSUNvbW1hbmQgdmFsdWUpCiAgICB7
CiAgICAgICAgcHJpdmF0ZU5ld1NlcnZlckNvbW1hbmQgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2
YXRlIFVJQ29tbWFuZCBwcml2YXRlTmV3RGVza3RvcENvbW1hbmQ7CgogICAgcHVibGljIFVJQ29t
bWFuZCBnZXROZXdEZXNrdG9wQ29tbWFuZCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVO
ZXdEZXNrdG9wQ29tbWFuZDsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgc2V0TmV3RGVza3RvcENv
bW1hbmQoVUlDb21tYW5kIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVOZXdEZXNrdG9wQ29t
bWFuZCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgVUlDb21tYW5kIHByaXZhdGVFZGl0Q29t
bWFuZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldEVkaXRDb21tYW5kKCkKICAgIHsKICAgICAg
ICByZXR1cm4gcHJpdmF0ZUVkaXRDb21tYW5kOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRF
ZGl0Q29tbWFuZChVSUNvbW1hbmQgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZUVkaXRDb21t
YW5kID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBVSUNvbW1hbmQgcHJpdmF0ZVJlbW92ZUNv
bW1hbmQ7CgogICAgcHVibGljIFVJQ29tbWFuZCBnZXRSZW1vdmVDb21tYW5kKCkKICAgIHsKICAg
ICAgICByZXR1cm4gcHJpdmF0ZVJlbW92ZUNvbW1hbmQ7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lk
IHNldFJlbW92ZUNvbW1hbmQoVUlDb21tYW5kIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVS
ZW1vdmVDb21tYW5kID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBVSUNvbW1hbmQgcHJpdmF0
ZVJ1bkNvbW1hbmQ7CgogICAgcHVibGljIFVJQ29tbWFuZCBnZXRSdW5Db21tYW5kKCkKICAgIHsK
ICAgICAgICByZXR1cm4gcHJpdmF0ZVJ1bkNvbW1hbmQ7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lk
IHNldFJ1bkNvbW1hbmQoVUlDb21tYW5kIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVSdW5D
b21tYW5kID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBVSUNvbW1hbmQgcHJpdmF0ZVBhdXNl
Q29tbWFuZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldFBhdXNlQ29tbWFuZCgpCiAgICB7CiAg
ICAgICAgcmV0dXJuIHByaXZhdGVQYXVzZUNvbW1hbmQ7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lk
IHNldFBhdXNlQ29tbWFuZChVSUNvbW1hbmQgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZVBh
dXNlQ29tbWFuZCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgVUlDb21tYW5kIHByaXZhdGVT
dG9wQ29tbWFuZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldFN0b3BDb21tYW5kKCkKICAgIHsK
ICAgICAgICByZXR1cm4gcHJpdmF0ZVN0b3BDb21tYW5kOwogICAgfQoKICAgIHByaXZhdGUgdm9p
ZCBzZXRTdG9wQ29tbWFuZChVSUNvbW1hbmQgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZVN0
b3BDb21tYW5kID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBVSUNvbW1hbmQgcHJpdmF0ZVNo
dXRkb3duQ29tbWFuZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldFNodXRkb3duQ29tbWFuZCgp
CiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVTaHV0ZG93bkNvbW1hbmQ7CiAgICB9CgogICAg
cHJpdmF0ZSB2b2lkIHNldFNodXRkb3duQ29tbWFuZChVSUNvbW1hbmQgdmFsdWUpCiAgICB7CiAg
ICAgICAgcHJpdmF0ZVNodXRkb3duQ29tbWFuZCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUg
VUlDb21tYW5kIHByaXZhdGVDYW5jZWxNaWdyYXRlQ29tbWFuZDsKCiAgICBwdWJsaWMgVUlDb21t
YW5kIGdldENhbmNlbE1pZ3JhdGVDb21tYW5kKCkgewogICAgICAgIHJldHVybiBwcml2YXRlQ2Fu
Y2VsTWlncmF0ZUNvbW1hbmQ7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldENhbmNlbE1pZ3Jh
dGVDb21tYW5kKFVJQ29tbWFuZCB2YWx1ZSkgewogICAgICAgIHByaXZhdGVDYW5jZWxNaWdyYXRl
Q29tbWFuZCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgVUlDb21tYW5kIHByaXZhdGVNaWdy
YXRlQ29tbWFuZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldE1pZ3JhdGVDb21tYW5kKCkKICAg
IHsKICAgICAgICByZXR1cm4gcHJpdmF0ZU1pZ3JhdGVDb21tYW5kOwogICAgfQoKICAgIHByaXZh
dGUgdm9pZCBzZXRNaWdyYXRlQ29tbWFuZChVSUNvbW1hbmQgdmFsdWUpCiAgICB7CiAgICAgICAg
cHJpdmF0ZU1pZ3JhdGVDb21tYW5kID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBVSUNvbW1h
bmQgcHJpdmF0ZU5ld1RlbXBsYXRlQ29tbWFuZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldE5l
d1RlbXBsYXRlQ29tbWFuZCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVOZXdUZW1wbGF0
ZUNvbW1hbmQ7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldE5ld1RlbXBsYXRlQ29tbWFuZChV
SUNvbW1hbmQgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZU5ld1RlbXBsYXRlQ29tbWFuZCA9
IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgVUlDb21tYW5kIHByaXZhdGVSdW5PbmNlQ29tbWFu
ZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldFJ1bk9uY2VDb21tYW5kKCkKICAgIHsKICAgICAg
ICByZXR1cm4gcHJpdmF0ZVJ1bk9uY2VDb21tYW5kOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBz
ZXRSdW5PbmNlQ29tbWFuZChVSUNvbW1hbmQgdmFsdWUpCiAgICB7CiAgICAgICAgcHJpdmF0ZVJ1
bk9uY2VDb21tYW5kID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBVSUNvbW1hbmQgcHJpdmF0
ZUV4cG9ydENvbW1hbmQ7CgogICAgcHVibGljIFVJQ29tbWFuZCBnZXRFeHBvcnRDb21tYW5kKCkK
ICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0ZUV4cG9ydENvbW1hbmQ7CiAgICB9CgogICAgcHJp
dmF0ZSB2b2lkIHNldEV4cG9ydENvbW1hbmQoVUlDb21tYW5kIHZhbHVlKQogICAgewogICAgICAg
IHByaXZhdGVFeHBvcnRDb21tYW5kID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBVSUNvbW1h
bmQgcHJpdmF0ZU1vdmVDb21tYW5kOwoKICAgIHB1YmxpYyBVSUNvbW1hbmQgZ2V0TW92ZUNvbW1h
bmQoKQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlTW92ZUNvbW1hbmQ7CiAgICB9CgogICAg
cHJpdmF0ZSB2b2lkIHNldE1vdmVDb21tYW5kKFVJQ29tbWFuZCB2YWx1ZSkKICAgIHsKICAgICAg
ICBwcml2YXRlTW92ZUNvbW1hbmQgPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIFVJQ29tbWFu
ZCBwcml2YXRlUmV0cmlldmVJc29JbWFnZXNDb21tYW5kOwoKICAgIHB1YmxpYyBVSUNvbW1hbmQg
Z2V0UmV0cmlldmVJc29JbWFnZXNDb21tYW5kKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0
ZVJldHJpZXZlSXNvSW1hZ2VzQ29tbWFuZDsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgc2V0UmV0
cmlldmVJc29JbWFnZXNDb21tYW5kKFVJQ29tbWFuZCB2YWx1ZSkKICAgIHsKICAgICAgICBwcml2
YXRlUmV0cmlldmVJc29JbWFnZXNDb21tYW5kID0gdmFsdWU7CiAgICB9CgogICAgcHJpdmF0ZSBV
SUNvbW1hbmQgcHJpdmF0ZUd1aWRlQ29tbWFuZDsKCiAgICBwdWJsaWMgVUlDb21tYW5kIGdldEd1
aWRlQ29tbWFuZCgpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVHdWlkZUNvbW1hbmQ7CiAg
ICB9CgogICAgcHJpdmF0ZSB2b2lkIHNldEd1aWRlQ29tbWFuZChVSUNvbW1hbmQgdmFsdWUpCiAg
ICB7CiAgICAgICAgcHJpdmF0ZUd1aWRlQ29tbWFuZCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZh
dGUgVUlDb21tYW5kIHByaXZhdGVDaGFuZ2VDZENvbW1hbmQ7CgogICAgcHVibGljIFVJQ29tbWFu
ZCBnZXRDaGFuZ2VDZENvbW1hbmQoKQogICAgewogICAgICAgIHJldHVybiBwcml2YXRlQ2hhbmdl
Q2RDb21tYW5kOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRDaGFuZ2VDZENvbW1hbmQoVUlD
b21tYW5kIHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVDaGFuZ2VDZENvbW1hbmQgPSB2YWx1
ZTsKICAgIH0KCiAgICBwcml2YXRlIFVJQ29tbWFuZCBwcml2YXRlQXNzaWduVGFnc0NvbW1hbmQ7
CgogICAgcHVibGljIFVJQ29tbWFuZCBnZXRBc3NpZ25UYWdzQ29tbWFuZCgpCiAgICB7CiAgICAg
ICAgcmV0dXJuIHByaXZhdGVBc3NpZ25UYWdzQ29tbWFuZDsKICAgIH0KCiAgICBwcml2YXRlIHZv
aWQgc2V0QXNzaWduVGFnc0NvbW1hbmQoVUlDb21tYW5kIHZhbHVlKQogICAgewogICAgICAgIHBy
aXZhdGVBc3NpZ25UYWdzQ29tbWFuZCA9IHZhbHVlOwogICAgfQoKICAgIHByaXZhdGUgTW9kZWwg
ZXJyb3JXaW5kb3c7CgogICAgcHVibGljIE1vZGVsIGdldEVycm9yV2luZG93KCkKICAgIHsKICAg
ICAgICByZXR1cm4gZXJyb3JXaW5kb3c7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0RXJyb3JX
aW5kb3coTW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKGVycm9yV2luZG93ICE9IHZhbHVl
KQogICAgICAgIHsKICAgICAgICAgICAgZXJyb3JXaW5kb3cgPSB2YWx1ZTsKICAgICAgICAgICAg
T25Qcm9wZXJ0eUNoYW5nZWQobmV3IFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncygiRXJyb3JXaW5k
b3ciKSk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBDb25zb2xl
TW9kZWwgZGVmYXVsdENvbnNvbGVNb2RlbDsKCiAgICBwdWJsaWMgQ29uc29sZU1vZGVsIGdldERl
ZmF1bHRDb25zb2xlTW9kZWwoKQogICAgewogICAgICAgIHJldHVybiBkZWZhdWx0Q29uc29sZU1v
ZGVsOwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldERlZmF1bHRDb25zb2xlTW9kZWwoQ29uc29s
ZU1vZGVsIHZhbHVlKQogICAgewogICAgICAgIGlmIChkZWZhdWx0Q29uc29sZU1vZGVsICE9IHZh
bHVlKQogICAgICAgIHsKICAgICAgICAgICAgZGVmYXVsdENvbnNvbGVNb2RlbCA9IHZhbHVlOwog
ICAgICAgICAgICBPblByb3BlcnR5Q2hhbmdlZChuZXcgUHJvcGVydHlDaGFuZ2VkRXZlbnRBcmdz
KCJEZWZhdWx0Q29uc29sZU1vZGVsIikpOyAvLyROT04tTkxTLTEkCiAgICAgICAgfQogICAgfQoK
ICAgIHByaXZhdGUgQ29uc29sZU1vZGVsIGFkZGl0aW9uYWxDb25zb2xlTW9kZWw7CgogICAgcHVi
bGljIENvbnNvbGVNb2RlbCBnZXRBZGRpdGlvbmFsQ29uc29sZU1vZGVsKCkKICAgIHsKICAgICAg
ICByZXR1cm4gYWRkaXRpb25hbENvbnNvbGVNb2RlbDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBz
ZXRBZGRpdGlvbmFsQ29uc29sZU1vZGVsKENvbnNvbGVNb2RlbCB2YWx1ZSkKICAgIHsKICAgICAg
ICBpZiAoYWRkaXRpb25hbENvbnNvbGVNb2RlbCAhPSB2YWx1ZSkKICAgICAgICB7CiAgICAgICAg
ICAgIGFkZGl0aW9uYWxDb25zb2xlTW9kZWwgPSB2YWx1ZTsKICAgICAgICAgICAgT25Qcm9wZXJ0
eUNoYW5nZWQobmV3IFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncygiQWRkaXRpb25hbENvbnNvbGVN
b2RlbCIpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGJvb2xl
YW4gaGFzQWRkaXRpb25hbENvbnNvbGVNb2RlbDsKCiAgICBwdWJsaWMgYm9vbGVhbiBnZXRIYXNB
ZGRpdGlvbmFsQ29uc29sZU1vZGVsKCkKICAgIHsKICAgICAgICByZXR1cm4gaGFzQWRkaXRpb25h
bENvbnNvbGVNb2RlbDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRIYXNBZGRpdGlvbmFsQ29u
c29sZU1vZGVsKGJvb2xlYW4gdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKGhhc0FkZGl0aW9uYWxD
b25zb2xlTW9kZWwgIT0gdmFsdWUpCiAgICAgICAgewogICAgICAgICAgICBoYXNBZGRpdGlvbmFs
Q29uc29sZU1vZGVsID0gdmFsdWU7CiAgICAgICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQ
cm9wZXJ0eUNoYW5nZWRFdmVudEFyZ3MoIkhhc0FkZGl0aW9uYWxDb25zb2xlTW9kZWwiKSk7IC8v
JE5PTi1OTFMtMSQKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIE9ic2VydmFibGVDb2xsZWN0
aW9uPENoYW5nZUNETW9kZWw+IGlzb0ltYWdlczsKCiAgICBwdWJsaWMgT2JzZXJ2YWJsZUNvbGxl
Y3Rpb248Q2hhbmdlQ0RNb2RlbD4gZ2V0SXNvSW1hZ2VzKCkKICAgIHsKICAgICAgICByZXR1cm4g
aXNvSW1hZ2VzOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBzZXRJc29JbWFnZXMoT2JzZXJ2YWJs
ZUNvbGxlY3Rpb248Q2hhbmdlQ0RNb2RlbD4gdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKChpc29J
bWFnZXMgPT0gbnVsbCAmJiB2YWx1ZSAhPSBudWxsKSB8fCAoaXNvSW1hZ2VzICE9IG51bGwgJiYg
IWlzb0ltYWdlcy5lcXVhbHModmFsdWUpKSkKICAgICAgICB7CiAgICAgICAgICAgIGlzb0ltYWdl
cyA9IHZhbHVlOwogICAgICAgICAgICBPblByb3BlcnR5Q2hhbmdlZChuZXcgUHJvcGVydHlDaGFu
Z2VkRXZlbnRBcmdzKCJJc29JbWFnZXMiKSk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB9CiAgICB9
CgogICAgLy8gZ2V0IHsgcmV0dXJuIFNlbGVjdGVkSXRlbXMgPT0gbnVsbCA/IG5ldyBvYmplY3Rb
MF0gOiBTZWxlY3RlZEl0ZW1zLkNhc3Q8Vk0+KCkuU2VsZWN0KGEgPT4KICAgIC8vIGEudm1fZ3Vp
ZCkuQ2FzdDxvYmplY3Q+KCkuVG9BcnJheSgpOyB9CiAgICBwcm90ZWN0ZWQgT2JqZWN0W10gZ2V0
U2VsZWN0ZWRLZXlzKCkKICAgIHsKICAgICAgICBpZiAoZ2V0U2VsZWN0ZWRJdGVtcygpID09IG51
bGwpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gbmV3IE9iamVjdFswXTsKICAgICAgICB9
CgogICAgICAgIE9iamVjdFtdIGtleXMgPSBuZXcgT2JqZWN0W2dldFNlbGVjdGVkSXRlbXMoKS5z
aXplKCldOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZ2V0U2VsZWN0ZWRJdGVtcygpLnNp
emUoKTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAga2V5c1tpXSA9ICgoVk0pIGdldFNlbGVj
dGVkSXRlbXMoKS5nZXQoaSkpLmdldElkKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4ga2V5
czsKICAgIH0KCiAgICBwcml2YXRlIE9iamVjdCBwcml2YXRlR3VpZGVDb250ZXh0OwoKICAgIHB1
YmxpYyBPYmplY3QgZ2V0R3VpZGVDb250ZXh0KCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpdmF0
ZUd1aWRlQ29udGV4dDsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRHdWlkZUNvbnRleHQoT2Jq
ZWN0IHZhbHVlKQogICAgewogICAgICAgIHByaXZhdGVHdWlkZUNvbnRleHQgPSB2YWx1ZTsKICAg
IH0KCiAgICBwcml2YXRlIFZNIHByaXZhdGVjdXJyZW50Vm07CgogICAgcHVibGljIFZNIGdldGN1
cnJlbnRWbSgpCiAgICB7CiAgICAgICAgcmV0dXJuIHByaXZhdGVjdXJyZW50Vm07CiAgICB9Cgog
ICAgcHVibGljIHZvaWQgc2V0Y3VycmVudFZtKFZNIHZhbHVlKQogICAgewogICAgICAgIHByaXZh
dGVjdXJyZW50Vm0gPSB2YWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIGZpbmFsIEhhc2hNYXA8R3Vp
ZCwgQXJyYXlMaXN0PENvbnNvbGVNb2RlbD4+IGNhY2hlZENvbnNvbGVNb2RlbHM7CgogICAgcHJp
dmF0ZSBIYXNoTWFwPFZlcnNpb24sIEFycmF5TGlzdDxTdHJpbmc+PiBwcml2YXRlQ3VzdG9tUHJv
cGVydGllc0tleXNMaXN0OwoKICAgIHByaXZhdGUgSGFzaE1hcDxWZXJzaW9uLCBBcnJheUxpc3Q8
U3RyaW5nPj4gZ2V0Q3VzdG9tUHJvcGVydGllc0tleXNMaXN0KCkgewogICAgICAgIHJldHVybiBw
cml2YXRlQ3VzdG9tUHJvcGVydGllc0tleXNMaXN0OwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBz
ZXRDdXN0b21Qcm9wZXJ0aWVzS2V5c0xpc3QoSGFzaE1hcDxWZXJzaW9uLCBBcnJheUxpc3Q8U3Ry
aW5nPj4gdmFsdWUpIHsKICAgICAgICBwcml2YXRlQ3VzdG9tUHJvcGVydGllc0tleXNMaXN0ID0g
dmFsdWU7CiAgICB9CgogICAgcHVibGljIFZtTGlzdE1vZGVsKCkKICAgIHsKICAgICAgICBzZXRU
aXRsZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkudmlydHVh
bE1hY2hpbmVzVGl0bGUoKSk7CiAgICAgICAgc2V0SGFzaE5hbWUoInZpcnR1YWxfbWFjaGluZXMi
KTsgLy8kTk9OLU5MUy0xJAoKICAgICAgICBzZXREZWZhdWx0U2VhcmNoU3RyaW5nKCJWbXM6Iik7
IC8vJE5PTi1OTFMtMSQKICAgICAgICBzZXRTZWFyY2hTdHJpbmcoZ2V0RGVmYXVsdFNlYXJjaFN0
cmluZygpKTsKICAgICAgICBzZXRTZWFyY2hPYmplY3RzKG5ldyBTdHJpbmdbXSB7IFNlYXJjaE9i
amVjdHMuVk1fT0JKX05BTUUsIFNlYXJjaE9iamVjdHMuVk1fUExVX09CSl9OQU1FIH0pOwogICAg
ICAgIHNldEF2YWlsYWJsZUluTW9kZXMoQXBwbGljYXRpb25Nb2RlLlZpcnRPbmx5KTsKCiAgICAg
ICAgY2FjaGVkQ29uc29sZU1vZGVscyA9IG5ldyBIYXNoTWFwPEd1aWQsIEFycmF5TGlzdDxDb25z
b2xlTW9kZWw+PigpOwoKICAgICAgICBzZXROZXdTZXJ2ZXJDb21tYW5kKG5ldyBVSUNvbW1hbmQo
Ik5ld1NlcnZlciIsIHRoaXMpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHNldE5ld0Rlc2t0b3BD
b21tYW5kKG5ldyBVSUNvbW1hbmQoIk5ld0Rlc2t0b3AiLCB0aGlzKSk7IC8vJE5PTi1OTFMtMSQK
ICAgICAgICBzZXRFZGl0Q29tbWFuZChuZXcgVUlDb21tYW5kKCJFZGl0IiwgdGhpcykpOyAvLyRO
T04tTkxTLTEkCiAgICAgICAgc2V0UmVtb3ZlQ29tbWFuZChuZXcgVUlDb21tYW5kKCJSZW1vdmUi
LCB0aGlzKSk7IC8vJE5PTi1OTFMtMSQKICAgICAgICBzZXRSdW5Db21tYW5kKG5ldyBVSUNvbW1h
bmQoIlJ1biIsIHRoaXMsIHRydWUpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHNldFBhdXNlQ29t
bWFuZChuZXcgVUlDb21tYW5kKCJQYXVzZSIsIHRoaXMpKTsgLy8kTk9OLU5MUy0xJAogICAgICAg
IHNldFN0b3BDb21tYW5kKG5ldyBVSUNvbW1hbmQoIlN0b3AiLCB0aGlzKSk7IC8vJE5PTi1OTFMt
MSQKICAgICAgICBzZXRTaHV0ZG93bkNvbW1hbmQobmV3IFVJQ29tbWFuZCgiU2h1dGRvd24iLCB0
aGlzKSk7IC8vJE5PTi1OTFMtMSQKICAgICAgICBzZXRNaWdyYXRlQ29tbWFuZChuZXcgVUlDb21t
YW5kKCJNaWdyYXRlIiwgdGhpcykpOyAvLyROT04tTkxTLTEkCiAgICAgICAgc2V0Q2FuY2VsTWln
cmF0ZUNvbW1hbmQobmV3IFVJQ29tbWFuZCgiQ2FuY2VsTWlncmF0aW9uIiwgdGhpcykpOyAvLyRO
T04tTkxTLTEkCiAgICAgICAgc2V0TmV3VGVtcGxhdGVDb21tYW5kKG5ldyBVSUNvbW1hbmQoIk5l
d1RlbXBsYXRlIiwgdGhpcykpOyAvLyROT04tTkxTLTEkCiAgICAgICAgc2V0UnVuT25jZUNvbW1h
bmQobmV3IFVJQ29tbWFuZCgiUnVuT25jZSIsIHRoaXMpKTsgLy8kTk9OLU5MUy0xJAogICAgICAg
IHNldEV4cG9ydENvbW1hbmQobmV3IFVJQ29tbWFuZCgiRXhwb3J0IiwgdGhpcykpOyAvLyROT04t
TkxTLTEkCiAgICAgICAgc2V0TW92ZUNvbW1hbmQobmV3IFVJQ29tbWFuZCgiTW92ZSIsIHRoaXMp
KTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHNldEd1aWRlQ29tbWFuZChuZXcgVUlDb21tYW5kKCJH
dWlkZSIsIHRoaXMpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHNldFJldHJpZXZlSXNvSW1hZ2Vz
Q29tbWFuZChuZXcgVUlDb21tYW5kKCJSZXRyaWV2ZUlzb0ltYWdlcyIsIHRoaXMpKTsgLy8kTk9O
LU5MUy0xJAogICAgICAgIHNldENoYW5nZUNkQ29tbWFuZChuZXcgVUlDb21tYW5kKCJDaGFuZ2VD
RCIsIHRoaXMpKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHNldEFzc2lnblRhZ3NDb21tYW5kKG5l
dyBVSUNvbW1hbmQoIkFzc2lnblRhZ3MiLCB0aGlzKSk7IC8vJE5PTi1OTFMtMSQKCiAgICAgICAg
c2V0SXNvSW1hZ2VzKG5ldyBPYnNlcnZhYmxlQ29sbGVjdGlvbjxDaGFuZ2VDRE1vZGVsPigpKTsK
ICAgICAgICBDaGFuZ2VDRE1vZGVsIHRlbXBWYXIgPSBuZXcgQ2hhbmdlQ0RNb2RlbCgpOwogICAg
ICAgIHRlbXBWYXIuc2V0VGl0bGUoQ29uc3RhbnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENv
bnN0YW50cygpLnJldHJpZXZpbmdDRHNUaXRsZSgpKTsKICAgICAgICBnZXRJc29JbWFnZXMoKS5h
ZGQodGVtcFZhcik7CgogICAgICAgIFVwZGF0ZUFjdGlvbkF2YWlsYWJpbGl0eSgpOwoKICAgICAg
ICBnZXRTZWFyY2hOZXh0UGFnZUNvbW1hbmQoKS5zZXRJc0F2YWlsYWJsZSh0cnVlKTsKICAgICAg
ICBnZXRTZWFyY2hQcmV2aW91c1BhZ2VDb21tYW5kKCkuc2V0SXNBdmFpbGFibGUodHJ1ZSk7CiAg
ICAgICAgaWYgKGdldEN1c3RvbVByb3BlcnRpZXNLZXlzTGlzdCgpID09IG51bGwpIHsKICAgICAg
ICAgICAgQXN5bmNEYXRhUHJvdmlkZXIuR2V0Q3VzdG9tUHJvcGVydGllc0xpc3QobmV3IEFzeW5j
UXVlcnkodGhpcywKICAgICAgICAgICAgICAgICAgICBuZXcgSU5ld0FzeW5jQ2FsbGJhY2soKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICAgICAgICAgICAg
ICBwdWJsaWMgdm9pZCBPblN1Y2Nlc3MoT2JqZWN0IHRhcmdldCwgT2JqZWN0IHJldHVyblZhbHVl
KSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVm1MaXN0TW9kZWwgbW9kZWwgPSAoVm1M
aXN0TW9kZWwpIHRhcmdldDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXR1cm5W
YWx1ZSAhPSBudWxsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1vZGVsLnNldEN1c3RvbVByb3BlcnRpZXNLZXlzTGlzdChuZXcg
SGFzaE1hcDxWZXJzaW9uLCBBcnJheUxpc3Q8U3RyaW5nPj4oKSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgSGFzaE1hcDxWZXJzaW9uLCBTdHJpbmc+IGRpY3Rpb25hcnkgPSAoSGFz
aE1hcDxWZXJzaW9uLCBTdHJpbmc+KSByZXR1cm5WYWx1ZTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgKE1hcC5FbnRyeTxWZXJzaW9uLCBTdHJpbmc+IGtleVZhbHVlUGFpciA6
IGRpY3Rpb25hcnkuZW50cnlTZXQoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsLmdldEN1c3RvbVByb3Bl
cnRpZXNLZXlzTGlzdCgpLnB1dChrZXlWYWx1ZVBhaXIuZ2V0S2V5KCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEFycmF5TGlzdDxTdHJpbmc+KCkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKFN0cmluZyBzIDoga2V5VmFs
dWVQYWlyLmdldFZhbHVlKCkuc3BsaXQoIls7XSIsIC0xKSkgLy8kTk9OLU5MUy0xJAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtb2RlbC5nZXRDdXN0b21Qcm9wZXJ0aWVzS2V5c0xpc3QoKS5nZXQoa2V5
VmFsdWVQYWlyLmdldEtleSgpKS5hZGQocyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICB9KSk7CiAgICAgICAgfQoKICAgICAgICAvLyBDYWxsICdJc0NvbW1hbmRDb21wYXRpYmxl
JyBmb3IgcHJlY2FjaGluZwogICAgICAgIEFzeW5jRGF0YVByb3ZpZGVyLklzQ29tbWFuZENvbXBh
dGlibGUobmV3IEFzeW5jUXVlcnkodGhpcywKICAgICAgICAgICAgICAgIG5ldyBJTmV3QXN5bmND
YWxsYmFjaygpIHsKICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAg
ICAgICBwdWJsaWMgdm9pZCBPblN1Y2Nlc3MoT2JqZWN0IHRhcmdldCwgT2JqZWN0IHJldHVyblZh
bHVlKSB7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSksIG51bGwsIG51
bGwsIG51bGwpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBBc3NpZ25UYWdzKCkKICAgIHsKICAg
ICAgICBpZiAoZ2V0V2luZG93KCkgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICB9CgogICAgICAgIFRhZ0xpc3RNb2RlbCBtb2RlbCA9IG5ldyBUYWdMaXN0TW9k
ZWwoKTsKICAgICAgICBzZXRXaW5kb3cobW9kZWwpOwogICAgICAgIG1vZGVsLnNldFRpdGxlKENv
bnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5hc3NpZ25UYWdzVGl0
bGUoKSk7CiAgICAgICAgbW9kZWwuc2V0SGFzaE5hbWUoImFzc2lnbl90YWdzX3ZtcyIpOyAvLyRO
T04tTkxTLTEkCgogICAgICAgIEdldEF0dGFjaGVkVGFnc1RvU2VsZWN0ZWRWTXMobW9kZWwpOwoK
ICAgICAgICBVSUNvbW1hbmQgdGVtcFZhciA9IG5ldyBVSUNvbW1hbmQoIk9uQXNzaWduVGFncyIs
IHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAgICAgdGVtcFZhci5zZXRUaXRsZShDb25zdGFudHNN
YW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkub2soKSk7CiAgICAgICAgdGVtcFZh
ci5zZXRJc0RlZmF1bHQodHJ1ZSk7CiAgICAgICAgbW9kZWwuZ2V0Q29tbWFuZHMoKS5hZGQodGVt
cFZhcik7CiAgICAgICAgVUlDb21tYW5kIHRlbXBWYXIyID0gbmV3IFVJQ29tbWFuZCgiQ2FuY2Vs
IiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB0ZW1wVmFyMi5zZXRUaXRsZShDb25zdGFu
dHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuY2FuY2VsKCkpOwogICAgICAg
IHRlbXBWYXIyLnNldElzQ2FuY2VsKHRydWUpOwogICAgICAgIG1vZGVsLmdldENvbW1hbmRzKCku
YWRkKHRlbXBWYXIyKTsKICAgIH0KCiAgICBwdWJsaWMgTWFwPEd1aWQsIEJvb2xlYW4+IGF0dGFj
aGVkVGFnc1RvRW50aXRpZXM7CiAgICBwdWJsaWMgQXJyYXlMaXN0PG9yZy5vdmlydC5lbmdpbmUu
Y29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy50YWdzPiBhbGxBdHRhY2hlZFRhZ3M7CiAgICBw
dWJsaWMgaW50IHNlbGVjdGVkSXRlbXNDb3VudGVyOwoKICAgIHByaXZhdGUgdm9pZCBHZXRBdHRh
Y2hlZFRhZ3NUb1NlbGVjdGVkVk1zKFRhZ0xpc3RNb2RlbCBtb2RlbCkKICAgIHsKICAgICAgICBB
cnJheUxpc3Q8R3VpZD4gdm1JZHMgPSBuZXcgQXJyYXlMaXN0PEd1aWQ+KCk7CiAgICAgICAgZm9y
IChPYmplY3QgaXRlbSA6IGdldFNlbGVjdGVkSXRlbXMoKSkKICAgICAgICB7CiAgICAgICAgICAg
IFZNIHZtID0gKFZNKSBpdGVtOwogICAgICAgICAgICB2bUlkcy5hZGQodm0uZ2V0SWQoKSk7CiAg
ICAgICAgfQoKICAgICAgICBhdHRhY2hlZFRhZ3NUb0VudGl0aWVzID0gbmV3IEhhc2hNYXA8R3Vp
ZCwgQm9vbGVhbj4oKTsKICAgICAgICBhbGxBdHRhY2hlZFRhZ3MgPSBuZXcgQXJyYXlMaXN0PG9y
Zy5vdmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy50YWdzPigpOwogICAg
ICAgIHNlbGVjdGVkSXRlbXNDb3VudGVyID0gMDsKCiAgICAgICAgZm9yIChHdWlkIGlkIDogdm1J
ZHMpCiAgICAgICAgewogICAgICAgICAgICBBc3luY0RhdGFQcm92aWRlci5HZXRBdHRhY2hlZFRh
Z3NUb1ZtKG5ldyBBc3luY1F1ZXJ5KG5ldyBPYmplY3RbXSB7IHRoaXMsIG1vZGVsIH0sCiAgICAg
ICAgICAgICAgICAgICAgbmV3IElOZXdBc3luY0NhbGxiYWNrKCkgewogICAgICAgICAgICAgICAg
ICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgT25T
dWNjZXNzKE9iamVjdCB0YXJnZXQsIE9iamVjdCByZXR1cm5WYWx1ZSkgewoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE9iamVjdFtdIGFycmF5ID0gKE9iamVjdFtdKSB0YXJnZXQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWbUxpc3RNb2RlbCB2bUxpc3RNb2RlbCA9IChWbUxpc3RN
b2RlbCkgYXJyYXlbMF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWdMaXN0TW9kZWwg
dGFnTGlzdE1vZGVsID0gKFRhZ0xpc3RNb2RlbCkgYXJyYXlbMV07CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2bUxpc3RNb2RlbC5hbGxBdHRhY2hlZFRhZ3MuYWRkQWxsKChBcnJheUxpc3Q8
b3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNpbmVzc2VudGl0aWVzLnRhZ3M+KSByZXR1
cm5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bUxpc3RNb2RlbC5zZWxlY3Rl
ZEl0ZW1zQ291bnRlcisrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZtTGlzdE1v
ZGVsLnNlbGVjdGVkSXRlbXNDb3VudGVyID09IHZtTGlzdE1vZGVsLmdldFNlbGVjdGVkSXRlbXMo
KS5zaXplKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUG9zdEdldEF0dGFjaGVkVGFncyh2bUxpc3RNb2RlbCwgdGFnTGlzdE1v
ZGVsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBpZCk7CiAg
ICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgdm9pZCBQb3N0R2V0QXR0YWNoZWRUYWdzKFZtTGlz
dE1vZGVsIHZtTGlzdE1vZGVsLCBUYWdMaXN0TW9kZWwgdGFnTGlzdE1vZGVsKQogICAgewogICAg
ICAgIGlmICh2bUxpc3RNb2RlbC5nZXRMYXN0RXhlY3V0ZWRDb21tYW5kKCkgPT0gZ2V0QXNzaWdu
VGFnc0NvbW1hbmQoKSkKICAgICAgICB7CiAgICAgICAgICAgIEFycmF5TGlzdDxvcmcub3ZpcnQu
ZW5naW5lLmNvcmUuY29tbW9uLmJ1c2luZXNzZW50aXRpZXMudGFncz4gYXR0YWNoZWRUYWdzID0K
ICAgICAgICAgICAgICAgICAgICBMaW5xLkRpc3RpbmN0KHZtTGlzdE1vZGVsLmFsbEF0dGFjaGVk
VGFncywgbmV3IFRhZ3NFcXVhbGl0eUNvbXBhcmVyKCkpOwogICAgICAgICAgICBmb3IgKG9yZy5v
dmlydC5lbmdpbmUuY29yZS5jb21tb24uYnVzaW5lc3NlbnRpdGllcy50YWdzIHRhZyA6IGF0dGFj
aGVkVGFncykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKICAg
ICAgICAgICAgICAgIGZvciAob3JnLm92aXJ0LmVuZ2luZS5jb3JlLmNvbW1vbi5idXNpbmVzc2Vu
dGl0aWVzLnRhZ3MgdGFnMiA6IHZtTGlzdE1vZGVsLmFsbEF0dGFjaGVkVGFncykKICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAodGFnMi5nZXR0YWdfaWQoKS5lcXVhbHMo
dGFnLmdldHRhZ19pZCgpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgdm1MaXN0TW9kZWwuYXR0YWNoZWRUYWdzVG9FbnRpdGllcy5wdXQodGFn
LmdldHRhZ19pZCgpLCBjb3VudCA9PSB2bUxpc3RNb2RlbC5nZXRTZWxlY3RlZEl0ZW1zKCkuc2l6
ZSgpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0YWdMaXN0TW9kZWwuc2V0QXR0YWNoZWRU
YWdzVG9FbnRpdGllcyh2bUxpc3RNb2RlbC5hdHRhY2hlZFRhZ3NUb0VudGl0aWVzKTsKICAgICAg
ICB9CiAgICAgICAgZWxzZSBpZiAoU3RyaW5nSGVscGVyLnN0cmluZ3NFcXVhbCh2bUxpc3RNb2Rl
bC5nZXRMYXN0RXhlY3V0ZWRDb21tYW5kKCkuZ2V0TmFtZSgpLCAiT25Bc3NpZ25UYWdzIikpIC8v
JE5PTi1OTFMtMSQKICAgICAgICB7CiAgICAgICAgICAgIHZtTGlzdE1vZGVsLlBvc3RPbkFzc2ln
blRhZ3ModGFnTGlzdE1vZGVsLmdldEF0dGFjaGVkVGFnc1RvRW50aXRpZXMoKSk7CiAgICAgICAg
fQogICAgfQoKICAgIHByaXZhdGUgdm9pZCBPbkFzc2lnblRhZ3MoKQogICAgewogICAgICAgIFRh
Z0xpc3RNb2RlbCBtb2RlbCA9IChUYWdMaXN0TW9kZWwpIGdldFdpbmRvdygpOwoKICAgICAgICBH
ZXRBdHRhY2hlZFRhZ3NUb1NlbGVjdGVkVk1zKG1vZGVsKTsKICAgIH0KCiAgICBwdWJsaWMgdm9p
ZCBQb3N0T25Bc3NpZ25UYWdzKE1hcDxHdWlkLCBCb29sZWFuPiBhdHRhY2hlZFRhZ3MpCiAgICB7
CiAgICAgICAgVGFnTGlzdE1vZGVsIG1vZGVsID0gKFRhZ0xpc3RNb2RlbCkgZ2V0V2luZG93KCk7
CiAgICAgICAgQXJyYXlMaXN0PEd1aWQ+IHZtSWRzID0gbmV3IEFycmF5TGlzdDxHdWlkPigpOwoK
ICAgICAgICBmb3IgKE9iamVjdCBpdGVtIDogZ2V0U2VsZWN0ZWRJdGVtcygpKQogICAgICAgIHsK
ICAgICAgICAgICAgVk0gdm0gPSAoVk0pIGl0ZW07CiAgICAgICAgICAgIHZtSWRzLmFkZCh2bS5n
ZXRJZCgpKTsKICAgICAgICB9CgogICAgICAgIC8vIHByZXBhcmUgYXR0YWNoL2RldGFjaCBsaXN0
cwogICAgICAgIEFycmF5TGlzdDxHdWlkPiB0YWdzVG9BdHRhY2ggPSBuZXcgQXJyYXlMaXN0PEd1
aWQ+KCk7CiAgICAgICAgQXJyYXlMaXN0PEd1aWQ+IHRhZ3NUb0RldGFjaCA9IG5ldyBBcnJheUxp
c3Q8R3VpZD4oKTsKCiAgICAgICAgaWYgKG1vZGVsLmdldEl0ZW1zKCkgIT0gbnVsbCAmJiAoKEFy
cmF5TGlzdDxUYWdNb2RlbD4pIG1vZGVsLmdldEl0ZW1zKCkpLnNpemUoKSA+IDApCiAgICAgICAg
ewogICAgICAgICAgICBBcnJheUxpc3Q8VGFnTW9kZWw+IHRhZ3MgPSAoQXJyYXlMaXN0PFRhZ01v
ZGVsPikgbW9kZWwuZ2V0SXRlbXMoKTsKICAgICAgICAgICAgVGFnTW9kZWwgcm9vdFRhZyA9IHRh
Z3MuZ2V0KDApOwogICAgICAgICAgICBUYWdNb2RlbC5SZWN1cnNpdmVFZGl0QXR0YWNoRGV0YWNo
TGlzdHMocm9vdFRhZywgYXR0YWNoZWRUYWdzLCB0YWdzVG9BdHRhY2gsIHRhZ3NUb0RldGFjaCk7
CiAgICAgICAgfQoKICAgICAgICBBcnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1ldGVyc0Jhc2U+IHBh
cmFtZXRlcnMgPSBuZXcgQXJyYXlMaXN0PFZkY0FjdGlvblBhcmFtZXRlcnNCYXNlPigpOwogICAg
ICAgIGZvciAoR3VpZCBhIDogdGFnc1RvQXR0YWNoKQogICAgICAgIHsKICAgICAgICAgICAgcGFy
YW1ldGVycy5hZGQobmV3IEF0dGFjaEVudGl0eVRvVGFnUGFyYW1ldGVycyhhLCB2bUlkcykpOwog
ICAgICAgIH0KICAgICAgICBGcm9udGVuZC5SdW5NdWx0aXBsZUFjdGlvbihWZGNBY3Rpb25UeXBl
LkF0dGFjaFZtc1RvVGFnLCBwYXJhbWV0ZXJzKTsKCiAgICAgICAgcGFyYW1ldGVycyA9IG5ldyBB
cnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1ldGVyc0Jhc2U+KCk7CiAgICAgICAgZm9yIChHdWlkIGEg
OiB0YWdzVG9EZXRhY2gpCiAgICAgICAgewogICAgICAgICAgICBwYXJhbWV0ZXJzLmFkZChuZXcg
QXR0YWNoRW50aXR5VG9UYWdQYXJhbWV0ZXJzKGEsIHZtSWRzKSk7CiAgICAgICAgfQogICAgICAg
IEZyb250ZW5kLlJ1bk11bHRpcGxlQWN0aW9uKFZkY0FjdGlvblR5cGUuRGV0YWNoVm1Gcm9tVGFn
LCBwYXJhbWV0ZXJzKTsKCiAgICAgICAgQ2FuY2VsKCk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lk
IEd1aWRlKCkKICAgIHsKICAgICAgICBWbUd1aWRlTW9kZWwgbW9kZWwgPSBuZXcgVm1HdWlkZU1v
ZGVsKCk7CiAgICAgICAgc2V0V2luZG93KG1vZGVsKTsKICAgICAgICBtb2RlbC5zZXRUaXRsZShD
b25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkubmV3VmlydHVhbE1h
Y2hpbmVHdWlkZU1lVGl0bGUoKSk7CiAgICAgICAgbW9kZWwuc2V0SGFzaE5hbWUoIm5ld192aXJ0
dWFsX21hY2hpbmVfLV9ndWlkZV9tZSIpOyAvLyROT04tTkxTLTEkCgogICAgICAgIGlmIChnZXRH
dWlkZUNvbnRleHQoKSA9PSBudWxsKSB7CiAgICAgICAgICAgIFZNIHZtID0gKFZNKSBnZXRTZWxl
Y3RlZEl0ZW0oKTsKICAgICAgICAgICAgc2V0R3VpZGVDb250ZXh0KHZtLmdldElkKCkpOwogICAg
ICAgIH0KCiAgICAgICAgQXN5bmNEYXRhUHJvdmlkZXIuR2V0Vm1CeUlkKG5ldyBBc3luY1F1ZXJ5
KHRoaXMsCiAgICAgICAgICAgICAgICBuZXcgSU5ld0FzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAg
ICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgT25T
dWNjZXNzKE9iamVjdCB0YXJnZXQsIE9iamVjdCByZXR1cm5WYWx1ZSkgewogICAgICAgICAgICAg
ICAgICAgICAgICBWbUxpc3RNb2RlbCB2bUxpc3RNb2RlbCA9IChWbUxpc3RNb2RlbCkgdGFyZ2V0
OwogICAgICAgICAgICAgICAgICAgICAgICBWbUd1aWRlTW9kZWwgbW9kZWwgPSAoVm1HdWlkZU1v
ZGVsKSB2bUxpc3RNb2RlbC5nZXRXaW5kb3coKTsKICAgICAgICAgICAgICAgICAgICAgICAgbW9k
ZWwuc2V0RW50aXR5KHJldHVyblZhbHVlKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIFVJQ29t
bWFuZCB0ZW1wVmFyID0gbmV3IFVJQ29tbWFuZCgiQ2FuY2VsIiwgdm1MaXN0TW9kZWwpOyAvLyRO
T04tTkxTLTEkCiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBWYXIuc2V0VGl0bGUoQ29uc3Rh
bnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0YW50cygpLmNvbmZpZ3VyZUxhdGVyVGl0
bGUoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBWYXIuc2V0SXNEZWZhdWx0KHRydWUp
OwogICAgICAgICAgICAgICAgICAgICAgICB0ZW1wVmFyLnNldElzQ2FuY2VsKHRydWUpOwogICAg
ICAgICAgICAgICAgICAgICAgICBtb2RlbC5nZXRDb21tYW5kcygpLmFkZCh0ZW1wVmFyKTsKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KSwgKEd1aWQpIGdldEd1aWRlQ29u
dGV4dCgpKTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHByb3RlY3RlZCB2b2lkIEluaXREZXRh
aWxNb2RlbHMoKQogICAgewogICAgICAgIHN1cGVyLkluaXREZXRhaWxNb2RlbHMoKTsKCiAgICAg
ICAgT2JzZXJ2YWJsZUNvbGxlY3Rpb248RW50aXR5TW9kZWw+IGxpc3QgPSBuZXcgT2JzZXJ2YWJs
ZUNvbGxlY3Rpb248RW50aXR5TW9kZWw+KCk7CiAgICAgICAgbGlzdC5hZGQobmV3IFZtR2VuZXJh
bE1vZGVsKCkpOwogICAgICAgIGxpc3QuYWRkKG5ldyBWbUludGVyZmFjZUxpc3RNb2RlbCgpKTsK
ICAgICAgICBWbURpc2tMaXN0TW9kZWwgZGlza0xpc3RNb2RlbCA9IG5ldyBWbURpc2tMaXN0TW9k
ZWwoKTsKICAgICAgICBkaXNrTGlzdE1vZGVsLnNldFN5c3RlbVRyZWVDb250ZXh0KHRoaXMpOwog
ICAgICAgIGxpc3QuYWRkKGRpc2tMaXN0TW9kZWwpOwogICAgICAgIGxpc3QuYWRkKG5ldyBWbVNu
YXBzaG90TGlzdE1vZGVsKCkpOwogICAgICAgIGxpc3QuYWRkKG5ldyBWbUV2ZW50TGlzdE1vZGVs
KCkpOwogICAgICAgIGxpc3QuYWRkKG5ldyBWbUFwcExpc3RNb2RlbCgpKTsKICAgICAgICBsaXN0
LmFkZChuZXcgUGVybWlzc2lvbkxpc3RNb2RlbCgpKTsKICAgICAgICBsaXN0LmFkZChuZXcgVm1T
ZXNzaW9uc01vZGVsKCkpOwogICAgICAgIHNldERldGFpbE1vZGVscyhsaXN0KTsKICAgIH0KCiAg
ICBAT3ZlcnJpZGUKICAgIHB1YmxpYyBib29sZWFuIElzU2VhcmNoU3RyaW5nTWF0Y2goU3RyaW5n
IHNlYXJjaFN0cmluZykKICAgIHsKICAgICAgICByZXR1cm4gc2VhcmNoU3RyaW5nLnRyaW0oKS50
b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoInZtIik7IC8vJE5PTi1OTFMtMSQKICAgIH0KCiAgICBA
T3ZlcnJpZGUKICAgIHByb3RlY3RlZCB2b2lkIFN5bmNTZWFyY2goKQogICAgewogICAgICAgIFNl
YXJjaFBhcmFtZXRlcnMgdGVtcFZhciA9IG5ldyBTZWFyY2hQYXJhbWV0ZXJzKGdldFNlYXJjaFN0
cmluZygpLCBTZWFyY2hUeXBlLlZNKTsKICAgICAgICB0ZW1wVmFyLnNldE1heENvdW50KGdldFNl
YXJjaFBhZ2VTaXplKCkpOwogICAgICAgIHN1cGVyLlN5bmNTZWFyY2goVmRjUXVlcnlUeXBlLlNl
YXJjaCwgdGVtcFZhcik7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwcm90ZWN0ZWQgdm9pZCBB
c3luY1NlYXJjaCgpCiAgICB7CiAgICAgICAgc3VwZXIuQXN5bmNTZWFyY2goKTsKCiAgICAgICAg
c2V0QXN5bmNSZXN1bHQoRnJvbnRlbmQuUmVnaXN0ZXJTZWFyY2goZ2V0U2VhcmNoU3RyaW5nKCks
IFNlYXJjaFR5cGUuVk0sIGdldFNlYXJjaFBhZ2VTaXplKCkpKTsKICAgICAgICBzZXRJdGVtcyhn
ZXRBc3luY1Jlc3VsdCgpLmdldERhdGEoKSk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIFVwZGF0
ZUNvbnNvbGVNb2RlbHMoKQogICAgewogICAgICAgIExpc3QgdGVtcFZhciA9IGdldFNlbGVjdGVk
SXRlbXMoKTsKICAgICAgICBMaXN0IHNlbGVjdGVkSXRlbXMgPSAodGVtcFZhciAhPSBudWxsKSA/
IHRlbXBWYXIgOiBuZXcgQXJyYXlMaXN0KCk7CiAgICAgICAgT2JqZWN0IHRlbXBWYXIyID0gZ2V0
U2VsZWN0ZWRJdGVtKCk7CiAgICAgICAgVk0gdm0gPSAoVk0pICgodGVtcFZhcjIgaW5zdGFuY2Vv
ZiBWTSkgPyB0ZW1wVmFyMiA6IG51bGwpOwoKICAgICAgICBpZiAodm0gPT0gbnVsbCB8fCBzZWxl
Y3RlZEl0ZW1zLnNpemUoKSA+IDEpCiAgICAgICAgewogICAgICAgICAgICBzZXREZWZhdWx0Q29u
c29sZU1vZGVsKG51bGwpOwogICAgICAgICAgICBzZXRBZGRpdGlvbmFsQ29uc29sZU1vZGVsKG51
bGwpOwogICAgICAgICAgICBzZXRIYXNBZGRpdGlvbmFsQ29uc29sZU1vZGVsKGZhbHNlKTsKICAg
ICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYgKCFjYWNoZWRDb25z
b2xlTW9kZWxzLmNvbnRhaW5zS2V5KHZtLmdldElkKCkpKQogICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICBTcGljZUNvbnNvbGVNb2RlbCBzcGljZUNvbnNvbGVNb2RlbCA9IG5ldyBTcGljZUNv
bnNvbGVNb2RlbCgpOwogICAgICAgICAgICAgICAgc3BpY2VDb25zb2xlTW9kZWwuZ2V0RXJyb3JF
dmVudCgpLmFkZExpc3RlbmVyKHRoaXMpOwogICAgICAgICAgICAgICAgVm5jQ29uc29sZU1vZGVs
IHZuY0NvbnNvbGVNb2RlbCA9IG5ldyBWbmNDb25zb2xlTW9kZWwoKTsKICAgICAgICAgICAgICAg
IHZuY0NvbnNvbGVNb2RlbC5zZXRNb2RlbCh0aGlzKTsKICAgICAgICAgICAgICAgIFJkcENvbnNv
bGVNb2RlbCByZHBDb25zb2xlTW9kZWwgPSBuZXcgUmRwQ29uc29sZU1vZGVsKCk7CgogICAgICAg
ICAgICAgICAgY2FjaGVkQ29uc29sZU1vZGVscy5wdXQodm0uZ2V0SWQoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3IEFycmF5TGlzdDxDb25zb2xlTW9kZWw+KEFycmF5cy5hc0xpc3QobmV3
IENvbnNvbGVNb2RlbFtdIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGljZUNv
bnNvbGVNb2RlbCwgdm5jQ29uc29sZU1vZGVsLCByZHBDb25zb2xlTW9kZWwgfSkpKTsKICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgQXJyYXlMaXN0PENvbnNvbGVNb2RlbD4gY2FjaGVkTW9kZWxz
ID0gY2FjaGVkQ29uc29sZU1vZGVscy5nZXQodm0uZ2V0SWQoKSk7CiAgICAgICAgICAgIGZvciAo
Q29uc29sZU1vZGVsIGEgOiBjYWNoZWRNb2RlbHMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgIGEuc2V0RW50aXR5KG51bGwpOwogICAgICAgICAgICAgICAgYS5zZXRFbnRpdHkodm0pOwog
ICAgICAgICAgICB9CgogICAgICAgICAgICBzZXREZWZhdWx0Q29uc29sZU1vZGVsKHZtLmdldERp
c3BsYXlUeXBlKCkgPT0gRGlzcGxheVR5cGUudm5jID8gY2FjaGVkTW9kZWxzLmdldCgxKSA6IGNh
Y2hlZE1vZGVscy5nZXQoMCkpOwoKICAgICAgICAgICAgaWYgKEFzeW5jRGF0YVByb3ZpZGVyLklz
V2luZG93c09zVHlwZSh2bS5nZXRWbU9zKCkpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICBmb3IgKENvbnNvbGVNb2RlbCBhIDogY2FjaGVkTW9kZWxzKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUmRwQ29uc29sZU1vZGVsKQogICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2V0QWRkaXRpb25hbENv
bnNvbGVNb2RlbChhKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgc2V0SGFzQWRkaXRp
b25hbENvbnNvbGVNb2RlbCh0cnVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNldEFkZGl0aW9uYWxDb25zb2xlTW9kZWwobnVs
bCk7CiAgICAgICAgICAgICAgICBzZXRIYXNBZGRpdGlvbmFsQ29uc29sZU1vZGVsKGZhbHNlKTsK
ICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgQXJyYXlMaXN0PENvbnNv
bGVNb2RlbD4gR2V0Q29uc29sZU1vZGVsc0J5Vm1HdWlkKEd1aWQgdm1HdWlkKQogICAgewogICAg
ICAgIGlmIChjYWNoZWRDb25zb2xlTW9kZWxzICE9IG51bGwgJiYgY2FjaGVkQ29uc29sZU1vZGVs
cy5jb250YWluc0tleSh2bUd1aWQpKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIGNhY2hl
ZENvbnNvbGVNb2RlbHMuZ2V0KHZtR3VpZCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbnVs
bDsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgTmV3RGVza3RvcCgpCiAgICB7CiAgICAgICAgTmV3
SW50ZXJuYWwoVm1UeXBlLkRlc2t0b3ApOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBOZXdTZXJ2
ZXIoKQogICAgewogICAgICAgIE5ld0ludGVybmFsKFZtVHlwZS5TZXJ2ZXIpOwogICAgfQoKICAg
IHByaXZhdGUgdm9pZCBOZXdJbnRlcm5hbChWbVR5cGUgdm1UeXBlKQogICAgewogICAgICAgIGlm
IChnZXRXaW5kb3coKSAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgIH0KCiAgICAgICAgVW5pdFZtTW9kZWwgbW9kZWwgPSBuZXcgVW5pdFZtTW9kZWwobmV3IE5l
d1ZtTW9kZWxCZWhhdmlvcigpKTsKICAgICAgICBtb2RlbC5zZXRUaXRsZShDb25zdGFudHNNYW5h
Z2VyLmdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgIC5nZXRNZXNzYWdlcygpCiAgICAgICAg
ICAgICAgICAubmV3Vm1UaXRsZSh2bVR5cGUgPT0gVm1UeXBlLlNlcnZlciA/IENvbnN0YW50c01h
bmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5zZXJ2ZXJWbVR5cGUoKQogICAgICAg
ICAgICAgICAgICAgICAgICA6IENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25z
dGFudHMoKS5kZXNrdG9wVm1UeXBlKCkpKTsKICAgICAgICBtb2RlbC5zZXRIYXNoTmFtZSgibmV3
XyIgKyAodm1UeXBlID09IFZtVHlwZS5TZXJ2ZXIgPyAic2VydmVyIiA6ICJkZXNrdG9wIikpOyAv
LyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQgLy8kTk9OLU5MUy0zJAogICAgICAgIG1vZGVsLnNl
dElzTmV3KHRydWUpOwogICAgICAgIG1vZGVsLnNldFZtVHlwZSh2bVR5cGUpOwogICAgICAgIG1v
ZGVsLnNldEN1c3RvbVByb3BlcnRpZXNLZXlzTGlzdChnZXRDdXN0b21Qcm9wZXJ0aWVzS2V5c0xp
c3QoKSk7CgogICAgICAgIHNldFdpbmRvdyhtb2RlbCk7CgogICAgICAgIG1vZGVsLkluaXRpYWxp
emUoZ2V0U3lzdGVtVHJlZVNlbGVjdGVkSXRlbSgpKTsKCiAgICAgICAgLy8gRW5zdXJlcyB0aGF0
IHRoZSBkZWZhdWx0IHByb3Zpc2lvbmluZyBpcyAiQ2xvbmUiIGZvciBhIG5ldyBzZXJ2ZXIgYW5k
ICJUaGluIiBmb3IgYSBuZXcgZGVza3RvcC4KICAgICAgICBib29sZWFuIHNlbGVjdFZhbHVlID0g
bW9kZWwuZ2V0Vm1UeXBlKCkgPT0gVm1UeXBlLlNlcnZlcjsKICAgICAgICBtb2RlbC5nZXRQcm92
aXNpb25pbmcoKS5zZXRFbnRpdHkoc2VsZWN0VmFsdWUpOwoKICAgICAgICBVSUNvbW1hbmQgdGVt
cFZhciA9IG5ldyBVSUNvbW1hbmQoIk9uU2F2ZSIsIHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAg
ICAgdGVtcFZhci5zZXRUaXRsZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29u
c3RhbnRzKCkub2soKSk7CiAgICAgICAgdGVtcFZhci5zZXRJc0RlZmF1bHQodHJ1ZSk7CiAgICAg
ICAgbW9kZWwuZ2V0Q29tbWFuZHMoKS5hZGQodGVtcFZhcik7CiAgICAgICAgVUlDb21tYW5kIHRl
bXBWYXIyID0gbmV3IFVJQ29tbWFuZCgiQ2FuY2VsIiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAg
ICAgICB0ZW1wVmFyMi5zZXRUaXRsZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0
Q29uc3RhbnRzKCkuY2FuY2VsKCkpOwogICAgICAgIHRlbXBWYXIyLnNldElzQ2FuY2VsKHRydWUp
OwogICAgICAgIG1vZGVsLmdldENvbW1hbmRzKCkuYWRkKHRlbXBWYXIyKTsKICAgIH0KCiAgICBw
cml2YXRlIHZvaWQgRWRpdCgpCiAgICB7CiAgICAgICAgVk0gdm0gPSAoVk0pIGdldFNlbGVjdGVk
SXRlbSgpOwogICAgICAgIGlmICh2bSA9PSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgIH0KCiAgICAgICAgaWYgKGdldFdpbmRvdygpICE9IG51bGwpCiAgICAgICAg
ewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBVbml0Vm1Nb2RlbCBtb2Rl
bCA9IG5ldyBVbml0Vm1Nb2RlbChuZXcgRXhpc3RpbmdWbU1vZGVsQmVoYXZpb3Iodm0pKTsKICAg
ICAgICBtb2RlbC5zZXRWbVR5cGUodm0uZ2V0Vm1UeXBlKCkpOwogICAgICAgIG1vZGVsLnNldFZt
QXR0YWNoZWRUb1Bvb2wodm0uZ2V0Vm1Qb29sSWQoKSAhPSBudWxsKTsKICAgICAgICBzZXRXaW5k
b3cobW9kZWwpOwogICAgICAgIG1vZGVsLnNldFRpdGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5z
dGFuY2UoKQogICAgICAgICAgICAgICAgLmdldE1lc3NhZ2VzKCkKICAgICAgICAgICAgICAgIC5l
ZGl0Vm1UaXRsZSh2bS5nZXRWbVR5cGUoKSA9PSBWbVR5cGUuU2VydmVyID8gQ29uc3RhbnRzTWFu
YWdlci5nZXRJbnN0YW5jZSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb25zdGFudHMo
KQogICAgICAgICAgICAgICAgICAgICAgICAuc2VydmVyVm1UeXBlKCkKICAgICAgICAgICAgICAg
ICAgICAgICAgOiBDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCku
ZGVza3RvcFZtVHlwZSgpKSk7CiAgICAgICAgbW9kZWwuc2V0SGFzaE5hbWUoImVkaXRfIiArICh2
bS5nZXRWbVR5cGUoKSA9PSBWbVR5cGUuU2VydmVyID8gInNlcnZlciIgOiAiZGVza3RvcCIpKTsg
Ly8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkIC8vJE5PTi1OTFMtMyQKICAgICAgICBtb2RlbC5z
ZXRDdXN0b21Qcm9wZXJ0aWVzS2V5c0xpc3QoZ2V0Q3VzdG9tUHJvcGVydGllc0tleXNMaXN0KCkp
OwoKICAgICAgICBtb2RlbC5Jbml0aWFsaXplKHRoaXMuZ2V0U3lzdGVtVHJlZVNlbGVjdGVkSXRl
bSgpKTsKCiAgICAgICAgVUlDb21tYW5kIHRlbXBWYXIgPSBuZXcgVUlDb21tYW5kKCJPblNhdmUi
LCB0aGlzKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHRlbXBWYXIuc2V0VGl0bGUoQ29uc3RhbnRz
TWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0YW50cygpLm9rKCkpOwogICAgICAgIHRlbXBW
YXIuc2V0SXNEZWZhdWx0KHRydWUpOwogICAgICAgIG1vZGVsLmdldENvbW1hbmRzKCkuYWRkKHRl
bXBWYXIpOwogICAgICAgIFVJQ29tbWFuZCB0ZW1wVmFyMiA9IG5ldyBVSUNvbW1hbmQoIkNhbmNl
bCIsIHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAgICAgdGVtcFZhcjIuc2V0VGl0bGUoQ29uc3Rh
bnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0YW50cygpLmNhbmNlbCgpKTsKICAgICAg
ICB0ZW1wVmFyMi5zZXRJc0NhbmNlbCh0cnVlKTsKICAgICAgICBtb2RlbC5nZXRDb21tYW5kcygp
LmFkZCh0ZW1wVmFyMik7CiAgICB9CgogICAgcHJpdmF0ZSBNYXA8R3VpZCwgRW50aXR5TW9kZWw+
IHZtc1JlbW92ZU1hcDsKCiAgICBwcml2YXRlIHZvaWQgcmVtb3ZlKCkKICAgIHsKICAgICAgICBp
ZiAoZ2V0V2luZG93KCkgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICB9CgogICAgICAgIENvbmZpcm1hdGlvbk1vZGVsIHdpbmRvdyA9IG5ldyBDb25maXJtYXRp
b25Nb2RlbCgpOwogICAgICAgIHNldFdpbmRvdyh3aW5kb3cpOwogICAgICAgIHdpbmRvdy5zZXRU
aXRsZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkucmVtb3Zl
VmlydHVhbE1hY2hpbmVzVGl0bGUoKSk7CiAgICAgICAgd2luZG93LnNldEhhc2hOYW1lKCJyZW1v
dmVfdmlydHVhbF9tYWNoaW5lIik7IC8vJE5PTi1OTFMtMSQKICAgICAgICB3aW5kb3cuc2V0TWVz
c2FnZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkudmlydHVh
bE1hY2hpbmVzTXNnKCkpOwoKICAgICAgICB2bXNSZW1vdmVNYXAgPSBuZXcgSGFzaE1hcDxHdWlk
LCBFbnRpdHlNb2RlbD4oKTsKCiAgICAgICAgZm9yIChPYmplY3Qgc2VsZWN0ZWRJdGVtIDogZ2V0
U2VsZWN0ZWRJdGVtcygpKQogICAgICAgIHsKICAgICAgICAgICAgVk0gdm0gPSAoVk0pIHNlbGVj
dGVkSXRlbTsKICAgICAgICAgICAgRW50aXR5TW9kZWwgcmVtb3ZlRGlza3NDaGVja2JveCA9IG5l
dyBFbnRpdHlNb2RlbCh0cnVlKTsKICAgICAgICAgICAgcmVtb3ZlRGlza3NDaGVja2JveC5zZXRU
aXRsZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkucmVtb3Zl
RGlza3NUaXRsZSgpKTsKICAgICAgICAgICAgcmVtb3ZlRGlza3NDaGVja2JveC5zZXRNZXNzYWdl
KHZtLmdldFZtTmFtZSgpKTsKICAgICAgICAgICAgaWYgKCFOR3VpZC5FbXB0eS5lcXVhbHModm0u
Z2V0Vm10R3VpZCgpKSkgewogICAgICAgICAgICAgICAgdXBkYXRlUmVtb3ZlRGlza3NDaGVja0Jv
eChyZW1vdmVEaXNrc0NoZWNrYm94LCB0cnVlLCBmYWxzZSwgQ29uc3RhbnRzTWFuYWdlci5nZXRJ
bnN0YW5jZSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb25zdGFudHMoKQogICAgICAg
ICAgICAgICAgICAgICAgICAucmVtb3ZlVm1EaXNrc1RlbXBsYXRlTXNnKCkpOwogICAgICAgICAg
ICB9CiAgICAgICAgICAgIHZtc1JlbW92ZU1hcC5wdXQodm0uZ2V0SWQoKSwgcmVtb3ZlRGlza3ND
aGVja2JveCk7CiAgICAgICAgfQogICAgICAgIHdpbmRvdy5zZXRJdGVtcyh2bXNSZW1vdmVNYXAu
ZW50cnlTZXQoKSk7CiAgICAgICAgaW5pdFJlbW92ZURpc2tzQ2hlY2tib3hlcyh2bXNSZW1vdmVN
YXApOwoKICAgICAgICBVSUNvbW1hbmQgdGVtcFZhciA9IG5ldyBVSUNvbW1hbmQoIk9uUmVtb3Zl
IiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB0ZW1wVmFyLnNldFRpdGxlKENvbnN0YW50
c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5vaygpKTsKICAgICAgICB0ZW1w
VmFyLnNldElzRGVmYXVsdCh0cnVlKTsKICAgICAgICB3aW5kb3cuZ2V0Q29tbWFuZHMoKS5hZGQo
dGVtcFZhcik7CiAgICAgICAgVUlDb21tYW5kIHRlbXBWYXIyID0gbmV3IFVJQ29tbWFuZCgiQ2Fu
Y2VsIiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB0ZW1wVmFyMi5zZXRUaXRsZShDb25z
dGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuY2FuY2VsKCkpOwogICAg
ICAgIHRlbXBWYXIyLnNldElzQ2FuY2VsKHRydWUpOwogICAgICAgIHdpbmRvdy5nZXRDb21tYW5k
cygpLmFkZCh0ZW1wVmFyMik7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHVwZGF0ZVJlbW92ZURp
c2tzQ2hlY2tCb3goRW50aXR5TW9kZWwgbW9kZWwsCiAgICAgICAgICAgIGJvb2xlYW4gZGVsZXRl
RGlza3MsCiAgICAgICAgICAgIGJvb2xlYW4gaXNDaGFuZ2FibGUsCiAgICAgICAgICAgIFN0cmlu
ZyBjaGFuZ2VQcm9oaWJpdGlvblJlYXNvbikgewoKICAgICAgICBtb2RlbC5zZXRFbnRpdHkoZGVs
ZXRlRGlza3MpOwogICAgICAgIGlmICghaXNDaGFuZ2FibGUgJiYgY2hhbmdlUHJvaGliaXRpb25S
ZWFzb24gIT0gbnVsbCkgewogICAgICAgICAgICBtb2RlbC5nZXRDaGFuZ2VQcm9oaWJpdGlvblJl
YXNvbnMoKS5hZGQoY2hhbmdlUHJvaGliaXRpb25SZWFzb24pOwogICAgICAgIH0KICAgICAgICBt
b2RlbC5zZXRJc0NoYW5nYWJsZShpc0NoYW5nYWJsZSk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lk
IGluaXRSZW1vdmVEaXNrc0NoZWNrYm94ZXMoZmluYWwgTWFwPEd1aWQsIEVudGl0eU1vZGVsPiB2
bXNNYXApIHsKICAgICAgICBBcnJheUxpc3Q8VmRjUXVlcnlQYXJhbWV0ZXJzQmFzZT4gcGFyYW1z
ID0gbmV3IEFycmF5TGlzdDxWZGNRdWVyeVBhcmFtZXRlcnNCYXNlPigpOwogICAgICAgIEFycmF5
TGlzdDxWZGNRdWVyeVR5cGU+IHF1ZXJpZXMgPSBuZXcgQXJyYXlMaXN0PFZkY1F1ZXJ5VHlwZT4o
KTsKCiAgICAgICAgZm9yIChFbnRyeTxHdWlkLCBFbnRpdHlNb2RlbD4gZW50cnkgOiB2bXNNYXAu
ZW50cnlTZXQoKSkgewogICAgICAgICAgICBpZiAoZW50cnkuZ2V0VmFsdWUoKS5nZXRJc0NoYW5n
YWJsZSgpKSB7IC8vIE5vIHBvaW50IGluIGZldGNoaW5nIFZNIGRpc2tzIGZyb20gb25lcyB0aGF0
IGFscmVhZHkgZGV0ZXJtaW5lZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIGlzIHVuY2hhbmdlYWJsZSBzaW5jZSB0aGV5IGFyZSBhbHJlYWR5
IGluaXRpYWxpemVkCiAgICAgICAgICAgICAgICBwYXJhbXMuYWRkKG5ldyBHZXRBbGxEaXNrc0J5
Vm1JZFBhcmFtZXRlcnMoZW50cnkuZ2V0S2V5KCkpKTsKICAgICAgICAgICAgICAgIHF1ZXJpZXMu
YWRkKFZkY1F1ZXJ5VHlwZS5HZXRBbGxEaXNrc0J5Vm1JZCk7CiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgIC8vIFRPRE86IFRoZXJlJ3Mgbm8gcG9pbnQgaW4gY3JlYXRpbmcgYSBWZGNR
dWVyeVR5cGUgbGlzdCB3aGVuIHlvdSB3YW5uYSBydW4gdGhlIHNhbWUgcXVlcnkgZm9yIGFsbCBw
YXJhbWV0ZXJzLAogICAgICAgIC8vIHJldmlzZSB3aGVuIHJlZmFjdG9yaW5nIG9yZy5vdmlydC5l
bmdpbmUudWkuRnJvbnRlbmQgdG8gc3VwcG9ydCBydW5NdWx0aXBsZVF1ZXJ5IHdpdGggYSBzaW5n
bGUgcXVlcnkKICAgICAgICBpZiAoIXBhcmFtcy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgRnJv
bnRlbmQuUnVuTXVsdGlwbGVRdWVyaWVzKHF1ZXJpZXMsIHBhcmFtcywgbmV3IElGcm9udGVuZE11
bHRpcGxlUXVlcnlBc3luY0NhbGxiYWNrKCkgewogICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAg
ICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBFeGVjdXRlZChGcm9udGVuZE11bHRpcGxlUXVlcnlB
c3luY1Jlc3VsdCByZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IHJlc3VsdC5nZXRSZXR1cm5WYWx1ZXMoKS5zaXplKCk7IGkrKykgewogICAgICAgICAgICAg
ICAgICAgICAgICBpZiAocmVzdWx0LmdldFJldHVyblZhbHVlcygpLmdldChpKS5nZXRTdWNjZWVk
ZWQoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgR3VpZCB2bUlkID0gKChHZXRBbGxE
aXNrc0J5Vm1JZFBhcmFtZXRlcnMpIHJlc3VsdC5nZXRQYXJhbWV0ZXJzKCkuZ2V0KGkpKS5nZXRW
bUlkKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0UmVtb3ZlRGlza3NDaGVjYm94
ZXNQb3N0KHZtSWQsIChMaXN0PERpc2s+KSByZXN1bHQuZ2V0UmV0dXJuVmFsdWVzKCkuZ2V0KGkp
LmdldFJldHVyblZhbHVlKCkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAg
ICB9CgogICAgcHJpdmF0ZSB2b2lkIGluaXRSZW1vdmVEaXNrc0NoZWNib3hlc1Bvc3QoR3VpZCB2
bUlkLCBMaXN0PERpc2s+IGRpc2tzKSB7CiAgICAgICAgRW50aXR5TW9kZWwgbW9kZWwgPSB2bXNS
ZW1vdmVNYXAuZ2V0KHZtSWQpOwogICAgICAgIGlmIChkaXNrcy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgICAgdXBkYXRlUmVtb3ZlRGlza3NDaGVja0JveChtb2RlbCwgZmFsc2UsIGZhbHNlLCBDb25z
dGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAuZ2V0Q29uc3Rh
bnRzKCkKICAgICAgICAgICAgICAgICAgICAucmVtb3ZlVm1EaXNrc05vRGlza3NNc2coKSk7CiAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGJvb2xlYW4gaXNPbmx5U2hhcmVk
RGlza3MgPSB0cnVlOwogICAgICAgIGJvb2xlYW4gaXNTbmFwc2hvdEV4aXN0cyA9IGZhbHNlOwog
ICAgICAgIGZvciAoRGlzayBkaXNrIDogZGlza3MpIHsKICAgICAgICAgICAgaWYgKCFkaXNrLmlz
U2hhcmVhYmxlKCkpIHsKICAgICAgICAgICAgICAgIGlzT25seVNoYXJlZERpc2tzID0gZmFsc2U7
CiAgICAgICAgICAgICAgICBpZiAoZGlzay5nZXREaXNrU3RvcmFnZVR5cGUoKSA9PSBEaXNrU3Rv
cmFnZVR5cGUuSU1BR0UpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoKChEaXNrSW1hZ2UpIGRp
c2spLmdldFNuYXBzaG90cygpLnNpemUoKSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
aXNTbmFwc2hvdEV4aXN0cyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAg
ICAgIH0KCiAgICAgICAgaWYgKGlzU25hcHNob3RFeGlzdHMpIHsKICAgICAgICAgICAgdXBkYXRl
UmVtb3ZlRGlza3NDaGVja0JveChtb2RlbCwgdHJ1ZSwgZmFsc2UsIENvbnN0YW50c01hbmFnZXIu
Z2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgICAgIC5nZXRDb25zdGFudHMoKQogICAgICAg
ICAgICAgICAgICAgIC5yZW1vdmVWbURpc2tzU25hcHNob3RzTXNnKCkpOwogICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNPbmx5U2hhcmVkRGlza3MpIHsKICAgICAg
ICAgICAgdXBkYXRlUmVtb3ZlRGlza3NDaGVja0JveChtb2RlbCwgZmFsc2UsIGZhbHNlLCBDb25z
dGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgICAgICAuZ2V0Q29uc3Rh
bnRzKCkKICAgICAgICAgICAgICAgICAgICAucmVtb3ZlVm1EaXNrc0FsbFNoYXJlZE1zZygpKTsK
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHZvaWQgTW92
ZSgpCiAgICB7CiAgICAgICAgVk0gdm0gPSAoVk0pIGdldFNlbGVjdGVkSXRlbSgpOwogICAgICAg
IGlmICh2bSA9PSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0K
CiAgICAgICAgaWYgKGdldFdpbmRvdygpICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgfQoKICAgICAgICBNb3ZlRGlza01vZGVsIG1vZGVsID0gbmV3IE1vdmVE
aXNrTW9kZWwoKTsKICAgICAgICBzZXRXaW5kb3cobW9kZWwpOwogICAgICAgIG1vZGVsLnNldFRp
dGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5tb3ZlVmly
dHVhbE1hY2hpbmVUaXRsZSgpKTsKICAgICAgICBtb2RlbC5zZXRIYXNoTmFtZSgibW92ZV92aXJ0
dWFsX21hY2hpbmUiKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIG1vZGVsLnNldElzU291cmNlU3Rv
cmFnZURvbWFpbk5hbWVBdmFpbGFibGUodHJ1ZSk7CiAgICAgICAgbW9kZWwuc2V0RW50aXR5KHRo
aXMpOwogICAgICAgIG1vZGVsLlN0YXJ0UHJvZ3Jlc3MobnVsbCk7CgogICAgICAgIEFzeW5jRGF0
YVByb3ZpZGVyLkdldFZtRGlza0xpc3QobmV3IEFzeW5jUXVlcnkodGhpcywgbmV3IElOZXdBc3lu
Y0NhbGxiYWNrKCkgewogICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIHZv
aWQgT25TdWNjZXNzKE9iamVjdCB0YXJnZXQsIE9iamVjdCByZXR1cm5WYWx1ZSkgewogICAgICAg
ICAgICAgICAgVm1MaXN0TW9kZWwgdm1MaXN0TW9kZWwgPSAoVm1MaXN0TW9kZWwpIHRhcmdldDsK
ICAgICAgICAgICAgICAgIE1vdmVEaXNrTW9kZWwgbW92ZURpc2tNb2RlbCA9IChNb3ZlRGlza01v
ZGVsKSB2bUxpc3RNb2RlbC5nZXRXaW5kb3coKTsKICAgICAgICAgICAgICAgIExpbmtlZExpc3Q8
RGlza0ltYWdlPiBkaXNrcyA9IChMaW5rZWRMaXN0PERpc2tJbWFnZT4pIHJldHVyblZhbHVlOwog
ICAgICAgICAgICAgICAgQXJyYXlMaXN0PERpc2tJbWFnZT4gZGlza0ltYWdlcyA9IG5ldyBBcnJh
eUxpc3Q8RGlza0ltYWdlPigpOwogICAgICAgICAgICAgICAgZGlza0ltYWdlcy5hZGRBbGwoZGlz
a3MpOwoKICAgICAgICAgICAgICAgIG1vdmVEaXNrTW9kZWwuaW5pdChkaXNrSW1hZ2VzKTsKICAg
ICAgICAgICAgfQogICAgICAgIH0pLCB2bS5nZXRJZCgpLCB0cnVlKTsKICAgIH0KCiAgICBAT3Zl
cnJpZGUKICAgIHByb3RlY3RlZCBTdHJpbmcgdGhlcmVJc05vRXhwb3J0RG9tYWluQmFja3VwRW50
aXR5QXR0YWNoRXhwb3J0RG9tYWluVG9WbXNEY01zZygpIHsKICAgICAgICByZXR1cm4gQ29uc3Rh
bnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpCiAgICAgICAgICAgICAgICAuZ2V0Q29uc3RhbnRzKCkK
ICAgICAgICAgICAgICAgIC50aGVyZUlzTm9FeHBvcnREb21haW5CYWNrdXBWbUF0dGFjaEV4cG9y
dERvbWFpblRvVm1zRGNNc2coKTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHByb3RlY3RlZCBW
ZGNRdWVyeVR5cGUgZ2V0RW50aXR5RXhwb3J0RG9tYWluKCkgewogICAgICAgIHJldHVybiBWZGNR
dWVyeVR5cGUuR2V0Vm1zRnJvbUV4cG9ydERvbWFpbjsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAg
IHByb3RlY3RlZCBTdHJpbmcgZW50aXR5UmVzaWRlT25TZXZlcmFsRENzTWFrZVN1cmVUaGVFeHBv
cnRlZFZNUmVzaWRlT25TYW1lRGNNc2coKSB7CiAgICAgICAgcmV0dXJuIENvbnN0YW50c01hbmFn
ZXIuZ2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgLmdldENvbnN0YW50cygpCiAgICAgICAg
ICAgICAgICAudm1zUmVzaWRlT25TZXZlcmFsRENzTWFrZVN1cmVUaGVFeHBvcnRlZFZNUmVzaWRl
T25TYW1lRGNNc2coKTsKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAgIHByb3RlY3RlZCBib29sZWFu
IGVudGl0aWVzU2VsZWN0ZWRPbkRpZmZlcmVudERhdGFDZW50ZXJzKCkKICAgIHsKICAgICAgICBB
cnJheUxpc3Q8Vk0+IHZtcyA9IG5ldyBBcnJheUxpc3Q8Vk0+KCk7CiAgICAgICAgZm9yIChPYmpl
Y3Qgc2VsZWN0ZWRJdGVtIDogZ2V0U2VsZWN0ZWRJdGVtcygpKQogICAgICAgIHsKICAgICAgICAg
ICAgVk0gYSA9IChWTSkgc2VsZWN0ZWRJdGVtOwogICAgICAgICAgICB2bXMuYWRkKGEpOwogICAg
ICAgIH0KCiAgICAgICAgTWFwPE5HdWlkLCBBcnJheUxpc3Q8Vk0+PiB0ID0gbmV3IEhhc2hNYXA8
Tkd1aWQsIEFycmF5TGlzdDxWTT4+KCk7CiAgICAgICAgZm9yIChWTSBhIDogdm1zKQogICAgICAg
IHsKICAgICAgICAgICAgaWYgKCF0LmNvbnRhaW5zS2V5KGEuZ2V0U3RvcmFnZVBvb2xJZCgpKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdC5wdXQoYS5nZXRTdG9yYWdlUG9vbElkKCks
IG5ldyBBcnJheUxpc3Q8Vk0+KCkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBBcnJheUxp
c3Q8Vk0+IGxpc3QgPSB0LmdldChhLmdldFN0b3JhZ2VQb29sSWQoKSk7CiAgICAgICAgICAgIGxp
c3QuYWRkKGEpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHQuc2l6ZSgpID4gMTsKICAgIH0K
CiAgICBAT3ZlcnJpZGUKICAgIHByb3RlY3RlZCBTdHJpbmcgZXh0cmFjdE5hbWVGcm9tRW50aXR5
KFZNIGVudGl0eSkgewogICAgICAgIHJldHVybiBlbnRpdHkuZ2V0Vm1OYW1lKCk7CiAgICB9Cgog
ICAgQE92ZXJyaWRlCiAgICBwcm90ZWN0ZWQgYm9vbGVhbiBlbnRpdGl0ZXNFcXVhbHNOdWxsU2Fm
ZShWTSBlMSwgVk0gZTIpIHsKICAgICAgICByZXR1cm4gZTEuZ2V0SWQoKS5lcXVhbHMoZTIuZ2V0
SWQoKSk7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwcm90ZWN0ZWQgU3RyaW5nIGNvbXBvc2VF
bnRpdHlPblN0b3JhZ2UoU3RyaW5nIGVudGl0aWVzKSB7CiAgICAgICAgcmV0dXJuIENvbnN0YW50
c01hbmFnZXIuZ2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgLmdldE1lc3NhZ2VzKCkKICAg
ICAgICAgICAgICAgIC52bXNBbHJlYWR5RXhpc3RPblRhcmdldEV4cG9ydERvbWFpbihlbnRpdGll
cyk7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwcm90ZWN0ZWQgSXRlcmFibGU8Vk0+IGFzSXRl
cmFibGVSZXR1cm5WYWx1ZShPYmplY3QgcmV0dXJuVmFsdWUpIHsKICAgICAgICByZXR1cm4gKExp
c3Q8Vk0+KSByZXR1cm5WYWx1ZTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgR2V0VGVtcGxhdGVz
Tm90UHJlc2VudE9uRXhwb3J0RG9tYWluKCkKICAgIHsKICAgICAgICBFeHBvcnRWbU1vZGVsIG1v
ZGVsID0gKEV4cG9ydFZtTW9kZWwpIGdldFdpbmRvdygpOwogICAgICAgIEd1aWQgc3RvcmFnZURv
bWFpbklkID0gKChzdG9yYWdlX2RvbWFpbnMpIG1vZGVsLmdldFN0b3JhZ2UoKS5nZXRTZWxlY3Rl
ZEl0ZW0oKSkuZ2V0SWQoKTsKCiAgICAgICAgQXN5bmNEYXRhUHJvdmlkZXIuR2V0RGF0YUNlbnRl
cnNCeVN0b3JhZ2VEb21haW4obmV3IEFzeW5jUXVlcnkodGhpcywKICAgICAgICAgICAgICAgIG5l
dyBJTmV3QXN5bmNDYWxsYmFjaygpIHsKICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKICAg
ICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBPblN1Y2Nlc3MoT2JqZWN0IHRhcmdldCwgT2Jq
ZWN0IHJldHVyblZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFZtTGlzdE1vZGVsIHZt
TGlzdE1vZGVsID0gKFZtTGlzdE1vZGVsKSB0YXJnZXQ7CiAgICAgICAgICAgICAgICAgICAgICAg
IEFycmF5TGlzdDxzdG9yYWdlX3Bvb2w+IHN0b3JhZ2VQb29scyA9CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKEFycmF5TGlzdDxzdG9yYWdlX3Bvb2w+KSByZXR1cm5WYWx1ZTsKICAg
ICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZV9wb29sIHN0b3JhZ2VQb29sID0gc3RvcmFnZVBv
b2xzLnNpemUoKSA+IDAgPyBzdG9yYWdlUG9vbHMuZ2V0KDApIDogbnVsbDsKCiAgICAgICAgICAg
ICAgICAgICAgICAgIHZtTGlzdE1vZGVsLlBvc3RHZXRUZW1wbGF0ZXNOb3RQcmVzZW50T25FeHBv
cnREb21haW4oc3RvcmFnZVBvb2wpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0pLCBzdG9yYWdlRG9tYWluSWQpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBQb3N0R2V0
VGVtcGxhdGVzTm90UHJlc2VudE9uRXhwb3J0RG9tYWluKHN0b3JhZ2VfcG9vbCBzdG9yYWdlUG9v
bCkKICAgIHsKICAgICAgICBFeHBvcnRWbU1vZGVsIG1vZGVsID0gKEV4cG9ydFZtTW9kZWwpIGdl
dFdpbmRvdygpOwogICAgICAgIEd1aWQgc3RvcmFnZURvbWFpbklkID0gKChzdG9yYWdlX2RvbWFp
bnMpIG1vZGVsLmdldFN0b3JhZ2UoKS5nZXRTZWxlY3RlZEl0ZW0oKSkuZ2V0SWQoKTsKCiAgICAg
ICAgaWYgKHN0b3JhZ2VQb29sICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBBc3luY0Rh
dGFQcm92aWRlci5HZXRBbGxUZW1wbGF0ZXNGcm9tRXhwb3J0RG9tYWluKG5ldyBBc3luY1F1ZXJ5
KHRoaXMsCiAgICAgICAgICAgICAgICAgICAgbmV3IElOZXdBc3luY0NhbGxiYWNrKCkgewogICAg
ICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICAgICAgcHVi
bGljIHZvaWQgT25TdWNjZXNzKE9iamVjdCB0YXJnZXQsIE9iamVjdCByZXR1cm5WYWx1ZSkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVm1MaXN0TW9kZWwgdm1MaXN0TW9kZWwgPSAoVm1M
aXN0TW9kZWwpIHRhcmdldDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2hNYXA8Vm1U
ZW1wbGF0ZSwgQXJyYXlMaXN0PERpc2tJbWFnZT4+IHRlbXBsYXRlc0Rpc2tTZXQgPQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSGFzaE1hcDxWbVRlbXBsYXRlLCBBcnJheUxp
c3Q8RGlza0ltYWdlPj4pIHJldHVyblZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
SGFzaE1hcDxTdHJpbmcsIEFycmF5TGlzdDxTdHJpbmc+PiB0ZW1wbGF0ZURpYyA9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBIYXNoTWFwPFN0cmluZywgQXJyYXlMaXN0
PFN0cmluZz4+KCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgcmVs
ZXZhbnQgdGVtcGxhdGVzIGFyZSBhbHJlYWR5IHRoZXJlCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb3IgKE9iamVjdCBzZWxlY3RlZEl0ZW0gOiB2bUxpc3RNb2RlbC5nZXRTZWxlY3RlZEl0
ZW1zKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVk0gdm0gPSAoVk0pIHNlbGVjdGVkSXRlbTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sZWFuIGhhc01hdGNoID0gZmFsc2U7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChWbVRlbXBsYXRlIGEgOiB0ZW1wbGF0ZXNEaXNrU2V0LmtleVNl
dCgpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHZtLmdldFZtdEd1aWQoKS5lcXVhbHMoYS5nZXRJZCgpKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGFzTWF0Y2ggPSB0cnVlOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghdm0uZ2V0Vm10R3VpZCgpLmVxdWFscyhOR3VpZC5FbXB0
eSkgJiYgIWhhc01hdGNoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZW1wbGF0ZURpYy5jb250YWluc0tl
eSh2bS5nZXRWbXROYW1lKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZURpYy5wdXQo
dm0uZ2V0Vm10TmFtZSgpLCBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVtcGxhdGVEaWMuZ2V0KHZtLmdldFZtdE5hbWUoKSkuYWRkKHZtLmdldFZtTmFtZSgpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXBTdHI7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiB0ZW1wTGlzdDsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFycmF5TGlzdDxTdHJpbmc+IG1pc3NpbmdUZW1wbGF0ZXMg
PSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciAoTWFwLkVudHJ5PFN0cmluZywgQXJyYXlMaXN0PFN0cmluZz4+IGtleVZhbHVlUGFpciA6IHRl
bXBsYXRlRGljLmVudHJ5U2V0KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcExpc3QgPSBrZXlWYWx1ZVBhaXIuZ2V0VmFs
dWUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wU3RyID0gIlRlbXBsYXRl
ICIgKyBrZXlWYWx1ZVBhaXIuZ2V0S2V5KCkgKyAiIChmb3IgIjsgLy8kTk9OLU5MUy0xJCAvLyRO
T04tTkxTLTIkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRlbXBMaXN0LnNpemUoKSAt
IDE7IGkrKykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlbXBTdHIgKz0gdGVtcExpc3QuZ2V0KGkpICsgIiwgIjsg
Ly8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZW1wU3RyICs9IHRlbXBMaXN0LmdldChpKSArICIpIjsg
Ly8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdUZW1w
bGF0ZXMuYWRkKHRlbXBTdHIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZtTGlzdE1vZGVsLlBvc3RFeHBvcnRHZXRNaXNzaW5nVGVt
cGxhdGVzKG1pc3NpbmdUZW1wbGF0ZXMpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgc3RvcmFnZVBvb2wuZ2V0SWQo
KSwKICAgICAgICAgICAgICAgICAgICBzdG9yYWdlRG9tYWluSWQpOwogICAgICAgIH0KICAgIH0K
CiAgICBwcml2YXRlIHZvaWQgUG9zdEV4cG9ydEdldE1pc3NpbmdUZW1wbGF0ZXMoQXJyYXlMaXN0
PFN0cmluZz4gbWlzc2luZ1RlbXBsYXRlc0Zyb21WbXMpCiAgICB7CiAgICAgICAgRXhwb3J0Vm1N
b2RlbCBtb2RlbCA9IChFeHBvcnRWbU1vZGVsKSBnZXRXaW5kb3coKTsKICAgICAgICBHdWlkIHN0
b3JhZ2VEb21haW5JZCA9ICgoc3RvcmFnZV9kb21haW5zKSBtb2RlbC5nZXRTdG9yYWdlKCkuZ2V0
U2VsZWN0ZWRJdGVtKCkpLmdldElkKCk7CiAgICAgICAgQXJyYXlMaXN0PFZkY0FjdGlvblBhcmFt
ZXRlcnNCYXNlPiBwYXJhbWV0ZXJzID0gbmV3IEFycmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJz
QmFzZT4oKTsKCiAgICAgICAgbW9kZWwuU3RvcFByb2dyZXNzKCk7CgogICAgICAgIGZvciAoT2Jq
ZWN0IGEgOiBnZXRTZWxlY3RlZEl0ZW1zKCkpCiAgICAgICAgewogICAgICAgICAgICBWTSB2bSA9
IChWTSkgYTsKICAgICAgICAgICAgTW92ZVZtUGFyYW1ldGVycyBwYXJhbWV0ZXIgPSBuZXcgTW92
ZVZtUGFyYW1ldGVycyh2bS5nZXRJZCgpLCBzdG9yYWdlRG9tYWluSWQpOwogICAgICAgICAgICBw
YXJhbWV0ZXIuc2V0Rm9yY2VPdmVycmlkZSgoQm9vbGVhbikgbW9kZWwuZ2V0Rm9yY2VPdmVycmlk
ZSgpLmdldEVudGl0eSgpKTsKICAgICAgICAgICAgcGFyYW1ldGVyLnNldENvcHlDb2xsYXBzZSgo
Qm9vbGVhbikgbW9kZWwuZ2V0Q29sbGFwc2VTbmFwc2hvdHMoKS5nZXRFbnRpdHkoKSk7CiAgICAg
ICAgICAgIHBhcmFtZXRlci5zZXRUZW1wbGF0ZU11c3RFeGlzdHModHJ1ZSk7CgogICAgICAgICAg
ICBwYXJhbWV0ZXJzLmFkZChwYXJhbWV0ZXIpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEoQm9v
bGVhbikgbW9kZWwuZ2V0Q29sbGFwc2VTbmFwc2hvdHMoKS5nZXRFbnRpdHkoKSkKICAgICAgICB7
CiAgICAgICAgICAgIGlmICgobWlzc2luZ1RlbXBsYXRlc0Zyb21WbXMgPT0gbnVsbCB8fCBtaXNz
aW5nVGVtcGxhdGVzRnJvbVZtcy5zaXplKCkgPiAwKSkKICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgQ29uZmlybWF0aW9uTW9kZWwgY29uZmlybU1vZGVsID0gbmV3IENvbmZpcm1hdGlvbk1v
ZGVsKCk7CiAgICAgICAgICAgICAgICBzZXRDb25maXJtV2luZG93KGNvbmZpcm1Nb2RlbCk7CiAg
ICAgICAgICAgICAgICBjb25maXJtTW9kZWwuc2V0VGl0bGUoQ29uc3RhbnRzTWFuYWdlci5nZXRJ
bnN0YW5jZSgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb25zdGFudHMoKQogICAgICAg
ICAgICAgICAgICAgICAgICAudGVtcGxhdGVzTm90Rm91bmRPbkV4cG9ydERvbWFpblRpdGxlKCkp
OwogICAgICAgICAgICAgICAgY29uZmlybU1vZGVsLnNldEhhc2hOYW1lKCJ0ZW1wbGF0ZV9ub3Rf
Zm91bmRfb25fZXhwb3J0X2RvbWFpbiIpOyAvLyROT04tTkxTLTEkCgogICAgICAgICAgICAgICAg
Y29uZmlybU1vZGVsLnNldE1lc3NhZ2UobWlzc2luZ1RlbXBsYXRlc0Zyb21WbXMgPT0gbnVsbCA/
IENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgICAgICAgICAu
Z2V0Q29uc3RhbnRzKCkKICAgICAgICAgICAgICAgICAgICAgICAgLmNvdWxkTm90UmVhZFRlbXBs
YXRlc0Zyb21FeHBvcnREb21haW5Nc2coKQogICAgICAgICAgICAgICAgICAgICAgICA6IENvbnN0
YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC5nZXRDb25zdGFudHMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVGb2xs
b3dpbmdUZW1wbGF0ZXNBcmVNaXNzaW5nT25UYXJnZXRFeHBvcnREb21haW5Nc2coKSk7CiAgICAg
ICAgICAgICAgICBjb25maXJtTW9kZWwuc2V0SXRlbXMobWlzc2luZ1RlbXBsYXRlc0Zyb21WbXMp
OwoKICAgICAgICAgICAgICAgIFVJQ29tbWFuZCB0ZW1wVmFyID0gbmV3IFVJQ29tbWFuZCgiT25F
eHBvcnROb1RlbXBsYXRlcyIsIHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAgICAgICAgICAgICB0
ZW1wVmFyLnNldFRpdGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFu
dHMoKS5vaygpKTsKICAgICAgICAgICAgICAgIHRlbXBWYXIuc2V0SXNEZWZhdWx0KHRydWUpOwog
ICAgICAgICAgICAgICAgY29uZmlybU1vZGVsLmdldENvbW1hbmRzKCkuYWRkKHRlbXBWYXIpOwog
ICAgICAgICAgICAgICAgVUlDb21tYW5kIHRlbXBWYXIyID0gbmV3IFVJQ29tbWFuZCgiQ2FuY2Vs
Q29uZmlybWF0aW9uIiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICAgICAgICAgIHRlbXBW
YXIyLnNldFRpdGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMo
KS5jYW5jZWwoKSk7CiAgICAgICAgICAgICAgICB0ZW1wVmFyMi5zZXRJc0NhbmNlbCh0cnVlKTsK
ICAgICAgICAgICAgICAgIGNvbmZpcm1Nb2RlbC5nZXRDb21tYW5kcygpLmFkZCh0ZW1wVmFyMik7
CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICBpZiAobW9kZWwuZ2V0UHJvZ3Jlc3MoKSAhPSBudWxsKQogICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICBtb2RlbC5TdGFydFByb2dyZXNzKG51bGwpOwoKICAgICAgICAgICAgICAgIEZyb250ZW5k
LlJ1bk11bHRpcGxlQWN0aW9uKFZkY0FjdGlvblR5cGUuRXhwb3J0Vm0sIHBhcmFtZXRlcnMsCiAg
ICAgICAgICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRlbmRNdWx0aXBsZUFjdGlvbkFzeW5jQ2Fs
bGJhY2soKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIEV4ZWN1dGVkKEZyb250ZW5kTXVsdGlwbGVB
Y3Rpb25Bc3luY1Jlc3VsdCByZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFeHBvcnRWbU1vZGVsIGxvY2FsTW9kZWwgPSAoRXhwb3J0Vm1Nb2RlbCkgcmVzdWx0LmdldFN0
YXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxNb2RlbC5TdG9wUHJv
Z3Jlc3MoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYW5jZWwoKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfSwgbW9kZWwp
OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAg
ICAgIGlmIChtb2RlbC5nZXRQcm9ncmVzcygpICE9IG51bGwpCiAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChWZGNBY3Rp
b25QYXJhbWV0ZXJzQmFzZSBpdGVtIDogcGFyYW1ldGVycykKICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgTW92ZVZtUGFyYW1ldGVycyBwYXJhbWV0ZXIgPSAoTW92ZVZtUGFyYW1ldGVycykg
aXRlbTsKICAgICAgICAgICAgICAgIHBhcmFtZXRlci5zZXRUZW1wbGF0ZU11c3RFeGlzdHMoZmFs
c2UpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBtb2RlbC5TdGFydFByb2dyZXNzKG51bGwp
OwoKICAgICAgICAgICAgRnJvbnRlbmQuUnVuTXVsdGlwbGVBY3Rpb24oVmRjQWN0aW9uVHlwZS5F
eHBvcnRWbSwgcGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAgICBuZXcgSUZyb250ZW5kTXVs
dGlwbGVBY3Rpb25Bc3luY0NhbGxiYWNrKCkgewogICAgICAgICAgICAgICAgICAgICAgICBAT3Zl
cnJpZGUKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0ZWQoRnJvbnRl
bmRNdWx0aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRXhwb3J0Vm1Nb2RlbCBsb2NhbE1vZGVsID0gKEV4cG9ydFZtTW9kZWwpIHJlc3Vs
dC5nZXRTdGF0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxNb2RlbC5TdG9w
UHJvZ3Jlc3MoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbCgpOwogICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgbW9kZWwpOwogICAgICAg
IH0KICAgIH0KCiAgICBwdWJsaWMgdm9pZCBPbkV4cG9ydCgpCiAgICB7CiAgICAgICAgRXhwb3J0
Vm1Nb2RlbCBtb2RlbCA9IChFeHBvcnRWbU1vZGVsKSBnZXRXaW5kb3coKTsKICAgICAgICBHdWlk
IHN0b3JhZ2VEb21haW5JZCA9ICgoc3RvcmFnZV9kb21haW5zKSBtb2RlbC5nZXRTdG9yYWdlKCku
Z2V0U2VsZWN0ZWRJdGVtKCkpLmdldElkKCk7CiAgICAgICAgaWYgKCFtb2RlbC5WYWxpZGF0ZSgp
KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbW9kZWwu
U3RhcnRQcm9ncmVzcyhudWxsKTsKCiAgICAgICAgR2V0VGVtcGxhdGVzTm90UHJlc2VudE9uRXhw
b3J0RG9tYWluKCk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIE9uRXhwb3J0Tm9UZW1wbGF0ZXMo
KQogICAgewogICAgICAgIEV4cG9ydFZtTW9kZWwgbW9kZWwgPSAoRXhwb3J0Vm1Nb2RlbCkgZ2V0
V2luZG93KCk7CiAgICAgICAgR3VpZCBzdG9yYWdlRG9tYWluSWQgPSAoKHN0b3JhZ2VfZG9tYWlu
cykgbW9kZWwuZ2V0U3RvcmFnZSgpLmdldFNlbGVjdGVkSXRlbSgpKS5nZXRJZCgpOwoKICAgICAg
ICBpZiAobW9kZWwuZ2V0UHJvZ3Jlc3MoKSAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgQXJyYXlMaXN0PFZkY0FjdGlvblBhcmFtZXRlcnNC
YXNlPiBsaXN0ID0gbmV3IEFycmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJzQmFzZT4oKTsKICAg
ICAgICBmb3IgKE9iamVjdCBpdGVtIDogZ2V0U2VsZWN0ZWRJdGVtcygpKQogICAgICAgIHsKICAg
ICAgICAgICAgVk0gYSA9IChWTSkgaXRlbTsKICAgICAgICAgICAgTW92ZVZtUGFyYW1ldGVycyBw
YXJhbWV0ZXJzID0gbmV3IE1vdmVWbVBhcmFtZXRlcnMoYS5nZXRJZCgpLCBzdG9yYWdlRG9tYWlu
SWQpOwogICAgICAgICAgICBwYXJhbWV0ZXJzLnNldEZvcmNlT3ZlcnJpZGUoKEJvb2xlYW4pIG1v
ZGVsLmdldEZvcmNlT3ZlcnJpZGUoKS5nZXRFbnRpdHkoKSk7CiAgICAgICAgICAgIHBhcmFtZXRl
cnMuc2V0Q29weUNvbGxhcHNlKChCb29sZWFuKSBtb2RlbC5nZXRDb2xsYXBzZVNuYXBzaG90cygp
LmdldEVudGl0eSgpKTsKICAgICAgICAgICAgcGFyYW1ldGVycy5zZXRUZW1wbGF0ZU11c3RFeGlz
dHMoZmFsc2UpOwoKICAgICAgICAgICAgbGlzdC5hZGQocGFyYW1ldGVycyk7CiAgICAgICAgfQoK
ICAgICAgICBtb2RlbC5TdGFydFByb2dyZXNzKG51bGwpOwoKICAgICAgICBGcm9udGVuZC5SdW5N
dWx0aXBsZUFjdGlvbihWZGNBY3Rpb25UeXBlLkV4cG9ydFZtLCBsaXN0LAogICAgICAgICAgICAg
ICAgbmV3IElGcm9udGVuZE11bHRpcGxlQWN0aW9uQXN5bmNDYWxsYmFjaygpIHsKICAgICAgICAg
ICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBFeGVj
dXRlZChGcm9udGVuZE11bHRpcGxlQWN0aW9uQXN5bmNSZXN1bHQgcmVzdWx0KSB7CgogICAgICAg
ICAgICAgICAgICAgICAgICBFeHBvcnRWbU1vZGVsIGxvY2FsTW9kZWwgPSAoRXhwb3J0Vm1Nb2Rl
bCkgcmVzdWx0LmdldFN0YXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTW9kZWwu
U3RvcFByb2dyZXNzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbCgpOwoKICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCBtb2RlbCk7CiAgICB9CgogICAgcHJp
dmF0ZSB2b2lkIFJ1bk9uY2UoKQogICAgewogICAgICAgIFZNIHZtID0gKFZNKSBnZXRTZWxlY3Rl
ZEl0ZW0oKTsKICAgICAgICBSdW5PbmNlTW9kZWwgbW9kZWwgPSBuZXcgUnVuT25jZU1vZGVsKCk7
CiAgICAgICAgc2V0V2luZG93KG1vZGVsKTsKICAgICAgICBtb2RlbC5zZXRUaXRsZShDb25zdGFu
dHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkucnVuVmlydHVhbE1hY2hpbmVz
VGl0bGUoKSk7CiAgICAgICAgbW9kZWwuc2V0SGFzaE5hbWUoInJ1bl92aXJ0dWFsX21hY2hpbmUi
KTsgLy8kTk9OLU5MUy0xJAogICAgICAgIG1vZGVsLmdldEF0dGFjaElzbygpLnNldEVudGl0eShm
YWxzZSk7CiAgICAgICAgbW9kZWwuZ2V0QXR0YWNoRmxvcHB5KCkuc2V0RW50aXR5KGZhbHNlKTsK
ICAgICAgICBtb2RlbC5nZXRSdW5Bc1N0YXRlbGVzcygpLnNldEVudGl0eSh2bS5pc1N0YXRlbGVz
cygpKTsKICAgICAgICBtb2RlbC5nZXRSdW5BbmRQYXVzZSgpLnNldEVudGl0eShmYWxzZSk7CiAg
ICAgICAgbW9kZWwuc2V0SHdBY2NlbGVyYXRpb24odHJ1ZSk7CgogICAgICAgIC8vIHBhc3Npbmcg
S2VybmVsIHBhcmFtZXRlcnMKICAgICAgICBtb2RlbC5nZXRLZXJuZWxfcGFyYW1ldGVycygpLnNl
dEVudGl0eSh2bS5nZXRLZXJuZWxQYXJhbXMoKSk7CiAgICAgICAgbW9kZWwuZ2V0S2VybmVsX3Bh
dGgoKS5zZXRFbnRpdHkodm0uZ2V0S2VybmVsVXJsKCkpOwogICAgICAgIG1vZGVsLmdldEluaXRy
ZF9wYXRoKCkuc2V0RW50aXR5KHZtLmdldEluaXRyZFVybCgpKTsKCiAgICAgICAgLy8gQ3VzdG9t
IFByb3BlcnRpZXMKICAgICAgICBtb2RlbC5nZXRDdXN0b21Qcm9wZXJ0eVNoZWV0KCkKICAgICAg
ICAgICAgICAgIC5zZXRLZXlWYWx1ZVN0cmluZyh0aGlzLmdldEN1c3RvbVByb3BlcnRpZXNLZXlz
TGlzdCgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXQodm0uZ2V0VmRzR3JvdXBDb21wYXRp
YmlsaXR5VmVyc2lvbigpKSk7CiAgICAgICAgbW9kZWwuZ2V0Q3VzdG9tUHJvcGVydHlTaGVldCgp
LnNldEVudGl0eSh2bS5nZXRDdXN0b21Qcm9wZXJ0aWVzKCkpOwogICAgICAgIG1vZGVsLnNldEN1
c3RvbVByb3BlcnRpZXNLZXlzTGlzdCh0aGlzLmdldEN1c3RvbVByb3BlcnRpZXNLZXlzTGlzdCgp
CiAgICAgICAgICAgICAgICAuZ2V0KHZtLmdldFZkc0dyb3VwQ29tcGF0aWJpbGl0eVZlcnNpb24o
KSkpOwoKICAgICAgICBtb2RlbC5zZXRJc0xpbnV4X1VuYXNzaWduX1Vua25vd25PUyhBc3luY0Rh
dGFQcm92aWRlci5Jc0xpbnV4T3NUeXBlKHZtLmdldFZtT3MoKSkKICAgICAgICAgICAgICAgIHx8
IHZtLmdldFZtT3MoKSA9PSBWbU9zVHlwZS5VbmFzc2lnbmVkIHx8IHZtLmdldFZtT3MoKSA9PSBW
bU9zVHlwZS5PdGhlcik7CiAgICAgICAgbW9kZWwuZ2V0SXNMaW51eE9wdGlvbnNBdmFpbGFibGUo
KS5zZXRFbnRpdHkobW9kZWwuZ2V0SXNMaW51eF9VbmFzc2lnbl9Vbmtub3duT1MoKSk7CiAgICAg
ICAgbW9kZWwuc2V0SXNXaW5kb3dzT1MoQXN5bmNEYXRhUHJvdmlkZXIuSXNXaW5kb3dzT3NUeXBl
KHZtLmdldFZtT3MoKSkpOwogICAgICAgIG1vZGVsLmdldElzVm1GaXJzdFJ1bigpLnNldEVudGl0
eSghdm0uaXNJbml0aWFsaXplZCgpKTsKICAgICAgICBtb2RlbC5nZXRTeXNQcmVwRG9tYWluTmFt
ZSgpLnNldFNlbGVjdGVkSXRlbSh2bS5nZXRWbURvbWFpbigpKTsKCiAgICAgICAgUnVuT25jZVVw
ZGF0ZURpc3BsYXlQcm90b2NvbHModm0pOwogICAgICAgIFJ1bk9uY2VVcGRhdGVGbG9wcHkodm0s
IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpKTsKICAgICAgICBSdW5PbmNlVXBkYXRlSW1hZ2VzKHZt
KTsKICAgICAgICBSdW5PbmNlVXBkYXRlRG9tYWlucygpOwogICAgICAgIFJ1bk9uY2VVcGRhdGVC
b290U2VxdWVuY2Uodm0pOwoKICAgICAgICBVSUNvbW1hbmQgdGVtcFZhciA9IG5ldyBVSUNvbW1h
bmQoIk9uUnVuT25jZSIsIHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAgICAgdGVtcFZhci5zZXRU
aXRsZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkub2soKSk7
CiAgICAgICAgdGVtcFZhci5zZXRJc0RlZmF1bHQodHJ1ZSk7CiAgICAgICAgbW9kZWwuZ2V0Q29t
bWFuZHMoKS5hZGQodGVtcFZhcik7CiAgICAgICAgVUlDb21tYW5kIHRlbXBWYXIyID0gbmV3IFVJ
Q29tbWFuZCgiQ2FuY2VsIiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB0ZW1wVmFyMi5z
ZXRUaXRsZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuY2Fu
Y2VsKCkpOwogICAgICAgIHRlbXBWYXIyLnNldElzQ2FuY2VsKHRydWUpOwogICAgICAgIG1vZGVs
LmdldENvbW1hbmRzKCkuYWRkKHRlbXBWYXIyKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgUnVu
T25jZVVwZGF0ZURpc3BsYXlQcm90b2NvbHMoVk0gdm0pCiAgICB7CiAgICAgICAgUnVuT25jZU1v
ZGVsIG1vZGVsID0gKFJ1bk9uY2VNb2RlbCkgZ2V0V2luZG93KCk7CgogICAgICAgIEVudGl0eU1v
ZGVsIHRlbXBWYXIgPSBuZXcgRW50aXR5TW9kZWwoKTsKICAgICAgICB0ZW1wVmFyLnNldFRpdGxl
KENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5WTkNUaXRsZSgp
KTsKICAgICAgICB0ZW1wVmFyLnNldEVudGl0eShEaXNwbGF5VHlwZS52bmMpOwogICAgICAgIEVu
dGl0eU1vZGVsIHZuY1Byb3RvY29sID0gdGVtcFZhcjsKCiAgICAgICAgRW50aXR5TW9kZWwgdGVt
cFZhcjIgPSBuZXcgRW50aXR5TW9kZWwoKTsKICAgICAgICB0ZW1wVmFyMi5zZXRUaXRsZShDb25z
dGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuc3BpY2VUaXRsZSgpKTsK
ICAgICAgICB0ZW1wVmFyMi5zZXRFbnRpdHkoRGlzcGxheVR5cGUucXhsKTsKICAgICAgICBFbnRp
dHlNb2RlbCBxeGxQcm90b2NvbCA9IHRlbXBWYXIyOwoKICAgICAgICBib29sZWFuIGlzVm5jU2Vs
ZWN0ZWQgPSB2bS5nZXREZWZhdWx0RGlzcGxheVR5cGUoKSA9PSBEaXNwbGF5VHlwZS52bmM7CiAg
ICAgICAgbW9kZWwuZ2V0RGlzcGxheUNvbnNvbGVfVm5jX0lzU2VsZWN0ZWQoKS5zZXRFbnRpdHko
aXNWbmNTZWxlY3RlZCk7CiAgICAgICAgbW9kZWwuZ2V0RGlzcGxheUNvbnNvbGVfU3BpY2VfSXNT
ZWxlY3RlZCgpLnNldEVudGl0eSghaXNWbmNTZWxlY3RlZCk7CgogICAgICAgIEFycmF5TGlzdDxF
bnRpdHlNb2RlbD4gaXRlbXMgPSBuZXcgQXJyYXlMaXN0PEVudGl0eU1vZGVsPigpOwogICAgICAg
IGl0ZW1zLmFkZCh2bmNQcm90b2NvbCk7CiAgICAgICAgaXRlbXMuYWRkKHF4bFByb3RvY29sKTsK
ICAgICAgICBtb2RlbC5nZXREaXNwbGF5UHJvdG9jb2woKS5zZXRJdGVtcyhpdGVtcyk7CiAgICAg
ICAgbW9kZWwuZ2V0RGlzcGxheVByb3RvY29sKCkuc2V0U2VsZWN0ZWRJdGVtKGlzVm5jU2VsZWN0
ZWQgPyB2bmNQcm90b2NvbCA6IHF4bFByb3RvY29sKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQg
UnVuT25jZVVwZGF0ZUJvb3RTZXF1ZW5jZShWTSB2bSkKICAgIHsKICAgICAgICBBc3luY1F1ZXJ5
IF9hc3luY1F1ZXJ5ID0gbmV3IEFzeW5jUXVlcnkoKTsKICAgICAgICBfYXN5bmNRdWVyeS5zZXRN
b2RlbCh0aGlzKTsKCiAgICAgICAgX2FzeW5jUXVlcnkuYXN5bmNDYWxsYmFjayA9IG5ldyBJTmV3
QXN5bmNDYWxsYmFjaygpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1Ymxp
YyB2b2lkIE9uU3VjY2VzcyhPYmplY3QgbW9kZWwsIE9iamVjdCBSZXR1cm5WYWx1ZSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgVm1MaXN0TW9kZWwgdm1MaXN0TW9kZWwgPSAoVm1MaXN0
TW9kZWwpIG1vZGVsOwogICAgICAgICAgICAgICAgUnVuT25jZU1vZGVsIHJ1bk9uY2VNb2RlbCA9
IChSdW5PbmNlTW9kZWwpIHZtTGlzdE1vZGVsLmdldFdpbmRvdygpOwogICAgICAgICAgICAgICAg
Ym9vbGVhbiBoYXNOaWNzID0KICAgICAgICAgICAgICAgICAgICAgICAgKChBcnJheUxpc3Q8Vm1O
ZXR3b3JrSW50ZXJmYWNlPikgKChWZGNRdWVyeVJldHVyblZhbHVlKSBSZXR1cm5WYWx1ZSkuZ2V0
UmV0dXJuVmFsdWUoKSkuc2l6ZSgpID4gMDsKCiAgICAgICAgICAgICAgICBpZiAoIWhhc05pY3Mp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQm9vdFNlcXVlbmNlTW9kZWwg
Ym9vdFNlcXVlbmNlTW9kZWwgPSBydW5PbmNlTW9kZWwuZ2V0Qm9vdFNlcXVlbmNlKCk7CiAgICAg
ICAgICAgICAgICAgICAgYm9vdFNlcXVlbmNlTW9kZWwuZ2V0TmV0d29ya09wdGlvbigpLnNldElz
Q2hhbmdhYmxlKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICBib290U2VxdWVuY2VNb2RlbC5n
ZXROZXR3b3JrT3B0aW9uKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDaGFuZ2VQ
cm9oaWJpdGlvblJlYXNvbnMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZCgiVmly
dHVhbCBNYWNoaW5lIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgbmV0d29yayBpbnRlcmZhY2UgZGVm
aW5lZCB0byBib290IGZyb20gbmV0d29yay4iKTsgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgRnJvbnRlbmQuUnVuUXVlcnko
VmRjUXVlcnlUeXBlLkdldFZtSW50ZXJmYWNlc0J5Vm1JZCwgbmV3IElkUXVlcnlQYXJhbWV0ZXJz
KHZtLmdldElkKCkpLCBfYXN5bmNRdWVyeSk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIFJ1bk9u
Y2VVcGRhdGVEb21haW5zKCkKICAgIHsKICAgICAgICBSdW5PbmNlTW9kZWwgbW9kZWwgPSAoUnVu
T25jZU1vZGVsKSBnZXRXaW5kb3coKTsKCiAgICAgICAgLy8gVXBkYXRlIERvbWFpbiBsaXN0CiAg
ICAgICAgQXN5bmNEYXRhUHJvdmlkZXIuR2V0RG9tYWluTGlzdChuZXcgQXN5bmNRdWVyeShtb2Rl
bCwKICAgICAgICAgICAgICAgIG5ldyBJTmV3QXN5bmNDYWxsYmFjaygpIHsKICAgICAgICAgICAg
ICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBPblN1Y2Nl
c3MoT2JqZWN0IHRhcmdldCwgT2JqZWN0IHJldHVyblZhbHVlKSB7CgogICAgICAgICAgICAgICAg
ICAgICAgICBSdW5PbmNlTW9kZWwgcnVuT25jZU1vZGVsID0gKFJ1bk9uY2VNb2RlbCkgdGFyZ2V0
OwogICAgICAgICAgICAgICAgICAgICAgICBMaXN0PFN0cmluZz4gZG9tYWlucyA9IChMaXN0PFN0
cmluZz4pIHJldHVyblZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgb2xkRG9t
YWluID0gKFN0cmluZykgcnVuT25jZU1vZGVsLmdldFN5c1ByZXBEb21haW5OYW1lKCkuZ2V0U2Vs
ZWN0ZWRJdGVtKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvbGREb21haW4gIT0gbnVs
bCAmJiAhb2xkRG9tYWluLmVxdWFscygiIikgJiYgIWRvbWFpbnMuY29udGFpbnMob2xkRG9tYWlu
KSkgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkb21haW5zLmFkZCgwLCBvbGREb21haW4pOwogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9uY2VNb2RlbC5nZXRTeXNQcmVw
RG9tYWluTmFtZSgpLnNldEl0ZW1zKGRvbWFpbnMpOwogICAgICAgICAgICAgICAgICAgICAgICBT
dHJpbmcgc2VsZWN0ZWREb21haW4gPSAob2xkRG9tYWluICE9IG51bGwpID8gb2xkRG9tYWluIDog
TGlucS5GaXJzdE9yRGVmYXVsdChkb21haW5zKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKHNlbGVjdGVkRG9tYWluLCAiIikpIC8vJE5PTi1O
TFMtMSQKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuT25jZU1vZGVsLmdldFN5c1ByZXBEb21haW5OYW1lKCkuc2V0U2VsZWN0ZWRJdGVtKHNl
bGVjdGVkRG9tYWluKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9KSwgdHJ1ZSk7CiAgICB9CgogICAgcHVibGljIHZvaWQg
UnVuT25jZVVwZGF0ZUZsb3BweShWTSB2bSwgQXJyYXlMaXN0PFN0cmluZz4gaW1hZ2VzKQogICAg
ewogICAgICAgIFJ1bk9uY2VNb2RlbCBtb2RlbCA9IChSdW5PbmNlTW9kZWwpIGdldFdpbmRvdygp
OwoKICAgICAgICBpZiAoQXN5bmNEYXRhUHJvdmlkZXIuSXNXaW5kb3dzT3NUeXBlKHZtLmdldFZt
T3MoKSkpCiAgICAgICAgewogICAgICAgICAgICAvLyBBZGQgYSBwc2V1ZG8gZmxvcHB5IGRpc2sg
aW1hZ2UgdXNlZCBmb3IgV2luZG93cycgc3lzcHJlcC4KICAgICAgICAgICAgaWYgKCF2bS5pc0lu
aXRpYWxpemVkKCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGltYWdlcy5hZGQoMCwg
IltzeXNwcmVwXSIpOyAvLyROT04tTkxTLTEkCiAgICAgICAgICAgICAgICBtb2RlbC5nZXRBdHRh
Y2hGbG9wcHkoKS5zZXRFbnRpdHkodHJ1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbWFnZXMuYWRkKCJbc3lzcHJlcF0iKTsg
Ly8kTk9OLU5MUy0xJAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBtb2RlbC5nZXRG
bG9wcHlJbWFnZSgpLnNldEl0ZW1zKGltYWdlcyk7CgogICAgICAgIGlmIChtb2RlbC5nZXRGbG9w
cHlJbWFnZSgpLmdldElzQ2hhbmdhYmxlKCkgJiYgbW9kZWwuZ2V0RmxvcHB5SW1hZ2UoKS5nZXRT
ZWxlY3RlZEl0ZW0oKSA9PSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgbW9kZWwuZ2V0Rmxv
cHB5SW1hZ2UoKS5zZXRTZWxlY3RlZEl0ZW0oTGlucS5GaXJzdE9yRGVmYXVsdChpbWFnZXMpKTsK
ICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIFJ1bk9uY2VVcGRhdGVJbWFnZXMoVk0g
dm0pIHsKCiAgICAgICAgQXN5bmNRdWVyeSBfYXN5bmNRdWVyeTIgPSBuZXcgQXN5bmNRdWVyeSgp
OwogICAgICAgIF9hc3luY1F1ZXJ5Mi5zZXRNb2RlbCh0aGlzKTsKCiAgICAgICAgX2FzeW5jUXVl
cnkyLmFzeW5jQ2FsbGJhY2sgPSBuZXcgSU5ld0FzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAg
IEBPdmVycmlkZQogICAgICAgICAgICBwdWJsaWMgdm9pZCBPblN1Y2Nlc3MoT2JqZWN0IG1vZGVs
MiwgT2JqZWN0IHJlc3VsdCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgVm1MaXN0TW9k
ZWwgdm1MaXN0TW9kZWwyID0gKFZtTGlzdE1vZGVsKSBtb2RlbDI7CiAgICAgICAgICAgICAgICBW
TSBzZWxlY3RlZFZNID0gKFZNKSB2bUxpc3RNb2RlbDIuZ2V0U2VsZWN0ZWRJdGVtKCk7CiAgICAg
ICAgICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiBpbWFnZXMgPSAoQXJyYXlMaXN0PFN0cmluZz4p
IHJlc3VsdDsKCiAgICAgICAgICAgICAgICB2bUxpc3RNb2RlbDIuUnVuT25jZVVwZGF0ZUZsb3Bw
eShzZWxlY3RlZFZNLCBpbWFnZXMpOwogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBB
c3luY0RhdGFQcm92aWRlci5HZXRGbG9wcHlJbWFnZUxpc3QoX2FzeW5jUXVlcnkyLCB2bS5nZXRT
dG9yYWdlUG9vbElkKCkpOwoKICAgICAgICBBc3luY1F1ZXJ5IGdldEltYWdlTGlzdFF1ZXJ5ID0g
bmV3IEFzeW5jUXVlcnkoKTsKICAgICAgICBnZXRJbWFnZUxpc3RRdWVyeS5zZXRNb2RlbCh0aGlz
KTsKCiAgICAgICAgZ2V0SW1hZ2VMaXN0UXVlcnkuYXN5bmNDYWxsYmFjayA9IG5ldyBJTmV3QXN5
bmNDYWxsYmFjaygpIHsKICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgIHB1YmxpYyB2
b2lkIE9uU3VjY2VzcyhPYmplY3QgbW9kZWwxLCBPYmplY3QgcmVzdWx0KQogICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICBWbUxpc3RNb2RlbCB2bUxpc3RNb2RlbDEgPSAoVm1MaXN0TW9kZWwp
IG1vZGVsMTsKICAgICAgICAgICAgICAgIFJ1bk9uY2VNb2RlbCBydW5PbmNlTW9kZWwgPSAoUnVu
T25jZU1vZGVsKSB2bUxpc3RNb2RlbDEuZ2V0V2luZG93KCk7CiAgICAgICAgICAgICAgICBBcnJh
eUxpc3Q8U3RyaW5nPiBpbWFnZXMgPSAoQXJyYXlMaXN0PFN0cmluZz4pIHJlc3VsdDsKCiAgICAg
ICAgICAgICAgICBydW5PbmNlTW9kZWwuZ2V0SXNvSW1hZ2UoKS5zZXRJdGVtcyhpbWFnZXMpOwog
ICAgICAgICAgICAgICAgaWYgKHJ1bk9uY2VNb2RlbC5nZXRJc29JbWFnZSgpLmdldElzQ2hhbmdh
YmxlKCkKICAgICAgICAgICAgICAgICAgICAgICAgJiYgcnVuT25jZU1vZGVsLmdldElzb0ltYWdl
KCkuZ2V0U2VsZWN0ZWRJdGVtKCkgPT0gbnVsbCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBydW5PbmNlTW9kZWwuZ2V0SXNvSW1hZ2UoKS5zZXRTZWxlY3RlZEl0ZW0oTGlu
cS5GaXJzdE9yRGVmYXVsdChpbWFnZXMpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
fQogICAgICAgIH07CiAgICAgICAgQXN5bmNEYXRhUHJvdmlkZXIuR2V0SXJzSW1hZ2VMaXN0KGdl
dEltYWdlTGlzdFF1ZXJ5LCB2bS5nZXRTdG9yYWdlUG9vbElkKCkpOwoKICAgIH0KCiAgICBwcml2
YXRlIHZvaWQgT25SdW5PbmNlKCkKICAgIHsKICAgICAgICBWTSB2bSA9IChWTSkgZ2V0U2VsZWN0
ZWRJdGVtKCk7CiAgICAgICAgaWYgKHZtID09IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBD
YW5jZWwoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgUnVuT25jZU1v
ZGVsIG1vZGVsID0gKFJ1bk9uY2VNb2RlbCkgZ2V0V2luZG93KCk7CgogICAgICAgIGlmICghbW9k
ZWwuVmFsaWRhdGUoKSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9Cgog
ICAgICAgIEJvb3RTZXF1ZW5jZU1vZGVsIGJvb3RTZXF1ZW5jZU1vZGVsID0gbW9kZWwuZ2V0Qm9v
dFNlcXVlbmNlKCk7CgogICAgICAgIFJ1blZtT25jZVBhcmFtcyB0ZW1wVmFyID0gbmV3IFJ1blZt
T25jZVBhcmFtcygpOwogICAgICAgIHRlbXBWYXIuc2V0Vm1JZCh2bS5nZXRJZCgpKTsKICAgICAg
ICB0ZW1wVmFyLnNldEJvb3RTZXF1ZW5jZShib290U2VxdWVuY2VNb2RlbC5nZXRTZXF1ZW5jZSgp
KTsKICAgICAgICB0ZW1wVmFyLnNldERpc2tQYXRoKChCb29sZWFuKSBtb2RlbC5nZXRBdHRhY2hJ
c28oKS5nZXRFbnRpdHkoKSA/IChTdHJpbmcpIG1vZGVsLmdldElzb0ltYWdlKCkuZ2V0U2VsZWN0
ZWRJdGVtKCkKICAgICAgICAgICAgICAgIDogIiIpOyAvLyROT04tTkxTLTEkCiAgICAgICAgdGVt
cFZhci5zZXRGbG9wcHlQYXRoKG1vZGVsLmdldEZsb3BweUltYWdlUGF0aCgpKTsKICAgICAgICB0
ZW1wVmFyLnNldEt2bUVuYWJsZShtb2RlbC5nZXRId0FjY2VsZXJhdGlvbigpKTsKICAgICAgICB0
ZW1wVmFyLnNldFJ1bkFuZFBhdXNlKChCb29sZWFuKSBtb2RlbC5nZXRSdW5BbmRQYXVzZSgpLmdl
dEVudGl0eSgpKTsKICAgICAgICB0ZW1wVmFyLnNldEFjcGlFbmFibGUodHJ1ZSk7CiAgICAgICAg
dGVtcFZhci5zZXRSdW5Bc1N0YXRlbGVzcygoQm9vbGVhbikgbW9kZWwuZ2V0UnVuQXNTdGF0ZWxl
c3MoKS5nZXRFbnRpdHkoKSk7CiAgICAgICAgdGVtcFZhci5zZXRSZWluaXRpYWxpemUobW9kZWwu
Z2V0UmVpbml0aWFsaXplKCkpOwogICAgICAgIHRlbXBWYXIuc2V0Q3VzdG9tUHJvcGVydGllcyht
b2RlbC5nZXRDdXN0b21Qcm9wZXJ0eVNoZWV0KCkuZ2V0RW50aXR5KCkpOwogICAgICAgIFJ1blZt
T25jZVBhcmFtcyBwYXJhbSA9IHRlbXBWYXI7CgogICAgICAgIC8vIGtlcm5lbCBwYXJhbXMKICAg
ICAgICBpZiAobW9kZWwuZ2V0S2VybmVsX3BhdGgoKS5nZXRFbnRpdHkoKSAhPSBudWxsKQogICAg
ICAgIHsKICAgICAgICAgICAgcGFyYW0uc2V0a2VybmVsX3VybCgoU3RyaW5nKSBtb2RlbC5nZXRL
ZXJuZWxfcGF0aCgpLmdldEVudGl0eSgpKTsKICAgICAgICB9CiAgICAgICAgaWYgKG1vZGVsLmdl
dEtlcm5lbF9wYXJhbWV0ZXJzKCkuZ2V0RW50aXR5KCkgIT0gbnVsbCkKICAgICAgICB7CiAgICAg
ICAgICAgIHBhcmFtLnNldGtlcm5lbF9wYXJhbXMoKFN0cmluZykgbW9kZWwuZ2V0S2VybmVsX3Bh
cmFtZXRlcnMoKS5nZXRFbnRpdHkoKSk7CiAgICAgICAgfQogICAgICAgIGlmIChtb2RlbC5nZXRJ
bml0cmRfcGF0aCgpLmdldEVudGl0eSgpICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBw
YXJhbS5zZXRpbml0cmRfdXJsKChTdHJpbmcpIG1vZGVsLmdldEluaXRyZF9wYXRoKCkuZ2V0RW50
aXR5KCkpOwogICAgICAgIH0KCiAgICAgICAgLy8gU3lzcHJlcCBwYXJhbXMKICAgICAgICBpZiAo
bW9kZWwuZ2V0U3lzUHJlcERvbWFpbk5hbWUoKS5nZXRTZWxlY3RlZEl0ZW0oKSAhPSBudWxsKQog
ICAgICAgIHsKICAgICAgICAgICAgcGFyYW0uc2V0U3lzUHJlcERvbWFpbk5hbWUobW9kZWwuZ2V0
U3lzUHJlcFNlbGVjdGVkRG9tYWluTmFtZSgpLmdldEVudGl0eSgpLmVxdWFscygiIikgPyAoU3Ry
aW5nKSBtb2RlbC5nZXRTeXNQcmVwU2VsZWN0ZWREb21haW5OYW1lKCkgLy8kTk9OLU5MUy0xJAog
ICAgICAgICAgICAgICAgICAgIC5nZXRFbnRpdHkoKQogICAgICAgICAgICAgICAgICAgIDogKFN0
cmluZykgbW9kZWwuZ2V0U3lzUHJlcERvbWFpbk5hbWUoKS5nZXRTZWxlY3RlZEl0ZW0oKSk7CiAg
ICAgICAgfQogICAgICAgIGlmIChtb2RlbC5nZXRTeXNQcmVwVXNlck5hbWUoKS5nZXRFbnRpdHko
KSAhPSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgcGFyYW0uc2V0U3lzUHJlcFVzZXJOYW1l
KChTdHJpbmcpIG1vZGVsLmdldFN5c1ByZXBVc2VyTmFtZSgpLmdldEVudGl0eSgpKTsKICAgICAg
ICB9CiAgICAgICAgaWYgKG1vZGVsLmdldFN5c1ByZXBQYXNzd29yZCgpLmdldEVudGl0eSgpICE9
IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBwYXJhbS5zZXRTeXNQcmVwUGFzc3dvcmQoKFN0
cmluZykgbW9kZWwuZ2V0U3lzUHJlcFBhc3N3b3JkKCkuZ2V0RW50aXR5KCkpOwogICAgICAgIH0K
CiAgICAgICAgRW50aXR5TW9kZWwgZGlzcGxheVByb3RvY29sU2VsZWN0ZWRJdGVtID0gKEVudGl0
eU1vZGVsKSBtb2RlbC5nZXREaXNwbGF5UHJvdG9jb2woKS5nZXRTZWxlY3RlZEl0ZW0oKTsKICAg
ICAgICBwYXJhbS5zZXRVc2VWbmMoKERpc3BsYXlUeXBlKSBkaXNwbGF5UHJvdG9jb2xTZWxlY3Rl
ZEl0ZW0uZ2V0RW50aXR5KCkgPT0gRGlzcGxheVR5cGUudm5jKTsKICAgICAgICBpZiAoKEJvb2xl
YW4pIG1vZGVsLmdldERpc3BsYXlDb25zb2xlX1ZuY19Jc1NlbGVjdGVkKCkuZ2V0RW50aXR5KCkK
ICAgICAgICAgICAgICAgIHx8IChCb29sZWFuKSBtb2RlbC5nZXREaXNwbGF5Q29uc29sZV9TcGlj
ZV9Jc1NlbGVjdGVkKCkuZ2V0RW50aXR5KCkpCiAgICAgICAgewogICAgICAgICAgICBwYXJhbS5z
ZXRVc2VWbmMoKEJvb2xlYW4pIG1vZGVsLmdldERpc3BsYXlDb25zb2xlX1ZuY19Jc1NlbGVjdGVk
KCkuZ2V0RW50aXR5KCkpOwogICAgICAgIH0KCiAgICAgICAgRnJvbnRlbmQuUnVuQWN0aW9uKFZk
Y0FjdGlvblR5cGUuUnVuVm1PbmNlLCBwYXJhbSwKICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRl
bmRBY3Rpb25Bc3luY0NhbGxiYWNrKCkgewogICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQog
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIEV4ZWN1dGVkKEZyb250ZW5kQWN0aW9uQXN5
bmNSZXN1bHQgcmVzdWx0KSB7CgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0sIHRoaXMpOwoKICAgICAgICBDYW5jZWwoKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgTmV3
VGVtcGxhdGUoKQogICAgewogICAgICAgIFZNIHZtID0gKFZNKSBnZXRTZWxlY3RlZEl0ZW0oKTsK
ICAgICAgICBpZiAodm0gPT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICB9CgogICAgICAgIGlmIChnZXRXaW5kb3coKSAhPSBudWxsKQogICAgICAgIHsKICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgVW5pdFZtTW9kZWwgbW9kZWwgPSBuZXcg
VW5pdFZtTW9kZWwobmV3IE5ld1RlbXBsYXRlVm1Nb2RlbEJlaGF2aW9yKHZtKSk7CiAgICAgICAg
c2V0V2luZG93KG1vZGVsKTsKICAgICAgICBtb2RlbC5zZXRUaXRsZShDb25zdGFudHNNYW5hZ2Vy
LmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkubmV3VGVtcGxhdGVUaXRsZSgpKTsKICAgICAg
ICBtb2RlbC5zZXRIYXNoTmFtZSgibmV3X3RlbXBsYXRlIik7IC8vJE5PTi1OTFMtMSQKICAgICAg
ICBtb2RlbC5zZXRJc05ldyh0cnVlKTsKICAgICAgICBtb2RlbC5zZXRWbVR5cGUodm0uZ2V0Vm1U
eXBlKCkpOwoKICAgICAgICBtb2RlbC5Jbml0aWFsaXplKGdldFN5c3RlbVRyZWVTZWxlY3RlZEl0
ZW0oKSk7CgogICAgICAgIFVJQ29tbWFuZCB0ZW1wVmFyID0gbmV3IFVJQ29tbWFuZCgiT25OZXdU
ZW1wbGF0ZSIsIHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAgICAgdGVtcFZhci5zZXRUaXRsZShD
b25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkub2soKSk7CiAgICAg
ICAgdGVtcFZhci5zZXRJc0RlZmF1bHQodHJ1ZSk7CiAgICAgICAgbW9kZWwuZ2V0Q29tbWFuZHMo
KS5hZGQodGVtcFZhcik7CiAgICAgICAgVUlDb21tYW5kIHRlbXBWYXIyID0gbmV3IFVJQ29tbWFu
ZCgiQ2FuY2VsIiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB0ZW1wVmFyMi5zZXRUaXRs
ZShDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuY2FuY2VsKCkp
OwogICAgICAgIHRlbXBWYXIyLnNldElzQ2FuY2VsKHRydWUpOwogICAgICAgIG1vZGVsLmdldENv
bW1hbmRzKCkuYWRkKHRlbXBWYXIyKTsKCiAgICAgICAgbW9kZWwuZ2V0SXNIaWdobHlBdmFpbGFi
bGUoKS5zZXRFbnRpdHkodm0uZ2V0U3RhdGljRGF0YSgpLmlzQXV0b1N0YXJ0dXAoKSk7CiAgICB9
CgogICAgcHJpdmF0ZSB2b2lkIE9uTmV3VGVtcGxhdGUoKQogICAgewogICAgICAgIFVuaXRWbU1v
ZGVsIG1vZGVsID0gKFVuaXRWbU1vZGVsKSBnZXRXaW5kb3coKTsKICAgICAgICBWTSB2bSA9IChW
TSkgZ2V0U2VsZWN0ZWRJdGVtKCk7CiAgICAgICAgaWYgKHZtID09IG51bGwpCiAgICAgICAgewog
ICAgICAgICAgICBDYW5jZWwoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAg
ICAgaWYgKG1vZGVsLmdldFByb2dyZXNzKCkgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAg
IHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmICghbW9kZWwuVmFsaWRhdGUoKSkKICAgICAg
ICB7CiAgICAgICAgICAgIG1vZGVsLnNldElzVmFsaWQoZmFsc2UpOwogICAgICAgIH0KICAgICAg
ICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBTdHJpbmcgbmFtZSA9IChTdHJpbmcpIG1vZGVs
LmdldE5hbWUoKS5nZXRFbnRpdHkoKTsKCiAgICAgICAgICAgIC8vIENoZWNrIG5hbWUgdW5pY2l0
YXRlLgogICAgICAgICAgICBBc3luY0RhdGFQcm92aWRlci5Jc1RlbXBsYXRlTmFtZVVuaXF1ZShu
ZXcgQXN5bmNRdWVyeSh0aGlzLAogICAgICAgICAgICAgICAgICAgIG5ldyBJTmV3QXN5bmNDYWxs
YmFjaygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAg
ICAgICAgICAgIHB1YmxpYyB2b2lkIE9uU3VjY2VzcyhPYmplY3QgdGFyZ2V0LCBPYmplY3QgcmV0
dXJuVmFsdWUpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWbUxpc3RNb2RlbCB2bUxp
c3RNb2RlbCA9IChWbUxpc3RNb2RlbCkgdGFyZ2V0OwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYm9vbGVhbiBpc05hbWVVbmlxdWUgPSAoQm9vbGVhbikgcmV0dXJuVmFsdWU7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIWlzTmFtZVVuaXF1ZSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVbml0Vm1Nb2RlbCBW
bU1vZGVsID0gKFVuaXRWbU1vZGVsKSB2bUxpc3RNb2RlbC5nZXRXaW5kb3coKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBWbU1vZGVsLmdldEludmFsaWRpdHlSZWFzb25zKCkuY2xl
YXIoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWbU1vZGVsLmdldE5hbWUoKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEludmFsaWRpdHlSZWFz
b25zKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGQoQ29uc3Rh
bnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5nZXRDb25zdGFudHMoKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAubmFtZU11c3RCZVVuaXF1ZUludmFsaWRSZWFzb24oKSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVm1Nb2RlbC5nZXROYW1lKCkuc2V0SXNW
YWxpZChmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVm1Nb2RlbC5zZXRJ
c1ZhbGlkKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2bUxpc3RNb2RlbC5Qb3N0TmFtZVVuaXF1ZUNoZWNr
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgbmFtZSk7CiAg
ICAgICAgfQogICAgfQoKICAgIHB1YmxpYyB2b2lkIFBvc3ROYW1lVW5pcXVlQ2hlY2soKQogICAg
ewogICAgICAgIFVuaXRWbU1vZGVsIG1vZGVsID0gKFVuaXRWbU1vZGVsKSBnZXRXaW5kb3coKTsK
ICAgICAgICBWTSB2bSA9IChWTSkgZ2V0U2VsZWN0ZWRJdGVtKCk7CgogICAgICAgIFZNIHRlbXBW
YXIgPSBuZXcgVk0oKTsKICAgICAgICB0ZW1wVmFyLnNldElkKHZtLmdldElkKCkpOwogICAgICAg
IHRlbXBWYXIuc2V0Vm1UeXBlKG1vZGVsLmdldFZtVHlwZSgpKTsKICAgICAgICBpZiAobW9kZWwu
Z2V0UXVvdGEoKS5nZXRTZWxlY3RlZEl0ZW0oKSAhPSBudWxsKSB7CiAgICAgICAgICAgIHRlbXBW
YXIuc2V0UXVvdGFJZCgoKFF1b3RhKSBtb2RlbC5nZXRRdW90YSgpLmdldFNlbGVjdGVkSXRlbSgp
KS5nZXRJZCgpKTsKICAgICAgICB9CiAgICAgICAgdGVtcFZhci5zZXRWbU9zKChWbU9zVHlwZSkg
bW9kZWwuZ2V0T1NUeXBlKCkuZ2V0U2VsZWN0ZWRJdGVtKCkpOwogICAgICAgIHRlbXBWYXIuc2V0
TnVtT2ZNb25pdG9ycygoSW50ZWdlcikgbW9kZWwuZ2V0TnVtT2ZNb25pdG9ycygpLmdldFNlbGVj
dGVkSXRlbSgpKTsKICAgICAgICB0ZW1wVmFyLnNldEFsbG93Q29uc29sZVJlY29ubmVjdCgoQm9v
bGVhbikgbW9kZWwuZ2V0QWxsb3dDb25zb2xlUmVjb25uZWN0KCkuZ2V0RW50aXR5KCkpOwogICAg
ICAgIHRlbXBWYXIuc2V0Vm1Eb21haW4obW9kZWwuZ2V0RG9tYWluKCkuZ2V0SXNBdmFpbGFibGUo
KSA/IChTdHJpbmcpIG1vZGVsLmdldERvbWFpbigpLmdldFNlbGVjdGVkSXRlbSgpIDogIiIpOyAv
LyROT04tTkxTLTEkCiAgICAgICAgdGVtcFZhci5zZXRWbU1lbVNpemVNYigoSW50ZWdlcikgbW9k
ZWwuZ2V0TWVtU2l6ZSgpLmdldEVudGl0eSgpKTsKICAgICAgICB0ZW1wVmFyLnNldE1pbkFsbG9j
YXRlZE1lbSgoSW50ZWdlcikgbW9kZWwuZ2V0TWluQWxsb2NhdGVkTWVtb3J5KCkuZ2V0RW50aXR5
KCkpOwogICAgICAgIHRlbXBWYXIuc2V0VmRzR3JvdXBJZCgoKFZEU0dyb3VwKSBtb2RlbC5nZXRD
bHVzdGVyKCkuZ2V0U2VsZWN0ZWRJdGVtKCkpLmdldElkKCkpOwogICAgICAgIHRlbXBWYXIuc2V0
VGltZVpvbmUobW9kZWwuZ2V0VGltZVpvbmUoKS5nZXRJc0F2YWlsYWJsZSgpICYmIG1vZGVsLmdl
dFRpbWVab25lKCkuZ2V0U2VsZWN0ZWRJdGVtKCkgIT0gbnVsbCA/ICgoTWFwLkVudHJ5PFN0cmlu
ZywgU3RyaW5nPikgbW9kZWwuZ2V0VGltZVpvbmUoKQogICAgICAgICAgICAgICAgLmdldFNlbGVj
dGVkSXRlbSgpKS5nZXRLZXkoKQogICAgICAgICAgICAgICAgOiAiIik7IC8vJE5PTi1OTFMtMSQK
ICAgICAgICB0ZW1wVmFyLnNldE51bU9mU29ja2V0cygoSW50ZWdlcikgbW9kZWwuZ2V0TnVtT2ZT
b2NrZXRzKCkuZ2V0U2VsZWN0ZWRJdGVtKCkpOwogICAgICAgIHRlbXBWYXIuc2V0Q3B1UGVyU29j
a2V0KEludGVnZXIucGFyc2VJbnQobW9kZWwuZ2V0VG90YWxDUFVDb3JlcygpLmdldEVudGl0eSgp
LnRvU3RyaW5nKCkpCiAgICAgICAgICAgICAgICAvIChJbnRlZ2VyKSBtb2RlbC5nZXROdW1PZlNv
Y2tldHMoKS5nZXRTZWxlY3RlZEl0ZW0oKSk7CiAgICAgICAgdGVtcFZhci5zZXRBdXRvU3VzcGVu
ZChmYWxzZSk7CiAgICAgICAgdGVtcFZhci5zZXRTdGF0ZWxlc3MoKEJvb2xlYW4pIG1vZGVsLmdl
dElzU3RhdGVsZXNzKCkuZ2V0RW50aXR5KCkpOwogICAgICAgIHRlbXBWYXIuc2V0U21hcnRjYXJk
RW5hYmxlZCgoQm9vbGVhbikgbW9kZWwuZ2V0SXNTbWFydGNhcmRFbmFibGVkKCkuZ2V0RW50aXR5
KCkpOwogICAgICAgIHRlbXBWYXIuc2V0RGVsZXRlUHJvdGVjdGVkKChCb29sZWFuKSBtb2RlbC5n
ZXRJc0RlbGV0ZVByb3RlY3RlZCgpLmdldEVudGl0eSgpKTsKICAgICAgICB0ZW1wVmFyLnNldERl
ZmF1bHRCb290U2VxdWVuY2UobW9kZWwuZ2V0Qm9vdFNlcXVlbmNlKCkpOwogICAgICAgIHRlbXBW
YXIuc2V0QXV0b1N0YXJ0dXAoKEJvb2xlYW4pIG1vZGVsLmdldElzSGlnaGx5QXZhaWxhYmxlKCku
Z2V0RW50aXR5KCkpOwogICAgICAgIHRlbXBWYXIuc2V0SXNvUGF0aChtb2RlbC5nZXRDZEltYWdl
KCkuZ2V0SXNDaGFuZ2FibGUoKSA/IChTdHJpbmcpIG1vZGVsLmdldENkSW1hZ2UoKS5nZXRTZWxl
Y3RlZEl0ZW0oKSA6ICIiKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHRlbXBWYXIuc2V0VXNiUG9s
aWN5KHZtLmdldFVzYlBvbGljeSgpKTsKICAgICAgICB0ZW1wVmFyLnNldEluaXRyZFVybCh2bS5n
ZXRJbml0cmRVcmwoKSk7CiAgICAgICAgdGVtcFZhci5zZXRLZXJuZWxVcmwodm0uZ2V0S2VybmVs
VXJsKCkpOwogICAgICAgIHRlbXBWYXIuc2V0S2VybmVsUGFyYW1zKHZtLmdldEtlcm5lbFBhcmFt
cygpKTsKICAgICAgICB0ZW1wVmFyLnNldERlZGljYXRlZFZtRm9yVmRzKHZtLmdldERlZGljYXRl
ZFZtRm9yVmRzKCkpOwogICAgICAgIHRlbXBWYXIuc2V0TWlncmF0aW9uU3VwcG9ydCh2bS5nZXRN
aWdyYXRpb25TdXBwb3J0KCkpOwoKICAgICAgICBWTSBuZXd2bSA9IHRlbXBWYXI7CgogICAgICAg
IEVudGl0eU1vZGVsIGRpc3BsYXlQcm90b2NvbFNlbGVjdGVkSXRlbSA9IChFbnRpdHlNb2RlbCkg
bW9kZWwuZ2V0RGlzcGxheVByb3RvY29sKCkuZ2V0U2VsZWN0ZWRJdGVtKCk7CiAgICAgICAgbmV3
dm0uc2V0RGVmYXVsdERpc3BsYXlUeXBlKChEaXNwbGF5VHlwZSkgZGlzcGxheVByb3RvY29sU2Vs
ZWN0ZWRJdGVtLmdldEVudGl0eSgpKTsKCiAgICAgICAgRW50aXR5TW9kZWwgcHJpb3JpdHlTZWxl
Y3RlZEl0ZW0gPSAoRW50aXR5TW9kZWwpIG1vZGVsLmdldFByaW9yaXR5KCkuZ2V0U2VsZWN0ZWRJ
dGVtKCk7CiAgICAgICAgbmV3dm0uc2V0UHJpb3JpdHkoKEludGVnZXIpIHByaW9yaXR5U2VsZWN0
ZWRJdGVtLmdldEVudGl0eSgpKTsKCiAgICAgICAgQWRkVm1UZW1wbGF0ZVBhcmFtZXRlcnMgYWRk
Vm1UZW1wbGF0ZVBhcmFtZXRlcnMgPQogICAgICAgICAgICAgICAgbmV3IEFkZFZtVGVtcGxhdGVQ
YXJhbWV0ZXJzKG5ld3ZtLAogICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nKSBtb2RlbC5n
ZXROYW1lKCkuZ2V0RW50aXR5KCksCiAgICAgICAgICAgICAgICAgICAgICAgIChTdHJpbmcpIG1v
ZGVsLmdldERlc2NyaXB0aW9uKCkuZ2V0RW50aXR5KCkpOwogICAgICAgIGFkZFZtVGVtcGxhdGVQ
YXJhbWV0ZXJzLnNldFB1YmxpY1VzZSgoQm9vbGVhbikgbW9kZWwuZ2V0SXNUZW1wbGF0ZVB1Ymxp
YygpLmdldEVudGl0eSgpKTsKCiAgICAgICAgYWRkVm1UZW1wbGF0ZVBhcmFtZXRlcnMuc2V0RGlz
a0luZm9EZXN0aW5hdGlvbk1hcCgKICAgICAgICAgICAgICAgIG1vZGVsLmdldERpc2tzQWxsb2Nh
dGlvbk1vZGVsKCkKICAgICAgICAgICAgICAgICAgICAgICAgLmdldEltYWdlVG9EZXN0aW5hdGlv
bkRvbWFpbk1hcCgoQm9vbGVhbikgbW9kZWwuZ2V0RGlza3NBbGxvY2F0aW9uTW9kZWwoKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRJc1NpbmdsZVN0b3JhZ2VEb21haW4oKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRFbnRpdHkoKSkpOwoKICAgICAgICBt
b2RlbC5TdGFydFByb2dyZXNzKG51bGwpOwoKICAgICAgICBGcm9udGVuZC5SdW5BY3Rpb24oVmRj
QWN0aW9uVHlwZS5BZGRWbVRlbXBsYXRlLCBhZGRWbVRlbXBsYXRlUGFyYW1ldGVycywKICAgICAg
ICAgICAgICAgIG5ldyBJRnJvbnRlbmRBY3Rpb25Bc3luY0NhbGxiYWNrKCkgewogICAgICAgICAg
ICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIEV4ZWN1
dGVkKEZyb250ZW5kQWN0aW9uQXN5bmNSZXN1bHQgcmVzdWx0KSB7CgogICAgICAgICAgICAgICAg
ICAgICAgICBWbUxpc3RNb2RlbCB2bUxpc3RNb2RlbCA9IChWbUxpc3RNb2RlbCkgcmVzdWx0Lmdl
dFN0YXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHZtTGlzdE1vZGVsLmdldFdpbmRvdygp
LlN0b3BQcm9ncmVzcygpOwogICAgICAgICAgICAgICAgICAgICAgICBWZGNSZXR1cm5WYWx1ZUJh
c2UgcmV0dXJuVmFsdWVCYXNlID0gcmVzdWx0LmdldFJldHVyblZhbHVlKCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChyZXR1cm5WYWx1ZUJhc2UgIT0gbnVsbCAmJiByZXR1cm5WYWx1ZUJh
c2UuZ2V0U3VjY2VlZGVkKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZtTGlzdE1vZGVsLkNhbmNlbCgpOwogICAgICAgICAgICAgICAgICAg
ICAgICB9CgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIHRoaXMpOwog
ICAgfQoKICAgIHByaXZhdGUgdm9pZCBNaWdyYXRlKCkKICAgIHsKICAgICAgICBWTSB2bSA9IChW
TSkgZ2V0U2VsZWN0ZWRJdGVtKCk7CiAgICAgICAgaWYgKHZtID09IG51bGwpCiAgICAgICAgewog
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoZ2V0V2luZG93KCkgIT0g
bnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIE1p
Z3JhdGVNb2RlbCBtb2RlbCA9IG5ldyBNaWdyYXRlTW9kZWwoKTsKICAgICAgICBzZXRXaW5kb3co
bW9kZWwpOwogICAgICAgIG1vZGVsLnNldFRpdGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFu
Y2UoKS5nZXRDb25zdGFudHMoKS5taWdyYXRlVmlydHVhbE1hY2hpbmVzVGl0bGUoKSk7CiAgICAg
ICAgbW9kZWwuc2V0SGFzaE5hbWUoIm1pZ3JhdGVfdmlydHVhbF9tYWNoaW5lIik7IC8vJE5PTi1O
TFMtMSQKICAgICAgICBtb2RlbC5zZXRWbXNPblNhbWVDbHVzdGVyKHRydWUpOwogICAgICAgIG1v
ZGVsLnNldElzQXV0b1NlbGVjdCh0cnVlKTsKICAgICAgICBtb2RlbC5zZXRWbUxpc3QoTGlucS48
Vk0+IENhc3QoZ2V0U2VsZWN0ZWRJdGVtcygpKSk7CgogICAgICAgIEFzeW5jRGF0YVByb3ZpZGVy
LkdldFVwSG9zdExpc3RCeUNsdXN0ZXIobmV3IEFzeW5jUXVlcnkodGhpcywKICAgICAgICAgICAg
ICAgIG5ldyBJTmV3QXN5bmNDYWxsYmFjaygpIHsKICAgICAgICAgICAgICAgICAgICBAT3ZlcnJp
ZGUKICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBPblN1Y2Nlc3MoT2JqZWN0IHRhcmdl
dCwgT2JqZWN0IHJldHVyblZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIFZtTGlzdE1v
ZGVsIHZtTGlzdE1vZGVsID0gKFZtTGlzdE1vZGVsKSB0YXJnZXQ7CiAgICAgICAgICAgICAgICAg
ICAgICAgIHZtTGlzdE1vZGVsLlBvc3RNaWdyYXRlR2V0VXBIb3N0cygoQXJyYXlMaXN0PFZEUz4p
IHJldHVyblZhbHVlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KSwg
dm0uZ2V0VmRzR3JvdXBOYW1lKCkpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBDYW5jZWxNaWdy
YXRpb24oKQogICAgewogICAgICAgIEFycmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJzQmFzZT4g
bGlzdCA9IG5ldyBBcnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1ldGVyc0Jhc2U+KCk7CiAgICAgICAg
Zm9yIChPYmplY3QgaXRlbSA6IGdldFNlbGVjdGVkSXRlbXMoKSkgewogICAgICAgICAgICBWTSBh
ID0gKFZNKSBpdGVtOwogICAgICAgICAgICBsaXN0LmFkZChuZXcgVm1PcGVyYXRpb25QYXJhbWV0
ZXJCYXNlKGEuZ2V0SWQoKSkpOwogICAgICAgIH0KCiAgICAgICAgRnJvbnRlbmQuUnVuTXVsdGlw
bGVBY3Rpb24oVmRjQWN0aW9uVHlwZS5DYW5jZWxNaWdyYXRlVm0sIGxpc3QsCiAgICAgICAgICAg
ICAgICBuZXcgSUZyb250ZW5kTXVsdGlwbGVBY3Rpb25Bc3luY0NhbGxiYWNrKCkgewogICAgICAg
ICAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIEV4
ZWN1dGVkKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmRNdWx0aXBsZUFjdGlv
bkFzeW5jUmVzdWx0IHJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgIH0sIG51bGwpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBQb3N0TWlncmF0ZUdldFVwSG9z
dHMoQXJyYXlMaXN0PFZEUz4gaG9zdHMpCiAgICB7CiAgICAgICAgTWlncmF0ZU1vZGVsIG1vZGVs
ID0gKE1pZ3JhdGVNb2RlbCkgZ2V0V2luZG93KCk7CiAgICAgICAgTkd1aWQgcnVuX29uX3ZkcyA9
IG51bGw7CiAgICAgICAgYm9vbGVhbiBhbGxSdW5PblNhbWVWZHMgPSB0cnVlOwoKICAgICAgICBm
b3IgKE9iamVjdCBpdGVtIDogZ2V0U2VsZWN0ZWRJdGVtcygpKQogICAgICAgIHsKICAgICAgICAg
ICAgVk0gYSA9IChWTSkgaXRlbTsKICAgICAgICAgICAgaWYgKCFhLmdldFZkc0dyb3VwSWQoKS5l
cXVhbHMoKChWTSkgZ2V0U2VsZWN0ZWRJdGVtcygpLmdldCgwKSkuZ2V0VmRzR3JvdXBJZCgpKSkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbW9kZWwuc2V0Vm1zT25TYW1lQ2x1c3Rlcihm
YWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJ1bl9vbl92ZHMgPT0gbnVsbCkK
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcnVuX29uX3ZkcyA9IGEuZ2V0UnVuT25WZHMo
KS5nZXRWYWx1ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGFsbFJ1bk9u
U2FtZVZkcyAmJiAhcnVuX29uX3Zkcy5lcXVhbHMoYS5nZXRSdW5PblZkcygpLmdldFZhbHVlKCkp
KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBhbGxSdW5PblNhbWVWZHMgPSBmYWxzZTsK
ICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbW9kZWwuc2V0SXNIb3N0U2VsQXZhaWxh
YmxlKG1vZGVsLmdldFZtc09uU2FtZUNsdXN0ZXIoKSAmJiBob3N0cy5zaXplKCkgPiAwKTsKCiAg
ICAgICAgaWYgKG1vZGVsLmdldFZtc09uU2FtZUNsdXN0ZXIoKSAmJiBhbGxSdW5PblNhbWVWZHMp
CiAgICAgICAgewogICAgICAgICAgICBWRFMgcnVuT25TYW1lVkRTID0gbnVsbDsKICAgICAgICAg
ICAgZm9yIChWRFMgaG9zdCA6IGhvc3RzKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBp
ZiAoaG9zdC5nZXRJZCgpLmVxdWFscyhydW5fb25fdmRzKSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICBydW5PblNhbWVWRFMgPSBob3N0OwogICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICB9CiAgICAgICAgICAgIGhvc3RzLnJlbW92ZShydW5PblNhbWVWRFMpOwogICAg
ICAgIH0KICAgICAgICBpZiAoaG9zdHMuaXNFbXB0eSgpKQogICAgICAgIHsKICAgICAgICAgICAg
bW9kZWwuc2V0SXNIb3N0U2VsQXZhaWxhYmxlKGZhbHNlKTsKCiAgICAgICAgICAgIGlmIChhbGxS
dW5PblNhbWVWZHMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG1vZGVsLnNldE5vU2Vs
QXZhaWxhYmxlKHRydWUpOwoKICAgICAgICAgICAgICAgIFVJQ29tbWFuZCB0ZW1wVmFyID0gbmV3
IFVJQ29tbWFuZCgiQ2FuY2VsIiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICAgICAgICAg
IHRlbXBWYXIuc2V0VGl0bGUoQ29uc3RhbnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0
YW50cygpLmNsb3NlKCkpOwogICAgICAgICAgICAgICAgdGVtcFZhci5zZXRJc0RlZmF1bHQodHJ1
ZSk7CiAgICAgICAgICAgICAgICB0ZW1wVmFyLnNldElzQ2FuY2VsKHRydWUpOwogICAgICAgICAg
ICAgICAgbW9kZWwuZ2V0Q29tbWFuZHMoKS5hZGQodGVtcFZhcik7CiAgICAgICAgICAgIH0KICAg
ICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgbW9kZWwuZ2V0SG9zdHMo
KS5zZXRJdGVtcyhob3N0cyk7CiAgICAgICAgICAgIG1vZGVsLmdldEhvc3RzKCkuc2V0U2VsZWN0
ZWRJdGVtKExpbnEuRmlyc3RPckRlZmF1bHQoaG9zdHMpKTsKCiAgICAgICAgICAgIFVJQ29tbWFu
ZCB0ZW1wVmFyMiA9IG5ldyBVSUNvbW1hbmQoIk9uTWlncmF0ZSIsIHRoaXMpOyAvLyROT04tTkxT
LTEkCiAgICAgICAgICAgIHRlbXBWYXIyLnNldFRpdGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5z
dGFuY2UoKS5nZXRDb25zdGFudHMoKS5vaygpKTsKICAgICAgICAgICAgdGVtcFZhcjIuc2V0SXNE
ZWZhdWx0KHRydWUpOwogICAgICAgICAgICBtb2RlbC5nZXRDb21tYW5kcygpLmFkZCh0ZW1wVmFy
Mik7CiAgICAgICAgICAgIFVJQ29tbWFuZCB0ZW1wVmFyMyA9IG5ldyBVSUNvbW1hbmQoIkNhbmNl
bCIsIHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAgICAgICAgIHRlbXBWYXIzLnNldFRpdGxlKENv
bnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5jYW5jZWwoKSk7CiAg
ICAgICAgICAgIHRlbXBWYXIzLnNldElzQ2FuY2VsKHRydWUpOwogICAgICAgICAgICBtb2RlbC5n
ZXRDb21tYW5kcygpLmFkZCh0ZW1wVmFyMyk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUg
dm9pZCBPbk1pZ3JhdGUoKQogICAgewogICAgICAgIE1pZ3JhdGVNb2RlbCBtb2RlbCA9IChNaWdy
YXRlTW9kZWwpIGdldFdpbmRvdygpOwoKICAgICAgICBpZiAobW9kZWwuZ2V0UHJvZ3Jlc3MoKSAh
PSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAg
bW9kZWwuU3RhcnRQcm9ncmVzcyhudWxsKTsKCiAgICAgICAgaWYgKG1vZGVsLmdldElzQXV0b1Nl
bGVjdCgpKQogICAgICAgIHsKICAgICAgICAgICAgQXJyYXlMaXN0PFZkY0FjdGlvblBhcmFtZXRl
cnNCYXNlPiBsaXN0ID0gbmV3IEFycmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJzQmFzZT4oKTsK
ICAgICAgICAgICAgZm9yIChPYmplY3QgaXRlbSA6IGdldFNlbGVjdGVkSXRlbXMoKSkKICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgVk0gYSA9IChWTSkgaXRlbTsKICAgICAgICAgICAgICAg
IGxpc3QuYWRkKG5ldyBNaWdyYXRlVm1QYXJhbWV0ZXJzKHRydWUsIGEuZ2V0SWQoKSkpOwogICAg
ICAgICAgICB9CgogICAgICAgICAgICBGcm9udGVuZC5SdW5NdWx0aXBsZUFjdGlvbihWZGNBY3Rp
b25UeXBlLk1pZ3JhdGVWbSwgbGlzdCwKICAgICAgICAgICAgICAgICAgICBuZXcgSUZyb250ZW5k
TXVsdGlwbGVBY3Rpb25Bc3luY0NhbGxiYWNrKCkgewogICAgICAgICAgICAgICAgICAgICAgICBA
T3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0ZWQoRnJv
bnRlbmRNdWx0aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE1pZ3JhdGVNb2RlbCBsb2NhbE1vZGVsID0gKE1pZ3JhdGVNb2RlbCkgcmVz
dWx0LmdldFN0YXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbE1vZGVsLlN0
b3BQcm9ncmVzcygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsKCk7CgogICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgbW9kZWwpOwogICAg
ICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBBcnJheUxpc3Q8VmRjQWN0
aW9uUGFyYW1ldGVyc0Jhc2U+IGxpc3QgPSBuZXcgQXJyYXlMaXN0PFZkY0FjdGlvblBhcmFtZXRl
cnNCYXNlPigpOwogICAgICAgICAgICBmb3IgKE9iamVjdCBpdGVtIDogZ2V0U2VsZWN0ZWRJdGVt
cygpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBWTSBhID0gKFZNKSBpdGVtOwoKICAg
ICAgICAgICAgICAgIGlmIChhLmdldFJ1bk9uVmRzKCkuZ2V0VmFsdWUoKS5lcXVhbHMoKChWRFMp
IG1vZGVsLmdldEhvc3RzKCkuZ2V0U2VsZWN0ZWRJdGVtKCkpLmdldElkKCkpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQoK
ICAgICAgICAgICAgICAgIGxpc3QuYWRkKG5ldyBNaWdyYXRlVm1Ub1NlcnZlclBhcmFtZXRlcnMo
dHJ1ZSwgYS5nZXRJZCgpLCAoKFZEUykgbW9kZWwuZ2V0SG9zdHMoKQogICAgICAgICAgICAgICAg
ICAgICAgICAuZ2V0U2VsZWN0ZWRJdGVtKCkpLmdldElkKCkpKTsKICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgRnJvbnRlbmQuUnVuTXVsdGlwbGVBY3Rpb24oVmRjQWN0aW9uVHlwZS5NaWdyYXRl
Vm1Ub1NlcnZlciwgbGlzdCwKICAgICAgICAgICAgICAgICAgICBuZXcgSUZyb250ZW5kTXVsdGlw
bGVBY3Rpb25Bc3luY0NhbGxiYWNrKCkgewogICAgICAgICAgICAgICAgICAgICAgICBAT3ZlcnJp
ZGUKICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0ZWQoRnJvbnRlbmRN
dWx0aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE1pZ3JhdGVNb2RlbCBsb2NhbE1vZGVsID0gKE1pZ3JhdGVNb2RlbCkgcmVzdWx0Lmdl
dFN0YXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbE1vZGVsLlN0b3BQcm9n
cmVzcygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FuY2VsKCk7CgogICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSwgbW9kZWwpOwogICAgICAgIH0K
ICAgIH0KCiAgICBwcml2YXRlIHZvaWQgU2h1dGRvd24oKQogICAgewogICAgICAgIENvbmZpcm1h
dGlvbk1vZGVsIG1vZGVsID0gbmV3IENvbmZpcm1hdGlvbk1vZGVsKCk7CiAgICAgICAgc2V0V2lu
ZG93KG1vZGVsKTsKICAgICAgICBtb2RlbC5zZXRUaXRsZShDb25zdGFudHNNYW5hZ2VyLmdldElu
c3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuc2h1dGRvd25WaXJ0dWFsTWFjaGluZXNUaXRsZSgpKTsK
ICAgICAgICBtb2RlbC5zZXRIYXNoTmFtZSgic2h1dF9kb3duX3ZpcnR1YWxfbWFjaGluZSIpOyAv
LyROT04tTkxTLTEkCiAgICAgICAgbW9kZWwuc2V0TWVzc2FnZShDb25zdGFudHNNYW5hZ2VyLmdl
dEluc3RhbmNlKCkKICAgICAgICAgICAgICAgIC5nZXRDb25zdGFudHMoKQogICAgICAgICAgICAg
ICAgLmFyZVlvdVN1cmVZb3VXYW50VG9TaHV0RG93blRoZUZvbGxvd2luZ1ZpcnR1YWxNYWNoaW5l
c01zZygpKTsKICAgICAgICAvLyBtb2RlbC5JdGVtcyA9IFNlbGVjdGVkSXRlbXMuQ2FzdDxWTT4o
KS5TZWxlY3QoYSA9PiBhLnZtX25hbWUpOwogICAgICAgIEFycmF5TGlzdDxTdHJpbmc+IGl0ZW1z
ID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7CiAgICAgICAgZm9yIChPYmplY3QgaXRlbSA6IGdl
dFNlbGVjdGVkSXRlbXMoKSkKICAgICAgICB7CiAgICAgICAgICAgIFZNIGEgPSAoVk0pIGl0ZW07
CiAgICAgICAgICAgIGl0ZW1zLmFkZChhLmdldFZtTmFtZSgpKTsKICAgICAgICB9CiAgICAgICAg
bW9kZWwuc2V0SXRlbXMoaXRlbXMpOwoKICAgICAgICBVSUNvbW1hbmQgdGVtcFZhciA9IG5ldyBV
SUNvbW1hbmQoIk9uU2h1dGRvd24iLCB0aGlzKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHRlbXBW
YXIuc2V0VGl0bGUoQ29uc3RhbnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0YW50cygp
Lm9rKCkpOwogICAgICAgIHRlbXBWYXIuc2V0SXNEZWZhdWx0KHRydWUpOwogICAgICAgIG1vZGVs
LmdldENvbW1hbmRzKCkuYWRkKHRlbXBWYXIpOwogICAgICAgIFVJQ29tbWFuZCB0ZW1wVmFyMiA9
IG5ldyBVSUNvbW1hbmQoIkNhbmNlbCIsIHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAgICAgdGVt
cFZhcjIuc2V0VGl0bGUoQ29uc3RhbnRzTWFuYWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0YW50
cygpLmNhbmNlbCgpKTsKICAgICAgICB0ZW1wVmFyMi5zZXRJc0NhbmNlbCh0cnVlKTsKICAgICAg
ICBtb2RlbC5nZXRDb21tYW5kcygpLmFkZCh0ZW1wVmFyMik7CiAgICB9CgogICAgcHJpdmF0ZSB2
b2lkIE9uU2h1dGRvd24oKQogICAgewogICAgICAgIENvbmZpcm1hdGlvbk1vZGVsIG1vZGVsID0g
KENvbmZpcm1hdGlvbk1vZGVsKSBnZXRXaW5kb3coKTsKCiAgICAgICAgaWYgKG1vZGVsLmdldFBy
b2dyZXNzKCkgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9
CgogICAgICAgIEFycmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJzQmFzZT4gbGlzdCA9IG5ldyBB
cnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1ldGVyc0Jhc2U+KCk7CiAgICAgICAgZm9yIChPYmplY3Qg
aXRlbSA6IGdldFNlbGVjdGVkSXRlbXMoKSkKICAgICAgICB7CiAgICAgICAgICAgIFZNIGEgPSAo
Vk0pIGl0ZW07CiAgICAgICAgICAgIGxpc3QuYWRkKG5ldyBTaHV0ZG93blZtUGFyYW1ldGVycyhh
LmdldElkKCksIHRydWUpKTsKICAgICAgICB9CgogICAgICAgIG1vZGVsLlN0YXJ0UHJvZ3Jlc3Mo
bnVsbCk7CgogICAgICAgIEZyb250ZW5kLlJ1bk11bHRpcGxlQWN0aW9uKFZkY0FjdGlvblR5cGUu
U2h1dGRvd25WbSwgbGlzdCwKICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRlbmRNdWx0aXBsZUFj
dGlvbkFzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAg
ICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0ZWQoRnJvbnRlbmRNdWx0aXBsZUFjdGlv
bkFzeW5jUmVzdWx0IHJlc3VsdCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlybWF0
aW9uTW9kZWwgbG9jYWxNb2RlbCA9IChDb25maXJtYXRpb25Nb2RlbCkgcmVzdWx0LmdldFN0YXRl
KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTW9kZWwuU3RvcFByb2dyZXNzKCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgIENhbmNlbCgpOwoKICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9LCBtb2RlbCk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHN0b3AoKQog
ICAgewogICAgICAgIENvbmZpcm1hdGlvbk1vZGVsIG1vZGVsID0gbmV3IENvbmZpcm1hdGlvbk1v
ZGVsKCk7CiAgICAgICAgc2V0V2luZG93KG1vZGVsKTsKICAgICAgICBtb2RlbC5zZXRUaXRsZShD
b25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuc3RvcFZpcnR1YWxN
YWNoaW5lc1RpdGxlKCkpOwogICAgICAgIG1vZGVsLnNldEhhc2hOYW1lKCJzdG9wX3ZpcnR1YWxf
bWFjaGluZSIpOyAvLyROT04tTkxTLTEkCiAgICAgICAgbW9kZWwuc2V0TWVzc2FnZShDb25zdGFu
dHNNYW5hZ2VyLmdldEluc3RhbmNlKCkKICAgICAgICAgICAgICAgIC5nZXRDb25zdGFudHMoKQog
ICAgICAgICAgICAgICAgLmFyZVlvdVN1cmVZb3VXYW50VG9TdG9wVGhlRm9sbG93aW5nVmlydHVh
bE1hY2hpbmVzTXNnKCkpOwogICAgICAgIC8vIG1vZGVsLkl0ZW1zID0gU2VsZWN0ZWRJdGVtcy5D
YXN0PFZNPigpLlNlbGVjdChhID0+IGEudm1fbmFtZSk7CiAgICAgICAgQXJyYXlMaXN0PFN0cmlu
Zz4gaXRlbXMgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKICAgICAgICBmb3IgKE9iamVjdCBp
dGVtIDogZ2V0U2VsZWN0ZWRJdGVtcygpKQogICAgICAgIHsKICAgICAgICAgICAgVk0gYSA9IChW
TSkgaXRlbTsKICAgICAgICAgICAgaXRlbXMuYWRkKGEuZ2V0Vm1OYW1lKCkpOwogICAgICAgIH0K
ICAgICAgICBtb2RlbC5zZXRJdGVtcyhpdGVtcyk7CgogICAgICAgIFVJQ29tbWFuZCB0ZW1wVmFy
ID0gbmV3IFVJQ29tbWFuZCgiT25TdG9wIiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB0
ZW1wVmFyLnNldFRpdGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFu
dHMoKS5vaygpKTsKICAgICAgICB0ZW1wVmFyLnNldElzRGVmYXVsdCh0cnVlKTsKICAgICAgICBt
b2RlbC5nZXRDb21tYW5kcygpLmFkZCh0ZW1wVmFyKTsKICAgICAgICBVSUNvbW1hbmQgdGVtcFZh
cjIgPSBuZXcgVUlDb21tYW5kKCJDYW5jZWwiLCB0aGlzKTsgLy8kTk9OLU5MUy0xJAogICAgICAg
IHRlbXBWYXIyLnNldFRpdGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25z
dGFudHMoKS5jYW5jZWwoKSk7CiAgICAgICAgdGVtcFZhcjIuc2V0SXNDYW5jZWwodHJ1ZSk7CiAg
ICAgICAgbW9kZWwuZ2V0Q29tbWFuZHMoKS5hZGQodGVtcFZhcjIpOwogICAgfQoKICAgIHByaXZh
dGUgdm9pZCBPblN0b3AoKQogICAgewogICAgICAgIENvbmZpcm1hdGlvbk1vZGVsIG1vZGVsID0g
KENvbmZpcm1hdGlvbk1vZGVsKSBnZXRXaW5kb3coKTsKCiAgICAgICAgaWYgKG1vZGVsLmdldFBy
b2dyZXNzKCkgIT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9
CgogICAgICAgIEFycmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJzQmFzZT4gbGlzdCA9IG5ldyBB
cnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1ldGVyc0Jhc2U+KCk7CiAgICAgICAgZm9yIChPYmplY3Qg
aXRlbSA6IGdldFNlbGVjdGVkSXRlbXMoKSkKICAgICAgICB7CiAgICAgICAgICAgIFZNIGEgPSAo
Vk0pIGl0ZW07CiAgICAgICAgICAgIGxpc3QuYWRkKG5ldyBTdG9wVm1QYXJhbWV0ZXJzKGEuZ2V0
SWQoKSwgU3RvcFZtVHlwZUVudW0uTk9STUFMKSk7CiAgICAgICAgfQoKICAgICAgICBtb2RlbC5T
dGFydFByb2dyZXNzKG51bGwpOwoKICAgICAgICBGcm9udGVuZC5SdW5NdWx0aXBsZUFjdGlvbihW
ZGNBY3Rpb25UeXBlLlN0b3BWbSwgbGlzdCwKICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRlbmRN
dWx0aXBsZUFjdGlvbkFzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAgICAgICAgICAgQE92ZXJy
aWRlCiAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0ZWQoRnJvbnRlbmRNdWx0
aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewoKICAgICAgICAgICAgICAgICAgICAgICAg
Q29uZmlybWF0aW9uTW9kZWwgbG9jYWxNb2RlbCA9IChDb25maXJtYXRpb25Nb2RlbCkgcmVzdWx0
LmdldFN0YXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsTW9kZWwuU3RvcFByb2dy
ZXNzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbCgpOwoKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9LCBtb2RlbCk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lk
IFBhdXNlKCkKICAgIHsKICAgICAgICBBcnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1ldGVyc0Jhc2U+
IGxpc3QgPSBuZXcgQXJyYXlMaXN0PFZkY0FjdGlvblBhcmFtZXRlcnNCYXNlPigpOwogICAgICAg
IGZvciAoT2JqZWN0IGl0ZW0gOiBnZXRTZWxlY3RlZEl0ZW1zKCkpCiAgICAgICAgewogICAgICAg
ICAgICBWTSBhID0gKFZNKSBpdGVtOwogICAgICAgICAgICBsaXN0LmFkZChuZXcgSGliZXJuYXRl
Vm1QYXJhbWV0ZXJzKGEuZ2V0SWQoKSkpOwogICAgICAgIH0KCiAgICAgICAgRnJvbnRlbmQuUnVu
TXVsdGlwbGVBY3Rpb24oVmRjQWN0aW9uVHlwZS5IaWJlcm5hdGVWbSwgbGlzdCwKICAgICAgICAg
ICAgICAgIG5ldyBJRnJvbnRlbmRNdWx0aXBsZUFjdGlvbkFzeW5jQ2FsbGJhY2soKSB7CiAgICAg
ICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQg
RXhlY3V0ZWQoRnJvbnRlbmRNdWx0aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewoKICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCBudWxsKTsKICAgIH0KCiAgICBw
cml2YXRlIHZvaWQgUnVuKCkKICAgIHsKICAgICAgICBBcnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1l
dGVyc0Jhc2U+IGxpc3QgPSBuZXcgQXJyYXlMaXN0PFZkY0FjdGlvblBhcmFtZXRlcnNCYXNlPigp
OwogICAgICAgIGZvciAoT2JqZWN0IGl0ZW0gOiBnZXRTZWxlY3RlZEl0ZW1zKCkpCiAgICAgICAg
ewogICAgICAgICAgICBWTSBhID0gKFZNKSBpdGVtOwogICAgICAgICAgICAvLyB1c2Ugc3lzcHJl
cCBpZmYgdGhlIHZtIGlzIG5vdCBpbml0aWFsaXplZCBhbmQgdm0gaGFzIFdpbiBPUwogICAgICAg
ICAgICBib29sZWFuIHJlaW5pdGlhbGl6ZSA9ICFhLmlzSW5pdGlhbGl6ZWQoKSAmJiBBc3luY0Rh
dGFQcm92aWRlci5Jc1dpbmRvd3NPc1R5cGUoYS5nZXRWbU9zKCkpOwogICAgICAgICAgICBSdW5W
bVBhcmFtcyB0ZW1wVmFyID0gbmV3IFJ1blZtUGFyYW1zKGEuZ2V0SWQoKSk7CiAgICAgICAgICAg
IHRlbXBWYXIuc2V0UmVpbml0aWFsaXplKHJlaW5pdGlhbGl6ZSk7CiAgICAgICAgICAgIGxpc3Qu
YWRkKHRlbXBWYXIpOwogICAgICAgIH0KCiAgICAgICAgRnJvbnRlbmQuUnVuTXVsdGlwbGVBY3Rp
b24oVmRjQWN0aW9uVHlwZS5SdW5WbSwgbGlzdCwKICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRl
bmRNdWx0aXBsZUFjdGlvbkFzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAgICAgICAgICAgQE92
ZXJyaWRlCiAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0ZWQoRnJvbnRlbmRN
dWx0aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewoKICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICB9LCBudWxsKTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgT25SZW1v
dmUoKQogICAgewogICAgICAgIENvbmZpcm1hdGlvbk1vZGVsIG1vZGVsID0gKENvbmZpcm1hdGlv
bk1vZGVsKSBnZXRXaW5kb3coKTsKCiAgICAgICAgaWYgKG1vZGVsLmdldFByb2dyZXNzKCkgIT0g
bnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIEFy
cmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJzQmFzZT4gbGlzdCA9IG5ldyBBcnJheUxpc3Q8VmRj
QWN0aW9uUGFyYW1ldGVyc0Jhc2U+KCk7CiAgICAgICAgZm9yIChFbnRyeTxHdWlkLCBFbnRpdHlN
b2RlbD4gZW50cnkgOiB2bXNSZW1vdmVNYXAuZW50cnlTZXQoKSkKICAgICAgICB7CiAgICAgICAg
ICAgIGxpc3QuYWRkKG5ldyBSZW1vdmVWbVBhcmFtZXRlcnMoZW50cnkuZ2V0S2V5KCksIGZhbHNl
LCAoQm9vbGVhbikgZW50cnkuZ2V0VmFsdWUoKS5nZXRFbnRpdHkoKSkpOwogICAgICAgIH0KCiAg
ICAgICAgbW9kZWwuU3RhcnRQcm9ncmVzcyhudWxsKTsKCiAgICAgICAgRnJvbnRlbmQuUnVuTXVs
dGlwbGVBY3Rpb24oVmRjQWN0aW9uVHlwZS5SZW1vdmVWbSwgbGlzdCwKICAgICAgICAgICAgICAg
IG5ldyBJRnJvbnRlbmRNdWx0aXBsZUFjdGlvbkFzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAg
ICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0
ZWQoRnJvbnRlbmRNdWx0aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewoKICAgICAgICAg
ICAgICAgICAgICAgICAgQ29uZmlybWF0aW9uTW9kZWwgbG9jYWxNb2RlbCA9IChDb25maXJtYXRp
b25Nb2RlbCkgcmVzdWx0LmdldFN0YXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2Fs
TW9kZWwuU3RvcFByb2dyZXNzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIENhbmNlbCgpOwoK
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LCBtb2RlbCk7CiAgICB9Cgog
ICAgcHJpdmF0ZSB2b2lkIENoYW5nZUNEKCkKICAgIHsKICAgICAgICBWTSB2bSA9IChWTSkgZ2V0
U2VsZWN0ZWRJdGVtKCk7CiAgICAgICAgaWYgKHZtID09IG51bGwpCiAgICAgICAgewogICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBBdHRhY2hDZE1vZGVsIG1vZGVsID0gbmV3
IEF0dGFjaENkTW9kZWwoKTsKICAgICAgICBzZXRXaW5kb3cobW9kZWwpOwogICAgICAgIG1vZGVs
LnNldFRpdGxlKENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5j
aGFuZ2VDRFRpdGxlKCkpOwogICAgICAgIG1vZGVsLnNldEhhc2hOYW1lKCJjaGFuZ2VfY2QiKTsg
Ly8kTk9OLU5MUy0xJAoKICAgICAgICBBdHRhY2hDZE1vZGVsIGF0dGFjaENkTW9kZWwgPSAoQXR0
YWNoQ2RNb2RlbCkgZ2V0V2luZG93KCk7CiAgICAgICAgQXJyYXlMaXN0PFN0cmluZz4gaW1hZ2Vz
MSA9CiAgICAgICAgICAgICAgICBuZXcgQXJyYXlMaXN0PFN0cmluZz4oQXJyYXlzLmFzTGlzdChu
ZXcgU3RyaW5nW10geyAiTm8gQ0RzIiB9KSk7IC8vJE5PTi1OTFMtMSQKICAgICAgICBhdHRhY2hD
ZE1vZGVsLmdldElzb0ltYWdlKCkuc2V0SXRlbXMoaW1hZ2VzMSk7CiAgICAgICAgYXR0YWNoQ2RN
b2RlbC5nZXRJc29JbWFnZSgpLnNldFNlbGVjdGVkSXRlbShMaW5xLkZpcnN0T3JEZWZhdWx0KGlt
YWdlczEpKTsKCiAgICAgICAgQXN5bmNRdWVyeSBnZXRJcnNJbWFnZUxpc3RDYWxsYmFjayA9IG5l
dyBBc3luY1F1ZXJ5KCk7CiAgICAgICAgZ2V0SXJzSW1hZ2VMaXN0Q2FsbGJhY2suc2V0TW9kZWwo
dGhpcyk7CgogICAgICAgIGdldElyc0ltYWdlTGlzdENhbGxiYWNrLmFzeW5jQ2FsbGJhY2sgPSBu
ZXcgSU5ld0FzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAgIEBPdmVycmlkZQogICAgICAgICAg
ICBwdWJsaWMgdm9pZCBPblN1Y2Nlc3MoT2JqZWN0IG1vZGVsLCBPYmplY3QgcmVzdWx0KQogICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICBWbUxpc3RNb2RlbCB2bUxpc3RNb2RlbDIgPSAoVm1M
aXN0TW9kZWwpIG1vZGVsOwogICAgICAgICAgICAgICAgQXR0YWNoQ2RNb2RlbCBfYXR0YWNoQ2RN
b2RlbCA9IChBdHRhY2hDZE1vZGVsKSB2bUxpc3RNb2RlbDIuZ2V0V2luZG93KCk7CiAgICAgICAg
ICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiBpbWFnZXMgPSAoQXJyYXlMaXN0PFN0cmluZz4pIHJl
c3VsdDsKICAgICAgICAgICAgICAgIGlmIChpbWFnZXMuc2l6ZSgpID4gMCkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICBpbWFnZXMuYWRkKDAsIENvbnNvbGVNb2RlbC5FamVj
dExhYmVsKTsKICAgICAgICAgICAgICAgICAgICBfYXR0YWNoQ2RNb2RlbC5nZXRJc29JbWFnZSgp
LnNldEl0ZW1zKGltYWdlcyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAo
X2F0dGFjaENkTW9kZWwuZ2V0SXNvSW1hZ2UoKS5nZXRJc0NoYW5nYWJsZSgpKQogICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgIF9hdHRhY2hDZE1vZGVsLmdldElzb0ltYWdlKCku
c2V0U2VsZWN0ZWRJdGVtKExpbnEuRmlyc3RPckRlZmF1bHQoaW1hZ2VzKSk7CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIEFzeW5jRGF0YVByb3ZpZGVy
LkdldElyc0ltYWdlTGlzdChnZXRJcnNJbWFnZUxpc3RDYWxsYmFjaywgdm0uZ2V0U3RvcmFnZVBv
b2xJZCgpKTsKCiAgICAgICAgVUlDb21tYW5kIHRlbXBWYXIgPSBuZXcgVUlDb21tYW5kKCJPbkNo
YW5nZUNEIiwgdGhpcyk7IC8vJE5PTi1OTFMtMSQKICAgICAgICB0ZW1wVmFyLnNldFRpdGxlKENv
bnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5vaygpKTsKICAgICAg
ICB0ZW1wVmFyLnNldElzRGVmYXVsdCh0cnVlKTsKICAgICAgICBtb2RlbC5nZXRDb21tYW5kcygp
LmFkZCh0ZW1wVmFyKTsKICAgICAgICBVSUNvbW1hbmQgdGVtcFZhcjIgPSBuZXcgVUlDb21tYW5k
KCJDYW5jZWwiLCB0aGlzKTsgLy8kTk9OLU5MUy0xJAogICAgICAgIHRlbXBWYXIyLnNldFRpdGxl
KENvbnN0YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5jYW5jZWwoKSk7
CiAgICAgICAgdGVtcFZhcjIuc2V0SXNDYW5jZWwodHJ1ZSk7CiAgICAgICAgbW9kZWwuZ2V0Q29t
bWFuZHMoKS5hZGQodGVtcFZhcjIpOwogICAgfQoKICAgIHByaXZhdGUgdm9pZCBPbkNoYW5nZUNE
KCkKICAgIHsKICAgICAgICBWTSB2bSA9IChWTSkgZ2V0U2VsZWN0ZWRJdGVtKCk7CiAgICAgICAg
aWYgKHZtID09IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBDYW5jZWwoKTsKICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgQXR0YWNoQ2RNb2RlbCBtb2RlbCA9IChBdHRh
Y2hDZE1vZGVsKSBnZXRXaW5kb3coKTsKICAgICAgICBpZiAobW9kZWwuZ2V0UHJvZ3Jlc3MoKSAh
PSBudWxsKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAg
U3RyaW5nIGlzb05hbWUgPQogICAgICAgICAgICAgICAgKFN0cmluZ0hlbHBlci5zdHJpbmdzRXF1
YWwobW9kZWwuZ2V0SXNvSW1hZ2UoKS5nZXRTZWxlY3RlZEl0ZW0oKS50b1N0cmluZygpLCBDb25z
b2xlTW9kZWwuRWplY3RMYWJlbCkpID8gIiIgLy8kTk9OLU5MUy0xJAogICAgICAgICAgICAgICAg
ICAgICAgICA6IG1vZGVsLmdldElzb0ltYWdlKCkuZ2V0U2VsZWN0ZWRJdGVtKCkudG9TdHJpbmco
KTsKCiAgICAgICAgbW9kZWwuU3RhcnRQcm9ncmVzcyhudWxsKTsKCiAgICAgICAgRnJvbnRlbmQu
UnVuQWN0aW9uKFZkY0FjdGlvblR5cGUuQ2hhbmdlRGlzaywgbmV3IENoYW5nZURpc2tDb21tYW5k
UGFyYW1ldGVycyh2bS5nZXRJZCgpLCBpc29OYW1lKSwKICAgICAgICAgICAgICAgIG5ldyBJRnJv
bnRlbmRBY3Rpb25Bc3luY0NhbGxiYWNrKCkgewogICAgICAgICAgICAgICAgICAgIEBPdmVycmlk
ZQogICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIEV4ZWN1dGVkKEZyb250ZW5kQWN0aW9u
QXN5bmNSZXN1bHQgcmVzdWx0KSB7CgogICAgICAgICAgICAgICAgICAgICAgICBBdHRhY2hDZE1v
ZGVsIGF0dGFjaENkTW9kZWwgPSAoQXR0YWNoQ2RNb2RlbCkgcmVzdWx0LmdldFN0YXRlKCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaENkTW9kZWwuU3RvcFByb2dyZXNzKCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgIENhbmNlbCgpOwoKICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICB9LCBtb2RlbCk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIHByZVNhdmUoKQog
ICAgewogICAgICAgIGZpbmFsIFVuaXRWbU1vZGVsIG1vZGVsID0gKFVuaXRWbU1vZGVsKSBnZXRX
aW5kb3coKTsKICAgICAgICBmaW5hbCBTdHJpbmcgbmFtZSA9IChTdHJpbmcpIG1vZGVsLmdldE5h
bWUoKS5nZXRFbnRpdHkoKTsKCiAgICAgICAgaWYgKG1vZGVsLmdldElzTmV3KCkgPT0gZmFsc2Ug
JiYgc2VsZWN0ZWRJdGVtID09IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBDYW5jZWwoKTsK
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgc2V0Y3VycmVudFZtKG1vZGVs
LmdldElzTmV3KCkgPyBuZXcgVk0oKSA6IChWTSkgQ2xvbmVyLmNsb25lKHNlbGVjdGVkSXRlbSkp
OwoKICAgICAgICBpZiAoIW1vZGVsLlZhbGlkYXRlKCkpCiAgICAgICAgewogICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgfQoKICAgICAgICBBc3luY0RhdGFQcm92aWRlci5Jc1ZtTmFtZVVuaXF1
ZShuZXcgQXN5bmNRdWVyeSh0aGlzLCBuZXcgSU5ld0FzeW5jQ2FsbGJhY2soKSB7CgogICAgICAg
ICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgcHVibGljIHZvaWQgT25TdWNjZXNzKE9iamVjdCB0
YXJnZXQsIE9iamVjdCByZXR1cm5WYWx1ZSkgewogICAgICAgICAgICAgICAgaWYgKCEoQm9vbGVh
bikgcmV0dXJuVmFsdWUgJiYgbmFtZS5jb21wYXJlVG9JZ25vcmVDYXNlKGdldGN1cnJlbnRWbSgp
LmdldFZtTmFtZSgpKSAhPSAwKSB7CiAgICAgICAgICAgICAgICAgICAgbW9kZWwuZ2V0TmFtZSgp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0SW52YWxpZGl0eVJlYXNvbnMoKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLmFkZChDb25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNl
KCkuZ2V0Q29uc3RhbnRzKCkubmFtZU11c3RCZVVuaXF1ZUludmFsaWRSZWFzb24oKSk7CiAgICAg
ICAgICAgICAgICAgICAgbW9kZWwuZ2V0TmFtZSgpLnNldElzVmFsaWQoZmFsc2UpOwogICAgICAg
ICAgICAgICAgICAgIG1vZGVsLnNldElzR2VuZXJhbFRhYlZhbGlkKGZhbHNlKTsKICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbW9kZWwuZ2V0TmFtZSgpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAuZ2V0SW52YWxpZGl0eVJlYXNvbnMoKS5jbGVhcigpOwog
ICAgICAgICAgICAgICAgICAgIG1vZGVsLmdldE5hbWUoKS5zZXRJc1ZhbGlkKHRydWUpOwogICAg
ICAgICAgICAgICAgICAgIG1vZGVsLnNldElzR2VuZXJhbFRhYlZhbGlkKHRydWUpOwogICAgICAg
ICAgICAgICAgICAgIG9uU2F2ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAg
ICAgICAgfSksIG5hbWUpOwoKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgb25TYXZlKCkKICAgIHsK
ICAgICAgICBVbml0Vm1Nb2RlbCBtb2RlbCA9IChVbml0Vm1Nb2RlbCkgZ2V0V2luZG93KCk7CiAg
ICAgICAgVk0gc2VsZWN0ZWRJdGVtID0gKFZNKSBnZXRTZWxlY3RlZEl0ZW0oKTsKCiAgICAgICAg
U3RyaW5nIG5hbWUgPSAoU3RyaW5nKSBtb2RlbC5nZXROYW1lKCkuZ2V0RW50aXR5KCk7CgogICAg
ICAgIC8vIFNhdmUgY2hhbmdlcy4KICAgICAgICBWbVRlbXBsYXRlIHRlbXBsYXRlID0gKFZtVGVt
cGxhdGUpIG1vZGVsLmdldFRlbXBsYXRlKCkuZ2V0U2VsZWN0ZWRJdGVtKCk7CgogICAgICAgIGdl
dGN1cnJlbnRWbSgpLnNldFZtVHlwZShtb2RlbC5nZXRWbVR5cGUoKSk7CiAgICAgICAgZ2V0Y3Vy
cmVudFZtKCkuc2V0Vm10R3VpZCh0ZW1wbGF0ZS5nZXRJZCgpKTsKICAgICAgICBnZXRjdXJyZW50
Vm0oKS5zZXRWbU5hbWUobmFtZSk7CiAgICAgICAgaWYgKG1vZGVsLmdldFF1b3RhKCkuZ2V0U2Vs
ZWN0ZWRJdGVtKCkgIT0gbnVsbCkgewogICAgICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXRRdW90
YUlkKCgoUXVvdGEpIG1vZGVsLmdldFF1b3RhKCkuZ2V0U2VsZWN0ZWRJdGVtKCkpLmdldElkKCkp
OwogICAgICAgIH0KICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXRWbU9zKChWbU9zVHlwZSkgbW9k
ZWwuZ2V0T1NUeXBlKCkuZ2V0U2VsZWN0ZWRJdGVtKCkpOwogICAgICAgIGdldGN1cnJlbnRWbSgp
LnNldE51bU9mTW9uaXRvcnMoKEludGVnZXIpIG1vZGVsLmdldE51bU9mTW9uaXRvcnMoKS5nZXRT
ZWxlY3RlZEl0ZW0oKSk7CiAgICAgICAgZ2V0Y3VycmVudFZtKCkuc2V0QWxsb3dDb25zb2xlUmVj
b25uZWN0KChCb29sZWFuKSBtb2RlbC5nZXRBbGxvd0NvbnNvbGVSZWNvbm5lY3QoKS5nZXRFbnRp
dHkoKSk7CiAgICAgICAgZ2V0Y3VycmVudFZtKCkuc2V0Vm1EZXNjcmlwdGlvbigoU3RyaW5nKSBt
b2RlbC5nZXREZXNjcmlwdGlvbigpLmdldEVudGl0eSgpKTsKICAgICAgICBnZXRjdXJyZW50Vm0o
KS5zZXRWbURvbWFpbihtb2RlbC5nZXREb21haW4oKS5nZXRJc0F2YWlsYWJsZSgpID8gKFN0cmlu
ZykgbW9kZWwuZ2V0RG9tYWluKCkuZ2V0U2VsZWN0ZWRJdGVtKCkKICAgICAgICAgICAgICAgIDog
IiIpOyAvLyROT04tTkxTLTEkCiAgICAgICAgZ2V0Y3VycmVudFZtKCkuc2V0Vm1NZW1TaXplTWIo
KEludGVnZXIpIG1vZGVsLmdldE1lbVNpemUoKS5nZXRFbnRpdHkoKSk7CiAgICAgICAgZ2V0Y3Vy
cmVudFZtKCkuc2V0TWluQWxsb2NhdGVkTWVtKChJbnRlZ2VyKSBtb2RlbC5nZXRNaW5BbGxvY2F0
ZWRNZW1vcnkoKS5nZXRFbnRpdHkoKSk7CiAgICAgICAgR3VpZCBuZXdDbHVzdGVySUQgPSAoKFZE
U0dyb3VwKSBtb2RlbC5nZXRDbHVzdGVyKCkuZ2V0U2VsZWN0ZWRJdGVtKCkpLmdldElkKCk7CiAg
ICAgICAgZ2V0Y3VycmVudFZtKCkuc2V0VmRzR3JvdXBJZChuZXdDbHVzdGVySUQpOwogICAgICAg
IGdldGN1cnJlbnRWbSgpLnNldFRpbWVab25lKChtb2RlbC5nZXRUaW1lWm9uZSgpLmdldElzQXZh
aWxhYmxlKCkgJiYgbW9kZWwuZ2V0VGltZVpvbmUoKS5nZXRTZWxlY3RlZEl0ZW0oKSAhPSBudWxs
KSA/ICgoTWFwLkVudHJ5PFN0cmluZywgU3RyaW5nPikgbW9kZWwuZ2V0VGltZVpvbmUoKQogICAg
ICAgICAgICAgICAgLmdldFNlbGVjdGVkSXRlbSgpKS5nZXRLZXkoKQogICAgICAgICAgICAgICAg
OiAiIik7IC8vJE5PTi1OTFMtMSQKICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXROdW1PZlNvY2tl
dHMoKEludGVnZXIpIG1vZGVsLmdldE51bU9mU29ja2V0cygpLmdldFNlbGVjdGVkSXRlbSgpKTsK
ICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXRDcHVQZXJTb2NrZXQoSW50ZWdlci5wYXJzZUludCht
b2RlbC5nZXRUb3RhbENQVUNvcmVzKCkuZ2V0RW50aXR5KCkudG9TdHJpbmcoKSkKICAgICAgICAg
ICAgICAgIC8gKEludGVnZXIpIG1vZGVsLmdldE51bU9mU29ja2V0cygpLmdldFNlbGVjdGVkSXRl
bSgpKTsKICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXRVc2JQb2xpY3koKFVzYlBvbGljeSkgbW9k
ZWwuZ2V0VXNiUG9saWN5KCkuZ2V0U2VsZWN0ZWRJdGVtKCkpOwogICAgICAgIGdldGN1cnJlbnRW
bSgpLnNldEF1dG9TdXNwZW5kKGZhbHNlKTsKICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXRTdGF0
ZWxlc3MoKEJvb2xlYW4pIG1vZGVsLmdldElzU3RhdGVsZXNzKCkuZ2V0RW50aXR5KCkpOwogICAg
ICAgIGdldGN1cnJlbnRWbSgpLnNldFNtYXJ0Y2FyZEVuYWJsZWQoKEJvb2xlYW4pIG1vZGVsLmdl
dElzU21hcnRjYXJkRW5hYmxlZCgpLmdldEVudGl0eSgpKTsKICAgICAgICBnZXRjdXJyZW50Vm0o
KS5zZXREZWxldGVQcm90ZWN0ZWQoKEJvb2xlYW4pIG1vZGVsLmdldElzRGVsZXRlUHJvdGVjdGVk
KCkuZ2V0RW50aXR5KCkpOwogICAgICAgIGdldGN1cnJlbnRWbSgpLnNldERlZmF1bHRCb290U2Vx
dWVuY2UobW9kZWwuZ2V0Qm9vdFNlcXVlbmNlKCkpOwogICAgICAgIGdldGN1cnJlbnRWbSgpLnNl
dElzb1BhdGgobW9kZWwuZ2V0Q2RJbWFnZSgpLmdldElzQ2hhbmdhYmxlKCkgPyAoU3RyaW5nKSBt
b2RlbC5nZXRDZEltYWdlKCkuZ2V0U2VsZWN0ZWRJdGVtKCkKICAgICAgICAgICAgICAgIDogIiIp
OyAvLyROT04tTkxTLTEkCiAgICAgICAgZ2V0Y3VycmVudFZtKCkuc2V0QXV0b1N0YXJ0dXAoKEJv
b2xlYW4pIG1vZGVsLmdldElzSGlnaGx5QXZhaWxhYmxlKCkuZ2V0RW50aXR5KCkpOwoKICAgICAg
ICBnZXRjdXJyZW50Vm0oKS5zZXRJbml0cmRVcmwoKFN0cmluZykgbW9kZWwuZ2V0SW5pdHJkX3Bh
dGgoKS5nZXRFbnRpdHkoKSk7CiAgICAgICAgZ2V0Y3VycmVudFZtKCkuc2V0S2VybmVsVXJsKChT
dHJpbmcpIG1vZGVsLmdldEtlcm5lbF9wYXRoKCkuZ2V0RW50aXR5KCkpOwogICAgICAgIGdldGN1
cnJlbnRWbSgpLnNldEtlcm5lbFBhcmFtcygoU3RyaW5nKSBtb2RlbC5nZXRLZXJuZWxfcGFyYW1l
dGVycygpLmdldEVudGl0eSgpKTsKCiAgICAgICAgZ2V0Y3VycmVudFZtKCkuc2V0Q3VzdG9tUHJv
cGVydGllcyhtb2RlbC5nZXRDdXN0b21Qcm9wZXJ0eVNoZWV0KCkuZ2V0RW50aXR5KCkpOwoKICAg
ICAgICBFbnRpdHlNb2RlbCBkaXNwbGF5UHJvdG9jb2xTZWxlY3RlZEl0ZW0gPSAoRW50aXR5TW9k
ZWwpIG1vZGVsLmdldERpc3BsYXlQcm90b2NvbCgpLmdldFNlbGVjdGVkSXRlbSgpOwogICAgICAg
IGdldGN1cnJlbnRWbSgpLnNldERlZmF1bHREaXNwbGF5VHlwZSgoRGlzcGxheVR5cGUpIGRpc3Bs
YXlQcm90b2NvbFNlbGVjdGVkSXRlbS5nZXRFbnRpdHkoKSk7CgogICAgICAgIEVudGl0eU1vZGVs
IHByaW9yaXR5U2VsZWN0ZWRJdGVtID0gKEVudGl0eU1vZGVsKSBtb2RlbC5nZXRQcmlvcml0eSgp
LmdldFNlbGVjdGVkSXRlbSgpOwogICAgICAgIGdldGN1cnJlbnRWbSgpLnNldFByaW9yaXR5KChJ
bnRlZ2VyKSBwcmlvcml0eVNlbGVjdGVkSXRlbS5nZXRFbnRpdHkoKSk7CgogICAgICAgIGdldGN1
cnJlbnRWbSgpLnNldENwdVBpbm5pbmcoKFN0cmluZykgbW9kZWwuZ2V0Q3B1UGlubmluZygpCiAg
ICAgICAgICAgICAgICAuZ2V0RW50aXR5KCkpOwoKICAgICAgICBWRFMgZGVmYXVsdEhvc3QgPSAo
VkRTKSBtb2RlbC5nZXREZWZhdWx0SG9zdCgpLmdldFNlbGVjdGVkSXRlbSgpOwogICAgICAgIGlm
ICgoQm9vbGVhbikgbW9kZWwuZ2V0SXNBdXRvQXNzaWduKCkuZ2V0RW50aXR5KCkpCiAgICAgICAg
ewogICAgICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXREZWRpY2F0ZWRWbUZvclZkcyhudWxsKTsK
ICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgZ2V0Y3VycmVudFZt
KCkuc2V0RGVkaWNhdGVkVm1Gb3JWZHMoZGVmYXVsdEhvc3QuZ2V0SWQoKSk7CiAgICAgICAgfQoK
ICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXRNaWdyYXRpb25TdXBwb3J0KE1pZ3JhdGlvblN1cHBv
cnQuTUlHUkFUQUJMRSk7CiAgICAgICAgaWYgKChCb29sZWFuKSBtb2RlbC5nZXRSdW5WTU9uU3Bl
Y2lmaWNIb3N0KCkuZ2V0RW50aXR5KCkpCiAgICAgICAgewogICAgICAgICAgICBnZXRjdXJyZW50
Vm0oKS5zZXRNaWdyYXRpb25TdXBwb3J0KE1pZ3JhdGlvblN1cHBvcnQuUElOTkVEX1RPX0hPU1Qp
OwogICAgICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXRVc2VIb3N0Q3B1RmxhZ3MoKEJvb2xlYW4p
IG1vZGVsLmdldEhvc3RDcHUoKS5nZXRFbnRpdHkoKSk7CiAgICAgICAgfQogICAgICAgIGVsc2Ug
aWYgKChCb29sZWFuKSBtb2RlbC5nZXREb250TWlncmF0ZVZNKCkuZ2V0RW50aXR5KCkpCiAgICAg
ICAgewogICAgICAgICAgICBnZXRjdXJyZW50Vm0oKS5zZXRNaWdyYXRpb25TdXBwb3J0KE1pZ3Jh
dGlvblN1cHBvcnQuSU1QTElDSVRMWV9OT05fTUlHUkFUQUJMRSk7CiAgICAgICAgICAgIGdldGN1
cnJlbnRWbSgpLnNldFVzZUhvc3RDcHVGbGFncygoQm9vbGVhbikgbW9kZWwuZ2V0SG9zdENwdSgp
LmdldEVudGl0eSgpKTsKICAgICAgICB9CgogICAgICAgIGlmICgoQm9vbGVhbikgbW9kZWwuZ2V0
UnVuVk1PblRydXN0ZWRIb3N0KCkuZ2V0RW50aXR5KCkpCiAgICAgICAgewogICAgICAgICAgICBn
ZXRjdXJyZW50Vm0oKS5zZXRUcnVzdGVkSG9zdEZsYWcoKEJvb2xlYW4pIG1vZGVsLmdldFJ1blZN
T25UcnVzdGVkSG9zdCgpLmdldEVudGl0eSgpKTsKICAgICAgICAgICAgZ2V0Y3VycmVudFZtKCku
c2V0RGVkaWNhdGVkVm1Gb3JWZHMobnVsbCk7CiAgICAgICAgfQoKICAgICAgICBpZiAobW9kZWwu
Z2V0SXNOZXcoKSkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChnZXRjdXJyZW50Vm0oKS5nZXRW
bXRHdWlkKCkuZXF1YWxzKE5HdWlkLkVtcHR5KSkKICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgaWYgKG1vZGVsLmdldFByb2dyZXNzKCkgIT0gbnVsbCkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAg
ICAgbW9kZWwuU3RhcnRQcm9ncmVzcyhudWxsKTsKCiAgICAgICAgICAgICAgICBGcm9udGVuZC5S
dW5BY3Rpb24oVmRjQWN0aW9uVHlwZS5BZGRWbUZyb21TY3JhdGNoLCBuZXcgQWRkVm1Gcm9tU2Ny
YXRjaFBhcmFtZXRlcnMoZ2V0Y3VycmVudFZtKCksCiAgICAgICAgICAgICAgICAgICAgICAgIG5l
dyBBcnJheUxpc3Q8RGlza0ltYWdlPigpLAogICAgICAgICAgICAgICAgICAgICAgICBOR3VpZC5F
bXB0eSksCiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRlbmRBY3Rpb25Bc3luY0Nh
bGxiYWNrKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBFeGVjdXRlZChGcm9udGVuZEFjdGlvbkFz
eW5jUmVzdWx0IHJlc3VsdCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWbUxp
c3RNb2RlbCB2bUxpc3RNb2RlbCA9IChWbUxpc3RNb2RlbCkgcmVzdWx0LmdldFN0YXRlKCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm1MaXN0TW9kZWwuZ2V0V2luZG93KCkuU3Rv
cFByb2dyZXNzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmRjUmV0dXJuVmFs
dWVCYXNlIHJldHVyblZhbHVlQmFzZSA9IHJlc3VsdC5nZXRSZXR1cm5WYWx1ZSgpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXR1cm5WYWx1ZUJhc2UgIT0gbnVsbCAmJiBy
ZXR1cm5WYWx1ZUJhc2UuZ2V0U3VjY2VlZGVkKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bUxpc3RNb2RlbC5D
YW5jZWwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm1MaXN0TW9kZWwu
c2V0R3VpZGVDb250ZXh0KHJldHVyblZhbHVlQmFzZS5nZXRBY3Rpb25SZXR1cm5WYWx1ZSgpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm1MaXN0TW9kZWwuVXBkYXRlQWN0
aW9uQXZhaWxhYmlsaXR5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZt
TGlzdE1vZGVsLmdldEd1aWRlQ29tbWFuZCgpLkV4ZWN1dGUoKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICB9LCB0aGlzKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChtb2RlbC5nZXRQcm9ncmVzcygpICE9IG51
bGwpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgoQm9vbGVhbikgbW9kZWwuZ2V0UHJvdmlz
aW9uaW5nKCkuZ2V0RW50aXR5KCkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgbW9kZWwuU3RhcnRQcm9ncmVzcyhudWxsKTsKCiAgICAgICAgICAgICAgICAgICAgQXN5bmNR
dWVyeSBfYXN5bmNRdWVyeSA9IG5ldyBBc3luY1F1ZXJ5KCk7CiAgICAgICAgICAgICAgICAgICAg
X2FzeW5jUXVlcnkuc2V0TW9kZWwodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgX2FzeW5jUXVl
cnkuYXN5bmNDYWxsYmFjayA9IG5ldyBJTmV3QXN5bmNDYWxsYmFjaygpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lk
IE9uU3VjY2VzcyhPYmplY3QgbW9kZWwxLCBPYmplY3QgcmVzdWx0MSkKICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgVm1MaXN0TW9kZWwgdm1MaXN0
TW9kZWwgPSAoVm1MaXN0TW9kZWwpIG1vZGVsMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEFycmF5TGlzdDxEaXNrSW1hZ2U+IHRlbXBsYXRlRGlza3MgPSAoQXJyYXlMaXN0PERpc2tJbWFn
ZT4pIHJlc3VsdDE7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pdFZtTW9kZWwgdW5p
dFZtTW9kZWwgPSAoVW5pdFZtTW9kZWwpIHZtTGlzdE1vZGVsLmdldFdpbmRvdygpOwoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEhhc2hNYXA8R3VpZCwgRGlza0ltYWdlPiBpbWFnZVRvRGVz
dGluYXRpb25Eb21haW5NYXAgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bml0Vm1Nb2RlbC5nZXREaXNrc0FsbG9jYXRpb25Nb2RlbCgpLmdldEltYWdlVG9EZXN0aW5hdGlv
bkRvbWFpbk1hcCgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFycmF5TGlzdDxzdG9y
YWdlX2RvbWFpbnM+IGFjdGl2ZVN0b3JhZ2VEb21haW5zID0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5pdFZtTW9kZWwuZ2V0RGlza3NBbGxvY2F0aW9uTW9kZWwoKS5nZXRB
Y3RpdmVTdG9yYWdlRG9tYWlucygpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2hN
YXA8R3VpZCwgRGlza0ltYWdlPiBkaWN0ID0gdW5pdFZtTW9kZWwuZ2V0RGlza3NBbGxvY2F0aW9u
TW9kZWwoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0SW1hZ2VUb0Rl
c3RpbmF0aW9uRG9tYWluTWFwKChCb29sZWFuKSB1bml0Vm1Nb2RlbC5nZXREaXNrc0FsbG9jYXRp
b25Nb2RlbCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdl
dElzU2luZ2xlU3RvcmFnZURvbWFpbigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLmdldEVudGl0eSgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciAoRGlza0ltYWdlIHRlbXBsYXRlRGlzayA6IHRlbXBsYXRlRGlza3MpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlza01vZGVs
IGRpc2sgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoRGlza01v
ZGVsIGEgOiB1bml0Vm1Nb2RlbC5nZXREaXNrc0FsbG9jYXRpb25Nb2RlbCgpLmdldERpc2tzKCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodGVtcGxhdGVEaXNrLmdldElkKCkuZXF1YWxzKGEuZ2V0RGlzaygp
LmdldElkKCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNrID0gYTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlX2RvbWFpbnMgc3RvcmFnZURvbWFpbiA9CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5xLmdldFN0b3JhZ2VCeUlk
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVRv
RGVzdGluYXRpb25Eb21haW5NYXAuZ2V0KHRlbXBsYXRlRGlzay5nZXRJZCgpKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRzdG9yYWdl
X2lkcygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLmdldCgwKSwgYWN0aXZlU3RvcmFnZURvbWFpbnMpOwoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZGlzayAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpY3QuZ2V0KHRlbXBsYXRlRGlzay5nZXRJZCgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXR2b2x1bWVfdHlwZSgoVm9sdW1lVHlw
ZSkgZGlzay5nZXRWb2x1bWVUeXBlKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5nZXRTZWxlY3RlZEl0ZW0oKSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpY3QuZ2V0KHRlbXBsYXRlRGlzay5nZXRJZCgpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXR2b2x1bWVfZm9ybWF0KEFz
eW5jRGF0YVByb3ZpZGVyLkdldERpc2tWb2x1bWVGb3JtYXQoCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVm9sdW1lVHlwZSkgZGlzay5nZXRWb2x1
bWVUeXBlKCkuZ2V0U2VsZWN0ZWRJdGVtKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlRG9tYWluLmdldHN0b3JhZ2VfdHlwZSgpKSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXNrLmdldFF1b3RhKCku
Z2V0U2VsZWN0ZWRJdGVtKCkgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGljdC5nZXQodGVtcGxhdGVEaXNrLmdldElkKCkpLnNldFF1b3RhSWQoKChR
dW90YSkgZGlzay5nZXRRdW90YSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5nZXRTZWxlY3RlZEl0ZW0oKSkuZ2V0SWQoKSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RvcmFnZV9kb21haW5zIHN0b3JhZ2VEb21haW4gPQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc3RvcmFnZV9kb21haW5zKSB1bml0Vm1Nb2RlbC5nZXREaXNrc0FsbG9j
YXRpb25Nb2RlbCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LmdldFN0b3JhZ2VEb21haW4oKS5nZXRTZWxlY3RlZEl0ZW0oKTsKCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBZGRWbUZyb21UZW1wbGF0ZVBhcmFtZXRlcnMgcGFyYW0gPQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWRkVm1Gcm9tVGVtcGxhdGVQYXJhbWV0ZXJz
KHZtTGlzdE1vZGVsLmdldGN1cnJlbnRWbSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpY3QsIHN0b3JhZ2VEb21haW4uZ2V0SWQoKSk7CgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQXJyYXlMaXN0PFZkY0FjdGlvblBhcmFtZXRlcnNCYXNlPiBwYXJh
bWV0ZXJzID0gbmV3IEFycmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJzQmFzZT4oKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMuYWRkKHBhcmFtKTsKCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGcm9udGVuZC5SdW5NdWx0aXBsZUFjdGlvbihWZGNBY3Rpb25UeXBl
LkFkZFZtRnJvbVRlbXBsYXRlLCBwYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuZXcgSUZyb250ZW5kTXVsdGlwbGVBY3Rpb25Bc3luY0NhbGxiYWNrKCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBFeGVjdXRlZChGcm9u
dGVuZE11bHRpcGxlQWN0aW9uQXN5bmNSZXN1bHQgcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVm1MaXN0TW9kZWwgdm1MaXN0TW9kZWwxID0gKFZt
TGlzdE1vZGVsKSByZXN1bHQuZ2V0U3RhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2bUxpc3RNb2RlbDEuZ2V0V2luZG93KCkuU3RvcFByb2dyZXNzKCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm1MaXN0TW9kZWwx
LkNhbmNlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2bUxpc3RNb2RlbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIEFzeW5jRGF0YVByb3ZpZGVy
LkdldFRlbXBsYXRlRGlza0xpc3QoX2FzeW5jUXVlcnksIHRlbXBsYXRlLmdldElkKCkpOwogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgIGlmIChtb2RlbC5nZXRQcm9ncmVzcygpICE9IG51bGwpCiAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBtb2RlbC5TdGFydFByb2dyZXNzKG51bGwp
OwoKICAgICAgICAgICAgICAgICAgICBWbU1hbmFnZW1lbnRQYXJhbWV0ZXJzQmFzZSBwYXJhbXMg
PSBuZXcgVm1NYW5hZ2VtZW50UGFyYW1ldGVyc0Jhc2UoZ2V0Y3VycmVudFZtKCkpOwogICAgICAg
ICAgICAgICAgICAgIHBhcmFtcy5zZXREaXNrSW5mb0Rlc3RpbmF0aW9uTWFwKAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbW9kZWwuZ2V0RGlza3NBbGxvY2F0aW9uTW9kZWwoKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0SW1hZ2VUb0Rlc3RpbmF0aW9uRG9tYWlu
TWFwKChCb29sZWFuKSBtb2RlbC5nZXREaXNrc0FsbG9jYXRpb25Nb2RlbCgpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldElzU2luZ2xlU3RvcmFnZURvbWFp
bigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEVudGl0
eSgpKSk7CgogICAgICAgICAgICAgICAgICAgIEFycmF5TGlzdDxWZGNBY3Rpb25QYXJhbWV0ZXJz
QmFzZT4gcGFyYW1ldGVycyA9IG5ldyBBcnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1ldGVyc0Jhc2U+
KCk7CiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5hZGQocGFyYW1zKTsKCiAgICAgICAg
ICAgICAgICAgICAgRnJvbnRlbmQuUnVuTXVsdGlwbGVBY3Rpb24oVmRjQWN0aW9uVHlwZS5BZGRW
bSwgcGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRlbmRN
dWx0aXBsZUFjdGlvbkFzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZv
aWQgRXhlY3V0ZWQoRnJvbnRlbmRNdWx0aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWbUxpc3RNb2RlbCB2bUxpc3RNb2Rl
bDEgPSAoVm1MaXN0TW9kZWwpIHJlc3VsdC5nZXRTdGF0ZSgpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2bUxpc3RNb2RlbDEuZ2V0V2luZG93KCkuU3RvcFByb2dyZXNzKCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtTGlzdE1vZGVsMS5DYW5jZWwo
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyk7CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSAvLyBVcGRhdGUgZXhp
c3RpbmcgVk0gLT4gY29uc2lzdHMgb2YgZWRpdGluZyBWTSBjbHVzdGVyLCBhbmQgaWYgc3VjY2Vl
ZHMgLSBlZGl0aW5nIFZNOgogICAgICAgIHsKICAgICAgICAgICAgaWYgKG1vZGVsLmdldFByb2dy
ZXNzKCkgIT0gbnVsbCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICB9CgogICAgICAgICAgICAvLyBydW5FZGl0Vk06IHNob3VsZCBiZSB0cnVlIGlmIENs
dXN0ZXIgaGFzbid0IGNoYW5nZWQgb3IgaWYKICAgICAgICAgICAgLy8gQ2x1c3RlciBoYXMgY2hh
bmdlZCBhbmQgRWRpdGluZyBpdCBpbiB0aGUgQmFja2VuZCBoYXMgc3VjY2VlZGVkOgogICAgICAg
ICAgICBHdWlkIG9sZENsdXN0ZXJJRCA9IHNlbGVjdGVkSXRlbS5nZXRWZHNHcm91cElkKCk7CiAg
ICAgICAgICAgIGlmIChvbGRDbHVzdGVySUQuZXF1YWxzKG5ld0NsdXN0ZXJJRCkgPT0gZmFsc2Up
CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIENoYW5nZVZNQ2x1c3RlclBhcmFtZXRlcnMg
cGFyYW1ldGVycyA9CiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDaGFuZ2VWTUNsdXN0ZXJQ
YXJhbWV0ZXJzKG5ld0NsdXN0ZXJJRCwgZ2V0Y3VycmVudFZtKCkuZ2V0SWQoKSk7CgogICAgICAg
ICAgICAgICAgbW9kZWwuU3RhcnRQcm9ncmVzcyhudWxsKTsKCiAgICAgICAgICAgICAgICBGcm9u
dGVuZC5SdW5BY3Rpb24oVmRjQWN0aW9uVHlwZS5DaGFuZ2VWTUNsdXN0ZXIsIHBhcmFtZXRlcnMs
CiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRlbmRBY3Rpb25Bc3luY0NhbGxiYWNr
KCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBFeGVjdXRlZChGcm9udGVuZEFjdGlvbkFzeW5jUmVz
dWx0IHJlc3VsdCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWbUxpc3RNb2Rl
bCB2bUxpc3RNb2RlbCA9IChWbUxpc3RNb2RlbCkgcmVzdWx0LmdldFN0YXRlKCk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmRjUmV0dXJuVmFsdWVCYXNlIHJldHVyblZhbHVlQmFz
ZSA9IHJlc3VsdC5nZXRSZXR1cm5WYWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChyZXR1cm5WYWx1ZUJhc2UgIT0gbnVsbCAmJiByZXR1cm5WYWx1ZUJhc2UuZ2V0U3Vj
Y2VlZGVkKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZC5SdW5BY3Rpb24oVmRjQWN0aW9uVHlwZS5V
cGRhdGVWbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcg
Vm1NYW5hZ2VtZW50UGFyYW1ldGVyc0Jhc2Uodm1MaXN0TW9kZWwuZ2V0Y3VycmVudFZtKCkpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJRnJvbnRlbmRB
Y3Rpb25Bc3luY0NhbGxiYWNrKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0ZWQoRnJvbnRlbmRBY3Rpb25Bc3luY1Jl
c3VsdCByZXN1bHQxKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVm1MaXN0TW9kZWwgdm1MaXN0TW9kZWwxID0gKFZtTGlzdE1vZGVsKSByZXN1
bHQxLmdldFN0YXRlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2bUxpc3RNb2RlbDEuZ2V0V2luZG93KCkuU3RvcFByb2dyZXNzKCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZGNSZXR1cm5W
YWx1ZUJhc2UgcmV0VmFsID0gcmVzdWx0MS5nZXRSZXR1cm5WYWx1ZSgpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBpc1N1Y2NlZWRl
ZCA9IHJldFZhbC5nZXRTdWNjZWVkZWQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXRWYWwgIT0gbnVsbCAmJiBpc1N1Y2NlZWRlZCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bUxp
c3RNb2RlbDEuQ2FuY2VsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bUxpc3RNb2RlbCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZtTGlzdE1vZGVsLmdldFdpbmRvdygpLlN0b3BQ
cm9ncmVzcygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHRoaXMpOwogICAg
ICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
aWYgKG1vZGVsLmdldFByb2dyZXNzKCkgIT0gbnVsbCkKICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAg
bW9kZWwuU3RhcnRQcm9ncmVzcyhudWxsKTsKCiAgICAgICAgICAgICAgICBGcm9udGVuZC5SdW5B
Y3Rpb24oVmRjQWN0aW9uVHlwZS5VcGRhdGVWbSwgbmV3IFZtTWFuYWdlbWVudFBhcmFtZXRlcnNC
YXNlKGdldGN1cnJlbnRWbSgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgbmV3IElGcm9udGVu
ZEFjdGlvbkFzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAT3Zl
cnJpZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIEV4ZWN1dGVkKEZy
b250ZW5kQWN0aW9uQXN5bmNSZXN1bHQgcmVzdWx0KSB7CgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFZtTGlzdE1vZGVsIHZtTGlzdE1vZGVsID0gKFZtTGlzdE1vZGVsKSByZXN1bHQu
Z2V0U3RhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bUxpc3RNb2RlbC5n
ZXRXaW5kb3coKS5TdG9wUHJvZ3Jlc3MoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBWZGNSZXR1cm5WYWx1ZUJhc2UgcmV0dXJuVmFsdWVCYXNlID0gcmVzdWx0LmdldFJldHVyblZh
bHVlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldHVyblZhbHVlQmFz
ZSAhPSBudWxsICYmIHJldHVyblZhbHVlQmFzZS5nZXRTdWNjZWVkZWQoKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZtTGlzdE1vZGVsLkNhbmNlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0s
IHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgdm9pZCBS
ZXRyaWV2ZUlzb0ltYWdlcygpCiAgICB7CiAgICAgICAgT2JqZWN0IHRlbXBWYXIgPSBnZXRTZWxl
Y3RlZEl0ZW0oKTsKICAgICAgICBWTSB2bSA9IChWTSkgKCh0ZW1wVmFyIGluc3RhbmNlb2YgVk0p
ID8gdGVtcFZhciA6IG51bGwpOwogICAgICAgIGlmICh2bSA9PSBudWxsKQogICAgICAgIHsKICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgR3VpZCBzdG9yYWdlUG9vbElkID0g
dm0uZ2V0U3RvcmFnZVBvb2xJZCgpOwoKICAgICAgICBnZXRJc29JbWFnZXMoKS5jbGVhcigpOwoK
ICAgICAgICBDaGFuZ2VDRE1vZGVsIHRlbXBWYXIyID0gbmV3IENoYW5nZUNETW9kZWwoKTsKICAg
ICAgICB0ZW1wVmFyMi5zZXRUaXRsZShDb25zb2xlTW9kZWwuRWplY3RMYWJlbCk7CiAgICAgICAg
Q2hhbmdlQ0RNb2RlbCBlamVjdE1vZGVsID0gdGVtcFZhcjI7CiAgICAgICAgZWplY3RNb2RlbC5n
ZXRFeGVjdXRlZEV2ZW50KCkuYWRkTGlzdGVuZXIodGhpcyk7CiAgICAgICAgZ2V0SXNvSW1hZ2Vz
KCkuYWRkKGVqZWN0TW9kZWwpOwoKICAgICAgICBBcnJheUxpc3Q8U3RyaW5nPiBsaXN0ID0gbmV3
IEFycmF5TGlzdDxTdHJpbmc+KCk7CiAgICAgICAgQ2hhbmdlQ0RNb2RlbCB0ZW1wVmFyNCA9IG5l
dyBDaGFuZ2VDRE1vZGVsKCk7CiAgICAgICAgdGVtcFZhcjQuc2V0VGl0bGUoQ29uc3RhbnRzTWFu
YWdlci5nZXRJbnN0YW5jZSgpLmdldENvbnN0YW50cygpLm5vQ0RzVGl0bGUoKSk7CiAgICAgICAg
Z2V0SXNvSW1hZ2VzKCkuYWRkKHRlbXBWYXI0KTsKICAgIH0KCiAgICBwcml2YXRlIHZvaWQgY2hh
bmdlQ0QoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpCiAgICB7CiAgICAgICAgQ2hhbmdlQ0RN
b2RlbCBtb2RlbCA9IChDaGFuZ2VDRE1vZGVsKSBzZW5kZXI7CgogICAgICAgIC8vIFRPRE86IFBh
dGNoIQogICAgICAgIFN0cmluZyBpc29OYW1lID0gbW9kZWwuZ2V0VGl0bGUoKTsKICAgICAgICBp
ZiAoU3RyaW5nSGVscGVyLnN0cmluZ3NFcXVhbChpc29OYW1lLCAiTm8gQ0RzIikpIC8vJE5PTi1O
TFMtMSQKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIE9i
amVjdCB0ZW1wVmFyID0gZ2V0U2VsZWN0ZWRJdGVtKCk7CiAgICAgICAgVk0gdm0gPSAoVk0pICgo
dGVtcFZhciBpbnN0YW5jZW9mIFZNKSA/IHRlbXBWYXIgOiBudWxsKTsKICAgICAgICBpZiAodm0g
PT0gbnVsbCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAg
IEZyb250ZW5kLlJ1bk11bHRpcGxlQWN0aW9uKFZkY0FjdGlvblR5cGUuQ2hhbmdlRGlzaywKICAg
ICAgICAgICAgICAgIG5ldyBBcnJheUxpc3Q8VmRjQWN0aW9uUGFyYW1ldGVyc0Jhc2U+KEFycmF5
cy5hc0xpc3QobmV3IFZkY0FjdGlvblBhcmFtZXRlcnNCYXNlW10geyBuZXcgQ2hhbmdlRGlza0Nv
bW1hbmRQYXJhbWV0ZXJzKHZtLmdldElkKCksCiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmlu
Z0hlbHBlci5zdHJpbmdzRXF1YWwoaXNvTmFtZSwgQ29uc29sZU1vZGVsLkVqZWN0TGFiZWwpID8g
IiIgOiBpc29OYW1lKSB9KSksIC8vJE5PTi1OTFMtMSQKICAgICAgICAgICAgICAgIG5ldyBJRnJv
bnRlbmRNdWx0aXBsZUFjdGlvbkFzeW5jQ2FsbGJhY2soKSB7CiAgICAgICAgICAgICAgICAgICAg
QE92ZXJyaWRlCiAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgRXhlY3V0ZWQoRnJvbnRl
bmRNdWx0aXBsZUFjdGlvbkFzeW5jUmVzdWx0IHJlc3VsdCkgewoKICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbnVsbCk7CiAgICB9CgogICAg
cHVibGljIHZvaWQgQ2FuY2VsKCkKICAgIHsKICAgICAgICBGcm9udGVuZC5VbnN1YnNjcmliZSgp
OwoKICAgICAgICBDYW5jZWxDb25maXJtYXRpb24oKTsKCiAgICAgICAgc2V0R3VpZGVDb250ZXh0
KG51bGwpOwogICAgICAgIHNldFdpbmRvdyhudWxsKTsKCiAgICAgICAgVXBkYXRlQWN0aW9uQXZh
aWxhYmlsaXR5KCk7CiAgICB9CgogICAgcHJpdmF0ZSB2b2lkIENhbmNlbENvbmZpcm1hdGlvbigp
CiAgICB7CiAgICAgICAgc2V0Q29uZmlybVdpbmRvdyhudWxsKTsKICAgIH0KCiAgICBwdWJsaWMg
dm9pZCBDYW5jZWxFcnJvcigpCiAgICB7CiAgICAgICAgc2V0RXJyb3JXaW5kb3cobnVsbCk7CiAg
ICB9CgogICAgQE92ZXJyaWRlCiAgICBwcm90ZWN0ZWQgdm9pZCBPblNlbGVjdGVkSXRlbUNoYW5n
ZWQoKQogICAgewogICAgICAgIHN1cGVyLk9uU2VsZWN0ZWRJdGVtQ2hhbmdlZCgpOwoKICAgICAg
ICBVcGRhdGVBY3Rpb25BdmFpbGFiaWxpdHkoKTsKICAgICAgICBVcGRhdGVDb25zb2xlTW9kZWxz
KCk7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwcm90ZWN0ZWQgdm9pZCBTZWxlY3RlZEl0ZW1z
Q2hhbmdlZCgpCiAgICB7CiAgICAgICAgc3VwZXIuU2VsZWN0ZWRJdGVtc0NoYW5nZWQoKTsKCiAg
ICAgICAgVXBkYXRlQWN0aW9uQXZhaWxhYmlsaXR5KCk7CiAgICAgICAgVXBkYXRlQ29uc29sZU1v
ZGVscygpOwogICAgfQoKICAgIEBPdmVycmlkZQogICAgcHJvdGVjdGVkIHZvaWQgU2VsZWN0ZWRJ
dGVtUHJvcGVydHlDaGFuZ2VkKE9iamVjdCBzZW5kZXIsIFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJn
cyBlKQogICAgewogICAgICAgIHN1cGVyLlNlbGVjdGVkSXRlbVByb3BlcnR5Q2hhbmdlZChzZW5k
ZXIsIGUpOwoKICAgICAgICBpZiAoZS5Qcm9wZXJ0eU5hbWUuZXF1YWxzKCJzdGF0dXMiKSkgLy8k
Tk9OLU5MUy0xJAogICAgICAgIHsKICAgICAgICAgICAgVXBkYXRlQWN0aW9uQXZhaWxhYmlsaXR5
KCk7CgogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChlLlByb3BlcnR5TmFtZS5lcXVhbHMoImRp
c3BsYXlfdHlwZSIpKSAvLyROT04tTkxTLTEkCiAgICAgICAgewogICAgICAgICAgICBVcGRhdGVD
b25zb2xlTW9kZWxzKCk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgdm9pZCBVcGRhdGVB
Y3Rpb25BdmFpbGFiaWxpdHkoKQogICAgewogICAgICAgIExpc3QgaXRlbXMgPQogICAgICAgICAg
ICAgICAgZ2V0U2VsZWN0ZWRJdGVtcygpICE9IG51bGwgJiYgZ2V0U2VsZWN0ZWRJdGVtKCkgIT0g
bnVsbCA/IGdldFNlbGVjdGVkSXRlbXMoKQogICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBB
cnJheUxpc3QoKTsKCiAgICAgICAgZ2V0RWRpdENvbW1hbmQoKS5zZXRJc0V4ZWN1dGlvbkFsbG93
ZWQoaXNFZGl0Q29tbWFuZEV4ZWN1dGlvbkFsbG93ZWQoaXRlbXMpKTsKICAgICAgICBnZXRSZW1v
dmVDb21tYW5kKCkuc2V0SXNFeGVjdXRpb25BbGxvd2VkKGl0ZW1zLnNpemUoKSA+IDAKICAgICAg
ICAgICAgICAgICYmIFZkY0FjdGlvblV0aWxzLkNhbkV4ZWN1dGUoaXRlbXMsIFZNLmNsYXNzLCBW
ZGNBY3Rpb25UeXBlLlJlbW92ZVZtKSk7CiAgICAgICAgZ2V0UnVuQ29tbWFuZCgpLnNldElzRXhl
Y3V0aW9uQWxsb3dlZChpdGVtcy5zaXplKCkgPiAwCiAgICAgICAgICAgICAgICAmJiBWZGNBY3Rp
b25VdGlscy5DYW5FeGVjdXRlKGl0ZW1zLCBWTS5jbGFzcywgVmRjQWN0aW9uVHlwZS5SdW5WbSkp
OwogICAgICAgIGdldFBhdXNlQ29tbWFuZCgpLnNldElzRXhlY3V0aW9uQWxsb3dlZChpdGVtcy5z
aXplKCkgPiAwCiAgICAgICAgICAgICAgICAmJiBWZGNBY3Rpb25VdGlscy5DYW5FeGVjdXRlKGl0
ZW1zLCBWTS5jbGFzcywgVmRjQWN0aW9uVHlwZS5IaWJlcm5hdGVWbSkpOwogICAgICAgIGdldFNo
dXRkb3duQ29tbWFuZCgpLnNldElzRXhlY3V0aW9uQWxsb3dlZChpdGVtcy5zaXplKCkgPiAwCiAg
ICAgICAgICAgICAgICAmJiBWZGNBY3Rpb25VdGlscy5DYW5FeGVjdXRlKGl0ZW1zLCBWTS5jbGFz
cywgVmRjQWN0aW9uVHlwZS5TaHV0ZG93blZtKSk7CiAgICAgICAgZ2V0U3RvcENvbW1hbmQoKS5z
ZXRJc0V4ZWN1dGlvbkFsbG93ZWQoaXRlbXMuc2l6ZSgpID4gMAogICAgICAgICAgICAgICAgJiYg
VmRjQWN0aW9uVXRpbHMuQ2FuRXhlY3V0ZShpdGVtcywgVk0uY2xhc3MsIFZkY0FjdGlvblR5cGUu
U3RvcFZtKSk7CiAgICAgICAgZ2V0TWlncmF0ZUNvbW1hbmQoKS5zZXRJc0V4ZWN1dGlvbkFsbG93
ZWQoaXRlbXMuc2l6ZSgpID4gMAogICAgICAgICAgICAgICAgJiYgVmRjQWN0aW9uVXRpbHMuQ2Fu
RXhlY3V0ZShpdGVtcywgVk0uY2xhc3MsIFZkY0FjdGlvblR5cGUuTWlncmF0ZVZtKSk7CiAgICAg
ICAgZ2V0Q2FuY2VsTWlncmF0ZUNvbW1hbmQoKS5zZXRJc0V4ZWN1dGlvbkFsbG93ZWQoaXRlbXMu
c2l6ZSgpID4gMAogICAgICAgICAgICAgICAgJiYgVmRjQWN0aW9uVXRpbHMuQ2FuRXhlY3V0ZShp
dGVtcywgVk0uY2xhc3MsIFZkY0FjdGlvblR5cGUuQ2FuY2VsTWlncmF0ZVZtKSk7CiAgICAgICAg
Z2V0TmV3VGVtcGxhdGVDb21tYW5kKCkuc2V0SXNFeGVjdXRpb25BbGxvd2VkKGl0ZW1zLnNpemUo
KSA9PSAxCiAgICAgICAgICAgICAgICAmJiBWZGNBY3Rpb25VdGlscy5DYW5FeGVjdXRlKGl0ZW1z
LCBWTS5jbGFzcywgVmRjQWN0aW9uVHlwZS5BZGRWbVRlbXBsYXRlKSk7CiAgICAgICAgZ2V0UnVu
T25jZUNvbW1hbmQoKS5zZXRJc0V4ZWN1dGlvbkFsbG93ZWQoaXRlbXMuc2l6ZSgpID09IDEKICAg
ICAgICAgICAgICAgICYmIFZkY0FjdGlvblV0aWxzLkNhbkV4ZWN1dGUoaXRlbXMsIFZNLmNsYXNz
LCBWZGNBY3Rpb25UeXBlLlJ1blZtT25jZSkpOwogICAgICAgIGdldEV4cG9ydENvbW1hbmQoKS5z
ZXRJc0V4ZWN1dGlvbkFsbG93ZWQoaXRlbXMuc2l6ZSgpID4gMAogICAgICAgICAgICAgICAgJiYg
VmRjQWN0aW9uVXRpbHMuQ2FuRXhlY3V0ZShpdGVtcywgVk0uY2xhc3MsIFZkY0FjdGlvblR5cGUu
RXhwb3J0Vm0pKTsKICAgICAgICBnZXRNb3ZlQ29tbWFuZCgpLnNldElzRXhlY3V0aW9uQWxsb3dl
ZChpdGVtcy5zaXplKCkgPT0gMQogICAgICAgICAgICAgICAgJiYgVmRjQWN0aW9uVXRpbHMuQ2Fu
RXhlY3V0ZShpdGVtcywgVk0uY2xhc3MsIFZkY0FjdGlvblR5cGUuTW92ZVZtKSk7CiAgICAgICAg
Z2V0UmV0cmlldmVJc29JbWFnZXNDb21tYW5kKCkuc2V0SXNFeGVjdXRpb25BbGxvd2VkKGl0ZW1z
LnNpemUoKSA9PSAxCiAgICAgICAgICAgICAgICAmJiBWZGNBY3Rpb25VdGlscy5DYW5FeGVjdXRl
KGl0ZW1zLCBWTS5jbGFzcywgVmRjQWN0aW9uVHlwZS5DaGFuZ2VEaXNrKSk7CiAgICAgICAgZ2V0
Q2hhbmdlQ2RDb21tYW5kKCkuc2V0SXNFeGVjdXRpb25BbGxvd2VkKGl0ZW1zLnNpemUoKSA9PSAx
CiAgICAgICAgICAgICAgICAmJiBWZGNBY3Rpb25VdGlscy5DYW5FeGVjdXRlKGl0ZW1zLCBWTS5j
bGFzcywgVmRjQWN0aW9uVHlwZS5DaGFuZ2VEaXNrKSk7CiAgICAgICAgZ2V0QXNzaWduVGFnc0Nv
bW1hbmQoKS5zZXRJc0V4ZWN1dGlvbkFsbG93ZWQoaXRlbXMuc2l6ZSgpID4gMCk7CgogICAgICAg
IGdldEd1aWRlQ29tbWFuZCgpLnNldElzRXhlY3V0aW9uQWxsb3dlZChnZXRHdWlkZUNvbnRleHQo
KSAhPSBudWxsCiAgICAgICAgICAgICAgICB8fCAoZ2V0U2VsZWN0ZWRJdGVtKCkgIT0gbnVsbCAm
JiBnZXRTZWxlY3RlZEl0ZW1zKCkgIT0gbnVsbCAmJiBnZXRTZWxlY3RlZEl0ZW1zKCkuc2l6ZSgp
ID09IDEpKTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0cnVlIGlmIGFuZCBvbmx5IGlm
IG9uZSBlbGVtZW50IGlzIHNlbGVjdGVkLgogICAgICovCiAgICBwcml2YXRlIGJvb2xlYW4gaXNF
ZGl0Q29tbWFuZEV4ZWN1dGlvbkFsbG93ZWQoTGlzdCBpdGVtcykgewogICAgICAgIGlmIChpdGVt
cyA9PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAg
aWYgKGl0ZW1zLnNpemUoKSAhPSAxKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMg
dm9pZCBldmVudFJhaXNlZChFdmVudCBldiwgT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGFyZ3Mp
CiAgICB7CiAgICAgICAgc3VwZXIuZXZlbnRSYWlzZWQoZXYsIHNlbmRlciwgYXJncyk7CgogICAg
ICAgIGlmIChldi5lcXVhbHMoQ2hhbmdlQ0RNb2RlbC5FeGVjdXRlZEV2ZW50RGVmaW5pdGlvbikp
CiAgICAgICAgewogICAgICAgICAgICBjaGFuZ2VDRChzZW5kZXIsIGFyZ3MpOwogICAgICAgIH0K
ICAgICAgICBlbHNlIGlmIChldi5lcXVhbHMoQ29uc29sZU1vZGVsLkVycm9yRXZlbnREZWZpbml0
aW9uKSAmJiBzZW5kZXIgaW5zdGFuY2VvZiBTcGljZUNvbnNvbGVNb2RlbCkKICAgICAgICB7CiAg
ICAgICAgICAgIFNwaWNlQ29uc29sZU1vZGVsX0Vycm9yKHNlbmRlciwgKEVycm9yQ29kZUV2ZW50
QXJncykgYXJncyk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgdm9pZCBTcGljZUNvbnNv
bGVNb2RlbF9FcnJvcihPYmplY3Qgc2VuZGVyLCBFcnJvckNvZGVFdmVudEFyZ3MgZSkKICAgIHsK
ICAgICAgICBSZXNvdXJjZU1hbmFnZXIgcm0gPQogICAgICAgICAgICAgICAgbmV3IFJlc291cmNl
TWFuYWdlcigiVUlDb21tb24uUmVzb3VyY2VzLlJkcEVycm9ycy5SZHBFcnJvcnMiLCBBc3NlbWJs
eS5HZXRFeGVjdXRpbmdBc3NlbWJseSgpKTsgLy8kTk9OLU5MUy0xJAoKICAgICAgICBDb25maXJt
YXRpb25Nb2RlbCBtb2RlbCA9IG5ldyBDb25maXJtYXRpb25Nb2RlbCgpOwogICAgICAgIGlmIChn
ZXRFcnJvcldpbmRvdygpID09IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBzZXRFcnJvcldp
bmRvdyhtb2RlbCk7CiAgICAgICAgfQogICAgICAgIG1vZGVsLnNldFRpdGxlKENvbnN0YW50c01h
bmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5jb25zb2xlRGlzY29ubmVjdGVkVGl0
bGUoKSk7CiAgICAgICAgbW9kZWwuc2V0SGFzaE5hbWUoImNvbnNvbGVfZGlzY29ubmVjdGVkIik7
IC8vJE5PTi1OTFMtMSQKICAgICAgICBtb2RlbC5zZXRNZXNzYWdlKENvbnN0YW50c01hbmFnZXIu
Z2V0SW5zdGFuY2UoKQogICAgICAgICAgICAgICAgLmdldE1lc3NhZ2VzKCkKICAgICAgICAgICAg
ICAgIC5lcnJDb25uZWN0aW5nVm1Vc2luZ1NwaWNlTXNnKHJtLkdldFN0cmluZygiRSIgKyBlLmdl
dEVycm9yQ29kZSgpKSkpOyAvLyROT04tTkxTLTEkCgogICAgICAgIHJtLlJlbGVhc2VBbGxSZXNv
dXJjZXMoKTsKCiAgICAgICAgVUlDb21tYW5kIHRlbXBWYXIgPSBuZXcgVUlDb21tYW5kKCJDYW5j
ZWxFcnJvciIsIHRoaXMpOyAvLyROT04tTkxTLTEkCiAgICAgICAgdGVtcFZhci5zZXRUaXRsZShD
b25zdGFudHNNYW5hZ2VyLmdldEluc3RhbmNlKCkuZ2V0Q29uc3RhbnRzKCkuY2xvc2UoKSk7CiAg
ICAgICAgdGVtcFZhci5zZXRJc0RlZmF1bHQodHJ1ZSk7CiAgICAgICAgdGVtcFZhci5zZXRJc0Nh
bmNlbCh0cnVlKTsKICAgICAgICBtb2RlbC5nZXRDb21tYW5kcygpLmFkZCh0ZW1wVmFyKTsKICAg
IH0KCiAgICBAT3ZlcnJpZGUKICAgIHB1YmxpYyB2b2lkIEV4ZWN1dGVDb21tYW5kKFVJQ29tbWFu
ZCBjb21tYW5kKQogICAgewogICAgICAgIHN1cGVyLkV4ZWN1dGVDb21tYW5kKGNvbW1hbmQpOwoK
ICAgICAgICBpZiAoY29tbWFuZCA9PSBnZXROZXdTZXJ2ZXJDb21tYW5kKCkpCiAgICAgICAgewog
ICAgICAgICAgICBOZXdTZXJ2ZXIoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoY29tbWFu
ZCA9PSBnZXROZXdEZXNrdG9wQ29tbWFuZCgpKQogICAgICAgIHsKICAgICAgICAgICAgTmV3RGVz
a3RvcCgpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChjb21tYW5kID09IGdldEVkaXRDb21t
YW5kKCkpCiAgICAgICAgewogICAgICAgICAgICBFZGl0KCk7CiAgICAgICAgfQogICAgICAgIGVs
c2UgaWYgKGNvbW1hbmQgPT0gZ2V0UmVtb3ZlQ29tbWFuZCgpKQogICAgICAgIHsKICAgICAgICAg
ICAgcmVtb3ZlKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGNvbW1hbmQgPT0gZ2V0UnVu
Q29tbWFuZCgpKQogICAgICAgIHsKICAgICAgICAgICAgUnVuKCk7CiAgICAgICAgfQogICAgICAg
IGVsc2UgaWYgKGNvbW1hbmQgPT0gZ2V0UGF1c2VDb21tYW5kKCkpCiAgICAgICAgewogICAgICAg
ICAgICBQYXVzZSgpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChjb21tYW5kID09IGdldFN0
b3BDb21tYW5kKCkpCiAgICAgICAgewogICAgICAgICAgICBzdG9wKCk7CiAgICAgICAgfQogICAg
ICAgIGVsc2UgaWYgKGNvbW1hbmQgPT0gZ2V0U2h1dGRvd25Db21tYW5kKCkpCiAgICAgICAgewog
ICAgICAgICAgICBTaHV0ZG93bigpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChjb21tYW5k
ID09IGdldE1pZ3JhdGVDb21tYW5kKCkpCiAgICAgICAgewogICAgICAgICAgICBNaWdyYXRlKCk7
CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGNvbW1hbmQgPT0gZ2V0TmV3VGVtcGxhdGVDb21t
YW5kKCkpCiAgICAgICAgewogICAgICAgICAgICBOZXdUZW1wbGF0ZSgpOwogICAgICAgIH0KICAg
ICAgICBlbHNlIGlmIChjb21tYW5kID09IGdldFJ1bk9uY2VDb21tYW5kKCkpCiAgICAgICAgewog
ICAgICAgICAgICBSdW5PbmNlKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGNvbW1hbmQg
PT0gZ2V0RXhwb3J0Q29tbWFuZCgpKQogICAgICAgIHsKICAgICAgICAgICAgRXhwb3J0KENvbnN0
YW50c01hbmFnZXIuZ2V0SW5zdGFuY2UoKS5nZXRDb25zdGFudHMoKS5leHBvcnRWaXJ0dWFsTWFj
aGluZVRpdGxlKCkpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChjb21tYW5kID09IGdldE1v
dmVDb21tYW5kKCkpCiAgICAgICAgewogICAgICAgICAgICBNb3ZlKCk7CiAgICAgICAgfQogICAg
ICAgIGVsc2UgaWYgKGNvbW1hbmQgPT0gZ2V0R3VpZGVDb21tYW5kKCkpCiAgICAgICAgewogICAg
ICAgICAgICBHdWlkZSgpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChjb21tYW5kID09IGdl
dFJldHJpZXZlSXNvSW1hZ2VzQ29tbWFuZCgpKQogICAgICAgIHsKICAgICAgICAgICAgUmV0cmll
dmVJc29JbWFnZXMoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoY29tbWFuZCA9PSBnZXRD
aGFuZ2VDZENvbW1hbmQoKSkKICAgICAgICB7CiAgICAgICAgICAgIENoYW5nZUNEKCk7CiAgICAg
ICAgfQogICAgICAgIGVsc2UgaWYgKGNvbW1hbmQgPT0gZ2V0QXNzaWduVGFnc0NvbW1hbmQoKSkK
ICAgICAgICB7CiAgICAgICAgICAgIEFzc2lnblRhZ3MoKTsKICAgICAgICB9CiAgICAgICAgZWxz
ZSBpZiAoU3RyaW5nSGVscGVyLnN0cmluZ3NFcXVhbChjb21tYW5kLmdldE5hbWUoKSwgIk9uQXNz
aWduVGFncyIpKSAvLyROT04tTkxTLTEkCiAgICAgICAgewogICAgICAgICAgICBPbkFzc2lnblRh
Z3MoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoU3RyaW5nSGVscGVyLnN0cmluZ3NFcXVh
bChjb21tYW5kLmdldE5hbWUoKSwgIkNhbmNlbCIpKSAvLyROT04tTkxTLTEkCiAgICAgICAgewog
ICAgICAgICAgICBDYW5jZWwoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoU3RyaW5nSGVs
cGVyLnN0cmluZ3NFcXVhbChjb21tYW5kLmdldE5hbWUoKSwgIk9uU2F2ZSIpKSAvLyROT04tTkxT
LTEkCiAgICAgICAgewogICAgICAgICAgICBwcmVTYXZlKCk7CiAgICAgICAgfQogICAgICAgIGVs
c2UgaWYgKFN0cmluZ0hlbHBlci5zdHJpbmdzRXF1YWwoY29tbWFuZC5nZXROYW1lKCksICJPblJl
bW92ZSIpKSAvLyROT04tTkxTLTEkCiAgICAgICAgewogICAgICAgICAgICBPblJlbW92ZSgpOwog
ICAgICAgIH0KICAgICAgICBlbHNlIGlmIChTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKGNvbW1h
bmQuZ2V0TmFtZSgpLCAiT25FeHBvcnQiKSkgLy8kTk9OLU5MUy0xJAogICAgICAgIHsKICAgICAg
ICAgICAgT25FeHBvcnQoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoU3RyaW5nSGVscGVy
LnN0cmluZ3NFcXVhbChjb21tYW5kLmdldE5hbWUoKSwgIk9uRXhwb3J0Tm9UZW1wbGF0ZXMiKSkg
Ly8kTk9OLU5MUy0xJAogICAgICAgIHsKICAgICAgICAgICAgT25FeHBvcnROb1RlbXBsYXRlcygp
OwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKGNv
bW1hbmQuZ2V0TmFtZSgpLCAiQ2FuY2VsQ29uZmlybWF0aW9uIikpIC8vJE5PTi1OTFMtMSQKICAg
ICAgICB7CiAgICAgICAgICAgIENhbmNlbENvbmZpcm1hdGlvbigpOwogICAgICAgIH0KICAgICAg
ICBlbHNlIGlmIChTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKGNvbW1hbmQuZ2V0TmFtZSgpLCAi
Q2FuY2VsRXJyb3IiKSkgLy8kTk9OLU5MUy0xJAogICAgICAgIHsKICAgICAgICAgICAgQ2FuY2Vs
RXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoU3RyaW5nSGVscGVyLnN0cmluZ3NF
cXVhbChjb21tYW5kLmdldE5hbWUoKSwgIk9uUnVuT25jZSIpKSAvLyROT04tTkxTLTEkCiAgICAg
ICAgewogICAgICAgICAgICBPblJ1bk9uY2UoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAo
U3RyaW5nSGVscGVyLnN0cmluZ3NFcXVhbChjb21tYW5kLmdldE5hbWUoKSwgIk9uTmV3VGVtcGxh
dGUiKSkgLy8kTk9OLU5MUy0xJAogICAgICAgIHsKICAgICAgICAgICAgT25OZXdUZW1wbGF0ZSgp
OwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKGNv
bW1hbmQuZ2V0TmFtZSgpLCAiT25NaWdyYXRlIikpIC8vJE5PTi1OTFMtMSQKICAgICAgICB7CiAg
ICAgICAgICAgIE9uTWlncmF0ZSgpOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChjb21tYW5k
ID09IGdldENhbmNlbE1pZ3JhdGVDb21tYW5kKCkpCiAgICAgICAgewogICAgICAgICAgICBDYW5j
ZWxNaWdyYXRpb24oKTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoU3RyaW5nSGVscGVyLnN0
cmluZ3NFcXVhbChjb21tYW5kLmdldE5hbWUoKSwgIk9uU2h1dGRvd24iKSkgLy8kTk9OLU5MUy0x
JAogICAgICAgIHsKICAgICAgICAgICAgT25TaHV0ZG93bigpOwogICAgICAgIH0KICAgICAgICBl
bHNlIGlmIChTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKGNvbW1hbmQuZ2V0TmFtZSgpLCAiT25T
dG9wIikpIC8vJE5PTi1OTFMtMSQKICAgICAgICB7CiAgICAgICAgICAgIE9uU3RvcCgpOwogICAg
ICAgIH0KICAgICAgICBlbHNlIGlmIChTdHJpbmdIZWxwZXIuc3RyaW5nc0VxdWFsKGNvbW1hbmQu
Z2V0TmFtZSgpLCAiT25DaGFuZ2VDRCIpKSAvLyROT04tTkxTLTEkCiAgICAgICAgewogICAgICAg
ICAgICBPbkNoYW5nZUNEKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGNvbW1hbmQuZ2V0
TmFtZSgpLmVxdWFscygiY2xvc2VWbmNJbmZvIikpIHsgLy8kTk9OLU5MUy0xJAogICAgICAgICAg
ICBzZXRXaW5kb3cobnVsbCk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgU3lzdGVtVHJl
ZUl0ZW1Nb2RlbCBzeXN0ZW1UcmVlU2VsZWN0ZWRJdGVtOwoKICAgIEBPdmVycmlkZQogICAgcHVi
bGljIFN5c3RlbVRyZWVJdGVtTW9kZWwgZ2V0U3lzdGVtVHJlZVNlbGVjdGVkSXRlbSgpCiAgICB7
CiAgICAgICAgcmV0dXJuIHN5c3RlbVRyZWVTZWxlY3RlZEl0ZW07CiAgICB9CgogICAgQE92ZXJy
aWRlCiAgICBwdWJsaWMgdm9pZCBzZXRTeXN0ZW1UcmVlU2VsZWN0ZWRJdGVtKFN5c3RlbVRyZWVJ
dGVtTW9kZWwgdmFsdWUpCiAgICB7CiAgICAgICAgc3lzdGVtVHJlZVNlbGVjdGVkSXRlbSA9IHZh
bHVlOwogICAgICAgIE9uUHJvcGVydHlDaGFuZ2VkKG5ldyBQcm9wZXJ0eUNoYW5nZWRFdmVudEFy
Z3MoIlN5c3RlbVRyZWVTZWxlY3RlZEl0ZW0iKSk7IC8vJE5PTi1OTFMtMSQKICAgIH0KCiAgICBA
T3ZlcnJpZGUKICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0TGlzdE5hbWUoKSB7CiAgICAgICAgcmV0
dXJuICJWbUxpc3RNb2RlbCI7IC8vJE5PTi1OTFMtMSQKICAgIH0KCiAgICBAT3ZlcnJpZGUKICAg
IHByb3RlY3RlZCBHdWlkIGV4dHJhY3RTdG9yYWdlUG9vbElkTnVsbFNhZmUoVk0gZW50aXR5KSB7
CiAgICAgICAgcmV0dXJuIGVudGl0eS5nZXRTdG9yYWdlUG9vbElkKCk7CiAgICB9Cn0K
--_005_C5A0092C63E939488005F15F736A8112097A57B9SHSMSX101ccrcor_--
4
4
Hi guys,
I've encountered an interesting pattern while working on a recent patch: some View classes actually embed other View classes, and add those embedded Views to the (top-level) View.
For example, ImportVmPopupView has a field "ImportVmGeneralSubTabView generalView", which is created as part of constructor and added to ImportVmPopupView's layout.
The bottom line is, please don't use this pattern. Views are architectural components in Model-View-Presenter which are living in a particular scope (e.g. singleton/non-singleton), so UI composition should be always done on Widget level, instead of View level.
In other words, ImportVmPopupView shouldn't embed ImportVmGeneralSubTabView, but instead embed UI (Widgets) similar to ImportVmGeneralSubTabView. In case embedded View's UI is complex, we can just create a reusable widget that would be used in both ImportVmPopupView and ImportVmGeneralSubTabView.
Otherwise, we could run into problems, especially since ImportVmPopupView is dialog-specific (non-singleton) and ImportVmGeneralSubTabView is sub-tab-specific (singleton). In Model-View-Presenter, View != immediate Widget, View == MVP component wrapping UI (Widget) and bound to a specific scope, so that's the reason why UI composition should be always done on Widget level (on the other hand, subclassing Views is perfectly OK).
Sorry for being police man here .. it's just a note to keep in mind for future :)
Regards,
Vojtech
1
0
Hi,
I uploaded a new version of the watchdog patch. This patch is still a work in progress, it adds audit log alerts to the functionality.
http://gerrit.ovirt.org/12419/
Feature page:
http://www.ovirt.org/Features/Watchdog_engine_support
Laszlo
3
10
12 Mar '13
I'd like to propose Kanagaraj as a web admin maintainer - he has been
working on the webadmin for about a year, with more than 130 UI patches
merged.
Thanks,
Itamar
7
7
10 Mar '13
http://oi49.tinypic.com/34r817t.jpg
latest upstream (gerrit.ovirt.org / master), no left-pane System tree.
[Expand All, Collapse All and refresh buttons are still there]
[Bookmarks and Tags sections are OK]
any idea?
----
Thanks,
Einav
3
3
This is a multi-part message in MIME format.
--------------060506050108000600060309
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hi,
let me introduce some basic concepts when using REST API from the
command line. I hope, it would be useful for newcomers.
E.g. probably everybody has tried curl and then grep, sed, ... for
response, but XPath processing tool is more convenient for this task.
http://www.ovirt.org/REST_API_Using_BASH_Automation
Regards,
Libor
--------------060506050108000600060309
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi,<br>
<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
let me introduce some basic concepts when using REST API from the
command line. I hope, it would be useful for newcomers.<br>
E.g. probably everybody has tried curl and then grep, sed, ... for
response, but XPath processing tool is more convenient for this
task.<br>
<br>
<a href="http://www.ovirt.org/REST_API_Using_BASH_Automation">http://www.ovirt.org/REST_API_Using_BASH_Automation</a><br>
<br>
Regards,<br>
Libor<br>
</body>
</html>
--------------060506050108000600060309--
4
4
[Engine-devel] 转发:Re: function insertstorage_domain_static(uuid, ...) does not exist
by startup_002@sina.cn 08 Mar '13
by startup_002@sina.cn 08 Mar '13
08 Mar '13
--=-sinamail_alt_e6b3693f89c9291c9a8f11a12eaf9d51
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: inline
IEp1YW4sCgpUaGFua3MgZm9yIHlvdXIgYW5zd2VyLiAgQ2FuIHlvdSBwcm92aWRlIG1vcmUgZGV0
YWlscyBvbiBob3cgSSBjYW4gZml4IHRoaXMgcHJvYmxlbT8gIEkgdGhpbmsgZW5naW5lLXNldHVw
IGlzIGJ1aWx0IGZyb20gdGhlIG92aXJ0IGVuZ2luZSB3b3Jrc3BhY2UgYW5kICBJdCBzaG91bGQg
Y2FsbCB0aGUgbmV3IGludGVyZmFjZSAgcHJvcGVybHkuICBJIGFtIGNvbmZ1c2VkIHdoeSBlbmdp
bmUtc2V0dXAtLS0+aW5zdF9hZGRfaXNvX3N0b3JhZ2VfZG9tYWktLS0tPmluc2VydHN0b3JhZ2Vf
ZG9tYWluX3N0YXRpYyB3YXMgbm90IHVwZGF0ZWQgYmFzZWQgb24gdGhlIG5ldyBpbnRlcmZhY2Ug
bG9zaW5nIG9uZSBwYXJhbWV0ZXIuICBJcyB0aGF0IGEgYnVnIGluIHRoZSB3b3Jrc3BhY2UgaW50
cm9kdWNlZCBieSB0aGUgY29tbWl0PyANCgoNCg0KLS0tLS0g5Y6f5aeL6YKu5Lu2IC0tLS0tCuWP
keS7tuS6uu+8mkp1YW4gSGVybmFuZGV6IDxqaGVybmFuZEByZWRoYXQuY29tPgrmlLbku7bkurrv
vJpKdWFuIEhlcm5hbmRleiA8amhlcm5hbmRAcmVkaGF0LmNvbT4K5oqE6YCB5Lq677yaZW5naW5l
LWRldmVsQG92aXJ0Lm9yZwrkuLvpopjvvJpSZTogW0VuZ2luZS1kZXZlbF0gZnVuY3Rpb24gaW5z
ZXJ0c3RvcmFnZV9kb21haW5fc3RhdGljKHV1aWQsIC4uLikgZG9lcyBub3QgZXhpc3QK5pel5pyf
77yaMjAxM+W5tDAz5pyIMDfml6UgMjDngrkwMOWIhgoNCgpPbiAwMy8wNy8yMDEzIDEyOjQzIFBN
LCBCYXJhayBBenVsYXkgd3JvdGU6Cj4gU2h1LAo+Cj4gQSBmZXcgbm90ZXMuCj4KPiAxIC0geW91
IGFyZSB0cmluZyB0byBjcmVhdGUgaXNvIGRvbWFpbiBvbiAvCj4gICAgICAnc2VsZWN0ICAgKCdh
YjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUnLCAnSVNPX0RPTUFJTicsICdlYWQy
OTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1MGY3NTk0YTknLCAnbG9jYWxob3N0LmxvY2FsZG9tYWlu
Oi9JU08nLCAwLCAwKScKPiAyIC0geW91ciBob3N0IG5hbWUgaXMgbG9jYWxob3N0LmxvY2FsZG9t
YWluCj4KPiBCdXQgdGhvc2UgZG9lc24ndCBsb29rIGxpa2UgdGhlIHJlYWwgcHJvYmxlbSBoZXJl
Lgo+Cj4gSSBhc3N1bWUgeW91IGFyZSBydW5uaW5nIGl0IG9uIEYxOCA/Cj4KPiBDYW4gd2UgZ2V0
IHRoZSBmdWxsIGluc3RhbGxhdGlvbiBsb2c/Cj4KPiBUaGFua3MKPiBCYXJhawpDb21taXQgNWNh
MWVjMDMzN2Q5MjFmMTA1NzMyMWRhMjY4OGFkMmEwMTRiOGZmYiBhZGRlZCBhIHBhcmFtZXRlciB0
byB0aGUgCnN0b3JlZCBwcm9jZWR1cmUsIGJ1dCBlbmdpbmUtc2V0dXAgY2FsbHMgIGluc3RfYWRk
X2lzb19zdG9yYWdlX2RvbWFpbiAKKGluIGluc3Rfc3Auc3FsKSB3aGljaCBpbiB0dXJuIGNhbGxz
IGluc2VydHN0b3JhZ2VfZG9tYWluX3N0YXRpYywgYW5kIAp0aGF0IGNhbGwgaGFzbid0IGJlZW4g
dXBkYXRlZC4KPgo+Cj4KPgo+Cj4KPgo+IC0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0KPj4g
RnJvbTogIlNodSBNaW5nIiA8c2h1bWluZ0BsaW51eC52bmV0LmlibS5jb20+Cj4+IFRvOiBlbmdp
bmUtZGV2ZWxAb3ZpcnQub3JnLCAiRG9yb24gRmVkaXVjayIgPGRmZWRpdWNrQHJlZGhhdC5jb20+
Cj4+IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCA3LCAyMDEzIDc6Mzk6MjkgQU0KPj4gU3ViamVjdDog
UmU6IFtFbmdpbmUtZGV2ZWxdIGZ1bmN0aW9uIGluc2VydHN0b3JhZ2VfZG9tYWluX3N0YXRpYyh1
dWlkLCAuLi4pIGRvZXMgbm90IGV4aXN0Cj4+Cj4+Cj4+Cj4+IERvcm9uLAo+Pgo+PiBEbyB5b3Ug
Z2V0IGFueSBpZGVhIGFib3V0IGl0Pwo+Pgo+PiBzdGFydHVwXzAwMkBzaW5hLmNuIDoKPj4KPj4K
Pj4KPj4gSGksCj4+Cj4+IEkgYnVpbHQgdGhlIG9WaXJ0IGVuZ2luZSBSUE0gcGFja2FnZXMgZnJv
bSB0aGUgbGF0ZXN0IG9WaXJ0IGVuZ2luZQo+PiBzb3VyY2UgY29kZSBhbmQgc2V0dXAgYSB5dW0g
aW5zdGFsbGF0aW9uIHNlcnZlciB3aXRoIHRoZXNlIHBhY2thZ2VzLgo+PiBJIGNhbiBzdWNjZXNz
ZnVsbHkgaW5zdGFsbCB0aGUgUlBNIHBhY2thZ2VzIG9uIG15IG9WaXJ0IGVuZ2luZSB0ZXN0Cj4+
IHNlcnZlci4gQnV0IHdoZW4gdGhlICJlbmdpbmUtc2V0dXAiIGNvbW1hbmQgd2FzIHVzZWQgdG8g
c2V0dXAgdGhlCj4+IGVuZ2luZSBzZXZlciwgdGhlIGZvbGxvd2luZyBlcnJvcnMgd2VyZSBlbmNv
dW50ZXJlZCBmcm9tCj4+IGVuZ2luZS1zZXR1cCBsb2cuIEl0IHNlZW1zIHRoYXQgaW5zdF9hZGRf
aXNvX3N0b3JhZ2VfZG9tYWluIHdhcyBub3QKPj4gY3JlYXRlZCBwcm9wZXJseSBmb3IgcHNxbC4g
QW55IGNsdWUgdG8gdGhpcyBwcm9ibGVtPwo+Pgo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJV
Rzo6bmZzdXRpbHM6OjE5Mjo6cm9vdDo6IEdlbmVyYXRpbmcgdW5pcXVlCj4+IHV1aWQKPj4gMjAx
My0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NTAxOjpyb290OjogcnVubmlu
ZyBzcWwKPj4gcXVlcnkgJ3NlbGVjdCBpbnN0X2FkZF9pc29fc3RvcmFnZV9kb21haW4KPj4gKCdh
YjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUnLCAnSVNPX0RPTUFJTicsCj4+ICdl
YWQyOTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1MGY3NTk0YTknLAo+PiAnbG9jYWxob3N0LmxvY2Fs
ZG9tYWluOi9JU08nLCAwLCAwKScgb24gZGIgc2VydmVyOiAnbG9jYWxob3N0Jy4KPj4gMjAxMy0w
My0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDU0Ojpyb290OjogRXhlY3V0aW5n
Cj4+IGNvbW1hbmQgLS0+ICcvdXNyL2Jpbi9wc3FsIC1oIGxvY2FsaG9zdCAtcCA1NDMyIC1VIGVu
Z2luZSAtZCBlbmdpbmUKPj4gLWMgc2VsZWN0IGluc3RfYWRkX2lzb19zdG9yYWdlX2RvbWFpbgo+
PiAoJ2FiMjJiNDE5LTYzODEtNGYwYS04YjQ2LWFhNzJjODFlZGJiNScsICdJU09fRE9NQUlOJywK
Pj4gJ2VhZDI5MmVlLTE0ZGQtNDBmOS1iMDZiLWYyMjUwZjc1OTRhOScsCj4+ICdsb2NhbGhvc3Qu
bG9jYWxkb21haW46L0lTTycsIDAsIDApJyBpbiB3b3JraW5nIGRpcmVjdG9yeSAnL3Jvb3QnCj4+
IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5Mjo6cm9vdDo6IG91
dHB1dCA9Cj4+IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5Mzo6
cm9vdDo6IHN0ZGVyciA9IEVSUk9SOgo+PiBOVU06NDI4ODMsIERFVEFJTFM6ZnVuY3Rpb24gaW5z
ZXJ0c3RvcmFnZV9kb21haW5fc3RhdGljKHV1aWQsCj4+IGNoYXJhY3RlciB2YXJ5aW5nLCBjaGFy
YWN0ZXIgdmFyeWluZywgaW50ZWdlciwgaW50ZWdlciwgdW5rbm93biwKPj4gaW50ZWdlcikgZG9l
cyBub3QgZXhpc3QKPj4KPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGls
czo6NDk0Ojpyb290OjogcmV0Y29kZSA9IDEKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6RVJST1I6
OmVuZ2luZS1zZXR1cDo6MTgwOTo6cm9vdDo6IFRyYWNlYmFjawo+PiAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKPj4gRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBsaW5lIDE4MDQsIGluIF9jb25m
aWdOZnNTaGFyZQo+PiBfYWRkSXNvRG9tYWludG9EQihjb250cm9sbGVyLkNPTkZbInNkX3V1aWQi
XSwKPj4gY29udHJvbGxlci5DT05GWyJJU09fRE9NQUlOX05BTUUiXSkKPj4gRmlsZSAiL2Jpbi9l
bmdpbmUtc2V0dXAiLCBsaW5lIDE4NjAsIGluIF9hZGRJc29Eb21haW50b0RCCj4+IHV0aWxzLmV4
ZWNSZW1vdGVTcWxDb21tYW5kKGdldERiVXNlcigpLCBnZXREYkhvc3ROYW1lKCksIGdldERiUG9y
dCgpLAo+PiBiYXNlZGVmcy5EQl9OQU1FLCBzcWxRdWVyeSwgVHJ1ZSwKPj4gb3V0cHV0X21lc3Nh
Z2VzLkVSUl9GQUlMRURfSU5TRVJUX0lTT19ET01BSU4lKGJhc2VkZWZzLkRCX05BTUUpKQo+PiBG
aWxlICIvdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9zY3JpcHRzL2NvbW1vbl91dGlscy5weSIsIGxp
bmUgNTEwLCBpbgo+PiBleGVjUmVtb3RlU3FsQ29tbWFuZAo+PiByZXR1cm4gZXhlY0NtZChjbWRM
aXN0PWNtZCwgZmFpbE9uRXJyb3I9ZmFpbE9uRXJyb3IsIG1zZz1lcnJNc2csCj4+IGVudkRpY3Q9
Z2V0UGdFbnYoKSkKPj4gRmlsZSAiL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2NyaXB0cy9jb21t
b25fdXRpbHMucHkiLCBsaW5lIDQ5NywgaW4KPj4gZXhlY0NtZAo+PiByYWlzZSBFeGNlcHRpb24o
bXNnKQo+PiBFeGNlcHRpb246IEZhaWxlZCBpbnNlcnRpbmcgSVNPIGRvbWFpbiBpbnRvIGVuZ2lu
ZSBkYgo+Pgo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6c2V0dXBfc2VxdWVuY2VzOjo2
Mjo6cm9vdDo6IFRyYWNlYmFjawo+PiAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKPj4gRmlsZSAi
L3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2NyaXB0cy9zZXR1cF9zZXF1ZW5jZXMucHkiLCBsaW5l
IDYwLAo+PiBpbiBydW4KPj4gZnVuY3Rpb24oKQo+PiBGaWxlICIvYmluL2VuZ2luZS1zZXR1cCIs
IGxpbmUgMTgxMCwgaW4gX2NvbmZpZ05mc1NoYXJlCj4+IHJhaXNlIEV4Y2VwdGlvbihvdXRwdXRf
bWVzc2FnZXMuRVJSX0ZBSUxFRF9DRkdfTkZTX1NIQVJFKQo+PiBFeGNlcHRpb246IEZhaWxlZCB0
byBjb25maWd1cmUgTkZTIHNoYXJlIG9uIHRoaXMgaG9zdAo+Pgo+PiAyMDEzLTAzLTA1IDIwOjAy
OjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTkyOjpyb290OjogKioqIFRoZQo+PiBmb2xsb3dp
bmcgcGFyYW1zIHdlcmUgdXNlZCBhcyB1c2VyIGlucHV0Ogo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5
OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjoKPj4gb3ZlcnJpZGUtaHR0cGQtY29u
ZmlnOiB5ZXMKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5
Nzo6cm9vdDo6IGh0dHAtcG9ydDogODAKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVu
Z2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGh0dHBzLXBvcnQ6Cj4+IDQ0Mwo+PiAyMDEzLTAzLTA1
IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjoKPj4gcmFuZG9tLXBh
c3N3b3Jkczogbm8KPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6
MTk5Nzo6cm9vdDo6IG1hYy1yYW5nZToKPj4gMDA6MUE6NEE6QTg6MDE6MDAtMDA6MUE6NEE6QTg6
MDE6RkYKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6
cm9vdDo6IGhvc3QtZnFkbjoKPj4gbG9jYWxob3N0LmxvY2FsZG9tYWluCj4+IDIwMTMtMDMtMDUg
MjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBhdXRoLXBhc3M6Cj4+
ICoqKioqKioqCj4+IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5
OTc6OnJvb3Q6OiBvcmctbmFtZToKPj4gbG9jYWxkb21haW4KPj4gMjAxMy0wMy0wNSAyMDowMjox
OTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6Cj4+IGFwcGxpY2F0aW9uLW1vZGU6
IHZpcnQKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6
cm9vdDo6Cj4+IGRlZmF1bHQtZGMtdHlwZTogTkZTCj4+IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRF
QlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6Ogo+PiBkYi1yZW1vdGUtaW5zdGFsbDogbG9j
YWwKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9v
dDo6IGRiLWhvc3Q6Cj4+IGxvY2FsaG9zdAo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6
ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogZGItbG9jYWwtcGFzczoKPj4gKioqKioqKioKPj4g
MjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IG5m
cy1tcDogL0lTTwo+PiAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjox
OTk3Ojpyb290OjoKPj4gaXNvLWRvbWFpbi1uYW1lOiBJU09fRE9NQUlOCj4+IDIwMTMtMDMtMDUg
MjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBjb25maWctbmZzOgo+
PiB5ZXMKPj4gMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6
cm9vdDo6Cj4+IGZpcmV3YWxsLW1hbmFnZXI6IGlwdGFibGVzCj4+IDIwMTMtMDMtMDUgMjA6MDI6
MTk6OkVSUk9SOjplbmdpbmUtc2V0dXA6OjI0MTM6OnJvb3Q6OiBUcmFjZWJhY2sKPj4gKG1vc3Qg
cmVjZW50IGNhbGwgbGFzdCk6Cj4+IEZpbGUgIi9iaW4vZW5naW5lLXNldHVwIiwgbGluZSAyNDA3
LCBpbiA8bW9kdWxlPgo+PiBtYWluKGNvbmZGaWxlKQo+PiBGaWxlICIvYmluL2VuZ2luZS1zZXR1
cCIsIGxpbmUgMjE5MCwgaW4gbWFpbgo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwo+PiBFbmdpbmUtZGV2ZWwgbWFpbGluZyBsaXN0IEVuZ2lu
ZS1kZXZlbEBvdmlydC5vcmcKPj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL2VuZ2luZS1kZXZlbAo+Pgo+PiAtLQo+PiAtLS0KPj4g6IiS5piOIFNodSBNaW5nCj4+IE9w
ZW4gVmlydHVhbGl6YXRpb24gRW5naW5lZXJuaW5nOyBDU1RMLCBJQk0gQ29ycC4KPj4gVGVsOiA4
Ni0xMC04MjQ1MTYyNiAgVGllbGluZTogOTA1MTYyNiBFLW1haWw6IHNodW1pbmdAY24uaWJtLmNv
bSBvcgo+PiBzaHVtaW5nQGxpbnV4LnZuZXQuaWJtLmNvbSBBZGRyZXNzOiAzL0YgUmluZyBCdWls
ZGluZywgWmhvbmdHdWFuQ3VuCj4+IFNvZnR3YXJlIFBhcmssIEhhaWRpYW4gRGlzdHJpY3QsIEJl
aWppbmcgMTAwMTkzLCBQUkMKPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KPj4gRW5naW5lLWRldmVsIG1haWxpbmcgbGlzdAo+PiBFbmdpbmUtZGV2ZWxA
b3ZpcnQub3JnCj4+IGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby9lbmdp
bmUtZGV2ZWwKPj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwo+IEVuZ2luZS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBFbmdpbmUtZGV2ZWxAb3ZpcnQub3Jn
Cj4gaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VuZ2luZS1kZXZlbAo+
Ci0tIApEaXJlY2Npw7NuIENvbWVyY2lhbDogQy9Kb3NlIEJhcmRhc2FubyBCYW9zLCA5LCBFZGlm
LiBHb3JiZWEgMywgcGxhbnRhIAozwrpELCAyODAxNiBNYWRyaWQsIFNwYWluCkluc2NyaXRhIGVu
IGVsIFJlZy4gTWVyY2FudGlsIGRlIE1hZHJpZCDigJMgQy5JLkYuIEI4MjY1Nzk0MSAtIFJlZCBI
YXQgUy5MLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpF
bmdpbmUtZGV2ZWwgbWFpbGluZyBsaXN0CkVuZ2luZS1kZXZlbEBvdmlydC5vcmcKaHR0cDovL2xp
c3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VuZ2luZS1kZXZlbAo=
--=-sinamail_alt_e6b3693f89c9291c9a8f11a12eaf9d51
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: inline
PGRpdj4mbmJzcDtKdWFuLDxicj48YnI+VGhhbmtzIGZvciB5b3VyIGFuc3dlci4mbmJzcDsgQ2Fu
IHlvdSBwcm92aWRlIG1vcmUgZGV0YWlscyBvbiBob3cgSSBjYW4gZml4IHRoaXMgcHJvYmxlbT8m
bmJzcDsgSSB0aGluayBlbmdpbmUtc2V0dXAgaXMgYnVpbHQgZnJvbSB0aGUgb3ZpcnQgZW5naW5l
IHdvcmtzcGFjZSBhbmQmbmJzcDsgSXQgc2hvdWxkIGNhbGwgdGhlIG5ldyBpbnRlcmZhY2UmbmJz
cDsgcHJvcGVybHkuJm5ic3A7IEkgYW0gY29uZnVzZWQgd2h5IGVuZ2luZS1zZXR1cC0tLSZndDtp
bnN0X2FkZF9pc29fc3RvcmFnZV9kb21haS0tLS0mZ3Q7aW5zZXJ0c3RvcmFnZV9kb21haW5fc3Rh
dGljIHdhcyBub3QgdXBkYXRlZCBiYXNlZCBvbiB0aGUgbmV3IGludGVyZmFjZSBsb3Npbmcgb25l
IHBhcmFtZXRlci4mbmJzcDsgSXMgdGhhdCBhIGJ1ZyBpbiB0aGUgd29ya3NwYWNlIGludHJvZHVj
ZWQgYnkgdGhlIGNvbW1pdD8gPC9kaXY+DQo8YnI+DQo8ZGl2IGlkPSJvcmlnYm9keSI+DQo8ZGl2
IHN0eWxlPSJiYWNrZ3JvdW5kOiAjZjJmMmYyOyI+LS0tLS0g5Y6f5aeL6YKu5Lu2IC0tLS0tPGJy
PuWPkeS7tuS6uu+8mkp1YW4gSGVybmFuZGV6ICZsdDtqaGVybmFuZEByZWRoYXQuY29tJmd0Ozxi
cj7mlLbku7bkurrvvJpKdWFuIEhlcm5hbmRleiAmbHQ7amhlcm5hbmRAcmVkaGF0LmNvbSZndDs8
YnI+5oqE6YCB5Lq677yaZW5naW5lLWRldmVsQG92aXJ0Lm9yZzxicj7kuLvpopjvvJpSZTogW0Vu
Z2luZS1kZXZlbF0gZnVuY3Rpb24gaW5zZXJ0c3RvcmFnZV9kb21haW5fc3RhdGljKHV1aWQsIC4u
LikgZG9lcyBub3QgZXhpc3Q8YnI+5pel5pyf77yaMjAxM+W5tDAz5pyIMDfml6UgMjDngrkwMOWI
hjxicj48L2Rpdj4NCjxicj5PbiAwMy8wNy8yMDEzIDEyOjQzIFBNLCBCYXJhayBBenVsYXkgd3Jv
dGU6PGJyPiZndDsgU2h1LDxicj4mZ3Q7PGJyPiZndDsgQSBmZXcgbm90ZXMuPGJyPiZndDs8YnI+
Jmd0OyAxIC0geW91IGFyZSB0cmluZyB0byBjcmVhdGUgaXNvIGRvbWFpbiBvbiAvPGJyPiZndDsg
ICAgICAnc2VsZWN0ICAgKCdhYjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUnLCAn
SVNPX0RPTUFJTicsICdlYWQyOTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1MGY3NTk0YTknLCAnbG9j
YWxob3N0LmxvY2FsZG9tYWluOi9JU08nLCAwLCAwKSc8YnI+Jmd0OyAyIC0geW91ciBob3N0IG5h
bWUgaXMgbG9jYWxob3N0LmxvY2FsZG9tYWluPGJyPiZndDs8YnI+Jmd0OyBCdXQgdGhvc2UgZG9l
c24ndCBsb29rIGxpa2UgdGhlIHJlYWwgcHJvYmxlbSBoZXJlLjxicj4mZ3Q7PGJyPiZndDsgSSBh
c3N1bWUgeW91IGFyZSBydW5uaW5nIGl0IG9uIEYxOCA/PGJyPiZndDs8YnI+Jmd0OyBDYW4gd2Ug
Z2V0IHRoZSBmdWxsIGluc3RhbGxhdGlvbiBsb2c/PGJyPiZndDs8YnI+Jmd0OyBUaGFua3M8YnI+
Jmd0OyBCYXJhazxicj5Db21taXQgNWNhMWVjMDMzN2Q5MjFmMTA1NzMyMWRhMjY4OGFkMmEwMTRi
OGZmYiBhZGRlZCBhIHBhcmFtZXRlciB0byB0aGUgPGJyPnN0b3JlZCBwcm9jZWR1cmUsIGJ1dCBl
bmdpbmUtc2V0dXAgY2FsbHMgIGluc3RfYWRkX2lzb19zdG9yYWdlX2RvbWFpbiA8YnI+KGluIGlu
c3Rfc3Auc3FsKSB3aGljaCBpbiB0dXJuIGNhbGxzIGluc2VydHN0b3JhZ2VfZG9tYWluX3N0YXRp
YywgYW5kIDxicj50aGF0IGNhbGwgaGFzbid0IGJlZW4gdXBkYXRlZC48YnI+Jmd0Ozxicj4mZ3Q7
PGJyPiZndDs8YnI+Jmd0Ozxicj4mZ3Q7PGJyPiZndDs8YnI+Jmd0Ozxicj4mZ3Q7IC0tLS0tIE9y
aWdpbmFsIE1lc3NhZ2UgLS0tLS08YnI+Jmd0OyZndDsgRnJvbTogIlNodSBNaW5nIiAmbHQ7c2h1
bWluZ0BsaW51eC52bmV0LmlibS5jb20mZ3Q7PGJyPiZndDsmZ3Q7IFRvOiBlbmdpbmUtZGV2ZWxA
b3ZpcnQub3JnLCAiRG9yb24gRmVkaXVjayIgJmx0O2RmZWRpdWNrQHJlZGhhdC5jb20mZ3Q7PGJy
PiZndDsmZ3Q7IFNlbnQ6IFRodXJzZGF5LCBNYXJjaCA3LCAyMDEzIDc6Mzk6MjkgQU08YnI+Jmd0
OyZndDsgU3ViamVjdDogUmU6IFtFbmdpbmUtZGV2ZWxdIGZ1bmN0aW9uIGluc2VydHN0b3JhZ2Vf
ZG9tYWluX3N0YXRpYyh1dWlkLCAuLi4pIGRvZXMgbm90IGV4aXN0PGJyPiZndDsmZ3Q7PGJyPiZn
dDsmZ3Q7PGJyPiZndDsmZ3Q7PGJyPiZndDsmZ3Q7IERvcm9uLDxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7
Jmd0OyBEbyB5b3UgZ2V0IGFueSBpZGVhIGFib3V0IGl0Pzxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0
OyBzdGFydHVwXzAwMkBzaW5hLmNuIDo8YnI+Jmd0OyZndDs8YnI+Jmd0OyZndDs8YnI+Jmd0OyZn
dDs8YnI+Jmd0OyZndDsgSGksPGJyPiZndDsmZ3Q7PGJyPiZndDsmZ3Q7IEkgYnVpbHQgdGhlIG9W
aXJ0IGVuZ2luZSBSUE0gcGFja2FnZXMgZnJvbSB0aGUgbGF0ZXN0IG9WaXJ0IGVuZ2luZTxicj4m
Z3Q7Jmd0OyBzb3VyY2UgY29kZSBhbmQgc2V0dXAgYSB5dW0gaW5zdGFsbGF0aW9uIHNlcnZlciB3
aXRoIHRoZXNlIHBhY2thZ2VzLjxicj4mZ3Q7Jmd0OyBJIGNhbiBzdWNjZXNzZnVsbHkgaW5zdGFs
bCB0aGUgUlBNIHBhY2thZ2VzIG9uIG15IG9WaXJ0IGVuZ2luZSB0ZXN0PGJyPiZndDsmZ3Q7IHNl
cnZlci4gQnV0IHdoZW4gdGhlICJlbmdpbmUtc2V0dXAiIGNvbW1hbmQgd2FzIHVzZWQgdG8gc2V0
dXAgdGhlPGJyPiZndDsmZ3Q7IGVuZ2luZSBzZXZlciwgdGhlIGZvbGxvd2luZyBlcnJvcnMgd2Vy
ZSBlbmNvdW50ZXJlZCBmcm9tPGJyPiZndDsmZ3Q7IGVuZ2luZS1zZXR1cCBsb2cuIEl0IHNlZW1z
IHRoYXQgaW5zdF9hZGRfaXNvX3N0b3JhZ2VfZG9tYWluIHdhcyBub3Q8YnI+Jmd0OyZndDsgY3Jl
YXRlZCBwcm9wZXJseSBmb3IgcHNxbC4gQW55IGNsdWUgdG8gdGhpcyBwcm9ibGVtPzxicj4mZ3Q7
Jmd0Ozxicj4mZ3Q7Jmd0OyAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6bmZzdXRpbHM6OjE5
Mjo6cm9vdDo6IEdlbmVyYXRpbmcgdW5pcXVlPGJyPiZndDsmZ3Q7IHV1aWQ8YnI+Jmd0OyZndDsg
MjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NTAxOjpyb290OjogcnVu
bmluZyBzcWw8YnI+Jmd0OyZndDsgcXVlcnkgJ3NlbGVjdCBpbnN0X2FkZF9pc29fc3RvcmFnZV9k
b21haW48YnI+Jmd0OyZndDsgKCdhYjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUn
LCAnSVNPX0RPTUFJTicsPGJyPiZndDsmZ3Q7ICdlYWQyOTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1
MGY3NTk0YTknLDxicj4mZ3Q7Jmd0OyAnbG9jYWxob3N0LmxvY2FsZG9tYWluOi9JU08nLCAwLCAw
KScgb24gZGIgc2VydmVyOiAnbG9jYWxob3N0Jy48YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDow
MjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDU0Ojpyb290OjogRXhlY3V0aW5nPGJyPiZndDsm
Z3Q7IGNvbW1hbmQgLS0mZ3Q7ICcvdXNyL2Jpbi9wc3FsIC1oIGxvY2FsaG9zdCAtcCA1NDMyIC1V
IGVuZ2luZSAtZCBlbmdpbmU8YnI+Jmd0OyZndDsgLWMgc2VsZWN0IGluc3RfYWRkX2lzb19zdG9y
YWdlX2RvbWFpbjxicj4mZ3Q7Jmd0OyAoJ2FiMjJiNDE5LTYzODEtNGYwYS04YjQ2LWFhNzJjODFl
ZGJiNScsICdJU09fRE9NQUlOJyw8YnI+Jmd0OyZndDsgJ2VhZDI5MmVlLTE0ZGQtNDBmOS1iMDZi
LWYyMjUwZjc1OTRhOScsPGJyPiZndDsmZ3Q7ICdsb2NhbGhvc3QubG9jYWxkb21haW46L0lTTycs
IDAsIDApJyBpbiB3b3JraW5nIGRpcmVjdG9yeSAnL3Jvb3QnPGJyPiZndDsmZ3Q7IDIwMTMtMDMt
MDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5Mjo6cm9vdDo6IG91dHB1dCA9PGJy
PiZndDsmZ3Q7IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5Mzo6
cm9vdDo6IHN0ZGVyciA9IEVSUk9SOjxicj4mZ3Q7Jmd0OyBOVU06NDI4ODMsIERFVEFJTFM6ZnVu
Y3Rpb24gaW5zZXJ0c3RvcmFnZV9kb21haW5fc3RhdGljKHV1aWQsPGJyPiZndDsmZ3Q7IGNoYXJh
Y3RlciB2YXJ5aW5nLCBjaGFyYWN0ZXIgdmFyeWluZywgaW50ZWdlciwgaW50ZWdlciwgdW5rbm93
biw8YnI+Jmd0OyZndDsgaW50ZWdlcikgZG9lcyBub3QgZXhpc3Q8YnI+Jmd0OyZndDs8YnI+Jmd0
OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDk0Ojpyb290
OjogcmV0Y29kZSA9IDE8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6RVJST1I6OmVu
Z2luZS1zZXR1cDo6MTgwOTo6cm9vdDo6IFRyYWNlYmFjazxicj4mZ3Q7Jmd0OyAobW9zdCByZWNl
bnQgY2FsbCBsYXN0KTo8YnI+Jmd0OyZndDsgRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBsaW5l
IDE4MDQsIGluIF9jb25maWdOZnNTaGFyZTxicj4mZ3Q7Jmd0OyBfYWRkSXNvRG9tYWludG9EQihj
b250cm9sbGVyLkNPTkZbInNkX3V1aWQiXSw8YnI+Jmd0OyZndDsgY29udHJvbGxlci5DT05GWyJJ
U09fRE9NQUlOX05BTUUiXSk8YnI+Jmd0OyZndDsgRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBs
aW5lIDE4NjAsIGluIF9hZGRJc29Eb21haW50b0RCPGJyPiZndDsmZ3Q7IHV0aWxzLmV4ZWNSZW1v
dGVTcWxDb21tYW5kKGdldERiVXNlcigpLCBnZXREYkhvc3ROYW1lKCksIGdldERiUG9ydCgpLDxi
cj4mZ3Q7Jmd0OyBiYXNlZGVmcy5EQl9OQU1FLCBzcWxRdWVyeSwgVHJ1ZSw8YnI+Jmd0OyZndDsg
b3V0cHV0X21lc3NhZ2VzLkVSUl9GQUlMRURfSU5TRVJUX0lTT19ET01BSU4lKGJhc2VkZWZzLkRC
X05BTUUpKTxicj4mZ3Q7Jmd0OyBGaWxlICIvdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9zY3JpcHRz
L2NvbW1vbl91dGlscy5weSIsIGxpbmUgNTEwLCBpbjxicj4mZ3Q7Jmd0OyBleGVjUmVtb3RlU3Fs
Q29tbWFuZDxicj4mZ3Q7Jmd0OyByZXR1cm4gZXhlY0NtZChjbWRMaXN0PWNtZCwgZmFpbE9uRXJy
b3I9ZmFpbE9uRXJyb3IsIG1zZz1lcnJNc2csPGJyPiZndDsmZ3Q7IGVudkRpY3Q9Z2V0UGdFbnYo
KSk8YnI+Jmd0OyZndDsgRmlsZSAiL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2NyaXB0cy9jb21t
b25fdXRpbHMucHkiLCBsaW5lIDQ5NywgaW48YnI+Jmd0OyZndDsgZXhlY0NtZDxicj4mZ3Q7Jmd0
OyByYWlzZSBFeGNlcHRpb24obXNnKTxicj4mZ3Q7Jmd0OyBFeGNlcHRpb246IEZhaWxlZCBpbnNl
cnRpbmcgSVNPIGRvbWFpbiBpbnRvIGVuZ2luZSBkYjxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyAy
MDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6c2V0dXBfc2VxdWVuY2VzOjo2Mjo6cm9vdDo6IFRy
YWNlYmFjazxicj4mZ3Q7Jmd0OyAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTo8YnI+Jmd0OyZndDsg
RmlsZSAiL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2NyaXB0cy9zZXR1cF9zZXF1ZW5jZXMucHki
LCBsaW5lIDYwLDxicj4mZ3Q7Jmd0OyBpbiBydW48YnI+Jmd0OyZndDsgZnVuY3Rpb24oKTxicj4m
Z3Q7Jmd0OyBGaWxlICIvYmluL2VuZ2luZS1zZXR1cCIsIGxpbmUgMTgxMCwgaW4gX2NvbmZpZ05m
c1NoYXJlPGJyPiZndDsmZ3Q7IHJhaXNlIEV4Y2VwdGlvbihvdXRwdXRfbWVzc2FnZXMuRVJSX0ZB
SUxFRF9DRkdfTkZTX1NIQVJFKTxicj4mZ3Q7Jmd0OyBFeGNlcHRpb246IEZhaWxlZCB0byBjb25m
aWd1cmUgTkZTIHNoYXJlIG9uIHRoaXMgaG9zdDxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyAyMDEz
LTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTkyOjpyb290OjogKioqIFRo
ZTxicj4mZ3Q7Jmd0OyBmb2xsb3dpbmcgcGFyYW1zIHdlcmUgdXNlZCBhcyB1c2VyIGlucHV0Ojxi
cj4mZ3Q7Jmd0OyAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3
Ojpyb290Ojo8YnI+Jmd0OyZndDsgb3ZlcnJpZGUtaHR0cGQtY29uZmlnOiB5ZXM8YnI+Jmd0OyZn
dDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6
IGh0dHAtcG9ydDogODA8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVu
Z2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGh0dHBzLXBvcnQ6PGJyPiZndDsmZ3Q7IDQ0Mzxicj4m
Z3Q7Jmd0OyAyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpy
b290Ojo8YnI+Jmd0OyZndDsgcmFuZG9tLXBhc3N3b3Jkczogbm88YnI+Jmd0OyZndDsgMjAxMy0w
My0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IG1hYy1yYW5n
ZTo8YnI+Jmd0OyZndDsgMDA6MUE6NEE6QTg6MDE6MDAtMDA6MUE6NEE6QTg6MDE6RkY8YnI+Jmd0
OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9v
dDo6IGhvc3QtZnFkbjo8YnI+Jmd0OyZndDsgbG9jYWxob3N0LmxvY2FsZG9tYWluPGJyPiZndDsm
Z3Q7IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6
OiBhdXRoLXBhc3M6PGJyPiZndDsmZ3Q7ICoqKioqKioqPGJyPiZndDsmZ3Q7IDIwMTMtMDMtMDUg
MjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBvcmctbmFtZTo8YnI+
Jmd0OyZndDsgbG9jYWxkb21haW48YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVC
VUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6PGJyPiZndDsmZ3Q7IGFwcGxpY2F0aW9uLW1v
ZGU6IHZpcnQ8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1z
ZXR1cDo6MTk5Nzo6cm9vdDo6PGJyPiZndDsmZ3Q7IGRlZmF1bHQtZGMtdHlwZTogTkZTPGJyPiZn
dDsmZ3Q7IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJv
b3Q6Ojxicj4mZ3Q7Jmd0OyBkYi1yZW1vdGUtaW5zdGFsbDogbG9jYWw8YnI+Jmd0OyZndDsgMjAx
My0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGRiLWhv
c3Q6PGJyPiZndDsmZ3Q7IGxvY2FsaG9zdDxicj4mZ3Q7Jmd0OyAyMDEzLTAzLTA1IDIwOjAyOjE5
OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogZGItbG9jYWwtcGFzczo8YnI+Jmd0
OyZndDsgKioqKioqKio8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVu
Z2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IG5mcy1tcDogL0lTTzxicj4mZ3Q7Jmd0OyAyMDEzLTAz
LTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290Ojo8YnI+Jmd0OyZn
dDsgaXNvLWRvbWFpbi1uYW1lOiBJU09fRE9NQUlOPGJyPiZndDsmZ3Q7IDIwMTMtMDMtMDUgMjA6
MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBjb25maWctbmZzOjxicj4m
Z3Q7Jmd0OyB5ZXM8YnI+Jmd0OyZndDsgMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2lu
ZS1zZXR1cDo6MTk5Nzo6cm9vdDo6PGJyPiZndDsmZ3Q7IGZpcmV3YWxsLW1hbmFnZXI6IGlwdGFi
bGVzPGJyPiZndDsmZ3Q7IDIwMTMtMDMtMDUgMjA6MDI6MTk6OkVSUk9SOjplbmdpbmUtc2V0dXA6
OjI0MTM6OnJvb3Q6OiBUcmFjZWJhY2s8YnI+Jmd0OyZndDsgKG1vc3QgcmVjZW50IGNhbGwgbGFz
dCk6PGJyPiZndDsmZ3Q7IEZpbGUgIi9iaW4vZW5naW5lLXNldHVwIiwgbGluZSAyNDA3LCBpbiAm
bHQ7bW9kdWxlJmd0Ozxicj4mZ3Q7Jmd0OyBtYWluKGNvbmZGaWxlKTxicj4mZ3Q7Jmd0OyBGaWxl
ICIvYmluL2VuZ2luZS1zZXR1cCIsIGxpbmUgMjE5MCwgaW4gbWFpbjxicj4mZ3Q7Jmd0Ozxicj4m
Z3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXzxicj4mZ3Q7Jmd0OyBFbmdpbmUtZGV2ZWwgbWFpbGluZyBsaXN0IEVuZ2luZS1k
ZXZlbEBvdmlydC5vcmc8YnI+Jmd0OyZndDsgaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFu
L2xpc3RpbmZvL2VuZ2luZS1kZXZlbDxicj4mZ3Q7Jmd0Ozxicj4mZ3Q7Jmd0OyAtLTxicj4mZ3Q7
Jmd0OyAtLS08YnI+Jmd0OyZndDsg6IiS5piOIFNodSBNaW5nPGJyPiZndDsmZ3Q7IE9wZW4gVmly
dHVhbGl6YXRpb24gRW5naW5lZXJuaW5nOyBDU1RMLCBJQk0gQ29ycC48YnI+Jmd0OyZndDsgVGVs
OiA4Ni0xMC04MjQ1MTYyNiAgVGllbGluZTogOTA1MTYyNiBFLW1haWw6IHNodW1pbmdAY24uaWJt
LmNvbSBvcjxicj4mZ3Q7Jmd0OyBzaHVtaW5nQGxpbnV4LnZuZXQuaWJtLmNvbSBBZGRyZXNzOiAz
L0YgUmluZyBCdWlsZGluZywgWmhvbmdHdWFuQ3VuPGJyPiZndDsmZ3Q7IFNvZnR3YXJlIFBhcmss
IEhhaWRpYW4gRGlzdHJpY3QsIEJlaWppbmcgMTAwMTkzLCBQUkM8YnI+Jmd0OyZndDsgX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+Jmd0OyZndDsgRW5n
aW5lLWRldmVsIG1haWxpbmcgbGlzdDxicj4mZ3Q7Jmd0OyBFbmdpbmUtZGV2ZWxAb3ZpcnQub3Jn
PGJyPiZndDsmZ3Q7IGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby9lbmdp
bmUtZGV2ZWw8YnI+Jmd0OyZndDs8YnI+Jmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXzxicj4mZ3Q7IEVuZ2luZS1kZXZlbCBtYWlsaW5nIGxpc3Q8YnI+
Jmd0OyBFbmdpbmUtZGV2ZWxAb3ZpcnQub3JnPGJyPiZndDsgaHR0cDovL2xpc3RzLm92aXJ0Lm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL2VuZ2luZS1kZXZlbDxicj4mZ3Q7PGJyPi0tIDxicj5EaXJlY2Np
w7NuIENvbWVyY2lhbDogQy9Kb3NlIEJhcmRhc2FubyBCYW9zLCA5LCBFZGlmLiBHb3JiZWEgMywg
cGxhbnRhIDxicj4zwrpELCAyODAxNiBNYWRyaWQsIFNwYWluPGJyPkluc2NyaXRhIGVuIGVsIFJl
Zy4gTWVyY2FudGlsIGRlIE1hZHJpZCDigJMgQy5JLkYuIEI4MjY1Nzk0MSAtIFJlZCBIYXQgUy5M
Ljxicj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzxicj5F
bmdpbmUtZGV2ZWwgbWFpbGluZyBsaXN0PGJyPkVuZ2luZS1kZXZlbEBvdmlydC5vcmc8YnI+aHR0
cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VuZ2luZS1kZXZlbDxicj48L2Rp
dj4=
--=-sinamail_alt_e6b3693f89c9291c9a8f11a12eaf9d51--
3
4
Hi Christopher,
In general SDK abstracts the transport layer, therefore all authentication
internals hidden from the user,
i.e SESSION based authentication happens implicitly (by default), when you
initiate SDK entry point,
the story is different if you want using SSO-like login by reusing JSESSIONID
from the REST-API for instance, and i can support such scenario,
but, is this your case?
On 02/28/2013 10:04 PM, Morrissey, Christopher wrote:
> Hi Michael,
>
> I'm looking to use the oVirt java sdk for connecting into oVirt from our server. However,
> we have a UI plugin that gets access to a session ID that we should be able to use to connect through
> the REST API instead of the username and password. Any chance the sdk could be updated to take the session
> ID and create a connection vs. a user name and password?
>
> -Chris
>
> Chris Morrissey
> Software Engineer
> NetApp Inc.
> 919.476.4428
>
>
--
Michael Pasternak
RedHat, ENG-Virtualization R&D
2
4
07 Mar '13
fyi,
Starting from yesterday (4/3/13) jenkins.ovirt.org [1] has migrated to a new hosting server provided by alterway [2].
the new server has a new ui look that is similar to ovirt.org and is running on stronger infra then the previous one.
All jobs and configuration have migrated from the old instance,
but if you're still missing a certain job or permissions please contact infra team at infra(a)ovirt.org.
I want to thank David caro from the infra team in helping with the migration and einav cohen from the
ovirt frontend developer community for helping with the new css for jenkins.
[1] http://jenkins.ovirt.org/
[2] http://www.ovirt.org/Sponsors_and_supporters
Eyal Edri
oVirt infra team.
3
5
Hi,
Using latest VDSM source, I see make rpm failing bunch on tests.
Running with 'NOSE_EXCLUDE=.*' I see the following error -
----------------------------------------------------------------------
Ran 0 tests in 0.081s
OK
make[4]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3/tests'
make[3]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3/tests'
make[2]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3/tests'
Making check in vdsm-tool
make[2]: Entering directory `/root/rpmbuild/BUILD/vdsm-4.10.3/vdsm-tool'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3/vdsm-tool'
Making check in vdsm_api
make[2]: Entering directory `/root/rpmbuild/BUILD/vdsm-4.10.3/vdsm_api'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3/vdsm_api'
Making check in yajsonrpc
make[2]: Entering directory `/root/rpmbuild/BUILD/vdsm-4.10.3/yajsonrpc'
make[2]: Nothing to be done for `check'.
make[2]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3/yajsonrpc'
make[2]: Entering directory `/root/rpmbuild/BUILD/vdsm-4.10.3'
make check-local
make[3]: Entering directory `/root/rpmbuild/BUILD/vdsm-4.10.3'
find . -path './.git' -prune -type f -o \
-name '*.py' -o -name '*.py.in' | xargs /usr/bin/pyflakes
./vdsm/storage/lvm.py:608: list comprehension redefines 'lv' from line 603
make[3]: *** [check-local] Error 123
make[3]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/root/rpmbuild/BUILD/vdsm-4.10.3'
error: Bad exit status from /var/tmp/rpm-tmp.pay1sz (%check)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.pay1sz (%check)
make: *** [rpm] Error 1
3
4
[Engine-devel] function insertstorage_domain_static(uuid, ...) does not exist
by startup_002@sina.cn 07 Mar '13
by startup_002@sina.cn 07 Mar '13
07 Mar '13
--=-sinamail_alt_7c08646e5c92caeacc9059d14e021d50
Content-Type: text/plain;
charset=GBK
Content-Transfer-Encoding: base64
Content-Disposition: inline
IEhpLAoKSSBidWlsdCB0aGUgb1ZpcnQgZW5naW5lIFJQTSBwYWNrYWdlcyBmcm9tIHRoZSBsYXRl
c3Qgb1ZpcnQgZW5naW5lIHNvdXJjZSBjb2RlIGFuZCBzZXR1cCBhIHl1bSBpbnN0YWxsYXRpb24g
c2VydmVyIHdpdGggdGhlc2UgcGFja2FnZXMuICBJIGNhbiBzdWNjZXNzZnVsbHkgaW5zdGFsbCB0
aGUgUlBNIHBhY2thZ2VzIG9uIG15IG9WaXJ0IGVuZ2luZSB0ZXN0IHNlcnZlci4gIEJ1dCB3aGVu
IHRoZSAiZW5naW5lLXNldHVwIiBjb21tYW5kIHdhcyB1c2VkIHRvIHNldHVwIHRoZSBlbmdpbmUg
c2V2ZXIsIHRoZSBmb2xsb3dpbmcgZXJyb3JzIHdlcmUgZW5jb3VudGVyZWQgZnJvbSBlbmdpbmUt
c2V0dXAgbG9nLiAgSXQgc2VlbXMgdGhhdCBpbnN0X2FkZF9pc29fc3RvcmFnZV9kb21haW4gd2Fz
IG5vdCBjcmVhdGVkIHByb3Blcmx5IGZvciBwc3FsLiAgQW55IGNsdWUgdG8gdGhpcyBwcm9ibGVt
PwoKMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6Om5mc3V0aWxzOjoxOTI6OnJvb3Q6OiBHZW5l
cmF0aW5nIHVuaXF1ZSB1dWlkCjIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRp
bHM6OjUwMTo6cm9vdDo6IHJ1bm5pbmcgc3FsIHF1ZXJ5ICdzZWxlY3QgaW5zdF9hZGRfaXNvX3N0
b3JhZ2VfZG9tYWluICgnYWIyMmI0MTktNjM4MS00ZjBhLThiNDYtYWE3MmM4MWVkYmI1JywgJ0lT
T19ET01BSU4nLCAnZWFkMjkyZWUtMTRkZC00MGY5LWIwNmItZjIyNTBmNzU5NGE5JywgJ2xvY2Fs
aG9zdC5sb2NhbGRvbWFpbjovSVNPJywgMCwgMCknIG9uIGRiIHNlcnZlcjogJ2xvY2FsaG9zdCcu
CjIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ1NDo6cm9vdDo6IEV4
ZWN1dGluZyBjb21tYW5kIC0tPiAnL3Vzci9iaW4vcHNxbCAtaCBsb2NhbGhvc3QgLXAgNTQzMiAt
VSBlbmdpbmUgLWQgZW5naW5lIC1jIHNlbGVjdCBpbnN0X2FkZF9pc29fc3RvcmFnZV9kb21haW4g
KCdhYjIyYjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUnLCAnSVNPX0RPTUFJTicsICdl
YWQyOTJlZS0xNGRkLTQwZjktYjA2Yi1mMjI1MGY3NTk0YTknLCAnbG9jYWxob3N0LmxvY2FsZG9t
YWluOi9JU08nLCAwLCAwKScgaW4gd29ya2luZyBkaXJlY3RvcnkgJy9yb290JwoyMDEzLTAzLTA1
IDIwOjAyOjE5OjpERUJVRzo6Y29tbW9uX3V0aWxzOjo0OTI6OnJvb3Q6OiBvdXRwdXQgPSAKMjAx
My0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDkzOjpyb290Ojogc3RkZXJy
ID0gRVJST1I6ICBOVU06NDI4ODMsIERFVEFJTFM6ZnVuY3Rpb24gaW5zZXJ0c3RvcmFnZV9kb21h
aW5fc3RhdGljKHV1aWQsIGNoYXJhY3RlciB2YXJ5aW5nLCBjaGFyYWN0ZXIgdmFyeWluZywgaW50
ZWdlciwgaW50ZWdlciwgdW5rbm93biwgaW50ZWdlcikgZG9lcyBub3QgZXhpc3QKCjIwMTMtMDMt
MDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ5NDo6cm9vdDo6IHJldGNvZGUgPSAx
CjIwMTMtMDMtMDUgMjA6MDI6MTk6OkVSUk9SOjplbmdpbmUtc2V0dXA6OjE4MDk6OnJvb3Q6OiBU
cmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2Jpbi9lbmdpbmUtc2V0
dXAiLCBsaW5lIDE4MDQsIGluIF9jb25maWdOZnNTaGFyZQogICAgX2FkZElzb0RvbWFpbnRvREIo
Y29udHJvbGxlci5DT05GWyJzZF91dWlkIl0sIGNvbnRyb2xsZXIuQ09ORlsiSVNPX0RPTUFJTl9O
QU1FIl0pCiAgRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBsaW5lIDE4NjAsIGluIF9hZGRJc29E
b21haW50b0RCCiAgICB1dGlscy5leGVjUmVtb3RlU3FsQ29tbWFuZChnZXREYlVzZXIoKSwgZ2V0
RGJIb3N0TmFtZSgpLCBnZXREYlBvcnQoKSwgYmFzZWRlZnMuREJfTkFNRSwgc3FsUXVlcnksIFRy
dWUsIG91dHB1dF9tZXNzYWdlcy5FUlJfRkFJTEVEX0lOU0VSVF9JU09fRE9NQUlOJShiYXNlZGVm
cy5EQl9OQU1FKSkKICBGaWxlICIvdXNyL3NoYXJlL292aXJ0LWVuZ2luZS9zY3JpcHRzL2NvbW1v
bl91dGlscy5weSIsIGxpbmUgNTEwLCBpbiBleGVjUmVtb3RlU3FsQ29tbWFuZAogICAgcmV0dXJu
IGV4ZWNDbWQoY21kTGlzdD1jbWQsIGZhaWxPbkVycm9yPWZhaWxPbkVycm9yLCBtc2c9ZXJyTXNn
LCBlbnZEaWN0PWdldFBnRW52KCkpCiAgRmlsZSAiL3Vzci9zaGFyZS9vdmlydC1lbmdpbmUvc2Ny
aXB0cy9jb21tb25fdXRpbHMucHkiLCBsaW5lIDQ5NywgaW4gZXhlY0NtZAogICAgcmFpc2UgRXhj
ZXB0aW9uKG1zZykKRXhjZXB0aW9uOiBGYWlsZWQgaW5zZXJ0aW5nIElTTyBkb21haW4gaW50byBl
bmdpbmUgZGIKCjIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpzZXR1cF9zZXF1ZW5jZXM6OjYy
Ojpyb290OjogVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIi91c3Iv
c2hhcmUvb3ZpcnQtZW5naW5lL3NjcmlwdHMvc2V0dXBfc2VxdWVuY2VzLnB5IiwgbGluZSA2MCwg
aW4gcnVuCiAgICBmdW5jdGlvbigpCiAgRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBsaW5lIDE4
MTAsIGluIF9jb25maWdOZnNTaGFyZQogICAgcmFpc2UgRXhjZXB0aW9uKG91dHB1dF9tZXNzYWdl
cy5FUlJfRkFJTEVEX0NGR19ORlNfU0hBUkUpCkV4Y2VwdGlvbjogRmFpbGVkIHRvIGNvbmZpZ3Vy
ZSBORlMgc2hhcmUgb24gdGhpcyBob3N0CgoyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5n
aW5lLXNldHVwOjoxOTkyOjpyb290OjogKioqIFRoZSBmb2xsb3dpbmcgcGFyYW1zIHdlcmUgdXNl
ZCBhcyB1c2VyIGlucHV0OgoyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVw
OjoxOTk3Ojpyb290Ojogb3ZlcnJpZGUtaHR0cGQtY29uZmlnOiB5ZXMKMjAxMy0wMy0wNSAyMDow
MjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGh0dHAtcG9ydDogODAKMjAx
My0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGh0dHBz
LXBvcnQ6IDQ0MwoyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3
Ojpyb290OjogcmFuZG9tLXBhc3N3b3Jkczogbm8KMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6
OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IG1hYy1yYW5nZTogMDA6MUE6NEE6QTg6MDE6MDAt
MDA6MUE6NEE6QTg6MDE6RkYKMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1
cDo6MTk5Nzo6cm9vdDo6IGhvc3QtZnFkbjogbG9jYWxob3N0LmxvY2FsZG9tYWluCjIwMTMtMDMt
MDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBhdXRoLXBhc3M6
ICoqKioqKioqCjIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6
OnJvb3Q6OiBvcmctbmFtZTogbG9jYWxkb21haW4KMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6
OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGFwcGxpY2F0aW9uLW1vZGU6IHZpcnQKMjAxMy0w
My0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGRlZmF1bHQt
ZGMtdHlwZTogTkZTCjIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5
OTc6OnJvb3Q6OiBkYi1yZW1vdGUtaW5zdGFsbDogbG9jYWwKMjAxMy0wMy0wNSAyMDowMjoxOTo6
REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGRiLWhvc3Q6IGxvY2FsaG9zdAoyMDEz
LTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogZGItbG9j
YWwtcGFzczogKioqKioqKioKMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1
cDo6MTk5Nzo6cm9vdDo6IG5mcy1tcDogL0lTTwoyMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6
ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogaXNvLWRvbWFpbi1uYW1lOiBJU09fRE9NQUlOCjIw
MTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBjb25m
aWctbmZzOiB5ZXMKMjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5
Nzo6cm9vdDo6IGZpcmV3YWxsLW1hbmFnZXI6IGlwdGFibGVzCjIwMTMtMDMtMDUgMjA6MDI6MTk6
OkVSUk9SOjplbmdpbmUtc2V0dXA6OjI0MTM6OnJvb3Q6OiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50
IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBsaW5lIDI0MDcsIGluIDxt
b2R1bGU+CiAgICBtYWluKGNvbmZGaWxlKQogIEZpbGUgIi9iaW4vZW5naW5lLXNldHVwIiwgbGlu
ZSAyMTkwLCBpbiBtYWluCg==
--=-sinamail_alt_7c08646e5c92caeacc9059d14e021d50
Content-Type: text/html;
charset=GBK
Content-Transfer-Encoding: base64
Content-Disposition: inline
PGRpdj4mbmJzcDtIaSw8YnI+PGJyPkkgYnVpbHQgdGhlIG9WaXJ0IGVuZ2luZSBSUE0gcGFja2Fn
ZXMgZnJvbSB0aGUgbGF0ZXN0IG9WaXJ0IGVuZ2luZSBzb3VyY2UgY29kZSBhbmQgc2V0dXAgYSB5
dW0gaW5zdGFsbGF0aW9uIHNlcnZlciB3aXRoIHRoZXNlIHBhY2thZ2VzLiZuYnNwOyBJIGNhbiBz
dWNjZXNzZnVsbHkgaW5zdGFsbCB0aGUgUlBNIHBhY2thZ2VzIG9uIG15IG9WaXJ0IGVuZ2luZSB0
ZXN0IHNlcnZlci4mbmJzcDsgQnV0IHdoZW4gdGhlICJlbmdpbmUtc2V0dXAiIGNvbW1hbmQgd2Fz
IHVzZWQgdG8gc2V0dXAgdGhlIGVuZ2luZSBzZXZlciwgdGhlIGZvbGxvd2luZyBlcnJvcnMgd2Vy
ZSBlbmNvdW50ZXJlZCBmcm9tIGVuZ2luZS1zZXR1cCBsb2cuJm5ic3A7IEl0IHNlZW1zIHRoYXQg
aW5zdF9hZGRfaXNvX3N0b3JhZ2VfZG9tYWluIHdhcyBub3QgY3JlYXRlZCBwcm9wZXJseSBmb3Ig
cHNxbC4mbmJzcDsgQW55IGNsdWUgdG8gdGhpcyBwcm9ibGVtPzxicj48YnI+MjAxMy0wMy0wNSAy
MDowMjoxOTo6REVCVUc6Om5mc3V0aWxzOjoxOTI6OnJvb3Q6OiBHZW5lcmF0aW5nIHVuaXF1ZSB1
dWlkPGJyPjIwMTMtMDMtMDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjUwMTo6cm9v
dDo6IHJ1bm5pbmcgc3FsIHF1ZXJ5ICdzZWxlY3QgaW5zdF9hZGRfaXNvX3N0b3JhZ2VfZG9tYWlu
ICgnYWIyMmI0MTktNjM4MS00ZjBhLThiNDYtYWE3MmM4MWVkYmI1JywgJ0lTT19ET01BSU4nLCAn
ZWFkMjkyZWUtMTRkZC00MGY5LWIwNmItZjIyNTBmNzU5NGE5JywgJ2xvY2FsaG9zdC5sb2NhbGRv
bWFpbjovSVNPJywgMCwgMCknIG9uIGRiIHNlcnZlcjogJ2xvY2FsaG9zdCcuPGJyPjIwMTMtMDMt
MDUgMjA6MDI6MTk6OkRFQlVHOjpjb21tb25fdXRpbHM6OjQ1NDo6cm9vdDo6IEV4ZWN1dGluZyBj
b21tYW5kIC0tJmd0OyAnL3Vzci9iaW4vcHNxbCAtaCBsb2NhbGhvc3QgLXAgNTQzMiAtVSBlbmdp
bmUgLWQgZW5naW5lIC1jIHNlbGVjdCBpbnN0X2FkZF9pc29fc3RvcmFnZV9kb21haW4gKCdhYjIy
YjQxOS02MzgxLTRmMGEtOGI0Ni1hYTcyYzgxZWRiYjUnLCAnSVNPX0RPTUFJTicsICdlYWQyOTJl
ZS0xNGRkLTQwZjktYjA2Yi1mMjI1MGY3NTk0YTknLCAnbG9jYWxob3N0LmxvY2FsZG9tYWluOi9J
U08nLCAwLCAwKScgaW4gd29ya2luZyBkaXJlY3RvcnkgJy9yb290Jzxicj4yMDEzLTAzLTA1IDIw
OjAyOjE5OjpERUJVRzo6Y29tbW9uX3V0aWxzOjo0OTI6OnJvb3Q6OiBvdXRwdXQgPSA8YnI+MjAx
My0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDkzOjpyb290Ojogc3RkZXJy
ID0gRVJST1I6Jm5ic3A7IE5VTTo0Mjg4MywgREVUQUlMUzpmdW5jdGlvbiBpbnNlcnRzdG9yYWdl
X2RvbWFpbl9zdGF0aWModXVpZCwgY2hhcmFjdGVyIHZhcnlpbmcsIGNoYXJhY3RlciB2YXJ5aW5n
LCBpbnRlZ2VyLCBpbnRlZ2VyLCB1bmtub3duLCBpbnRlZ2VyKSBkb2VzIG5vdCBleGlzdDxicj48
YnI+MjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmNvbW1vbl91dGlsczo6NDk0Ojpyb290Ojog
cmV0Y29kZSA9IDE8YnI+MjAxMy0wMy0wNSAyMDowMjoxOTo6RVJST1I6OmVuZ2luZS1zZXR1cDo6
MTgwOTo6cm9vdDo6IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTo8YnI+Jm5ic3A7
IEZpbGUgIi9iaW4vZW5naW5lLXNldHVwIiwgbGluZSAxODA0LCBpbiBfY29uZmlnTmZzU2hhcmU8
YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IF9hZGRJc29Eb21haW50b0RCKGNvbnRyb2xsZXIuQ09ORlsi
c2RfdXVpZCJdLCBjb250cm9sbGVyLkNPTkZbIklTT19ET01BSU5fTkFNRSJdKTxicj4mbmJzcDsg
RmlsZSAiL2Jpbi9lbmdpbmUtc2V0dXAiLCBsaW5lIDE4NjAsIGluIF9hZGRJc29Eb21haW50b0RC
PGJyPiZuYnNwOyZuYnNwOyZuYnNwOyB1dGlscy5leGVjUmVtb3RlU3FsQ29tbWFuZChnZXREYlVz
ZXIoKSwgZ2V0RGJIb3N0TmFtZSgpLCBnZXREYlBvcnQoKSwgYmFzZWRlZnMuREJfTkFNRSwgc3Fs
UXVlcnksIFRydWUsIG91dHB1dF9tZXNzYWdlcy5FUlJfRkFJTEVEX0lOU0VSVF9JU09fRE9NQUlO
JShiYXNlZGVmcy5EQl9OQU1FKSk8YnI+Jm5ic3A7IEZpbGUgIi91c3Ivc2hhcmUvb3ZpcnQtZW5n
aW5lL3NjcmlwdHMvY29tbW9uX3V0aWxzLnB5IiwgbGluZSA1MTAsIGluIGV4ZWNSZW1vdGVTcWxD
b21tYW5kPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gZXhlY0NtZChjbWRMaXN0PWNtZCwg
ZmFpbE9uRXJyb3I9ZmFpbE9uRXJyb3IsIG1zZz1lcnJNc2csIGVudkRpY3Q9Z2V0UGdFbnYoKSk8
YnI+Jm5ic3A7IEZpbGUgIi91c3Ivc2hhcmUvb3ZpcnQtZW5naW5lL3NjcmlwdHMvY29tbW9uX3V0
aWxzLnB5IiwgbGluZSA0OTcsIGluIGV4ZWNDbWQ8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJhaXNl
IEV4Y2VwdGlvbihtc2cpPGJyPkV4Y2VwdGlvbjogRmFpbGVkIGluc2VydGluZyBJU08gZG9tYWlu
IGludG8gZW5naW5lIGRiPGJyPjxicj4yMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6c2V0dXBf
c2VxdWVuY2VzOjo2Mjo6cm9vdDo6IFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTo8
YnI+Jm5ic3A7IEZpbGUgIi91c3Ivc2hhcmUvb3ZpcnQtZW5naW5lL3NjcmlwdHMvc2V0dXBfc2Vx
dWVuY2VzLnB5IiwgbGluZSA2MCwgaW4gcnVuPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyBmdW5jdGlv
bigpPGJyPiZuYnNwOyBGaWxlICIvYmluL2VuZ2luZS1zZXR1cCIsIGxpbmUgMTgxMCwgaW4gX2Nv
bmZpZ05mc1NoYXJlPGJyPiZuYnNwOyZuYnNwOyZuYnNwOyByYWlzZSBFeGNlcHRpb24ob3V0cHV0
X21lc3NhZ2VzLkVSUl9GQUlMRURfQ0ZHX05GU19TSEFSRSk8YnI+RXhjZXB0aW9uOiBGYWlsZWQg
dG8gY29uZmlndXJlIE5GUyBzaGFyZSBvbiB0aGlzIGhvc3Q8YnI+PGJyPjIwMTMtMDMtMDUgMjA6
MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTI6OnJvb3Q6OiAqKiogVGhlIGZvbGxvd2lu
ZyBwYXJhbXMgd2VyZSB1c2VkIGFzIHVzZXIgaW5wdXQ6PGJyPjIwMTMtMDMtMDUgMjA6MDI6MTk6
OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBvdmVycmlkZS1odHRwZC1jb25maWc6
IHllczxicj4yMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpy
b290OjogaHR0cC1wb3J0OiA4MDxicj4yMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5l
LXNldHVwOjoxOTk3Ojpyb290OjogaHR0cHMtcG9ydDogNDQzPGJyPjIwMTMtMDMtMDUgMjA6MDI6
MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiByYW5kb20tcGFzc3dvcmRzOiBu
bzxicj4yMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290
OjogbWFjLXJhbmdlOiAwMDoxQTo0QTpBODowMTowMC0wMDoxQTo0QTpBODowMTpGRjxicj4yMDEz
LTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogaG9zdC1m
cWRuOiBsb2NhbGhvc3QubG9jYWxkb21haW48YnI+MjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6
OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IGF1dGgtcGFzczogKioqKioqKio8YnI+MjAxMy0w
My0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9vdDo6IG9yZy1uYW1l
OiBsb2NhbGRvbWFpbjxicj4yMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNldHVw
OjoxOTk3Ojpyb290OjogYXBwbGljYXRpb24tbW9kZTogdmlydDxicj4yMDEzLTAzLTA1IDIwOjAy
OjE5OjpERUJVRzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogZGVmYXVsdC1kYy10eXBlOiBO
RlM8YnI+MjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9v
dDo6IGRiLXJlbW90ZS1pbnN0YWxsOiBsb2NhbDxicj4yMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJV
Rzo6ZW5naW5lLXNldHVwOjoxOTk3Ojpyb290OjogZGItaG9zdDogbG9jYWxob3N0PGJyPjIwMTMt
MDMtMDUgMjA6MDI6MTk6OkRFQlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBkYi1sb2Nh
bC1wYXNzOiAqKioqKioqKjxicj4yMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5lLXNl
dHVwOjoxOTk3Ojpyb290OjogbmZzLW1wOiAvSVNPPGJyPjIwMTMtMDMtMDUgMjA6MDI6MTk6OkRF
QlVHOjplbmdpbmUtc2V0dXA6OjE5OTc6OnJvb3Q6OiBpc28tZG9tYWluLW5hbWU6IElTT19ET01B
SU48YnI+MjAxMy0wMy0wNSAyMDowMjoxOTo6REVCVUc6OmVuZ2luZS1zZXR1cDo6MTk5Nzo6cm9v
dDo6IGNvbmZpZy1uZnM6IHllczxicj4yMDEzLTAzLTA1IDIwOjAyOjE5OjpERUJVRzo6ZW5naW5l
LXNldHVwOjoxOTk3Ojpyb290OjogZmlyZXdhbGwtbWFuYWdlcjogaXB0YWJsZXM8YnI+MjAxMy0w
My0wNSAyMDowMjoxOTo6RVJST1I6OmVuZ2luZS1zZXR1cDo6MjQxMzo6cm9vdDo6IFRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTo8YnI+Jm5ic3A7IEZpbGUgIi9iaW4vZW5naW5lLXNl
dHVwIiwgbGluZSAyNDA3LCBpbiAmbHQ7bW9kdWxlJmd0Ozxicj4mbmJzcDsmbmJzcDsmbmJzcDsg
bWFpbihjb25mRmlsZSk8YnI+Jm5ic3A7IEZpbGUgIi9iaW4vZW5naW5lLXNldHVwIiwgbGluZSAy
MTkwLCBpbiBtYWluPGJyPjwvZGl2Pg==
--=-sinamail_alt_7c08646e5c92caeacc9059d14e021d50--
4
3
- use explicit classloader for JAXBContext
- implement support for (user defined) session authentication
- implement generic JAXBElement generation
- to DataCenterStorageDomain added Disks sub-collection
- to StorageDomain added Disks sub-collection
- to host added display.address property
- to vms.add() added overload for creating vm from snapshot
More details can be found at [1].
[1] http://www.ovirt.org/Java-sdk-changelog
--
Michael Pasternak
RedHat, ENG-Virtualization R&D
1
0
[Engine-devel] [JENKINS] new job on jenkins.ovirt.org - verify errors codes on engine <-> vdsm
by Eyal Edri 06 Mar '13
by Eyal Edri 06 Mar '13
06 Mar '13
fyi,
a new job has been added (more liked fixed) - http://jenkins.ovirt.org/view/vdsm/job/vdsm_verify_error_codes/
Job Desc:
"
The purpose of this jenkins job is verify each error code reported by VDSM
has a correlated message on the engine side, else we get the 'Unexpected error'.
The missing error code should be added to:
ovirt-engine/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllErrors.java
and the error message to:
ovirt-engine/backend/manager/modules/dal/src/main/resources/bundles/VdsmErrors.properties
If a specific VDSM error code should not be reported by VDSM and needed to be ignored, we can add it to the 'ignored list' of the jenkins job.
"
please notice if this job breaks after your commit, it will probably mean you changed/added an error code in one
component but not in the other.
eyal edri
oVirt infra team.
1
0
Re: [Engine-devel] fedora openid authentication for gerrit is broken
by Michael Pasternak 06 Mar '13
by Michael Pasternak 06 Mar '13
06 Mar '13
Ok,
here how it works,
old id: https://admin.fedoraproject.org/accounts/openid/id/username
is no longer supported according to [1],
new format is: username.id.fedoraproject.org
[1] https://fedoraproject.org/wiki/OpenID
thanks.
On 03/06/2013 10:37 AM, Michael Pasternak wrote:
> https://admin.fedoraproject.org/accounts/openid/server
>
> 404 Not Found
>
> The path '/openid/server' was not found.
--
Michael Pasternak
RedHat, ENG-Virtualization R&D
6
12
[Engine-devel] oVirt Engine GUI: builders infrastructure feedback (conf: 712 886 7405#)
by Tomas Jelinek 06 Mar '13
by Tomas Jelinek 06 Mar '13
06 Mar '13
------=_Part_10335680_1775289134.1362493287224
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
attaching the slides
----- Original Message -----
> The following is a new meeting request:
>
> Subject: oVirt Engine GUI: builders infrastructure feedback (conf:
> 712 886 7405#)
> Organizer: "Einav Cohen" <ecohen(a)redhat.com>
>
> Location: Intercall conf code: 712 886 7405#
> Time: Tuesday, March 5, 2013, 9:30:00 AM - 11:00:00 AM GMT -05:00
> US/Canada Eastern
>
> Invitees: tjelinek(a)redhat.com; engine-devel(a)ovirt.org
>
>
> *~*~*~*~*~*~*~*~*~*
>
> Following the correspondence in the builders infrastructure patch [1]
> and engine-devel thread [2]:
> In the first part of the meeting, Tomas Jelinek <tjelinek(a)redhat.com>
> will present his builders infrastructure solution.
> In the second part of the meeting, we will hear feedback about this
> solution from the other parties and try to converge to a final,
> unanimous decision.
>
>
> conference call details:
> ========================
> Intercall dial-in numbers:
> https://www.intercallonline.com/listNumbersByCode.action?confCode=7128867405
>
> Intercall conf code:
> 712 886 7405#
>
>
> elluminate session:
> ===================
> https://sas.elluminate.com/m.jnlp?sid=819&password=M.A7793C4C197B25A20229D7…
>
> ----
>
> [1] http://gerrit.ovirt.org/#/c/10874/
>
> [2]
> http://lists.ovirt.org/pipermail/engine-devel/2013-January/003528.html
>
------=_Part_10335680_1775289134.1362493287224
Content-Type: application/pdf; name=builders.pdf
Content-Disposition: attachment; filename=builders.pdf
Content-Transfer-Encoding: base64
JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURl
Y29kZT4+CnN0cmVhbQp4nLWQPWvDQAyG9/sVmgN2pPu0wRwksQ3tZjB0KJ3aph2SlmTp368k56M1
NFs5ENJJep/3DkuCL3MAhAJLC6l2ZYRQB86Pr+ZhAR+GQM7xzaA0YG9kKGm+gynX3d1ZRJKp+262
CzPAL/n0l/yB24knZTmJqCsdFJaz571Z3u09tJ8wzOXmbg+qgCK4Hg3FUFbgkmep8QWWPYGvYNw+
NkiZGrTo0GfbYMCICSuscTVdrHGDMRc8E6RsJXQ81GPKT+O96UYzMOziXmFix6VYhv+H8RdxURN/
j7IsWH9mFZFhouFyUTWMUOUTgcHSqsXRKvPkWkq929yGBeLnzWBt9sIS4U5jL5EwF7YhYlHipj/p
qwFySiR5OAVxcTVQTQs3XRCdv/figiKjRNpSoh+kWuNKfU03St5IaLXurqwBvgF4n6X9CmVuZHN0
cmVhbQplbmRvYmoKCjMgMCBvYmoKMzIyCmVuZG9iagoKNCAwIG9iago8PC9UeXBlL1hPYmplY3Qv
U3VidHlwZS9JbWFnZS9XaWR0aCAxMDI0IC9IZWlnaHQgNzY4IC9CaXRzUGVyQ29tcG9uZW50IDgg
L0NvbG9yU3BhY2UvRGV2aWNlUkdCL0ZpbHRlci9EQ1REZWNvZGUvTGVuZ3RoIDIwNTM3IC9TTWFz
ayA1IDAgUiA+PgpzdHJlYW0K/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwME
BQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQME
BAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFBT/wgARCAMABAADASIAAhEBAxEB/8QAHQABAQEBAAMBAQEAAAAAAAAAAAEDAgQGBwUICf/E
ABwBAQEBAQEBAQEBAAAAAAAAAAABAgMEBQYHCP/aAAwDAQACEAMQAAAB+Sj8j/ogAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcXPbLm42mK89OYuUpmWiKIpQAAAAAAAANhz9gAAAAA
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
XVAVAWKtZKhMVCiyFNIJAG+SoSzw6vOQCjAXwgKOYKFZAKgkYxWntFWKkBUxZ57XFFFwI7QAZgGc
rguqgJQmpiykZSqyY4BZBWtYAOeqYlQls3Y4Qkc0WqKKK4orqvK4ShaEgL4Mnnuw4Q2MlVasO6JB
cVftZavE61XgUbii4AlDIHauJUQKgLqVlFtwhbZIJEbV4BNaNBp1fV0YQFjgjhNbqvIjdSw0u1Qq
1Z5YrguuaCoGp9qncODJjgSWc8dprSEhUAowFjgjRvf/2gAMAwEAAgADAAAAEPvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvtfLQHo08gggggggggvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvvvvvvvut9SOg4ggggggggggggggvvvvuN/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvs1Bq0wgggggggggggggggggvvvtbPPfvvvtvvvvvvvvvvvvvvvvvvvvvvvvvvvb2a8gggggggg
gggggggAAAAggvvvqJHMq/Wb46Hh/vvvvvvvvvvvvvvvvvvvvttl0wggggggggggggAggggggggg
gvvvrRx9IZYyHv3LtPvvvvvvvvvvvvvvvvvsuqogggggggggggAggggggggggwwwwvvvr97jfvvv
vvvvvvvvvvvvvvvvvvvvvvy64gggggggggAAggggggwwgggwwwwww/vvvvvvvvvvvvvvvvvvvvvv
vvvvvvvt2q4gggggggggAgggggwwgwwwwwwzywxzz/vvvvvvvvvvvvvvvvvvvvvvvvvvvvLE4ggg
gggggAgggggwggwwwzw37z//AP8A/wD/AP8ASfec718+1++++++++++++++++++oeTCCCCCCCACC
CCDCDDDDHH/f/wD/AP8A/wD/AP77774IILLMNPa7B5/Dz77777777777nOsIIIIIIIAIIIIMIMMM
tc//AP8A/wD/AO+//wD/AP8A/wD/AP8ACCCCCCCCCCSjTukM98++++++43CCCCCCCACCCCDDDDHH
v/8A/wD/AO+//wD/AP8A/wD/AP8A/wD/AP8ACCCCCCCCCCCCCCCyTqmS5+5VrCCCCCCACCCCDDDD
LP8A/wD/AP8Av/8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AAgggggggggggggggggko5nxmAgggggg
ggggwwwy7/8A/wD+/wD/AP8A/wD/AP8A/wD/AP8A/wD/ALPh50wIIIIIIAAIIIIIIIIIIIISGwUQ
oIIAIIIMIMMu/wD/AP8A7/8A/wD/AP8A/wD/AP8A81evM/8A/wD7774IIIIIIIIIIIIAIIIIIIxV
7797/wBkKCCCDDDv/wD/AP7/AP8A/wD/AP8A/wDrK93/AP8AvvvvvvvvvggggggwwgggggggggBt
/wD/AO+//wD/AP8A9oKDHX//AP8A7/8A/wD/AP8A/wD9jff/AL77777zzz7777wMMMMMMMMMIIMM
IIINX7//AP8A/wD/AP8A/wD/AP8ALFv/AP7/AP8A/wD/AP8A+DvP/vvvvvPvvMfcQEMIATz/AP8A
vLDPDDDDDDCGG/8A/wD/AP8A/wD/AP8A/v8A/wD+fX//AP8A/wD/AP8A41/77777z7j2FAEEEEEE
EEH/AP8A/wD/AP8A/wC9+8M8Meb/AP8A/wD/AP8A/wD7b/8A/wC/+7+2cf8A/wD2+/8AvvvvPuOU
AQQQQQAAQQQQQf8A/wD/APvvv/8A/wD/AP6hvv8A/wD/AP8Av/8A/wD37v8A+57/APuNd9l/+++8
+45QBBBBABBBBBBBBBBB/wD/AP8A/wD/AP8A/wD/AL783/8A7f7/AP8A/wCf++/+/wD/AL7/AP8A
v6Y9/vvPuKYQQQQAQQQQQTQTfTTfff8A/wD/AP8A/wD/AP8A/wD7Mvf6f/8Avv8A777777777777
7AMEEDL7iAEEEAEEEEEkW13zz333zzz/AP8A/wD/AP8A/wD/AP8A/p//AL77/wC+++++++++++++
/hBBBBFpSJBBABBBBJdd899888+++899dtueMbz1/wD4Pvv/AP7777777777zz7z7zAL0E02zz32
4IEEEVV3z3zz77z3/wC+/wD/AP8A++++++//ALfosvvvvvvvvvvPvPPPOtPPnHffPffffPfPZATf
PfPPvPfvv/8A/wD/AP8A/PPzz7777774MEIr/PD7z77TzyGDnWBTfz333333z3zzzr7r3zz737//
AP8A/wDf89//AP8A/wD3HDT777z4UFn302wbz60GCkEEEEBT33zzz3ziz7iw377+/T/7/wD/AM/3
/wD/AP8A/wD7774EEEFCADXz3333333333w0EEEEEO33z3zjzj1z7/7/AP8A/wDvavb/ALvf/wD/
AP7/AP8A/wD/AP8A/wAAAAEEFdz3333z3333zzz06MkEd7zzzrb73z/77/8A/wC8gww4w1P/AP8A
+/8A/wD/AK++Nf47BBBBBF29898888988888889Pm+8888++/wD/AP8A/wC/v6owwwwwwwtf/wD/
AL+N9AhiDCCCBFNJBU9888886608m+yc0885IQ/4c/8Avv8A/vLIMOMMMMMMMMMIfP5vkAMIYsVz
447zzzz59z43z377763/AO+++cw8DHL60/8A9+04wwwwwwwgwggxixhtcAwi3bv/AP8A/wD/AP8A
8888U+++/wD/AP8A+/8A/wD/AP8Av/vtf/7v7rlY0wwwwwgwgjXijDlHsSbWzXHv/wD/AP8Avu8v
vv8A/wBly/8A8/8A/wD/AN/9t8//AOruf/8A/wDvvvvuCAwgh7ggrvvrv/u33f8Ab/tD/wC+2/f+
++++/wD/ABCMOMNOPYMPMMMNMIM77777/wC/9++uNGse+ve//wD/APuD3/IIOOIDS/77zz77jDX/
AP7jDDDDDDDDDDDDDDDEc+/+w/3ff/8A/rcf/v8A/wD/AP8A/R7/AGDCCCACBA/+41hQgBBB/wDA
wwwwwgggwwwiywgw2j+//wD+7/8A/wD/AP8A/wD29/8A/wD++wc6zCCBGCBNFdBZBBBABBBB/qDD
CCCCCMeNEGeu/fS//wD/AP8A/wD/APLf/rL/APyB/wD9+70tYgQBVXXHPfPfSQQQRSRXfcQgwwgl
jvvvvvvvv/7HP/8A/wD7X3iCC6DC3rCC++7SiBBBNFd998887988tdN88/8Av/2rX/0f/v8A/wC+
/wD/AP8A/s//AP8A/wDrCCCCCBBCBCAACyrCKFtt98889839+9s89898/wD/AP8A4/8A/wD+99z/
AL//AP8A/wD/ANv/APfqIMIIAAAIEEIEUEkf5Ie3z33zzLzdz/77v9IOv/8A/wD/AP8A/wD6sw8+
tv4yEd//ALvfrILAIMIMAEEkEX030yq7gHbXzzoyz9z/AP8A+6owww42P/8A/wD/AIgoAgQQQY4w
AkUneYggAQRCQTfRbXHfPfPPZeAAwBPPvvu/+/8AcKMMMMMMNDT8/wD+CCJFNBJJFFReFCHNJCAJ
FVt89999989998WjgDDCDw/+yjyjSDDDDDDDDCC2/wD/AP8A8M8899d898999tK987zt89898999
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
3lahbGKrQKIlxKiincgBY3ywicAVokC4laBUS5gnxRjiC4lSttArl1bvriCuBKYGqXqaEuHPU2Yf
QnsRW+iXEqBRrW/CisYex2eSF6pegcQVr2n3wBErQK1rm7E5NQuBXKS4FdHiUz6BiWDz3NtxB7Il
aVtErStoFc3du/aLbbqGiXArmVfBW0QkgEkC/Qds7PF//9kKZW5kc3RyZWFtCmVuZG9iagoKNSAw
IG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxMDI0L0hlaWdodCA3Njgv
Qml0c1BlckNvbXBvbmVudCA4L0xlbmd0aCA2IDAgUgovRmlsdGVyL0ZsYXRlRGVjb2RlL0NvbG9y
U3BhY2UvRGV2aWNlR3JheQovRGVjb2RlIFsgMSAwIF0KPj4Kc3RyZWFtCnic7cExAQAAAMKg9U9t
Bn+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPgMAtAABCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoK
Nzg1CmVuZG9iagoKOCAwIG9iago8PC9MZW5ndGggOSAwIFIvRmlsdGVyL0ZsYXRlRGVjb2RlPj4K
c3RyZWFtCnicpZI9a8QwDIZ3/wrNB3El2UlsMBkCzdDtINChdGvTUq6F3tK/X0nu3dEPSiCEKK9t
SX78OugJPtw7IDToGfocfAdtbkUfH93tDt4cgT7HJ4e6AK9Ok3rTB6jaag+nJirq6rNbdtrcE1Lu
fn2l5zi7kLUbo88wP8DVRBAY5uWuEA5UcBoaLjha7AYJrUoim8h1JElUiE1apDA09KUxDPfzjbue
3d5YuvNb949Jdo4xy4TtH4BY9VKQhvnlUvjfIXr0rTRRM6wJA6d6iEmYBa3SxMKIWQdpFVZIJIZu
xAp968NfWMhMLEaGQq0wGZoalsRosY8J2WCZ9RZIs8xhHKVqBbwAp83w2J1+jDM8B4EXdoWuyBwx
mcmrwDhGH7eCcUgSf4ApUfWSqFdj+bvF6t0FcA+fteG83AplbmRzdHJlYW0KZW5kb2JqCgo5IDAg
b2JqCjMxMgplbmRvYmoKCjExIDAgb2JqCjw8L0xlbmd0aCAxMiAwIFIvRmlsdGVyL0ZsYXRlRGVj
b2RlPj4Kc3RyZWFtCnicZY69DsIwDIR3P8XNlZraSdMSKerATyXYKkViQExAYWhBdOH1SVoxIQ/+
fLbPZiX40BuMnJVG7YyqYJ2NPN3omOFJghTTnTg1MFIaqmcesPC8O/xMEizdB/VZMlfC4qq/HD3X
gYxLbpqVQ7iiaAVGI/QnL2WTay+m0Z7bGW0jnjes56JKupO6OYcD7QJ18dLyDscQ0fGVvFQWsrJR
vIxU7Ecx2L7QUYcvJvYz6gplbmRzdHJlYW0KZW5kb2JqCgoxMiAwIG9iagoxNzQKZW5kb2JqCgox
MyAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCA0MDk2L0hlaWdodCA1
NzkvQml0c1BlckNvbXBvbmVudCA4L0xlbmd0aCAxNCAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZS9D
b2xvclNwYWNlL0RldmljZVJHQgovU01hc2sgMTUgMCBSCj4+CnN0cmVhbQp4nOzdfdQU5X0/frmR
RwGJgIAYfEDFB4SqR4ha0qAx1fqIMerBJrGRmjQ+m9Rak3o80fR8TaLHalAUTdUaKLQQwXiSiNCa
auJpj+lRE4OiTfVAQMEKiDzfN9/5ur+zv+nM7uzc9+zO7C6v1x85uPO5Zq65Znava8ib3d27AQAA
AACA/2cvAOqt6I92AAAAAAAAAAAAANpQ0SFZgDZU9Ec7AAAAAAAAAAAAAG2o6JAsQBsq+qMdAAAA
AAAAAAAAgDZUdEgWoA0V/dEOAAAAAAAAAAAAQBsKB1YfeOCBNwHovnvvvVf+HwAAAAAAAAAAAICG
CgdWn3jiiaK7A9CS5s+fL/8PAAAAAAAAAAAAQEPJ/wNkJ/8PAAAAAAAAAAAAQKPJ/wNkJ/8PAAAA
AAAAAAAAQKPJ/wNkJ/8PAAAAAAAAAAAAQKPJ/wNkJ/8PAAAAAAAAAAAAQKPJ/wNkJ/8PAAAAAAAA
AAAAQKPJ/wNkJ/8PAAAAAAAAAAAAQKPJ/wNkJ/8PAAAAAAAAAAAAQKPJ/wNkJ/8PAAAAAAAAAAAA
QKPJ/wNkJ/8PAAAAAAAAAAAAQKPJ/wNkJ/8PAAAAAAAAAAAAQKPJ/wNkJ/8PAAAAAAAAAAAAQKPJ
/wNkJ/8PAAAAAAAAAAAAQKPJ/wNkJ/8PAAAAAAAAAAAAQKPJ/7ecvWJa/UB10Vq9TdZO57LnkP8H
AAAAAAAAAAAAoNG6lf+fOHFiJJZ81VVX1TxEUBNpNWnSpDp1vxvimerAscceW7PhhAkTKrbNoc8V
5daTmgeqOCwlHR0dgwYNGjVq1OTJkz//+c8/8sgj69evb1A/U/a2hTTnuTTV5W5C8v8AAAAAAAAA
AAAANFo4sFoz//+9730vkvsdPnz4jh07EpoEW4cNGxZpdeedd9b1JFKpFl1+5plnElotXbq0WsPc
eh6RW09qHqjayFS0zz773HLLLZ2dnUX1toU057k01eVuQvL/AAAAAAAAAAAAADRaOLBaM/+/Zs2a
3r17R4K+ya1+9KMfReqDPaxdu7auJ5FKtaDy2WefndDqrLPOqtYwt55H5NaTmgeqNjIJZsyYUVRv
W0hznktTXe4mJP8PAAAAAAAAAAAAQKOFA6s18/+BM844IxLxveCCCxLqp0+fHqk/88wz69f9bqgW
Ue7o6Fi5cmXFJq+//nqvXr2qNcy5/2W59aTmgaqNTLLFixcX0tsW0pzn0lSXuwnJ/wMAAAAAAAAA
AADQaOHAapr8/9y5cyP53r59+7733nsVi9evXx9sjdTPmzev3ieRSkJE+eqrr67Y5KqrrkpolXP/
y3LrSc0DJRR0dXWtXr16zpw5Q4cOjdRMnz69kN6SUVNd7iYk/w8AAAAAAAAAAABAo4UDq2ny/1u2
bBkyZEgk4jtr1qyKxd///vcjlUHbrVu31vskUomnl8sGDx68cePGSP2GDRsGDRqU0KqQs9jdIvn/
ssceeyxSM2bMmEJ6S0ZNdbmbkPw/AAAAAAAAAAAAAI0WDqymyf8HLr/88kjEd8qUKRUrJ0+eHKmc
OXNmch/C0dkXX3wxONahhx7av3//0aNHn3rqqY8++uiOHTvKDXfu3Dl37twzzjjjwAMP7Nu374gR
I0477bT7779/+/btaY5ywAEHlP981113RervvPPOipVp8r3Lly+/4YYbTjrppDFjxgwYMCDof7CH
YJSuvfbapUuXJg9vYNeuXQ8//HBwvsEZBW0POeSQyy677IUXXkgeroq6urqeeuqpK6+88vjjjx85
cmQwSoMHDx43btwll1wSDGbFgUoYse4WBNatWxepCfqQZ29XrFgRDPv48eMHDhw4ZMiQ44477pZb
bnn//fer7WfVqlWLFi266aabTj/99MMPPzxosvfee/fr12/48OETJkwIejJ79uxqP3hxwgknRPpw
4YUXVqw8//zzI5VB25rnEpflTqt2lIULF5511lnBDnt/pFu9Snm5swxyWXAR77vvvunTpx911FFD
hw7t06fPPvvsE3xcBGM+a9asd955J7l5lputIvl/AAAAAAAAAAAAABotHFhNmf9/9tln40ng1157
LVK2YsWKeNnPf/7z5D6UdHV13XzzzR0dHfFNp5xyypo1a4JWb7zxRvzfF5RMmjRp1apVNY9y2223
lf98yCGHdHZ2louDPwevlLfefvvt8eYVB+f555+fOHFixV6VTZgwoeI4lARnd+KJJ8ZbBaNx4403
BiOTsie7PwqHH3nkkQk9GTt27JNPPlmtec0DpelJPBA+cuTI3Hr73e9+t1+/fvFNY8aMefXVV1Pu
J27gwIHBnuNtH3zwwUhlnz591q5dGylbvXr13nvvHamcM2dOtwY2+50Wr9+xY8fFF18cfiV7/r/i
5U7udkm1QS6ZO3fuvvvum9A86Pn06dODUarYPOPNVpH8PwAAAAAAAAAAAACNFg6spsz/d3V1hbPx
JTfffHOk7K//+q8jNUGroG1yH0q+9rWvJURzTznllP/+7/8eM2ZMQs2UKVN27dqVfJR169b179+/
/J+LFi0qFy9cuLD8elATTzXvVSnfO2vWrN69eyf0qiwou+eee+J72LhxY3Is+YYbbkjTk8Bdd91V
8R9QRPTq1evuu++uuIeaB0rTk8cffzxSc9ppp+XT229+85sJuwrGedu2bWn2U01wh0fafvDBB4MH
D46U/e3f/m2k7Fvf+lakZsiQIZs3b04/sNnvtIpHueKKKyKvBBclfa92p77caXpeEh/k3R+l94M7
IeUe4s2z32wVyf8DAAAAAAAAAAAA0GjhwGrK/H/gb/7mbyJZ2bFjx4az/cGfg1ciNbfcckvNPqSU
/NXfJQsWLEg+SvDil770pfJ/fvKTnywXT506tfz65ZdfXq152MKFC9Nnkvf6KF0cNInsZObMmen3
UK0ngeDc03cmqFyyZEma65K+ILgBfv/73//gBz/Yb7/9IjX/+I//mE9va/r7v//7LPvp6Oh4+eWX
I82/8pWvRMoi/+yls7Mz/tb4i7/4i/QjX5c7LeWZBm3rfrmzD/JnPvOZ9HuItK3LzVaR/D8AAAAA
AAAAAAAAjRYOrKbP/69cuTKelV2+fHm5YNmyZfGCN954o2Yfyk477bT//M//3LJly4svvnj00UdX
rJk2bVqp5t///d/Hjx8f2frZz342+SjBiy+//HL4lWBvwYu/+tWvwi++8sor1ZqXffjhhwcccECk
4A/+4A9++tOffvDBB5s3b166dOlxxx0XKQiaBA3LO/nd734X/1ry4CxeffXVbdu2Bf87ffr0iuMQ
Gc/gcKNGjYrUXHDBBcEoBZ15++2377jjjvAPHwQ+/vGPb9++veZ1SXPhkl166aW59TbwR3/0R8E1
DUbvueeei6fuzz333PjdGNxsN9100+LFi3/7299u3Lhx50feeeedp59++g//8A8je7j66qsjzYPD
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
yD1fy5HWY49tvvnm11577XPPPZfstG9961vHHXdcfhcF1P8TL3uoVKn/763bfLJflfdwxhlnxKxD
9t1NNtkk+9bHP/7xxx57LDmJkivVk08++c///M9/+Id/uP3223dbvfhNiGxfuF0DXQ+T9c/fnuWo
o4564IEHkjkkfyZ/L1xK4QrLDFMyg8wgM6j/j5u2s3Oefvrp9dZbr/PKVVdd1bt9Ry2nSf75L50f
HC+88ML8Cnzyk59M373uuuuCt97+9reX2PyArxEK94yvEfItp0SCzFaIBCJBvUdajz1W4msE9f/x
U3V2UYuzgd5hSu+gd9A7rKH+H1ope17XXv+/evXqww47LGjW6SBqudDN6NUypoGAkRIwOiYkYBTu
rh7porB9b/nPupY9XPrnwrqOtG7U/wMAtFs27M1o/f9nP/vZoE0yEgye1XvppZcGbfL/uzm/rCSK
Zx+Cdvvtt+fb7LLLLi+//HKnzde//vWgQRK2ey9ln332SRJ+p8Hq1asXLVoUtLnwwgtL7Jlunn32
2WDad7zjHflm8Yuo6yNI7LfffkGzU089tfPub/zGbwTvJu27rVV+/YfzgaavH3rooZ1XktVOXvn1
X//1ziudR791mzx11VVXBe/uuOOOyagw2+bFF19MXgyaZX+w++QnPxm8mxxgyWHWafDmm2/uu+++
vddkeiZPtL4NektGpsHzsmd0bXfeeefs1wW33npr0GC77babHkTk+fjud787aJb9CiIYXyfe8573
9N2Wzlu1HGndljJv3rwHHnhgoH0yrf6fQWQPleHX/yddRr5oIbDXXnu98sorMeuQfXfu3LnZt77z
ne/k55Bc1r761a8ecMABg868RPt8g0Gvh/kHvCZ7JnuHyeTvySvxay4zZGcuM8SQGaZblxnU/8dM
m905F1xwQeeVbbfdtnOh6/GhT9d0mpxzzjlBgw996EPpW8mFLr8ChxxySPruKaecErx17rnnltv8
2jeqcFm+RohchK8R8ntJJEiJBH2JBIXU/8dPld1FLc4GeofszPUOMfQO023sHdT/Qytlz+sa6/9X
rly5dOnSJHLkm912221pm1oudDN6tYxsIGCkBIy+2hQw8ovonS7y7Xsr/Kz7itnDpX8urPHLt0Lq
/wEA2i0b9ma0/j8Z2gdt7r333qDN008/HbQ5+eST+y7rmmuuyTZ4/PHH822uvPLKbJuXXnopaLDe
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
AKDdsmFvRuv/yz24Kj+rmGVVb5N/N+YxdltvvXX8Ut75zncGb+2zzz5Lly59/vnn0wZ9/693/Mam
6voIUm+88cbmm28etNxhhx2CV7bYYoukZbdVilz/6m16v3vOOecE75577rnxk+efZ/ff//3f+TUc
5Scn5udTvUHqqaeeCpptuummw1/bvm3qOh9T++23X99NOOCAAwqn7bGUWo60+D0WQ/0/8bKHSlP1
/x/5yEe6nZK/+Zu/WX0d/vd///fOO++86qqrLrjggg984AM/93M/F0x41FFHVdzAvu1jZti7TRJm
gnefeOKJYA4rVqwYaM1lhg6ZobBBSmbopgWZQf1/zLT5nbNq1aott9yy89bixYt7t6/rNLn77ruD
Bptsskn2t+bly5c/9NBDnX+uv/76SYNgknvuuafi5te7UTHLqt4m/66vEQIiQYdIUNggJRJ004JI
MK3+f5Cp8ruordlA79ChdyhskNI7dNOO3kH9P7RS9ryuWP8/6KJrudAN82rZu4GAkZ9P9QYpAaOb
BgNG/IYM1L73Z13vHp4e8OfCer98y1P/DwDQbtmwN6P1/+973/uCNg888MAMLat6m/y7N954YzCH
m266KWhz2GGHxS9lww03DN4KBkGPPPJIXRubqusj6Dj77LPzSw8kbXrPpK5t7N2m97s//OEPs/8L
O/l78Fn0nvzoo48O3v3c5z6XX8Orr746aHbsscd23j300EODd2+++eZgDslB2HdXDO1E69sglQxv
g2Zrr7328Ne2b5u6zsfU3//93+cbB66//vpBt6WWIy1+j8VQ/0+87KHSSP3/F7/4xd5n5S233FL7
OixZsiQ74RZbbFFx5n3bx8ywd5skzATv/tM//VMwh+QKNuiaywwpmaGwQUpm6KYFmUH9f8y0hTsn
e2eqzTbbrHf7uk6T1157LX/DruxqpM0WLFjQrU0yef4ucCU2v8aNillW9Tb5d32NkCcSpESCwgYp
kaCbFkSCafX/g0xVuIvamg30Dim9Q2GDlN6hm3b0Dur/oZWy5/WQ6/9rudAN82rZu4GAkVdxl3YI
GN00GDDiN2Sg9r0/63r3cKEePxfW/uVbQP0/AEC7ZcPejNb/X3HFFUGbX/3VX129enXhDJPXb7/9
9v3337/csqq3yb+77777Zh8ulqzhokWLgjYXXnhh/FLyT8r78Y9/nJ32tNNOi9mQ/BPBfvKTnxTs
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
p47+R/+Tn/6HMv3PtPQ/yeh/6uh/9D/56X8o0/9MS/+TjP6njv5H/5Of/ocy/c+09D/J6H/q6H/0
P/npfyjT/0xL/5OM/qeO/kf/k5/+hzL9z7T0P8nof+rof/Q/+el/KNP/TEv/k4z+p47+R/+Tn/6H
Mv3PtPQ/yeh/6uh/9D/56X8o0/9MS/+TjP6njv5H/5Of/ocy/c+09D/J6H/q6H/0P/npfyjT/0xL
/5OM/qeO/kf/k5/+hzL9z7T0P8nof+rof/Q/+el/KNP/TEv/k4z+p47+R/+Tn/6HMv3PtPQ/yeh/
6uh/9D/56X8o0/9MS/+TjP6njv5H/5Of/ocy/c+09D/J6H/q6H/0P/npfyjT/0xL/5OM/qeO/kf/
k5/+hzL9z7T0P8nof+rof/Q/+el/KNP/TEv/k4z+p47+R/+Tn/6HMv3PtPQ/yeh/6uh/9D/56X8o
0/9MS/+TjP6njv5H/5Of/ocy/c+09D/J6H/q6H/0P/npfyjT/0xL/5OM/qeO/kf/k5/+hzL9z7T0
P8nof+rof/Q/+el/KNP/TEv/k4z+p47+R/+Tn/6HMv3PtPQ/yeh/6uh/9D/56X8o0/9MS/+TjP6n
jv5H/5Of/ocy/c+09D/J6H/q6H/0P/npfyjT/0xL/5OM/qeO/kf/k5/+hzL9z7T0P8nof+rof/Q/
+el/KNP/TEv/k4z+p47+R/+Tn/6HMv3PtPQ/yeh/6uh/9D/56X8o0/9MS/+TjP6njv5H/5Of/ocy
/c+09D/J6H/q6H/0P/npfyjT/0xL/5OM/qeO/kf/k5/+hzL9z7T0P8nof+rof/Q/+el/KNP/TEv/
k4z+p47+R/+Tn/6HMv3PtPQ/yeh/6uh/9D/56X8o0/9MS/+TjP6njv5H/5Of/ocy/c+09D/J6H/q
6H/0P/npfyjT/0xL/5OM/qeO/kf/k5/+hzL9z7T0P8nof+rof/Q/+el/KNP/TEv/k4z+p47+R/+T
n/6HMv3PtPQ/yeh/6uh/9D/56X8o0/9MS/+TjP6njv5H/5Of/ocy/c+09D/J6H/q6H/0P/npfyjT
/0xL/5OM/qeO/kf/k5/+hzL9z7T0P8nof+rof/Q/+el/KNP/TEv/k4z+p47+R/+Tn/6HMv3PtPQ/
yeh/6uh/9D/56X8o0/9MS/+TjP6njv5H/5Of/ocy/c+09D/J6H/q6H/0P/ldq/+/b/Sqob+/fep1
8SdGrxga+X3XeWMo+73RrwUufe+Vfan/KdP/6H/yu1b/v3H0qqG/1596Xdw9esXQyLXeGMq+OPq1
wKU3XNmX/2j0gjhTrznxDqf/E9L/pKf/oUz/My39TzJX+/91oxfEmbr7xDuc/k9I/5Oe/ocy/c+0
9D/J6H/q6H9u9P9Do9cAfV3nA93fHb1o6O+BU6+LF41eMTTyVdd5Yyjz9/+cg79zZV/qf8pO7f+n
j14w7X1Q/5PedT7Qef4/E/D8f6bl+f8kc/X5//qfMv2P/mcC1/lAp/+ZgP5nWvqfZK72v+f/UXbq
8//0f0L6n/yu84FO/zMB/c+09D/JXO1/3/9H2anf/6f/E7rs/98avQbo6gnX+UCn/5mA/mda+p9k
9D91Tu3/l4xeMO39suf/k921HvOs/5mA/mda+p9k9D91Tu1/z/9PyPf/kZ7+hzL9z7T0P8nof+ro
f/Q/+el/KNP/TEv/k4z+p47+R/+Tn/6HMv3PtPQ/yeh/6uh/9D/56X8o0/9MS/+TjP6njv5H/5Of
/ocy/c+09D/J6H/q6H/0P/npfyjT/0xL/5OM/qeO/kf/k5/+hzL9z7T0P8nof+rof/Q/+V2r/+8b
vWro702nXhfPG71iaOTJ13ljKPvi6NcCl/7KlX2p/ynT/+h/8rtW/79x9Kqhv9efel3cPXrF0Mi1
3hjK9D/n4A1X9uX3jV4QZ+plJ97h9H9C+p/09D+U6X+mpf9J5mr/v270gjhTd594h9P/CV32/2+O
XgN09YTrfKDT/0xA/zMt/U8y+p86p/b/Hx29YNr78COPPDR6DdDXdT7Q/eDoRUN/7zn1uvhTo1cM
jfz+67wxlP3e6NcCl37gyr7U/5Sd2v9PH71g2vug/ie963yg8/x/JuD5/0zL8/9J5urz///a6AVx
pv7IiXc4/Z+Q/ie/63yg0/9MQP8zLf1PMr7/jzqnPv9f/yd02f+fHr0G6Oqu63yg0/9MQP8zLf1P
MvqfOqf2/7NHL5j2ftbz/8nuWo950v9MQP8zLf1PMvqfOqf2v+f/J+T7/0hP/0OZ/mda+p9k9D91
9D/6n/z0P5Tpf6al/0lG/1NH/6P/yU//Q5n+Z1r6n2T0P3X0P/qf/PQ/lOl/pqX/SUb/U0f/o//J
T/9Dmf5nWvqfZPQ/dfQ/+p/89D+U6X+mpf9JRv9TR/+j/8lP/0OZ/mda+p9k9D919D/6n/z0P5Tp
f6al/0lG/1NH/6P/yU//Q5n+Z1r6n2T0P3X0P/qf/PQ/lOl/pqX/SUb/U0f/o//JT/9Dmf5nWvqf
ZPQ/dfQ/+p/8rtX/P/pMSO9fnXpdvGH0iqGRF1/njaHs4dGvBS796yv7Uv9Tpv/R/+R3rf4HAAhK
/1Om/9H/5Kf/AYCZfPQDUPKhE3eS/k9I/5Oe/gcAgFPp/4Qu+///PgiZ/cPRt04AAAjn343+GE97
/+uR/w8Z63DOCmVuZHN0cmVhbQplbmRvYmoKCjE2IDAgb2JqCjExMDYwCmVuZG9iagoKMTggMCBv
YmoKPDwvTGVuZ3RoIDE5IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJxljT0LwjAQ
hvf7Fe9caHqXpI2B0sGPgm6FgIM4qdWhVezi3zdpcZIb7oH37nlZCT70BiNnpeG8URVKX0aebnTM
8CRBmulOnAKMlI7czAMWnn+HnyTBkj6oz5JcCYuv/nZ0rgMZn2xaYnG4omgFhhH6Uy1WDLdSNrmu
ecNaqiaCl1VzDgfaBeqi24lVJhYyxHIkK9GmxeEyUrEfNWP7QkcdvvqYMHAKZW5kc3RyZWFtCmVu
ZG9iagoKMTkgMCBvYmoKMTY3CmVuZG9iagoKMjAgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5
cGUvSW1hZ2UvV2lkdGggNDA5Ni9IZWlnaHQgODA1L0JpdHNQZXJDb21wb25lbnQgOC9MZW5ndGgg
MjEgMCBSCi9GaWx0ZXIvRmxhdGVEZWNvZGUvQ29sb3JTcGFjZS9EZXZpY2VSR0IKL1NNYXNrIDIy
IDAgUgo+PgpzdHJlYW0KeJzs3Qm4HGWdKPw32yEBkkBI2IVIQNkUBhAIDAkIgoY7wqcyIsgYGEGW
YdiF4SJRvpFAGMigLAJCQORzDF6R8boMBGSeYRFEEUQ2Gb2KECQQiIFsRPpWTn2pVHo71XV6qdPn
93v+T9L91ttVb1Wdrvqfrv+pLpUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAoF8CQOd0+hAIAAAAAAAAAAAAAANGp4t/gUGt04dAAAAAAAAAAAAAABgwOl38CwxqnT4EAgAA
AAAAAAAAAMCA0eniX2BQ6/QhEAAAAAAAAAAAAAAGjKQKd9q0aXMBWuzCCy9U/w8AAAAAAAAAAAAA
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
/BnoeFCb+n+AUr76f4mQREgi1F7q/wEGkaT+X8Yl45Jx5aL+H2iRRuv/bwtHxYfJ7cPTi8KYLEfU
H4RpHw13bhrmjwgrNgwLDwzzbg+fSKbWPAyvPTU97bUwblJ4Pn72b+GTSfucMD3pNTIs3Sb899+H
r/8mbJtxWX2+/Jvh6PjhTuHJPm8bW3+t04N5Jwy5MvzjtuE3o8KSaM5fC59LCtLqD7ihpSwL65wW
/nVCeGVYWFlr2y4O68cPe8LypHGP8LP4YTSwpPFb4cj44V+FXzS0ZSoXWnUXlzWuDMO+Gv5h33D/
uPBaNP4xYdGe4eFzwyWPhV1bvaHWj7ZKb3u0cerv8dxLiX6e1w1vxe3/HbZJOj8fJsUPo6lRn1rb
6u5w0CfC7e8Kf4j22tjwxkfCD38cDsk3qox7rf+7Y7BHvaPsGur/gcLKV/8vhwxySDlkv3e6HHKQ
xiCWnGvU/wP0Ia7/HxZKX6i48ji92gW4E6tdo/x6KG2+ukP965h9vrxqTK87zyGhdFyNDn+fmknS
+HcV3aZmGHyjS/mHtV/+mQxXeCuj6r6I44LevRZ6Bx+3fD71wlNXN34ow8zjp9l/Bjoe1Jb+jVv9
PzBoNVz/LxGSCEmE2i79JlX/D9Dl4vp/GZeMS8aVVzpxUv8PNFGj9f+HhB/Hh8l00VSteCcM+Vz4
WtWJJ4Tr4kc1D8NrTy2bnJSQfTj8KGn8TLi5cj5jwqKnw/ZZltXny5Ob1n47/G0/1zo9mFPDV8q6
3RiO63PAjS7lyPCt+tv2zbDepeHzccv7whPJHKLBVG7qT4Z/ix9eHU7OvmWq7tCqu7is8R/CV+vv
u9ZtqI3Dn+LHx4RvJLVJ/d/pZUs5KVwTP/5SuDDpfGH4Uvzw5HB1rW11SriqzmZpdFQZ91p/dofo
3RB1jrJrqP8HCitf/b8cMsgh5ZD93ulyyEEag1hyrlH/D9CHuP5/2uoLbZeH0ntCaZ3efy+vdgHu
H3tvpLZh7zW7saH08dUdTl77HFTryl3Gl6cjuch4Qyjt3/uqnlDaofdmaGUd/mXV3wyvmrppKJ23
unG/iiFdEUrbrvqLx9InV7dcnGHwjS4l6jZp9XXS0HuhOW7fp/e1UWwVSh+pe5O0sjG/t2K/TOvt
09N7O7jbem9PN7K3Zfjqxc3pXc0+Zx4/zf4z0PGgtvRv3Or/gUGr4fp/iZBESCLUduk3qfp/gC4X
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
91odOfmSt90s7q/G2A7u7lqwcnd3nXN310Ly/9Be8Ze3A/n/+O96n/70p+OHLrroovBQtljxan/w
gx9kPeGBBx6Y1fRsp52V4GOPPfbDH/5w+KP5XKGR0543PrJsZb797W9nZatM7dbSFKxcSzOnpRlC
/h/SF39Ju5T/z8riU0891f/ovF8sWUoOOOCAsIZwHibbRYe/Md1111354De/+c2w5Ite9KKCefa/
CqebKm0HvVnByvVmc3qzscj/w0jxdyTZ/H+2u953333znz/60Y/2huzuKl3i8qGHHtpmm23ywWxX
3IsaoXyPl/nVr36Vje+99975/2bLP/zww/mvx0GjbKf6wAMP9LaGt7fddtswni0z7BVdeeWV+eD6
9evj8csvvzwfjwP8WfUZuJKey89O/Lydv/xss+T/ARIR743bkv/ffvvtDzjggJNOOmndunXxwiFv
nwn/qq639R/ihfEdd9xxjIV7Vc4nHHroofFg8SF5pWlkL3zkwvHKs18cuAFjO++88xiv8amnnvre
9753yCGHhPHPf/7zU3necL5ry5YtA+eTHZWEfxE5TDz5V73qVfngkiVLntgq/CPWI444ovhlVn2D
en3HKb0+/c9SvDGrvt5zzjln4DIHH3zw2rVrwz+WqfoepUD+H4B6hFrTmfz/2HfGnMotSufdKnRu
60nUq6++uszkB845F992s2Cxuee2kSW3g7u7Dlu5u7vm3N21gPw/tFf85e1A/v/pp58OZ1p23nnn
cLmJu+++O5zqecUrXhH+pDhwtddff/2iRYsG7rTDYsMenbeqYdOOx8uUrax2h79fB8Nqt5Zm2Mq1
NDktzUDy/5C++Evajfz/Pvvsk/9w0UUX9T8a/1b5UnL66aeHh0K4KKuYYTD8RThOz77zne8smOe8
h5xuqrod9GbDVq43y+nNxiD/DyPF35Fk8//Z/1522WX5z8uWLYvT1/FXu+olLuPg1q9//evQCIVd
xyWXXBLn80OyK/fyl788PJQ3aR//+MfDSPZowSvKVpsPzrvqaTg9tWXLlvj0zrDN4vKzEz5v5y8/
2yz5f4BExHvjxPP/IxdOJP8fn0DLXHPNNQVrmGn+P155gTFeY+62224L43F/O9Pnjdunk0466b77
7uttvTflsJV89rOfDeNf/OIX43NoZc4ETutzMvbGrPp6N23adN555+26665zg3zoQx8a7z1Kgfw/
APUItaYb+f9J7ow5lVuULlu27MYbb5x3C8slS5bEp6qGTb7kbTeLVzLednB31/6Vu7uru7uWIf8P
7RV/eTuQ/+9tTfssXbo0X3LVqlW9rX9dPeqoo/KR3Xbb7Re/+EXxauM/9X7sYx/LNsuGDRt++MMf
fuITnzj00EMrzWrYAvF4Xraywhcu6Tb33LIV1+7spd1www1Z5fr6178+7yxQvH4tTf/KtTRammLy
/5C++Evajfz/pZdeGvaf2Y66N2T3W6mUxH8LO/HEE/PBuAFYuXJlPviWt7wlDOYXaR82z3jc6abx
toPerH/lejO92STk/2Gk+DuScv5/48aNy5cvz/932L9Hq3qJy/POOy+Mf+lLX8qrbbZLDP8i75hj
jolbpmz5eIbZ7jE8dPDBB/eeG0TPHi14RfFdfsqMFwy6/KzLz+YGXn62WfL/AImI98Ztz/9X+rdy
k/zDuuIZZkfxoUPI+sZQhQeuYab/ADNe+b333jtyA5Z/jbkNGzaE8axRqed5w2mQzP/8z//kg/Nu
mzVvkuGvvX/yJ39y8skn5z/vtttu4VaqBU83rc/JyAWGbcyqrzeX9bE333zzFVdcceaZZ65YsSIs
+cIXvrD/dZV5j1Ig/w9APUKt6Ub+f5I7Y07lFqXDbmGZdSkjJ99v2G03R66k6nZwd9f+lbu7q7u7
liH/D+0Vf3nbkv/vN2/hrFiE2Ey2677kkkvyn7PB66+/fthqw+DixYvzkawB2Lx5c8lZVVogHg9l
69577w2DcdmKa/dHP/rRMJ79PGz9Wpr+lWtptDTF5P8hffGXtBv5/2eeeWbffffNf85L/MAdUaVS
8tBDD4WLyu6zzz7ZyKOPPpqnvnfaaad8PCsr2fjee++d/2+2/MMPP1wwz3jc6abxtoPerH/lejO9
2STk/2Gk+DuScv4/s3bt2vx/h13loOolLm+66aYwmJW8vBF6xzvekT106qmnzm0925P9b1hm3p1c
fvOb38RXg8+qbfg5G88eHfmKxhjvH3T5WZef7Z9GIuT/ARIR743bnv+vdHg7ybHwyBn+zd/8TT6S
/VC85NjnTMJtQHvPvc9UvPLsF8Ng/78/7VfpNWZ+8IMfhPG99tqrnueNO6Jw4YX4397O9X1U3v3u
d+fjy7bKfz7rrLPKTGNan5ORCwzbmGO83nmyQ4+wZNbD54NV36MUyP8DUI9Qa7qR/5/kzphTuUXp
sH+1+tKXvnTk5MvfdrNgJeNth567u/at3N1d3d21DPl/aK/4y9uZ/H8vutrbrrvuGtJuH/jABwpW
GwZf8IIXhMFVq1atXr36a1/72sBrY47c9Q1bIB4fWbbi2n3XXXeF8eznggloaeatXEujpSkm/w/p
i7+k3cj/Z/972WWX5T8vW7YsDgnPTVDC4qvF/vrXvw7hsRCXzUpVHCMPl5MtmOfYk4nX43RTeEhv
NsY2HLiSnt7s/+leb1ZM/h9Gir8jief/s53qfvvtN9cn/ErVS1w+/fTTIeK+aNGi/Ifrrrsue+jL
X/5y/r/hn+BlS877l2KZE044ITxjuMx7Jhsv84rGGO8fdPlZl5/tn0Yi5P8BEhHvjdue/3/ggQey
g+h84fyWglmL+G//9m/Zz/lgfHu7SgsXzKT8DAcuWWkad911V7jyWPZb2WLzFp638uwXQyu44447
Xn755dnTbdq0Kftv9lsXXHBBfpuqMV5j1mTOuwHTGWecUcPzZo4++ugweM455zz22GNf+9rXCm50
nvnRj3401yc+mTOtN6jgtYy9Mau+3mw9q1evvuWWWx588MHNmzc/+uijF198cVjyNa95zXjvUQrk
/wGoR6g13cj/T+XOmCXHBw4Ou4RFfPpu4Eqq3nZz2Ph426Hn7q59K3d31567u5Yg/w/tFX9525L/
L7P85s2bjzrqqPi3Xve61z377LNlVnvOOecMLA1ZY7B27dqsuJSf1bAF4vGRZSuu3VntCOPDandO
SzNv5VqanpamkPw/pC/+knYm/5/t6pcvX57/7wUXXDBwR1S1lIR/BZn50pe+9KY3vWlu65+0Nm3a
tMcee2Q/H3PMMfE1S7PlR85z7MnE4043hYf0ZmNsw4ErGTiuN+tGb1ZM/h9Gir8jief/M1dccUXB
DnOMS1yuWrUqXtXixYsff/zxbDzbW8YFa27rZR/6f/0rX/lK/3wy2XjJV1R1fOCgy8/O7nnbfvnZ
Zsn/AyQi3hu3Pf+f+fd///dwq8p5svF5ZwIrLTxsJuVnOGzJStP4zGc+E25cHpx//vnDVv79738/
3DZ0oKqvcaCVK1fO+9Pw1J83DN58883910k4++yzh60kd+SRR8YLvPa1r53RG1Q8jTE2ZtXXW7Dm
pUuXZu/LeO9RCuT/AahHqDXdyP/P+o6cI1cy9h9kq952c9j4eNuh5+6uhSsvMPYGcXfXXIvu7jqQ
/D+0V/zl7VL+/+GHHw5puty+++770EMPlVntpk2bzjvvvHkXYQg+9KEPlZ/VsAUqjVet3TktTcHK
C4y9QbQ0ufa2NPL/kL74S9qZ/H9m7dq1+f8OuwBU1VJy0003hcHTTz897wfe8Y53ZA+deuqpc1sv
eJv9b1jmG9/4Rpl5jjeZYeupNB4POt1Uabx/UG+mN+ufRhvJ/8NI8Xck/fz/pk2b9t9//2G74jEu
cTlvL3HccceFh44//vj4oTiMHc8n/1eTsWwkGy/5iqqOl9+nDVzS5WerbvC2X362WfL/AImI98Yd
yP/3tt6Yb/Xq1a9+9auXLVu27bbb7rbbbkceeWT20gb+7bL8wpWahKqvpdKc161bt2rVql122WWn
nXY64ogjrr322uKVZy3KxRdfnPUtWauwaNGi7bff/oADDnjTm96UrX9eE1LmNeae97znZZ1Vtp4T
Tjjh85///P/93//1z3O6zxuPf/e73822QPbyszkcdthhn/vc54q3QOaaa66JF/jnf/7n/mWm8gaN
/DyMsTErvd4777wzO4rJjlZWrFiRbfN8titXrjzvvPP6b4ZV/j1Kgfw/APUItaYb+f9Z35Fz4Hg8
OPYN2avedrO4T6i6HXLu7jps5e7uOufurkPI/0N7xV/eLuX/QzU/YKv85ze/+c3lV7tx48abb775
iiuuOPPMM1esWBEWe+ELX1h+VsMWqDT+kpe8JAzec889Yfyuu+4qnoCWZtjKtTRzWpo+8v+QvvhL
2qX8f9Zy7LfffnN9wq9ULSVZ8Q1J7EWLFuU/XHfdddlDX/7yl/P/3XbbbfMfsiWz5cvMc7zJDFtP
pfF40OmmsTddPqI305v1T6ON5P9hpPg7kn7+P3PVVVfNPVf8aNVLXMaXlM9ceuml4aErr7wyfui2
224bOM/3ve99854iG6n0iiqNF7yWkk/n8rOVxtt++dlmyf8DJCLeGyeY/wfIyf8DUI9Qa7qR/5/1
HTkHjseD8VVT4tuGnnnmmcUrqXrbzfC37LlBt64e486wPXd3fe7K3d015+6uxeT/ob3iL29n8v+f
+tSnwsI3bRX+95JLLhljtb/5zW/CYttvv30YL+5DCtZfaTzUoLnn1u6PfvSjxfPX0sxpabQ0pcn/
Q/riL2mX8v+ZK664Yq5PeHSMMxurVq2KV7V48eLHH388G3/yySfji7RnsiXLz3OMyQxbT6XxeNDp
prE3XRjUm83uefVmtZH/h5Hi70gr8v+bNm2Kr73Q/9WudInLZ599NlxuPbN+/frw0P333x+i79ky
W7ZsGTjPO+64Y+65spFKr6jSePl9WsGSLj9b6Y1o9eVnmyX/D5CIeG8s/w8kS/4fgHqEWtON/P9M
74w5bDweXLZs2U033bRx48Z169aFE61Lliz52c9+VrySqrfdDFf0zXzmM5+Zd9m6Me4M23N31+eu
3N1dc+7uWkz+H9or/vJ2I/9/++23h+upnnrqqfngaaedlo9kD2ULFK82q02rV6++5ZZbHnzwwc2b
Nz/66KMXX3xxWOw1r3lNWLK4DymYdqXxe+65J7yiULtvuOGGcLHQYZtFSzOnpdHSlCb/D+mLv6Qd
y/9ndWH//feft3MOj45xZmNeMva4444LDx1//PHxQ3FmeOQ8x5jMsPVUGo8HnW4ae9P1P8XIX9eb
Vd3gerPayP/DSPF3JKn8P9B28v8AiYj3xvL/QLLk/wGoR6g13cj/92Z5Z8xh4/HgvFuFzm29lMdn
PvOZkSupetvNv//7vy9+dVXvDJtzd9d4eXd3zbm7awH5f2iv+Mvblvz/QPliTzzxxEte8pJ8ZM89
93z44Yfz8eyl7bXXXvl4tkC2WP9qyzzX0qVLs/IUlhzZhwzbN1Ydv/rqq7fZZpt5z1JQuwMtTby8
lianpRlI/h/SF39JO5b/z1x11VXz9qvxo1XPbMRXPs9ceuml4aErr7wyfui2226rNM+qk5nKeDzo
dFOl8ZHzGbmk3qzSuN6sNvL/MFL8HZH/B6ZI/h8gEfHeWP4fSJb8PwD1CLWmM/n/3izvjDlwfN7g
tddee+SRR+60004777zzqlWr1q1bV3LylW67uXnz5osuuuiQQw7Jlh+2TKU7w+bc3XXe8u7u2nN3
10Ly/9Be8Ze3A/n/rJELI3l1C6677rrwUOj3Bu677rzzzjVr1hx//PErVqzISk++0165cuV55513
7733xusc2YcM2zdWHc98+9vffuMb37jrrruG2r1hw4aw8NKlSwduNy3NvOW1ND0tzRDy/5C++Eva
vfz/pk2bssZjKiUs8+yzz4argmfWr18fHrr//vtDQjtbZsuWLZXmWXUyVevawPF5g043jb3pChQs
qTer9Ebozeoh/w8jxd8R+X9giuT/ARIR743l/4Fkyf8DUI9Qa9qV/0+Kkg0Llvw/tFf85U05/0+/
73//++G9W7lyZdPTgXaT/4f0xV/S9ub/GYP9MzCP/D+MJP8PzIj8P0Ai5P+BVpD/B6Ae8v+TU7Jh
wZL/h/aS/2+v0047Lbx3q1evbno60G7y/5A++f8Fy/4ZmEf+H0aS/wdmRP4fIBHy/0AryP8DUA/5
/8kp2bBgyf9De8n/t8IrX/nKT33qUz/+8Y83bNiwcePGn/70p2eccUZ441784hc/+eSTTc8R2k3+
H9In/79g2T8D88j/w0jy/8CMyP8DJEL+H2gF+X8A6iH/PzklGxYs+X9oL/n/Vpgb7vDDD1+/fn3T
E4TWk/+H9MVfUvn/BcX+GZhH/h9Gir8j8v/AFMn/AyQi3hvL/wPJkv8HoB6h1sj/j03JhgVL/h/a
K/7yyv8n67bbbjv33HNXrly5dOnSbbfddpdddnnpS1968sknf/WrX3322Webnh10gfw/pE/+f8Gy
fwbmkf+HkeT/gRmR/wdIhPw/0Ary/wDUQ/4fYGzy/9Be8v8APfl/aAP5fwBy8v8wkvw/MCPy/wCJ
kP8HWkH+H4B6yP8DjE3+H9pL/h+gJ/8PbSD/D0BO/h9Gkv8HZkT+HyAR8v9AK8j/A1AP+X+Ascn/
Q3vJ/wP05P+hDeT/AcjJ/8NI8v/AjMj/AyRC/h9oBfl/AOoh/w8wNvl/aC/5f4Ce/D+0gfw/ADn5
fxhJ/h+YEfl/gETEe+PttttuR4AkZTso3SMANZD/Bxib/D+0l/w/QE/+H9pA/h+AnPw/jBR/R264
4YZfAEzJ9ddfrwoDpGAOoIWa3ncC0Fmh1sj/A1Ql/w/tFX955f+BBUv+H9IXf0nl/wEWMvl/GGlq
4QyAQk3v7QAWrqYrAMA4mt53AtBZodbI/wNUJf8P7RV/eeX/gQVL/h/SF39J5f8BFjL5fxhpauEM
gEJN7+0AFq54b3zQQQetAkhStoPSPQJQg1Br5P8BqpL/h/aKv7zy/8CCJf8P6Yu/pPL/AAuZ/D+M
NFaMF6Cypvd2AAtXvDe+8MILm54OwGDZDkr3CEANQq3ZfffdjwCgiuXLl2vaoaXiL+/KlSub3p0A
NOPQQw/VzEDi4i/pwQcf3PRuA4DG7Lfffjo3KBZ/R84+++w1AFNy1llnqcIAKZD/B1pB/h+AeswB
MCVN79GBCpreYQCkqOl9MzBA0zsGABLVdIGCFMXfkZ/85CdNTwfojttvv10VBkhBvDeW/weSJf8P
QD1m9wcIgIWm6T06UEHTOwyAFDW9bwYGaHrHAECimi5QkKL4OyL/D0yR/D9AIuK9sfw/kCz5fwDq
EWrN4sWLlwFQxQ477KBph5aKv7y77bZb07sTgGYsXbpUMwOJi7+ku+yyS9O7DQAa4zQUjCT/D8yI
/D9AIuT/gVaQ/wegHqHWnHLKKU3PBaBlPvKRj2jaoaXiL+8jjzzS9HQAmnHfffdpZiBx8Zf01ltv
bXo6ADRmzZo1OjcoJv8PzIj8P0Ai5P+BVpD/B6Ae8v8AY5P/h/aS/wfoyf9DG8j/A5CT/4eR5P+B
GZH/B0iE/D/QCvL/ANRD/h9gbPL/0F7y/wA9+X9oA/l/AHLy/zCS/D8wI/L/AImQ/wdaQf4fgHrI
/wOMTf4f2kv+H6An/w9tIP8PQE7+H0aS/wdmRP4fIBHy/0AryP8DUA/5f4Cxyf9De8n/A/Tk/6EN
5P8ByMn/w0jy/8CMyP8DJEL+H2gF+X8A6iH/DzA2+X9oL/l/gJ78P7SB/D8AOfl/GEn+H5gR+X+A
RMR74+22225HgCRlOyjdIwA1kP8HGJv8P7SX/D9AT/4f2kD+H4Cc/D+MJP8PzIj8P0Ai5gBaqOl9
JwCdFWqN/D9AVfL/0F7xl1f+H1iw5P8hffGXVP4fYCGT/4eRphbOACjU9N4OYOFqugIAjKPpfScA
nRVqjfw/QFXy/9Be8ZdX/h9YsOT/IX3xl1T+H2Ahk/+HkaYWzgAo1PTeDmDhivfGBx100CqAJGU7
KN0jADUItUb+H6Aq+X9or/jLK/8PLFjy/5C++Esq/w+wkMn/w0hjxXgBKmt6bwewcMV74wsvvLDp
6QAMlu2gdI8A1CDUmt133/0IAKpYvny5ph1aKv7yrly5sundCUAzDj30UM0MJC7+kh588MFN7zYA
aMx+++2nc4Ni8Xfk7LPPXgMwJWeddZYqDJAC+X+gFeT/AajHHABT0vQeHaig6R0GQIqa3jcDAzS9
YwAgUU0XKEhR/B35yU9+0vR0gO64/fbbVWGAFMR7Y/l/IFny/wDUY3Z/gABYaJreowMVNL3DAEhR
0/tmYICmdwwAJKrpAgUpir8j8v/AFMn/AyQi3hvL/wPJkv8HoB6z+wMEwELT9B4dqKDpHQZAipre
NwMDNL1jACBRTRcoSFH8HZH/B6ZI/h8gEfHeWP4fSJb8PwD1CLXmlFNOaXouAC3zkY98RNMOLRV/
eR955JGmpwPQjPvuu08zA4mLv6S33npr09MBoDFr1qzRuUEx+X9gRuT/ARIh/w+0gvw/APWQ/wcY
m/w/tJf8P0BP/h/aQP4fgJz8P4wk/w/MiPw/QCLk/4FWkP8HoB7y/wBjk/+H9pL/B+jJ/0MbyP8D
kJP/h5Hk/4EZkf8HSIT8P9AK8v8A1EP+H2Bs8v/QXvL/AD35f2gD+X8AcvL/MJL8PzAj8v8AiZD/
B1pB/h+Aesj/A4xN/h/aS/4foCf/D20g/w9ATv4fRpL/B2ZE/h8gEfL/QCvI/wNQD/l/gLHJ/0N7
yf8D9OT/oQ3k/wHIyf/DSPL/wIzI/wMkIt4bH3TQQasAkpTtoHSPANRA/h9gbPL/0F7y/wA9+X9o
A/l/AHLy/zCS/D8wI/L/AImYA2ihpvedAHRWqDXy/wBVyf9De8VfXvl/YMGS/4f0xV9S+X+AhUz+
H0aaWjgDoFDTezuAhavpCgAwjqb3nQB0Vqg18v8AVcn/Q3vFX175f2DBkv+H9MVfUvl/gIVM/h9G
mlo4A6BQ03s7gIWr6QoAMI6m950AdFaoNfL/AFXJ/0N7xV9e+X9gwZL/h/TFX1L5f4CFTP4fRppa
OAOgUNN7OwBgypR4AKCNwpmKl73sZecBUMXrXvc6p3yhpeIv7/ve976mdycAzXj3u9+tmYHExV/S
d7zjHU3vNgBozDHHHKNzg2LTSPUCjNb03g4AmCZVHgBoqaZOjAB0T9N7dKCCpncYAClqet8MDND0
jgGARDVdoAC6wB4VAADH2gBASzXxpwmAbmp6jw5U0PQOAyBFTe+bgQGa3jEAkKimCxRA69mpAgDg
cBsAaK+6/hwB0H1N79GBCpreYQCkqOl9MzBA0zsGABLVdIECaD07VQAAHG4DAMDs6LEBgK7S5wAA
AADUTNALAAD/4h4AAGZHgw0AdJg+BwAAAKBmUl4AAMj/AwDA7OixAYCu0ucAAAAA1EzQCwCAuA/c
YYcdtt9+e50hAABMi1OvAECH6XMAAAAAaib/DwBA3Aeee+6555xzjs4QAACmxdlXAKCr9DkAAAAA
NYtPxeyzzz577rmnkzMAAAtN3AHuuOOO/71V9oPOEAAAJufqKwBAh+lzAAAAAGoWn4pZu3btJZdc
4uQMAMBCE3eA5557bj7oFgAAADAVA/P/emwAoAP0OQAAAAA1i0/CrFixYtOmTU8//fQ+++zj5AwA
wMIR9375xf/zcbcAAACAycUd9fOe9zwNNgDQJfocAAAAgJrFJ2HWrl2bD/7jP/6jkzMAAAtH3PuF
i//n3AIAAAAmFHfU11xzzeLFi/XYAEA3xF3NW9/61t///d/X5wAAAADMVHz6Jb/4fz7uFgAAAAtH
3PXFF//PuQUAAABMIu6ljz766Gzk9NNP12ADAN0QWpptttnmpz/96W233RbfBaDp2QEAAAB0UPxn
pnDx/5xbAAAALBBx1zfv4v85twAAAICxxb30unXrspH169e7BQAA0AFxP/PHf/zH+eCb3/xmfQ4A
AADAjMQnXuKL/+fcAgAAYCGI+73+i//n3AIAAADGE3fR+cX/c+985zs12ABA24VmJr/4fz54++23
uwUAAAAAwIzEf2Cad/H/nFsAAAB0XtzvDbz4f84tAAAAYAxxF51f/D/nFgAAQNvFnUy4+H/OLQAA
AAAAZiE+5dJ/8f+cWwAAAHRb3OkNu/h/zi0AAACgqrh/PuaYY+Y96hYAAECrhTYmvvh/zi0AAAAA
AGYh/tPS5ZdfPmwxtwAAAOiwuNM755xzihc+++yzdYYAAFBe3D9/85vfnPeoWwAAAO0V9zBve9vb
+hdwCwAAAACA6YpPtgy7+H/OLQAAALoq7vGKL/6fe+CBB9wCAAAASoo75/6L/+fcAgAAaKnQwGyz
zTZ33nln/wJuAQAAAAAwXfEflQou/p9zCwAAgE6Ke7yRF//PuQUAAACUFHfO/Rf/z7kFAADQRnH3
MvDi/7kTTjhBnwMAAAAwFfFpluKL/+fcAgAAoHvi7q7Mxf9zbgEAAABlxD3zsIv/5/7iL/5Cgw0A
tEtoXYZd/D/nFgAAAAAA0xL/OWnkxf9zn/zkJ/0RCgCgS+LuruTF/3NuAQAAACPFPfN3vvOdgiXd
AgAAaJe4bym4+H/OLQAAAAAAJhefYClz8f+cWwAAAHRJ3NeVv/h/zi0AAACgWNwtv/71rx+5vFsA
AAAtEpqW4ov/59wCAAAAAGBy8R+SSl78P+cWAAAAnRH3dZUu/p9zCwAAACgQd8s333zzyOXXr1+/
ZMkSPTYAkL64Y3n7299e5lfcAgAAAABgEvGplf3337/kxf9zbgEAANANcUdX9eL/ObcAAACAYeI+
uczF/3NnnHGGBhsASF9oV8pc/D93xx13uAUAAAAAwNjiPyFddtllVX/dLQAAADog7ujGuPh/zi0A
AABgoLhPLnPx/9yvfvUrtwAAABIX9yolL/6fe8tb3qLPAQAAABhDfFJl//3337hxY9U1uAUAAEDb
xb3ceBf/z7kFAAAA9Is75De84Q2VftctAACAxIVGZdttt73nnnvK/6JbAAAAAACMJ/7j0RgX/8+5
BQAAQKvFvdzYF//PuQUAAADME3fI5S/+n3MLAAAgZXGXctJJJ1X9dbcAAAAAAKgqPp0y3sX/c24B
AADQXnEXN8nF/3NuAQAAALG4N6568f+cWwAAAMkKLUrVi//n3AIAAAAAoKr4z0ZjX/w/5xYAAAAt
NTdjTb8+AABoUtwbV734f84tAACANMX9yRgX/8+5BQAAAABAefGJlB122OH666+/aQJf/epX/REK
AKB1phPxH6XpVwkAAM2Iu+LxLv6fe9e73qXBBgBSE5qTRYsWjXHx/5xbAAAAAACUJ+UFAMCse0Kd
IQAAC1ncFd9yyy1jr8ctAACA1MSdycknnzzJqv7gD/5AnwMAAAAw0uzCXU7OAAC0iLYQAABmJG6J
jz322AnX5hYAAEBSQlsyycX/c24BAAAAAFDGrCNeTs4AAHSPTg8AAMqL++d99933sMkceOCBGnIA
IBFxW7JkyZIJ+5zMdtttp9UBAAAAKDbtpP9gTb9KAACmSacHAAAlOfsKAHSYPgcAAAAgcU62AADQ
0xYCAEBpsw7FacsBgKbocwAAAADS50wLAAA9bSEAAJRTTyhOWw4ANEKfAwAAAJA+Z1oAAOhpCwEA
YAZE3QCADtPnAAAAADTCaRkAAHraQgAAmAH5fwCgw/Q5AAAAAI1wWgYAgJ62EAAAZkD+HwDoMH0O
AAAAQCOclgEAoKctBACAGZD/BwA6TJ8DAAAA0AinZQAA6GkLAQBgBuT/AYAO0+cAAAAANMJpGQAA
etpCAACYAfl/AKDD9DkAAAAAjXBaBgCAnrYQAABmQP4fAOgwfQ4AAABAI5yWAQCgpy0EAIAZkP8H
ADpMnwMAAADQCKdlAADoaQsBAGAG5P8BgA7T5wAAAAA0wmkZAAB62kIAAJgB+X8AoMP0OQAAAACN
cFoGAICethAAAGZA/h8A6DB9DgAAAEAjnJYBAKCnLQQAgBmQ/wcAOkyfAwAAANAIp2UAAOhpCwEA
YAbk/wGADtPnAAAAADTCaRkAAHraQgAAmAH5fwCgw/Q5AAAAAI1wWgYAgJ62EAAAZkD+HwDoMH0O
AAAAQCOclgEAoKctBACAGZD/BwA6TJ8DAAAA0AinZQAA6GkLAQBgBuT/AYAO0+cAAAAANMJpGQAA
etpCAACYAfl/AKDD9DkAAAAAjXBaBgCAnrYQAABmQP4fAOgwfQ4AAABAI5yWAQCgpy0EAIAZkP8H
ADpMnwMAAADQCKdlAADoaQsBAGAG5P8BgA7T5wAAAAA0wmkZAAB62kIAAJgB+X8AoMP0OQAAAACN
cFoGAICethAAAGZA/h8A6DB9DgAAAEAjnJYBAKCnLQQAgBmQ/wcAOkyfAwAAANAIp2UAAOhpCwEA
YAbk/wGADtPnAAAAADTCaRkAAHraQgAAmAH5fwCgw/Q5AAAAAI1wWgYAgJ62EAAAZkD+HwDoMH0O
AAAAQCOclgEAoKctBACAGZD/BwA6TJ8DAAAA0AinZQAA6GkLAQBgBuT/AYAO0+cAAAAANMJpGQAA
etpCAACYAfl/AKDD9DkAAAAAjXBaBgCAnrYQAABmQP4fAOgwfQ4AAABAI5yWAQCgpy0EAIAZkP8H
ADpMnwMAAADQCKdlAADoaQsBAGAG5P8BgA7T5wAAAAA0wmkZAAB62kIAAJgB+X8AoMP0OQAAAAvQ
HJCYpvcKACSt6TIFQLqarlEAAInSNQEAHabPAQAAWIBqTCIApTS9VwAgaU2XKQDS1XSNAgBIlK4J
ALqhkfMtAMDYmu4dAKDLmq7zwHxN7xUASFrTZQqAdDVdowAAEqVrAoBuaOR8CwAwtqZ7BwDosqbr
PDBf03sFAJLWdJkCIF1N1ygAgETpmgCgGxo53wIAjK3p3gEAukzZBQBoEZ0bAIEjegCAMnRNANAN
Uw8lAgAz1XTvAABdpuwCALSIzg2AwBE9AEAZuiYA6AY1HQASp1gDQG2UXQCAFtG5ARA4ogcAKEPX
BADdoKYDQOIUawCojbILANAiOjcAAkf0AABl6JoAoBvUdABInGINALVRdgEAWkTnBkDgiB4AoAxd
EwB0g5oOAIlTrAGgNsouAECL6NwACBzRAwCUoWsCgG5Q0wEgcYo1ANRG2QUAaBGdGwCBI3oAgDJ0
TQDQDWo6ACROsQaA2ii7AAAtonMDIHBEDwBQhq4JALpBTQeAxCnWAFAbZRcAoEV0bgAEjugBAMrQ
NQFAN6jpAJA4xRoAaqPsAgC0iM4NgMARPQBAGbomAOgGNR0AEqdYA0BtlF0AgBbRuQEQOKIHAChD
1wQA3aCmA0DiFGsAqI2yCwDQIjo3AAJH9AAAZeiaAKAb1HQASJxiDQC1UXYBAFpE5wZA4IgeAKAM
XRMAdIOaDgCJU6wBoDbKLgBAi+jcAAgc0QMAlKFrAoBuUNMBIHGKNQDURtkFAGgRnRsAgSN6AIAy
dE0A0A1qOgAkTrEGgNoouwAALaJzAyBwRA8AUIauCQC6QU0HgMQp1gBQG2UXAKBFdG4ABI7oAQDK
0DUBQDeo6QCQOMUaAGqj7AIAtIjODYDAET0AQBm6JgDoBjUdABKnWANAbZRdAIAW0bkBEDiiBwAo
Q9cEAN2gpgNA4hRrAKiNsgsA0CI6NwACR/QAAGXomgCgG9R0AEicYg0AtVF2AQBaROcGQOCIHgCg
DF0TAHSDmg4AiVOsAaA2yi4AQIvo3AAIHNEDAJShawKAblDTASBxijUA1EbZBQBoEZ0bAIEjegCA
MnRNANANajoAJE6xBoDaKLsAAC2icwMgcEQPAFCGrgkAukFNB4DEKdYAUBtlFwCgRXRuAASO6AEA
ytA1AUA3qOkAkDjFGgBqo+wCALSIzg2AwBE9AEAZuiYA6AY1HQASp1gDQG2UXQCAFtG5ARA4ogcA
KEPXBADdoKYDQOIUawCojbILANAiOjcAAkf0AABl6JoAoBvUdABInGINALVRdgEAWkTnBkDgiB4A
oAxdEwB0g5oOAIlTrAGgNsouAECL6NwACBzRAwCUoWsCgG5Q0wEgcYo1ANRG2QUAaBGdGwCBI3oA
gDJ0TQDQDWo6ACROsQaA2ii7AAAtonMDIHBEDwBQhq4JALpBTQeAxCnWAFAbZRcAoEV0bgAEjugB
AMrQNQFAN6jpAJA4xRoAaqPsAgC0iM4NgMARPQBAGbomAOgGNR0AEqdYA0BtlF0AgBbRuQEQOKIH
AChD1wQA3aCmA0DiFGsAqI2yCwDQIjo3AAJH9AAAZeiaAKAb1HQASJxiDQC1UXYBAFpE5wZA4Ige
AKAMXRMAdIOaDgCJU6wBoDbKLgBAi+jcAAgc0QMAlKFrAoBuUNMBIHGKNQDURtkFAGgRnRsAgSN6
AIAydE0A0A1qOgAkTrEGgNoouwAALaJzAyBwRA8AUIauCQC6QU0HgMQp1gBQG2UXAKBFdG4ABI7o
AQDK0DUBQDeo6QCQOMUaAGqj7AIAtIjODYDAET0AQBm6JgDoBjUdABKnWANAbZRdAIAW0bkBEDii
BwAoQ9cEAN2gpgNA4hRrAKiNsgsA0CI6NwACR/QAAGXomgCgG9R0AEicYg0AtVF2AQBaROcGQOCI
HgCgDF0TAHSDmg4AiVOsAaA2yi4AQIvo3AAIHNEDAJShawKAblDTASBxijUA1EbZBQBoEZ0bAIEj
egCAMnRNANANajoAJE6xBoDaKLsAAC2icwMgcEQPAFCGrgkAukFNB4DEKdYAUBtlFwCgRXRuAASO
6AEAytA1AUA3qOkAkDjFGgBqo+wCALSIzg2AwBE9AEAZuiYA6AY1HQASp1gDQG2UXQCAFtG5ARA4
ogcAKEPXBADdoKYDQOIUawCojbILANAiOjcAAkf0AABl6JoAoBvUdABInGINALVRdgEAWkTnBkDg
iB4AoAxdEwB0g5oOAIlTrAGgNsouAECL6NwACBzRAwCUoWsCgG5Q0wEgcYo1ANRG2QUAaBGdGwCB
I3oAgDJ0TQDQDWo6ACROsQaA2ii7AAAtonMDIHBEDwBQhq4JALpBTQeAxCnWAFAbZRcAoEV0bgAE
jugBAMrQNQFAN6jpAJA4xRoAaqPsAgC0iM4NgMARPQBAGbomAOgGNR0AEqdYA0BtlF0AgBbRuQEQ
OKIHAChD1wQA3aCmA0DiFGsAqI2yCwDQIjo3AAJH9AAAZeiaAKAb1HQASJxiDQC1UXYBAFpE5wZA
4IgeAKAMXRMAdIOaDgCJU6wBoDbKLgBAi+jcAAgc0QMAlKFrAoBuUNMBIHGKNQDURtkFAGgRnRsA
gSN6AIAydE0A0A1qOgAkTrEGgNoouwAALaJzAyBwRA8AUIauCQC6QU0HgMQp1gBQG2UXAKBFdG4A
BI7oAQDK0DUBQDeo6QCQOMUaAGqj7AIAtIjODYDAET0AQBm6JgDoBjUdABKnWANAbZRdAIAW0bkB
EDiiBwAoQ9cEAN2gpgNA4hRrAKiNsgsA0CI6NwACR/QAAGXomgCgG9R0AEicYg0AtVF2AQBaROcG
QOCIHgCgDF0TAHSDmg4AiVOsAaA2yi4AQIvo3AAIHNEDAJShawKAblDTASBxijUA1EbZBQBoEZ0b
AIEjeoDUzAEAY9lrr72aLuP/v6a3BAB0hGoOAM1qsBZPrumNB0BnNV3igBl605ve1PQ+BqAL/vqv
/7rpPXrSttlmm6bfIoABTjjhhKZ3kNBuTX+JAaCt5P8BoGNUcwBoVoO1eHJNbzwAOqvpEgfMkPw/
wFTI/xeT/wfSJP8PE2r6SwwAbSX/DwAdo5oDQLMarMWTa3rjAdBZTZc4YIbk/wGmQv6/mPw/kCb5
f5hQ+DYde+yxawCAUV75ylfmpTPB/P8xxxzT9OYBgJY56qijQiVNoZq/9rWvbXqTAECtVq5cmUIt
nlx4FUceeWTTGxWA1lu+fHk36iNQLOT/d9ppp6Z3PAAt89a3vjX0S/L/xUL+/w1veEPT7xvAmu22
207+H6Yi9EJ/93d/1/RcAKAF/uzP/izZ/P/555/f9FwAoGXOPvvsFDIVYQ7nnHNOg9MAgPqddtpp
KdTiyYVX8Z73vKfpuQDQeocffng36iNQLOT/d99996bnAtAy11xzjfx/SSH//8EPfrDpuQD0dthh
B/l/mAr5fwCoRP4fALpE/h8AmiX/DwD95P9hgZD/Bxib/H958v9AUuT/YVrk/wGgEvl/AOgS+X8A
aJb8PwD0k/+HBUL+H2Bs8v/lyf8DSZH/h2mR/weASuT/AaBL5P8BoFny/wDQT/4fFgj5f4Cxyf+X
J/8PJEX+H6ZF/h8AKpH/B4Aukf8HgGbJ/wNAP/l/WCDk/wHGJv9fnvw/kBT5f5gW+X8AqET+HwC6
RP4fAJol/w8A/eT/YYGQ/wcYm/x/efL/QFLk/2Fa5P8BoBL5fwDoEvl/AGiW/D8A9JP/hwVC/h9g
bPL/5cn/A0mR/4dpkf8HgErk/wGgS+T/AaBZ8v8A0E/+HxYI+X+Ascn/lyf/DyRF/h+mRf4fACqR
/weALpH/B4Bmyf8DQD/5f1gg5P8Bxib/X578P5AU+X+YFvl/AKhE/h8AukT+HwCaJf8PAP3k/2GB
kP8HGJv8f3ny/0BS5P9hWuT/AaAS+X8A6BL5fwBolvw/APST/4cFQv4fYGzy/+XJ/wNJkf+HaZH/
B4BK5P8BoEvk/wGgWfL/ANBP/h8WCPl/gLHJ/5cn/w8kRf4fpkX+HwAqkf8HgC6R/weAZsn/A0A/
+X9YIOT/AcYm/1+e/D+QFPl/mBb5fwCoRP4fALpE/h8AmiX/DwD95P9hgZD/Bxib/H958v9AUuT/
YVrk/wGgEvl/AOgS+X8AaJb8PwD0k/+HBUL+H2Bs8v/lyf8DSZH/h2mR/2cW5iJNz2X6uv3q2mgq
70hTb2siH6dEptEW8v/p85GmpXx0e8p6h6bRIvL/dFLNu4JZP509WyMU5c5MI33y/5Cz02gj5bIz
00iQ/D8sEPL/PWcVZi/xLaCh6sw06if/X578fwck/k23M+/MNOoh/w/TEvYbXc3/F+8bk9pzzg2y
4447HnjggSeffPK3vvWtpidYQf+GHfjqBmp25mUkNduXv/zlYTIXXXTRwGWy8bBMtvwUn33ee3fa
aaf1L3PqqafO+i2eysqHraT/I7p48eI999zz6KOP/vjHP/7EE0+kMPnJJTKNtpD/b9B//dd/ffCD
H8y+gHvvvfeSJUt22mmn/fff//DDDz/rrLOuu+66sFjKH+mk9tv9pvhcM7Ju3bqsLzrooIOyHmnR
okXLli1bvnz5ypUr3/rWt5533nlNz25Szb4X8z4MynpTk59cItNoEfn/WSv+TCb1ie3fS8x16Ki8
f3yg6T7dtNT/OUmqZ1OUm5r85BKZRvrk/xNU/OlN6rPdvz+Z63T5XrFixaZNm8r8Vg2Uy55yOQ2J
TCNB8v+wQLQr/99fm6ZSamddC5qqNQM3USOdaslmQ0PV1OQnl8g06if/X17K+f/4A5zUMW//BAI7
8/LTm8pK+t8CO/O2k/+HaQn7Dfn/+udWMJmB3vve99bz7LNY28hXl84bMdJUZjutl/zJT34yrOfg
gw8euMzLXvaysEy2/CRPN8+892777bd/6KGH4gUefPDBbHDWb/FM35Hij+uLXvSi++67r/HJTy6R
abSF/H8jHn/88exYNZyaGCgsnPJHOqn9dsE2TNCWLVvOOOOM9s6/jJm+lpErn7cxlfWmJj+5RKbR
IvL/s1b8mUzqE1u8l5hr+VF5//hAjUx+5K/X/zlJqmdTlJua/OQSmUb65P8TVPzpTeqzXbw/meti
+V67du3s5lCJctlTLqchkWkkSP4fFgj5/14Xzyr0P+9AM+1Uh82kYIYaqqYmP7lEplE/+f/y2pL/
n0vpmHfg9PrZmRdPbyorKX4L7MzbSP4fpiXsN+T/65/byMk89dRTN9544/Lly8P45z73udqefaZr
S2rLVzWVyU9rC/zmN7/Zbrvtwqr+4z/+Y94C3//+98Oj2ZLZ8pM83TxzfVavXh0vcOGFF/YvM8UJ
9E9j6ivpH3/44Yf/6I/+KAwO/MezNU9+colMoy3k/+v3yCOPHHzwweFlZt/B73znO48//viGDRt+
9KMffeQjH9ljjz3iT2/KH+l09ttTXG09rrzyyjD5o48+OttQTz755KOPPvqtb33rXe96V37Wouk5
TqrZcjnXR1lvZPKTS2QaLSL/P2vFn8mkPrH9k+neUfmMNviEqx356/V/TtLp2XKKciOTn1wi00if
/H+Cij+9SX22+yfT7fKd2XfffZ955pkZzaES5bKnXE5DItNIkPw/LBDtzf+ns9qRv95Urel/3jo7
1eKZ9I/nNFSNTH5yiUyjfvL/5bUo/5/OMe+wCdiZV5reVFbSP25n3nby/zAtYb8h/1//3EpO5qtf
/WoYf9WrXlXzs89obUlt+aqmMvkpboGsFIZVvfvd75736JlnnhkenXrRnOuz3377bd68OX80+yHu
eGf3js/0HRk4/vOf/zwM7r333uNPveXfhQVL/r9+xx13XHiN//AP/9C/wOOPP37KKaeE/038m5XI
fnu6a67BoYceGib/y1/+ct6j999//4knntjEvKap2XI510dZn9bzkjj5/1kr/mok9cUZNpkuHZUn
tcGDNGeVSM+WU5Sn9bykSf4/QcVfoqS+YsMm09XynbvkkktmNIeqlMuprLzMWx8GlcuFQ/4fFgj5
/8mlOate051qmZn0N0saqmk9L/WQ/y+vRfn/uZSOeQsmYGdecnpTWcnAcTvzVpP/h2kJuy/5/3j8
Bz/4wSmnnHLggQdme5tFixbttddexx577Ic//OGf/OQn89awYcOGyy67bNWqVS94wQu22267pUuX
Hn744atXr37ssceKn+vqq69euXLlTjvtFJ562GQeeeSRMJ4tHz/06KOPrlmz5jWvec3zn//8bJ7L
li179atfnT17Nl7+2YuFNdx9990XX3zxcccdt88++yzeas899zzmmGM+8YlPZBuh0mYfucDYW/UL
X/hC9rqyd2333Xf/wz/8wx//+MfZYPZb559//kEHHZTNOdtQxx9//K233lqwkmuvvTbbjDvvvPOu
u+76xje+8Vvf+lbJyZfcRCU3ePnt8JWvfCX8evYCN27cGB565plnspHwaLbk7DZd9jXJf7juuuvy
R7/4xS/Oe2jgO17+Y5zJ3o7sTcnemuzTe+SRR/7Lv/xLwTtSfhsWrGTgeLZhw2C2cfrnOfbzfvnL
X842Rfbqsk/g6173uhtvvHHe8iU/ZocddlhYbbZ54zVk0wgPZYsVv/zelPYz/Zuo1eT/a/b1r389
vMDs47dly5aRvzKLj/TIr2evbfvtSttw4Dd67I053uTDMWBm3l0Ly7yEae1gB658ZPNQsrcc41NX
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
Llmy5Oabb77wwguPPfbYypU8+9nPjmeofMBK1ZrratnBZuqBu/UYoJQzzJw5M3n34YcfjgsrH34U
0o28LWfoVqtmKq8sbPR8ojlz5jRfSXebKGs7xKIxMVmq8ku6umNl15suLnn66aeTv3Ncf/31k78l
rLt4Tx8j1etz6amnnkrKK/88pKfbzXqaRZWcPXt2XP6GN7zh8MMPj6fXXnvtxYsXt9xc1/uZoSH/
fxW7/vrrkx18yUtekmaRnp7SLVc+WP12I83n7GljZqpn5Pe//30yc9v5/52M42kuHgopri2z1nkV
XA0a1g3rtdUYSvL/e81v5V3Zerd+5cy0j4WKy5XNS+LpAw88MH3lOxkB296duuVbbbVVUlj53Nu7
7767eQX64ZrNoGxQrq3GMJH/34cM313Zeu+G76idn/Oc54Qadfc0TTtHA03yJf6UKVPiia9+9avR
W//+7/8ev5w8eXI8Ec0ZzV+1BsNlJ+2ftUEMl1UHqMm+DDT5/zAihjv/f8T/VyFTc2Ua+3r3HY0L
KhdUtdXoZ/L/0xus/P+++p0300dDZ97hkUq/jzGdedUBarIv/Ub+P3RL8pEf1vz/yu+PLr300sq3
LrnkkuSto446qslKHnnkkWTO5KZG0dVjUlj7BNtaLTvYTD3wu9/97mTmj3/840l5NJ2UV17ftlx5
coUT6j3/pfKvyf7+97/HhZVP9Q0Zf5ltNEO3WjVTeWVhZWN+4hOfSMqPPfbY5ivJ2kTNGzxrO8T+
4z/+I9QTla+CpksK3/e+98Ul0UTzOTOdxm9729uSwk9+8pPJzJWHqXLlvT6XfvKTnyTllUngPd1u
1tMs8va3vz0uX6cknn7HO96Rphpd72eGhvz/VW/vvfdO9vFjH/tY7QyLFi064ogjkpc9PaXrlg90
v11X8zl72piNyqPT4M4776ytzAMPPJDMPH/+/PZW3smlTpqLhyp1ry2z1jnrUWh+7dFoK4b13m3X
sN4/5P/3mt/KU6581fxWnmkfzz333GTmG0qSl+ecc04bq200ArY3SGUtT3rRMHH0OeOMM5rXv0+u
2QzKvduuQTl38v/7kOE75cpzHL4vvPDCUCN5t43/pthrr70qVzV16tRFixZF5U8++WTl/f0i0Zy1
ixsug+HScNlt8v9hRAxx/r//VcjUXJnGvp5+R+OCqnfbdUHVdfL/0xus/P9CP/3Om+mjoTOvWrnO
PKYzryX/H7ol+cgPa/7/XXfdFY3aSS969dVX/6Ukmkh61GnTpt19993JIvPmzTvzzDNvueWWaLbl
y5dHffXZZ5+dNFRy5+GHHnoo+XO5NdZY4/zzz3/wwQeXLl0a/fu9733vtNNO22abbSpr0rKDzdQD
R1t51rOeFc+87rrrfve7312yZEm03Wg6LozqFtUw/cqTv7gPpe90qm7gs/vuuyfvnnjiiY8//vi3
v/3tRg9a6mRnu9WqmcorC6Oz4oYbboga88Ybb0xaODpD7rnnnuYrydpEzRs8azvEohnWX3/9MFFU
EpWnPwRtN13tJlounuk0jj6kyWc5WiqarWrmqpX37lyKDtYPf/jDqKNIyo855phVsN1C9tMs8vOf
/zzUiDrGrh+gJvsyfOT/r3p/+9vf5s6dm+zmoYceevPNNz/xxBNPPfVUdJJ/9KMfjXu/ZP6entJ1
y0ek3141jdm88rvtttuFF14Y9WPRCfDkk0/edtttUUky83nnndfeyju51Gl58ZDy2jJrnbMehebX
Hk22Xqvz+hjWC4b1fiL/v9f8Vp5y5avmt/L0+/jTn/40uXnvwoUL48IkHTR6K5qh+WrTj4BtD1KZ
yu+7775kj5LR5zvf+U5y751GzTJw12wG5awNblDOnfz/PmT4TrnyHIfvqNGe+9znhomSd9v4b4qz
zjqrclV777138tb+++9f+Vbl182V9TFctt3+6XfccDlSw6X8fxgRw5r/738VMjVXIePY1+vvaGrV
ndMFVda2dUHVdfL/0xu4/P/++Z0300dDZ97hkUq/jzrzQe/M5f9DtyQf+WHN/y+UHtZT1c1Win4j
+/rXv145f6M545lvv/32ZM5oetNNN20yf6PV1q1n1h74tttu23jjjetuNyr/0Y9+lGnlp59+epNd
uPnmm1dfffWqtyrzZLq4s11p1UzllYUnn3xy1eYmTZpUdZOruivJ2kTNGzxrOyTe+c53Vs0WlWQ6
BJnKW9an5ZyZTuPoQESHo2q2qkNWOX/Xz6W6dthhh7/97W893W5SmPU0i+2yyy6VM7zsZS/r0QFq
Xo1hIv8/F4sWLVq4cGHyXxPNP1w9PaUblY9Iv53oaWO2rHxdRx555IoVK9pbeSeXOi0vHprUuera
MlOdsx6FltcejbZSqyv1Mawb1vuH/P9VwG/laVa+an4rb9JWlTM/8cQTyXPtN9xww0cffTQujzrJ
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAD4/+3d/Y9dRR0H4FkK5UWtYqIQJEAAKUakiAmJ1VLeKi9GE3kRCBEJxtdYEImIKAUtlGBo
fYMiFLqlZf/O8To35+bsnrc5Z+/u3d7zPPlmczt3zsycmdPfPnsWAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyBaSRa8CAAAA
AAAAAAAAAAA2a7kT8st9dwAAAAAAAAAAAAAAjMdyJ+SX++4AAAAAAAAAAAAAABiP5U7IL/fdAQAA
AAAAAAAAAAAwHsudkF/uuwMAAAAAAAAAAAAAYDwyE/KhTk63pilyBtwwwlymrp3X7wgAAAAAAAAA
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
/1dH/3OY/k9A/8+n/5uj/6fT/2zo/y39H0T/p6T/q6P/OUz/J6D/59P/zdH/0+l/NvT/lv4Pov9T
0v/V0f8cpv8T0P/z6f/m6P/p9D8b+n9L/wfR/ynp/+rofw7T/wno//n0f3P0/3T6nw39v6X/g+j/
lPR/dfQ/h+n/BPT/fPq/Ofp/Ov3Phv7f0v9B9H9K+r86+p/D9H8C+n8+/d8c/T+d/mdD/2/p/yD6
PyX9Xx39z2H6PwH9P5/+b47+n07/s6H/t/R/EP2fkv6vjv7nMP2fgP6fT/83R/9Pp//Z0P9b+j+I
/k9J/1dH/3OY/k9A/8+n/5uj/6fT/2zo/y39H0T/p6T/q6P/OUz/J6D/59P/zdH/0+l/NvT/lv4P
ov9T0v/V0f8cpv8T0P/z6f/m6P/p9D8b+n9L/wfR/ynp/+rofw7T/wno//n0f3P0/3T6nw39v6X/
g+j/lPR/dfQ/h+n/BPT/fPq/Ofp/Ov3Phv7f0v9B9H9K+r86+p/D9H8C+n8+/d8c/T+d/mdD/2/p
/yD6PyX9Xx39z2H6PwH9P5/+b47+n07/s6H/t/R/EP2fkv6vjv7nMP2fgP6fT/83R/9Pp//Z0P9b
+j+I/k9J/1dH/3OY/k9A/8+n/5uj/6fT/2zo/y39H0T/p6T/q6P/OUz/J6D/59P/zdH/0+l/NvT/
lv4Pov9T0v/V0f8cpv8T0P/z6f/m6P/p9D8b+n9L/wfR/ynp/+rofw7T/wno//n0f3P0/3T6nw39
v6X/g+j/lO6JnivOuid6Jqic/k9A/8+n/5uj/6fT/2zo/61/G70TvfqP0TtPCXdHzxVn3R09E1RO
/yeg/+fT/83R/9Ppfzb0/9bzoneiVy+I3nlK0P/V0f8cpv8T0P/z6f/m6P/p9D8b+n9L/wfR/yk5
/18d5/85TP8noP/n0//N0f/T6X829P+W/g+i/1Ny/7/quP8fh90ePaIcz1u6+b46evOY6mujZ6ZB
r4reNCrx9uhRrIV/8xvkldE7Twn6vzr6n8MeGD2iHO+d0VPUsCdHbx5TPTV6Zhr0wuhNoxK/Hz2K
tXD//yDu/5+S/q+O/ucw/Z+A/p9P/zdH/0+n/9nQ/1v6P4j+T0n/V0f/c9hN0SPK8fT/fE+J3jym
elr0zDTom6I3jUr8QfQo1kL/B9H/Ken/6uh/DnP/vwTc/28+PwXaHPf/m879/9hws5gt/R9E/6ek
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
+tvM2E9FT8RJ3BX9bWayn48empN4UfS3uSs/HL3dZHb9/3UTrp/+b91J+/9jo/8W4Eg/c8pxqcXP
RT9JT+Lro7/NjF2MnoiTUFnt+dnooTmJF0Z/m7vyQ9HbTWbPip7vlPR/607a/zdHP1qO9NOnHJda
6H8CXIyeiJPQ/+3R/yxN/1OQ/i9B/7dO/zOB/k9L/1fmYvREnIT+b4/+Z2n6n4L0fwn6v3X6nwn0
f1r6vzIXoyfiJPR/e/Q/S9P/FKT/S9D/rdP/TKD/09L/lbkYPREnof/bo/9Zmv6nIP1fgv5vnf5n
Av2flv6vzMXoiTgJ/d8e/c/S9D8F6f8S9H/r9D8T6P+09H9lLkZPxEno//bof5am/ylI/5eg/1un
/5lA/6el/ytzMXoiTkL/t0f/szT9T0H6vwT93zr9zwT6Py39X5mL0RNxEvq/Pfqfpel/CtL/Jej/
1ul/JtD/aen/ylyMnoiT0P/t0f8sTf9TkP4vQf+3Tv8zgf5PS/9X5mL0RJyE/m+P/mdp+p+C9H8J
+r91+p8J9H9a+r8yF6Mn4iT0f3v0P0vT/xSk/0vQ/63T/0yg/9PS/5W5GD0RJ6H/26P/WZr+pyD9
X4L+b53+ZwL9n5b+r8zF6Ik4Cf3fHv3P0vQ/Ben/EvR/6/Q/E+j/tPR/ZS5GT8RJ6P/26H+Wpv8p
SP+XoP9bp/+ZQP+npf8rczF6Ik5C/7dH/7M0/U9B+r8E/d86/c8E+j8t/V+Zi9ETcRL6vz36n6Xp
fwrS/yXo/9bpfybQ/2np/8pcjJ6Ik9D/7dH/LE3/U5D+L0H/t07/M4H+T0v/V+Zi9ESchP5vj/5n
afqfgvR/Cfq/dfqfCfR/Wvq/MhejJ+Ik9H979D9L0/8UpP9L0P+t0/9MoP/T0v+VuRg9ESeh/9uj
/1ma/qcg/V+C/m+d/mcC/Z+W/q/MxeiJOAn93x79z9L0PwXp/xL0f+v0PxPo/7T0f2UuRk/ESej/
9uh/lqb/KUj/l/CvH9eITxpueOhnRy+iRs875bjo/9bp/7T0f2UuRk/ESej/9uh/lqb/KUj/QzD9
3zr9n5b+r8zF6Ik4Cf3fHv3P0vQ/Bel/CKb/W9dl/7/zJ3rwluhvM2P3RE/ESfxO9LeZyd4RPTQn
8dvR3+auvC16u8nsf0TPN/RuFf23AEd6R/QIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
MN8wRK8AAAAA2G+5atf/AAAAUCv9DwAAAPnpfwAAAMhP/wMAAEB+o2r/7Wd/8s0P+ws/uPngR55w
60Me851Xv2D3U5d+6d885qNu/cI3bL7wdU+89IXftf3CX3jOp9/84E/7x3ef7AEAAAAA92u3/1/7
0OGKr7/8wcs3//zszReMPjUMz7/ywUPffPmjf3HhygfP2Xzh5suGT3rbff50AAAAIMpOof+fW4cv
/aV3v/VlDx5+cr3+5QcMz3nLh95yqeqHs5+69Hse+HW/+Z6f/tThyy998MYbh6/8rQ/95ldsvnD9
+H/31g/d/brHDs8/+6cDAAAAYXYK/R8OT7vy/98+fMl6/czhi6988MVXvmD0qUu/5xsuf/Bjw6Mv
/e+zhr9+5VNP2m39tw5/4uyfDgAAAITZKfTPHH7xyv//3vDI9fqTh5+78sHPXvmC0acu/Z63XP7g
ncNNl/73U4afufKp/7b5k/7v13zmQy7/AMDNp3oAAAAAwP3a6f+PGh7wgBtuuHBhGG5crx80vP3K
L779yheMPnXp93z42u+9+oV3X/no12/f3gDAhX8AAACox06oP2gYrsX7uP9Hn7r39+zp/ycNj/2x
P/jD9Qf0PwAAAFRkJ9Q/dXjztV8fn/8ffWrc/+Pz/7dufjTgV/Q/AAAAVGQn1P/B8Mxrvz6+/9/o
U+P+H9//7+bhdy9/8Hf1PwAAAFRkJ9R/9+HDk177//7wHb/4ss+98t//e+5bPvSW525O/I8+Ne7/
X7tx+Krf+tBv/r3NF37e8Jd/432/9vSrP//vXwMAAABADXZ/sP/nP3bnh/y/bfNPX3Xljn/jT436
f/0dm19/9pWPXnPhygfP1f8AAABQkdGN/d7+4s+/7QG3fd6db7z8mdc84aEP+VPfeffwiCtft/up
cf+vX/fEh37U5/7Lj2w++pE/86CHPva71vofAAAAGvLa4c9GLwEAAAAo68NPGL4heg0AAABAKY/7
3je9710/8cThIW+NXgkAAABQyvauADe+OnohAAAAQDE//bTPuPVBn/iMN0avAwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6vD+O6nMP4ueCQAAAPK5Z6Ayj4ieCQAAAPLR/9XR/wAA
ACxO/1dH/wMAALA4/V8d/Q8AAMDi9H919D8AAACL0//V0f8AAAAsTv9XR/8DAACwOP1fHf0PAADA
4vR/dfQ/AAAAi9P/1dH/AAAALE7/V0f/AwAAsDj9Xx39DwAAwOL0f3X0PwAAAIvT/9XR/wAAACxO
/1dH/wMAALA4/V8d/Q8AAMDi9H919D8AAACL0//V0f8AAAAsTv9XR/8DAACwOP1fHf0PAADA4vR/
dfQ/AAAAi9P/1dH/AAAALE7/V0f/AwAAsDj9Xx39DwAAwOL0f3X0PwAAAIt7z9+gMl8WPRMAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAI34/+VRcrEKZW5kc3RyZWFtCmVuZG9iagoKMjMgMCBvYmoKMTM2
ODUKZW5kb2JqCgoyNSAwIG9iago8PC9MZW5ndGggMjYgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+
CnN0cmVhbQp4nGWOvQ7CMAyEdz/FzZWa2mmbEinKwE8l2CpFYkBMQGFoQXTh9UlaMSEP/uyzz2Yl
+NAbjJyVRmNLZVDbOvJ0o2OGJwlSTHfiJGCkNNTMPGDheXf4mSRY1Af1WTJXwmLNX46e60ClTW6a
lUW4omgFpUboT04qn2snpdeO2xlrL443rOfCpL4V68/hQLtAXby0vMMxxGi1Ql6pOiKrCpeRiv2o
G2xf6KjDFygeM/IKZW5kc3RyZWFtCmVuZG9iagoKMjYgMCBvYmoKMTc0CmVuZG9iagoKMjcgMCBv
YmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggNDA5Ni9IZWlnaHQgODQwL0Jp
dHNQZXJDb21wb25lbnQgOC9MZW5ndGggMjggMCBSCi9GaWx0ZXIvRmxhdGVEZWNvZGUvQ29sb3JT
cGFjZS9EZXZpY2VSR0IKL1NNYXNrIDI5IDAgUgo+PgpzdHJlYW0KeJzs3Qm4HGWdKPw32yGBLCQk
rBEiAUVBYSACASEICBruCJ/IiCAjMIosg+zLcBWUbyQQJsngsAgIAdHrGLwi4xUdNplnWARRJCKb
zHgVWSQQiIFsRPorTn2pVHo71XV6qdPn93v+T9L91ttVb1Wdrvqfrv+pLpUAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoF8CQOd0+hAIAAAAAAAAAAAAAANGp4t/gUGt04dA
AAAAAAAAAAAAABgwOl38CwxqnT4EAgAAAAAAAAAAAMCA0eniX2BQ6/QhEAAAAAAAAAAAAAAGjKQK
d+bMmQsAWuz8889X/w8AAAAAAAAAAAAAOSRVuKecckqnxwJ0v7vuukv9PwAAAAAAAAAAAADkoP4f
aCf1/wAAAAAAAAAAAACQj/p/oJ3U/wMAAAAAAAAAAABAPur/gXZS/w8AAAAAAAAAAAAA+aj/B9pJ
/T8AAAAAAAAAAAAA5KP+H2gn9f8AAAAAAAAAAAAAkI/6f6Cd1P8DAAAAAAAAAAAAQD7q/4F2Uv8P
AAAAAAAAAAAAAPmo/wfaSf0/AAAAAAAAAAAAAOSj/h9oJ/X/AAAAAAAAAAAAAJCP+n+gndT/AwAA
AAAAAAAAAEA+6v+BdlL/DwAAAAAAAAAAAAD5qP8H2kn9PwAAAAAAAAAAAADko/4faCf1/wAAAAAA
AAAAAACQj/p/oJ3U/wMAAAAAAAAAAABAPur/i6kpBdKdqrIuSHV3QYZBGfX/AAAAAAAAAAAAAJBP
Aev/d9xxx2RUl156adU+UXvSJ+rfxKWHdR1zzDGVfY4++uiybk0cQOUwmj6TUKGnp2eTTTaZMWPG
7Nmzly5dWoTB9197htHqjdl91P8DAAAAAAAAAAAAQD5JFW5x6v/nzZuXjGqHHXao2mf77bdP+kT9
m7j0slrukSNHvvzyy+kOixYtihrLujVxAJXDaPpMKkvW07beeuvnnnuu44Pvv/YMo9Ubs/uo/wcA
AAAAAAAAAACAfJIq3OLU/7/00ksjRoxIBvbzn/+8rMNDDz2UTI16Rv2buPTKEu5Zs2alO1x00UWV
fZo4gMphNH0mle2vvPLKYYcdljRW/daDNg++/9ozjFZvzO6j/h8AAAAAAAAAAAAA8kmqcItT/x85
+OCDk4GddNJJZVNPPPHEZGrUs7mLrqzt33LLLVevXh1PjR684x3vqOzT3DGU2l7/H3nmmWeSxs02
2yz/0AtT/98erd6Y3Uf9PwAAAAAAAAAAAADkU8z6/1tuuSUZ2IQJE1auXJlMWrFiRdSSTI16JpPK
iopvuummadOmjRo1auLEiYceeuivf/3rqHHJkiXnnnvuNtts09PTE83noIMOevDBB9OLTs9k0003
jR9873vfi6fefPPNZZOq1jC/+uqrF1988Z577hktYvjw4ePHj99jjz1mzZoVtVeu7D333PPhD394
7NixG2ywwfTp0xcsWFC5LmlvvPHGFVdcsf/++2+88cYjRowYN27cbrvtFs08WrWynrVmUrU92rBJ
Y7RxKseZe7nf//73o00Rrd3o0aP33nvv22+/vaz/U089NWfOnAMOOGCLLbbo6bXJJpvss88+c+fO
jRaadNtll12S2UabNz2HaBjJpKhb/dUvNbKDymYyf/786IcqWpdknjk2Zsb1jT388MNHHXXU1KlT
o5/kaKjRD95+++134YUXPvbYY7l3UGep/wcAAAAAAAAAAACAfJIq3ELV/69atWrSpEnJ2G6++eZk
0oIFC5L2qE/UM5mULio+44wzwrpGjRp16623Tp06tay9p6fn/vvvrzqT888/P34wY8aMeOree+8d
t1xwwQW1apgffPDBzTffPFQTtZf9ucH8+fOHDBlS1u3cc8+tNfPHHntsm222qTrzrbbaauHChenO
tWZStT19y/ott9yybI/kXu4Xv/jFsv5Dhw698847a/Uvs9122y1atCjuds011yTt06dPT89h9913
TyZde+219Ve/oR2UnnrqqadWzrPqUupvzIzrG/nhD384fPjwWp1z76DOUv8PAAAAAAAAAAAAAPkk
VbiFqv+PRONJxnbQQQcl7TNnzqw15nRR8aRJk+6+++4lS5acffbZ6faJEyfeeeedUftpp52WNB5w
wAFVZ/L888+PGDEifrxw4cJHH300fhw1RpOq1jC/8MIL0SLixgkTJtxxxx0rVqyIljh+/PhkAC++
+GLc+amnnlpvvfWSzlG3ss5lM3/llVeSwvVRo0bdeOONr7322gMPPLDVVlvFjZMnT07fwb5WlXVl
ezTnww8/PGmMNlq6f3+Wu9FGG0Ub4eWXXz722GOTxg996EPp+e+1117XX3/9008/vWzZsuXLlz/+
+ONHHHFE0vnkk0+Ouy1dunTMmDFx49ChQ5PNGG3z5G8oxo4d+/rrr9dZ/YZ2UNlMop01b968aNf3
Z2NmX9/IjjvumLRfcsklixcvfuONN371q1/NnTt35513zr2DOkv9PwAAAAAAAAAAAADkk1ThFq3+
/5FHHknGNnz48BdeeKHUW7w9bNiwpD3qk35Juqj46quvjht///vfp9uvvPLKuD1dwD9u3LiqM4me
JoXcn/vc5z772c/Gjz/1qU9V9oydeeaZ6YLtpD16nLSfddZZceMJJ5yQNM6ePbtq5/TMzzvvvKTx
wgsvTNp/8IMfJO0XXHBBrXWp2l7pkEMOWb58ebp/f5Z7+eWXx41/+MMfksYxY8aU7+91vfbaa0nn
KVOmJO3HH3980n7NNdfEjdG+ThqjTVp/9RvaQWUzSa9j7o3Z0Pr29PTEjdGP/erVq2u9vNEd1Fnq
/wEAAAAAAAAAAAAgn6QKt2j1/6V1b35+6aWXRi2zZ89OWqKpZf3TRcW///3v48aVK1em23/3u9/F
7W+99dbQoUMri5DLKpPvu++++PGoXvHj+++/v7Jn7D3veU/S+NRTTyXtTz75ZNL+3ve+N27cdttt
q3aOHled+fbbb580/uY3v0naFy9enLTvtNNOtdalanuljTba6LLLLkv3789ykw1etiPS83/xxRe/
9KUv7b777tGiky9cSEQtSc/0X4XMnDkzbvzoRz+aND766KP1V7+hHVQ2k6effrpUodGN2dD6brzx
xkn7/vvvP2vWrNtuu63sCwhy7KDOUv8PAAAAAAAAAAAAAPkkVbgFrP+fN29eMrwddtihtG6dczS1
rH+6qHjlypUNtddp3HnnndONu+yyS52XJ38jEHn99deT9qVLlybt66+/ftw4cuTIPjunZx69MPRl
9OjR9VewavuyZcseeOCBnXbaKWm/8cYbm7LcZIO/9dZbVcfz2GOPTZw4sf7M04Pfdddd48b11ltv
aa/oQdyy++6711/NRndQ2UxWrFhRqlC5lPobs6H1Pf3006t2iN4OV111VbRJ8+2gzlL/DwAAAAAA
AAAAAAD5JFW4Baz/f+mll9J3R7/yyiuTx1F7NLWsf62i4obaKxvnz5+fbrzhhhvqvLyl9f/pmdeR
e4P84he/SNrTX6/Q0uWm795/xBFHPPfcc1Hj6tWra83kuuuuS9pvvvnmBQsWJE+jPdXn4vpT/1+q
plaHWhuzofVdtWrVOeecM3bs2FDNV77ylXw7qLPU/wMAAAAAAAAAAABAPkkVbgHr/yMHH3xwMsLk
Nu+RqL2yc62i4obaKxuXL1+e3LB90qRJyU3gq778Pe95T9L41FNPJe1PPvlk0v7e9743btx2222r
do4e9znzZ599ts+t1+gGeeONN5L2UaNGtWe5Y8aMSRr/9Kc/xY2///3v6wxy3LhxcfunP/3pI488
Mn684YYbLlu2rM/FNbSD6qxLnx1qbcxG1zeycuXKe++99+tf//qJJ544ZcqUpNvmm29euVJZdlBn
qf8HAAAAAAAAAAAAgHySKtxi1v/fcsstoZqovbJzraLihtqrNv7DP/xD3BI9qN/zzDPPTBovueSS
pD16nLSfddZZceMJJ5yQNF566aVJ59mzZ1edefTCpHHevHl9br1GN8jDDz+ctG+66abtWW763vWv
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
Z7/F5ec+97lk0iWXXBI3zp8/P2lMquPSR5Ljjjsualm1atWkSZOSxptvvjmZ7YIFC5L2qE/6K5zS
gznjjDPKhjdq1Khbb7116tSpZe09PT33339/1Zm4/Wz/l9v1t5/tLPX/AAWRPhoPiPr/5cuX33HH
HelvNbruuuviSWeeeWbSmKRwkehx0n7WWWfl6Fx1JFXbk0LuKJ/87Gc/Gz/+1Kc+VWsODQ3jhBNO
SBpnz55dtXN65uedd17SeOGFFybt6b+eiDLDhtax0iGHHBLtlHT//iz38ssvjxv/8Ic/JI1jxowp
1fXaa68lnadMmZK0H3/88Ul7lI/FjVdffXXSGG3S+qvfn5+T9Drm3pgNrW8k+gUhbh82bFjyRWCV
Gt1HRaD+H4D2SM416v/bpimDb+IW8O2uLd0jVdt9u2vXUP8PA1f6zTsI6//7qZijktI0Zea1ZlK1
XUrTBdT/Q/Gl36RdU/8fueyyy6pO7eAgCzWSHFqaCeQgN2vpHqnaLjfreur/oU/p90hh6/8vv/zy
+MHEiROXLl1aqnHUbegWl+lC/Y9//ONx48yZM5PGadOmxY2HHHJI0hjf/T5yyimnJI0HHXRQMob0
HKI+tdZo0qRJd99995IlS/4/9u4EXJKqPhT4mYWZAYZZiGyCMmAGRMUggggS9dMRFBT9fJrwZBGS
gEo0RoyO8QkDfuIQeZiIIIsoovgMihpjRDYRPsEoAiaIghhjkFWQfZ1hmH51p67n1vR2q/t2dy33
9/uO3urT1dWnurn1/1fd/9T54Ac/mO1PdvCyyy5L+t/3vvfFzn322aftRtx+durvW/vbzxZL/T9A
SWSPxiWv/2/r3e9+99q1a9OVd9ppp9if5CpxIzfffHPsf97zntfHyo3cycnVV1+dLm+4Trqc/oPN
tlvoaRhLly5tu3Ky3Hbj2Zkif/7zn8f++++/P/bvsssuPe1jqyRlyl6WnOL7/uY3v0k7V61a1Wk8
ScJzzDHHvPSlL03eOnu7jFTSE9f86U9/GvuTVDztfN3rXhc7kyS5++5P5b+TJEVstOj1w+xpfxOb
b755fGrZsmUrV6688MILW5PAXr+jMlD/D8BoxFhTp/r/vmfGnPoUpcnD888/f6+99po/f/6CBQte
85rXxLlWJx18zmk3u+dXfXwOZnftsnGzuwazu3al/h+qK/vLW4P6/+zf9T796U9nnzrppJPiU8lq
3Td77bXXJjnhc57znCSmJwftJAS/+tWv/uhHPxr/aB66mnTYTf2Thq3ElVdemYStPLFbStNl41Ka
IKXpQP0/lF/2l7RO9f9JWHz88cdbn216Yc5Qst1228UtxOswySE6/o3ppptuSju///3vxzW33377
LuNs3QuXm3r6HORmXTYuNwtys76o/4dJZX9HSlv/nxyut9lmm3T5hBNOaHQ43PV0i8vf//73M2fO
TDuTQ3EjkwilR7zEb3/726R/q622Sh8m6993333py7OFRslB9a677mqsK96eNWtW7E/W6bRHZ555
Ztp56623Zvs/85nPpP3ZAv4k+rTdSMPtZ6f8vrW//Wyx1P8DlET2aFyV+v958+Ztt912b3vb2y6/
/PLsyrHePhH/VV1j3T/Ei/0bbbRRHys3ermesOuuu2Y7u5+S9zSMZMcnXTm78eSFbT/ArPnz5/ex
j48//vi///u/77LLLrH/3HPPHcj7xutda9eubTue5Kwk/ovITrKDf8lLXpJ2zp0795F14j9ifelL
X9p9N3v9ghot5ymNFq3v0v3D7HV/jz766LbrvOAFLzj99NPjP5bp9TsqA/X/AIxGjDW1qf/ve2bM
gUxR2jRVaFh3EfWcc87JM/i2Y05lp93sslpYP43M+TmY3bXTxs3umjK7axfq/6G6sr+8Naj/f+KJ
J+KVlvnz58fbTfzyl7+Ml3pe9KIXxT8ptt3st7/97dmzZ7c9aMfVOj3btKlOw8725wlbSeyOf7+O
OsVuKU2njUtpUlKattT/Q/llf0nrUf+/9dZbpwsnnXRS67PZV+UPJUcccUR8KhYXJREzdsa/CGer
Z4888sgu42x6yuWmXj8HuVmnjcvNUnKzPqj/h0llf0dKW/+fPDzttNPS5cWLF2err7O/2r3e4jJb
uHX77bfHRCgeOj71qU9l6/NjZVfqT/7kT+JTaZL2iU98IvYkz3bZo2SzaWfTXU/j5am1a9dmL+90
+ljcfnaK71v7288WS/0/QElkj8Ylr/+fdOWS1P9nL6AlvvCFL3TZwlDr/7Mb76KPfUxdd911sT+b
3w71fbPp09ve9rY77rijsW5uyk4b+dznPhf7v/a1r2WvoeW5Ejio/076/jB73d/Vq1cvX758wYIF
oZ3jjz++v++oDNT/AzAaMdbUo/5/KjNjDmSK0sWLF19yySVNU1jOnTs3e6mq0+BzTrvZfSP9fQ5m
d23duNldze6ah/p/qK7sL28N6v8b66p9Fi5cmK65bNmyxrq/ru69995pz6JFi/77v/+7+2azf+r9
h3/4h+Rjeeyxx/7jP/7jk5/85K677trTqDqtkO1Pw1YS+OIt3cL6YSsbu5Ndu/jii5PIddFFFzVd
BcpuX0rTunEpjZSmO/X/UH7ZX9J61P+feuqp8fiZHKgbHQ6/PYWS7N/C3vzmN6ed2QRgt912Szvf
9KY3xc70Ju2dxpntd7mpv89Bbta6cbmZ3Gwq1P/DpLK/I2Wu/1+1atWznvWs9GGnf4/W6y0uly9f
Hvu//vWvp9E2OSTGf5H3yle+MpsyJetnR5gcHuNTL3jBCxrrF6Inz3bZo+wsP3n6u3S6/azbz6ba
3n62WOr/AUoiezSuev1/T/9Wbir/sK77CJOz+JghJHljjMJttzDUf4CZ3fhtt9026QeYfx9Tjz32
WOxPEpXRvG+8DJL43e9+l3Y2TZvVNMj4196DDz74oIMOSpcXLVoUp1Lt8naD+u9k0hU6fZi97m8q
yWOvuuqqM84446ijjlqyZElc85nPfGbrfuX5jspA/T8AoxFjTT3q/6cyM+ZApijtNIVlkqVMOvhW
nabdnHQjvX4OZndt3bjZXc3umof6f6iu7C9vVer/WzWtnASLWDaTHLo/9alPpctJ57e//e1Om42d
c+bMSXuSBGDNmjU5R9XTCtn+GLZuu+222JkNW9nYfcIJJ8T+ZLnT9qU0rRuX0khpulP/D+WX/SWt
R/3/k08+uc0226TLaYhveyDqKZT8/ve/jzeV3XrrrZOeBx54IK363njjjdP+JKwk/VtttVX6MFn/
vvvu6zLObL/LTf19DnKz1o3LzeRmU6H+HyaV/R0pc/1/4vTTT08fdrrLQa+3uLz00ktjZxLy0kTo
0EMPTZ467LDDwrqrPcnDuE7TTC733HNP9m7wSbSNy0l/8uyke9RHf2un28+6/WzrMEpC/T9ASWSP
xlWv/+/p9HYq58KTjvDv//7v055kofuafV8zidOANtafZyq78eSFsbP135+26mkfE9dee23s33LL
LUfzvtmMKN54Iftvb0PLfyp//dd/nfYvXidd/pu/+Zs8wxjUfyeTrtDpw+xjf5skpx5xzSSHTzt7
/Y7KQP0/AKMRY0096v+nMjPmQKYo7fSvVnfcccdJB59/2s0uG+nvc2iY3bVl42Z3Nbtrq5/8pHHy
yeu1173u0hCO/kN7PNl7TdNG3PqWPebUpv6/kbnb24IFC2K124c//OEum42dm2++eexctmzZypUr
L7zwwrb3xuw+hi4rZPsnDVvZ2H3TTTfF/mS5ywCkNE0bl9JIabrLX/9f+AFf06ZxuySedLz3vbfG
k5GLLx7ZoWIAmg41p512Wrq8ePHibJFw9kDUayjJ3i329ttvj8VjsVw2CVXZMvJ4O9ku4+x7MNnt
uNwUn5Kb9fEZtt1IQ272B/XLzVavbr70lG377/+9zGWoh4sOT5pWzvbt+GvygQ/c1eUXKmf7/OcH
89vdekBLDqrPfvazW4/h8SW93uLyiSeeiCXus2fPThcuuOCC5KlvfOMb6cP4T/CSNZv+pVjijW98
Y3zHeJv3RNKfZ4/66G/tdPtZt59tHUZJ5K//L/owqGlam0adZI/GVa//v+uuu5KT6HTldErBJEX8
3ve+lyynndnp7XpauctI8o+w7Zo9DeOmm26Kdx5LXpWs1rRy08aTF8ZUcKONNvrMZz6TvN3q1auT
/09etWLFinSaqj72MUkymyZgeuc73zmC90284hWviJ1HH330Qw89dOGFF3aZ6Dxxww03hBbZizmD
+oK67EvfH2av+5tsZ+XKlVdfffW99967Zs2aBx544OSTT45rvuxlL+vvOyqDPur/Cw+Xmqa1Nii/
GGvqUf8/kJkxc/a37ex0C4vs5bu2G+l12s1O/f19Dg2zu7Zs3OyuDbO7tjjppOJTC03Tmlrfssec
qtT/51l/zZo1e++9d/ZVL3/5y59++uk8mz366KPbhoYkMTj99NOT4JJ/VJ1WyPZPGraysTuJHbG/
U+xOSWmaNi6laUhpulL/r2nVbUccMbJDxQA0HWqSQ/2znvWs9OGKFSvaHoh6DSXxX0Emvv71r++3
335h3Z+0Vq9evdlmmyXLr3zlK7P3LE3Wn3ScfQ8m2+9yU3xKbtbHZ9h2I2375Wb1yM2S857C44um
admWqU2ekrYHtDPOOKPLAbOPW1wuW7Ysu6k5c+Y8/PDDSX9ytMwGrLDutg+tL//mN7/Z9hie9Ofc
o17723a6/ezw3rfqt58tlvp/Tat0o06yR+Oq1/8nfvSjH8WpKpsk/U0zgfa0cqeR5B9hpzV7GsbZ
Z58dJy6PPvShD3Xa+DXXXBOnDW2r131sa7fddmv60/DA3zd2XnXVVa33SXjf+97XaSOpPffcM7vC
n/7pnw7pC+o+jD4+zF73t8uWFy5cmHwv/X1HZaD+X9Pq0aD8YqypR/3/sGfknHQjff9BttdpNzv1
9/c5NMzu2nXjXfT9gZjdNVWh2V0b6v81rZStb9ljTp3q/++7775YTZfaZpttfv/73+fZ7OrVq5cv
X950E4bo+OOPzz+qTiv01N9r7E5JabpsvIu+PxApTapaKU2W+n9Nq26rdP1/4vTTT08fdroBVK+h
5NJLL42dRxxxRJoPHHrooclThx12WFh3w9vkYVznsssuyzPO/gbTaTs99Wc7XW7qqb+1U24mN2sd
Rjmp/9e0srWh1v+vXr1622237XQo7uMWl3Hao9Q+++wTn9p///2zT2WLsbPjSf/VZFbSk/Tn3KNe
+/Mfotuu6fazvX7gVb/9bLHU/2tapRt1kj0a16D+v7FuYr6VK1futddeixcvnjVr1qJFi/bcc89k
19r+7TL/yj0lCb3uS09jvvzyy5ctW7bJJptsvPHGL33pS88///zuG09SlJNPPjnJW5JUYfbs2fPm
zdtuu+3222+/ZPtNSUiefUzNmDEjyayS7bzxjW8899xzn3rqqdZxDvZ9s/0//OEPk08g2f1kDC9+
8Ys/v26Ose5fxBe+8IXsCuedd17rOgP5gib976GPD7On/f3FL36RnMUkZytLlixJPvN0tLvtttvy
5ctbJ8PK/x2Vgfp/TatHg/KLsaYe9f/DnpGzbX+2s+8J2XuddrN7ntDr55Ayu2unjZvdNZjddR31
/5pWwta37DGnTvX/MZpvt066fMABB+Tf7KpVq6666qozzjjjqKOOWrJkSVztmc98Zv5RdVqhp/4d
dtghdt5yyy2x/6abbuo+AClNp41LaYKUpoX6f02rbqt6/X+Scjz72c8OLeJLeg0lSfCNldizZ89O
Fy644ILkqW984xvpw1mzZqULyZrJ+nnG2d9gOm2np/5sp8tNfX90aY/cTG7WOoxyUv+vaWVrQ63/
T5x11llhfdlne73FZfaW8olTTz01PnXmmWdmn7ruuuvajvO9731v01skPT3tUU/9+Q/RndZ0+9me
+qt++9liqf/XtEo36iR7NC5h/T9ASv2/ptWjQfnFWFOP+v9hz8jZtj/bmb1rSnba0KOOOqr7Rnqd
djP+LTu0m7q6j5lhG2Z3XX/jZndNmd01S/2/ppWw9S17zKlN/f8pp5wSV750nfjwU5/6VB+bveee
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
QQ3sk6FGskdj9f9AafVd/y+HHOxmW5scso/N9ve+BX5Qg/xwoPRirFH/3zd/kIVpYrz+f8bacPE+
46H+pueGPzs/bHZPmP1U2PS+8NJ/Dx9aOTYLQB9pw0Tqk+mc+XS47NXjj65/UXjtd8MmD4e5T4Y/
/lX4q8+Gq/ea5OWDakPaeNNmN3507NNLe377rN42demy8cVjPhr+6Pdhzqqw9JbwjjPCj/YYygdS
SBvNt1DB1rds+Fb/X1rXXXfd+9///t12223hwoWzZs3aZJNNdtxxx4MOOuhf/uVfnn766aJHB3XQ
a/3/jLD24rBP+uCm8Nw/C+dvFu6ZHZ7aNNz30vDvHworfxr6SYQmwlGmc2Z4+rLw6vTB9eFFrw3f
3SQ8PDc8+cfhV38VPnt12Kv7ywcWaIaz8abNbhweTT69tOe3obdE6NKwLF06Jnz0j8Lv54RVS8Mt
7whn/CjUJxEazbdQuab+v/ZcboJpKK3/l3ENabMyrjJ8C5Vr6v+BVK/1/6L5kDYrmpfhW6hio06y
R2P1/0Bp9Vf/L4cc0mblkGX4FiraoPxirFH/D9DdeP3/2748Hudvem5Y8FCulGC/74RvHRDu2jKs
3iDcv3ispP8tX5t4ttPrkv8ddN748o3PHyuP7/IW2Vd16mntnLUmvPvT4aqXhfs2DWtmhYcWhB+/
JJy4POzy08nHlmfXsluY+2T4p/eGezYbe6NOI5z/yPjiqjkTnT/ZbXzxHWdMdB74lfHF61809uOR
+eMPky1M8evoNOZN7wuPbTTev/2vJ1Z+zn+NLybPJut0+uSXXRq+9paxf9eQ7NqDC8OFrwv7XtTn
qHL+NzD1L7cirW/q/wEavdf/vy18OV26KTx3QciVCO0XvvOtcMBdYcvVYYP7w+LLwqvfEiZiXMdw
FBoHhfPS5RvD8zcO3RKh7Ks69bR2zgpr3h0+fVV42X1h0zVh1kNhwY/DS04My3cJP510bHl2LbuF
ueHJfwrvvSdslrxRpxHOD+M3/F0VJhKhn4Td0qV3hIlE6MDwlXTp+jCWCD0S5qcPky1M8evoNOZN
w32PhY3S/u3DRCL0nPBf6VLybLJOp09+Wbj0a+Etvw3PSnbtwbDwwvC6fcNF/Y0q538DU/9yK9HU
/wPUT1r/L+NqyLhkXKVp6v+BVK/1/6J5QzQXzcvUqJPs0Vj9P1Ba/dX/yyGz25RDyiHL0KD8YqxR
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
1Et9c3XkkUfq34385Cc/qbS/oU7jo48+WhdeeumlnjPbVx7lXKrUUG7q/l8/myL6dtVnGavwf//7
ny5Ud4MFX5VOs6OOOkqX33TTTVahOta6UDWp/+7H3s/kBvn/zaxDhw56B9VnmSCLxH5K68vzww8/
9Lw8s9hve/Kc031FR2nMmiv/7LPP6t9XuO2+++4vv/xypRaregQ9BRzHq948BLy3rFTnSoNClKNQ
desFhvXI22VYzxDy/5PmeU76v8un8kq77FDDR07x5Vi/akn9W2jV+Vx11VXWtCp88MEHq26uthEw
1Az28qrDvX30ufjii3W5mq60/jTcsxUYlCNvl0E5/cj/TyHPs9f/XYbvSrvsEHH4Xr58ed++fa1p
azjzXCpUO3/11Vc6FaRPnz6F0tfKWx/A9TfxqS5Ulffu3dt6qeZfsGCBtTjDZcT2D3jo3Rgucz9c
kv8P1Ins5v+7OWbmtwru8rjuVOP664CjnBuqiNvlhqr5kf8fXFby/1P4mdddATpzC525HZ15WOT/
A3HRlzz5/7qwV69eunDUqFHTp0//61//6v7PUFtvvbWe7a233tLl9q/4GTRokOe27A+T95zB09Sp
U9euXWvN/L3vfU+Xz5s3T6/knXfe0eVbbbVVbVv3bMnPPvvsnHPO2WmnndZbbz139p0qCbW2SjNE
aVX97N8VK1bYy/XDolXr2b+Sz3Ml9sZU07p84MCBVSsfYxOFbYdC02cgWN+Epe61dIl61+cQxNJ0
hVJmpjXdvsSatr6U2XN/Q53Gm2++uefM9sNkX3mUc6lSQ7mpY33VVVdFOXb2tekGdxwI+/qDn2b2
P72NGTPGKvzhD3+oC1977TX/3Y+9n8kN8v+bWVz5/1FO6aqXZxb7bU+ec7qv6CiNWXPllaeffvr7
3/9+pcq3adNGjUS1HcFChHG86s1DwHvLsHWOchTcm3bPwLAecbsM6xlC/n/SKl0CPu/yqdyzJWP5
yOm/g+6Nnn766dZbXbp00X8NOfPMM4NUvrYR0HPfg+xO1Y7XPvq8/fbbulxN+1TA+D1bgUE58nYZ
lNOP/P8UqnSx+LzL8O3ZkrEP3+rlddddZ01369bN/vdlidBdDx48WJd/9NFHs2bNsqZnzJhhTahu
2Z6fv/3229tryHDpWDnDJcNlLMj/B+pEjvP/C3X/WwX/5pIId6px/XXAUc4NVcTtckPV/Mj/Dy4r
+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
xr5E/0bDDVVy2+WGKnbk/weXrfz/Qpo+84a6NOjMHSunM7fQmbuR/w/ERV/yec3/f+utt9SorXvR
u++++8sSNaF71LZt27799tt6kUGDBk2fPv3ZZ59Vs61evVr11ZdffrluKP3k4c8++0z/d7kOHTpc
f/31n3766cqVK9W/f/vb384777xtttnGXpOqHWyoHlhtZb311rNm7t69++OPP75ixQq1XTVtFaq6
qRoGX7n+H/dS+puO4wE+I0aM0O+edNJJCxcu/Otf/1rpi5ai7GxcrRqq3F6ozorHHntMNeYTTzyh
W1idIe+8847/SsI2kX+Dh20Hi5qhZ8+e0pQqUeXBD0HNTefeRNXFQ53G6iLV17JaSs3mmNmx8uTO
JXWwnn/+edVR6PKjjjqqGbZbCH+aKa+//rq4qI4x9gPksy/5Q/5/8/v666+33nprvZuHHHLIM888
s3jx4qVLl6qT/KKLLrJ6Pz1/oqe0Z3md9NvN05j+lR8+fPiNN96o+jF1AixZsuSFF15QJXrm6667
rraVR7nVqXrzEPDeMmydwx4F/3sPn627Ra8Pw3qBYT1NyP9PGp/KA668eT6VB9/Hf/zjH/rhvRMn
TrQKdTqoekvN4L/a4CNgzYNUqPL58+frPdKjzyOPPKKfvVOpWTJ3z8agHLbBGZSNI/8/hRi+A67c
4PCtGm2TTTaRpvS7NfyaYsaMGfZVjR49Wr81duxY+1v2Pzfb68NwWXP7B99xhsu6Gi7J/wfqRF7z
//mtQqjmKoQc+5L+G42b55zcUIVtW26oYkf+f3CZy/9Pz2feUJcGnXnEIxV8H+nMs96Zk/8PxEVf
8nnN/y+UvqzH0c3aqU9kDzzwgH3+SnNaM7/00kt6TjXdt29fn/krrdaznmF74BdeeKF3796e21Xl
L774YqiVn3/++T678Mwzz7Ru3drxlj1PJsadjaVVQ5XbC6dNm+bYXIsWLRwPufJcSdgm8m/wsO2g
nXDCCY7ZVEmoQxCqvGp9qs4Z6jRWB0IdDsdsjkNmnz/2c8nTkCFDvv7660S3qwvDnmaWYcOG2WfY
bbfdEjpA/tXIE/L/jVi0aNHEiRP1ryb8L65ET+lK5XXSb2uJNmbVynuaNGnSmjVralt5lFudqjcP
PnV23FuGqnPYo1D13qPSVtxiqQ/DOsN6epD/3wz4VB5k5c3zqdynrewzL168WH+v/frrr79gwQKr
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
vlg/dS6o52zrS/lO/SkZ7vOc7SQaarW0PF/O01mROjaX+e/JZjEejrHy/6zJF2So+vG07Gq91Mn8
7h3UG71dfubZIGFrFbBhoxwOwnQ/ngt8E02pkG+i4ZtoIh50vommrgPIK+sMH9PwB+vLi/+9ttC2
9O/lXn/IPr70QMJupb99d5XCjxtmOKbpJVPpL+ABF7eH/mP9zVLYvbRUGyl8r/RQQccMvyn+R8fi
uxtIYVpD4W6uKl1R/P/khQ5SOKSh5JIAlQ+7FTXbZg35BlJK2LDKdy4tq2JjKfzQ92GDjjoPdB2X
MaV52pQeq3h36TGP1jfhtmrY3KzSblZdedhzwHgAQFYwyDLIMsgCQNYxmjOaM5oDqDelzqRn+fmm
8nmv6j3PreU/SMrAd+Sp4cVU7fmbN6bg3nF445x6yrGGSuWflZ9vWqyPLhw3u/gM/4/6yMrWxRnO
Lf9RTsbfFWidVRfv8WWgfQ+413qBAe/KC0Pl265yRvn5pjJobvUKh92Kmu3FHWVVq3JBl/IjKouP
alfLqvjndnLFiTL41cZNHHRfeerq44o/p5e+c/7o64vTJ/y2OH3h2cVp/Zx2Nb9/naseZf+m8Fxc
7ZQ1ZT3/P2Kz2N/ae4580VN+N8FZor8nwvqvEDXsb5RjevlJ5Zebzy/+j4wlHYv/qmn3Chd3kk6l
R+L96C/lkn0fLP7ovKj4lnujXb+VWyYXz/xl7eXvuzcuFfDYWT+vO6b8crP35Oldi9V7ZpfGb+u4
7hjnUj5HvPuCcskHGzs3+t9NylPrfRXuLAp4CXvur/VjnTV+swW5rKIcfZ9TN+CmiaQCQN0qdQL6
+f+fygb2zsHZVZR+uLOm7dFJFrsXd8xUqVxt3ZrUz/9fKy1ulp/vIU+oEp2OboV6WXWdQRYP+JT7
gHutS6xH6KtYI+t41s2zMOxWrEf3+6x2ubR9Xb6vs2rtWXnzZXPr6fSHyd0FW4rgkzIiVMt47ov1
0z///3SZoUvUjm8rr/1Mbv+L/CjI2RK9oVR8KT2ulF+q3V9XvtHFY+ShGLfyuIy0JqfKNeqHan/r
5d9l90o7qDeqque54bC1CnjUohwOwnQ/ngt8E02AfeebaHzCvS/WT76Jhm+iqaMA8so6wy9p+IP1
drbTfrsAf8hu2TDDtU3LA/4FvNLi9rjQlTBQaYYtbIXdGgrPd1VJ72PHhpLbAlQ+7Fa2abr49Q3l
W5aeixiw53HX2X5cdCLETxtKdiq93Lbh5dHBVh7xHGj+AICsiNjBMsgyyDZ/AAAcIvbkjOaM5s0f
ABBRqTNp1ZD7Y0+ZLrj+RGn93KH8eMViirJ+86Py4xVl2HMeizv6rkrlK8sPHy0/9d0z9DxWZnjV
dVZdvNK+OyLgXuv3Ht6nPPl1+fmm0nFJ9QqH3cpjo5osrp/t/9Tw4oPHPXfEkdg/5qHi9D2HFqfv
/3FxevQjxWn9nHzrvwn41LlSywdsCsfiy9vKc8NkmzfKhdZj7SM2i/2tl4cUfy7q3Fjy4o7Fn9+1
K7/ssLTG/Y1yTAfNdbaVCjXtXuHMKeWpP/6fcskfDiyX3HSkx0Zv/5lHPYMfO+vn9q+UX/71h43z
qGlrasjLzqV8jri+3NSBdmxUHwI1T6izKOAl7Lm/1o+Wq/1mC3JZRTn6hWhXNJFgAKhbpU7gh/JX
qzO4TSa5u4jGrqL0wz/9WFypdxI46/JO+ak1qepjlZwqlwbZUKV1Bllcp6vNlnE+exVwr4PXzbMw
ylZ83vpEeluT68tn9vK95FH1c135ZoW06SMfSSlZVL8bsGU8N2r9bCFrdcm30tUx2xpZ51Y5Qm1F
J/1acY5c0AwN5WgfvbOqNeLdyrbympQSiRdLJ+s/GvxA/uGzgxHz/4Pve4yHgzDdj+cC30Tjte+O
4JtofMK9L9ZPvomGb6KpowDyyjrDZzX8wdr+7LsOrj9kt5DCHlI4Swo3SOF3tnfvLr20XzKefwEP
vrg9dN06V5vBM251VamDrT6e9fQsDLuVdk0XP9T2llrVdCkcJYXB1Xoed53tx2VWQ8kGUrirVHJs
6eWkhhm+F2zloc6BNAQAZAWDLIMsgywAZB2jOaM5ozmAelPqTPTz/z/doEkn4+h0rJ8dfNMrOi32
WNwxV6XyT8vPN218/v/aFnLzz2WPJ4olrZo8oLRJknCldQZZPODDwwPutS75tmt5ck3j802rVzjs
VhY1vR84vfERlcVVbfua/Ox2+cuPmszz2rblqfU/k9Uti8+HV9Mf9SmWqRawtrKqlfT+pDzb3EFV
6lz1KPs3hc/+bvZe8cH10ZvF/tbS0siuTgxdsqRjxR0Jtb9Rjmn7Zc62UvHNuh4rHPxq8Yc6aVe2
LpeoCesc3v4Vj41+2cNn49WPnfVTV09VyV09/T8m9Hs+R7zm5//7rDP68//98/+DXFZRjn4h2hVN
JBgA6lapE7hffmx1Bn3lw4+kj6OLaOwqSj+GygvWyzdkG/++RU86krgcK7RigXTfTMrfuPN7OcQq
tJ4MLKUMNCtj8BtZ13Nxz20FWfwuGW+9/L68vkzaV9qXgHvtX7eqFY6yFZ+3dEpeO/nOXv4nOcCa
vFjOtCamyzT9bsCW8dyoTmjUeZ4Pyz7u2XSo2e6RQ61XG8inzdBQjtDJsZ1lUbxbmSUTrcmfye3W
xO9kgs/iOqnS/gBze8S17zEeDsJ0P54LfBNNqYRvorHe4ZtoYtwK30RTRwHklXWG3x7sD9k/8f2D
vv2S8SwMvrg9IiYz3O1bpbiSGfy3IqXEiRFSmFZK5LAvdZBvzxMwmUFKa1YlNxdvgIpPhlTTV1Tr
1hxVDXgOpCEAICtCdbAMsgyyaQgAgEOonpzRnNE8DQEAEZU6kx+Wn28qt03y6Gr0lPXTP6NVqqVP
+5TfWX6+abE+Vsmpfg8orb7OIIuPLj/YUmaP89utgHsdvG6ehVG2UiilRt96RHGPejZ5RKWcc0Hj
q7UtpFs57av42H/176b/bnx34DvFH//3J+XX635TXGcNOxJ8Zvc+tl9WfP7/mRc3ZptHbBb/7YYq
CbuVgJVv91152j///5Xtq6zq1Yb/TZlQ/r9n9dz5/z6rGv5U+eWD+zo3+sB+5and/x7uEAS8hH0O
cYu1jSXfdnXOFuSyinL0fQ5EwE0TSQWAutXQDxwgf7Im15fPrpbj/i2brpA230m71+X7jV1F6ccd
crj1cit56xEZ/a10XSWtPpUN/iZ7nifnbyNv6HV2lW+tyadlV3u2sH2Fq6XlR9JnlkzsL/+xCsfI
Q3rmXvK5VfgX+ZGqz7syQNdTmuZ9eW4ryOJrZJ095W9WyfbyitqjxdJpkXR+U7ZWtdpZng211551
C17hKFvxfEvttT3r0v5MbKvx+8qHarK9FG+AWsmqT6S3fjdgy3jWx3rovRQfBHLRQunykuywhcxz
zKYqM1OmvC1bfle8PWx3nxxkvWt/An9CDfV9ef18Oe9JGfGF9FQLfik91EvrzVHymJ4t+uEolBJf
9QONVWwoH6+U1j6H7BaZbL3sJl+rdv5ceqnGeVZ2PlD+EGOt3DNEORyE6X48F/gmmtJLvolG+CYa
vomGb6KpOYC8ss7wgF9kf1PDy92KH3KKJZX+2K0L7V9CGnxxe1xoW8pzhl81zNDX9yquIZmhRUxb
cUT74kfH8mzXBVub53G52FY4pKFw/4aJ/ap1a46qBjwH0hAAkBWhOlgGWQbZNAQAwCFUT85ozmie
hgCAiEqdyf3l55tK3w/Lj4K3h56yfg4tP15R3timSh+lp9a28FuhFQu6F5/3br34/SHlQp2pfvvP
ZGGX4qTnQ9ErbSvI4neVn+Ip339dlrWvuC8B99q/blUrHGUrjlD7e0/5EZWywadN3vrRXxp3Wf07
0fZ/6H5+c2O5irH/r8YdCd4UQfYlerME2W7AulXa3yjHdNDc8tTD+zQWPryPswJH3lR550sxZWZ5
cofyQ1LljsMDtZj/sbO+dKBS9fT3Dvg3l/Xz6uPKL0c82WQ2VYFdnim/uGZq0ENg/Qx4CXuuTefn
W/2DZ7Pbw+ey8mzM5rmiiaQCQN1q6Ae+k3aT5LYqXUXD1MnymyCz7ScPeL7ls+x4uWuJdNSv3WmT
R8it7g1V2lbAxb+VrvvKg7HstWfdglc4ylaqtm17Wfa07OoovUDO0a9UlRzvBmwZd8lMmeKY+Ti5
utJeOEIdtaQbyqeJXpCh9qKIh8OKX8m5+tXFcmalylg/1kqLX8iN/g0eqlYBqx3xcNR7IDq+iab0
km+iEb6Jhm+iqelwEKV2BHLKOsPHNPzB+nIpbCGFtqV/L3f9IVs/iG9w6aF560vhxAp/7L65oXCg
LSUg+OL22L1hhpukMFwKXaTQulS9XzbMsFvDDJcWh7RigkTL4n/3KmwthR9L4dcNswVPZvCsfJSt
qDhfCnsW/7tysfIqdmyY7WbfnkevTR+XzW3HZYxtznWkcE2p0Hro4u9KdfPv1hxVDXgOpCEAICsY
ZBlkGWQBIOsYzRnNGc0B1JuG/uSAhgd/rv9ZMUf335vKijbyXTt5vfH5puWfd5QfryhbvSWPjC4+
LntVK/l0A/nbnnLe+cUnt+t1di0/ClGe3rVJTqx9hatbFv/HwayJ0r/8fFMZ81DjzL3KDyiVv/yo
WJ93BzTWU5rmynpuK8jia9aRPctP8SxmMqs9WtxJFnWWN7cu1mrnZ8PttWfdglc4ylZUDHtOZk6R
t7csHjgV95UfUVl8jL99tstOabLYrUc0vtIVsOLXp9W4I8GbotK+2CNiswTcbsC6VdrfKMf0NyeX
59l8vjy7syzpWPxXTdsroM7JTovLL9Uhtm9XvbSmOi8qnr1q8pbyQ1KL/wVGncaf9yqeD2qdB/6h
lmN37bHO6j03rLF61x0T4ogvay/f+1e5ZMLvZP7msrJ18d/xd5UL1buqqqHOooCXsOfati0/iFfO
uqiYYP/SDrLFPOdsAS8rg1c0kVQAqFtNe4OXZIej5Iat5c0usnAdWdNJFm8u8/eTB2bI6W/JVvY5
n5ZdJ8jvNpP32suyVrJqfflshDx5jlzwmmyr5/lQ+qpl9QPDxZVp3ELWtpEVveTzwfLqFJn5nAxz
1GeVtFKb3kLmtZXlm8h/z5fzVktLx9p8thV88UIpLfBQuaefvK8GImvHx8nsO+Wnofbac+XBKxxl
K463dAt3lCXfk3+pw/qODHTP/6ls0FpWWq8ekP08x4iqLeOuz1ppcb0crU4ktQtqR34rJ6gSx2yv
yuCT5HJ16NU6W8rq7rJguDx1kxzpSOdLoqHulsNUg2wvr2woH6tzQ0V/+c9EmeU4yaMfDiu+kJ6q
6aT4C8WlC6R7pUNmL5wjex8of+gjH6kLRO37GHlIldRWK3d4bjf64ajrQHSlluSbaIRvouGbaPgm
Gr6JpuYA8so6w1tJ4Vzbn62tmOj6Q/ZPXPNMqfDH7pNdc4Za3B4tiv/P3LmgY5HxFWawzxY8mcGz
8lG2IpWX+olvz+N5LKw4t5RNYZ/5/9jePTlAt+aoasBzIA0BAFnBIMsgyyALAFnHaM5ozmgOoN40
9CfftZNJVZ5v2jh5st/jFRsn93M+CrH802fZ8XcVs4t1wamur4U/4laPDVXaVsDFv+0q+1Z8ime4
vfasW/AKR9mKT8OqdrAXvLhjk3ffHdD46v1+Td56fqfadyRgU1TaF0dEaZaA2w1Yt0r7G+WYrmgj
uz7tLD/muibz3PiL8vTQFzxWo58zP3NK8efaFvIL74ekBtoXx8s168jB93qv7ZDfF98NdcT/vals
+bb32r73r+K7/ot7Fga8hN0lM50P4pXjrnbOVmm1jsvK4BVNJBUA6pbx/ocwHZvIf9XP3vLJamlp
vDIEkclAdKWW5JtoYtlrz7oFr3CUrVRtW76Jpmor8U00NR8OwnQ/DiRGn+RtpHCIFK4qfj1J4Qop
/LCUReD4Q3ZLKfxICr8pfu9Occ4DS8/Q8/xjd/fS39Nvbvpu8MXdsW3p6YXXlqp3c7HzKpbYZxgo
haNLNZ9VepTf9VI4WwoHSWHjhhmCJzN4Vj7KVlT0K+VCXCyFW6VwpxRmSuEcKexhe1iiZ+i1tSgd
kctLu39V6Ui1cc28bqlK1vyDA3Rr7qoGOQfSEACQFQyyDLIMsgCQdYzmjOaM5gDqTdNe5aUd5Kgb
ZOs3pctCWWdN8Xnjm88v5rXOOF3e2qrJnE/vWnx892bvSftl0mpV8VsDRjwp51wgr9mGpA/7Fpft
2vgoxPJP/bLFWmmzoviU/sGvypSZxYeKO+qzqlVx01vMk7bLZZP/yvnnFb8vwLE2n20FX1zFw/vI
ofdIv/eLD9WydnzcbLnzp+H22nPlwSscZSsqXh0sJ11ebExV/5arpfsCGf6U3HSk8zH1qln0k+R7
f+JcSd8Py1MdlsrK1rXvSMCmqLQv7qi5WQJuN2DdfA5clGO6tIOccUnxLFVXxIB35YoTi0fNvh51
WK3pG47y2EFVaE1t/0pj4Zy9iw/87/NRcZ2qVmMeKpbUfOzuPkxGPVY8qaxTa+Tjctf46qeHZ+Gy
9nLN1GILqPWo1lD/qumrjyuWVz1wPge66iXsXlA18vVHF3s8dVzU0fntCc5mLwS+rAxe0URSAaBu
Ge9/CHOxSDpfLcdZr86X84zXhyCyGojO1p58Ew3fROMOvomGb6IJcjjqPYC8Mn5xETHGVaWsg+tK
WSLGK5NcAEBWGO8wiRiDQRYA6pPxnpmIMRjNASAI4/0YQRAEQaQwANQt4/0PYSiulF/qVz3kyy+l
h/EqEURWA9EZP4iE0eCbaAgihgDyyvjFRcQS7aSwd8NTBw80XZmkAwCywniHScQSDLIAUM+M98xE
LMFoDgDBGe/HCIIgCCKFAaBuGe9/CENxolyufraSlZvJu3+UA4zXhyAyHIjO+EEkDAXfREMQsQWQ
V8YvLiJ67NOQxqDiRil0Nl2fpAMAssJ4h0lEDwZZAKhzxntmInowmgNAKMb7MYIgCIJIYQAAAACm
GL8ZJkwE30RDEHEGkFfGLy4ieljJDLdL4UIpbG66Ms0QAJAVxjtMInowyAJAnTPeMxPRg9EcAEIx
3o8RBEEQRAoDAAAAMMX4zTBhIqz8/7ayfIi8/JwMM14fgsh2AHll/OIiiLABAFlhvMMkiLABAHAw
3jMTRNgAgIiM92MEQRAEkcIAAAAATDF+M0wQBJH1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiECEIIjUBYB8MN6ZEATh
DgAIxXivRRCEOwAkyvg1ThAEkUQAABCW8cGLIAh3APXJ+KVHEIQjACAljPeHBEG4A0A+GO9MCIJw
BwCEYrzXIgjCHQASZfwaJwiCSCIAAAjL+OBFEIQ7gPpk/NIjCMIRAJASxvtDgiDcASAfjHcmBEG4
AwBCMd5rEQThDgCJMn6NEwRBJBEAAIRlfPAiCMIdQH0yfukRBOEIAEgJ4/0hQRDuAJAPxjsTgiDc
AQChGO+1CIJwB4BEGb/GCYIgkggAAMIyPngRBOEOoD4Zv/QIgnAEAKSE8f6QIAh3AMgH450JQRDu
AIBQjPdaBEG4A0CijF/jBEEQSQQAAGEZH7wIgnAHUJ+MX3oEQTgCAFLCeH9IEIQ7AOSD8c6EIAh3
AEAoxnstgiDcASBRxq9xgiCIJAIAgLCMD14EQbgDqE/GLz2CIBwBAClhvD8kCMIdAPLBeGdCEIQ7
ACAU470WQRDuAJAo49c4QRBEEgEAQFjGBy+CINwB1Cfjlx5BEI4AgJQw3h8SBOEOAPlgvDMhCMId
ABCK8V6LIAh3AEiU8WucIAgiiQAAICzjgxdBEO4A6pPxS48gCEcAQEoY7w8JgnAHgHww3pkQBOEO
AAjFeK9FEIQ7ACTK+DVOEASRRAAAEJbxwYsgCHcA9cn4pUcQhCMAICWM94d+oSeN14TQk3WyXdMB
IB+MdyZ+/UzDlPGaEHqqTrZrPAAgFOO9ll+HdrdYYbwmhKljUbfnAIBEGb/Gg1z+xmuSkgjVIDlo
PeO7YKoCxnc8HwEAQFjGB6+Kg1rDlPGaEHqqTrabhgDqk/FLr+Il2TBlvCaEnqqT7RoPAEgJZwc1
/Cm5bZK8M1AWdZYVbeTjDWXuIJk5RcbNrqW7a+zlvd7de47cc6i830+WtZfFnWTeFjJ7nIy/K+ji
ESOhlTsKVBt+0lvm7C2H3lPL2rZ5o9hEag2rWsnCLsW2enQvueLERBrEbHPFu92EatuMASAfHJf2
cHnqNpn0jgxcJJ1XSJuPZcO5MmimTBkntQyyjV2d17t7y5x75ND3pd8yab9YOs2TLWbLuPFyV8DF
o3Ziyazc8Vq14SfSe47sfajUMshuI2+oJlJrWCWtFkoX1VaPyl5XiIFBNunmine7CdW2WRscAMJw
9CHDt3zqtimT3vnNwEW3dl5xR5uPr91w7iWDZk6eMm5oTaO5b/L23tvOuWfqoe//tt+yWe0X39pp
3m+2mH38uPG73BVw8ai9ZTIr16u1QrXhJ9f1nnP63ocOq2k07/uGaiK1hlW/a7Xwli6qrR6dttcV
PzUxmifcXPFuNwf/awBAohxX3PDhhdtuK7zzTmHRosKKFYWPPy7MnVuYObMwblyk69fz3b33Ltxz
T+H99wvLlhUWLy7Mm1eYPbswfnzQxePqW5qzQ/vgg/JGhw5tLBw5srEyY8Y0lqt5LGopnzpX2pGA
O+i2dGnh9dcLF15Y6NKlWRsn4DHy2a/Yj2mlFXbqVLxALGpCvYx3/UZOzvwFAABh2ccR/r4T12qt
4O87EVdb23YTqm1ztzlQl+xXAUNSXKu1giEp4mpr225CtW3WBgeAdGjsmjotLqbf+3RdNXR3lZbt
+q08uG/1DUXZdM11i2u17jj10nCr2uGl4v+MiOtYpLy54t2uwYaKKQDkg76oO8li9VnY57KvpaOo
sGxX+fZB2bfqhqJsuua6xbVad5wq4QbZHeSlZdI+rmOR8uaKd7sGGyq2lgGAMHTv0and4tnHj3Ok
r9ujlh6pwrJdO3z74Cn7Vt1QDvL/7XHqviFH801fWjarfVzHIuXNFe92yf8H4E9fa506FdPvg8xZ
w/XrKO/atfDgg9U3FGXTNdct0bjzzvJGTz21sfBXvyqWLF9e/Hf69MZyNY9FLeVT50o7EnAHfcyf
X+jZs1nbJ8gu+OxX7Me00gqnTGnSUEceGfP6jZyc+QsAAMKyRhD+vhPvat3B33dqWG1t2zXYUHE2
DlCXrPOfISne1bqDIamG1da2XYMNFVvLAEA6lPulFmvlkdHlLurtLeXge6XnF9JqlXRfIDs9L9Om
F78FoIburrG/thWus0YeH1l+9Y8fyD4PS+dF0na5DHhXfn6zPLtzlcXjioRW7lhtxyXF1rNK/rdR
uFU9Nqo8ec4Fst5X0maFbD5ffnGjvDA0kQYxEs1zFDIYAPLBuqJbyP/P3r3A2zHdiwNf5+T9Jjch
Sv9tPUqpUMQjVVxUwi239X7UK4pSLsot170klDbtvw9/72ejytXW7ccHRRQffJTr7SK9CNp+SkmT
ijxIRB7zn8lM9t5nv87ss0+cc3K+38+v2TNr1qxZa2bPWnb3OrNX3Bf2SldeDpsdHH41OszuG5aO
DO/uGP77nPD950NHBtliV1eS2BqWPxD2SFeeC1+YGO4dFhYMCB9uHF77RrjusTC+/u6d1omtnsLL
ih0S3o/PXpryl9DYIHt/2DNdOi9c+A/h7/3Dkk3CzBPD1U+ENWeQ/XiuQk8MgIakXUdLy4r7ztkr
nTL98v/d7OAdfzV6+Oy+fZaOHPrujhv/9zn7ff/573VoNK82Dbu1ZfkD5+6Rpj938RcmbnXvsIEL
BvT7cON1X/vGP1732OTx9XfvtN7yY5nQPmTA+/HZS1P+cmmDo/m/7ZnueN7XLvyHoX/v33fJJmNm
nrjH1U9csAaN5l30ZwXdP4DVKr3RWlqi++7LUl5+OTr44GTid9++0ciR0Y47Rueck/wKQDP3b2li
a2v0wANZ+nPPRRMnRsOGRQMGRBtvHH3jG9Fjj7Wze6f3LR9nh3b88dlB77qrmPjQQ0nK1Vcn//7+
98X0wp9I1J9eXqshORtYli2+EOPHRy+9lCVeddXHen6avHCdfk1rFfjMM0niH/6QROzppzu/LaL5
AIBGBd/vrLZifb/THa5CDw3onYIhabUVa0jqDlehJwZAN5H1S4ffkvVPL28Whs/P1ZXtc3e4Y7/w
zpjwUb8wd+1kSv+BtxW31tov/t8RN2fLM7ZIpsfXOUTpXrVSKhP7LAunXBZ+/8Xw7siwrE+YPzw8
uX2YenbY+vn265anaaUlDPgwXHJamD06OVCtGg5dmC0u6V9MfHq7bPHEq4uJh96aLT73heRl4dBs
NS6hyctRq84j3w0fDM7SN3yjmHmj17PFeGucp9aZ3/P+cNuByd81xE2bNyLcs3eYML2Dtcr5Hmj+
4vaQANYM6R19eLglXYo/iQ8PuQbZfcLdd4T93gljPgr95oa148/XB4Zi/1mzqwvREeHmdHlG2CL+
rFqvnynZq1ZKZWKfsOyUcNnvwxffDSOXhT7zw/Anw/ZTw9lbh+fbrVueppWWMCB8eEk4bXYYHR+o
Vg2HhoXp0pJQHGSfDtulS/GH60LioeHWdOm5kAyyC8PQdDUuocnLUavOI8O7H4TBafqGoTjIbhRe
T5firXGeWmd+z3D/beHAv4RPxk2bF0bcE/aeEKZ3rFY53wPNX9yeEgANSbuOw8ffUpj8P3xQvtF8
67vvOHO/d64Y89FN/eZeu/YD5+5x4PYlo3ntZ/sf8cWb0+UZP9hiyIC6o3m+XwQoS+zTuuyUvS77
/eQvvnvNyGW/6DP/+uFPXrj91EPP3vpTz7dbtzxNKy1hQL8PLznytNlXjY4PVKuGQwcuTFOW/Lxk
NP/udmniiXuUjOY73Vr4s4h4deENQ9PVuIQmL0etOo8c+u4H0wan6RuuUzKar/t6mhhvjfPUOvN7
fv7+20478C+XfjJu2rzrRtzznb0njJ3esVrlfA80f3F7SgCrVXqjHX54tvryy9Hw4bnuzX32ie64
I3rnneijj6K5c5Mp/Qce2P6dG2864ohsecaMaMiQXLd/nZTKxD59olNOSSbSv/tutGxZNH9+9OST
0dSp0dZbt1+3PE0rLWHAgOiSS6LZs5MD5Tn0pptmO8bFtrYmKf36RYsWRStWRJ/5TLR8ebRkSTRw
YJLe0pLkScV7VW1p/YYUxEX9y79Er72WHCg+5yeemKTUP6XjxmWJb73VCaeldNOgQdH110cLFkRv
vhmddlqyacMNo3vuid5/P3rjjei885JzWKtuddpb/1TkqXxcsYsuiv74x+SHGF59NTlj8VmqenK2
3TZLPOus4m80fOELVd7Ae+4Z3XZb9Je/JJd13rykmRMmNHbtSks77LDod7+L5syJli6N/v73pAnx
bVv1/Ne/4r0nAKBRwfc7bcv0/Y7vd7pDQO8UDEltyzQkGZK6PAC6iaxfmj4h658O+WX7nVjLinD1
idU3XnNCtlSzv46KPzRw8K/aOVDpXrVSKhMvO6Xe0evXLU/TSku49dCahacvQ94P3/lBlvLilsUS
Jt2QLd47sZj4y0OyxZOvSF7+tk62etORxfntHbscdep85UnZ8vkXFDNfcH62eMXJNc/85d+qd5Ib
rVWt1nXixe1RAawZ0jt6esi+zT0ktD/ItoQVV4cTq3efIes/a3Z1ISr81f/BoZ1BtnSvWimViZeF
U+ocvX7d8jSttIRbw6G1Ck9fh4T3vxN+kKa8GIqD7KRwQ7p0bygOsr8Mh6RLJ4dkkP1bWCddvSkc
Wfiw2bHLUafOV4aT0uXzQ3GQvSCcny5dEU6udeYvD9+qc5IbrVXO90AzF7dnBUBD0q5j+tkT0mnS
h+yYYzRvWXH1pBOrzrK+5rhVo3ntadiFHxo4eMf2RvMOzf+/7OhT6k8Cr7M1T9NKS7j1lENrFZ6u
Dhnw/ne+8oM05cWpJaP5rjekifd+p2Q0P/WQNPHkL68cza9aJ1296aQjC/PbO3Y56tT5ymNPSpfP
379kND/g/DTximNOrtquOC4/5lt1TnKjtcr5Hmjm4vasAFar9EabPj1bPeSQ9u/KlpbsYfWVrrmm
nTs33lT4oYGDD857+9dJqUy87LJ2Gltna56mlZZw661tdm/30HHMmpWlbLVVsjp+fLI8Y0ay/Nxz
yfKuuybLY8dm2eL8tVqas5mXXlqeYdKkdk7p4MFZ4kcfdcJpKd30q1+12f2ss6K//rVNyumnd6S9
dTblqXy/ftEjj5RvveKK8gqkEe8VW7o0WnfdaMyY5G8copU/31D27r388ppVyn/t0tXW1uiXv6ye
P05P/5Ak/xXvPQEAjQq+31m11fc7afh+pzsE9E7BkLRqqyEpDUNSlwdAN5H1S7NHZ/3TOn9rvxMr
zF1/ZdOwyyNh8Adhk5nFWf1H/byYs9hNl+w+Z1TeY1Xunr4ub62Xbf7wbPWw/0zqFsdW/xPO+El4
dpt2Cs/ftMIecbbtnwx9l1YptiwWD0yell9YH7QoeR5+tPJHAYYtSFL6L8lqvmhQGDEvSbn43DYl
zNgiTJmcFNJnWWfWedNXwoqWZPHVzxbLfGPD5DVOj4uqeroKB503Ihx3fVh3VtKi3R4Kd+7bwVrl
fA80c3F7VABrhvSOnh1Gp0vrhPYH2cIHyVfCpruERwaHDzYJMwsfsY8KxUG22NWV7D4njMp5rMrd
05flobVOtvkhe+zjYeE/Byc/EvPBVuF/zgg/eTZsU7/w/E0r7BBn2z482TcsrSy2LBaHgXuG4iA7
KCyaG9aOVv6F/rCQDLL9w5K05ovCoBEhGWQvDueWljAjbDElTI4L6ROWdWKdNw2vrAjJM/VeDcVB
9o2wYfwSp8dFVT1dhYPOCyOOC9evG2bFLdotPHRn2Ldjtcr5Hmjm4vasAGhI2nXMvmp0Ok16neE5
RvNVc9df+dGmu2z2yOD+H2wyZmZhVv9RXyoZzavNvp5z9aicx6o1/3/5za11ss2/fni6etj4/4zr
FsdW/+d/ztj7J89evE39wvM3rbBvnG37jZ7s22dpZbFlsfjGgXt+vmQ0779o7rVrRyt/FGDYwJWj
ed8lac0XTRs0YvDK0fzgc0tLmPGDLaYcMDkupE/rsk6s86brvbLi5pY4/dUflYzmP90wTonT46Kq
nq7CQeddN+K43a5fd8SsuEW7fe6hO8/ct2O1yvkeaObi9qwAVqv0Rps9O1tdZ53278pJk7LMr7wS
7bJLMld8k02Ks/qPOqrK/Vu6+5w5eY9VuXtq+fJ62ebPz1YPOyypWxxbbRWdcUb07LPtFJ6/aQVx
tu23j/r2beDQt92W5Tn11GT1nHOS5SuvTJYvuSRZ/o//SJZPOSXLFuevX+eqiaXpr70W7bBDNGJE
9L3vZSnPP9/O7nGjUunz/5s8LaWbpk+PRo+OjjyyPOWYY7LV9E8hOtDeZq7pt7+drc6cmfxFxpAh
yb/xcmWBQ4dGCxcmKXfemaXcdVeyumBBsqnyoPPmRccdl/ylwKBB0W67FffKee3S1ZNPzlZffz3a
eeekel/8YrKcirc2dMV7TwBAo4LvdxpsWmEH3+/4fmf1BfROwZDUYNMKOxiSDEmrKQC6iaxfWto3
659Kp7KHitns6ctT47LV8Y8Vt63/Vrb4+E5Vdi8tpdaxKqNy9/R1WZ962Watm63u8kjyFPr8hedv
WmGP0in9Vc9Yady3Vxhe8htMPzkjW0x/B2HC9Gz1F1/PMvRZFiZPSQbDsnJmbhI2er0z6/zbf8oW
d3giedn50Wy1MJm/8nQVDnr0jdVb22itcl6mZi5ujwpgzZDe0UtD9g136efKUPHRMn19KozLus9Q
7D/XD29l3WfYqXL30mJqHatKP1Oxe/pS+OW7qtlmhXWzbjg80hJq9sNV65azaYUdSj9fVz1jpRF/
FC39ocOfhDPSpfShBBPC9HT1FyEbZOMP3ZPDlMKP5RViZthko1AcZJuv82/DP6VLO4RkkN05PJqu
Fj5ZV56uwkGPDtUH2UZrlfMyNXNxe1YANCTtOpbe1DedL106lT1UzGbPOurvjktXx3+2pKNe+600
8fEpO1XuXlpmrWNV6dBqzP9f9os+dbLNunLddHWXzR5pqf2pqmrdcjatsG/plP6qZ6w07jtnr+GD
Skbzr5+Rpqe/gzBh7PR09RcnrRrNW5dN3n/KB9MGl5Uz88ebbLTu651Y59+e9U/pph02Xjmab/po
ulqYzF95ugoHPfpLNUbzBmuV8zI1c3F7VgCrVXqjLV2arZbO2a68AbNu7alsdfz4Ys71188SH3+8
yu6lZdY6Vp3bvyxl2bJ62QoP2N9ll+TZ7/kLz9+0gj33bLN7nkOXTey/++5k+dCVT3o74IBk+b77
kuXCc/LTPxOoU+eqiaXpEydmKWuvnaW8/37N3QcMiHbaKXrppSwxfax9k6eldNN22yWrw4YVU7bf
PkkZODBb/eCDDra3mWv6/PPl5yqOeLmywBNOyFK+9rUsZf/9s5Tjj69y0KOPbuwdXjX9mWey1b33
LuaJl1NPP93YFe89AQCNCr7fWRW+3wm+3+k2Ab1TMCStCkNSMCR1jwDoJrJ+qfD8/zHvtOmvynqv
9KVyRnppLBxaZffSHM0//7/+/P+pZxdT4qq+MDbceHTY9872C8/ftEJK+uj+OsUO+DBs+WKYPiFL
vKb4EznJ8/DTB+/fcniyeuVJ2ZZdH25T4Kg54fSfJnneW6uYfPc+nVnnPR7IFi87JXmJK5mu7vZQ
zXYVDhpXr+qBG61VraydeHF7VABrhvSOLvwx/pjQZpAtu/PT18qPh226zzC0cvfSLM3/MX79D+NT
w9nFbjgMfiGMvTEcvW8o74er1i1n0wop6d/R1yl2QPhwy/Bi4bcOS3+HbpMwM/0r+FtCMsgWfhRv
19BmkB0V5pwefhrneS+sVUi9OxQH2ebrvEd4IF26LCSDbFzJdHW38FCtdhUOGlev6pEbrVXO90Az
F7dnBUBD0q6j8Pz/MWu1Hc2rzf+vnJFeGgtvGFq5e2mZzT//v/78/6mHnl1Iiav6wvfH3vjNo/fd
pqLDr1a3nE0rpKSP7q9T7IB+H275yRennz0hTbzmuJLRfMzM9MH7t3xr5Wh+7Elpnl0/13Y0Hzbn
9Ik/jfO8d91ahcLv/td9OrHOe2zxQLrpsqNXjubHnZCu7va5h2q1q3DQuHpVr12jtcr5Hmjm4vas
AFar9EYrPP9/zJh6N2DWrX1Qr8CFC6vsXlpm88//rz//f+rUYkpc1RdeiG68Mdp33/YLz9+0gmHD
2uye59Bjx2YZZs2K+vRJng8fW3/9ZFN8QtKj9O0bvf12lm3rrdupc9XE0vQRI7KU1taap7Sq119P
Hlzf/Gkp3TR45QfclpZiypAh7VzunO1t5pouWpStFs5VHGutVaXAZ59NVuP3cL9+WUq8kL6ln3mm
ykFHjWrsHV41vVC9tdaqUr3CX0wU1L/ivScAoFHB9zurwvc7wfc73SagdwqGpFVhSAqGpO4RAN1E
1i/ds3fWPx37syq9VrHbXflSf2p3FGrumMZ9e2WLB/26nd6yVoErWoopI+aVZ2tdHibdkByl8EcN
aVx4XjuF529a1X3rbFrv7Wxx1rpt0n/35eT1vbVC/yXhrfWT5dc2rnnsuJDCqYt36cQ6x/HC2OQ1
PmNDF2Z/aPDcF3K9Bzo2/z9nrSozNHNxe1QAa4b0jr4nZI9jOzZUGWSLPdbK1/qfs6KST0CVKXEU
fpHtoNDOIFurwPgzbCFlRJhXlq01LJ8UboiPUvh/GLJuOJxXv/D8Tau6b51N64W306VZoc0g+7vw
5fgl/pTdPyx5KyQzJ14LNQfZuJDCqYt36cQ6xxF/qo1f4jM2NCxMP/U/F9oMsrXeAx37MJ6zVpUZ
mrm4PSsAGpJ2Hfd8Z+90vvSxu1YbzRuZ/185Xb9sGvZ95+yVJh60Q3ujeY0CV9xcMpoPnleWrbVl
+aRdb4iPUvijhjQuPPC8+oXnb1qd6eVVN6231ttp4qwr247m53w5TnzvurX6913y1uXrx8uv/aT2
aL7W24VTF+/SiXWO44Xvj403xWds6MCF6R8aPHfxF+q0q8n5/zlrVZmhmYvbswJYrdIb7Z57stVj
j613G2bdWt0J1VFUc8c07rsvSzzooLy3f1nKihXFlBEjyrO1tkaTJiVHKfxRQ+rCC9spPH/Tqu6b
89AtLdHcuVn6oYcm/77xRnHrK68kKYcdlmV4772kzPp1rlWZnJkrLVqUPP//4ouLs82bPC31j9tQ
SqNHyVn5xYuz5frz/7fdtp2ittmm/KCdO/+/avUq5//nPF1rfABAo4Lvd1aF73d8v9N9AnqnYEha
FYYkQ1I3CYBuIuuXDvivrH96c4Ow/lvlvVax21358sQO2ernX2qnuysslv7u/BE3Z4svbhkGLcq1
e2GpMKt8+Kof3Jl4b5VshYizHXprtvbOmPbrlrNpdY5YdVN8StPFxQPbpH/19mzx3IuzhXO+X++4
a8/NFhcM68w6x3HMtGzxxqOzhSNvqrf7U+Oy1aN+Xr3ATqlV/QyNXtweFcCaIb2jDwj/lS69GTZY
P5QPssV+buXrE2GHrPsM7Qyyxa6u5HfTjgg3p0svhi0HhXqDbNlxQ8lHvMKv2k0M91ZmK0Sc7dBw
a9YNhzFVCy+tW86m1Tli1U2FH6FbHNoMsl8Nt6dL54aL04VzQr1Bdu0wN11aEIqDbPN1juOYMC1d
ujEcnS4cGW6qs3vht/aOCtUH2U6pVf0MjV7cnhUADUm7jgO2/690vvSbl22w/toVo3nb2dRPXLBD
uvr5DdobzVft2FLyyeWIL96cJr44dctB/euO5hWzuAuzyocPWjWab3VvncnecbZDd7o13frOFWPa
rVvOpjU6/z8+pWni4hvbjubb3Z6mn/vPF6cL5+xXdzQfMjfNtuCGktG86TrHccwu09KtN37z6HTh
yJ1vqrP7U98dl64e9aUao3ln1Kp+hkYvbs8KYLVKb7QDDshW33wzexZ91dsw69aeyFY///m8929L
SzHxiCOyxBdfjAYNyrV7IaUwrXr48Cxl4sQq2Yrd4/Bsjn3snXfar1vOptU5Yp5D33ln8QzEpk0r
brruumJ67Le/bf+4VRvSbuaG2tL8aclz3Jx1q9XeZq7p889neeK3UyGx8q117bVRfddck+V86qks
5aijcp2x+tcu/dGBWtUr/O5A/dNVpxpragBAo4Lvd1Yl+n7H9zvdJ6B3CoakVYmGJENSNwmAbqLY
Nd3+1Wxx1rrh1EvDhm8kD6UfuDhs+WKx90pfjvp5tvqHzcNe9yVP4O+7NIx5J+z+YJgyObz0+WKZ
80Zkizs/WpyJ3bo8PLh7lv7MtkkJQxeGYQvCFjOSWeiPjS/uXnbcsOox9XFc9O/J9O9xT4VXP1ue
7fGdwgnXhM1eTiofx4G3ZVtLn5lfq245m1ZZsVp1js9hfAKnT8gS47qVZu6zLPmDi3hx0aDk36V9
k4f8F7a+uGWYPCXs+nAYPTupxqg5yWq68f49i9mar3McAz5Mrnsh4a+fCP0+qteu467PVueunVy1
df6WnOrxj4Xf7N+ZtarM0MzF7VEBrBkKN/Xt4avp0qyw7qnh0g3DG/3DkoFh8ZbhxWI/t/I1/vyV
dZ9h873CfSPCvL5h6Zjwzu7hwSlh8kuhOMjOC9lT3nYOjxY+FrWG5Q+G3dP0Z8K2cQlDw8JhYcEW
YUb8kfCxUBxky44bVv3NeBwXhX+PP4uNC0+9Gj5blu3xsNMJ4ZrNwssDkz9pW3xguC3rhkObfrhq
3XI2rbJiteocn8PSH+OL61aauU9Y9mbYIF5aFJLpI0tD3/VCcZB9MWw5OUzZNTw8OsyOqzEqzIlX
0233h+Ig23ydw8ofDYyve2H9r+ET/UKbQbZs9+PC9enq3LB2fNXWCX+LT/X48Nhvwv6dWKvKDM1c
3J4VAA0p9B63n/HVwjPqT51w6YbrvNG/75KB/RZv+ckXy+ZgH/Wln6erf/jh5ntted+IwfP69lk6
Zq13dt/iwSkHTH7pByWj+XUj0pw7b/poYSZ2a8vyB8/dPU1/5qJt4xKGDlw4bOCCLTaYccwu0x6b
XDKaV8z9Th9TH8dFB/378EHzx2341Ks/+mxZtsen7HTC7tds9omX48rHceD2t0UVz8yvVbecTcs/
/z8+h/EJnH72hDQxrltp5j6ty968bIM4fdG0QfG/S2/qu95aJaP51C0n7z9l1889PHr47Lgao4bN
iVfTcu7/t5LRvOk6xzGg34fxdS/k+evln+jX56M67Tput+vT1bnXrh1ftXWG/y0+1eM/+9hvTt+/
E2tVmaGZi9uzAlitCvfa7bdnKbNmRaeeGm24YdS/fzRwYLTlluWZjzoqW/3DH6K99kqeSd63bzRm
TLT77tGUKcmj44td0Lws5847F2c4t7ZGDz6YpT/zTFLC0KHRsGHRFltExxwTPfZYldu/kPLCC1nK
RRclE+zHjYtefbU82+OPRyecEG22WVL5OA48MNv63ntt+paqdcvZtMqKNXTos85qcwkmTSpuKlQg
9Z3vVO8P221IrcyVibXaUhpNnpacx81Zt1rtbeaannlmlmfmzGj8+GjIkOTfeLm0AvFbdOHCbDW+
xKXHjVdTCxYkb+Y45bjjspS5c5N39TrrJO+HuMzf/KYj1+5b3yqv3k47Fat38smNXfHeEwDQqHQE
8f1O/qZVVqxWnX2/4/udDgf0Tun735DUKR1p2SZDkiGpYwHQTRS7poGLw8+Obaf3Kiz96Mxc2e7Y
r/qmEfPCXV9pf/fKlBOuKc986anl2WoV+8N/bbNeq255mlZZsco6V8aiQcl09LLU8y4srsVVylNU
XM4OT7RJarLOaZx/QXHt3Itrtit9aVkRrj6x3uEarVXOatfKnPPi9pwA1gyFmzr+aPOzcGz9O7+w
+KNwZp5sd4T9qm6KP5rdFb7S7u6VKfEHsbLMl4ZTy7LVKvaHoU0/XKtueZpWWbHKOldG/Ik7/mxY
lnxeuLCwElcpT1FxOTuENoNsk3VO4/xwQWHl3FA+yJbtHn/CvTqcWP/yNVSrnNWulTnnxe1BAdCQ
Qu8xsN/in51wbGG6ddUodtRHnJkn2x1n7ld104jB8+466yvt7l6ZcsLu15RlvvSoU8uy1Sr2h4e1
7fBr1C1P0/LM/6+MRdMG7bxpxWj+tQsLGeIq5SkqLmeHjduO5s3VOY3z97+gkOfcf64Yzdvu3tKy
4upJJzb/Jmm02k1e3B4UwGpVuNcGDox+9rO8mX/0o1zZ7rij+qYRI6K77mp/98qUE04oz3zppeXZ
avnhD9v0LbXqlqdplRVr6NDbb99m68YbFzd9+tNtNu24Y/Xy8zSkaubKxFptKYtmTkvO4+asW632
NnNN+/ePHn20PP2KK9rkOfHEbPmJJ6o0sPArA/FbNCT/bRBdfXXNwzV67Vpbo1/9qnppv/xlsrWh
K957AgAalY4gvt/J37TKilXWuTJ8v1OnVjmrXSvzmvf9TvAfdfRW6fvfkJS/aZUVq6xzZRiS6tQq
Z7VrZV7zhiSAbqK8gxr3VLjqm2HGFmH+8LC8NSwcGmZuksymPntq2PwPbXLu/Gi46cjw+kbJdPSl
fZOnxz+8a7jwvDD2hWKeDd5M9i08jD1q211PvDfcemj406eTP/lKD/Trg8LXf1HMULlXy4pw0pVJ
9eKDxoc+7ZIkpSzbNs+GH387PLtNUuayPuHdkeGRXcLx15Y/B75O3dptWtXmlG1KY0VLeH9I+N/P
JWd101eq5B/zTvioX7a23x1tNh1+S7LXM9smT+P/cEASf/xMmHZM+YVovs5pjJ6dXIh48YPBYeS7
NdtVmjhhevLA/7fWD0v6J2fy7n2SlI7VqjKqHrf5i9tDAlgzlN3a48JTV4VvzghbzA/Dl4fWhWHo
zLBJ/NHm7DB189Cmb48/V94Ujnw9bBR/Nlwa+s4K6z4cdr0wnDc2FAfZDcKb8b6Fv4yO2n4mmhju
vTUc+qfw6cVhYHqgX4eDvh6Kg2zlXvFnwJPClXH14oPGhz4tXBKnlGXbJjz74/DtZ8M2cZnLQp93
w8hHwi7Hh2vL/ii7Tt3abVrV5pRtSmNFaHk/DPnf8Ln4rG4aqgyyY8I7H4V+6cp+oc0ge3i4Jd7r
mbDtX8MnPkx+BWfAH8NnpoVjyi5E83VOY3SYHV+IeOmDMHhkKB9kq+4+IUz/Tdj/rbD+ktA/PpN3
h33ilI7VqjKqHrf5i9tTAqAhZX3IuA2fumrSN2f8YIv51w9ffnPrwhuGzvzxJnecud/Z+07dfP22
o/mmj9500pGv/2SjRdMGLb2p76wr1334P3a98MDzxv6fktF85JvxvoWHsZdNw5641b23nnLony75
9OIbB6YH+vW/HPT1nUtG84q9WlpWnLTnlXH14oPGhz5t4iVxSlm2bT797I+P+PazF28Tl7nsF33e
vWbkI+ftcvw/Xlv2HPg6dWu3afnn/6+4ueX9nw353x9+Lj6rm65XbTRf652PbuqXZt5vm7aj+fhb
4r2euWjbv17+iQ9vHBDHHy/5zLQTjym7EM3XOY3Rw2fHFyLO8MG0wSOHVozm1XafMHb6b07f/63L
11/y8/7xmbz7X/eJUzpWq5zz/5u/uD0lgNWq7I4bNy666qpoxoxo/vxo+fLkgeczZyazlM8+O9p8
87ad7c7RTTdFr78eLVoULV2a/GrAww9HF14YjR1b0gVtkOxbeMh52eEmToxuvTX605+ixYuzA/36
19HXv17l9i+ktLREJ52UVC8+aHzo005LUsqybbNN9OMfR88+m5S5bFn07rvRI49Exx9f/qz4OnVr
t2m1zl7OQ/ftW3yS/Ntvlxfy5pvZpg8+iPr1q94f5mlI1cyVibXaUhkdPi05j5uzbnUuXDPXdPDg
6Hvfi/7852jJkui116Izzih/a8WXNfXNb1ZpYJyYeuaZYuKECckD/996KykzrtXddycpHb52hx8e
3X9/8qZK31oPPBAdcUT7b4/813fNCwBoVOk44vudPE2r2pyyTWn4fsf3Ox0O6J1K7wJDUkMdaZVu
pO26IcmQ1LEA6Ca6vD8U4c+fSl7fXi/0Wdb1lRHdI4A1Q5d3JuLP4VPxy9thvT7BICuyAGhIl/da
4s//71PRLeHtK9br02o0F1kAq1WX3+NCCLE6AgAa1eWDVy8P3++IqgG9U5ffer08DEmiMgC6iS7v
D3t1DFsQTr00W5s8pevrI7pNAGuGLu9MenMMCwtODZemK5ODQVYUA6AhXd5r9eYYNnDBqRMuTR9Q
P3l/o7koBrBadfk9LoQQqyMAoFFdPnj12vD9jqgT0Dt1+a3Xa8OQJGoFQDfR5f1h743Tf1pcmzMq
jJrT9VUS3SaANUOXdya9Nk4PPy2szAmjRgWDrCgGQEO6vNfqtXH6xJ+mM//jmHP1qFHDjOaiGMBq
1eX3uBBCrI4AgEZ1+eDVO8P3O6J+QO/U5bde7wxDkqgTAN1El/eHvTfS+f8fDghPbxd2erzr6yO6
UwBrhi7vTHptpB/GPwwDng7b7RQMsqJNADSky3utXhvp/P8Pbxzw9He322kTo7loE8Bq1eX3uBBC
rI4AgEZ1+eDVO8P3O6J+QO/U5bde7wxDkqgTAN1El/eHQojKANYMXd6ZCCEqA6AhXd5rCSEqA1it
uvweF0KI1REA0KguH7yEEJUBvVOX33pCiLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAAAwJIMvAB5gkfNQ66WHOvmgFtpgSQ4qt/bOMz5SNL++X8kk9+5bNFdcMZhk0lh+R+u3
R9w+pWNIex/SVZtaAAAAAAAAAAAAAABDMvgC4AEWOQ+1Xnqok49VktUJP+2X4U+zi9+e990pg/d6
oGj+cfOw3a8Gs24ady9t/Tbtae4Y1X0ZYAIbcQAAAAAAAAAAAAAAQ1JU7c58PLzlo+ErLw6/2i48
PjP8dl72tvYPvCMsun9Kce8Rt4fPHhl+ulP482bh19uGLx0UjrqtpLy5JSqqhQ/+YrjtqPC/f5GV
iD88P9yxPBz2+ap66dI5Wzq77qVrntXbbJ5h8z+Gy88MP98+W6jTvBW7mHgyez3+93cPj24ZHtgr
nHZN1hOZ5PEfD/9ySPjF08Njs8Ivn5Yl+Zp1XWqzY04vMr32CysSTm9xrX3pOVO+W3V20fz00SXT
bvlouOGU8Lutw493CWdennXt+sPsCVk/N/xw13Du+dmNbr8qvWvp59K7J79a9uXs5/89o3z7XY8x
TePC94QfPSf7I4Xv7ZkdSHoIpVPFPzbVt2kTDwAAAAAAAAAAAABgSIqq3Y++pWM9b+3HxJPhmtPK
B1x7amt5c+kM7XHlm7uMj+lp7+y6l4pvY7bZPMMnjuu+zYpdXLGidfjJa7onOeOJ8Mljy79N+9Nv
4zPpO732CysSXn5H0X5oxzDrseKLtPGzHYr+w+8smfZTx0yZ5+8+NKWGP423frjkqvPen33esXzy
qzsPz36+8+LWhGOOcbM/h7sOaP129emtU/X62HQ8rOkQAAAAAAAAAAAAAMCQFFW7v51XVO8e//Ew
55EsFn4rnHVZuG9xMeDkNcWA/14QDrgrG7DHg+ELhxadJ97cc5FzY8KH54dTbgg7PpS9aP0l/xY+
94qqqWo/n5gxZaqWYV33UpFn5DYbV6TD9vv6ZE17aXTaRRrf3z286Gth/sNh5buKnvsXdU/y9NVF
8we7ZS+6n7s+vPgrWbvWmX5bnUn16cWnV5pbaefMx8NPdi5+O/KzRecrP1P0pF81/81C47rPHxa2
/3l47S2tPSetLX59YK+Sq3b4Wfai/rRR++ce0s+0vX5u2PbXrbnFHOPZq4pfH9wjLLknG5N+pu2W
qXp9bDrdoGkRAAAAAAAAAAAAAMCQFFW7D+1YVO8ecFf2MvP2st579y2aS+6Z7Nz5J0Xzq/uXVGJX
1wk3JnzdTR3HtE9V+/n4zKphXfdSkWfkNhtXHPzF7hXRnXaRNL33vlGdvn5u9yS/+YKiufyOyc7G
O/a/8cIumVSfXnx6pbl1uvuNvyD4p78pej7zyqLnoneXz/DCb2Q/tv7dZM9+X89+bPGH4tdH5pSv
e9Prssanjsnanz46a1+xoiS3mGO8f1HrUaSRtlum6vWx6XSDpkUAAAAAAAAAAAAAAENSVO1+4B2T
BbyPzAnf3icron7F5ybLetPOiprf329VXoldEY0Jn/6LjmPap6r9rK5g77qXijwjt9no2fp33Sui
O+0ijfkPF60ZT5TnU9r56JZFc5vfTHam7caWqzOJr/+vTi8+4TT2eLBo/nmz7BX9aTw2q+hJvyqd
Yc4j2Y+JJyd75q7vnnP63/P/M2s8MSO8/J+zz3S/z/lRyVUxx9gY0ziK5jGNqXp9bKpGb/IBAAAA
AAAAAAAAAAxJUbU744lw8prwhUPDz7efUsx7/rlRFc6dKrEr4qnU/z85Mdkz/+HWYV33UpFn5DYj
91i9iySicr60s7oovWv9f/XpxWcSn3At7l5aNM9eFc65tGh/eVk/x9W1J502/fmHLbLP244qHxNz
jLUZOo1J4ur/k74em002AAAAAAAAAAAAAIAhKangnffbcNwnit9+ulPR+bUXFT17f6dLAXCjOfFk
1bB79y2aJ97cfapGq1FonSZZax1+Z8mw6r1U5Bm5zYoVYwaXXl7d2ZzkfYuLZrr3RmfjHL75go6Z
RJ5eZHrxCdfi5DVF8zt7hwf2Ktqvv7Gf4+ra8+p/mOz56/8oHxNzjPcvqhrTmGoYj80mGwAAAAAA
AAAAAADAkBRVu1/dP5x6bXjuf4Ut/pDFUbcVxby/2aYYcOLNRc93nxcO/UL2OvRZj4Wdfhpe9q/h
fe/NKrobBcAPzy+aS++u+hOAU24omr/eNpy0Nuzws2zdJfeEf3xVVb30t/cpmhe+Jyti3/fe8L09
W4d13UtFnpHb7KmQu31w6eWlnaVJvvnKovPBPbITm7s+7P/VrF3rPH11x0xiTi8+vfiEa7HV78P6
uVMy+v1WWfJ9HFfXnpmPh/95Vta8Z0nHMTHH2Ph3Chpj0s/GmMZUw3hsNtkAAAAAAAAAAAAAAIak
tTK5JT74tslfLj2nquy30frskR2/ao6JJ8M1p3WZqr3n1GtbB1+xonVYzF4q8ozZZvXWWiJmX506
S5Oc8UT41DHlq33y2OzbTpnEnF58evEJN2LtSVO+uvH1fR5XZDLVM8cc4+w/hbuXtn67+vSS5Qb+
2GyyAQAAAAAAAAAAAAAMSVG1u/i+sOrscN/i7JXsj88Mv9ou3HVAeMN1ra9wX3p3uOW14Qe7hUe3
DI/NCg/tGP79wHD+uWGfb0+O2eXHWRF44z3w1dXOh30+e+H/T3YOf5qdXXL7EVlP49v2GdJ83nRV
eGCvLIE0jTMvz3pahkXupSLPrtvsqZC7fXDp5aWdFUm+Zl344sHZ7mp7/NJB4YRbu2QSc3rx6fWa
cBrLvjwlo/Sc+zuuyGS6zhxzjHMeCSvflf1rAukj+v3dw1mXlR9aGPRjs8kGAAAAAAAAAAAAADAk
I68WFkJMpwAAAAAAAAAAAAAAhmTk1cJCiOkUAAAAAAAAAAAAAMCQjLxaWAgxnQIAAAAAAAAAAAAA
GJKRVwsLIaZTAAAAAAAAAAAAAABDMvJqYSHEdAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABguvp/tMKhZgplbmRzdHJl
YW0KZW5kb2JqCgoyOCAwIG9iago3Mjc5OQplbmRvYmoKCjI5IDAgb2JqCjw8L1R5cGUvWE9iamVj
dC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDQwOTYvSGVpZ2h0IDg0MC9CaXRzUGVyQ29tcG9uZW50IDgv
TGVuZ3RoIDMwIDAgUgovRmlsdGVyL0ZsYXRlRGVjb2RlL0NvbG9yU3BhY2UvRGV2aWNlR3JheQov
RGVjb2RlIFsgMSAwIF0KPj4Kc3RyZWFtCnic7N19kG1ZWdjhPTMMAzPjOCCUWoopRS1QK6YQTEwM
KCEqKIXEAGIAoyRE4Q8BtZAAfiRqICIkJopYRvxIRNFSU0QL0PJ0JAJGiYmSWJSMKIIJ4Awi3+Bw
cvt23+lzuk9/7H32Ou9a73qeP4C+fWdY3es9p/dv9rp7lksAAAAAAAAAAAAAAAAA2OB3f4dIfxk9
AAAAAHThYwciLaIHAAAAgC7o/1iL6AEAAACgC/o/1iJ6AAAAAOiC/o+1iB4AAAAAuqD/Yy2iBwAA
AIAu6P9Yi+gBAAAAoAv6P9YiegAAAADogv6PtYgeAAAAALqg/2MtogcAAACALuj/WIvoAQAAAKAL
+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
FdH/hNH/MJn+Z6n/YZ3+p1b6n4rof8Lof5hM/7PU/7BO/1Mr/U9F9D9h9D9Mpv9Z6n9Yp/+plf6n
IvqfMPofJtP/LPU/rNP/1Er/UxH9Txj9D5Ppf5b6H9bpf2ql/6mI/ieM/ofJ9D9L/Q/r9D+10v9U
RP8TRv/DZPqfpf6HdfqfWul/KqL/CaP/YTL9z1L/wzr9T630PxXR/4TR/zCZ/mep/2Gd/qdW+p+K
6H/C6H+YTP+z1P+wTv9TK/1PRfQ/YfQ/TKb/Wep/WKf/qZX+pyL6nzD6HybT/yz1P6zT/9RK/1MR
/U8Y/Q+T6X+W+h/W6X9qpf+piP4njP6HyfQ/S/0P6/Q/tdL/VET/E0b/w2T6n6X+h3X6n1rpfyqi
/wmj/2Ey/c9S/8M6/U+t9D8V0f+E0f8wmf5nqf9hnf6nVvqfiuh/wuh/mEz/s9T/sE7/Uyv9T0X0
P2H0P0ym/1nqf1in/6mV/qci+p8w+h8m0/8s9T+s0//USv9TEf1PGP0Pk+l/lvof1ul/aqX/qYj+
J4z+h8n0P0v9D+v0P7XS/1RE/xNG/8Nk+p+l/od1+p9a6X8qov8Jo/9hMv3PUv/DOv1PrfQ/FdH/
hNH/MJn+Z6n/YZ3+p1b6n4rof8Lof5hM/7PU/7BO/1Mr/U9F9D9h9D9Mpv9Z6n9Yp/+plf6nIvqf
MPofJtP/LPU/rNP/1Er/UxH9Txj9D5Ppf5b6H9bpf2ql/6mI/ieM/ofJ9D9L/Q/r9D+10v9URP8T
Rv/DZPqfpf6HdfqfWul/KqL/CaP/YTL9z1L/wzr9T630PxXR/4TR/zCZ/mep/2Gd/qdW+p+K6H/C
6H+YTP+z1P+wTv9TK/1PRfQ/YfQ/TKb/Wep/WKf/qZX+pyL6nzD6HybT/yz1P6zT/9RK/1MR/U8Y
/Q+T6X+W+h/W6X9qpf+piP4njP6HyfQ/S/0P6/Q/tdL/VET/E0b/w2T6n6X+h3X6n1rpfyqi/wmj
/2Ey/c9S/8M6/U+t9D8V0f+E0f8wmf5nqf9hnf6nVvqfiuh/wuh/mEz/s9T/sE7/Uyv9T0X0P2H0
P0ym/1nqf1in/6mV/qci+p8w+h8m0/8s9T+s0//USv9TEf1PGP0Pk+l/lvof1ul/aqX/qYj+J4z+
h8n0P0v9D+v0P7XS/1RE/xNG/8Nk+p+l/od1+p9a6X8qov8Jo/9hMv3PUv/ntsdo33PpFfEj0Yto
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
PyPo/7T0f2X2oidiJ/R/e/Q/c9P/FKT/S9D/rdP/jKD/09L/ldmLnoid0P/t0f/MTf9TkP4vQf+3
Tv8zgv5PS/9XZi96InZC/7dH/zM3/U9B+r8E/d86/c8I+j8t/V+ZveiJ2An93x79z9z0PwXp/xL0
f+v0PyPo/7T0f2X2oidiJ/R/e/Q/c9P/FKT/S9D/rdP/jKD/09L/ldmLnoid0P/t0f/MTf9TkP4v
Qf+3Tv8zgv5PS/9XZi96InZC/7dH/zM3/U9B+r8E/d86/c8I+j8t/V+ZveiJ2An93x79z9z0PwXp
/xL0f+v0PyPo/7T0f2X2oidiJ/R/e/Q/c9P/FKT/S9D/rdP/jKD/09L/ldmLnoid0P/t0f/MTf9T
kP4vQf+3Tv8zgv5PS/9XZi96InZC/7dH/zM3/U9B+r8E/d86/c8I+j8t/V+ZveiJ2An93x79z9z0
PwXp/xL0f+v0PyPo/7T0f2X2oidiJ/R/e/Q/c9P/FKT/S9D/rdP/jKD/09L/ldmLnoid0P/t0f/M
Tf9TkP4vQf+3Tv8zgv5PS/9XZi96InZC/7dH/zM3/U9B+r8E/d86/c8I+j8t/V+ZveiJ2An93x79
z9z0PwXp/xJ+8Wsb8YDhmo97WPQiavTcXY6L/m+d/k9L/1dmL3oidkL/t0f/Mzf9T0H6H4Lp/9bp
/7T0f2X2oidiJ/R/e/Q/c9P/FKT/IZj+b12X/X/7X/bgQ9HfZtYZO+pkMpnbX0VvN5l9MHq+oXfv
iX4XYEu3R48QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUKePvJNx3hO9ZRkYu7GM3W6YzLFM
5nk+HL1FnOG26PGgPu+KnsrmfDR6y2L9efT3vzXedmvw2oFxHhW9ZRnsRe9icx4fvWWdeE30Rjfn
MdFbVr1fit4izvAp0eNBfe4bPZXN6fwfA18X/f1vjbfdGuj/sfT/DPaid7E5+n839P9Y+v88+r9m
LkQ5Qf+Ppf8Zw9tuDfT/WPp/BnvRu9gc/b8b+n8s/X8e/V8zF6KcoP/H0v+M4W23Bvp/LP0/g73o
XWyO/t8N/T+W/j+P/q+ZC1FO0P9j6X/G8LZbA/0/lv6fwV70LjZH/++G/h9L/59H/9fMhSgn6P+x
9D9jeNutgf4fS//PYC96F5uj/3dD/4+l/8+j/2vmQpQT9P9Y+p8xvO3WQP+Ppf9nsBe9i83R/7uh
/8fS/+fR/zVzIcoJ+n8s/c8Y3nZroP/H0v8z2Ivexebo/93Q/2Pp//Po/5q5EOUE/T+W/mcMb7s1
0P9j6f8Z7EXvYnP0/27o/7H0/3n0f81ciHKC/h9L/zOGt90a6P+x9P8M9qJ3sTn6fzf0/1j6/zz6
v2YuRDlB/4+l/xnD224N9P9Y+n8Ge9G72Bz9vxv6fyz9fx79XzMXopyg/8fS/4zhbbcG+n8s/T+D
vehdbI7+3w39P5b+P4/+r5kLUU7Q/2Ppf8bwtlsD/T+W/p/BXvQuNkf/74b+H0v/n0f/18yFKCfo
/7H0P2N4262B/h9L/89gL3oXm6P/d0P/j6X/z6P/a+ZClBP0/1j6nzG87dZA/4+l/2ewF72LzdH/
u6H/x9L/59H/NXMhygn6fyz9zxjedmug/8fS/zPYi97F5uj/3dD/Y+n/8+j/mrkQ5QT9P5b+Zwxv
uzXQ/2Pp/xnsRe9ic/T/buj/sfT/efR/zVyIcoL+H0v/M4a33Rro/7H0/wz2onexOfp/N/T/WPr/
PPq/Zi5EOUH/j6X/GcPbbg30/1j6fwZ70bvYHP2/G/p/LP1/Hv1fMxeinKD/x9L/jOFttwb6fyz9
P4O96F1sjv7fDf0/lv4/j/6vmQtRTtD/Y+l/xvC2WwP9P5b+n8Fe9C42R//vhv4fS/+fR//XzIUo
J+j/sfQ/Y3jbrYH+H0v/z2Avehebo/93Q/+Ppf/Po/9r5kKUE/T/WPqfMbzt1kD/j6X/Z7AXvYvN
0f+7of/H0v/n0f81cyHKCfp/LP3PGN52a6D/x9L/M9iL3sXm6P/d0P9j6f/z6P+auRDlBP0/lv5n
DG+7NdD/Y+n/GexF72Jz9P9u6P+x9P959H/NXIhygv4fS/8zhrfdGuj/sfT/DPaid7E5+n839P9Y
+v88+r9mLkQ5Qf+Ppf8Zw9tuDT70Nsa5LXrLMjB2Yxm73TCZY5nM83wgeos4w/+LHg/q8/boqWzO
R6O3LFb0t7853nYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAKjfMESvAAAAANhsvmrX/wAAAFAr/Q8AAAD56X8AAADIT/8DAABAfmvV
/kffeO/rPvaLf/Hgg1/5optuuP+PXPkNq5+69Es/cf/rb3ro7x78xlc9+NJv/NHD3/hbT77vdXe9
z7feurMvAAAAADjXav+/8sbhsmfvf/DCg//9jQe/Ye1Tw/C0yx/c+Mb9j37oqssfPPngNx78tuHT
3nni7w4AAABEWSn0P71p+JrXv+ctz7/r8F+Xy/95zfDkWz58y6WqH45/6tJfc6d//ofvffVnDv/4
0gdvuHb4Z2/68B/+k4PfuHzQf3rLh2991QOGpx3/uwMAAABhVgr9m4cnXP7vHxgetVw+cfiqyx98
1eXfsPapS3/Nc/Y/+NXhr136zycNj7z8qYevtv5bhs84/ncHAAAAwqwU+mcPv335v//v8EnL5b2H
117+4DWXf8Papy79Nbfsf/Du4c6X/vPTh9+8/Kn/dvB3eutTP/uG/T8AcN2uvgAAAADgXCv9f/1w
zTVXX33VVcNw7XJ5l+G2y7942+XfsPapS3/N7Ud/7ZXfeOvlj/733Q8fAODGPwAAANRjJdTvMgxH
8b7e/2ufuuOv2dD/Dx8e8Kvv+Mjyg/ofAAAAKrIS6p85vPHo19fP/699ar3/18//33TwRwP+l/4H
AACAiqyE+tOHJx79+vrz/9Y+td7/68//u274s/0PHq//AQAAoCIrof5nHzc8/JVv+8hf/Pbz73f5
3//3lFs+fMtTDk78r31qvf9//9rhG9704T/8pwe/8fOHL/s/7//9r7vy5//9YwAAAACoweof7H/d
J678If8XHPyvb7j8xL/1T631//IHD379Gy9/9MtXXf7gKfofAAAAKrL2YL/bvudv3nzNzZ//HW/Y
/8wvf9GNN3zej9w63OPy71v91Hr/L1/14Buvv98Pf/Tgo1/5grvc+IAfXep/AAAAaMgrh78dvQQA
AACgrNu/aHhO9BoAAACAUr7wJ//g/X/56w8ebnhL9EoAAACAUg6fCnDty6IXAgAAABTz6id81k13
+dSvf0P0OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoA7vfTiV+ZromQAAACCf
dw1U5h7RMwEAAEA++r86+h8AAIDZ6f/q6H8AAABmp/+ro/8BAACYnf6vjv4HAABgdvq/OvofAACA
2en/6uh/AAAAZqf/q6P/AQAAmJ3+r47+BwAAYHb6vzr6HwAAgNnp/+rofwAAAGan/6uj/wEAAJid
/q+O/gcAAGB2+r86+h8AAIDZ6f/q6H8AAABmp/+ro/8BAACYnf6vjv4HAABgdvq/OvofAACA2en/
6uh/AAAAZqf/q6P/AQAAmJ3+r47+BwAAYHb6vzr6HwAAgNnp/+rofwAAAGan/6uj/wEAAJid/q+O
/gcAAGB2H3ohlXlR9EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGT0vq9ll34u
esMBAADo0rsGdumZ0RsOAABAl/T/bul/AAAAIuj/3dL/AAAARND/u6X/AQAAiKD/d0v/AwAAEEH/
75b+BwAAIIL+3y39D/+//TqoARgGgBgGfryKa8+yuEiVTSGvAAAABf+/5f8BAAAo+P8t/w8AAEDB
/2/5fwAAAAr+f8v/AwAAUPD/W/4fAACAgv/f8v8AAAAU/P+W/wcAAKDg/7f8PwAAAAX/v+X/AQAA
KPj/Lf8PAABAwf9v+X8AAAAK/n/L/wMAAFDw/1v+HwAAgIL/3/L/AAAAFPz/lv8HAACg4P+3/D8A
AAAF/7/l/wEAACj4/y3/DwAAQOH/WDp1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAd1yZkWOTCmVu
ZHN0cmVhbQplbmRvYmoKCjMwIDAgb2JqCjE1MDIwCmVuZG9iagoKMzIgMCBvYmoKPDwvTGVuZ3Ro
IDMzIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGU+PgpzdHJlYW0KeJxljbsKwkAQRfv5ilsHspnZR+JC
CPgKaBdYsBArNVokimn8fXcNVjLFHLgz57ISvOkFRs5Ko/JGlXDeRZ6udMjwIEGa6UacAoyUjqov
D5j5+zv8JAnm9E59luRKWHz5t6NzFcj4ZNMSi8MFRSswjNAfa7FiuBXX5LrmNWspmwhels0p7Gkb
qIvuSqwysZAhTkeFlWjTwmqB80jFbjQWmyc66vABXTAw4wplbmRzdHJlYW0KZW5kb2JqCgozMyAw
IG9iagoxNjkKZW5kb2JqCgozNCAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9X
aWR0aCA0MDk2L0hlaWdodCA4NzUvQml0c1BlckNvbXBvbmVudCA4L0xlbmd0aCAzNSAwIFIKL0Zp
bHRlci9GbGF0ZURlY29kZS9Db2xvclNwYWNlL0RldmljZVJHQgovU01hc2sgMzYgMCBSCj4+CnN0
cmVhbQp4nOzdCbgcZbko6i+QEUhCMMzIjIKgICAQVOIQQOEo3q1skUEBlVFEVBTdIsi5EgYhG7eA
jAHF6xY8KnqdEDz4KCA4bREVELcHGQUJxEAmYvoWXXdVKj2t6l49rV7v+3xP0v3331X/X7W66ltd
3+oulQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYMyJUgjRJ9HrVwMA
AAAAAAAAAAAAQP/qecm3EFn0+tUAAAAAAAAAAAAAjBUB0DutH7t6XfItRBZtPCkDAAAAAAAAAAAA
NNDr4l9gTGv92NXrkm8hsmjjSRkAAAAAAAAAAACggV4X/wJjWuvHrl6XfAuRRRtPygAAAAAAAAAA
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
aCCrKu2f+v8nnnhiwoTs46HjF7/4RUWHu+66K3s06Zn0b+Paq0u4586dm+9w9tlnV/dp4wCqh9H2
hVS3P/XUUwcffHDWWPNbD7o8+JHrzjA6vTEHj/r/VmLV9hrl8Y+Izw/N5cxeD6Z90cYXCAAAAAAA
AAAAAEADWVVp/9T/Jw466KBsYCeeeGLFoyeccEL2aNKzvauOKptvvvmKFSvSR5MbL37xi6v7tHcM
pa7X/yceeOCBrHHjjTdufeh9U//fHZ3emINH/X8rsWp7jeaYl5vIzIgnez2e9kUbXyAAAAAAAAAA
AAAADWTFmH1V///Nb34zG9h66623bNmy7KGlS5cmLdmjSc/soYqi4i9/+cu77777lClTZs6c+fa3
v/13v/td0rhw4cLTTjtt2223nThxYrKcAw888M4778yvOr+QjTbaKL3x9a9/PX30hhtuqHioZg3z
008/fc4557z61a9OVjF+/PgZM2bsvffec+fOTdqrJ3vrrbfuu+++06ZNW3vttWfNmnX99ddXzyXv
ueeeu/jii+fMmbPBBhtMmDBh+vTpe+65Z7LwZGoVPestpGZ7smGzxmTjVI+z5fV+4xvfSDZFMrt1
1llnn332uemmmyr633fffRdccMF+++236aabTizbcMMNX/e611144YXJSrNuu+22W7bYZPPml5AM
I3so6dZ4+qVmdlDFQubPn5/8UCVzyZbZwsYsON/UL3/5yyOOOGKbbbZJfpKToSY/eG984xvPOuus
e+65p+Ud1Fvq/1uJVdtrNEda/z8pYveI23s9mLZGG18gAAAAAAAAAAAAAA1kVaV9Vf+/fPny9ddf
PxvbDTfckD10/fXXZ+1Jn6Rn9lC+qPgjH/lIrG7KlCk33njjNttsU9E+ceLE22+/veZCPv3pT6c3
Zs+enT66zz77pC1nnHFGvRrmO++8c5NNNolakvaKPzeYP3/+uHHjKrqddtpp9RZ+zz33bLvttjUX
vsUWW9x99935zvUWUrM9/5H1m2++ecUeaXm9n/rUpyr6r7HGGjfffHO9/hW23377J598Mu12+eWX
Z+2zZs3KL2GvvfbKHrriiisaT7+pHZR/9EMf+lD1MmuupfHGLDjfxHe+853x48fX69zyDuot9f9i
8KKNLxAAAAAAAAAAAACABrIq3L6q/08k48nGduCBB2btBxxwQL0x54uK119//R//+McLFy782Mc+
lm+fOXPmzTffnLSfcsopWeN+++1XcyGPPvrohAkT0tt33333b3/72/R20pg8VLOG+bHHHktWkTau
t956P/rRj5YuXZqsccaMGdkAHn/88bTzfffdN2nSpKxz0q2ic8XCn3rqqaxwfcqUKddee+0zzzxz
xx13bLHFFmnjZpttlv8E+3pV1tXtyZIPOeSQrDHZaPn+I1nvi170omQj/P3vfz/66KOzxte//vX5
5b/2ta+9+uqr77///sWLFy9ZsuQPf/jDoYcemnU+6aST0m6LFi2aOnVq2rjGGmtkmzHZ5tnfUEyb
Nu3ZZ59tMP2mdlDFQpKdNW/evGTXj2RjFp9vYuedd87azz333AULFjz33HP/9V//deGFF+66664t
76Dealf9PwAAAAAAAAAAAACMNVkVbr/V///mN7/JxjZ+/PjHHnusVC7eXnPNNbP2pE/+Kfmi4ssu
uyxtfPDBB/Ptl1xySdqeL+CfPn16zYUkd7NC7ve///3ve9/70tvvete7qnumPvrRj+YLtrP25HbW
fuqpp6aNxx9/fNZ43nnn1eycX/gnP/nJrPGss87K2r/1rW9l7WeccUa9udRsr/a2t71tyZIl+f4j
We8XvvCFtPGvf/1r1jh16tTK/b26Z555Juu85ZZbZu3HHXdc1n755Zenjcm+zhqTTdp4+k3toIqF
5OfY8sZsar4TJ05MG5Mf+xUrVtR7erM7qLfU/wMAAAAAAAAAAABAa7Iq3H6r/y+t/uHn559/ftJy
3nnnZS3JoxX980XFDz74YNq4bNmyfPtf/vKXtH3lypVrrLFGdRFyRWXybbfdlt6eUpbevv3226t7
pnbYYYes8b777sva77333qz9ZS97Wdq43Xbb1eyc3K658B133DFr/P3vf5+1L1iwIGvfZZdd6s2l
Znu1F73oRRdddFG+/0jWm23wih2RX/7jjz9++umn77XXXsmqsy9cyCQtWc/8X4UccMABaeOb3/zm
rPG3v/1t4+k3tYMqFnL//feXqjS7MZua7wYbbJC1z5kzZ+7cud/73vcqvoCghR3UW+r/AQAAAAAA
AAAAAKA1WRVuH9b/z5s3LxveTjvtVFq9zjl5tKJ/vqh42bJlTbU3aNx1113zjbvttluDp2d/I5B4
9tlns/ZFixZl7WuttVbaOHny5GE75xeePDGGs8466zSeYM32xYsX33HHHbvsskvWfu2117ZlvdkG
X7lyZc3x3HPPPTNnzmy88Pzg99hjj7Rx0qRJi8qSG2nLXnvt1Xiaze6gioUsXbq0VKV6LY03ZlPz
/fCHP1yzQ/JyuPTSS5NN2toO6i31/wAAAAAAAAAAAADQmqwKtw/r/5944on8p6Nfcskl2e2kPXm0
on+9ouKm2qsb58+fn2+85pprGjy9o/X/+YU30PIG+dWvfpW1579eoaPrzX96/6GHHvrII48kjStW
rKi3kKuuuiprv+GGG66//vrsbrKnhl3dSOr/S7XU61BvYzY13+XLl3/84x+fNm1a1PKZz3ymtR3U
W+r/AQAAAAAAAAAAAKA1WRVuH9b/Jw466KBshNnHvCeS9urO9YqKm2qvblyyZEn2ge3rr79+9iHw
NZ++ww47ZI333Xdf1n7vvfdm7S972cvSxu22265m5+T2sAt/6KGHht16zW6Q5557LmufMmVKd9Y7
derUrPFvf/tb2vjggw82GOT06dPT9sMPP/ywww5Lb6+77rqLFy8ednVN7aAGcxm2Q72N2ex8E8uW
LfvZz372xS9+8YQTTthyyy2zbptsskn1pIrsoN5S/w8AAAAAAAAAAAAArcmqcPuz/v+b3/xm1JK0
V3euV1TcVHvNxk984hNpS3Kjcc+PfvSjWeO5556btSe3s/ZTTz01bTz++OOzxvPPPz/rfN5559Vc
ePLErHHevHnDbr1mN8gvf/nLrH2jjTbqznrzn13/9NNPp43JWuotJHHiiSem7TPK0tsf/OAHiwyj
qR3UYC7Ddqi3MVuYb94TTzyRdZs8eXLa2OwO6i31/wAAAAAAAAAAAADQmqwKtz/r/5cvX77++uvH
6pKWpL26c72i4qbai1cm1+z52GOPvehFL0ob11tvvZtvvnnZsmW33HJLcjttnDlz5uOPP552/uMf
/zhx4sS0PXlW0q2ic8XCkydm30Sw1lprXXLJJcnqkk2R/Js864wzzthpp51am/iSJUvuuOOOXXbZ
JWs/7rjjurDexOzZs7PGD3/4wwsXLvze9743bdq0Bjvi7rvvjiq///3v276DGsyl5Y3Z1HyThcyd
O/e222578sknV6xY8fTTT19wwQVZt1e/+tWt7aDeUv8PAAAAAAAAAAAAAK3JqnD7s/4/kQysotK7
3lDrFRU31V68Mrlez5///Ocbb7xx1JK033nnnfnOV1555bhx4yq6nXbaafUWftddd2222WY1F97a
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
wwGA/NQBymP0aOg5ixjS+6rlDix3zLmFGNJlVB6H7dQ4eTGkEEYiDuzpphkAwE3jxOkj5ssDl8j7
B8naDrKjuaxvJ4v71GVT3zBODvygUcvj/iK/Pl/+sU9dOvq2FnVXj391oIy5WQ55t6FNj8/qXmsu
xp5qHPmc8rzMOEf+3avuryf1G808S857rKFB7qua7ZRLJ9UNT72peutRv6yryWp22AKZeLUsOKyu
z+1VsrKTvHaCjJyafR14l7EVXLW8q5P1lC47m8mGtvLh1+u26v4f5Wnfbals3SXz6PRnGj014jd1
r3rr8Lqr8W9pWVf+1VumXZi9I4ofsy5dltftCLW4sY10Wum4XnblkBfqLvj/eXepra7bkn8cWlcT
bFS5Je/7Fr9zY1IIgQCgSH5/f63LETL/AbnkfTlorXTYIc3XS7vF0ucZOf0GGXegNJp/j5O//FrO
/4fss0lab5MWy6TrqzJwjNx8iDQEQj3kM/VacyGIVONTQKfI8zPknH9Lr83SSr/RTDnrPGkIhHJf
1Ux2XiqT1PDUm6q3HiW/VDVZzQ6TBRPl6gVymOpzu1StlE6vyQkjZWrWNShcxlZw1fKuTtZTuuyU
Zhuk7YfydbVV95c8gVA3WbpVdtEPTpdGgdAI+Y161Vty+BLZc0vdnYpa/kt6T5MLs3ZE8WPWpYss
VztCLW2UNp0kOxDK+/Ih8sLv5FufS/daqVZb8o8yVNUEG1Vuyfu+xe/cmJSpYR8/AAAl194+1BNx
+YoTcufKrMdEXERcAcr++29fBQCrVr366qucP2E2ZzYvuNaRLUgS+2hM/j+AyAqc/68LMaSvyCfP
1N/4MTEkMWTgAkSfAAC8ujb00KKpl//Xs+7fL/aQqu3hD4YSjUIIBAAl5HrYpIRc/p/0VP98IXtU
CYEQRZepYR8zAAAl1y7syaWpFyIuSlY58MDgp54AJMnbb79tT9guLUM/cFGYzSm5BUliH43J/wcQ
WUXm/1MqX4ghKXkLEH2V+K0FACQE+f/hlfbr5Mp7M49G3xr+eCiRKYRAAFBCrodNSmilvay7Uu7V
D0bLraGPhxKZQv4/ACQP+f+hFSIuSt5C/j8Ajfz/WBRmc4pTQZLYR2Py/wFEFvn/MSrEkBSXAkSf
mWsOOuigGwAAzr75zT+GHlo00fKTuxseregsnVeEPyRKZErxIZAyatSosA8wABCOyy+/nN9fR7z8
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
1VjZM9U8LWmcLJlQ9eq4DIb8//yGKP8/VOmZN6MBBvOczevJTprWG8yHmvx/6JU4fMn/r63/9a9/
ffDBB2+66abJaDN9+vR11llnjz32+OhHP3rzzTfX7WH+/PnnnHPOnDlz1lprreWWW2727Nk77rjj
6aef/sgjj2Qf68ILL9x+++1XXnnleOhWjXnooYdifbJ97ap//OMfZ5xxxste9rLVVlstaeeqq666
8847J0dP6vMfPVvcw2233fbpT396zz33XG+99ZafsPbaa++2225nnXVW0gmFur3tBh336te+9rXk
vJKrtsYaa7zhDW/4/e9/n1Qmrzr55JM322yzpM1JR+2zzz7XXXddxk6++c1vJt04c+bMWbNmvfKV
r/zpT3+as/E5uyhnh+fvh29/+9vx5ckJPvnkk3HVE088kdTEtcmW/eu65G2SLlx22WXp2ksvvbRu
VdMrnv82TiSXI7koyaVJ7t6ddtrpkksuybgi+fswYydN65OOjZVJ5zS2s+Pjfutb30q6Ijm75A7c
ZZddfvzjH9dtn/M222677eJuk+6t3UPSjLgq2Sz79Md6NM40dtFQk/8/YJdffnk8weT2W7RoUduX
9OOWbvv2HBu2cbtQHzZ9R3fcmZ01Pj4DJur+amGeU+jVANt0520nDznnlh3cdXmuQsjUdDNhvSfH
FdaHhfz/fsu4JzPWeipvbElPnsqzL0f0tre9LW72uc99rnbVmWeeGVclm2Xvtu11zHnuOU8nT+i8
+uqrkz7ME30qMmcTlHtyXEG54uT/V1DG3ZuxVvhubEnPw3cq6dsFCxa0vVg5+3njjTeOe4jPs0lv
xM/2v+WWW9LKn/zkJ3HLTTbZZEy4FC6Fy36S/w9TxEjm//uuQvZxezJTLbRxnhaaUPXkuCZUAyb/
P7/hyv+vzjNvRgMM5gZzg3k35P9Dr8S3vPz/WPm9730vGSpDC7UvTx4tN9tss6abPec5z7npppta
Hevd73534z5bHaXVnOG666579rOf3fToSX3GN8Prjp6t6R7qPPe5z/373/+ev9uzN+i4V9/znvfU
bZ8Ei+9+97ubbrppXX0SeX/xi1803cnJJ59ct3EyDU6iYZ7GN++dCbVdlLFZ7Q7z98PChQvXXHPN
uDaZvMVVySwr1ifbJFv2r+uSMSRd2HXXXdO1ySworTn11FObnuNYwds4uRDLLLNM3WZ1l6wn91Lb
+tpfI91www3HltbxcZNHrbrtk9vvyiuvbLV9ndrb7Itf/GKsT+bbtXt46UtfGld96Utfyj79Xo0z
Y6NF/v+AHXzwwfEEv/a1r+V5Sc9v6Txvz6Ebt/P3YdN3dMed2XHja1Ms9t1337/+9a/5T6GHA2zj
xm0nD/nnlkXbnPMqZJxaaDHZE9a7P66wPkTk//db9v3TdK2n8qYtydgm/1N5q/o6jz/++DbbbJNu
NnPmzPiXd2677bb4XdkXv/jFyWZdXscOzr3V6eQZeJPoE3/UFbWKPhWZswnK3R9XUK4++f8VlH2n
NV0rfDdtScY2nYXv9dZbL10488wzs1+Vv5/f/va3x1Wf/OQn08okOsTK0047La0844wzYuURRxwx
JlwKl4sJl/0g/x+miJHM//ddhezj9mSm2nGgbFVvQtX9cU2oBk/+f37Dkv9ftWfejAYYzGsZzCOD
eU7y/6FX4ntc/n+sfNGLXhQrk9CfhOz58+f/9re/Peuss7bddtu42YMPPhhH12RQ+upXv/rwww//
8pe/TMJEWrn++uu3+uTVGTNmfOYzn7nnnnvyNLXp3wy6995711hjjbRytdVWu+KKK5544okk3Ky6
6qppZbL2vvvu6/7o0Ste8YoLLrjg9ttvX7BgQfIw/t///d8HHHBAfMlxxx1XaG+tNuimV9dcc82r
rrrqkUceed/73ldbn3RF0jNJfW1iz5577tl0J0kH/vjHP67rzKTHkhNv2/gedlHRfnjXu94V97bP
PvvE+vgto0SyTasG9KTrkjsq/npsMlP63e9+ly4nlcmqpudb6Da+7bbbkgsRN042q9u4bufd3EvZ
VyrZ8/777x8rk07r5trV7n/11VdPOuGBBx6o/ViM3XffvYPb7NFHH11llVXSymQuGrsx6fM4FZ81
a9Zjjz2Wcfo9H2dGhvz/Aav9lfz4XeJsPb+l07dn8gY//PDDm749h3Hczt+Hje/objqz48bvscce
tdsng9t222135JFHXnjhhXfeeWf2KbS9gmNdxPG2k4ecc8umbc4ICt1chbYXXVjv/rjC+hCR/99v
rd6SGWs9lTftyZ48crY9SvTHP/5x9uzZ6ZZz5sxJahYtWvTyl788rXnWs5715z//OXu3nUXApo3J
czptw31t9ElO7Uc/+lHSjZdffnkyhLbafxXmbIJy98cVlKtP/n8FtXrzZqwVvpv2ZM/D9+c///nY
1GRQavWqQv1cm6i/7777ppW1wW777bdPK1//+tfHyvTz/caEy677P+elj3sWLhsv0NiIhkv5/zBF
jGT+/5jvKmQet/uZaq9+OlBbb0LV/XFNqAZP/n9+w5L/X8Fn3qYNGDOYG8wN5t2R/w+9Et/y8v9j
5fLLL5/WTJs27emnn2615/e///3xtR/96EdjfW2IP/XUU5seq7Y+ozFJjEjG7Q022CDWf+UrX0lX
vfe9742V8fcTE8lyrK+d33Zw9LaS4BhfstFGGxXaW6sNuunV888/P6288847a+vPPffctL52MpM8
lTfdSavOPProozvoq467qGg/3HjjjbF++vTpSfQfm5gDJPdwrE+2adWAnnRd8mWcXL397W+P3xt5
y1ve0up8C93GRx11VKz81Kc+1XTj2p13cy+16qhGyfw/fjZF98dNnmXSyr/85S+xMpkNjmVqdZsd
eeSRsf6LX/xiWplc61iZdGn26fd8nBkZ8v8HbKWVVoonmDzL5HlJz2/p+Pa86667mr49h3Hcbqrp
lo3v6G46s+PGX3PNNfH7FY122223X/3qV616rO0VbCpnHG87ecg5t2zV5lZBoZur0PboY8J618cV
1oeI/P9+a3pPZq/1VN7qlOt08MgZMtXtP+nJ+F3oZPA5++yz0+Wk8nvf+17bw3UWAQttUFvfNtzX
Rp9PfOITsT5ZbrX/KszZxgTlro8rKFef/P8Kanr3Zq8Vvludcp0uw/cTTzyx/vrrp8tpOGv6qkL9
/MADD8RUkPXWW29s4s/Kpw/g8S/xJUNoUr/uuuumXybbP/jgg+nLhcsu+z/npW8kXI58uJT/D1PE
8Ob/N6rb2HcVGut7NVPt1U8H6upNqLo8rgnV4Mn/z29Y8v8r+Mzb2ACDecpgXstgXpT8f+iV+JaX
/x8r11prrVg5Z86c008//Qc/+EHjL0NttdVWcbM//OEPsb72T/xss802TY9V+2HyTTdo6thjj120
aFG68fOe97xYf9ttt8Wd3HrrrbH++c9/fmdHb9qT99133wc/+MGXvvSlq6++emP2XVJTaG+tNuim
V+Nn/z755JO19fHDopPeq/2TfE13UtuZyXKs33LLLds2voddVLQfxpb+DIT0L2Elc61Yk6zNuAQ9
6bqxiczMdHnFCely+keZm55vodt48803b7px7WWq3Xk391KrjmqUXOuzzz67m2tXu7fY4XUXonb/
+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
VtZ25qc+9alYf/TRR2fvpGgXZXd40X5Iffvb3w7NJPUD6LpY+c///M9pTbKQvWWh2/ioo46KlWee
eWbcuPYy1e683/fSr3/961hfmwTe1+MWvc0SxxxzTFq/6oR0+Z3vfGeeZvR8nBkZ8v8Hb88994zn
eNpppzVuMG/evIMPPjh+2ddbumn9UI/bTWVv2dfObFWf3AY33nhjY2PuvvvuuPG2227b2c67merk
mTzUaTq3LNrmolche+7R6ijCev+OK6xXh/z/fvNUnnPng3kqL3SOn/3sZ+PGV0yIX5599tkd7LZV
BOwsSBWtj6NoWDr6fOITn8huf0XmbIJy/44rKJdO/n8FCd85d15i+D7vvPNCg7i2g29TzJkzp3ZX
yy+//Lx585L6xx57rPbz/RLJlo0vFy6DcClc9pr8f5giRjj/33cVCnVXodjX15/RmFD177gmVD0n
/z+/4cr/H6vSM2+ht4bBvG7nBvOUwbyR/H/olfiWH9X8/z/84Q9J1I6j6MUXX/z3CclCHFFnzJhx
yy23xJdss802p59++jXXXJNs9vTTTydj9ac//enYUfGTh++7777463IrrbTSueeee++99y5cuDD5
97/+679OPfXUrbfeurYlbQfYQiNwcpTVV1893Xi11Va78sorn3zyyeS4yXJambQtaWH+ncffuA8T
P9Op+wCfXXfdNa494YQTHnnkkR/84Aet/tBSNyfbq14tVF9bmdwVV1xxRdKZV111Vezh5A659dZb
s3dStIuyO7xoP6SSDdZcc82wtKQmqc9/CTruusZDtH15ods4eZPG93LyqmSzuo3rdt6/eym5WL/8
5S+TgSLWH3nkkQM47ljx2yxx0003hQbJwNjzC5RxLqNH/v/gPfTQQ1tttVU8zTe/+c0///nPH330
0fnz5yc3+cc//vF09Ivb9/WWblo/RcbtwXRmduN32WWX8847LxnHkhvgscceu/baa5OauPE555zT
2c67meq0nTzknFsWbXPRq5A998g4eqPu2yOsjwnrVSL/v988lefc+WCeyvOf429+85v44b1z585N
K2M6aLIq2SB7t/kjYMdBqlD97bffHs8oRp8f/ehH8bN3WnXL0M3ZBOWiHS4ol07+fwUJ3zl3XmL4
TjrtOc95TlhaXNvBtynOOOOM2l3tueeecdU+++xTu6r2x8217REuO+7//CcuXE6pcCn/H6aIUc3/
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
c2C06dur3L1NfOrC2OyhmP5yjH0jfd74RvPS+1rPPDF+/44+Oe/YMX1899sejymLYvzS9FcDdr4t
Tjk97q8Zkp5cL1228ljsaLjZdczymLgkfUr/VvfG7DnpQ8XryrN0fLrpjR+NSa/FW/4cp52a/l5A
3drabCv/4kncskfsf32s/6f0oVpZxfe7Ia75RGe1brry/AXuZitJ3LtVfO7stDGT8o9bFqu9GDvd
HhcfWf+Y+qRZKk+SX/uZ+pWs92R5aqVX4/UJA69IzqZoVZfGGHCz5NxuzrK12XHd7NNXV4ovfS39
lCZHxIaPxbeOT/da7XqS3ZpNX/ipJhVMErOpre+pJs6dlT7wf92n0nUmpdrr5jRlwPvuugNit5+l
H6rso7Xrz+PaA/v/eDRNXDQlzjs2bYFkPUlrJP8m0+cel6b3u+Pa7Oh+D+HGBZNGvuDotMdL9kuy
d875TH2zl3IfVgUe0WKoAhi1Cu9/REHx7fhsZW71eOGFWL3wIgkxUoPu1bTn3bHNp+LCzeKh6fHy
2HhjaizcKObtHTeeGSf+Pt5Rm/OO2PGguPpt8fiUWDQ+lq4Vz+0ct50Sp98fW1TyPBnrJctWHhge
DXcaj4nlE2PJmvHXreLe2THnrti+bv8ujfHJpjeORyfFa2+JP58Wpy6LcXVra7Ot/IsncUvssX9c
v378aXIsziq+X9xwTXyio1o3XXn+Anezlbq3Ki28crzy9vhDslsfiU0a8z8bMyfE69ncjbF306Os
35ZpLM/yGHNBHJ18kJIqJBU5Jz6TpNRluze2+lycnez6ZJ3jYtlq8eJOcfvFcWTdU+WHoqGuiwOS
Btk67lknnk4+G0m8Nf54aFxR9yHvfndk8XyskTRdpD9t/eqLsVqrXVabODdm7RM/WDeeSg6QpO57
xc1JysBK1RhNt9v97hjtASuqwg8uMYjxHz13HZzfc5dI4YUZugAYKQrvMMUghkEWYHQqvGcWgxhG
c4A8Cu/HhBBCiGEYwKhVeP8jCors/v9J8dp74reN97sKIToIulf4ThSFxlviz8nr2vHMshhXeGGE
GKkBK6rCDy4xKDE5SrN6nzq4T9GFGeoAGCkK7zDFoIRBFmA0K7xnFoMSRnOA/Arvx4QQQohhGMCo
VXj/I4QQIz3oXuE7URQUC2LauXFcNndanFp4eYQYwQErqsIPLtF97NF7G0MSF0VpWtHlGeoAGCkK
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
/G7xs+/Hvn+Jv0uqNj9m/CT2nBVzB1aqnJ+B7nfuSAmAjmRdxwE7XFe5+X/6lHyj+ZY333jC3s+e
P/P1qye8dPGqPz951323rRnNWz/b/8D3XZtNP/SNzVae1HY0z/eLAHWJ48YuO3b383516vtenLPa
smvGvXzp9N+cvu2Z+5+45Vvu67dseapWu4ZJE14756DPPH/hGsmGWpVw6uSFWcqSq2pG8397T5Z4
1K41o/n211f+LCKZXXjZ1Gw2WUOXu6NVmVeb+uKrV6yUpW+wZs1ovtbjWWLybpKnVcvv9s6fff8z
+/7l3L9Lqjb/khk/+eKes7aYO7BS5fwMdL9zR0oAQyo70A44oDz78MOl6dNzHZt77VW68cbSs8+W
Xn+99NJL6S39++7b/5GbvHXggeXphx4qrbxyrsO/TUpj4rhxpWOPTW+kf/HF0rJlpZdfLv3mN6Uz
zyxtuWX/ZctTtdo1TJpUOuec0vPPpxvKs+lNNikvmKx27Ng0ZcKE0qJFpeXLS299a+mNN0pLlpQm
T07Tx4xJ82SSpZrWtH1FKpJV/fM/lx57LN1Q0uZHHZWmtG/SbbYpJz711CA0S+1bU6aULr20tGBB
6cknS5/5TPrWBhuUfvKT0iuvlJ54onTKKWkbtipbm/q2b4o8hU8K9tWvlv74x/SHGB59NG2xpJWa
Ns7WW5cTP//56m80vPvdTT7Au+1W+v73S3/5S7pb589PqzlrVmf7rnZtH/946ac/Lb3wQmnp0tL/
/E9aheSwbdr+7ff46AkA6FS4vtN3na7vuL4zHAJGpzAk9V2nIcmQVHgADBPlfmnurHL/9LHv9t+J
jVkeFx3V/M05s8tTLfvrUvWHBj76vX42VLtUq5TGxPOObbf19mXLU7XaNVy/f8uVZy8rvxJf/EY5
5YHNq2s4/LLy5C17VBO/+7Hy5DHnpy9/XbM8e/VB1fvbB7Y72pT5gqPL01/+SjXzV75cnjz/mJYt
/51Pt2vkTkvVqnaDuHNHVAArhuyInhvlq7kfi/4H2TGx/KI4qnn3GeX+s2VXF6XKX/1/NPoZZGuX
apXSmHheHNtm6+3LlqdqtWu4PvZvtfLsdeV45YvxjSzlgagOsofHZdnULVEdZL8bH8umjol0kP1r
rJnNXh0HVb5sDmx3tCnzBXF0Nv3lqA6yX4kvZ1PnxzGtWv478ek2jdxpqXJ+BrrZuSMrADqSdR1z
T5yV3Sb9sffmGM3HLL/o8KOa3mU954je0bz1bdiVHxr46Hv7G80HdP//eYcc2/4m8Dbv5qla7Rqu
P3b/VivPZlee9MoXP/iNLOWBM2tG850vyxJv+WLNaH7cx7LEYz7QM5pfuGY2e/XRB1Xubx/Y7mhT
5gsOOzqb/vI+NaP5R76cJZ5/6DFN65XEdw79dJtG7rRUOT8D3ezckRXAkMoOtLlzy7Mf+1j/R+WY
MeWH1TeaM6efIzd5q/JDAx/9aN7Dv01KY+J55/VT2Tbv5qla7Rquv77P4v1uOonnniunvOtd6ewO
O6TTDz2UTv/ud+n0zjun01tsUc6W5G9V05zVPPfc+gyHH95Pk660Ujnx9dcHoVlq3/re9/os/vnP
l55+uk/KZz87kPq2eStP4SdMKN1+e/27559fX4AskqUSS5eW1lqrNHNm+jcOpZ6fb6j79H7nOy2L
lH/fZbNjx5a++93m+ZP07A9J8u/x0RMA0Klwfaf3Xdd3snB9ZzgEjE5hSOp915CUhSGp8AAYJsr9
0vNrlPunNf/afydWuXf9kU1ip9tjpVdjo3nVu/oPvqqas9pN1yz+wup5t9W4ePb6xth22V6eXp79
+H+mZUviXf83jv9W3LtVPyvPX7XKEkm2bX8T45c2WW1dLJ6cPi2/Mj9lUfo8/FLPjwJMW5CmTFxS
LvmiKTFjfppyxsl91vDQZnHaqelKxi0bzDJv8kgsH5NOPrpxdZ1PbJC+JunJqpo2V2Wj82fEEZfG
Ws+lNXr/L+NHHxpgqXJ+BrrZuSMqgBVDdkQ/H2tkU2tG/4Ns5YvkI7HJTnH7SvHqRjGv8hX74KgO
stWurmbxF2L1nNtqXDx7eSPGtsn2cpQf+/jx+M+V0h+JefVd8X+Pj2/dG1u1X3n+qlUWSLJtG78Z
H0sbV1sXi2PyblEdZKfEopdi1VLPX+hPi3SQnRhLspIviikzIh1kz4iTa9fwUGx2WpyarGRcLBvE
Mm8SjyyP9Jl6j0Z1kH0iNkhekvRkVU2bq7LR+THjiLh0rXguqdH745c/ig8NrFQ5PwPd7NyRFQAd
ybqO5y9cI7tNes3pOUbz3nvXHzlrk502vX2lia9uNHNe5a7+g/++ZjRvdvf1CxetnnNbre7/f+Pa
sW2yvXzp9Gz24zv8Z1K2JN71v//v8Xt+694ztmq/8vxVqyybZNv2bb8ZP25p42rrYvGVk3d7Z81o
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
/Ajd4ugzyH44fphNnRxnZBMnRbtBdtV4KZtaENVBtvsyJ3FoXJFNXRmHZBMHxdVtFq/81t7B0XyQ
HZRStc/Q6c4dWQHQkazr+Mi2/5XdL/3keeutu2rDaN73bupff2W7bPad6/U3mvcuOKbmm8uB77s2
S3zgzM2nTGw7mjfcxV25q3z6lN7R/F23tLnZO8m2//bXZ+8+e/7MfsuWs2qd3v+fNGmWuPjKvqP5
e36YpZ/8f87IJk7au+1ovvJLWbYFl9WM5l2XOYlDd7oie/fKTx2STRy049VtFr/737bJZg/++xaj
+WCUqn2GTnfuyApgSGUH2kc+Up598snys+ibHoblbu3X5dl3vjPv8TtmTDXxwAPLiQ88UJoyJdfi
lZTKbdXTp5dT9tijSbZq9zi9fI994tln+y9bzqq12WKeTf/oR9UWSFxxRfWtSy6ppid+/OP+t9u0
Iv1m7qgu3TdLnu3mLFur+nazT++7r5wn+ThVEhs/WhdfXGpvzpxyzrvvLqccfHCuFmu/77IfHWhV
vMrvDrRvrjbFWFEDADoVru/0Jrq+4/rO8AkYncKQ1JtoSDIkDZMAGCaqXdMPP1yefG6tOO7c2OCJ
9KH0kxfH5g9Ue6/s5eCryrO/f0fsfmv6BP7xS2Pms7HLL+K0U+PBd1bXOX9GeXLHO6p3Yo99I36x
Szn9nq3TNUxdGNMWxGYPpXeh37lDdfG67UbvY+qT+Oq/pLd/b3N3PLpxfba7to/Zc2LTh9PCJ7Hv
98vv1j4zv1XZclatsWCtypy0YdKAc2eVE5Oy1WYetyz9g4tkctGU9N+l49OH/FfefWDzOPW02Pm2
WOP5tBirv5DOZm/+bLdqtu7LnMSk19L9Xkl4ep2Y8Hq7eh1xaXn2pVXTvbbmX9Om3uHO+ME+g1mq
xgzd7NwRFcCKoXJQ/zA+nE09F2sdF+duEE9MjCWTY/Hm8UC1n+t5Tb5/lbvPeMfuceuMmD8+ls6M
Z3eJX5wWpz4Y1UF2fpSf8rZj3FH5WjQ23vhF7JKl3xNbJ2uYGgunxYLN4qHkK+GdUR1k67YbvX8z
nsRX41+S72LbxN2PxsZ12e6K7WfHnE3j4cnpn7Qt3je+X+6Go08/3LRsOavWWLBWZU7asPbH+JKy
1WYeF8uejPWSqUWR3j6yNMavHdVB9oHY/NQ4bee4bY14PinG6vFCMpu997OoDrLdlzl6fjQw2e+V
+adjnQnRZ5CtW/yIuDSbfSlWTfbamvHXpKl3iDt/EPsMYqkaM3Szc0dWAHSk0nv88PgPV55Rf9ys
czdY84mJ45dMnrB48797oO4e7IP//qps9vfffMfum986Y6X548ctnbnKs7ts9ovTPnLqg9+oGc0v
mZHl3HGTOyp3Yo8d88YvTt4lS7/nq1sna5g6eeG0yQs2W++hQ3e64s5Ta0bzhnu/s8fUJ/HV/f5l
+pSXt9ng7kfP2rgu212nbT97lzmbrvNwUvgk9t32+6WGZ+a3KlvOquW//z9pw6QB5544K0tMylab
edzYZU+et16SvuiKKcm/S68ev/YqNaP5mZufus9pO7/9tjWmP58UY/VpLySz2Xp+9qWa0bzrMicx
acJryX6v5Hn6O+tMGPd6m3od8f5Ls9mXLl412WtrTv9r0tQ7bHznDz67zyCWqjFDNzt3ZAUwpCrH
2g9/WE557rnScceVNtigNHFiafLk0uab12c++ODy7O9/X9p99/SZ5OPHl2bOLO2yS+m009JHx1e7
oPnlnDvuWL3DeezY0i9+UU6/5550DVOnlqZNK222WenQQ0t33tnk8K+k3H9/OeWrX01vsN9mm9Kj
j9Znu+uu0uzZpU03TQufxL77lt/929/69C1Ny5azao0F62jTn/98n11w+OHVtyoFyHzxi837w34r
0ipzY2KrutRGl82Sc7s5y9aqvt3s0xNOKOeZN6+0ww6llVdO/02mawuQfEQXLizPJru4drvJbGbB
gvTDnKQccUQ55aWX0k/1mmumn4dknT/4wUD23ac/XV+87bevFu+YYzrb46MnAKBT2Qji+k7+qjUW
rFWZXd9xfWfAAaNT9vk3JA1KR1r3liHJkDSwABgmql3T5MVx+WH99F6VqbNOyJXtxr2bvzVjftz0
wf4Xb0yZPac+87nH1WdrtdpvfqHPfKuy5alaY8Eay9wYi6akt6PXpZ5yenUuKVKeVSXr2e7XfZK6
LHMWX/5Kde7kM1rWK3sZszwuOqrd5jotVc5it8qcc+eOnABWDJWDOvlqc3kc1v7Ir0yeFSfkyXZj
7N30reSr2U3xwX4Xb0xJvojVZT43jqvL1mq134w+/XCrsuWpWmPBGsvcGMk37uS7YV3yKXF6ZSYp
Up5VJevZLvoMsl2WOYsvx1cqMydH/SBbt3jyDfeiOKr97uuoVDmL3Spzzp07ggKgI5XeY/KExZfP
Pqxyu3XTqHbUB56QJ9uNJ+zd9K0ZK82/6fMf7HfxxpTZu8ypy3zuwcfVZWu12m9+vG+H36JseaqW
5/7/xlh0xZQdN2kYzf/p9EqGpEh5VpWsZ7sN+47m3ZU5iy/v85VKnpP/T8No3nfxMWOWX3T4Ud1/
SDotdpc7dwQFMKQqx9rkyaXLL8+b+ayzcmW78cbmb82YUbrppv4Xb0yZPbs+87nn1mdr5Zvf7NO3
tCpbnqo1FqyjTW+7bZ93N9yw+tb66/d5673vbb7+PBVpmrkxsVVd6qKbZsm53Zxla1XfbvbpxIml
O+6oTz///D55jjqqPP3rXzepYOVXBpKPaKT/b1C66KKWm+t0340dW/re95qv7bvfTd/taI+PngCA
TmUjiOs7+avWWLDGMjeG6zttSpWz2K0yr3jXd8L/1DFaZZ9/Q1L+qjUWrLHMjWFIalOqnMVulXnF
G5IAhon6Dmqbu+PCT8VDm8XL0+ONsbFwaszbKL2b+sQz4x2/75Nzxzvi6oPi8belt6MvHZ8+Pf62
neP0U2KL+6t51nsyXbbyMPZS3+56j1vi+v3jT+unf/KVbeiG/eIT11QzNC41ZnkcfUFavGSjyaY/
c06aUpdtq3vj7M/FvVul61w2Ll5cLW7fKY68uP458G3K1m/Vmlan7q0slo+JV1aOP7w9bdVNHmmS
f+az8fqE8tzeN/Z564Dr0qXu2Tp9Gv9rk9L441vjikPrd0T3Zc5ijefTHZFMvrpSrPZiy3rVJs6a
mz7w/6l1Y8nEtCVv3itNGVipGqPpdrvfuSMkgBVD3aG9Tdx9YXzqodjs5Zj+RoxdGFPnxUbJV5sT
48x3RJ++PfleeXUc9Hi8LfluuDTGPxdr3RY7nx6nbBHVQXa9eDJZtvKX0aW+34n2iFuuj/3/FOsv
jsnZhm6I/T4R1UG2cankO+DRcUFSvGSjyaY/E+ckKXXZtop7z47P3RtbJetcFuNejNVuj52OjIvr
/ii7Tdn6rVrT6tS9lcXyGPNKrPyHeHvSqptEk0F2Zjz7ekzIZvaOPoPsAXFdstQ9sfXTsc5r6a/g
TPpjvPWKOLRuR3Rf5izWiOeTHZFMvRorrRb1g2zTxWfF3B/EPk/FuktiYtKSN8deScrAStUYTbfb
/c4dKQHQkbo+ZJsN7r7w8E899I3NXr50+hvXjl142dR5Z2904wl7n/ihM9+xbt/RfJM7rj76oMe/
9bZFV0xZevX45y5Y67Z/3fn0fU/Z4n/XjOarPZksW3kYe91t2Hu865brj93/T+esv/jKydmGbvjn
/T6xY81o3rDUmDHLj97tgqR4yUaTTX9mj3OSlLpsW61/79kHfu7eM7ZK1rnsmnEvzlnt9lN2OvIf
Lq57DnybsvVbtfz3/y+/dswrl6/8h2++PWnVTdZuNpqv8uzrV0/IMu+9Vd/RfIfrkqXu+erWT39n
ndeunJTEH8956xVHHVq3I7ovcxZrTH8+2RFJhlevWGm1qQ2jebPFZ20x9wef3eep76y75KqJSUve
/IW9kpSBlSrn/f/d79yREsCQqjvittmmdOGFpYceKr38cumNN9IHns+bl96lfOKJpXe8o29nu2Pp
6qtLjz9eWrSotHRp+qsBt91WOv300hZb1HRB66XLVh5yXre5PfYoXX996U9/Ki1eXN7QDTeUPvGJ
Jod/JWXMmNLRR6fFSzaabPozn0lT6rJttVXp7LNL996brnPZstKLL5Zuv7105JH1z4pvU7Z+q9aq
9XJuevz46pPkn3mmfiVPPll+69VXSxMmNO8P81SkaebGxFZ1aYwBN0vO7eYsW5sd180+XWml0te+
Vvrzn0tLlpQee6x0/PH1H61kt2Y+9akmFUwSM/fcU02cNSt94P9TT6XrTEp1881pyoD33QEHlH72
s/RDlX20fv7z0oEH9v/xyL9/V7wAgE7VjiOu7+SpWtPq1L2Vhes7ru8MOGB0qj0KDEkddaRNupG+
84YkQ9LAAmCYKLw/FPHnt6Svz6wd45YVXxgxPAJYMRTemYg/x1uSl2di7XFhkBXlAOhI4b2W+PN/
vKV0XTxz/trjxhrNRTmAIVX4MS6EEEMRANCpwgevUR6u74imAaNT4YfeKA9DkmgMgGGi8P5wVMe0
BXHcueW5U08rvjxi2ASwYii8MxnNMS0WHBfnZjOnhkFWVAOgI4X3WqM5pk1ecNysc7MH1J+6j9Fc
VAMYUoUf40IIMRQBAJ0qfPAateH6jmgTMDoVfuiN2jAkiVYBMEwU3h+O3vjst6tzL6weq79QfJHE
sAlgxVB4ZzJq47Px7crMC7H66mGQFdUA6Ejhvdaojc/u8e3szv8kXrho9dWnGc1FNYAhVfgxLoQQ
QxEA0KnCB6/RGa7viPYBo1Phh97oDEOSaBMAw0Th/eHojTO+lL4umRAPbxJ73lx8ecRwCmDFUHhn
MmrjjPhS8rIkJjwcm+wZBlnRJwA6UnivNWrjjP2+VLoullw14eF/32TPdxnNRZ8AhlThx7gQQgxF
AECnCh+8Rme4viPaB4xOhR96ozMMSaJNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACMBlEKIYZJFH00AAAAAADAiFH4WX0hsij6UAAAAACA0aXwU4JCVKLoowEAAAAAAEaM
ws/qC5FF0YcCAAAAAIwuhZ8SFKISRR8NAAAAAAAwYhR+Vl+ILIo+FAAAAABgdCn8lKAQlSj6aAAA
AAAAgBGj8LP6QmRR9KEAAAAAAKNL4acEhahE0UcDAAAAAACMGIWf1Rcii6IPBQAAAAAYXQo/JShE
JYo+GgAAAAAAYMQo/Ky+EFkUfSgAAAAAwOhS+ClBISpR9NEAAAAAAAAjRuFn9YXIouhDAQAAAABG
l8JPCQpRiaKPBgAAAAAAGDEKP6svRBZFHwoAAAAAMLoUfkpQiEoUfTQAAAAAAMCIUfhZfSGyKPpQ
AAAAAIDRpfBTgsMxKgovySirbNFHAwAAAAAAjBiFn9UfdjGcLnmMqsoWfSgAAAAAwOhSf47u9ojD
IjaJmBYxMWKdiC0jZkfcMEjnHvtV9CnKrk6ZdlOLOknjrx0xK+L6Ia7CcGr5oo8GAAAAAAAYMfqc
Y3d9p5tLHq7vdBdFHwoAAAAAMLpUz84tjNhvsM/cOj88gGUbfXMoSzKcWr7oowEAAAAAAEaM8tl1
13e6v+QxKG3VyPUdAAAAAGAIlE/NLY/Yvfc84aYR34t4PmJpxIsR/x3x9Z6nxAz6idbhdGZycAo2
KOeHs9lXepo983dDWZLhtBeKPhoAAAAAAGDESE+tu74zKAVzfae7KPpQAAAAAIDRpXxq7rqak8Mv
5zubd3PE3hEzIyZErBqxa8T3m511rJPzzGT7ldcuuyjiiJ5fs10v4pyet56I2DNi5YgNIk6PWNZs
qeUR347YOGJSxPoRJ/esp03BrqhJnNyz5mSjj3VS3/w1qqQs7E2ZWJP4nt7Ei2oSr+9NfHfbtk3q
+C8Rb+2pdVL3/+hphzZ7wflhAAAAAAAYrlzfcX2n+V5wfQcAAAAAVmjlU3Ozek8SfjfHebzlEUe1
OB06u+vzw3lWXrvsR/vm+feIdfqmfLvZUsc0rHzniNdbF+yQZuWZHvFwjvp2WqNs9pWIb/SmbF6T
7bLexD1qEj/Wm3h+6yoktdupoQDHNMvp/DAAAAAAAAx7ru+kXN8p+uKO6zsAAAAA8CYrn5pbo/ck
4V9znMernKLcJOL2iFcj5tX8vOxV/Z0Bbv9uzpVXzOr5KdurG1Ku6J3drNkW3xZxR8852DsjNupN
PLt1wfbrWeFTPWdZn4v4cm+GA4egRnUmR/ysZm2Leh4vEz0PjVnQk7Kk50x1YkrE/NYlObs3ZaOe
WtfVva7Mzg8DAAAAAMDw5vpOmes7RUfRhwIAAAAAjC7lU3Pje08SLm1xwrP2FOI2vbN31uR8qjdx
++7OD+dcecVve2YX1KT8pidlce/sSs22+JOaxFt6E9v/uGptvN6bYd0hqFGj3fv+aO/xvenf65md
2zv7ibYl2bI35ZZmdW9TWeeHAQAAAABg+HF9p8z1naKj6EMBAAAAAEaX8qm5yvNhns1xfnilticz
p3Z3fjjnyite7ZldXpPySuv1V/ytJvFvvYlTWiyYrPySiH/oaaXx0cf4IahRNvtaxAM1v9tb+0uy
8yLG9CQe0DN7dG+e29qWZEpvyvxmda8rs/PDAAAAAAAwvLm+U+b6TtFR9KEAAAAAAKNL+dTcnr0n
CS/PcSK3/QnPaL1g9+eHo/WyHaU0PUfa6vzwF/JVdtBrlMQzvYlr9U3/QE/iKj0/Drtuz/SG/ZVk
ctu6123X+WEAAAAAABjeXN8pc32n6Cj6UAAAAACA0aV8au6/ek8Srtfz06XtT+Ru1zv7YH9n/CqW
5z4/nHPljct2lNL0N1Jb/T7sqr2zV/b+Tmur06pN6zvgGpVqfkZ2ct/0H/amn9E78fX+1ub3YQEA
AAAAYAWSnlp3fSdc3yk+ij4UAAAAAGB0qZ6d+3DvecK1Is6NeKLn2SOLe36ltO4U4lW9s++IuLXn
eSNLe35Y9hcRp0a8s+aM34zenHc0O0Xc9MxkzpU3LttRykYRv+r5Jdm7eqYzZ7VYcM3e2R/1tMlj
NW1VV/im9R1YjZb0/X3Y7ftuaFnPmfzo/dXX8T1PkmnftmfV1P3OnrrfWVP3uoo4PwwAAAAAAMOb
6ztlru8UHUUfCgAAAAAwulTPzi2OOCz6Ucl8Qr5se7d+q9X54Zwrb1y2o5RjGla7Y8TrLRZs/H3Y
w1sUvlV9O6pRoyk9J5zrWun0mgx7N7zbWLwlPXWsc0yznM4PAwAAAADAsOf6Tsr1naIv7ri+AwAA
AABvsvpzdHdHfCpis4jpEWMjpvY8QmTviDMjft835x0RB0W8refs5fiep8rsHHFKxP01eZ7sWXZG
i5OQbc5M9rvyxmU7Slke8a2eqk2MeEvESRGvtl5waU/1N46Y1JP5tJ7HszQtfJv65q9RZkzEyhFv
79kdjzRromcjJvRmvjHH+eFSTx2/1FOFpNYb9rTAcueHAQAAAABgRHJ9x/Ud13cAAAAAYBQq/JTg
mxrD6VzoIMRbeuqyds/56sILMxhR9NEAAAAAAAAjRuFn9d+8cH1neEfRhwIAAAAAjC6FnxJ8U2OF
OT+8IOLc3rqcVnRhBi+KPhoAAAAAAGDEKPys/psXru8M7yj6UAAAAACA0aXwU4JvaqwY54e/XVOR
1SNeKLo8gxdFHw0AAAAAADBiFH5W/80L13eGdxR9KAAAAADA6FL4KcE3NVaM88On9FRhQsTbI24t
ujCDGkUfDQAAAAAAMGIUflb/zQvXd4Z3FH0oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9/e/ceLVlV3wn8
1w+afvAQI48ACcrTCIEGBQfkofImS5IoD5EREVZAiUiA8T0gQQE1NCACgjwa0I4imZXoGkHHZE0Q
IRHjECOuJBCzZo3MgBiVRwPy6jNVp+pU1606dWrX7apb1fd+PuvXt0/t2mefvfep+u97zwUAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJijIjfuWQAAAAAAAAAAAAAAwLqa3Qn5
2b06AAAAAAAAAAAAAADmjtmdkJ/dqwMAAAAAAAAAAAAAYO6Y3Qn52b06AAAAAAAAAAAAAADmjtmd
kJ/dqwMAAAAAAAAAAAAAYO5ITMhHmZRuvS6RMmDHCEO5dOl1/Y4AAAAAAAAAAAAAAAATLiX93isz
nxitH6jn0Aec3qUTdwYAAAAAAAAAAAAAAGZG35R7dbS+dW5ityH2nMaA1Z0H3RkAAAAAAAAAAAAA
AJgxfVPu1fH46Mr/9z19HXuuy4DTWGD1uQAAAAAAAAAAAAAAMDPmWv4/eqvYBAAAAAAAAAAAAAAA
GK/0/H91bH4aqf6+OfzqMRO7pV+6/2YBAAAAAAAAAAAAAMCY9I2+J8b1hxXC7+7Zd87rcumK0wEA
AAAAAAAAAAAAYHKk5/9TxhkohD/tua17/j9l5gAAAAAAAAAAAAAAMDnk/+X/AQAAAAAAAAAAAACY
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
9Fy+84cXjftOvdCL+W9qRP43C2oW5n8poHpvL21b+z352u9pW3vHQuT/AQAAAAAAAAAAAAAmzNr0
9bMR744+Wp3PTet2dO+3euX/EwfvPnegljO6ht0/4vkeJ36gq/MpPSbfa70DrajbkvwXCjp26cK2
Dkd3vds9vefyNXY4o6yn/D8AAAAAAAAAAAAAwOTpzGDfF/GeiF0jNomYH7FR/oj4oyM+FfHjqT3v
jnhnxA55On1h/lcDDoo4L+KHbX1+mp+7aY+QeUXyvO/g3ecO1LIm4rJ8aYsitov4cMTTvU98IV/+
zhEb5p0vyB+/Xzr5ivWmr6hhXsSyiN/Jb8e/lG3RIxEbFJ2/lpD/z/I1fiRfQm3VO+Y7sEb+HwAA
AAAAAAAAAABg/TD2yPeM1iRl3YdQ2+Vr+c389xHGPplh1Li/DQAAAAAAAAAAAAAAk2vske8ZrVmT
/38y4spiLReMezLDq3F/GwAAAAAAAAAAAAAAJtfYI98zWrMj/39520JeEfHzcc9neDXubwMAAAAA
AAAAAAAAwOQae+R7Rms25f83jHhdxL3jnsxQa9zfBgAAAAAAAAAAAACAyTX2yLdSrRr3twEAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAWev/A1O4ZBEKZW5kc3Ry
ZWFtCmVuZG9iagoKMzUgMCBvYmoKODM3NzgKZW5kb2JqCgozNiAwIG9iago8PC9UeXBlL1hPYmpl
Y3QvU3VidHlwZS9JbWFnZS9XaWR0aCA0MDk2L0hlaWdodCA4NzUvQml0c1BlckNvbXBvbmVudCA4
L0xlbmd0aCAzNyAwIFIKL0ZpbHRlci9GbGF0ZURlY29kZS9Db2xvclNwYWNlL0RldmljZUdyYXkK
L0RlY29kZSBbIDEgMCBdCj4+CnN0cmVhbQp4nOzde7BsWV3Y8b4zMIPMODw0ZSUmWoJRUZFkEKMG
g6KAWo7EqEVplWhifCeVYEpRykelSo1GhEhEEsRHxERFY3xES5zEbiGAKCoI0ViID8CJYoZHQILD
o3PvPefe033OPo+9e6/+rfVbn88fwLnnztQ6/Vvde3/v3nezXgMAAAAAAAAAAAAAAAAATXjP/0nq
ndGvLAAAANTjrkVSL4x+ZQEAAPr19G8n0h8PzET/AwAAMLf7RTdh55YDM9H/AAAAzE3/x1oOzET/
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
Gayip9gc/b8f+n8s/X8e/V8zJ6KcoP/H0v+M4WO3Bvp/LP0/g1X0FJuj//dD/4+l/8+j/2vmRJQT
9P9Y+p8xfOzWQP+Ppf9nsIqeYnP0/37o/7H0/3n0f82ciHKC/h9L/zOGj90a6P+x9P8MVtFTbI7+
3w/9P5b+P4/+r5kTUU7Q/2Ppf8bwsVsD/T+W/p/BKnqKzdH/+6H/x9L/59H/NXMiygn6fyz9zxg+
dmug/8fS/zNYRU+xOfp/P/T/WPr/PPq/Zk5EOUH/j6X/GcPHbg30/1j6fwar6Ck2R//vh/4fS/+f
R//XzIkoJ+j/sfQ/Y/jYrYH+H0v/z2AVPcXm6P/90P9j6f/z6P+aORHlBP0/lv5nDB+7NdD/Y+n/
Gayip9gc/b8f+n8s/X8e/V8zJ6KcoP/H0v+M4WO3Bvp/LP0/g1X0FJuj//dD/4+l/8+j/2vmRJQT
9P9Y+p8xfOzWQP+Ppf9nsIqeYnP0/37o/7H0/3n0f82ciHKC/h9L/zOGj90a6P+x9P8MVtFTbI7+
3w/9P5b+P4/+r5kTUU7Q/2Ppf8bwsVsD/T+W/p/BKnqKzdH/+6H/x9L/59H/NXMiygn6fyz9zxg+
dmug/8fS/zNYRU+xOfp/P/T/WPr/PPq/Zk5EOUH/j6X/GcPHbg30/1j6fwar6Ck2R//vh/4fS/+f
R//XzIkoJ+j/sfQ/Y/jYrYH+H0v/z2AVPcXm6P/90P9j6f/z6P+aORHlBP0/lv5nDB+7NdD/Y+n/
Gayip9gc/b8f+n8s/X8e/V8zJ6KcoP/H0v+M4WO3Bvp/LP0/g1X0FJuj//dD/4+l/8+j/2vmRJQT
9P9Y+p8xfOzWQP+Ppf9nsIqeYnP0/37o/7H0/3n0f82ciHKC/h9L/zOGj90a6P+x9P8MVtFTbI7+
3w/9P5b+P4/+r5kTUU7Q/2Ppf8bwsVsD/T+W/p/BKnqKzdH/+6H/x9L/59H/NXMiygn6fyz9zxg+
dmug/8fS/zNYRU+xOfp/P/T/WPr/PPq/Zk5EOUH/j6X/GcPHbg3+16dHesjihvt9XOgKxvu26JFl
8MrQEba47Z4aPbJO/G7olFvcmd8ePbLq/Wr0iDjDF0ZvD+rzZZE7ssWjwKe/I3pksT4z8rVvccN8
YfTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgyp8+N6n/F/3KAgCT/Uz0iUQhr4x+
YQHo2WqR1J9Gv7IAwGQPiT6RKORfRb+wAPRsFX0cLEX/A0C79D8AzG4VfRwsRf8DQLv0PwDMbhV9
HCxF/wNAu/Q/AMxuFX0cLEX/A0C79D8AzG4VfRwsRf8DQLv0PwDMbhV9HCxF/wNAu/Q/AMxuFX0c
LEX/A0C79D8AzG4VfRwsRf8DQLv0PwDMbhV9HCxF/wNAu/Q/AMxuFX0cLEX/A0C79D8AzG4VfRws
Rf8DQLv0PwDMbhV9HCxF/wNAu/Q/AMxuFX0cLEX/A0C79D8AzG4VfRwsRf8DQLv0PwDMbhV9HCxF
/wNAu/Q/AMxuFX0cLEX/A0C79D8AzG4VfRwsRf8DQLv0PwDMbhV9HCxF/wNAu/Q/AMxuFX0cLEX/
A0C79D8AzG4VfRwsRf8DQLv0PwDMbhV9HCxF/wNAu/Q/AMxuFX0cLEX/A0C79D8AzG4VfRwsRf8D
QLv0PwDMbhV9HCxF/wNAu/Q/AMzuNx45q8sHth3/DQ9a3HDrw2ZYyd3RrywAMNnnzXAucKSe85Mf
in5hAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
WDonJGgsY7vs7EAyMTt+6LiWkLZEEYq2SlwkiZooZfvIRt/TCuJWpSs3jibGX+gNR2X7bm84QuAP
veGkFreWQJ0UK+7UyDpzGpWl87evmIX4batUSogfrU5qVe7n+/klbHYv6d23tnVah6E4/Vp3JM41
7rPtc0k07ZRoE8sb63JhvfWvg/PuhQplbmRzdHJlYW0KZW5kb2JqCgo0MyAwIG9iago0MjIKZW5k
b2JqCgo0NSAwIG9iago8PC9MZW5ndGggNDYgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVh
bQp4nKWRTUvEMBCG7/kVc15onI+kSSDkUGkP3hYKHsSbdkVWwb34952k1IUVZGFb2kxnOu88eYOW
4Nt8AUKHliEksT345DU+vZrHHXwagnqfDgZrAT5M/Sm0+Ahr3HqPm0gN1uqbWXZV3BJS6v+sqjnM
RlJVY9LB8wvcTQSCMC9PmRxOpeNMemFfXCZfP/EeuUjGxFQ6XSdNuFYYa7pfmzAQlef5wYyz2TeG
/vdZ57poEzgf1YE2V4C4MiwZqczv58b/4ANaryKs224iDBwbPI+lo4wDRYzEhTb4qaZ1PwMFjFcA
Sqz23AgoUWy8BAyFsyR90XQNhx6Q3MxB3roLDglqDhNGPeJqTUBGKZ3PgqVzGZlJraPNudVFxuHM
vIcf2TyV9gplbmRzdHJlYW0KZW5kb2JqCgo0NiAwIG9iagoyOTAKZW5kb2JqCgo0OCAwIG9iago8
PC9MZW5ndGggNDkgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nKWUQWsjMQyF7/4V
PhdmVk/yjG0YfJhNcuitMLCH0lubltJdaC/9+yvZk7S02yUlhHgcW9J870mEevhX9+zJd9Szj1n6
0Q950P3Lnft14f84ePu83DuyC//bWVCs+yff9jX36VDENu32we0vrHgPQh4/PbXmvDjJVo2hL15u
/Y8dvJBf9tcTM4XS8URjCRP9JKk/GFJ4AihjLjJRZsGOsoWgdLoyh3d5EM0YiyVSpC1QbpZLt13c
VQUbj98GE1KffRiS2lJhxIMNbG/Vl8e3xP8pitQPWoTVi1qEPaeqiDYKwiwkpFRcIXelg6HqiogE
YCh6MOvDrmeEE4glmYlnEkuSPn0khnrcSNXyWc0nJWzkieb39CroS2W0revhpqmFVoP1bUYsnRzK
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
LBecDd9jTRzAOZw9wrFjSLVeNo4R4cT4WpvaAsoLTS69yClWkP6SY0+f4NeBOgplbmRzdHJlYW0K
ZW5kb2JqCgo3MyAwIG9iagoyODAKZW5kb2JqCgo3NSAwIG9iago8PC9MZW5ndGggNzYgMCBSL0Zp
bHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nJ3QuwoCQQwF0D5fcWvBMfNwZwfEwseCdgsDFmLl
s3CVtfH3TVYUFGxkirmQ5BDCxuJOLRh9Ng4xeVNgmIaSb3ta9XAhC323I7EW0JA2xS6f8czd7PmF
aHhWT3ToUY0PPv7iWylH6dThqKg3Hn0nadvQYNEEzK6ov7nvbdtOYAUnmVy0gvhQiJJ3GFQWoUQ+
rEeWx25kpzzj6EqJnGylX8XBpfEmL2meqRbuvZ9yRZJ7+VCa9B9X4wE0w03hCmVuZHN0cmVhbQpl
bmRvYmoKCjc2IDAgb2JqCjE5MAplbmRvYmoKCjc4IDAgb2JqCjw8L0xlbmd0aCA3OSAwIFIvRmls
dGVyL0ZsYXRlRGVjb2RlL0xlbmd0aDEgMTY5ODg+PgpzdHJlYW0KeJzdewtYVNe18F77nDPDmYF5
wHB4DDJnGN4DzHCGp7xGhQFFBQQUUAQEFHzA8NBo1KqJiQnGal4maZrEtmluHk0crPHRpIlt0/Te
m5iYNk3apq22TZvmplbv/ZPc/lGHf+0zA2KS9v7ff//v+7/vn+Gcs/faa6+99tprr8fZw/jo5n4S
SXYTjnh7N/X4P/vNz/6ZEPI6IRDdu2Vc3rf6fAmWLxBCF631r9uU6Xnvr4TwOYRohXUbt619ovzS
LkL0BYRklQ/09/S13fKGQkiBH2kUDSBgW/AWLdafxHrqwKbxrb9O2PMU1pE+eXLjcG9P3fPLThJS
OI715Zt6tvoTtbE81lm7PNSzqf+ODTvewvpfCIno8w+Pjb9LsqcIqWxk7f7Rfv8x039exDqOx32I
MMAv+0RiUcPqlOMFjTZC1OkjowxGkzk6xhIrxcUnJFqT5iTbZHuKIzUtPSMzi/x/+hFeF14nO4U9
JJZsU+83fPi5xEJuImTqL6x2/R5c8X+Xiwj1DgmQRj4hH81q+AH5GfkeCZA3Z2NDBmSx1YNo8j75
mLz696giPRssVovnyVvkx+T5v4NHyVNwjfwCElDPT2KJwarIe9CJ/DyNsM3kAFyFbWAnR8CktuYj
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
cmlwdG9yL0ZvbnROYW1lL0JBQUFBQStMaWJlcmF0aW9uU2Fucy1Cb2xkCi9GbGFncyA0Ci9Gb250
QkJveFstMTg0IC0zMDMgMTA2MSAxMDMzXS9JdGFsaWNBbmdsZSAwCi9Bc2NlbnQgOTA1Ci9EZXNj
ZW50IC0yMTEKL0NhcEhlaWdodCAxMDMzCi9TdGVtViA4MAovRm9udEZpbGUyIDc4IDAgUgo+Pgpl
bmRvYmoKCjgxIDAgb2JqCjw8L0xlbmd0aCA0MDUvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFt
CnicXZLNboMwDIDvPEWO3aGCBCirhJBa2koc9qOxPQANpkMaAQV64O0X29km7dDqi+M4X4zDsjpV
pl/CVzvqGhbR9aa1MI93q0Fc4dabQCrR9nrxK/rXQzMFoTtbr/MCQ2W6Mc+D8M3tzYtdxebQjld4
CMIX24LtzU1sPsrarev7NH3BAGYRUVAUooXO1XlqpudmgJBObavWbffLunVH/hLe1wmEorVkFT22
ME+NBtuYGwR5FBUiv1yKAEz7by/xR66d/mysS5UuNYpSVThWxLsUOWZOkBPijOIpx2PkHfMeOWM+
Iz8yZ8h7YhUhH4gTqnnkmhQvOb9EPjFL5DPnUP6F4+5RuYzYGeOS/TP0keyf7ZDZP8N3SfZP8S7p
/Snu/U/I7B/jvZL9Y8ph/5jqs39M96K/iiTFvf8jsvcnB/ZPsQ+S/TPslWL/GN+ifP+xjmL/BO9V
7J+gm/L9RzfF/gkx+6f4XRT7J1TH9/+I7PsvaRj8V8exwLn9GTeh79a6UaPhphnD6eoN/M7/NE54
in7f8srKxQplbmRzdHJlYW0KZW5kb2JqCgo4MiAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9U
cnVlVHlwZS9CYXNlRm9udC9CQUFBQUErTGliZXJhdGlvblNhbnMtQm9sZAovRmlyc3RDaGFyIDAK
L0xhc3RDaGFyIDQxCi9XaWR0aHNbMzY1IDcyMiA1NTYgNjEwIDYxMCA1NTYgMjc3IDYxMCA2MTAg
Mjc3IDcyMiA2MTAgMjc3IDU1NiAzMzMgNjEwCjYxMCA1NTYgNTU2IDM4OSA2NjYgNjEwIDg4OSA1
NTYgNTU2IDU1NiA1NTYgNTU2IDYxMCAzMzMgOTQzIDU1Ngo2MTAgNjY2IDcyMiA4MzMgNjEwIDcy
MiA3MjIgNzIyIDU1NiAzMzMgXQovRm9udERlc2NyaXB0b3IgODAgMCBSCi9Ub1VuaWNvZGUgODEg
MCBSCj4+CmVuZG9iagoKODMgMCBvYmoKPDwvTGVuZ3RoIDg0IDAgUi9GaWx0ZXIvRmxhdGVEZWNv
ZGUvTGVuZ3RoMSAyNDk2OD4+CnN0cmVhbQp4nO28C3gT17UwuteeGUljWdJYlmzLL0nIb8nSYGHj
l+wBbCGHAAZssA3GNviBednYhoRHg2mAgEliJ6EkBBpoS9OQFyIhCWma4rY5SdMkhbbpOScn7cGn
h+Y0TSicnjT/SQL2XXsk80qa/373v/93v+9+v6SZWXvvtdd+rb32Wmvv0UDfxg4SSwYJR5SV69p6
Y3JsGkLI24SAeeWmAcel2Y9OQXiMEJrQ2du1Lsf//l8I4f6bEK3QtXZz5yvZv3qPED1mqala1dHW
vvnuh6cSUleFEUWrMOKB8W9qMbwNwxmr1g3cuS95439h+CjS1K3tWdkmVVZUE1L/BKbvXtd2Z+8O
TR1HyGIZw471bes6Cv8TLmC4lhCd0tvTP3CA5E0QsnyEpff2dfQWLf95BYbDWL/fYhzgl31iEWTt
AMrx2hh9rMEoxZnjLdaExCRbckpqWrrd4ZziysjMys7JzXN78r0+eWqBf1ph0fTiktKy8kBFpTKD
/P/hI7wtvE2+IewgVrJZvd/04UuJhdxByMTHLHT9Pr7k/91a6CKPU+RVcoIcvSlpD7kL70/fFHeG
/Iw8pUKHyH1fQ/Zl8mQU2k8Oknv+Lt5qcjfSOYblX/+0Yuxm8giWfJr8ABllCvix1DXR1PfJm19N
Cv4N3iQPkicQ80HyEt4PIedtpX8lD9KFZD39J24H+SbZi208At1kGPFbyTFYSpZjbOSznHSQnluI
DpER8n2yBWfhtY+wY+K/iOHKD7Dme5HOAdJNNtyQ4wn4jD04O9b9WfKCGrdjMlEb4lbTFym9+hAG
HiBdeLUBzlJ6HzeDVAlxcJwQpbqxob5u0cIFtfPnzb19zm01odnB6qpZM2colRWB8rLSkuLpRYVT
ZZ8335OTnZWZ4ZritCdZ4iST0aCPEXVajcBzFIin2hVsdYSzWsN8lisUymdhVxtGtN0Q0Rp2YFTw
Zpywo1VFc9yMqSBm5y2YSgRTuYYJkqOclOd7HNUuR/idKpfjNDQtaED4vipXoyN8UYXnqjCfpQYM
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
Ocefpv8N99KVGu6lu7eUdcxxazR7OSEhtzy77W5ss33iMs0TPKjFb1WW5Bih27jZuNfI5Rig27DZ
sNfA7UPFwoGq7lp+G3+Yf5rnMRQb6knYnkATYg0JnBQUdcOTi4ci8FphMAlMmtrYyhiIEU3xUYfF
O6z+0MxklN9/MRG1FNaOZmBytnlDJtP5C1mDUHfyW11RU4Dm5dYX//M3dhbe+fOf+yuTp6bp9Ia/
0V/f/de/3n21fl6lTqPKn4mrbLcT17887qSS8cdEKM29LZduyR3KfTSXK5SqJbpR2iV9S+KK0oJp
tAgVEzYDEgxxoZLUmlRakgqpEgaKSBDFMEsS9RgyBA3UwEJ+DJVADVCQGGSsMVLOKKE5ZTQkpKVq
gbhyXNDgggSty6VN4Ey5eVIeE1g1voJQTR5My4OsPPgsD17P+yCPHsuDA3mwOQ+K8oJ5nXmcLQ8+
yYMXWdLOvP15tDNvUx4tUbNY1Jmoy5NMrBYToqnR1G3abOJjTK97PvB86uGOeeCABzZ7oNMDdR4o
8gQ91OaBTzzwgQde88CLHjjogd0eGFBRSjxg8WR4qMYDv/iMZX3Rwwjx3dGsosfmoZjzZQ8s9nR6
dns4zOFmmQCzXPDAP05S/a4H9quE+zzQzrBhmqfKQ6dM4h781AM/9fzaQ0954HEP7PTAJlbDdg+d
yVAhwZPlobwH/uD5q4e+64HXPYBteVDF7PRs8tDJ1mQwXOBZm5TfRlv1nIrM6nfAw1V56jy0aLLc
7k8ZTXh3snHcgGcnSw5ic7gMhpLgoZ+wJnzgofs9xzwU29CtNqCKpRZ56LVmPo4U6F61idDK6pCB
RXHFxzyved71fOLhB9VuneMBOdqtX6jZjqpdszXSI+0eLsUDl9XOe4t11U7Pfs8pD1/pAUo8kofq
tEy05KDaP1ML07QwRQva1FzOZHLlxMaF8pGn1GcCQIKLM6JgSPQzI5o9mPCd9FLe6gWZ9F3e4jy5
wT9yg2vlRt/KTR6Um+ku/3I8E0rFft/yL6O7i/3mxJKAz+fb0Bfn90d+qIy0oNarfpvZj303OF2c
F7KzsjVaI2g5F/jj0yExIbFoegVMj785wB/41TO6OF2MKMbo4nXPnRv/1XMvaY1arU4n6iTNaz95
VSshrNNpTdozYfrDlNosjy/fk7XQfvU2vvSqM3GWIzM7K8OuWOl/XLUlz0yb4sLQrGR6/v/4UP73
+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
0oKJBVRZUFgcVBZk5gTPKnW1UBN02ENIczZeJ4JwPngpSAeDkFBgrY8DU71UYKqnQOqBgN1uqjS1
mLabeJPJZ5pv6jENm86bJkzaSoy7ZOJQVRxMAAFOw8jJukVu95zT2omFc8La2qVh2BPOXMTuyoKm
sGZPmNQ3LW04CXB/46777iMz0+aECxY1hFvTGueE2xFQGDCIgJR2MoHMbBzoH9iovh4HEYAMuN39
/Qxi5zFI5NU5UCFw92MyovUP9GNgYCPpd/cPQH8/TuQBjO+H5Qj397PofsAcePW7I+SRAhJejgTw
NhAh3d+P+P2Yvz9pOfL1/wVa9+GSCmVuZHN0cmVhbQplbmRvYmoKCjg0IDAgb2JqCjE2NTI1CmVu
ZG9iagoKODUgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9DQUFBQUErTGli
ZXJhdGlvblNhbnMKL0ZsYWdzIDQKL0ZvbnRCQm94Wy0yMDMgLTMwMyAxMDQ5IDkxMF0vSXRhbGlj
QW5nbGUgMAovQXNjZW50IDkwNQovRGVzY2VudCAtMjExCi9DYXBIZWlnaHQgOTEwCi9TdGVtViA4
MAovRm9udEZpbGUyIDgzIDAgUgo+PgplbmRvYmoKCjg2IDAgb2JqCjw8L0xlbmd0aCA0ODgvRmls
dGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicXZPLbtswEEX3+gou00UgcahHAhgCHD8AL/pAnX6A
LNGOgFgSZHnhvy/vXLYFurBxSM6QhyNOujlsD0O/pD/msT36xZz7oZv9bbzPrTcnf+mHxIrp+naJ
I/1vr82UpCH3+Lgt/noYzuNqlaQ/w9ptmR/mad2NJ/8lSb/PnZ/74WKefm2OYXy8T9Onv/phMVlS
16bz57DP12b61lx9qlnPhy4s98vjOaT8C3h/TN6Iji1V2rHzt6lp/dwMF5+ssqw2q/2+TvzQ/bdW
Zkw5nduPZg6hNoRmWZHXgUW53IMdeQvOlXcWXIBtqVzqvGTgSjlfg1+YW4BfyRvwmvvonm+c34E3
5Dfwlj4OvON8Cd4rV/C0GbkC0199LP0rAdM/h4Olf6nxBfkVTP8cPpb+Jc610f8FTH+n+9BfcBdL
f6dn0d+hDpb+Tn3o73RP+heIEfqXyBX6V4iR6I+zJPprTPTH3YX+uXL0R30k1h/nCv0F/kJ/QZ2F
/pUy/QvNpX+Oewn9BfUR+ufK9Be8DRfrj7u46I8YR3/Bd3TRH/dy9Hd4G47+Fc510R8+jv4F7u7o
X+B7Ofrnei79S90n1h91cPSv1vrg48vG00dv/mkp097nObSTNrD2ETqoH/zfHp/GCVn6+w1EMffw
CmVuZHN0cmVhbQplbmRvYmoKCjg3IDAgb2JqCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBl
L0Jhc2VGb250L0NBQUFBQStMaWJlcmF0aW9uU2FucwovRmlyc3RDaGFyIDAKL0xhc3RDaGFyIDYw
Ci9XaWR0aHNbMzY1IDYxMCA1NTYgODMzIDU1NiA1MDAgMjc3IDUwMCA1NTYgMjIyIDI3NyA1NTYg
NTAwIDY2NiAyNzcgMjc3CjcyMiA1NTYgMzMzIDY2NiA1NTYgMjIyIDgzMyA1MDAgNTU2IDU1NiAy
NzcgNTU2IDU1NiA1NTYgNTU2IDY2Ngo1NTYgNTAwIDU1NiA2NjYgNTU2IDcyMiA2MTAgNjY2IDMz
MyAyNzcgNTgzIDY2NiA1NTYgMzMzIDI3NyAyNzcKNTU2IDUwMCA1ODMgNzIyIDI3NyA1MDAgNzIy
IDcyMiA5NDMgNzc3IDIyMiA1NTYgNTAwIF0KL0ZvbnREZXNjcmlwdG9yIDg1IDAgUgovVG9Vbmlj
b2RlIDg2IDAgUgo+PgplbmRvYmoKCjg4IDAgb2JqCjw8L0xlbmd0aCA4OSAwIFIvRmlsdGVyL0Zs
YXRlRGVjb2RlL0xlbmd0aDEgMTQxODQ+PgpzdHJlYW0KeJzleg10U9ed573vvqdvy5ItyzYG+9nG
DgZhGYFx7ECQsIVR8BeyzFfjBNl6tgT6iiRjHIYGmqRAE2o6M3VSNqUukxBKOwmTTTM0dNN0wpxp
p8lkcko2M5tmp94ybTdL2HQP2+1QeOz/3vcky4aQnM7umT1nLT+9+/G//4/f/+Pe6+NMakxCJnQA
EeQejgWT7oa7XQihNxHCRcN7MuLSs74noP1zeB4bSY7GxttcIYQIPOjbo9GJkQ+WdG5DiLcgZNoY
loKhgK61ESELjKHVYRiokuNa6B+D/uJwLLN3neZeHvovQ39pNDEc/PUCexn0f077seDe5B/jXxCE
rCboi/FgTBrUmzPQdyBUXZ1MpDM70MGbCLn66HwyJSX/6MRmA/SToMPvYAzDh/7AeqyhfY7wgkar
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
PDl8gD/0xTrh0CA55Oa/WEcef6xQeLycPFZIHp0iX5DJQeB30EUOPFIsHAiRR4rJ56fI/hD5o36y
Dzjuc5GHgeBhF5koI3thYG+IjMtkj0wy6QIhXUBSDzUKKZk81EiSMJvcTxJlJB47L8RlEosOCrHz
JHaAj0bqhOggibr53bvJLujsOk8i7pt1JAxrwiEyCq/REBkBSSOVRLKQkEyGZTIkk+B+slMmD4TI
/Z+zCffL5HM2ssNFti8vErbbyTY72YqKhK0y2eIiAzIJ9BuFgIX0G4l/s13wT5HNfRZhs530WUiv
THq6Q0LPFOkOkS6ZbJLJfb5i4b4p4ismG6+Rzmtkw37i7SgWvPtJRzFpLyMeM1nnIvdaydo1ZmGt
TNbcYxTWmMk9RtLWWiq0TZHWu41CaylpPcDfbSR3u/mW1WVCSwtZDcqtLiPNq8qE5k1k1UqbsKqM
rLQR14oywRUiK2B6RRlpcpa57UJTB3GWkUYYaqwkyx1WYXkRWX6Oc7v1vGNZoeCwEsc5DkFv2VKz
sKyQLDuHX4feUo1BWGomS8/hA+6tfMMmsqSQ3LWJ1C8uE+oXkzp41W0iiwGaxWWk1kZqFtqEGhep
FlcJ1fcSEcbFVaSqwiZULSCV8KqUySIgWeQiC22kYkGxUAEvmht6fkG5VVhQTBYoOpXrCoVyKymn
Om3ly2ykdBOxAzv7FClpIbYWUowrheJrpMhFrBaXYL1GLDBrcZFC8zahcD8xQ8+8jRQAm4JKYjIW
CqZKYiwkBhjXaU2CrpDoFAu1YKHWRLTUQj2vEfSCxkA057D7ZV7QE+EcRu5ynp8ihCsQSCV8Eww8
cCVBRQSfw6HHj+Jl/0//oH9D2Yv+N4Ukd1sKZW5kc3RyZWFtCmVuZG9iagoKODkgMCBvYmoKNzM0
NgplbmRvYmoKCjkwIDAgb2JqCjw8L1R5cGUvRm9udERlc2NyaXB0b3IvRm9udE5hbWUvRUFBQUFB
K0RlamFWdVNhbnNNb25vLUJvbGQKL0ZsYWdzIDUKL0ZvbnRCQm94Wy00NDYgLTM5NCA3MjkgMTA1
MV0vSXRhbGljQW5nbGUgMAovQXNjZW50IDkyOAovRGVzY2VudCAtMjM1Ci9DYXBIZWlnaHQgMTA1
MQovU3RlbVYgODAKL0ZvbnRGaWxlMiA4OCAwIFIKPj4KZW5kb2JqCgo5MSAwIG9iago8PC9MZW5n
dGggMzA3L0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nF2Ry26DMBBF9/4KL9NFhE0SSCSE
lJIgsehDpf0AYg+ppWIsQxb8fT2etJW6AJ153GG4k1TNqbFmTl79qFqYeW+s9jCNN6+AX+BqLJMp
10bN9yi+1dA5lgRtu0wzDI3tx6JgyVuoTbNf+Oqoxws8sOTFa/DGXvnqo2pD3N6c+4IB7MwFK0uu
oQ9znjr33A2QRNW60aFs5mUdJH8N74sDnsZY0ipq1DC5ToHv7BVYIUTJi7ouGVj9ryYPJLn06rPz
oVWGViFyUQZOiXfIm8hZirwlrpB3xAfkjHiDnBOfkfc0Z4t8oHyceaR8nPlI+Qy5IpbIJ+qJ+TPl
a+SaGGdKQT34XUn7Zyfk+/57ZNo/z6MJ979FO/BePzZzdfM+WByPGr1FV42F37u70aEqPt9axJfA
CmVuZHN0cmVhbQplbmRvYmoKCjkyIDAgb2JqCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBl
L0Jhc2VGb250L0VBQUFBQStEZWphVnVTYW5zTW9uby1Cb2xkCi9GaXJzdENoYXIgMAovTGFzdENo
YXIgMTkKL1dpZHRoc1s2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAy
IDYwMiA2MDIgNjAyIDYwMiA2MDIKNjAyIDYwMiA2MDIgNjAyIF0KL0ZvbnREZXNjcmlwdG9yIDkw
IDAgUgovVG9Vbmljb2RlIDkxIDAgUgo+PgplbmRvYmoKCjkzIDAgb2JqCjw8L0xlbmd0aCA5NCAw
IFIvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aDEgMjAxODA+PgpzdHJlYW0KeJzdfAtcVVW+/1p7
7b3Pk8M5hzcIbEB8JAKCqJjGAQFFeRjgs3wcOQdBgUNw8JFjYo6piVKjST5mNKcxc5p0qjHKBkux
d2OW1FTjlJM12ZB1u2qlsLq/tfY+vLKaz73//+d+PpfjOWfttdf6Pb6/59rw0VvX4EZm1IgIcpRV
O2u3HnhwI0LodYSwvWyZV/HT7fgtjD9CSEgur11c3elBBQiJVljz2OKqleUNs6wPw/VzCCm/rHA7
XZ/oxyUiFO+A+2MqYCKa1ujgegVcD66o9q74PBCx6z1w7a3ylDl/+Y+/nkZoCKPnrXauqP0E/1GC
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
30u1mU8YMbRRU1k/xXspNYQmXNB6KQylSw2i3homRjyz5I61m1tbRx2s//2jrJUSjrJmqnuDuPDg
wrLz3MbrAes4buPhqMZxE1SBcMUc6q9DR0N1TfaYzcrxyKbBzOZ+OFQMsxhlc7YiykG33AQytLPm
hMdRUvuFy13MB1g829J5ukl2RCZHJyvJMcmx+9A+vE/YZ9xn2h+8L2Rf6L6wfeGWeX2skzbW1wCm
sZSUpjYKaWopjsJC28SHfntn1YOP42eeufnJxt+/fv0/v8H3bJv//G3lx2ZvPjVxiCKk3lHrrn37
2eH53WsPuBa8sP/Yich7Vo4Z3Tp0aHFxyja1Xr8L2LJTBaszZqEFbRRxFBmFRsuQBhiaF6AlT2V2
e/c14UyXS+q41nGI5ZLbIZcM9eUSHcslOmzSo1DRboJc0tWZ0ptLUoPtQYGCLm6MPW20gG/neWQf
ZBTZ3kknfHieTuj8DL/48QX8ImCv1j1xKMhjQPGOAD3UPVb8HjMSEUViXaRsBOrwYjVQa195GSTQ
Aaql0K+rS6uG5CV6BvWrKUscY6PjI4LN/voIU1CYvygpBIUdjUBH416MeMn/qO1P8YPCwoP8sYj0
4UFxdhGFRwdNtCKTyKtKCvi0VlBuWFf4pFZbkkO0YjI2EfdUl+BIXzfMq8sIfC57y8y5nprbZm7J
vuW7g0u3OBxblh787pa22Vu+3bM1Imzrr7/dMrt527mvdtQ1e1u+PLddtVkFnSmuFRciO9rnyPEL
sfgJRDCaBIM5hBDBFmJHdmuIvxWxL5vVz+LnH2Kx+GVZA/yQxdCkO2mznAiwWf39WHdj19vzLDkB
zHEhZhim7CSSnu7Ls9IXOqtee0v8zdsk/RfQI42zsx4pXLQuswp6m94eZg7zG2IZ4j/OlmfLs8/x
M7KeSdYJOgtWa+tYnGrAqWRu4uSy2MR7b99efevtk2nRSZyPJ5/EFQ3H6bfjCwt3zW8XC7u2kyq1
l4mgL4i7pHqIxdGo1jFq2IjB4SHEYjZEjCaHQwyHzbahgw+PCIk6PGpE2lA/eRgkwRGBKNwv0RwY
M8I8MjHN+rfOrnYrndAOUcjNBjq2n2VT7R3tEJo+a/Lg9GuUGuVGXWNAY2BjkIzn9a3BAb3ByAKQ
ny3UrDpmbEhvirUHiZbGpUvXrl26tLHpvvh1xQ+9/fZD0+8ZfOT+q/QcnortY6rSkzNWjae76Ty8
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
yJ2ULKdkGSUNXrPU4E8aWjFyvC96zcT7vFhvJ/UOsY6SOyippcRTUyJ5dpCa6mFSTQmpHkaqKFma
QpZQUplCKq6RxcdIOSVuSlyUlC2KksooWYSs0qIo4qRkISULKJk/1yTNt5B5LnL7y+Q2uLgtkMw1
EfDo2YFkFiUzKZkRESbNSCGllJRQUkzJravJdEqKAkkhJQV4pFRASf4xMm0YmZoXKk0dS/Im2aW8
UDIlJ1SaQslkuJrsIrlwlXuM5ISSbJjIHksmZdmkSXYyqVVwOAxiVqa/lGUjWa0CgqtMh0XK9CeZ
rfh5uHJkmCWHhThacSNcZZgNUoaZZLRih8Ml3kLJRBBh4jUygZKbh5HxlKQDwOkuMm5UuDRuGhlL
yZiRgdIYStKmkdHJ4dLoaSQVvlIpSYGFKZSMgtujwklyOEmCUVIoSTQES4nHyMiEAGlkIBnZKjC2
CVablBBAEpi4O8QRN8VLIyi5CVbeFE+GC+Ol4ZQMo2QoJUP8SXxwlhSfQwb7kzhKYv39pVhKYpSR
Usxqoowk0dNIFHCOoiSSkkGA7SBKIsAqEWEknJIwSkIpCQEKIbkkOGikFJxFggKtUtBIEmglAbAu
IJDYYb+dEhtobssiVuBgtRGrip2/xSz5+xN/FTuLn1GymIlFxc4PsPMzEj/A7inRbCBm5ltjRRMl
RtDESIkhmOitREeJDKRlSqRAQkA5co0IMCGMJxgEwCMJshLcil3rt+AR/3d+0P+2AP/Dn0j0Xz9x
gX0KZW5kc3RyZWFtCmVuZG9iagoKOTQgMCBvYmoKMTE3NTYKZW5kb2JqCgo5NSAwIG9iago8PC9U
eXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnROYW1lL0ZBQUFBQStEZWphVnVTYW5zTW9ubwovRmxhZ3Mg
NQovRm9udEJCb3hbLTU1NyAtMzc0IDcxNiAxMDQxXS9JdGFsaWNBbmdsZSAwCi9Bc2NlbnQgOTI4
Ci9EZXNjZW50IC0yMzUKL0NhcEhlaWdodCAxMDQxCi9TdGVtViA4MAovRm9udEZpbGUyIDkzIDAg
Ugo+PgplbmRvYmoKCjk2IDAgb2JqCjw8L0xlbmd0aCA0NjgvRmlsdGVyL0ZsYXRlRGVjb2RlPj4K
c3RyZWFtCnicXZNNj9owEIbv+RU+bg+rxB+JdyWExMIiceiHyvYHhMTQSCWJTDjw7+t3XreVeiB6
HM+MnwyecnvYHcZhKb/FqTuGRZ2HsY/hNt1jF9QpXIax0Eb1Q7fklTy7azsXZco9Pm5LuB7G87Ra
FeX3tHdb4kM9bfrpFD4V5dfYhziMF/X0Y3tM6+N9nn+FaxgXVRXrterDOdX53M5f2msoJev50Kft
YXk8p5R/AR+POSgja02VburDbW67ENvxEopVVa3Var9fF2Hs/9urG6aczt3PNqZQnUKrylTrxEbY
GbAV9jXYCTev4Jq8BTdkB/ZkiX9hrtR5FbYSvxGuLfiN58r7Lc+VOjvGv4PfWecNvGd91NQVc1/A
9Peoqenf7MH0b+Q9/T3q6+yP+jr7azD9HXw0/Q2+V2d/OGj6+x2Y/l5isj96qOnvxCH7N2D6G5xr
6N/A39C/QU1Df486Jvt7cO4/6hj6Ozgb+luJp38tTH8nufSvJZ7+Ts6iv4O/yf7iRn8vufR36KHJ
/UcfbPbfgOlfw83Sv8Z/ZOlvcZalv8PdsPT3+HZLfyPxuf9SJ/efFzjfVFxlzNqfEVHdPcY0HjKQ
MheYiGEMf2d2nmZkye83ys7uegplbmRzdHJlYW0KZW5kb2JqCgo5NyAwIG9iago8PC9UeXBlL0Zv
bnQvU3VidHlwZS9UcnVlVHlwZS9CYXNlRm9udC9GQUFBQUErRGVqYVZ1U2Fuc01vbm8KL0ZpcnN0
Q2hhciAwCi9MYXN0Q2hhciA1NgovV2lkdGhzWzYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2
MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMgo2MDIgNjAyIDYwMiA2MDIgNjAyIDYw
MiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIKNjAyIDYwMiA2MDIgNjAy
IDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyCjYwMiA2MDIg
NjAyIDYwMiA2MDIgNjAyIDYwMiA2MDIgNjAyIF0KL0ZvbnREZXNjcmlwdG9yIDk1IDAgUgovVG9V
bmljb2RlIDk2IDAgUgo+PgplbmRvYmoKCjk4IDAgb2JqCjw8L0xlbmd0aCA5OSAwIFIvRmlsdGVy
L0ZsYXRlRGVjb2RlL0xlbmd0aDEgMjkzNj4+CnN0cmVhbQp4nO1WWW8bVRQ+d8ZLumZtSXGhdzot
FDLOVrZKKbiJnWZpE2M7ZQyRYOLeOJPaY+MlaipVKYilWKICCWhVtqRUQgiQrgNClUAIBDwgqBCL
8gBFIITghT6AxAsiKeeOJ4tKJP4AY8+93znnO9u159iFXJHBejgBMgQSaSPbQAjg9TkAqUtMFOjw
5lNuxD+iLjyaTaa/2TX7K4DUijdLpiZHn316/FsA1xm0XxhjxmFfd7AFwB1G+bYxVDw8f48X5ZMo
7xhLF46qpKcK5TdQrkplEoYGwwjdb+PiSRtHs/XyVizA/R7K1DLS7N1PvltA+RLevdlMvtAA41cA
1u0S9myOZRub/ngT5R6Um/EmYJePHQHx2PL/1zPwNDwBb0IvnIM4tMAtoEE7PAB3gwpB6AQFPoRP
4Ev4CM7DY/AcPATPwzRweBUCMAWPkBdgizznvsv9GtznruWgcajv5zeHdd43Eeeg3tXIPU363rit
Ox6n33BS39zo50Sj3/L1TX4uaf0RPaTGFT+XNbOR8kBYV3gg7ucuTbgqqnJM/953Me5Dnj7vuxz3
qQp3N+m8eyJuG+JxjOfWNgzf6+cerbydnMTs9OTwsI8DhvFq5R22KrCkqtLqaumeFj9fo9HjIsnH
GIZyeWevSrnrhj4OYb3ESgYV4A6fosR9JVuKVCSRcG2luhpfjYIR12n0K7ud9Rpt4d6mYZ3S/Wq3
MU51enikEkLwNojMmJqW6P5St6GWaEm106kiOA8gE/sTCh5gQkCfjXamvXONiuKjcyU8BnTqxWqG
nNoUm1atqXTOSa5SvT/qUziJ6yVsqFctqbTUW1IN4VBxEZuf14iPoQ7rrhUNCFB3VQMlsanG+AMr
OxGu9Ro2UXpcHFvfYbXk5TSsd/g+QEuD9hYESKCzk/RfqIEE2KsgD+lijejqCFavdvpwI2onnnwg
os8Cha5E5yyhBDdOE3wL27qYa5PGUYvngotffGsl/G6CdNg9hJPJC81lAi0ds15X9eX2ssd9qWNW
lhBCWRZqt1DPej03/t0xS4R+d61Su1OpVYISXdhBziyMuYf+ej3oughiIvyAs2TKNQ0bYCfMoqaJ
ey8u7oRvbOGuOb7uIr7L1aQJWtsUeuMNNbffptBrNtd4PbJ/4feXp6dfJtVkwyvnzr0yMy1dPz0z
MzP/88wMQGXijO7e7Tr95S/3V3f8Cduq7IfwM/+nz658KN1T2BnOQOyzcqGf99D81ArK1bNLkn6D
oGdY1A+VsUnsc9roxJBQlmCzUMuLvtvJS0txppZiEliLEnG8vDgdKlhG/VMOdiE+62A3ntV5B3tQ
X65gXBrhXQcTWANfO1iCWrjkYBlq4LKNic2fdzDyySYHS7CNXO9gGerI3kpnuChk0MGCn3WwBNeQ
SQfLUEsqNYumN5EZBxOoIu84GOsh7ztYhnryhY1duGwlPzlYxF9wsAR1ktfBMmyVtuDJENcalBek
Wx1MoEHe7WD8DOT9DpZRP+RgF2LTwW64Vj7uYA/qT+9K3ETbW1v30GjRogfNRC6Tn8wXWDpPe61E
89pYTygSosHBUJQODMZoSO+NxmjFp62N9hVTJrPogDHCCmvDkVBXKIjEDv+dyx7Roa6uUCi47DOY
MidMlqM9RiqVKQxmmRWdTI9kUhGWLKaM3LJiGR1iubyZsWhba3tz+7J6XypFY5PZTDJnZMfMBO1m
RqGYY/kDZrICHAJbsnRl0mmMs0TozliJAkbO08JSnAeLKyLEMsUCy9PR/+LRoXyRpVJ2SrZIGjXz
iTE8noNnkykzMXaEmQVmLbpYNnNfMX+Moc0qWsm8kUP7QCaXNtCyxOsuWscwtUljphMVgx5gFWus
WCgwivRF1qKBZs0XKbZbtMx/l0SPMCvNckeurgZJbMm0n6UZs5BuZLMsZY4fWVET7MJpexMO0nZo
xdceRFEogoX7QTDRloMM5GES7wIwSONO8YffQkszPrgx6IEQRPCmOF4HcY8iGkAUwz0EOnKjNl6Z
pw1fFPowTwpzMDvbABgwgriAUcN2xC68g07EDvDDnavmiMIQMgVXsFfLM2hnmbAz5VDuwUwpfGUw
1yBk7fxR7DCN+TOoj6AmaddmIH81xmq6Q3b0PGbJ2P20Yf52PKP2Vdn2bLSvK0logFWuC+TKo5w8
Cf28KqyXCTkVL3eLfw+8Bv8YNUQQnIhfh7/yw3qcNzQB/AOXR2kbCmVuZHN0cmVhbQplbmRvYmoK
Cjk5IDAgb2JqCjE2NTcKZW5kb2JqCgoxMDAgMCBvYmoKPDwvVHlwZS9Gb250RGVzY3JpcHRvci9G
b250TmFtZS9EQUFBQUErT3BlblN5bWJvbAovRmxhZ3MgNAovRm9udEJCb3hbLTE3OSAtMzEyIDEw
ODIgOTE2XS9JdGFsaWNBbmdsZSAwCi9Bc2NlbnQgNzk5Ci9EZXNjZW50IC0yMDAKL0NhcEhlaWdo
dCA5MTYKL1N0ZW1WIDgwCi9Gb250RmlsZTIgOTggMCBSCj4+CmVuZG9iagoKMTAxIDAgb2JqCjw8
L0xlbmd0aCAyMjIvRmlsdGVyL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnicXZBBa4QwEIXv+RVz3D0s
UaE3EYplwUO7pbY/ICajDdRJGOPBf98xa1voIYGX977kTXTbPXXkk37lYHtMMHpyjEtY2SIMOHlS
ZQXO23SovNvZRKWF7bcl4dzRGOpa6TfxlsQbnB5dGPCs9I0dsqcJTh9tL7pfY/zCGSlBoZoGHI5y
z7OJL2ZGnalL58T2absI8hd43yJClXV5r2KDwyUai2xoQlUXRQP19dooJPfPO4hhtJ+GJVlKsnpo
79njdKf2sX7agF2ZpUmePVfYH/eEv98TQ9ypvL4BivRtowplbmRzdHJlYW0KZW5kb2JqCgoxMDIg
MCBvYmoKPDwvVHlwZS9Gb250L1N1YnR5cGUvVHJ1ZVR5cGUvQmFzZUZvbnQvREFBQUFBK09wZW5T
eW1ib2wKL0ZpcnN0Q2hhciAwCi9MYXN0Q2hhciAxCi9XaWR0aHNbMzY1IDc5NCBdCi9Gb250RGVz
Y3JpcHRvciAxMDAgMCBSCi9Ub1VuaWNvZGUgMTAxIDAgUgo+PgplbmRvYmoKCjEwMyAwIG9iago8
PC9GMSA4MiAwIFIvRjIgODcgMCBSL0YzIDEwMiAwIFIvRjQgOTIgMCBSL0Y1IDk3IDAgUgo+Pgpl
bmRvYmoKCjEwNCAwIG9iago8PC9Gb250IDEwMyAwIFIKL1hPYmplY3Q8PC9JbTEzIDEzIDAgUi9J
bTIwIDIwIDAgUi9JbTI3IDI3IDAgUi9JbTM0IDM0IDAgUi9JbTQgNCAwIFI+PgovUHJvY1NldFsv
UERGL1RleHQvSW1hZ2VDL0ltYWdlSS9JbWFnZUJdCj4+CmVuZG9iagoKMSAwIG9iago8PC9UeXBl
L1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5
NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMg
MiAwIFI+PgplbmRvYmoKCjcgMCBvYmoKPDwvVHlwZS9QYWdlL1BhcmVudCA3NyAwIFIvUmVzb3Vy
Y2VzIDEwNCAwIFIvTWVkaWFCb3hbMCAwIDc5NCA1OTVdL0dyb3VwPDwvUy9UcmFuc3BhcmVuY3kv
Q1MvRGV2aWNlUkdCL0kgdHJ1ZT4+L0NvbnRlbnRzIDggMCBSPj4KZW5kb2JqCgoxMCAwIG9iago8
PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAg
Nzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29u
dGVudHMgMTEgMCBSPj4KZW5kb2JqCgoxNyAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAg
Ui9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5z
cGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMTggMCBSPj4KZW5kb2JqCgoy
NCAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRp
YUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0
cnVlPj4vQ29udGVudHMgMjUgMCBSPj4KZW5kb2JqCgozMSAwIG9iago8PC9UeXBlL1BhZ2UvUGFy
ZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8
PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMzIgMCBSPj4K
ZW5kb2JqCgozOCAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0
IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZp
Y2VSR0IvSSB0cnVlPj4vQ29udGVudHMgMzkgMCBSPj4KZW5kb2JqCgo0MSAwIG9iago8PC9UeXBl
L1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5
NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMg
NDIgMCBSPj4KZW5kb2JqCgo0NCAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNv
dXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5j
eS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNDUgMCBSPj4KZW5kb2JqCgo0NyAwIG9i
ago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFsw
IDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4v
Q29udGVudHMgNDggMCBSPj4KZW5kb2JqCgo1MCAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3
IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1Ry
YW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNTEgMCBSPj4KZW5kb2Jq
Cgo1MyAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9N
ZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0Iv
SSB0cnVlPj4vQ29udGVudHMgNTQgMCBSPj4KZW5kb2JqCgo1NiAwIG9iago8PC9UeXBlL1BhZ2Uv
UGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3Jv
dXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNTcgMCBS
Pj4KZW5kb2JqCgo1OSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMg
MTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9E
ZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNjAgMCBSPj4KZW5kb2JqCgo2MiAwIG9iago8PC9U
eXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0
IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVu
dHMgNjMgMCBSPj4KZW5kb2JqCgo2NSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9S
ZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFy
ZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNjYgMCBSPj4KZW5kb2JqCgo2OCAw
IG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJv
eFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVl
Pj4vQ29udGVudHMgNjkgMCBSPj4KZW5kb2JqCgo3MSAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50
IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAgUi9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9T
L1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VSR0IvSSB0cnVlPj4vQ29udGVudHMgNzIgMCBSPj4KZW5k
b2JqCgo3NCAwIG9iago8PC9UeXBlL1BhZ2UvUGFyZW50IDc3IDAgUi9SZXNvdXJjZXMgMTA0IDAg
Ui9NZWRpYUJveFswIDAgNzk0IDU5NV0vR3JvdXA8PC9TL1RyYW5zcGFyZW5jeS9DUy9EZXZpY2VS
R0IvSSB0cnVlPj4vQ29udGVudHMgNzUgMCBSPj4KZW5kb2JqCgoxMDUgMCBvYmoKPDwvQ291bnQg
MTkvRmlyc3QgMTA2IDAgUi9MYXN0IDEyNCAwIFIKPj4KZW5kb2JqCgoxMDYgMCBvYmoKPDwvQ291
bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMT4KL0Rlc3RbMSAwIFIv
WFlaIDAgNTk1IDBdL1BhcmVudCAxMDUgMCBSL05leHQgMTA3IDAgUj4+CmVuZG9iagoKMTA3IDAg
b2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQwMDY1MDAyMDAwMzI+Ci9E
ZXN0WzcgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1IDAgUi9QcmV2IDEwNiAwIFIvTmV4dCAx
MDggMCBSPj4KZW5kb2JqCgoxMDggMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMw
MDY5MDA2NDAwNjUwMDIwMDAzMz4KL0Rlc3RbMTAgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1
IDAgUi9QcmV2IDEwNyAwIFIvTmV4dCAxMDkgMCBSPj4KZW5kb2JqCgoxMDkgMCBvYmoKPDwvQ291
bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzND4KL0Rlc3RbMTcgMCBS
L1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1IDAgUi9QcmV2IDEwOCAwIFIvTmV4dCAxMTAgMCBSPj4K
ZW5kb2JqCgoxMTAgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAw
NjUwMDIwMDAzNT4KL0Rlc3RbMjQgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1IDAgUi9QcmV2
IDEwOSAwIFIvTmV4dCAxMTEgMCBSPj4KZW5kb2JqCgoxMTEgMCBvYmoKPDwvQ291bnQgMC9UaXRs
ZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzNj4KL0Rlc3RbMzEgMCBSL1hZWiAwIDU5
NSAwXS9QYXJlbnQgMTA1IDAgUi9QcmV2IDExMCAwIFIvTmV4dCAxMTIgMCBSPj4KZW5kb2JqCgox
MTIgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAz
Nz4KL0Rlc3RbMzggMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1IDAgUi9QcmV2IDExMSAwIFIv
TmV4dCAxMTMgMCBSPj4KZW5kb2JqCgoxMTMgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1
MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzOD4KL0Rlc3RbNDEgMCBSL1hZWiAwIDU5NSAwXS9QYXJl
bnQgMTA1IDAgUi9QcmV2IDExMiAwIFIvTmV4dCAxMTQgMCBSPj4KZW5kb2JqCgoxMTQgMCBvYmoK
PDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzOT4KL0Rlc3Rb
NDQgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1IDAgUi9QcmV2IDExMyAwIFIvTmV4dCAxMTUg
MCBSPj4KZW5kb2JqCgoxMTUgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5
MDA2NDAwNjUwMDIwMDAzMTAwMzA+Ci9EZXN0WzQ3IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDEw
NSAwIFIvUHJldiAxMTQgMCBSL05leHQgMTE2IDAgUj4+CmVuZG9iagoKMTE2IDAgb2JqCjw8L0Nv
dW50IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQwMDY1MDAyMDAwMzEwMDMxPgovRGVzdFs1
MCAwIFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxMDUgMCBSL1ByZXYgMTE1IDAgUi9OZXh0IDExNyAw
IFI+PgplbmRvYmoKCjExNyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkw
MDY0MDA2NTAwMjAwMDMxMDAzMj4KL0Rlc3RbNTMgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1
IDAgUi9QcmV2IDExNiAwIFIvTmV4dCAxMTggMCBSPj4KZW5kb2JqCgoxMTggMCBvYmoKPDwvQ291
bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMTAwMzM+Ci9EZXN0WzU2
IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDEwNSAwIFIvUHJldiAxMTcgMCBSL05leHQgMTE5IDAg
Uj4+CmVuZG9iagoKMTE5IDAgb2JqCjw8L0NvdW50IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAw
NjQwMDY1MDAyMDAwMzEwMDM0PgovRGVzdFs1OSAwIFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxMDUg
MCBSL1ByZXYgMTE4IDAgUi9OZXh0IDEyMCAwIFI+PgplbmRvYmoKCjEyMCAwIG9iago8PC9Db3Vu
dCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0MDA2NTAwMjAwMDMxMDAzNT4KL0Rlc3RbNjIg
MCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1IDAgUi9QcmV2IDExOSAwIFIvTmV4dCAxMjEgMCBS
Pj4KZW5kb2JqCgoxMjEgMCBvYmoKPDwvQ291bnQgMC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2
NDAwNjUwMDIwMDAzMTAwMzY+Ci9EZXN0WzY1IDAgUi9YWVogMCA1OTUgMF0vUGFyZW50IDEwNSAw
IFIvUHJldiAxMjAgMCBSL05leHQgMTIyIDAgUj4+CmVuZG9iagoKMTIyIDAgb2JqCjw8L0NvdW50
IDAvVGl0bGU8RkVGRjAwNTMwMDZDMDA2OTAwNjQwMDY1MDAyMDAwMzEwMDM3PgovRGVzdFs2OCAw
IFIvWFlaIDAgNTk1IDBdL1BhcmVudCAxMDUgMCBSL1ByZXYgMTIxIDAgUi9OZXh0IDEyMyAwIFI+
PgplbmRvYmoKCjEyMyAwIG9iago8PC9Db3VudCAwL1RpdGxlPEZFRkYwMDUzMDA2QzAwNjkwMDY0
MDA2NTAwMjAwMDMxMDAzOD4KL0Rlc3RbNzEgMCBSL1hZWiAwIDU5NSAwXS9QYXJlbnQgMTA1IDAg
Ui9QcmV2IDEyMiAwIFIvTmV4dCAxMjQgMCBSPj4KZW5kb2JqCgoxMjQgMCBvYmoKPDwvQ291bnQg
MC9UaXRsZTxGRUZGMDA1MzAwNkMwMDY5MDA2NDAwNjUwMDIwMDAzMTAwMzk+Ci9EZXN0Wzc0IDAg
Ui9YWVogMCA1OTUgMF0vUGFyZW50IDEwNSAwIFIvUHJldiAxMjMgMCBSPj4KZW5kb2JqCgo3NyAw
IG9iago8PC9UeXBlL1BhZ2VzCi9SZXNvdXJjZXMgMTA0IDAgUgovTWVkaWFCb3hbIDAgMCA3OTQg
NTk1IF0KL0tpZHNbIDEgMCBSIDcgMCBSIDEwIDAgUiAxNyAwIFIgMjQgMCBSIDMxIDAgUiAzOCAw
IFIgNDEgMCBSIDQ0IDAgUiA0NyAwIFIgNTAgMCBSIDUzIDAgUiA1NiAwIFIgNTkgMCBSIDYyIDAg
UiA2NSAwIFIKNjggMCBSIDcxIDAgUiA3NCAwIFIgXQovQ291bnQgMTk+PgplbmRvYmoKCjEyNSAw
IG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgNzcgMCBSCi9PcGVuQWN0aW9uWzEgMCBSIC9YWVog
bnVsbCBudWxsIDBdCi9PdXRsaW5lcyAxMDUgMCBSCj4+CmVuZG9iagoKMTI2IDAgb2JqCjw8L0F1
dGhvcjxGRUZGMDA2MTAwNjQwMDcyMDA2OTAwNjUwMDZFMDA2RTAwNjUwMDIwMDA3OTAwNjEwMDZF
MDA2MzAwNjUwMDc5PgovQ3JlYXRvcjxGRUZGMDA0OTAwNkQwMDcwMDA3MjAwNjUwMDczMDA3Mz4K
L1Byb2R1Y2VyPEZFRkYwMDRDMDA2OTAwNjIwMDcyMDA2NTAwNEYwMDY2MDA2NjAwNjkwMDYzMDA2
NTAwMjAwMDMzMDAyRTAwMzU+Ci9DcmVhdGlvbkRhdGUoRDoyMDEzMDMwNTE1MTUyMyswMScwMCcp
Pj4KZW5kb2JqCgp4cmVmCjAgMTI3CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDQwMDE4MiAwMDAw
MCBuIAowMDAwMDAwMDE5IDAwMDAwIG4gCjAwMDAwMDA0MTIgMDAwMDAgbiAKMDAwMDAwMDQzMiAw
MDAwMCBuIAowMDAwMDIxMTQ0IDAwMDAwIG4gCjAwMDAwMjIxMDggMDAwMDAgbiAKMDAwMDQwMDMy
NyAwMDAwMCBuIAowMDAwMDIyMTI4IDAwMDAwIG4gCjAwMDAwMjI1MTEgMDAwMDAgbiAKMDAwMDQw
MDQ3MiAwMDAwMCBuIAowMDAwMDIyNTMxIDAwMDAwIG4gCjAwMDAwMjI3NzggMDAwMDAgbiAKMDAw
MDAyMjc5OSAwMDAwMCBuIAowMDAwMDY5MTkxIDAwMDAwIG4gCjAwMDAwNjkyMTQgMDAwMDAgbiAK
MDAwMDA4MDQ1NSAwMDAwMCBuIAowMDAwNDAwNjE5IDAwMDAwIG4gCjAwMDAwODA0NzggMDAwMDAg
biAKMDAwMDA4MDcxOCAwMDAwMCBuIAowMDAwMDgwNzM5IDAwMDAwIG4gCjAwMDAxMzQ5MjYgMDAw
MDAgbiAKMDAwMDEzNDk0OSAwMDAwMCBuIAowMDAwMTQ4ODE1IDAwMDAwIG4gCjAwMDA0MDA3NjYg
MDAwMDAgbiAKMDAwMDE0ODgzOCAwMDAwMCBuIAowMDAwMTQ5MDg1IDAwMDAwIG4gCjAwMDAxNDkx
MDYgMDAwMDAgbiAKMDAwMDIyMjA4MyAwMDAwMCBuIAowMDAwMjIyMTA2IDAwMDAwIG4gCjAwMDAy
MzczMDcgMDAwMDAgbiAKMDAwMDQwMDkxMyAwMDAwMCBuIAowMDAwMjM3MzMwIDAwMDAwIG4gCjAw
MDAyMzc1NzIgMDAwMDAgbiAKMDAwMDIzNzU5MyAwMDAwMCBuIAowMDAwMzIxNTQ5IDAwMDAwIG4g
CjAwMDAzMjE1NzIgMDAwMDAgbiAKMDAwMDMzNzM3MSAwMDAwMCBuIAowMDAwNDAxMDYwIDAwMDAw
IG4gCjAwMDAzMzczOTQgMDAwMDAgbiAKMDAwMDMzNzk5MSAwMDAwMCBuIAowMDAwNDAxMjA3IDAw
MDAwIG4gCjAwMDAzMzgwMTIgMDAwMDAgbiAKMDAwMDMzODUwNyAwMDAwMCBuIAowMDAwNDAxMzU0
IDAwMDAwIG4gCjAwMDAzMzg1MjggMDAwMDAgbiAKMDAwMDMzODg5MSAwMDAwMCBuIAowMDAwNDAx
NTAxIDAwMDAwIG4gCjAwMDAzMzg5MTIgMDAwMDAgbiAKMDAwMDMzOTQxNSAwMDAwMCBuIAowMDAw
NDAxNjQ4IDAwMDAwIG4gCjAwMDAzMzk0MzYgMDAwMDAgbiAKMDAwMDM0MDQ2MiAwMDAwMCBuIAow
MDAwNDAxNzk1IDAwMDAwIG4gCjAwMDAzNDA0ODMgMDAwMDAgbiAKMDAwMDM0MTEyOSAwMDAwMCBu
IAowMDAwNDAxOTQyIDAwMDAwIG4gCjAwMDAzNDExNTAgMDAwMDAgbiAKMDAwMDM0MjM4OSAwMDAw
MCBuIAowMDAwNDAyMDg5IDAwMDAwIG4gCjAwMDAzNDI0MTEgMDAwMDAgbiAKMDAwMDM0MzA1OCAw
MDAwMCBuIAowMDAwNDAyMjM2IDAwMDAwIG4gCjAwMDAzNDMwNzkgMDAwMDAgbiAKMDAwMDM0Mzk3
MSAwMDAwMCBuIAowMDAwNDAyMzgzIDAwMDAwIG4gCjAwMDAzNDM5OTIgMDAwMDAgbiAKMDAwMDM0
NDYzNCAwMDAwMCBuIAowMDAwNDAyNTMwIDAwMDAwIG4gCjAwMDAzNDQ2NTUgMDAwMDAgbiAKMDAw
MDM0NTMzOSAwMDAwMCBuIAowMDAwNDAyNjc3IDAwMDAwIG4gCjAwMDAzNDUzNjAgMDAwMDAgbiAK
MDAwMDM0NTcxMyAwMDAwMCBuIAowMDAwNDAyODI0IDAwMDAwIG4gCjAwMDAzNDU3MzQgMDAwMDAg
biAKMDAwMDM0NTk5NyAwMDAwMCBuIAowMDAwNDA1NjY1IDAwMDAwIG4gCjAwMDAzNDYwMTggMDAw
MDAgbiAKMDAwMDM1NzQ1NiAwMDAwMCBuIAowMDAwMzU3NDc5IDAwMDAwIG4gCjAwMDAzNTc2ODIg
MDAwMDAgbiAKMDAwMDM1ODE1NyAwMDAwMCBuIAowMDAwMzU4NDg4IDAwMDAwIG4gCjAwMDAzNzUx
MDAgMDAwMDAgbiAKMDAwMDM3NTEyMyAwMDAwMCBuIAowMDAwMzc1MzE5IDAwMDAwIG4gCjAwMDAz
NzU4NzcgMDAwMDAgbiAKMDAwMDM3NjI3OSAwMDAwMCBuIAowMDAwMzgzNzEyIDAwMDAwIG4gCjAw
MDAzODM3MzQgMDAwMDAgbiAKMDAwMDM4MzkzNiAwMDAwMCBuIAowMDAwMzg0MzEzIDAwMDAwIG4g
CjAwMDAzODQ1NTYgMDAwMDAgbiAKMDAwMDM5NjM5OSAwMDAwMCBuIAowMDAwMzk2NDIyIDAwMDAw
IG4gCjAwMDAzOTY2MTkgMDAwMDAgbiAKMDAwMDM5NzE1NyAwMDAwMCBuIAowMDAwMzk3NTQzIDAw
MDAwIG4gCjAwMDAzOTkyODYgMDAwMDAgbiAKMDAwMDM5OTMwOCAwMDAwMCBuIAowMDAwMzk5NTAx
IDAwMDAwIG4gCjAwMDAzOTk3OTQgMDAwMDAgbiAKMDAwMDM5OTk1OCAwMDAwMCBuIAowMDAwNDAw
MDMzIDAwMDAwIG4gCjAwMDA0MDI5NzEgMDAwMDAgbiAKMDAwMDQwMzAzMSAwMDAwMCBuIAowMDAw
NDAzMTU1IDAwMDAwIG4gCjAwMDA0MDMyOTIgMDAwMDAgbiAKMDAwMDQwMzQzMCAwMDAwMCBuIAow
MDAwNDAzNTY4IDAwMDAwIG4gCjAwMDA0MDM3MDYgMDAwMDAgbiAKMDAwMDQwMzg0NCAwMDAwMCBu
IAowMDAwNDAzOTgyIDAwMDAwIG4gCjAwMDA0MDQxMjAgMDAwMDAgbiAKMDAwMDQwNDI1OCAwMDAw
MCBuIAowMDAwNDA0NDAwIDAwMDAwIG4gCjAwMDA0MDQ1NDIgMDAwMDAgbiAKMDAwMDQwNDY4NCAw
MDAwMCBuIAowMDAwNDA0ODI2IDAwMDAwIG4gCjAwMDA0MDQ5NjggMDAwMDAgbiAKMDAwMDQwNTEx
MCAwMDAwMCBuIAowMDAwNDA1MjUyIDAwMDAwIG4gCjAwMDA0MDUzOTQgMDAwMDAgbiAKMDAwMDQw
NTUzNiAwMDAwMCBuIAowMDAwNDA1ODkyIDAwMDAwIG4gCjAwMDA0MDU5OTYgMDAwMDAgbiAKdHJh
aWxlcgo8PC9TaXplIDEyNy9Sb290IDEyNSAwIFIKL0luZm8gMTI2IDAgUgovSUQgWyA8QzI5QTEx
QTg1QUUwRkNBQjdERjZCRjI3QTI0MzMwNTc+CjxDMjlBMTFBODVBRTBGQ0FCN0RGNkJGMjdBMjQz
MzA1Nz4gXQovRG9jQ2hlY2tzdW0gLzI2MzFBMTY1NzVBMzZBMTNCQjA1Mzg5QURDMjMwOTNCCj4+
CnN0YXJ0eHJlZgo0MDYyNTAKJSVFT0YK
------=_Part_10335680_1775289134.1362493287224--
3
2
Hi,
How to debug the code in frontend project? I mean, print out some debug message from "onSave" method in the java file of "VmListModel.java" which is located in uicommonweb project. Thanks in advance.
Best Regards,
Dave Chen
5
6
Hi,
Anyone needs ovirtbot in #ovirt to log the page edits on the ovirt wiki? Maybe it was better when it did not :)
Laszlo
2
2
I am adding the ability to display and update engine configuration parameters through the REST API.
Working on this has raised a lot of dilemmas. The one I want to focus on here is:
"Which configuration items do you think should be managed through the API?"
Possible answers (you can add different ones too):
1) All items (the entire contents of VDC_OPTIONS, mirrored in the engine enum: ConfigValues.java).
2) Only the items in engine enum ConfigurationValues.java (an enum which IIUC was created in the past for GUI, and contains a subset of the items in the engine enum ConfigValues.java)
3) Only the items exposed by engine-config-tool.
When I set out to work on this task, I was under the assumption that the API should show what the GUI shows (option 2). But since then I've found out that the set of items in engine-config-tool isn't identical to that in ConfigurationValues.java, and I've also heard the opinion that the API should show all values in vdc_options (option 1), because the clients of the API (& SDK, & CLI) are developers (as opposed to clients of GUI, which can be more though of as 'users').
I'd be glad to hear some opinions about this, especially PM input would be appreciated.
Thanks,
Ori.
3
3
Re: [Engine-devel] [oVirt Jenkins] ovirt_engine_find_bugs - Build # 3652 - Still Unstable!
by Eyal Edri 05 Mar '13
by Eyal Edri 05 Mar '13
05 Mar '13
New patches inserted NORMAL priority find bugs,
please review and fix asap:
http://jenkins.ovirt.org/job/ovirt_engine_find_bugs/changes
E.
----- Original Message -----
> From: "Jenkins oVirt Server" <jenkins(a)ovirt.org>
> To: eedri(a)redhat.com, engine-patches(a)ovirt.org, dcaro(a)redhat.com, asaf(a)redhat.com, amureini(a)redhat.com,
> gerrit2(a)gerrit.ovirt.org
> Sent: Sunday, March 3, 2013 3:06:08 PM
> Subject: [oVirt Jenkins] ovirt_engine_find_bugs - Build # 3652 - Still Unstable!
>
> Project: http://jenkins.ovirt.org/job/ovirt_engine_find_bugs/
> Build: http://jenkins.ovirt.org/job/ovirt_engine_find_bugs/3652/
> Build Number: 3652
> Build Status: Still Unstable
> Triggered By: Started by upstream project "ovirt_engine" build number
> 4,474
>
> -------------------------------------
> Changes Since Last Success:
> -------------------------------------
> Changes for Build #3647
> [gerrit2] webadmin: get HotPlugEnabled config value synchronously
>
> [gerrit2] webadmin: get LocalFSPath config value synchronously
>
>
> Changes for Build #3648
> [gerrit2] userportal: ignore the NetworkUser role
>
> [fkobzik] core: Non-plugin automatic invocation of console session
>
> [fkobzik] frontend: Non-plugin automatic invocation of console
> session
>
> [ecohen] userportal: fix memory leaks
>
> [ecohen] userportal: stop basic list provider on extended tab
>
> [ecohen] userportal: Optimize basic view
>
> [ecohen] userportal: Optimize extended view VM/Pool grid
>
> [ecohen] userportal: Optimization fixes
>
> [ecohen] userportal: fix memory leak when VM selected
>
> [ecohen] userportal: Set default VM/Pool refresh rate to 30s for IE8
>
> [ecohen] userportal: Fix UI update for Basic list item
>
>
> Changes for Build #3649
> [gerrit2] core: Disable unsupported fence agents in UI
>
>
> Changes for Build #3650
> [gerrit2] packaging: Updated psql calls not to ask password
>
> [amureini] core: Remove fixtures.out.xml
>
> [amureini] core: Singleton row mappers for EventDAO
>
> [amureini] core: StorageDoaminSynamic Singleton row mapper
>
> [amureini] core: StoragePoolDAO single RowMapper
>
> [amureini] core: Singleton row mapper for StoragePoolIsoMap
>
> [amureini] core: Singleton row mapper for DiskImageDynamic
>
> [amureini] core: Singleton row mapper for DiskLunMap
>
> [amureini] core: final RowMapper for ImageStorageDomainMaoDao
>
> [amureini] core: Singleton row mapper for VdcOption
>
> [amureini] core: Use VdsRowMapper static instance
>
> [amureini] core: Singleton row mapper for VdsDynamic
>
> [amureini] core: Singleton row mapper for VdsStatistics
>
>
> Changes for Build #3651
>
> Changes for Build #3652
> [nslomian] webadmin: add isCancel to command in quota
>
> [gerrit2] core:Upgrade from 3.1 to 3.2 fails
>
> [gerrit2] core: change shared-lock msg of AddVmFromTemplate
>
> [amureini] core: ImagesHandler: filterImageDisks readability
>
> [amureini] core: ImageHandlerTest - add missing annotation
>
>
>
>
> -----------------
> Failed Tests:
> -----------------
> No tests ran.
>
> ------------------
> Build Log:
> ------------------
> [...truncated 36768 lines...]
> [java] Warnings generated: 12
> [INFO] Done FindBugs Analysis....
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building oVirt Server EAR 3.3.0-SNAPSHOT
> [INFO]
> ------------------------------------------------------------------------
> [WARNING] The POM for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 is
> missing, no dependency information available
> [WARNING] Failed to retrieve plugin descriptor for
> org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin
> org.eclipse.m2e:lifecycle-mapping:1.0.0 or one of its dependencies
> could not be resolved: Failed to read artifact descriptor for
> org.eclipse.m2e:lifecycle-mapping:jar:1.0.0
> [INFO]
> [INFO] --- maven-ear-plugin:2.8:generate-application-xml
> (default-generate-application-xml) @ engine-server-ear ---
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/2.1.2/ple…
> 4 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/2.1.2/ple…
> (4 KB at 27.3 KB/sec)
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.2/plexus…
> 3 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.2/plexus…
> (3 KB at 59.8 KB/sec)
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/3.1/plexus-3.1.pom
> 4 KB
> 8 KB
> 12 KB
> 15 KB
> 19 KB
> 19 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/3.1/plexus-3.1.pom
> (19 KB at 586.4 KB/sec)
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-io/2.0.4/plexus-io…
> 2 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-io/2.0.4/plexus-io…
> (2 KB at 188.0 KB/sec)
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/2.1.2/ple…
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-io/2.0.4/plexus-io…
> 4 KB
> 8 KB
> 12 KB
> 15 KB
> 19 KB
> 23 KB
> 27 KB
> 31 KB
> 35 KB
> 39 KB
> 43 KB
> 43 KB
> 47 KB
> 50 KB
> 54 KB
> 57 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-io/2.0.4/plexus-io…
> (57 KB at 2995.4 KB/sec)
> 4 KB
> 8 KB
> 12 KB
> 16 KB
> 19 KB
> 23 KB
> 23 KB
> 27 KB
> 31 KB
> 35 KB
> 39 KB
> 40 KB
> 44 KB
> 44 KB
> 48 KB
> 52 KB
> 56 KB
> 60 KB
> 64 KB
> 67 KB
> 71 KB
> 75 KB
> 76 KB
> 80 KB
> 82 KB
> 86 KB
> 90 KB
> 94 KB
> 98 KB
> 102 KB
> 104 KB
> 108 KB
> 112 KB
> 116 KB
> 120 KB
> 124 KB
> 128 KB
> 132 KB
> 136 KB
> 140 KB
> 144 KB
> 148 KB
> 152 KB
> 156 KB
> 160 KB
> 164 KB
> 168 KB
> 172 KB
> 176 KB
> 180 KB
> 181 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/2.1.2/ple…
> (181 KB at 1298.7 KB/sec)
> [INFO] Generating application.xml
> [INFO]
> [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources)
> @ engine-server-ear ---
> [INFO] Using 'UTF-8' encoding to copy filtered resources.
> [INFO] skip non existing resourceDirectory
> /ephemeral0/ovirt_engine_find_bugs/ear/src/main/java
> [INFO] Copying 1 resource
> [INFO]
> [INFO] --- maven-ear-plugin:2.8:ear (default-ear) @ engine-server-ear
> ---
> [INFO] Copying artifact
> [war:org.ovirt.engine.core:root-war:3.3.0-SNAPSHOT] to [root.war]
> (unpacked)
> [INFO] Copying artifact
> [war:org.ovirt.engine.api:restapi-webapp:3.3.0-SNAPSHOT] to
> [restapi.war] (unpacked)
> [INFO] Copying artifact
> [war:org.ovirt.engine.ui:userportal:3.3.0-SNAPSHOT] to
> [userportal.war] (unpacked)
> [INFO] Copying artifact
> [war:org.ovirt.engine.ui:webadmin:3.3.0-SNAPSHOT] to [webadmin.war]
> (unpacked)
> [INFO] Copying artifact
> [ejb:org.ovirt.engine.core:scheduler:3.3.0-SNAPSHOT] to
> [scheduler.jar]
> [INFO] Copying artifact
> [ejb:org.ovirt.engine.core:bll:3.3.0-SNAPSHOT] to [bll.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:vdsbroker:3.3.0-SNAPSHOT] to
> [lib/vdsbroker.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:compat:3.3.0-SNAPSHOT] to
> [lib/compat.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:common:3.3.0-SNAPSHOT] to
> [lib/common.jar]
> [INFO] Copying artifact
> [jar:org.hibernate:hibernate-validator:4.0.2.GA] to
> [lib/hibernate-validator.jar]
> [INFO] Copying artifact
> [jar:javax.validation:validation-api:1.0.0.GA] to
> [lib/validation-api.jar]
> [INFO] Copying artifact [jar:javax.xml.bind:jaxb-api:2.1] to
> [lib/jaxb-api.jar]
> [INFO] Copying artifact [jar:javax.xml.stream:stax-api:1.0-2] to
> [lib/stax-api.jar]
> [INFO] Copying artifact [jar:javax.activation:activation:1.1] to
> [lib/activation.jar]
> [INFO] Copying artifact [jar:com.sun.xml.bind:jaxb-impl:2.1.3] to
> [lib/jaxb-impl.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:utils:3.3.0-SNAPSHOT] to [lib/utils.jar]
> [INFO] Copying artifact
> [jar:commons-beanutils:commons-beanutils:1.8.2] to
> [lib/commons-beanutils.jar]
> [INFO] Copying artifact [jar:org.apache.mina:mina-core:2.0.1] to
> [lib/mina-core.jar]
> [INFO] Copying artifact [jar:org.apache.sshd:sshd-core:0.7.0] to
> [lib/sshd-core.jar]
> [INFO] Copying artifact [jar:org.ovirt.otopi:otopi:1.0.0] to
> [lib/otopi.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.ovirt-host-deploy:ovirt-host-deploy:1.0.0] to
> [lib/ovirt-host-deploy.jar]
> [INFO] Copying artifact
> [jar:org.apache.commons:commons-compress:1.4.1] to
> [lib/commons-compress.jar]
> [INFO] Copying artifact [jar:org.tukaani:xz:1.0] to [lib/xz.jar]
> [INFO] Copying artifact [jar:commons-lang:commons-lang:2.6] to
> [lib/commons-lang.jar]
> [INFO] Copying artifact [jar:commons-codec:commons-codec:1.4] to
> [lib/commons-codec.jar]
> [INFO] Copying artifact [jar:org.apache.xmlrpc:xmlrpc-client:3.1.3]
> to [lib/xmlrpc-client.jar]
> [INFO] Copying artifact [jar:org.apache.xmlrpc:xmlrpc-common:3.1.3]
> to [lib/xmlrpc-common.jar]
> [INFO] Copying artifact
> [jar:org.apache.ws.commons.util:ws-commons-util:1.0.2] to
> [lib/ws-commons-util.jar]
> [INFO] Copying artifact [jar:xml-apis:xml-apis:1.0.b2] to
> [lib/xml-apis.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:dal:3.3.0-SNAPSHOT] to [lib/dal.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-jdbc:3.1.1.RELEASE] to
> [lib/spring-jdbc.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-tx:3.1.1.RELEASE] to
> [lib/spring-tx.jar]
> [INFO] Copying artifact
> [jar:org.springframework.ldap:spring-ldap-core:1.3.1.RELEASE] to
> [lib/spring-ldap-core.jar]
> [INFO] Copying artifact
> [jar:commons-httpclient:commons-httpclient:3.1] to
> [lib/commons-httpclient.jar]
> [INFO] Copying artifact
> [jar:commons-collections:commons-collections:3.1] to
> [lib/commons-collections.jar]
> [INFO] Copying artifact [jar:org.quartz-scheduler:quartz:2.1.2] to
> [lib/quartz.jar]
> [INFO] Copying artifact [jar:c3p0:c3p0:0.9.1.1] to [lib/c3p0.jar]
> [INFO] Copying artifact [jar:org.slf4j:slf4j-api:1.6.1] to
> [lib/slf4j-api.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:searchbackend:3.3.0-SNAPSHOT] to
> [lib/searchbackend.jar]
> [INFO] Copying artifact
> [jar:org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec:1.0.0.Final]
> to [lib/jboss-interceptors-api_1.1_spec.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-core:3.1.1.RELEASE] to
> [lib/spring-core.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-asm:3.1.1.RELEASE] to
> [lib/spring-asm.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-beans:3.1.1.RELEASE] to
> [lib/spring-beans.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-context:3.1.1.RELEASE] to
> [lib/spring-context.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-aop:3.1.1.RELEASE] to
> [lib/spring-aop.jar]
> [INFO] Copying artifact [jar:aopalliance:aopalliance:1.0] to
> [lib/aopalliance.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-expression:3.1.1.RELEASE] to
> [lib/spring-expression.jar]
> [INFO] Copy ear sources to
> /ephemeral0/ovirt_engine_find_bugs/ear/target/engine
> [INFO] Could not find manifest file:
> /ephemeral0/ovirt_engine_find_bugs/ear/target/engine/META-INF/MANIFEST.MF
> - Generating one
> [INFO] Building jar:
> /ephemeral0/ovirt_engine_find_bugs/ear/target/engine.ear
> [INFO]
> [INFO] --- maven-install-plugin:2.3.1:install (default-install) @
> engine-server-ear ---
> [INFO] Installing
> /ephemeral0/ovirt_engine_find_bugs/ear/target/engine.ear to
> /home/jenkins/workspace/ovirt_engine_find_bugs/.repository/org/ovirt/engine/engine-server-ear/3.3.0-SNAPSHOT/engine-server-ear-3.3.0-SNAPSHOT.ear
> [INFO] Installing /ephemeral0/ovirt_engine_find_bugs/ear/pom.xml to
> /home/jenkins/workspace/ovirt_engine_find_bugs/.repository/org/ovirt/engine/engine-server-ear/3.3.0-SNAPSHOT/engine-server-ear-3.3.0-SNAPSHOT.pom
> [INFO]
> [INFO] --- findbugs-maven-plugin:2.5.2:findbugs (default-cli) @
> engine-server-ear ---
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO]
> [INFO] ovirt-root ........................................ SUCCESS
> [12.875s]
> [INFO] oVirt Build Tools root ............................ SUCCESS
> [0.064s]
> [INFO] oVirt checkstyle .................................. SUCCESS
> [4.433s]
> [INFO] oVirt JBoss Modules Maven Plugin .................. SUCCESS
> [30.118s]
> [INFO] oVirt Checkstyle Checks ........................... SUCCESS
> [17.939s]
> [INFO] oVirt Modules - backend ........................... SUCCESS
> [0.032s]
> [INFO] oVirt Manager ..................................... SUCCESS
> [0.038s]
> [INFO] oVirt DB Scripts .................................. SUCCESS
> [0.598s]
> [INFO] oVirt Engine dependencies ......................... SUCCESS
> [4.554s]
> [INFO] oVirt Modules - manager ........................... SUCCESS
> [1.063s]
> [INFO] CSharp Compatibility .............................. SUCCESS
> [28.914s]
> [INFO] Common Code ....................................... SUCCESS
> [1:23.325s]
> [INFO] Common utilities .................................. SUCCESS
> [53.754s]
> [INFO] Data Access Layer ................................. SUCCESS
> [1:01.992s]
> [INFO] engine beans ...................................... SUCCESS
> [0.150s]
> [INFO] engine scheduler bean ............................. SUCCESS
> [20.642s]
> [INFO] Vds broker ........................................ SUCCESS
> [1:10.185s]
> [INFO] Search Backend .................................... SUCCESS
> [33.750s]
> [INFO] Backend Logic @Service bean ....................... SUCCESS
> [2:02.847s]
> [INFO] oVirt RESTful API Backend Integration ............. SUCCESS
> [6.359s]
> [INFO] oVirt RESTful API interface ....................... SUCCESS
> [0.116s]
> [INFO] oVirt Engine API Definition ....................... SUCCESS
> [1:06.571s]
> [INFO] oVirt Engine API Commom Parent POM ................ SUCCESS
> [0.173s]
> [INFO] oVirt Engine API Common JAX-RS .................... SUCCESS
> [31.871s]
> [INFO] oVirt RESTful API Backend Integration Type Mappers SUCCESS
> [38.586s]
> [INFO] oVirt RESTful API Backend Integration JAX-RS Resources
> SUCCESS [1:09.994s]
> [INFO] oVirt RESTful API Backend Integration Webapp ...... SUCCESS
> [0.934s]
> [INFO] oVirt Engine Web Root ............................. SUCCESS
> [21.532s]
> [INFO] oVirt Engine Tools ................................ SUCCESS
> [38.078s]
> [INFO] oVirt Modules :: Frontend ......................... SUCCESS
> [0.029s]
> [INFO] oVirt Modules :: Webadmin ......................... SUCCESS
> [0.024s]
> [INFO] oVirt Modules - ui ................................ SUCCESS
> [0.292s]
> [INFO] Extensions for GWT ................................ SUCCESS
> [21.585s]
> [INFO] UI Utils Compatibility (for UICommon) ............. SUCCESS
> [27.833s]
> [INFO] Frontend for GWT UI Projects ...................... SUCCESS
> [30.205s]
> [INFO] UICommonWeb ....................................... SUCCESS
> [1:57.923s]
> [INFO] oVirt GWT UI common infrastructure ................ SUCCESS
> [1:24.085s]
> [INFO] WebAdmin .......................................... SUCCESS
> [1:39.023s]
> [INFO] UserPortal ........................................ SUCCESS
> [49.974s]
> [INFO] oVirt Server EAR .................................. SUCCESS
> [2.999s]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 21:01.931s
> [INFO] Finished at: Sun Mar 03 08:06:13 EST 2013
> [INFO] Final Memory: 238M/779M
> [INFO]
> ------------------------------------------------------------------------
> [FINDBUGS] Collecting findbugs analysis files...
> [FINDBUGS] Finding all files that match the pattern
> **/findbugsXml.xml
> [FINDBUGS] Parsing 23 files in
> /home/jenkins/workspace/ovirt_engine_find_bugs
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/beans/scheduler/target/findbugsXml.xml
> of module with 0 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/bll/target/findbugsXml.xml
> of module with 251 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/common/target/findbugsXml.xml
> of module with 245 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/compat/target/findbugsXml.xml
> of module with 25 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/dal/target/findbugsXml.xml
> of module with 1 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/restapi/interface/common/jaxrs/target/findbugsXml.xml
> of module with 15 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/restapi/interface/definition/target/findbugsXml.xml
> of module with 1 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/restapi/jaxrs/target/findbugsXml.xml
> of module with 28 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/restapi/types/target/findbugsXml.xml
> of module with 13 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/root/target/findbugsXml.xml
> of module with 3 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/searchbackend/target/findbugsXml.xml
> of module with 11 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/utils/target/findbugsXml.xml
> of module with 71 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/vdsbroker/target/findbugsXml.xml
> of module with 230 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/tools/target/findbugsXml.xml
> of module with 30 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/build-tools-root/jboss-modules-maven-plugin/target/findbugsXml.xml
> of module with 1 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/build-tools-root/ovirt-checkstyle-extension/target/findbugsXml.xml
> of module with 0 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/frontend/target/findbugsXml.xml
> of module with 38 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/gwt-common/target/findbugsXml.xml
> of module with 84 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/gwt-extension/target/findbugsXml.xml
> of module with 0 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/uicommonweb/target/findbugsXml.xml
> of module with 649 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/uicompat/target/findbugsXml.xml
> of module with 50 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/userportal-gwtp/target/findbugsXml.xml
> of module with 12 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/webadmin/target/findbugsXml.xml
> of module with 68 warnings.
> [FINDBUGS] Computing warning deltas based on reference build #3646
> Build step 'Publish FindBugs analysis results' changed build result
> to UNSTABLE
> IRC notifier plugin: Sending notification to: #ovirt-jenkins
> Email was triggered for: Unstable
> Sending email for trigger: Unstable
>
3
3
[Engine-devel] Local configuration moved from /etc/sysconfig/ovirt-engine to /etc/ovirt-engine/engine.conf
by Juan Hernandez 04 Mar '13
by Juan Hernandez 04 Mar '13
04 Mar '13
Hello,
I just merged the a change [1] that moves the local configuration from
the /etc/sysconfig/ovirt-engine file to /etc/ovirt-engine/engine.conf.
If you are using the engine-upgrade utility to upgrade your installation
then it should move the configuration automatically during the next
upgrade. If you are not using engine-upgrade then you will have to move
manually whatever you have in /etc/sysconfig/ovirt-engine to
/etc/ovirt-engine/engine.conf.
Let me know if you find issues.
[1] http://gerrit.ovirt.org/7591
Regards,
Juan Hernandez
--
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
1
0
Re: [Engine-devel] [oVirt Jenkins] ovirt_engine_find_bugs - Build # 3653 - Still Unstable!
by Eyal Edri 03 Mar '13
by Eyal Edri 03 Mar '13
03 Mar '13
the following is the 2 new bugs added by the followings commits:
http://jenkins.ovirt.org/view/00%20-%20Unstable%20Jobs/job/ovirt_engine_fin…
http://jenkins.ovirt.org/view/00%20-%20Unstable%20Jobs/job/ovirt_engine_fin…
looks like cause by the following commit: http://gerrit.ovirt.org/gitweb?p=ovirt-engine.git&a=commit&h=ecdfea9300cc27…
other commits in the same build:
userportal: ignore the NetworkUser role (detail / gitweb)
core: Non-plugin automatic invocation of console session (detail / gitweb)
frontend: Non-plugin automatic invocation of console session (detail / gitweb)
userportal: fix memory leaks (detail / gitweb)
userportal: stop basic list provider on extended tab (detail / gitweb)
userportal: Optimize basic view (detail / gitweb)
userportal: Optimize extended view VM/Pool grid (detail / gitweb)
userportal: Optimization fixes (detail / gitweb)
userportal: fix memory leak when VM selected (detail / gitweb)
userportal: Set default VM/Pool refresh rate to 30s for IE8 (detail / gitweb)
userportal: Fix UI update for Basic list item (detail / gitweb)
----- Original Message -----
> From: "Jenkins oVirt Server" <jenkins(a)ovirt.org>
> To: eedri(a)redhat.com, engine-patches(a)ovirt.org, dcaro(a)redhat.com, asaf(a)redhat.com, oourfali(a)redhat.com
> Sent: Sunday, March 3, 2013 4:57:54 PM
> Subject: [oVirt Jenkins] ovirt_engine_find_bugs - Build # 3653 - Still Unstable!
>
> Project: http://jenkins.ovirt.org/job/ovirt_engine_find_bugs/
> Build: http://jenkins.ovirt.org/job/ovirt_engine_find_bugs/3653/
> Build Number: 3653
> Build Status: Still Unstable
> Triggered By: Started by upstream project "ovirt_engine" build number
> 4,475
>
> -------------------------------------
> Changes Since Last Success:
> -------------------------------------
> Changes for Build #3647
> [gerrit2] webadmin: get HotPlugEnabled config value synchronously
>
> [gerrit2] webadmin: get LocalFSPath config value synchronously
>
>
> Changes for Build #3648
> [gerrit2] userportal: ignore the NetworkUser role
>
> [fkobzik] core: Non-plugin automatic invocation of console session
>
> [fkobzik] frontend: Non-plugin automatic invocation of console
> session
>
> [ecohen] userportal: fix memory leaks
>
> [ecohen] userportal: stop basic list provider on extended tab
>
> [ecohen] userportal: Optimize basic view
>
> [ecohen] userportal: Optimize extended view VM/Pool grid
>
> [ecohen] userportal: Optimization fixes
>
> [ecohen] userportal: fix memory leak when VM selected
>
> [ecohen] userportal: Set default VM/Pool refresh rate to 30s for IE8
>
> [ecohen] userportal: Fix UI update for Basic list item
>
>
> Changes for Build #3649
> [gerrit2] core: Disable unsupported fence agents in UI
>
>
> Changes for Build #3650
> [gerrit2] packaging: Updated psql calls not to ask password
>
> [amureini] core: Remove fixtures.out.xml
>
> [amureini] core: Singleton row mappers for EventDAO
>
> [amureini] core: StorageDoaminSynamic Singleton row mapper
>
> [amureini] core: StoragePoolDAO single RowMapper
>
> [amureini] core: Singleton row mapper for StoragePoolIsoMap
>
> [amureini] core: Singleton row mapper for DiskImageDynamic
>
> [amureini] core: Singleton row mapper for DiskLunMap
>
> [amureini] core: final RowMapper for ImageStorageDomainMaoDao
>
> [amureini] core: Singleton row mapper for VdcOption
>
> [amureini] core: Use VdsRowMapper static instance
>
> [amureini] core: Singleton row mapper for VdsDynamic
>
> [amureini] core: Singleton row mapper for VdsStatistics
>
>
> Changes for Build #3651
>
> Changes for Build #3652
> [nslomian] webadmin: add isCancel to command in quota
>
> [gerrit2] core:Upgrade from 3.1 to 3.2 fails
>
> [gerrit2] core: change shared-lock msg of AddVmFromTemplate
>
> [amureini] core: ImagesHandler: filterImageDisks readability
>
> [amureini] core: ImageHandlerTest - add missing annotation
>
>
> Changes for Build #3653
> [oourfali] rest: after creating a REST session request without Prefer
> returns 401
>
>
>
>
> -----------------
> Failed Tests:
> -----------------
> No tests ran.
>
> ------------------
> Build Log:
> ------------------
> [...truncated 36666 lines...]
> [INFO] Installing
> /ephemeral0/ovirt_engine_find_bugs/frontend/webadmin/modules/userportal-gwtp/pom.xml
> to
> /home/jenkins/workspace/ovirt_engine_find_bugs/.repository/org/ovirt/engine/ui/userportal/3.3.0-SNAPSHOT/userportal-3.3.0-SNAPSHOT.pom
> [INFO]
> [INFO] --- findbugs-maven-plugin:2.5.2:findbugs (default-cli) @
> userportal ---
> [INFO] Fork Value is true
> [java] Warnings generated: 12
> [INFO] Done FindBugs Analysis....
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building oVirt Server EAR 3.3.0-SNAPSHOT
> [INFO]
> ------------------------------------------------------------------------
> [WARNING] The POM for org.eclipse.m2e:lifecycle-mapping:jar:1.0.0 is
> missing, no dependency information available
> [WARNING] Failed to retrieve plugin descriptor for
> org.eclipse.m2e:lifecycle-mapping:1.0.0: Plugin
> org.eclipse.m2e:lifecycle-mapping:1.0.0 or one of its dependencies
> could not be resolved: Failed to read artifact descriptor for
> org.eclipse.m2e:lifecycle-mapping:jar:1.0.0
> [INFO]
> [INFO] --- maven-ear-plugin:2.8:generate-application-xml
> (default-generate-application-xml) @ engine-server-ear ---
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/2.1.2/ple…
> 4 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/2.1.2/ple…
> (4 KB at 39.2 KB/sec)
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.2/plexus…
> 3 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.0.2/plexus…
> (3 KB at 129.1 KB/sec)
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/3.1/plexus-3.1.pom
> 4 KB
> 8 KB
> 12 KB
> 15 KB
> 19 KB
> 19 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus/3.1/plexus-3.1.pom
> (19 KB at 1652.6 KB/sec)
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-io/2.0.4/plexus-io…
> 2 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-io/2.0.4/plexus-io…
> (2 KB at 211.5 KB/sec)
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/2.1.2/ple…
> Downloading:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-io/2.0.4/plexus-io…
> 4 KB
> 8 KB
> 12 KB
> 16 KB
> 19 KB
> 23 KB
> 27 KB
> 31 KB
> 4 KB 31 KB
> 4 KB 35 KB
> 4 KB 39 KB
> 4 KB 43 KB
> 8 KB 43 KB
> 8 KB 44 KB
> 8 KB 48 KB
> 8 KB 49 KB
> 8 KB 53 KB
> 8 KB 57 KB
> 8 KB 61 KB
> 8 KB 63 KB
> 12 KB 63 KB
> 16 KB 63 KB
> 20 KB 63 KB
> 24 KB 63 KB
> 28 KB 63 KB
> 32 KB 63 KB
> 36 KB 63 KB
> 40 KB 63 KB
> 44 KB 63 KB
> 48 KB 63 KB
> 52 KB 63 KB
> 56 KB 63 KB
> 57 KB 63 KB
> 57 KB 67 KB
> 57 KB 71 KB
> 57 KB 75 KB
> 57 KB 79 KB
> 57 KB 83 KB
> 57 KB 87 KB
> 57 KB 91 KB
> 57 KB 95 KB
> 57 KB 99 KB
> 57 KB 103 KB
> 57 KB 107 KB
> 57 KB 111 KB
> 57 KB 115 KB
> 57 KB 119 KB
> 57 KB 123 KB
> 57 KB 127 KB
> 57 KB 131 KB
> 57 KB 135 KB
> 57 KB 139 KB
> 57 KB 143 KB
> 57 KB 147 KB
> 57 KB 151 KB
> 57 KB 155 KB
> 57 KB 159 KB
> 57 KB 163 KB
> 57 KB 167 KB
> 57 KB 171 KB
>
> 175 KB
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-io/2.0.4/plexus-io…
> (57 KB at 2107.9 KB/sec)
> 179 KB
> 181 KB
>
> Downloaded:
> http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-archiver/2.1.2/ple…
> (181 KB at 5641.4 KB/sec)
> [INFO] Generating application.xml
> [INFO]
> [INFO] --- maven-resources-plugin:2.4.3:resources (default-resources)
> @ engine-server-ear ---
> [INFO] Using 'UTF-8' encoding to copy filtered resources.
> [INFO] skip non existing resourceDirectory
> /ephemeral0/ovirt_engine_find_bugs/ear/src/main/java
> [INFO] Copying 1 resource
> [INFO]
> [INFO] --- maven-ear-plugin:2.8:ear (default-ear) @ engine-server-ear
> ---
> [INFO] Copying artifact
> [war:org.ovirt.engine.core:root-war:3.3.0-SNAPSHOT] to [root.war]
> (unpacked)
> [INFO] Copying artifact
> [war:org.ovirt.engine.api:restapi-webapp:3.3.0-SNAPSHOT] to
> [restapi.war] (unpacked)
> [INFO] Copying artifact
> [war:org.ovirt.engine.ui:userportal:3.3.0-SNAPSHOT] to
> [userportal.war] (unpacked)
> [INFO] Copying artifact
> [war:org.ovirt.engine.ui:webadmin:3.3.0-SNAPSHOT] to [webadmin.war]
> (unpacked)
> [INFO] Copying artifact
> [ejb:org.ovirt.engine.core:scheduler:3.3.0-SNAPSHOT] to
> [scheduler.jar]
> [INFO] Copying artifact
> [ejb:org.ovirt.engine.core:bll:3.3.0-SNAPSHOT] to [bll.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:vdsbroker:3.3.0-SNAPSHOT] to
> [lib/vdsbroker.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:compat:3.3.0-SNAPSHOT] to
> [lib/compat.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:common:3.3.0-SNAPSHOT] to
> [lib/common.jar]
> [INFO] Copying artifact
> [jar:org.hibernate:hibernate-validator:4.0.2.GA] to
> [lib/hibernate-validator.jar]
> [INFO] Copying artifact
> [jar:javax.validation:validation-api:1.0.0.GA] to
> [lib/validation-api.jar]
> [INFO] Copying artifact [jar:javax.xml.bind:jaxb-api:2.1] to
> [lib/jaxb-api.jar]
> [INFO] Copying artifact [jar:javax.xml.stream:stax-api:1.0-2] to
> [lib/stax-api.jar]
> [INFO] Copying artifact [jar:javax.activation:activation:1.1] to
> [lib/activation.jar]
> [INFO] Copying artifact [jar:com.sun.xml.bind:jaxb-impl:2.1.3] to
> [lib/jaxb-impl.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:utils:3.3.0-SNAPSHOT] to [lib/utils.jar]
> [INFO] Copying artifact
> [jar:commons-beanutils:commons-beanutils:1.8.2] to
> [lib/commons-beanutils.jar]
> [INFO] Copying artifact [jar:org.apache.mina:mina-core:2.0.1] to
> [lib/mina-core.jar]
> [INFO] Copying artifact [jar:org.apache.sshd:sshd-core:0.7.0] to
> [lib/sshd-core.jar]
> [INFO] Copying artifact [jar:org.ovirt.otopi:otopi:1.0.0] to
> [lib/otopi.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.ovirt-host-deploy:ovirt-host-deploy:1.0.0] to
> [lib/ovirt-host-deploy.jar]
> [INFO] Copying artifact
> [jar:org.apache.commons:commons-compress:1.4.1] to
> [lib/commons-compress.jar]
> [INFO] Copying artifact [jar:org.tukaani:xz:1.0] to [lib/xz.jar]
> [INFO] Copying artifact [jar:commons-lang:commons-lang:2.6] to
> [lib/commons-lang.jar]
> [INFO] Copying artifact [jar:commons-codec:commons-codec:1.4] to
> [lib/commons-codec.jar]
> [INFO] Copying artifact [jar:org.apache.xmlrpc:xmlrpc-client:3.1.3]
> to [lib/xmlrpc-client.jar]
> [INFO] Copying artifact [jar:org.apache.xmlrpc:xmlrpc-common:3.1.3]
> to [lib/xmlrpc-common.jar]
> [INFO] Copying artifact
> [jar:org.apache.ws.commons.util:ws-commons-util:1.0.2] to
> [lib/ws-commons-util.jar]
> [INFO] Copying artifact [jar:xml-apis:xml-apis:1.0.b2] to
> [lib/xml-apis.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:dal:3.3.0-SNAPSHOT] to [lib/dal.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-jdbc:3.1.1.RELEASE] to
> [lib/spring-jdbc.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-tx:3.1.1.RELEASE] to
> [lib/spring-tx.jar]
> [INFO] Copying artifact
> [jar:org.springframework.ldap:spring-ldap-core:1.3.1.RELEASE] to
> [lib/spring-ldap-core.jar]
> [INFO] Copying artifact
> [jar:commons-httpclient:commons-httpclient:3.1] to
> [lib/commons-httpclient.jar]
> [INFO] Copying artifact
> [jar:commons-collections:commons-collections:3.1] to
> [lib/commons-collections.jar]
> [INFO] Copying artifact [jar:org.quartz-scheduler:quartz:2.1.2] to
> [lib/quartz.jar]
> [INFO] Copying artifact [jar:c3p0:c3p0:0.9.1.1] to [lib/c3p0.jar]
> [INFO] Copying artifact [jar:org.slf4j:slf4j-api:1.6.1] to
> [lib/slf4j-api.jar]
> [INFO] Copying artifact
> [jar:org.ovirt.engine.core:searchbackend:3.3.0-SNAPSHOT] to
> [lib/searchbackend.jar]
> [INFO] Copying artifact
> [jar:org.jboss.spec.javax.interceptor:jboss-interceptors-api_1.1_spec:1.0.0.Final]
> to [lib/jboss-interceptors-api_1.1_spec.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-core:3.1.1.RELEASE] to
> [lib/spring-core.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-asm:3.1.1.RELEASE] to
> [lib/spring-asm.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-beans:3.1.1.RELEASE] to
> [lib/spring-beans.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-context:3.1.1.RELEASE] to
> [lib/spring-context.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-aop:3.1.1.RELEASE] to
> [lib/spring-aop.jar]
> [INFO] Copying artifact [jar:aopalliance:aopalliance:1.0] to
> [lib/aopalliance.jar]
> [INFO] Copying artifact
> [jar:org.springframework:spring-expression:3.1.1.RELEASE] to
> [lib/spring-expression.jar]
> [INFO] Copy ear sources to
> /ephemeral0/ovirt_engine_find_bugs/ear/target/engine
> [INFO] Could not find manifest file:
> /ephemeral0/ovirt_engine_find_bugs/ear/target/engine/META-INF/MANIFEST.MF
> - Generating one
> [INFO] Building jar:
> /ephemeral0/ovirt_engine_find_bugs/ear/target/engine.ear
> [INFO]
> [INFO] --- maven-install-plugin:2.3.1:install (default-install) @
> engine-server-ear ---
> [INFO] Installing
> /ephemeral0/ovirt_engine_find_bugs/ear/target/engine.ear to
> /home/jenkins/workspace/ovirt_engine_find_bugs/.repository/org/ovirt/engine/engine-server-ear/3.3.0-SNAPSHOT/engine-server-ear-3.3.0-SNAPSHOT.ear
> [INFO] Installing /ephemeral0/ovirt_engine_find_bugs/ear/pom.xml to
> /home/jenkins/workspace/ovirt_engine_find_bugs/.repository/org/ovirt/engine/engine-server-ear/3.3.0-SNAPSHOT/engine-server-ear-3.3.0-SNAPSHOT.pom
> [INFO]
> [INFO] --- findbugs-maven-plugin:2.5.2:findbugs (default-cli) @
> engine-server-ear ---
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Reactor Summary:
> [INFO]
> [INFO] ovirt-root ........................................ SUCCESS
> [13.128s]
> [INFO] oVirt Build Tools root ............................ SUCCESS
> [0.118s]
> [INFO] oVirt checkstyle .................................. SUCCESS
> [4.284s]
> [INFO] oVirt JBoss Modules Maven Plugin .................. SUCCESS
> [39.292s]
> [INFO] oVirt Checkstyle Checks ........................... SUCCESS
> [24.694s]
> [INFO] oVirt Modules - backend ........................... SUCCESS
> [0.071s]
> [INFO] oVirt Manager ..................................... SUCCESS
> [0.081s]
> [INFO] oVirt DB Scripts .................................. SUCCESS
> [0.814s]
> [INFO] oVirt Engine dependencies ......................... SUCCESS
> [5.528s]
> [INFO] oVirt Modules - manager ........................... SUCCESS
> [1.803s]
> [INFO] CSharp Compatibility .............................. SUCCESS
> [48.046s]
> [INFO] Common Code ....................................... SUCCESS
> [2:20.376s]
> [INFO] Common utilities .................................. SUCCESS
> [1:36.684s]
> [INFO] Data Access Layer ................................. SUCCESS
> [1:44.820s]
> [INFO] engine beans ...................................... SUCCESS
> [0.191s]
> [INFO] engine scheduler bean ............................. SUCCESS
> [33.861s]
> [INFO] Vds broker ........................................ SUCCESS
> [2:04.436s]
> [INFO] Search Backend .................................... SUCCESS
> [59.575s]
> [INFO] Backend Logic @Service bean ....................... SUCCESS
> [3:00.927s]
> [INFO] oVirt RESTful API Backend Integration ............. SUCCESS
> [8.322s]
> [INFO] oVirt RESTful API interface ....................... SUCCESS
> [0.183s]
> [INFO] oVirt Engine API Definition ....................... SUCCESS
> [1:31.456s]
> [INFO] oVirt Engine API Commom Parent POM ................ SUCCESS
> [0.438s]
> [INFO] oVirt Engine API Common JAX-RS .................... SUCCESS
> [49.339s]
> [INFO] oVirt RESTful API Backend Integration Type Mappers SUCCESS
> [55.814s]
> [INFO] oVirt RESTful API Backend Integration JAX-RS Resources
> SUCCESS [1:22.295s]
> [INFO] oVirt RESTful API Backend Integration Webapp ...... SUCCESS
> [1.090s]
> [INFO] oVirt Engine Web Root ............................. SUCCESS
> [22.632s]
> [INFO] oVirt Engine Tools ................................ SUCCESS
> [37.699s]
> [INFO] oVirt Modules :: Frontend ......................... SUCCESS
> [0.029s]
> [INFO] oVirt Modules :: Webadmin ......................... SUCCESS
> [0.028s]
> [INFO] oVirt Modules - ui ................................ SUCCESS
> [0.358s]
> [INFO] Extensions for GWT ................................ SUCCESS
> [22.230s]
> [INFO] UI Utils Compatibility (for UICommon) ............. SUCCESS
> [25.679s]
> [INFO] Frontend for GWT UI Projects ...................... SUCCESS
> [30.625s]
> [INFO] UICommonWeb ....................................... SUCCESS
> [1:55.468s]
> [INFO] oVirt GWT UI common infrastructure ................ SUCCESS
> [1:20.778s]
> [INFO] WebAdmin .......................................... SUCCESS
> [1:40.544s]
> [INFO] UserPortal ........................................ SUCCESS
> [51.397s]
> [INFO] oVirt Server EAR .................................. SUCCESS
> [2.959s]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 27:47.913s
> [INFO] Finished at: Sun Mar 03 09:58:00 EST 2013
> [INFO] Final Memory: 215M/726M
> [INFO]
> ------------------------------------------------------------------------
> [FINDBUGS] Collecting findbugs analysis files...
> [FINDBUGS] Finding all files that match the pattern
> **/findbugsXml.xml
> [FINDBUGS] Parsing 23 files in
> /home/jenkins/workspace/ovirt_engine_find_bugs
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/beans/scheduler/target/findbugsXml.xml
> of module with 0 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/bll/target/findbugsXml.xml
> of module with 251 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/common/target/findbugsXml.xml
> of module with 245 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/compat/target/findbugsXml.xml
> of module with 25 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/dal/target/findbugsXml.xml
> of module with 1 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/restapi/interface/common/jaxrs/target/findbugsXml.xml
> of module with 15 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/restapi/interface/definition/target/findbugsXml.xml
> of module with 1 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/restapi/jaxrs/target/findbugsXml.xml
> of module with 28 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/restapi/types/target/findbugsXml.xml
> of module with 13 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/root/target/findbugsXml.xml
> of module with 3 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/searchbackend/target/findbugsXml.xml
> of module with 11 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/utils/target/findbugsXml.xml
> of module with 71 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/modules/vdsbroker/target/findbugsXml.xml
> of module with 230 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/backend/manager/tools/target/findbugsXml.xml
> of module with 30 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/build-tools-root/jboss-modules-maven-plugin/target/findbugsXml.xml
> of module with 1 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/build-tools-root/ovirt-checkstyle-extension/target/findbugsXml.xml
> of module with 0 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/frontend/target/findbugsXml.xml
> of module with 38 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/gwt-common/target/findbugsXml.xml
> of module with 84 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/gwt-extension/target/findbugsXml.xml
> of module with 0 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/uicommonweb/target/findbugsXml.xml
> of module with 649 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/uicompat/target/findbugsXml.xml
> of module with 50 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/userportal-gwtp/target/findbugsXml.xml
> of module with 12 warnings.
> [FINDBUGS] Successfully parsed file
> /home/jenkins/workspace/ovirt_engine_find_bugs/frontend/webadmin/modules/webadmin/target/findbugsXml.xml
> of module with 68 warnings.
> [FINDBUGS] Computing warning deltas based on reference build #3646
> Build step 'Publish FindBugs analysis results' changed build result
> to UNSTABLE
> IRC notifier plugin: Sending notification to: #ovirt-jenkins
> Email was triggered for: Unstable
> Sending email for trigger: Unstable
>
1
0
03 Mar '13
Trying to create a new storage domain using a glusterfs data center.
The operation is failing because vfsType is not being passed to VDSM.
Debugging on engine, I can see that Frontend.runActionImpl() is called
with vfsType correctly set but it doesn't seem to reach VDSM. Any
clues as to what may be causing this behaviour?
When I run the test with posixfs, I see -
Thread-169::INFO::2013-03-01
11:11:30,889::logUtils::44::dispatcher::(wrapper) Run and protect:
connectStorageServer(domType=6,
spUUID='00000000-0000-0000-0000-000000000000', conList=[{'port': '',
'connection': 'vm-vdsm-de-1:dpkvol3', 'iqn': '', 'portal': '', 'user':
'', 'vfs_type': 'posixfs', 'password': '******', 'id':
'00000000-0000-0000-0000-000000000000'}], options=None)
but with glusterfs, I get -
Thread-73::INFO::2013-02-27
15:40:57,750::logUtils::44::dispatcher::(wrapper) Run and protect:
connectStorageServer(domType=7,
spUUID='00000000-0000-0000-0000-000000000000', conList=[{'connection':
'vm-vdsm-de-1:dpkvol3', 'iqn': '', 'portal': '', 'user': '',
'password': '******', 'id': '00000000-0000-0000-0000-000000000000',
'port': ''}], options=None)
Notice that vfsType is not passed in second case.
This test was run using the upstream +
http://gerrit.ovirt.org/#/q/status:open+project:ovirt-engine+branch:master+…
Thanks
Sharad Mishra
3
2
I have recently seen several people getting into trouble building
because they are using the obsolete maven 2. Please make sure that you
use maven 3 for all your builds.
--
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
1
0
This is a multi-part message in MIME format.
--------------040803040800070702000706
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Hi All,
I am seeing an error while testing the WIP engine patches for
supporting GLUSTERFS_DOMAIN @
http://gerrit.ovirt.org/#/q/project:ovirt-engine+branch:master+topic:gluste…
(Copyign Sharad, who is the author for the patch series)
Note my VDSM host has VDSM running which has support for
GLUSTERFS_DOMAIN (its already upstream in VDSM)
I get the below error in GUI while trying to create a new Storage Domain
of type Data/GlusterFS
*Error: Cannot add Storage. Storage format V3 is not supported on the
selected host version." *
I cannot change storgae format in the GUI, its fixed at V3
DC is of type GlusterFS and so is cluster, compat version is 3.3
I have few questions ...
1) How are compat version and storage format related ?
2) What does 'host version' in the above error msg mean. It doesn't tell
clearly why/what the incompatibility is about
3) What needs to be done in the engine to make this work ?
thanx,
deepak
--------------040803040800070702000706
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<tt>Hi All,<br>
I am seeing an error while testing the WIP engine patches for
supporting GLUSTERFS_DOMAIN @<br>
</tt><br>
<a class="moz-txt-link-freetext"
href="http://gerrit.ovirt.org/#/q/project:ovirt-engine+branch:master+topic:gluste…">http://gerrit.ovirt.org/#/q/project:ovirt-engine+branch:master+topic:gluste…</a><br>
<br>
(Copyign Sharad, who is the author for the patch series)<br>
Note my VDSM host has VDSM running which has support for
GLUSTERFS_DOMAIN (its already upstream in VDSM)<br>
<br>
I get the below error in GUI while trying to create a new Storage
Domain of type Data/GlusterFS<br>
<b>Error: Cannot add Storage. Storage format V3 is not supported on
the selected host version." </b><br>
<br>
I cannot change storgae format in the GUI, its fixed at V3<br>
DC is of type GlusterFS and so is cluster, compat version is 3.3<br>
<br>
I have few questions ...<br>
<br>
1) How are compat version and storage format related ?<br>
<br>
2) What does 'host version' in the above error msg mean. It doesn't
tell clearly why/what the incompatibility is about<br>
<br>
3) What needs to be done in the engine to make this work ?<br>
<br>
thanx,<br>
deepak<br>
<br>
</body>
</html>
--------------040803040800070702000706--
2
1