<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>50906</bug_id>
          
          <creation_ts>2010-12-13 02:16:11 -0800</creation_ts>
          <short_desc>Web Inspector: Protocol cleanup task. Assign domain attribute to Resources and Debugger specific functions.</short_desc>
          <delta_ts>2010-12-13 09:05:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>50919</dependson>
          <blocked>47775</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>320996</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-12-13 02:16:11 -0800</bug_when>
    <thetext>Debugger and Resources related notification functions of Inspector.idl were marked as such with help of &quot;domain&quot; attribute.
The other changes in js files are reflecting this change. 
Some wrappers in WebInspector namespace were dropped, the others were moved to DebuggerModel class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321000</commentid>
    <comment_count>1</comment_count>
      <attachid>76361</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-12-13 02:21:41 -0800</bug_when>
    <thetext>Created attachment 76361
[patch] initialversion.

domain attribute was assigned to Resources, Profiler and Debugger notification functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321006</commentid>
    <comment_count>2</comment_count>
      <attachid>76361</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-13 02:45:04 -0800</bug_when>
    <thetext>Comment on attachment 76361
[patch] initialversion.

View in context: https://bugs.webkit.org/attachment.cgi?id=76361&amp;action=review

&gt; WebCore/inspector/Inspector.idl:36
&gt; +        [notify, fomain=Inspector] void addNodesToSearchResult(out Array nodeIds);

fomain -&gt; domain

&gt; WebCore/inspector/front-end/ProfilesPanel.js:433
&gt; +    addHeapSnapshots: function(uid, chunk)

I don&apos;t see other places where this method name has changed, did you miss them?

&gt; WebCore/inspector/front-end/ProfilesPanel.js:624
&gt; +                    title: WebInspector.UIString(&quot;RecordingÃ¢ÂÂ¦&quot;),

The string looks corrupted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321016</commentid>
    <comment_count>3</comment_count>
      <attachid>76365</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-12-13 03:06:26 -0800</bug_when>
    <thetext>Created attachment 76365
[patch] second iteration

comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321017</commentid>
    <comment_count>4</comment_count>
      <attachid>76365</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-13 03:12:32 -0800</bug_when>
    <thetext>Comment on attachment 76365
[patch] second iteration

View in context: https://bugs.webkit.org/attachment.cgi?id=76365&amp;action=review

&gt; WebCore/inspector/front-end/DebuggerModel.js:185
&gt; +

too many blank lines</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321021</commentid>
    <comment_count>5</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-12-13 03:21:46 -0800</bug_when>
    <thetext>Committed r73898
	M	WebKit/chromium/ChangeLog
	M	WebKit/chromium/src/js/Tests.js
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorProfilerAgent.cpp
	M	WebCore/inspector/Inspector.idl
	M	WebCore/inspector/front-end/DebuggerModel.js
	M	WebCore/inspector/front-end/DOMAgent.js
	M	WebCore/inspector/front-end/inspector.js
	M	WebCore/inspector/front-end/ProfilesPanel.js
	M	WebCore/inspector/front-end/ResourceManager.js
	M	WebCore/inspector/InspectorDebuggerAgent.cpp
	M	LayoutTests/http/tests/inspector/debugger-test2.js
	M	LayoutTests/ChangeLog
r73898 = 21577ea9200a18a3f7c7e70c2e57662f3c1c2f94 (refs/remotes/trunk)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321143</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-13 09:05:37 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/73916 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76361</attachid>
            <date>2010-12-13 02:21:41 -0800</date>
            <delta_ts>2010-12-13 03:22:12 -0800</delta_ts>
            <desc>[patch] initialversion.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>33155</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2N2EzYTljLi43NGMyY2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTIt
MTMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3Rv
Y29sIGNsZWFudXAgdGFzay4gQXNzaWduIGRvbWFpbiBhdHRyaWJ1dGUgdG8gUmVzb3VyY2VzIGFu
ZCBEZWJ1Z2dlciBzcGVjaWZpYyBmdW5jdGlvbnMuCisKKyAgICAgICAgRGVidWdnZXIgYW5kIFJl
c291cmNlcyByZWxhdGVkIG5vdGlmaWNhdGlvbiBmdW5jdGlvbnMgb2YgSW5zcGVjdG9yLmlkbCB3
ZXJlCisgICAgICAgIG1hcmtlZCBhcyBzdWNoIHdpdGggaGVscCBvZiAiZG9tYWluIiBhdHRyaWJ1
dGUuIFRoZSBvdGhlciBjaGFuZ2VzIGluIGpzIGZpbGVzCisgICAgICAgIGFyZSByZWZsZWN0aW5n
IHRoaXMgY2hhbmdlLiBTb21lIHdyYXBwZXJzIGluIFdlYkluc3BlY3RvciBuYW1lc3BhY2Ugd2Vy
ZSBkcm9wcGVkLAorICAgICAgICB0aGUgb3RoZXJzIHdlcmUgbW92ZWQgdG8gRGVidWdnZXJNb2Rl
bCBjbGFzcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTA5MDYKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3Qy
LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QuSW5zcGVjdG9yVGVzdC5zdGFy
dERlYnVnZ2VyVGVzdC5zdGFydFRlc3QpOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRl
c3QuSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdCk6CisgICAgICAgIChpbml0aWFsaXpl
X0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0LmRpc2FibGVE
ZWJ1Z2dlcik6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0
LnNob3dTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dDoKKwogMjAxMC0xMi0xMyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QyLmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKaW5kZXgg
NmMxOWZmOS4uOTkzMWQ0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXItdGVzdDIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXItdGVzdDIuanMKQEAgLTcsMTUgKzcsMTUgQEAgSW5zcGVjdG9yVGVzdC5z
dGFydERlYnVnZ2VyVGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIGlmIChXZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuX2RlYnVnZ2VyRW5hYmxlZCkKICAgICAgICAgc3RhcnRUZXN0KCk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVj
dG9yLCAiZGVidWdnZXJXYXNFbmFibGVkIiwgc3RhcnRUZXN0KTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgImRlYnVnZ2VyV2Fz
RW5hYmxlZCIsIHN0YXJ0VGVzdCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0
cy5fdG9nZ2xlRGVidWdnaW5nKGZhbHNlKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGFydFRl
c3QoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRlYnVnZ2VyIHdh
cyBlbmFibGVkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3Bl
Y3RvciwgInBhdXNlZFNjcmlwdCIsIEluc3BlY3RvclRlc3QuX3BhdXNlZFNjcmlwdCwgdHJ1ZSk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLCAicmVzdW1l
ZFNjcmlwdCIsIEluc3BlY3RvclRlc3QuX3Jlc3VtZWRTY3JpcHQsIHRydWUpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAicGF1
c2VkU2NyaXB0IiwgSW5zcGVjdG9yVGVzdC5fcGF1c2VkU2NyaXB0LCB0cnVlKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgInJl
c3VtZWRTY3JpcHQiLCBJbnNwZWN0b3JUZXN0Ll9yZXN1bWVkU2NyaXB0LCB0cnVlKTsKICAgICAg
ICAgY2FsbGJhY2soKTsKICAgICB9CiB9OwpAQCAtMzQsNyArMzQsNyBAQCBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlRGVidWdnZXJUZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICBpZiAoIXNjcmlwdHNQ
YW5lbC5fZGVidWdnZXJFbmFibGVkKQogICAgICAgICAgICAgY29tcGxldGVUZXN0KCk7CiAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IsICJkZWJ1Z2dlcldhc0Rpc2FibGVkIiwgY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJk
ZWJ1Z2dlcldhc0Rpc2FibGVkIiwgY29tcGxldGVUZXN0KTsKICAgICAgICAgICAgIHNjcmlwdHNQ
YW5lbC5fdG9nZ2xlRGVidWdnaW5nKGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTExNiw3
ICsxMTYsNyBAQCBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbihzY3Jp
cHROYW1lLCBjYWxsYmFjaykKICAgICBpZiAoSW5zcGVjdG9yVGVzdC5fc2NyaXB0c0FyZVBhcnNl
ZChbc2NyaXB0TmFtZV0pKQogICAgICAgICBJbnNwZWN0b3JUZXN0Ll9zaG93U2NyaXB0U291cmNl
KHNjcmlwdE5hbWUsIGNhbGxiYWNrKTsKICAgICBlbHNlCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
X2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLCAicGFyc2VkU2NyaXB0U291cmNlIiwgSW5zcGVjdG9y
VGVzdC5zaG93U2NyaXB0U291cmNlLmJpbmQoSW5zcGVjdG9yVGVzdCwgc2NyaXB0TmFtZSwgY2Fs
bGJhY2spKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbCwgInBhcnNlZFNjcmlwdFNvdXJjZSIsIEluc3BlY3RvclRlc3Quc2hvd1Nj
cmlwdFNvdXJjZS5iaW5kKEluc3BlY3RvclRlc3QsIHNjcmlwdE5hbWUsIGNhbGxiYWNrKSk7CiB9
OwogCiBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbEN1cnJlbnRTb3VyY2VGcmFtZUlzTG9hZGVkID0g
ZnVuY3Rpb24oY2FsbGJhY2spCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGNjYzI4MDQuLjIyYzllMjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTAt
MTItMTMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBy
b3RvY29sIGNsZWFudXAgdGFzay4gQXNzaWduIGRvbWFpbiBhdHRyaWJ1dGUgdG8gUmVzb3VyY2Vz
IGFuZCBEZWJ1Z2dlciBzcGVjaWZpYyBmdW5jdGlvbnMuCisKKyAgICAgICAgRGVidWdnZXIgYW5k
IFJlc291cmNlcyByZWxhdGVkIG5vdGlmaWNhdGlvbiBmdW5jdGlvbnMgb2YgSW5zcGVjdG9yLmlk
bCB3ZXJlIAorICAgICAgICBtYXJrZWQgYXMgc3VjaCB3aXRoIGhlbHAgb2YgImRvbWFpbiIgYXR0
cmlidXRlLiBUaGUgb3RoZXIgY2hhbmdlcyBpbiBqcyBmaWxlcyAKKyAgICAgICAgYXJlIHJlZmxl
Y3RpbmcgdGhpcyBjaGFuZ2UuIFNvbWUgd3JhcHBlcnMgaW4gV2ViSW5zcGVjdG9yIG5hbWVzcGFj
ZSB3ZXJlIGRyb3BwZWQsIAorICAgICAgICB0aGUgb3RoZXJzIHdlcmUgbW92ZWQgdG8gRGVidWdn
ZXJNb2RlbCBjbGFzcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTA5MDYKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNlU291cmNlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpyZXNldFN0YXRlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50
LnByb3RvdHlwZS5kaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0RlYnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUucGF1c2VkU2Ny
aXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5yZXN1
bWVkU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlw
ZS5hdHRhY2hEZWJ1Z2dlcldoZW5TaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNb2RlbC5wcm90b3R5cGUuZGVidWdnZXJXYXNFbmFibGVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5kZWJ1Z2dlcldhc0Rpc2FibGVkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5wYXJzZWRTY3JpcHRTb3Vy
Y2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLmZhaWxl
ZFRvUGFyc2VTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5hZGRIZWFwU25hcHNo
b3RzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS51cGRh
dGVNYWluVmlld1dpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnBy
b3RvdHlwZS5zZXRSZWNvcmRpbmdQcm9maWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1h
bmFnZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUu
X3VuYmluZFJlc291cmNlVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFn
ZXIucHJvdG90eXBlLnVwZGF0ZURPTVN0b3JhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlTWFuYWdlci5wcm90b3R5cGUudXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5kaWRHZXRGaWxl
U3lzdGVtUGF0aCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3Rv
dHlwZS5kaWRHZXRGaWxlU3lzdGVtRXJyb3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlTWFuYWdlci5wcm90b3R5cGUuZGlkR2V0RmlsZVN5c3RlbURpc2FibGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLnVwZGF0ZU5ldHdvcmtTdGF0
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5hZGRE
YXRhYmFzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlw
ZS5hZGRET01TdG9yYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qczoKKwogMjAxMC0xMi0xMyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCBjMjE0
Zjc0Li5iODI0MWY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRs
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTMzLDQ0ICszMyw0NCBA
QAogbW9kdWxlIGNvcmUgewogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSBJ
bnNwZWN0b3IgewogICAgICAgICBbbm90aWZ5LCBkb21haW49VGltZWxpbmVdIHZvaWQgYWRkUmVj
b3JkVG9UaW1lbGluZShvdXQgT2JqZWN0IHJlY29yZCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQg
YWRkTm9kZXNUb1NlYXJjaFJlc3VsdChvdXQgQXJyYXkgbm9kZUlkcyk7CisgICAgICAgIFtub3Rp
ZnksIGZvbWFpbj1JbnNwZWN0b3JdIHZvaWQgYWRkTm9kZXNUb1NlYXJjaFJlc3VsdChvdXQgQXJy
YXkgbm9kZUlkcyk7CiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1ET01dIHZvaWQgYXR0cmlidXRl
c1VwZGF0ZWQob3V0IGxvbmcgaWQsIG91dCBBcnJheSBhdHRyaWJ1dGVzKTsKLSAgICAgICAgW25v
dGlmeV0gdm9pZCBicmluZ1RvRnJvbnQoKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPUluc3Bl
Y3Rvcl0gdm9pZCBicmluZ1RvRnJvbnQoKTsKICAgICAgICAgW25vdGlmeSwgZG9tYWluPURPTV0g
dm9pZCBjaGFyYWN0ZXJEYXRhTW9kaWZpZWQob3V0IGxvbmcgaWQsIG91dCBTdHJpbmcgbmV3VmFs
dWUpOwogICAgICAgICBbbm90aWZ5LCBkb21haW49RE9NXSB2b2lkIGNoaWxkTm9kZUNvdW50VXBk
YXRlZChvdXQgbG9uZyBpZCwgb3V0IGludCBuZXdWYWx1ZSk7CiAgICAgICAgIFtub3RpZnksIGRv
bWFpbj1ET01dIHZvaWQgY2hpbGROb2RlSW5zZXJ0ZWQob3V0IGxvbmcgcGFyZW50SWQsIG91dCBs
b25nIHByZXZJZCwgb3V0IE9iamVjdCBub2RlKTsKICAgICAgICAgW25vdGlmeSwgZG9tYWluPURP
TV0gdm9pZCBjaGlsZE5vZGVSZW1vdmVkKG91dCBsb25nIHBhcmVudElkLCBvdXQgbG9uZyBpZCk7
Ci0gICAgICAgIFtub3RpZnldIHZvaWQgZGlkQ29tbWl0TG9hZCgpOwotICAgICAgICBbbm90aWZ5
XSB2b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQob3V0IGxvbmcgdGVzdENhbGxJZCwgb3V0
IFN0cmluZyBzY3JpcHQpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIGRpc2Nvbm5lY3RGcm9tQmFj
a2VuZCgpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKG91dCBk
b3VibGUgdGltZSk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChv
dXQgU3RyaW5nIHVybCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgbG9hZEV2ZW50RmlyZWQob3V0
IGRvdWJsZSB0aW1lKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCByZXNldCgpOwotICAgICAgICBb
bm90aWZ5XSB2b2lkIHJlc2V0UHJvZmlsZXNQYW5lbCgpOworICAgICAgICBbbm90aWZ5LCBkb21h
aW49RE9NXSB2b2lkIGRpZENvbW1pdExvYWQoKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPUlu
c3BlY3Rvcl0gdm9pZCBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKG91dCBsb25nIHRlc3RDYWxs
SWQsIG91dCBTdHJpbmcgc2NyaXB0KTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPUluc3BlY3Rv
cl0gdm9pZCBkaXNjb25uZWN0RnJvbUJhY2tlbmQoKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWlu
PUluc3BlY3Rvcl0gdm9pZCBkb21Db250ZW50RXZlbnRGaXJlZChvdXQgZG91YmxlIHRpbWUpOwor
ICAgICAgICBbbm90aWZ5LCBkb21haW49SW5zcGVjdG9yXSB2b2lkIGluc3BlY3RlZFVSTENoYW5n
ZWQob3V0IFN0cmluZyB1cmwpOworICAgICAgICBbbm90aWZ5LCBkb21haW49SW5zcGVjdG9yXSB2
b2lkIGxvYWRFdmVudEZpcmVkKG91dCBkb3VibGUgdGltZSk7CisgICAgICAgIFtub3RpZnksIGRv
bWFpbj1JbnNwZWN0b3JdIHZvaWQgcmVzZXQoKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVBy
b2ZpbGVyXSB2b2lkIHJlc2V0UHJvZmlsZXMoKTsKICAgICAgICAgW25vdGlmeSwgZG9tYWluPURP
TV0gdm9pZCBzZXRDaGlsZE5vZGVzKG91dCBsb25nIHBhcmVudElkLCBvdXQgQXJyYXkgbm9kZXMp
OwogICAgICAgICBbbm90aWZ5LCBkb21haW49RE9NXSB2b2lkIHNldERldGFjaGVkUm9vdChvdXQg
T2JqZWN0IHJvb3QpOwogICAgICAgICBbbm90aWZ5LCBkb21haW49RE9NXSB2b2lkIHNldERvY3Vt
ZW50KG91dCBWYWx1ZSByb290KTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBzaG93UGFuZWwob3V0
IFN0cmluZyBwYW5lbCk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1JbnNwZWN0b3JdIHZvaWQg
c2hvd1BhbmVsKG91dCBTdHJpbmcgcGFuZWwpOwogICAgICAgICBbbm90aWZ5LCBkb21haW49VGlt
ZWxpbmVdIHZvaWQgdGltZWxpbmVQcm9maWxlcldhc1N0YXJ0ZWQoKTsKICAgICAgICAgW25vdGlm
eSwgZG9tYWluPVRpbWVsaW5lXSB2b2lkIHRpbWVsaW5lUHJvZmlsZXJXYXNTdG9wcGVkKCk7CiAg
ICAgICAgIFtub3RpZnldIHZvaWQgdXBkYXRlRm9jdXNlZE5vZGUob3V0IGxvbmcgbm9kZUlkKTsK
IAogI2lmIGRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSCi0gICAgICAgIFtub3RpZnldIHZvaWQgYWRkUHJvZmlsZUhlYWRlcihv
dXQgT2JqZWN0IGhlYWRlcik7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgYWRkSGVhcFNuYXBzaG90
Q2h1bmsob3V0IHVuc2lnbmVkIGxvbmcgdWlkLCBvdXQgU3RyaW5nIGNodW5rKTsKLSAgICAgICAg
W25vdGlmeV0gdm9pZCBhdHRhY2hEZWJ1Z2dlcldoZW5TaG93bigpOwotICAgICAgICBbbm90aWZ5
XSB2b2lkIGRlYnVnZ2VyV2FzRW5hYmxlZCgpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIGRlYnVn
Z2VyV2FzRGlzYWJsZWQoKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBmYWlsZWRUb1BhcnNlU2Ny
aXB0U291cmNlKG91dCBTdHJpbmcgdXJsLCBvdXQgU3RyaW5nIGRhdGEsIG91dCBpbnQgZmlyc3RM
aW5lLCBvdXQgaW50IGVycm9yTGluZSwgb3V0IFN0cmluZyBlcnJvck1lc3NhZ2UpOwotICAgICAg
ICBbbm90aWZ5XSB2b2lkIGZpbmlzaEhlYXBTbmFwc2hvdChvdXQgdW5zaWduZWQgbG9uZyB1aWQp
OwotICAgICAgICBbbm90aWZ5XSB2b2lkIHBhcnNlZFNjcmlwdFNvdXJjZShvdXQgU3RyaW5nIHNv
dXJjZUlELCBvdXQgU3RyaW5nIHVybCwgb3V0IFN0cmluZyBkYXRhLCBvdXQgaW50IGZpcnN0TGlu
ZSwgb3V0IGludCBzY3JpcHRXb3JsZFR5cGUpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHBhdXNl
ZFNjcmlwdChvdXQgT2JqZWN0IGRldGFpbHMpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHByb2Zp
bGVyV2FzRW5hYmxlZCgpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHByb2ZpbGVyV2FzRGlzYWJs
ZWQoKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCByZXN0b3JlZEJyZWFrcG9pbnQob3V0IFN0cmlu
ZyBzb3VyY2VJRCwgb3V0IFN0cmluZyB1cmwsIG91dCBpbnQgbGluZSwgb3V0IGJvb2xlYW4gZW5h
YmxlZCwgb3V0IFN0cmluZyBjb25kaXRpb24pOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHJlc3Vt
ZWRTY3JpcHQoKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBzZXRSZWNvcmRpbmdQcm9maWxlKG91
dCBib29sZWFuIGlzUHJvZmlsaW5nKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVByb2ZpbGVy
XSB2b2lkIGFkZFByb2ZpbGVIZWFkZXIob3V0IE9iamVjdCBoZWFkZXIpOworICAgICAgICBbbm90
aWZ5LCBkb21haW49UHJvZmlsZXJdIHZvaWQgYWRkSGVhcFNuYXBzaG90Q2h1bmsob3V0IHVuc2ln
bmVkIGxvbmcgdWlkLCBvdXQgU3RyaW5nIGNodW5rKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWlu
PURlYnVnZ2VyXSB2b2lkIGF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7CisgICAgICAgIFtub3Rp
ZnksIGRvbWFpbj1EZWJ1Z2dlcl0gdm9pZCBkZWJ1Z2dlcldhc0VuYWJsZWQoKTsKKyAgICAgICAg
W25vdGlmeSwgZG9tYWluPURlYnVnZ2VyXSB2b2lkIGRlYnVnZ2VyV2FzRGlzYWJsZWQoKTsKKyAg
ICAgICAgW25vdGlmeSwgZG9tYWluPURlYnVnZ2VyXSB2b2lkIGZhaWxlZFRvUGFyc2VTY3JpcHRT
b3VyY2Uob3V0IFN0cmluZyB1cmwsIG91dCBTdHJpbmcgZGF0YSwgb3V0IGludCBmaXJzdExpbmUs
IG91dCBpbnQgZXJyb3JMaW5lLCBvdXQgU3RyaW5nIGVycm9yTWVzc2FnZSk7CisgICAgICAgIFtu
b3RpZnksIGRvbWFpbj1Qcm9maWxlcl0gdm9pZCBmaW5pc2hIZWFwU25hcHNob3Qob3V0IHVuc2ln
bmVkIGxvbmcgdWlkKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPURlYnVnZ2VyXSB2b2lkIHBh
cnNlZFNjcmlwdFNvdXJjZShvdXQgU3RyaW5nIHNvdXJjZUlELCBvdXQgU3RyaW5nIHVybCwgb3V0
IFN0cmluZyBkYXRhLCBvdXQgaW50IGZpcnN0TGluZSwgb3V0IGludCBzY3JpcHRXb3JsZFR5cGUp
OworICAgICAgICBbbm90aWZ5LCBkb21haW49RGVidWdnZXJdIHZvaWQgcGF1c2VkU2NyaXB0KG91
dCBPYmplY3QgZGV0YWlscyk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1Qcm9maWxlcl0gdm9p
ZCBwcm9maWxlcldhc0VuYWJsZWQoKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVByb2ZpbGVy
XSB2b2lkIHByb2ZpbGVyV2FzRGlzYWJsZWQoKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPURl
YnVnZ2VyXSB2b2lkIGJyZWFrcG9pbnRSZXN0b3JlZChvdXQgU3RyaW5nIHNvdXJjZUlELCBvdXQg
U3RyaW5nIHVybCwgb3V0IGludCBsaW5lLCBvdXQgYm9vbGVhbiBlbmFibGVkLCBvdXQgU3RyaW5n
IGNvbmRpdGlvbik7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1EZWJ1Z2dlcl0gdm9pZCByZXN1
bWVkU2NyaXB0KCk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1Qcm9maWxlcl0gdm9pZCBzZXRS
ZWNvcmRpbmdQcm9maWxlKG91dCBib29sZWFuIGlzUHJvZmlsaW5nKTsKICAgICAgICAgW25vdGlm
eV0gdm9pZCB1cGRhdGVQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKG91dCBsb25nIHN0YXRlKTsKICNl
bmRpZgogI2lmIGRlZmluZWQoRU5BQkxFX0RBVEFCQVNFKSAmJiBFTkFCTEVfREFUQUJBU0UKQEAg
LTc4LDkgKzc4LDkgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbbm90aWZ5XSB2b2lkIHNlbGVj
dERhdGFiYXNlKG91dCBpbnQgZGF0YWJhc2VJZCk7CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJM
RV9ET01fU1RPUkFHRSkgJiYgRU5BQkxFX0RPTV9TVE9SQUdFCi0gICAgICAgIFtub3RpZnldIHZv
aWQgYWRkRE9NU3RvcmFnZShvdXQgT2JqZWN0IHN0b3JhZ2UpOwotICAgICAgICBbbm90aWZ5XSB2
b2lkIHVwZGF0ZURPTVN0b3JhZ2Uob3V0IGludCBzdG9yYWdlSWQpOwotICAgICAgICBbbm90aWZ5
XSB2b2lkIHNlbGVjdERPTVN0b3JhZ2Uob3V0IGludCBzdG9yYWdlSWQpOworICAgICAgICBbbm90
aWZ5LCBkb21haW49UmVzb3VyY2VzXSB2b2lkIGFkZERPTVN0b3JhZ2Uob3V0IE9iamVjdCBzdG9y
YWdlKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVJlc291cmNlc10gdm9pZCB1cGRhdGVET01T
dG9yYWdlKG91dCBpbnQgc3RvcmFnZUlkKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVJlc291
cmNlc10gdm9pZCBzZWxlY3RET01TdG9yYWdlKG91dCBpbnQgc3RvcmFnZUlkKTsKICNlbmRpZgog
I2lmIGRlZmluZWQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJiYgRU5BQkxFX09G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogICAgICAgICBbbm90aWZ5XSB2b2lkIHVwZGF0ZUFwcGxp
Y2F0aW9uQ2FjaGVTdGF0dXMob3V0IGludCBzdGF0dXMpOwpAQCAtMTA3LDIyICsxMDcsMjIgQEAg
bW9kdWxlIGNvcmUgewogCiAgICAgICAgIFtkb21haW49UmVzb3VyY2VzXSB2b2lkIGNhY2hlZFJl
c291cmNlcyhvdXQgT2JqZWN0IHJlc291cmNlcyk7CiAgICAgICAgIFtkb21haW49UmVzb3VyY2Vz
XSB2b2lkIHJlc291cmNlQ29udGVudChpbiB1bnNpZ25lZCBsb25nIGZyYW1lSWQsIGluIFN0cmlu
ZyB1cmwsIGluIGJvb2xlYW4gYmFzZTY0RW5jb2RlLCBvdXQgU3RyaW5nIGNvbnRlbnQpOwotICAg
ICAgICBbbm90aWZ5XSB2b2lkIGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdChvdXQgbG9uZyBp
ZGVudGlmaWVyLCBvdXQgU3RyaW5nIHVybCwgb3V0IE9iamVjdCBsb2FkZXIsIG91dCBWYWx1ZSBj
YWxsU3RhY2spOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHdpbGxTZW5kUmVxdWVzdChvdXQgbG9u
ZyBpZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBPYmplY3QgcmVxdWVzdCwgb3V0IE9i
amVjdCByZWRpcmVjdFJlc3BvbnNlKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBtYXJrUmVzb3Vy
Y2VBc0NhY2hlZChvdXQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2Uob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBv
dXQgU3RyaW5nIHJlc291cmNlVHlwZSwgb3V0IE9iamVjdCByZXNwb25zZSk7Ci0gICAgICAgIFtu
b3RpZnldIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgob3V0IGxvbmcgaWRlbnRpZmllciwg
b3V0IGRvdWJsZSB0aW1lLCBvdXQgbG9uZyBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgICAgIFtub3Rp
ZnldIHZvaWQgZGlkRmluaXNoTG9hZGluZyhvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91Ymxl
IGZpbmlzaFRpbWUpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIGRpZEZhaWxMb2FkaW5nKG91dCBs
b25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0IFN0cmluZyBsb2NhbGl6ZWREZXNj
cmlwdGlvbik7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgZGlkTG9hZFJlc291cmNlRnJvbU1lbW9y
eUNhY2hlKG91dCBkb3VibGUgdGltZSwgb3V0IE9iamVjdCByZXNvdXJjZSk7Ci0gICAgICAgIFtu
b3RpZnldIHZvaWQgc2V0SW5pdGlhbENvbnRlbnQob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IFN0
cmluZyBzb3VyY2VTdHJpbmcsIG91dCBTdHJpbmcgdHlwZSk7Ci0gICAgICAgIFtub3RpZnldIHZv
aWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKG91dCBPYmplY3QgZnJhbWUsIG91dCBPYmplY3QgbG9h
ZGVyKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBmcmFtZURldGFjaGVkRnJvbVBhcmVudChvdXQg
dW5zaWduZWQgbG9uZyBmcmFtZUlkKTsKLQotICAgICAgICBbbm90aWZ5XSB2b2lkIGRpZENyZWF0
ZVdlYlNvY2tldChvdXQgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBvdXQgU3RyaW5nIHJlcXVl
c3RVUkwpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHdpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtl
UmVxdWVzdChvdXQgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91
dCBPYmplY3QgcmVxdWVzdCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgZGlkUmVjZWl2ZVdlYlNv
Y2tldEhhbmRzaGFrZVJlc3BvbnNlKG91dCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIG91dCBk
b3VibGUgdGltZSwgb3V0IE9iamVjdCByZXNwb25zZSk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQg
ZGlkQ2xvc2VXZWJTb2NrZXQob3V0IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJs
ZSB0aW1lKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVJlc291cmNlc10gdm9pZCBpZGVudGlm
aWVyRm9ySW5pdGlhbFJlcXVlc3Qob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IFN0cmluZyB1cmws
IG91dCBPYmplY3QgbG9hZGVyLCBvdXQgVmFsdWUgY2FsbFN0YWNrKTsKKyAgICAgICAgW25vdGlm
eSwgZG9tYWluPVJlc291cmNlc10gdm9pZCB3aWxsU2VuZFJlcXVlc3Qob3V0IGxvbmcgaWRlbnRp
Zmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgT2JqZWN0IHJlcXVlc3QsIG91dCBPYmplY3QgcmVk
aXJlY3RSZXNwb25zZSk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1SZXNvdXJjZXNdIHZvaWQg
bWFya1Jlc291cmNlQXNDYWNoZWQob3V0IGxvbmcgaWRlbnRpZmllcik7CisgICAgICAgIFtub3Rp
ZnksIGRvbWFpbj1SZXNvdXJjZXNdIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKG91dCBsb25nIGlk
ZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0IFN0cmluZyByZXNvdXJjZVR5cGUsIG91dCBP
YmplY3QgcmVzcG9uc2UpOworICAgICAgICBbbm90aWZ5LCBkb21haW49UmVzb3VyY2VzXSB2b2lk
IGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUg
dGltZSwgb3V0IGxvbmcgbGVuZ3RoUmVjZWl2ZWQpOworICAgICAgICBbbm90aWZ5LCBkb21haW49
UmVzb3VyY2VzXSB2b2lkIGRpZEZpbmlzaExvYWRpbmcob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0
IGRvdWJsZSBmaW5pc2hUaW1lKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVJlc291cmNlc10g
dm9pZCBkaWRGYWlsTG9hZGluZyhvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUs
IG91dCBTdHJpbmcgbG9jYWxpemVkRGVzY3JpcHRpb24pOworICAgICAgICBbbm90aWZ5LCBkb21h
aW49UmVzb3VyY2VzXSB2b2lkIGRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShvdXQgZG91
YmxlIHRpbWUsIG91dCBPYmplY3QgcmVzb3VyY2UpOworICAgICAgICBbbm90aWZ5LCBkb21haW49
UmVzb3VyY2VzXSB2b2lkIHNldEluaXRpYWxDb250ZW50KG91dCBsb25nIGlkZW50aWZpZXIsIG91
dCBTdHJpbmcgc291cmNlU3RyaW5nLCBvdXQgU3RyaW5nIHR5cGUpOworICAgICAgICBbbm90aWZ5
LCBkb21haW49UmVzb3VyY2VzXSB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShvdXQgT2JqZWN0
IGZyYW1lLCBvdXQgT2JqZWN0IGxvYWRlcik7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1SZXNv
dXJjZXNdIHZvaWQgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQob3V0IHVuc2lnbmVkIGxvbmcgZnJh
bWVJZCk7CisKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVJlc291cmNlc10gdm9pZCBkaWRDcmVh
dGVXZWJTb2NrZXQob3V0IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgb3V0IFN0cmluZyByZXF1
ZXN0VVJMKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVJlc291cmNlc10gdm9pZCB3aWxsU2Vu
ZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qob3V0IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
b3V0IGRvdWJsZSB0aW1lLCBvdXQgT2JqZWN0IHJlcXVlc3QpOworICAgICAgICBbbm90aWZ5LCBk
b21haW49UmVzb3VyY2VzXSB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25z
ZShvdXQgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBPYmpl
Y3QgcmVzcG9uc2UpOworICAgICAgICBbbm90aWZ5LCBkb21haW49UmVzb3VyY2VzXSB2b2lkIGRp
ZENsb3NlV2ViU29ja2V0KG91dCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUg
dGltZSk7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUgogICAgICAgICBbZG9tYWluPUJhY2tlbmRdIHZvaWQgZW5h
YmxlRGVidWdnZXIoaW4gYm9vbGVhbiBhbHdheXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBiM2NhYTJlLi4wYjE4YjBjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtMjkyLDcgKzI5Miw3
IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkUGFyc2VTb3VyY2UoY29uc3QgU3Ry
aW5nJiBzb3VyY2VJRCwgY29uc3QgU3RyaW5nCiAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBT
Y3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkuc2V0QnJlYWtwb2ludChzb3VyY2VJRCwgYnJlYWtw
b2ludEl0LT5zZWNvbmQsIGxpbmVOdW1iZXIsICZhY3R1YWxMaW5lTnVtYmVyKTsKICAgICAgICAg
ICAgIGlmICghc3VjY2VzcykKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IG1fZnJvbnRlbmQtPnJlc3RvcmVkQnJlYWtwb2ludChzb3VyY2VJRCwgdXJsLCBhY3R1YWxMaW5l
TnVtYmVyLCBicmVha3BvaW50SXQtPnNlY29uZC5lbmFibGVkLCBicmVha3BvaW50SXQtPnNlY29u
ZC5jb25kaXRpb24pOworICAgICAgICAgICAgbV9mcm9udGVuZC0+YnJlYWtwb2ludFJlc3RvcmVk
KHNvdXJjZUlELCB1cmwsIGFjdHVhbExpbmVOdW1iZXIsIGJyZWFrcG9pbnRJdC0+c2Vjb25kLmVu
YWJsZWQsIGJyZWFrcG9pbnRJdC0+c2Vjb25kLmNvbmRpdGlvbik7CiAgICAgICAgICAgICBTdHJp
bmcgYnJlYWtwb2ludElkID0gZm9ybWF0QnJlYWtwb2ludElkKHNvdXJjZUlELCBhY3R1YWxMaW5l
TnVtYmVyKTsKICAgICAgICAgICAgIG1fYnJlYWtwb2ludHNNYXBwaW5nLnNldChicmVha3BvaW50
SWQsIGxpbmVOdW1iZXIpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IDZkNTM2NGYuLmFjNjdhMWEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCkBAIC0yMTEsNyArMjExLDcgQEAg
dm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpyZXNldFN0YXRlKCkKICAgICBtX25leHRVc2Vy
SW5pdGlhdGVkUHJvZmlsZU51bWJlciA9IDE7CiAgICAgbV9uZXh0VXNlckluaXRpYXRlZEhlYXBT
bmFwc2hvdE51bWJlciA9IDE7CiAgICAgaWYgKG1fZnJvbnRlbmQpCi0gICAgICAgIG1fZnJvbnRl
bmQtPnJlc2V0UHJvZmlsZXNQYW5lbCgpOworICAgICAgICBtX2Zyb250ZW5kLT5yZXNldFByb2Zp
bGVzKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6c3RhcnRVc2VySW5pdGlh
dGVkUHJvZmlsaW5nKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01BZ2VudC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwppbmRl
eCA5Y2UwOGY5Li40MzJhYzNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50
LmpzCkBAIC0zNzMsNiArMzczLDEyIEBAIFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9pZFRvRE9NTm9kZVtub2RlSWRdOwogICAgIH0sCiAK
KyAgICBkaWRDb21taXRMb2FkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICAvLyBDbGVhbnVw
IGVsZW1lbnRzIHBhbmVsIGVhcmx5IG9uIGluc3BlY3RlZCBwYWdlIHJlZnJlc2guCisgICAgICAg
IHRoaXMuc2V0RG9jdW1lbnQobnVsbCk7CisgICAgfSwKKwogICAgIHNldERvY3VtZW50OiBmdW5j
dGlvbihwYXlsb2FkKQogICAgIHsKICAgICAgICAgdGhpcy5faWRUb0RPTU5vZGUgPSB7fTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggYTMzN2Y1
Yy4uNjA2ZDUwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVn
Z2VyTW9kZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9k
ZWwuanMKQEAgLTMxLDYgKzMxLDcgQEAKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsID0gZnVu
Y3Rpb24oKQogewogICAgIHRoaXMuX2JyZWFrcG9pbnRzID0ge307CisgICAgSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckRvbWFpbkRpc3BhdGNoZXIoIkRlYnVnZ2VyIiwgdGhpcyk7CiB9CiAKIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKQEAgLTEyNyw3ICsxMjgsNyBA
QCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuc2V0QnJlYWtwb2ludChicmVha3BvaW50LnNvdXJjZUlELCBicmVha3BvaW50
LmxpbmUsIGJyZWFrcG9pbnQuZW5hYmxlZCwgYnJlYWtwb2ludC5jb25kaXRpb24sIGRpZFNldEJy
ZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIGRlYnVnZ2VyUGF1c2VkOiBmdW5j
dGlvbihkZXRhaWxzKQorICAgIHBhdXNlZFNjcmlwdDogZnVuY3Rpb24oZGV0YWlscykKICAgICB7
CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJkZWJ1Z2dlci1wYXVzZWQi
LCBkZXRhaWxzLmNhbGxGcmFtZXMpOwogCkBAIC0xNDcsNyArMTQ4LDcgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycygic2NyaXB0LWJyZWFrcG9pbnQtaGl0IiwgYnJlYWtwb2ludCk7CiAgICAgfSwK
IAotICAgIGRlYnVnZ2VyUmVzdW1lZDogZnVuY3Rpb24oKQorICAgIHJlc3VtZWRTY3JpcHQ6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJk
ZWJ1Z2dlci1yZXN1bWVkIik7CiAKQEAgLTE1NSw3ICsxNTYsMzQgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0
aGlzLl9sYXN0SGl0QnJlYWtwb2ludC5oaXQgPSBmYWxzZTsKICAgICAgICAgZGVsZXRlIHRoaXMu
X2xhc3RIaXRCcmVha3BvaW50OworICAgIH0sCisKKyAgICBhdHRhY2hEZWJ1Z2dlcldoZW5TaG93
bjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRz
LmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7CisgICAgfSwKKworICAgIGRlYnVnZ2VyV2FzRW5h
YmxlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3Jp
cHRzLmRlYnVnZ2VyV2FzRW5hYmxlZCgpOworICAgIH0sCisKKyAgICBkZWJ1Z2dlcldhc0Rpc2Fi
bGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlw
dHMuZGVidWdnZXJXYXNEaXNhYmxlZCgpOworICAgIH0sCisKKyAgICBwYXJzZWRTY3JpcHRTb3Vy
Y2U6IGZ1bmN0aW9uKHNvdXJjZUlELCBzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCBz
Y3JpcHRXb3JsZFR5cGUpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlw
dHMuYWRkU2NyaXB0KHNvdXJjZUlELCBzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCB1
bmRlZmluZWQsIHVuZGVmaW5lZCwgc2NyaXB0V29ybGRUeXBlKTsKKyAgICB9LAorCisgICAgZmFp
bGVkVG9QYXJzZVNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2UsIHN0YXJ0
aW5nTGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpCisgICAgeworICAgICAgICBXZWJJbnNw
ZWN0b3IucGFuZWxzLnNjcmlwdHMuYWRkU2NyaXB0KG51bGwsIHNvdXJjZVVSTCwgc291cmNlLCBz
dGFydGluZ0xpbmUsIGVycm9yTGluZSwgZXJyb3JNZXNzYWdlKTsKICAgICB9CisKKwogfQogCiBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLk9iamVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlc1BhbmVsLmpzCmluZGV4IDg2ZDhkOTAuLjdjMGRjOWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC0xMjQsNiArMTI0LDcgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fcHJvZmlsZXMgPSBb
XTsKICAgICB0aGlzLl9wcm9maWxlckVuYWJsZWQgPSBQcmVmZXJlbmNlcy5wcm9maWxlckFsd2F5
c0VuYWJsZWQ7CiAgICAgdGhpcy5fcmVzZXQoKTsKKyAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lz
dGVyRG9tYWluRGlzcGF0Y2hlcigiUHJvZmlsZXIiLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewpAQCAtNDI5LDcgKzQzMCw3IEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAg
ICBhZGRIZWFwU25hcHNob3RDaHVuazogZnVuY3Rpb24odWlkLCBjaHVuaykKKyAgICBhZGRIZWFw
U25hcHNob3RzOiBmdW5jdGlvbih1aWQsIGNodW5rKQogICAgIHsKICAgICAgICAgdmFyIHByb2Zp
bGUgPSB0aGlzLl9wcm9maWxlc0lkTWFwW3RoaXMuX21ha2VLZXkodWlkLCBXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90UHJvZmlsZVR5cGUuVHlwZUlkKV07CiAgICAgICAgIGlmICghcHJvZmlsZSB8
fCBwcm9maWxlLl9sb2FkZWQgfHwgIXByb2ZpbGUuX2lzX2xvYWRpbmcpCkBAIC01OTcsNyArNTk4
LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgdmFyIHByb2ZpbGVIZWFkZXJzTGVuZ3RoID0gcHJvZmlsZUhlYWRlcnMubGVuZ3RoOwogICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9maWxlSGVhZGVyc0xlbmd0aDsgKytpKQog
ICAgICAgICAgICAgICAgIGlmICghdGhpcy5oYXNQcm9maWxlKHByb2ZpbGVIZWFkZXJzW2ldKSkK
LSAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmFkZFByb2ZpbGVIZWFkZXIocHJvZmls
ZUhlYWRlcnNbaV0pOworICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnBy
b2ZpbGVzLmFkZFByb2ZpbGVIZWFkZXIocHJvZmlsZUhlYWRlcnNbaV0pOwogICAgICAgICB9CiAK
ICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxi
YWNrLmJpbmQodGhpcykpOwpAQCAtNjExLDYgKzYxMiwyNiBAQCBXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMucHJvZmlsZVZpZXdzLnN0eWxlLmxl
ZnQgPSB3aWR0aCArICJweCI7CiAgICAgICAgIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNCYXJJdGVt
c0NvbnRhaW5lci5zdHlsZS5sZWZ0ID0gTWF0aC5tYXgoMTU1LCB3aWR0aCkgKyAicHgiOwogICAg
ICAgICB0aGlzLnJlc2l6ZSgpOworICAgIH0sCisKKyAgICBzZXRSZWNvcmRpbmdQcm9maWxlOiBm
dW5jdGlvbihpc1Byb2ZpbGluZykKKyAgICB7CisgICAgICAgIHRoaXMuZ2V0UHJvZmlsZVR5cGUo
V2ViSW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLlR5cGVJZCkuc2V0UmVjb3JkaW5nUHJvZmlsZShp
c1Byb2ZpbGluZyk7CisgICAgICAgIGlmICh0aGlzLmhhc1RlbXBvcmFyeVByb2ZpbGUoV2ViSW5z
cGVjdG9yLkNQVVByb2ZpbGVUeXBlLlR5cGVJZCkgIT09IGlzUHJvZmlsaW5nKSB7CisgICAgICAg
ICAgICBpZiAoIXRoaXMuX3RlbXBvcmFyeVJlY29yZGluZ1Byb2ZpbGUpIHsKKyAgICAgICAgICAg
ICAgICB0aGlzLl90ZW1wb3JhcnlSZWNvcmRpbmdQcm9maWxlID0geworICAgICAgICAgICAgICAg
ICAgICB0eXBlSWQ6IFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5UeXBlSWQsCisgICAgICAg
ICAgICAgICAgICAgIHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY29yZGluZ8OiwoDC
piIpLAorICAgICAgICAgICAgICAgICAgICB1aWQ6IC0xLAorICAgICAgICAgICAgICAgICAgICBp
c1RlbXBvcmFyeTogdHJ1ZQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAoaXNQcm9maWxpbmcpCisgICAgICAgICAgICAgICAgdGhpcy5hZGRQcm9maWxl
SGVhZGVyKHRoaXMuX3RlbXBvcmFyeVJlY29yZGluZ1Byb2ZpbGUpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlUHJvZmlsZUhlYWRlcih0aGlzLl90ZW1wb3Jh
cnlSZWNvcmRpbmdQcm9maWxlKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnVwZGF0ZVByb2Zp
bGVUeXBlQnV0dG9ucygpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZU1hbmFnZXIuanMKaW5kZXggOWYzNWVkMi4uYjRmNDExNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdlci5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2VyLmpzCkBAIC0zMCwzNiAr
MzAsMTQgQEAKIAogV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlciA9IGZ1bmN0aW9uKCkKIHsK
LSAgICB0aGlzLl9yZWdpc3Rlck5vdGlmeUhhbmRsZXJzKAotICAgICAgICAiaWRlbnRpZmllckZv
ckluaXRpYWxSZXF1ZXN0IiwKLSAgICAgICAgIndpbGxTZW5kUmVxdWVzdCIsCi0gICAgICAgICJt
YXJrUmVzb3VyY2VBc0NhY2hlZCIsCi0gICAgICAgICJkaWRSZWNlaXZlUmVzcG9uc2UiLAotICAg
ICAgICAiZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgiLAotICAgICAgICAiZGlkRmluaXNoTG9hZGlu
ZyIsCi0gICAgICAgICJkaWRGYWlsTG9hZGluZyIsCi0gICAgICAgICJkaWRMb2FkUmVzb3VyY2VG
cm9tTWVtb3J5Q2FjaGUiLAotICAgICAgICAic2V0SW5pdGlhbENvbnRlbnQiLAotICAgICAgICAi
ZGlkQ29tbWl0TG9hZEZvckZyYW1lIiwKLSAgICAgICAgImZyYW1lRGV0YWNoZWRGcm9tUGFyZW50
IiwKLSAgICAgICAgImRpZENyZWF0ZVdlYlNvY2tldCIsCi0gICAgICAgICJ3aWxsU2VuZFdlYlNv
Y2tldEhhbmRzaGFrZVJlcXVlc3QiLAotICAgICAgICAiZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRz
aGFrZVJlc3BvbnNlIiwKLSAgICAgICAgImRpZENsb3NlV2ViU29ja2V0Iik7Ci0KICAgICB0aGlz
Ll9yZXNvdXJjZXNCeUlkID0ge307CiAgICAgdGhpcy5fcmVzb3VyY2VzQnlVUkwgPSB7fTsKICAg
ICB0aGlzLl9yZXNvdXJjZVRyZWVNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwoKTsKICAgICBJbnNwZWN0b3JCYWNrZW5kLmNhY2hlZFJlc291cmNlcyh0aGlzLl9wcm9j
ZXNzQ2FjaGVkUmVzb3VyY2VzLmJpbmQodGhpcykpOworICAgIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJEb21haW5EaXNwYXRjaGVyKCJSZXNvdXJjZXMiLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVj
dG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7Ci0gICAgX3JlZ2lzdGVyTm90aWZ5SGFu
ZGxlcnM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJn
dW1lbnRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yW2FyZ3VtZW50c1tp
XV0gPSB0aGlzW2FyZ3VtZW50c1tpXV0uYmluZCh0aGlzKTsKLSAgICB9LAotCiAgICAgaWRlbnRp
ZmllckZvckluaXRpYWxSZXF1ZXN0OiBmdW5jdGlvbihpZGVudGlmaWVyLCB1cmwsIGxvYWRlciwg
Y2FsbFN0YWNrKQogICAgIHsKICAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fY3JlYXRlUmVz
b3VyY2UoaWRlbnRpZmllciwgdXJsLCBsb2FkZXIsIGNhbGxTdGFjayk7CkBAIC00MjgsNiArNDA2
LDU5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAg
ICB9CiAKICAgICAgICAgZGVsZXRlIHRoaXMuX3Jlc291cmNlc0J5VVJMW3Jlc291cmNlLnVybF07
CisgICAgfSwKKworICAgIHVwZGF0ZURPTVN0b3JhZ2U6IGZ1bmN0aW9uKHN0b3JhZ2VJZCkKKyAg
ICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLnVwZGF0ZURPTVN0b3Jh
Z2Uoc3RvcmFnZUlkKTsKKyAgICB9LAorCisgICAgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1
czogZnVuY3Rpb24oc3RhdHVzKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5y
ZXNvdXJjZXMudXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhzdGF0dXMpOworICAgIH0sCisK
KyAgICBkaWRHZXRGaWxlU3lzdGVtUGF0aDogZnVuY3Rpb24ocm9vdCwgdHlwZSwgb3JpZ2luKQor
ICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMudXBkYXRlRmlsZVN5
c3RlbVBhdGgocm9vdCwgdHlwZSwgb3JpZ2luKTsKKyAgICB9LAorCisgICAgZGlkR2V0RmlsZVN5
c3RlbUVycm9yOiBmdW5jdGlvbih0eXBlLCBvcmlnaW4pCisgICAgeworICAgICAgICBXZWJJbnNw
ZWN0b3IucGFuZWxzLnJlc291cmNlcy51cGRhdGVGaWxlU3lzdGVtRXJyb3IodHlwZSwgb3JpZ2lu
KTsKKyAgICB9LAorCisgICAgZGlkR2V0RmlsZVN5c3RlbURpc2FibGVkOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zZXRGaWxlU3lzdGVt
RGlzYWJsZWQoKTsKKyAgICB9LAorCisgICAgdXBkYXRlTmV0d29ya1N0YXRlOiBmdW5jdGlvbihp
c05vd09ubGluZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2Vz
LnVwZGF0ZU5ldHdvcmtTdGF0ZShpc05vd09ubGluZSk7CisgICAgfSwKKworICAgIGFkZERhdGFi
YXNlOiBmdW5jdGlvbihwYXlsb2FkKQorICAgIHsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3Iu
cGFuZWxzLnJlc291cmNlcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIGRhdGFi
YXNlID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhYmFzZSgKKyAgICAgICAgICAgIHBheWxvYWQuaWQs
CisgICAgICAgICAgICBwYXlsb2FkLmRvbWFpbiwKKyAgICAgICAgICAgIHBheWxvYWQubmFtZSwK
KyAgICAgICAgICAgIHBheWxvYWQudmVyc2lvbik7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMucmVzb3VyY2VzLmFkZERhdGFiYXNlKGRhdGFiYXNlKTsKKyAgICB9LAorCisgICAgYWRkRE9N
U3RvcmFnZTogZnVuY3Rpb24ocGF5bG9hZCkKKyAgICB7CisgICAgICAgIGlmICghV2ViSW5zcGVj
dG9yLnBhbmVscy5yZXNvdXJjZXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciBk
b21TdG9yYWdlID0gbmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKAorICAgICAgICAgICAgcGF5
bG9hZC5pZCwKKyAgICAgICAgICAgIHBheWxvYWQuaG9zdCwKKyAgICAgICAgICAgIHBheWxvYWQu
aXNMb2NhbFN0b3JhZ2UpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5h
ZGRET01TdG9yYWdlKGRvbVN0b3JhZ2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggOGUxNjVkYy4uNzhjNzNkYSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xMjA4LDU5ICsxMjA4LDYgQEAgV2Vi
SW5zcGVjdG9yLmxvYWRFdmVudEZpcmVkID0gZnVuY3Rpb24odGltZSkKICAgICB0aGlzLm1haW5S
ZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKIH0KIAotV2ViSW5zcGVjdG9yLmFkZERhdGFiYXNlID0g
ZnVuY3Rpb24ocGF5bG9hZCkKLXsKLSAgICBpZiAoIXRoaXMucGFuZWxzLnJlc291cmNlcykKLSAg
ICAgICAgcmV0dXJuOwotICAgIHZhciBkYXRhYmFzZSA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0YWJh
c2UoCi0gICAgICAgIHBheWxvYWQuaWQsCi0gICAgICAgIHBheWxvYWQuZG9tYWluLAotICAgICAg
ICBwYXlsb2FkLm5hbWUsCi0gICAgICAgIHBheWxvYWQudmVyc2lvbik7Ci0gICAgdGhpcy5wYW5l
bHMucmVzb3VyY2VzLmFkZERhdGFiYXNlKGRhdGFiYXNlKTsKLX0KLQotV2ViSW5zcGVjdG9yLmFk
ZERPTVN0b3JhZ2UgPSBmdW5jdGlvbihwYXlsb2FkKQotewotICAgIGlmICghdGhpcy5wYW5lbHMu
cmVzb3VyY2VzKQotICAgICAgICByZXR1cm47Ci0gICAgdmFyIGRvbVN0b3JhZ2UgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2UoCi0gICAgICAgIHBheWxvYWQuaWQsCi0gICAgICAgIHBheWxv
YWQuaG9zdCwKLSAgICAgICAgcGF5bG9hZC5pc0xvY2FsU3RvcmFnZSk7Ci0gICAgdGhpcy5wYW5l
bHMucmVzb3VyY2VzLmFkZERPTVN0b3JhZ2UoZG9tU3RvcmFnZSk7Ci19Ci0KLVdlYkluc3BlY3Rv
ci51cGRhdGVET01TdG9yYWdlID0gZnVuY3Rpb24oc3RvcmFnZUlkKQotewotICAgIHRoaXMucGFu
ZWxzLnJlc291cmNlcy51cGRhdGVET01TdG9yYWdlKHN0b3JhZ2VJZCk7Ci19Ci0KLVdlYkluc3Bl
Y3Rvci51cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzID0gZnVuY3Rpb24oc3RhdHVzKQotewot
ICAgIHRoaXMucGFuZWxzLnJlc291cmNlcy51cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKHN0
YXR1cyk7Ci19Ci0KLVdlYkluc3BlY3Rvci5kaWRHZXRGaWxlU3lzdGVtUGF0aCA9IGZ1bmN0aW9u
KHJvb3QsIHR5cGUsIG9yaWdpbikKLXsKLSAgICB0aGlzLnBhbmVscy5yZXNvdXJjZXMudXBkYXRl
RmlsZVN5c3RlbVBhdGgocm9vdCwgdHlwZSwgb3JpZ2luKTsKLX0KLQotV2ViSW5zcGVjdG9yLmRp
ZEdldEZpbGVTeXN0ZW1FcnJvciA9IGZ1bmN0aW9uKHR5cGUsIG9yaWdpbikKLXsKLSAgICB0aGlz
LnBhbmVscy5yZXNvdXJjZXMudXBkYXRlRmlsZVN5c3RlbUVycm9yKHR5cGUsIG9yaWdpbik7Ci19
Ci0KLVdlYkluc3BlY3Rvci5kaWRHZXRGaWxlU3lzdGVtRGlzYWJsZWQgPSBmdW5jdGlvbigpCi17
Ci0gICAgdGhpcy5wYW5lbHMucmVzb3VyY2VzLnNldEZpbGVTeXN0ZW1EaXNhYmxlZCgpOwotfQot
Ci1XZWJJbnNwZWN0b3IudXBkYXRlTmV0d29ya1N0YXRlID0gZnVuY3Rpb24oaXNOb3dPbmxpbmUp
Ci17Ci0gICAgdGhpcy5wYW5lbHMucmVzb3VyY2VzLnVwZGF0ZU5ldHdvcmtTdGF0ZShpc05vd09u
bGluZSk7Ci19Ci0KIFdlYkluc3BlY3Rvci5zZWFyY2hpbmdGb3JOb2RlV2FzRW5hYmxlZCA9IGZ1
bmN0aW9uKCkKIHsKICAgICB0aGlzLnBhbmVscy5lbGVtZW50cy5zZWFyY2hpbmdGb3JOb2RlV2Fz
RW5hYmxlZCgpOwpAQCAtMTI3MSw1NiArMTIxOCw2IEBAIFdlYkluc3BlY3Rvci5zZWFyY2hpbmdG
b3JOb2RlV2FzRGlzYWJsZWQgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wYW5lbHMuZWxlbWVudHMu
c2VhcmNoaW5nRm9yTm9kZVdhc0Rpc2FibGVkKCk7CiB9CiAKLVdlYkluc3BlY3Rvci5hdHRhY2hE
ZWJ1Z2dlcldoZW5TaG93biA9IGZ1bmN0aW9uKCkKLXsKLSAgICB0aGlzLnBhbmVscy5zY3JpcHRz
LmF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7Ci19Ci0KLVdlYkluc3BlY3Rvci5kZWJ1Z2dlcldh
c0VuYWJsZWQgPSBmdW5jdGlvbigpCi17Ci0gICAgdGhpcy5wYW5lbHMuc2NyaXB0cy5kZWJ1Z2dl
cldhc0VuYWJsZWQoKTsKLX0KLQotV2ViSW5zcGVjdG9yLmRlYnVnZ2VyV2FzRGlzYWJsZWQgPSBm
dW5jdGlvbigpCi17Ci0gICAgdGhpcy5wYW5lbHMuc2NyaXB0cy5kZWJ1Z2dlcldhc0Rpc2FibGVk
KCk7Ci19Ci0KLVdlYkluc3BlY3Rvci5wcm9maWxlcldhc0VuYWJsZWQgPSBmdW5jdGlvbigpCi17
Ci0gICAgdGhpcy5wYW5lbHMucHJvZmlsZXMucHJvZmlsZXJXYXNFbmFibGVkKCk7Ci19Ci0KLVdl
Ykluc3BlY3Rvci5wcm9maWxlcldhc0Rpc2FibGVkID0gZnVuY3Rpb24oKQotewotICAgIHRoaXMu
cGFuZWxzLnByb2ZpbGVzLnByb2ZpbGVyV2FzRGlzYWJsZWQoKTsKLX0KLQotV2ViSW5zcGVjdG9y
LnBhcnNlZFNjcmlwdFNvdXJjZSA9IGZ1bmN0aW9uKHNvdXJjZUlELCBzb3VyY2VVUkwsIHNvdXJj
ZSwgc3RhcnRpbmdMaW5lLCBzY3JpcHRXb3JsZFR5cGUpCi17Ci0gICAgdGhpcy5wYW5lbHMuc2Ny
aXB0cy5hZGRTY3JpcHQoc291cmNlSUQsIHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBzY3JpcHRXb3JsZFR5cGUpOwotfQotCi1XZWJJbnNwZWN0
b3IucmVzdG9yZWRCcmVha3BvaW50ID0gZnVuY3Rpb24oc291cmNlSUQsIHNvdXJjZVVSTCwgbGlu
ZSwgZW5hYmxlZCwgY29uZGl0aW9uKQotewotICAgIHRoaXMuZGVidWdnZXJNb2RlbC5icmVha3Bv
aW50UmVzdG9yZWQoc291cmNlSUQsIHNvdXJjZVVSTCwgbGluZSwgZW5hYmxlZCwgY29uZGl0aW9u
KTsKLX0KLQotV2ViSW5zcGVjdG9yLmZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2UgPSBmdW5jdGlv
bihzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2Fn
ZSkKLXsKLSAgICB0aGlzLnBhbmVscy5zY3JpcHRzLmFkZFNjcmlwdChudWxsLCBzb3VyY2VVUkws
IHNvdXJjZSwgc3RhcnRpbmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVdl
Ykluc3BlY3Rvci5wYXVzZWRTY3JpcHQgPSBmdW5jdGlvbihkZXRhaWxzKQotewotICAgIHRoaXMu
ZGVidWdnZXJNb2RlbC5kZWJ1Z2dlclBhdXNlZChkZXRhaWxzKTsKLX0KLQotV2ViSW5zcGVjdG9y
LnJlc3VtZWRTY3JpcHQgPSBmdW5jdGlvbigpCi17Ci0gICAgdGhpcy5kZWJ1Z2dlck1vZGVsLmRl
YnVnZ2VyUmVzdW1lZCgpOwotfQotCiBXZWJJbnNwZWN0b3IucmVzZXQgPSBmdW5jdGlvbigpCiB7
CiAgICAgdGhpcy5kZWJ1Z2dlck1vZGVsLnJlc2V0KCk7CkBAIC0xMzQxLDEyICsxMjM4LDYgQEAg
V2ViSW5zcGVjdG9yLnJlc2V0ID0gZnVuY3Rpb24oKQogICAgIHRoaXMuYnJlYWtwb2ludE1hbmFn
ZXIucmVzdG9yZUJyZWFrcG9pbnRzKCk7CiB9CiAKLVdlYkluc3BlY3Rvci5yZXNldFByb2ZpbGVz
UGFuZWwgPSBmdW5jdGlvbigpCi17Ci0gICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmls
ZXMpCi0gICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMucmVzZXRQcm9maWxlcygp
OwotfQotCiBXZWJJbnNwZWN0b3IuYnJpbmdUb0Zyb250ID0gZnVuY3Rpb24oKQogewogICAgIElu
c3BlY3RvckZyb250ZW5kSG9zdC5icmluZ1RvRnJvbnQoKTsKQEAgLTEzNjMsMTIgKzEyNTQsNiBA
QCBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkVVJMQ2hhbmdlZCA9IGZ1bmN0aW9uKHVybCkKICAgICB9
CiB9CiAKLVdlYkluc3BlY3Rvci5kaWRDb21taXRMb2FkID0gZnVuY3Rpb24oKQotewotICAgIC8v
IENsZWFudXAgZWxlbWVudHMgcGFuZWwgZWFybHkgb24gaW5zcGVjdGVkIHBhZ2UgcmVmcmVzaC4K
LSAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuc2V0RG9jdW1lbnQobnVsbCk7Ci19Ci0KIFdlYklu
c3BlY3Rvci51cGRhdGVDb25zb2xlTWVzc2FnZUV4cGlyZWRDb3VudCA9IGZ1bmN0aW9uKGNvdW50
KQogewogICAgIHZhciBtZXNzYWdlID0gU3RyaW5nLnNwcmludGYoV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCIlZCBjb25zb2xlIG1lc3NhZ2VzIGFyZSBub3Qgc2hvd24uIiksIGNvdW50KTsKQEAgLTE0
ODEsNDEgKzEzNjYsNiBAQCBXZWJJbnNwZWN0b3IubG9nID0gZnVuY3Rpb24obWVzc2FnZSwgbWVz
c2FnZUxldmVsKQogICAgIGxvZ01lc3NhZ2UobWVzc2FnZSk7CiB9CiAKLVdlYkluc3BlY3Rvci5h
ZGRQcm9maWxlSGVhZGVyID0gZnVuY3Rpb24ocHJvZmlsZSkKLXsKLSAgICB0aGlzLnBhbmVscy5w
cm9maWxlcy5hZGRQcm9maWxlSGVhZGVyKHByb2ZpbGUpOwotfQotCi1XZWJJbnNwZWN0b3Iuc2V0
UmVjb3JkaW5nUHJvZmlsZSA9IGZ1bmN0aW9uKGlzUHJvZmlsaW5nKQotewotICAgIHRoaXMucGFu
ZWxzLnByb2ZpbGVzLmdldFByb2ZpbGVUeXBlKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5U
eXBlSWQpLnNldFJlY29yZGluZ1Byb2ZpbGUoaXNQcm9maWxpbmcpOwotICAgIGlmICh0aGlzLnBh
bmVscy5wcm9maWxlcy5oYXNUZW1wb3JhcnlQcm9maWxlKFdlYkluc3BlY3Rvci5DUFVQcm9maWxl
VHlwZS5UeXBlSWQpICE9PSBpc1Byb2ZpbGluZykgewotICAgICAgICBpZiAoIXRoaXMuX3RlbXBv
cmFyeVJlY29yZGluZ1Byb2ZpbGUpIHsKLSAgICAgICAgICAgIHRoaXMuX3RlbXBvcmFyeVJlY29y
ZGluZ1Byb2ZpbGUgPSB7Ci0gICAgICAgICAgICAgICAgdHlwZUlkOiBXZWJJbnNwZWN0b3IuQ1BV
UHJvZmlsZVR5cGUuVHlwZUlkLAotICAgICAgICAgICAgICAgIHRpdGxlOiBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlJlY29yZGluZ+KApiIpLAotICAgICAgICAgICAgICAgIHVpZDogLTEsCi0gICAg
ICAgICAgICAgICAgaXNUZW1wb3Jhcnk6IHRydWUKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH0K
LSAgICAgICAgaWYgKGlzUHJvZmlsaW5nKQotICAgICAgICAgICAgdGhpcy5wYW5lbHMucHJvZmls
ZXMuYWRkUHJvZmlsZUhlYWRlcih0aGlzLl90ZW1wb3JhcnlSZWNvcmRpbmdQcm9maWxlKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5wYW5lbHMucHJvZmlsZXMucmVtb3ZlUHJvZmls
ZUhlYWRlcih0aGlzLl90ZW1wb3JhcnlSZWNvcmRpbmdQcm9maWxlKTsKLSAgICB9Ci0gICAgdGhp
cy5wYW5lbHMucHJvZmlsZXMudXBkYXRlUHJvZmlsZVR5cGVCdXR0b25zKCk7Ci19Ci0KLVdlYklu
c3BlY3Rvci5hZGRIZWFwU25hcHNob3RDaHVuayA9IGZ1bmN0aW9uKHVpZCwgY2h1bmspCi17Ci0g
ICAgdGhpcy5wYW5lbHMucHJvZmlsZXMuYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlkLCBjaHVuayk7
Ci19Ci0KLVdlYkluc3BlY3Rvci5maW5pc2hIZWFwU25hcHNob3QgPSBmdW5jdGlvbih1aWQpCi17
Ci0gICAgdGhpcy5wYW5lbHMucHJvZmlsZXMuZmluaXNoSGVhcFNuYXBzaG90KHVpZCk7Ci19Ci0K
IFdlYkluc3BlY3Rvci5kcmF3TG9hZGluZ1BpZUNoYXJ0ID0gZnVuY3Rpb24oY2FudmFzLCBwZXJj
ZW50KSB7CiAgICAgdmFyIGcgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICB2YXIgZGFy
a0NvbG9yID0gInJnYigxMjIsIDE2OCwgMjE4KSI7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyN2U2OTVlLi5m
MThjMzkyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMi0xMyAgSWx5YSBU
aWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdG9jb2wgY2xlYW51
cCB0YXNrLiBBc3NpZ24gZG9tYWluIGF0dHJpYnV0ZSB0byBSZXNvdXJjZXMgYW5kIERlYnVnZ2Vy
IHNwZWNpZmljIGZ1bmN0aW9ucy4KKworICAgICAgICBEZWJ1Z2dlciBhbmQgUmVzb3VyY2VzIHJl
bGF0ZWQgbm90aWZpY2F0aW9uIGZ1bmN0aW9ucyBvZiBJbnNwZWN0b3IuaWRsIHdlcmUgCisgICAg
ICAgIG1hcmtlZCBhcyBzdWNoIHdpdGggaGVscCBvZiAiZG9tYWluIiBhdHRyaWJ1dGUuIFRoZSBv
dGhlciBjaGFuZ2VzIGluIGpzIGZpbGVzIAorICAgICAgICBhcmUgcmVmbGVjdGluZyB0aGlzIGNo
YW5nZS4gU29tZSB3cmFwcGVycyBpbiBXZWJJbnNwZWN0b3IgbmFtZXNwYWNlIHdlcmUgZHJvcHBl
ZCwgCisgICAgICAgIHRoZSBvdGhlcnMgd2VyZSBtb3ZlZCB0byBEZWJ1Z2dlck1vZGVsIGNsYXNz
LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDkw
NgorCisgICAgICAgICogc3JjL2pzL1Rlc3RzLmpzOgorICAgICAgICAoLlRlc3RTdWl0ZS5wcm90
b3R5cGUuX3dhaXRGb3JTY3JpcHRQYXVzZSk6CisKIDIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvVGVzdHMuanMgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL2pzL1Rlc3RzLmpzCmluZGV4IDJiMjY0ZWUuLmI4ZGMxODkgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvanMvVGVzdHMuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9qcy9UZXN0cy5qcwpAQCAtNzMwLDcgKzczMCw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUuX3dh
aXRGb3JTY3JpcHRQYXVzZSA9IGZ1bmN0aW9uKGV4cGVjdGF0aW9ucywgY2FsbGJhY2spCiAgICAg
dmFyIHRlc3QgPSB0aGlzOwogICAgIC8vIFdhaXQgdW50aWwgc2NyaXB0IGlzIHBhdXNlZC4KICAg
ICB0ZXN0LmFkZFNuaWZmZXIoCi0gICAgICAgIFdlYkluc3BlY3RvciwKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwsCiAgICAgICAgICJwYXVzZWRTY3JpcHQiLAogICAgICAgICBm
dW5jdGlvbihkZXRhaWxzKSB7CiAgICAgICAgICAgICB2YXIgY2FsbEZyYW1lcyA9IGRldGFpbHMu
Y2FsbEZyYW1lczsKQEAgLTg1Miw3ICs4NTIsNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RQ
YXVzZUluRXZhbCA9IGZ1bmN0aW9uKCkKIAogICAgIGRldnRvb2xzLnRvb2xzLmV2YWx1YXRlSmF2
YVNjcmlwdCgiZmliKDEwKSIpOwogCi0gICAgdGhpcy5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvciwg
InBhdXNlZFNjcmlwdCIsCisgICAgdGhpcy5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLCAicGF1c2VkU2NyaXB0IiwKICAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB0ZXN0LnJlbGVhc2VDb250cm9sKCk7CiAgICAgICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76365</attachid>
            <date>2010-12-13 03:06:26 -0800</date>
            <delta_ts>2010-12-13 03:22:02 -0800</delta_ts>
            <desc>[patch] second iteration</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>32801</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2N2EzYTljLi43NGMyY2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMTIt
MTMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3Rv
Y29sIGNsZWFudXAgdGFzay4gQXNzaWduIGRvbWFpbiBhdHRyaWJ1dGUgdG8gUmVzb3VyY2VzIGFu
ZCBEZWJ1Z2dlciBzcGVjaWZpYyBmdW5jdGlvbnMuCisKKyAgICAgICAgRGVidWdnZXIgYW5kIFJl
c291cmNlcyByZWxhdGVkIG5vdGlmaWNhdGlvbiBmdW5jdGlvbnMgb2YgSW5zcGVjdG9yLmlkbCB3
ZXJlCisgICAgICAgIG1hcmtlZCBhcyBzdWNoIHdpdGggaGVscCBvZiAiZG9tYWluIiBhdHRyaWJ1
dGUuIFRoZSBvdGhlciBjaGFuZ2VzIGluIGpzIGZpbGVzCisgICAgICAgIGFyZSByZWZsZWN0aW5n
IHRoaXMgY2hhbmdlLiBTb21lIHdyYXBwZXJzIGluIFdlYkluc3BlY3RvciBuYW1lc3BhY2Ugd2Vy
ZSBkcm9wcGVkLAorICAgICAgICB0aGUgb3RoZXJzIHdlcmUgbW92ZWQgdG8gRGVidWdnZXJNb2Rl
bCBjbGFzcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTA5MDYKKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3Qy
LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QuSW5zcGVjdG9yVGVzdC5zdGFy
dERlYnVnZ2VyVGVzdC5zdGFydFRlc3QpOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRl
c3QuSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdCk6CisgICAgICAgIChpbml0aWFsaXpl
X0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdnZXJUZXN0LmRpc2FibGVE
ZWJ1Z2dlcik6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC5JbnNwZWN0b3JUZXN0
LnNob3dTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dDoKKwogMjAxMC0xMi0xMyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QyLmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKaW5kZXgg
NmMxOWZmOS4uOTkzMWQ0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXItdGVzdDIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXItdGVzdDIuanMKQEAgLTcsMTUgKzcsMTUgQEAgSW5zcGVjdG9yVGVzdC5z
dGFydERlYnVnZ2VyVGVzdCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIGlmIChXZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuX2RlYnVnZ2VyRW5hYmxlZCkKICAgICAgICAgc3RhcnRUZXN0KCk7
CiAgICAgZWxzZSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVj
dG9yLCAiZGVidWdnZXJXYXNFbmFibGVkIiwgc3RhcnRUZXN0KTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgImRlYnVnZ2VyV2Fz
RW5hYmxlZCIsIHN0YXJ0VGVzdCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0
cy5fdG9nZ2xlRGVidWdnaW5nKGZhbHNlKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzdGFydFRl
c3QoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkRlYnVnZ2VyIHdh
cyBlbmFibGVkLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3Bl
Y3RvciwgInBhdXNlZFNjcmlwdCIsIEluc3BlY3RvclRlc3QuX3BhdXNlZFNjcmlwdCwgdHJ1ZSk7
Ci0gICAgICAgIEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLCAicmVzdW1l
ZFNjcmlwdCIsIEluc3BlY3RvclRlc3QuX3Jlc3VtZWRTY3JpcHQsIHRydWUpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0Ll9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAicGF1
c2VkU2NyaXB0IiwgSW5zcGVjdG9yVGVzdC5fcGF1c2VkU2NyaXB0LCB0cnVlKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgInJl
c3VtZWRTY3JpcHQiLCBJbnNwZWN0b3JUZXN0Ll9yZXN1bWVkU2NyaXB0LCB0cnVlKTsKICAgICAg
ICAgY2FsbGJhY2soKTsKICAgICB9CiB9OwpAQCAtMzQsNyArMzQsNyBAQCBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlRGVidWdnZXJUZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICBpZiAoIXNjcmlwdHNQ
YW5lbC5fZGVidWdnZXJFbmFibGVkKQogICAgICAgICAgICAgY29tcGxldGVUZXN0KCk7CiAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNw
ZWN0b3IsICJkZWJ1Z2dlcldhc0Rpc2FibGVkIiwgY29tcGxldGVUZXN0KTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJk
ZWJ1Z2dlcldhc0Rpc2FibGVkIiwgY29tcGxldGVUZXN0KTsKICAgICAgICAgICAgIHNjcmlwdHNQ
YW5lbC5fdG9nZ2xlRGVidWdnaW5nKGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KQEAgLTExNiw3
ICsxMTYsNyBAQCBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbihzY3Jp
cHROYW1lLCBjYWxsYmFjaykKICAgICBpZiAoSW5zcGVjdG9yVGVzdC5fc2NyaXB0c0FyZVBhcnNl
ZChbc2NyaXB0TmFtZV0pKQogICAgICAgICBJbnNwZWN0b3JUZXN0Ll9zaG93U2NyaXB0U291cmNl
KHNjcmlwdE5hbWUsIGNhbGxiYWNrKTsKICAgICBlbHNlCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
X2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLCAicGFyc2VkU2NyaXB0U291cmNlIiwgSW5zcGVjdG9y
VGVzdC5zaG93U2NyaXB0U291cmNlLmJpbmQoSW5zcGVjdG9yVGVzdCwgc2NyaXB0TmFtZSwgY2Fs
bGJhY2spKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5fYWRkU25pZmZlcihXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbCwgInBhcnNlZFNjcmlwdFNvdXJjZSIsIEluc3BlY3RvclRlc3Quc2hvd1Nj
cmlwdFNvdXJjZS5iaW5kKEluc3BlY3RvclRlc3QsIHNjcmlwdE5hbWUsIGNhbGxiYWNrKSk7CiB9
OwogCiBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbEN1cnJlbnRTb3VyY2VGcmFtZUlzTG9hZGVkID0g
ZnVuY3Rpb24oY2FsbGJhY2spCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGVlZTZjNGYuLjFlYmU1YmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTAt
MTItMTMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBy
b3RvY29sIGNsZWFudXAgdGFzay4gQXNzaWduIGRvbWFpbiBhdHRyaWJ1dGUgdG8gUmVzb3VyY2Vz
IGFuZCBEZWJ1Z2dlciBzcGVjaWZpYyBmdW5jdGlvbnMuCisKKyAgICAgICAgRGVidWdnZXIgYW5k
IFJlc291cmNlcyByZWxhdGVkIG5vdGlmaWNhdGlvbiBmdW5jdGlvbnMgb2YgSW5zcGVjdG9yLmlk
bCB3ZXJlCisgICAgICAgIG1hcmtlZCBhcyBzdWNoIHdpdGggaGVscCBvZiAiZG9tYWluIiBhdHRy
aWJ1dGUuIFRoZSBvdGhlciBjaGFuZ2VzIGluIGpzIGZpbGVzCisgICAgICAgIGFyZSByZWZsZWN0
aW5nIHRoaXMgY2hhbmdlLiBTb21lIHdyYXBwZXJzIGluIFdlYkluc3BlY3RvciBuYW1lc3BhY2Ug
d2VyZSBkcm9wcGVkLAorICAgICAgICB0aGUgb3RoZXJzIHdlcmUgbW92ZWQgdG8gRGVidWdnZXJN
b2RlbCBjbGFzcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTA5MDYKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZFBhcnNlU291cmNlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQcm9maWxlckFnZW50OjpyZXNldFN0YXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnBy
b3RvdHlwZS5kaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUucGF1c2VkU2NyaXB0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5yZXN1bWVk
U2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5h
dHRhY2hEZWJ1Z2dlcldoZW5TaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5wcm90b3R5cGUuZGVidWdnZXJXYXNFbmFibGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5kZWJ1Z2dlcldhc0Rpc2FibGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5wYXJzZWRTY3JpcHRTb3VyY2Up
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlLmZhaWxlZFRv
UGFyc2VTY3JpcHRTb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmls
ZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5hZGRIZWFwU25hcHNob3Rz
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS51cGRhdGVN
YWluVmlld1dpZHRoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3Rv
dHlwZS5zZXRSZWNvcmRpbmdQcm9maWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFn
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuX3Vu
YmluZFJlc291cmNlVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIu
cHJvdG90eXBlLnVwZGF0ZURPTVN0b3JhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291
cmNlTWFuYWdlci5wcm90b3R5cGUudXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5kaWRHZXRGaWxlU3lz
dGVtUGF0aCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlw
ZS5kaWRHZXRGaWxlU3lzdGVtRXJyb3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNl
TWFuYWdlci5wcm90b3R5cGUuZGlkR2V0RmlsZVN5c3RlbURpc2FibGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLnVwZGF0ZU5ldHdvcmtTdGF0ZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5hZGREYXRh
YmFzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5h
ZGRET01TdG9yYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
czoKKwogMjAxMC0xMi0xMyAgWm9sdGFuIEhlcmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRs
CmluZGV4IGMyMTRmNzQuLjc1MDYxODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtMzMs
NDQgKzMzLDQ0IEBACiBtb2R1bGUgY29yZSB7CiAgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1J
TlNQRUNUT1JdIEluc3BlY3RvciB7CiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1UaW1lbGluZV0g
dm9pZCBhZGRSZWNvcmRUb1RpbWVsaW5lKG91dCBPYmplY3QgcmVjb3JkKTsKLSAgICAgICAgW25v
dGlmeV0gdm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0KG91dCBBcnJheSBub2RlSWRzKTsKKyAg
ICAgICAgW25vdGlmeSwgZG9tYWluPUluc3BlY3Rvcl0gdm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVz
dWx0KG91dCBBcnJheSBub2RlSWRzKTsKICAgICAgICAgW25vdGlmeSwgZG9tYWluPURPTV0gdm9p
ZCBhdHRyaWJ1dGVzVXBkYXRlZChvdXQgbG9uZyBpZCwgb3V0IEFycmF5IGF0dHJpYnV0ZXMpOwot
ICAgICAgICBbbm90aWZ5XSB2b2lkIGJyaW5nVG9Gcm9udCgpOworICAgICAgICBbbm90aWZ5LCBk
b21haW49SW5zcGVjdG9yXSB2b2lkIGJyaW5nVG9Gcm9udCgpOwogICAgICAgICBbbm90aWZ5LCBk
b21haW49RE9NXSB2b2lkIGNoYXJhY3RlckRhdGFNb2RpZmllZChvdXQgbG9uZyBpZCwgb3V0IFN0
cmluZyBuZXdWYWx1ZSk7CiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1ET01dIHZvaWQgY2hpbGRO
b2RlQ291bnRVcGRhdGVkKG91dCBsb25nIGlkLCBvdXQgaW50IG5ld1ZhbHVlKTsKICAgICAgICAg
W25vdGlmeSwgZG9tYWluPURPTV0gdm9pZCBjaGlsZE5vZGVJbnNlcnRlZChvdXQgbG9uZyBwYXJl
bnRJZCwgb3V0IGxvbmcgcHJldklkLCBvdXQgT2JqZWN0IG5vZGUpOwogICAgICAgICBbbm90aWZ5
LCBkb21haW49RE9NXSB2b2lkIGNoaWxkTm9kZVJlbW92ZWQob3V0IGxvbmcgcGFyZW50SWQsIG91
dCBsb25nIGlkKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRDb21taXRMb2FkKCk7Ci0gICAg
ICAgIFtub3RpZnldIHZvaWQgZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChvdXQgbG9uZyB0ZXN0
Q2FsbElkLCBvdXQgU3RyaW5nIHNjcmlwdCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgZGlzY29u
bmVjdEZyb21CYWNrZW5kKCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgZG9tQ29udGVudEV2ZW50
RmlyZWQob3V0IGRvdWJsZSB0aW1lKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBpbnNwZWN0ZWRV
UkxDaGFuZ2VkKG91dCBTdHJpbmcgdXJsKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBsb2FkRXZl
bnRGaXJlZChvdXQgZG91YmxlIHRpbWUpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHJlc2V0KCk7
Ci0gICAgICAgIFtub3RpZnldIHZvaWQgcmVzZXRQcm9maWxlc1BhbmVsKCk7CisgICAgICAgIFtu
b3RpZnksIGRvbWFpbj1ET01dIHZvaWQgZGlkQ29tbWl0TG9hZCgpOworICAgICAgICBbbm90aWZ5
LCBkb21haW49SW5zcGVjdG9yXSB2b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQob3V0IGxv
bmcgdGVzdENhbGxJZCwgb3V0IFN0cmluZyBzY3JpcHQpOworICAgICAgICBbbm90aWZ5LCBkb21h
aW49SW5zcGVjdG9yXSB2b2lkIGRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpOworICAgICAgICBbbm90
aWZ5LCBkb21haW49SW5zcGVjdG9yXSB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKG91dCBkb3Vi
bGUgdGltZSk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1JbnNwZWN0b3JdIHZvaWQgaW5zcGVj
dGVkVVJMQ2hhbmdlZChvdXQgU3RyaW5nIHVybCk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1J
bnNwZWN0b3JdIHZvaWQgbG9hZEV2ZW50RmlyZWQob3V0IGRvdWJsZSB0aW1lKTsKKyAgICAgICAg
W25vdGlmeSwgZG9tYWluPUluc3BlY3Rvcl0gdm9pZCByZXNldCgpOworICAgICAgICBbbm90aWZ5
LCBkb21haW49UHJvZmlsZXJdIHZvaWQgcmVzZXRQcm9maWxlcygpOwogICAgICAgICBbbm90aWZ5
LCBkb21haW49RE9NXSB2b2lkIHNldENoaWxkTm9kZXMob3V0IGxvbmcgcGFyZW50SWQsIG91dCBB
cnJheSBub2Rlcyk7CiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1ET01dIHZvaWQgc2V0RGV0YWNo
ZWRSb290KG91dCBPYmplY3Qgcm9vdCk7CiAgICAgICAgIFtub3RpZnksIGRvbWFpbj1ET01dIHZv
aWQgc2V0RG9jdW1lbnQob3V0IFZhbHVlIHJvb3QpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHNo
b3dQYW5lbChvdXQgU3RyaW5nIHBhbmVsKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPUluc3Bl
Y3Rvcl0gdm9pZCBzaG93UGFuZWwob3V0IFN0cmluZyBwYW5lbCk7CiAgICAgICAgIFtub3RpZnks
IGRvbWFpbj1UaW1lbGluZV0gdm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3RhcnRlZCgpOwogICAg
ICAgICBbbm90aWZ5LCBkb21haW49VGltZWxpbmVdIHZvaWQgdGltZWxpbmVQcm9maWxlcldhc1N0
b3BwZWQoKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCB1cGRhdGVGb2N1c2VkTm9kZShvdXQgbG9u
ZyBub2RlSWQpOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJiYg
RU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIKLSAgICAgICAgW25vdGlmeV0gdm9pZCBhZGRQcm9m
aWxlSGVhZGVyKG91dCBPYmplY3QgaGVhZGVyKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBhZGRI
ZWFwU25hcHNob3RDaHVuayhvdXQgdW5zaWduZWQgbG9uZyB1aWQsIG91dCBTdHJpbmcgY2h1bmsp
OwotICAgICAgICBbbm90aWZ5XSB2b2lkIGF0dGFjaERlYnVnZ2VyV2hlblNob3duKCk7Ci0gICAg
ICAgIFtub3RpZnldIHZvaWQgZGVidWdnZXJXYXNFbmFibGVkKCk7Ci0gICAgICAgIFtub3RpZnld
IHZvaWQgZGVidWdnZXJXYXNEaXNhYmxlZCgpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIGZhaWxl
ZFRvUGFyc2VTY3JpcHRTb3VyY2Uob3V0IFN0cmluZyB1cmwsIG91dCBTdHJpbmcgZGF0YSwgb3V0
IGludCBmaXJzdExpbmUsIG91dCBpbnQgZXJyb3JMaW5lLCBvdXQgU3RyaW5nIGVycm9yTWVzc2Fn
ZSk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgZmluaXNoSGVhcFNuYXBzaG90KG91dCB1bnNpZ25l
ZCBsb25nIHVpZCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgcGFyc2VkU2NyaXB0U291cmNlKG91
dCBTdHJpbmcgc291cmNlSUQsIG91dCBTdHJpbmcgdXJsLCBvdXQgU3RyaW5nIGRhdGEsIG91dCBp
bnQgZmlyc3RMaW5lLCBvdXQgaW50IHNjcmlwdFdvcmxkVHlwZSk7Ci0gICAgICAgIFtub3RpZnld
IHZvaWQgcGF1c2VkU2NyaXB0KG91dCBPYmplY3QgZGV0YWlscyk7Ci0gICAgICAgIFtub3RpZnld
IHZvaWQgcHJvZmlsZXJXYXNFbmFibGVkKCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgcHJvZmls
ZXJXYXNEaXNhYmxlZCgpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHJlc3RvcmVkQnJlYWtwb2lu
dChvdXQgU3RyaW5nIHNvdXJjZUlELCBvdXQgU3RyaW5nIHVybCwgb3V0IGludCBsaW5lLCBvdXQg
Ym9vbGVhbiBlbmFibGVkLCBvdXQgU3RyaW5nIGNvbmRpdGlvbik7Ci0gICAgICAgIFtub3RpZnld
IHZvaWQgcmVzdW1lZFNjcmlwdCgpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHNldFJlY29yZGlu
Z1Byb2ZpbGUob3V0IGJvb2xlYW4gaXNQcm9maWxpbmcpOworICAgICAgICBbbm90aWZ5LCBkb21h
aW49UHJvZmlsZXJdIHZvaWQgYWRkUHJvZmlsZUhlYWRlcihvdXQgT2JqZWN0IGhlYWRlcik7Cisg
ICAgICAgIFtub3RpZnksIGRvbWFpbj1Qcm9maWxlcl0gdm9pZCBhZGRIZWFwU25hcHNob3RDaHVu
ayhvdXQgdW5zaWduZWQgbG9uZyB1aWQsIG91dCBTdHJpbmcgY2h1bmspOworICAgICAgICBbbm90
aWZ5LCBkb21haW49RGVidWdnZXJdIHZvaWQgYXR0YWNoRGVidWdnZXJXaGVuU2hvd24oKTsKKyAg
ICAgICAgW25vdGlmeSwgZG9tYWluPURlYnVnZ2VyXSB2b2lkIGRlYnVnZ2VyV2FzRW5hYmxlZCgp
OworICAgICAgICBbbm90aWZ5LCBkb21haW49RGVidWdnZXJdIHZvaWQgZGVidWdnZXJXYXNEaXNh
YmxlZCgpOworICAgICAgICBbbm90aWZ5LCBkb21haW49RGVidWdnZXJdIHZvaWQgZmFpbGVkVG9Q
YXJzZVNjcmlwdFNvdXJjZShvdXQgU3RyaW5nIHVybCwgb3V0IFN0cmluZyBkYXRhLCBvdXQgaW50
IGZpcnN0TGluZSwgb3V0IGludCBlcnJvckxpbmUsIG91dCBTdHJpbmcgZXJyb3JNZXNzYWdlKTsK
KyAgICAgICAgW25vdGlmeSwgZG9tYWluPVByb2ZpbGVyXSB2b2lkIGZpbmlzaEhlYXBTbmFwc2hv
dChvdXQgdW5zaWduZWQgbG9uZyB1aWQpOworICAgICAgICBbbm90aWZ5LCBkb21haW49RGVidWdn
ZXJdIHZvaWQgcGFyc2VkU2NyaXB0U291cmNlKG91dCBTdHJpbmcgc291cmNlSUQsIG91dCBTdHJp
bmcgdXJsLCBvdXQgU3RyaW5nIGRhdGEsIG91dCBpbnQgZmlyc3RMaW5lLCBvdXQgaW50IHNjcmlw
dFdvcmxkVHlwZSk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1EZWJ1Z2dlcl0gdm9pZCBwYXVz
ZWRTY3JpcHQob3V0IE9iamVjdCBkZXRhaWxzKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVBy
b2ZpbGVyXSB2b2lkIHByb2ZpbGVyV2FzRW5hYmxlZCgpOworICAgICAgICBbbm90aWZ5LCBkb21h
aW49UHJvZmlsZXJdIHZvaWQgcHJvZmlsZXJXYXNEaXNhYmxlZCgpOworICAgICAgICBbbm90aWZ5
LCBkb21haW49RGVidWdnZXJdIHZvaWQgYnJlYWtwb2ludFJlc3RvcmVkKG91dCBTdHJpbmcgc291
cmNlSUQsIG91dCBTdHJpbmcgdXJsLCBvdXQgaW50IGxpbmUsIG91dCBib29sZWFuIGVuYWJsZWQs
IG91dCBTdHJpbmcgY29uZGl0aW9uKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPURlYnVnZ2Vy
XSB2b2lkIHJlc3VtZWRTY3JpcHQoKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVByb2ZpbGVy
XSB2b2lkIHNldFJlY29yZGluZ1Byb2ZpbGUob3V0IGJvb2xlYW4gaXNQcm9maWxpbmcpOwogICAg
ICAgICBbbm90aWZ5XSB2b2lkIHVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3RhdGUob3V0IGxvbmcg
c3RhdGUpOwogI2VuZGlmCiAjaWYgZGVmaW5lZChFTkFCTEVfREFUQUJBU0UpICYmIEVOQUJMRV9E
QVRBQkFTRQpAQCAtNzgsOSArNzgsOSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtub3RpZnld
IHZvaWQgc2VsZWN0RGF0YWJhc2Uob3V0IGludCBkYXRhYmFzZUlkKTsKICNlbmRpZgogI2lmIGRl
ZmluZWQoRU5BQkxFX0RPTV9TVE9SQUdFKSAmJiBFTkFCTEVfRE9NX1NUT1JBR0UKLSAgICAgICAg
W25vdGlmeV0gdm9pZCBhZGRET01TdG9yYWdlKG91dCBPYmplY3Qgc3RvcmFnZSk7Ci0gICAgICAg
IFtub3RpZnldIHZvaWQgdXBkYXRlRE9NU3RvcmFnZShvdXQgaW50IHN0b3JhZ2VJZCk7Ci0gICAg
ICAgIFtub3RpZnldIHZvaWQgc2VsZWN0RE9NU3RvcmFnZShvdXQgaW50IHN0b3JhZ2VJZCk7Cisg
ICAgICAgIFtub3RpZnksIGRvbWFpbj1SZXNvdXJjZXNdIHZvaWQgYWRkRE9NU3RvcmFnZShvdXQg
T2JqZWN0IHN0b3JhZ2UpOworICAgICAgICBbbm90aWZ5LCBkb21haW49UmVzb3VyY2VzXSB2b2lk
IHVwZGF0ZURPTVN0b3JhZ2Uob3V0IGludCBzdG9yYWdlSWQpOworICAgICAgICBbbm90aWZ5LCBk
b21haW49UmVzb3VyY2VzXSB2b2lkIHNlbGVjdERPTVN0b3JhZ2Uob3V0IGludCBzdG9yYWdlSWQp
OwogI2VuZGlmCiAjaWYgZGVmaW5lZChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAm
JiBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TCiAgICAgICAgIFtub3RpZnldIHZvaWQg
dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhvdXQgaW50IHN0YXR1cyk7CkBAIC0xMDcsMjIg
KzEwNywyMiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgW2RvbWFpbj1SZXNvdXJjZXNdIHZv
aWQgY2FjaGVkUmVzb3VyY2VzKG91dCBPYmplY3QgcmVzb3VyY2VzKTsKICAgICAgICAgW2RvbWFp
bj1SZXNvdXJjZXNdIHZvaWQgcmVzb3VyY2VDb250ZW50KGluIHVuc2lnbmVkIGxvbmcgZnJhbWVJ
ZCwgaW4gU3RyaW5nIHVybCwgaW4gYm9vbGVhbiBiYXNlNjRFbmNvZGUsIG91dCBTdHJpbmcgY29u
dGVudCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgaWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0
KG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBTdHJpbmcgdXJsLCBvdXQgT2JqZWN0IGxvYWRlciwg
b3V0IFZhbHVlIGNhbGxTdGFjayk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0KG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGltZSwgb3V0IE9iamVjdCByZXF1
ZXN0LCBvdXQgT2JqZWN0IHJlZGlyZWN0UmVzcG9uc2UpOwotICAgICAgICBbbm90aWZ5XSB2b2lk
IG1hcmtSZXNvdXJjZUFzQ2FjaGVkKG91dCBsb25nIGlkZW50aWZpZXIpOwotICAgICAgICBbbm90
aWZ5XSB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQgZG91
YmxlIHRpbWUsIG91dCBTdHJpbmcgcmVzb3VyY2VUeXBlLCBvdXQgT2JqZWN0IHJlc3BvbnNlKTsK
LSAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aChvdXQgbG9uZyBp
ZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBsb25nIGxlbmd0aFJlY2VpdmVkKTsKLSAg
ICAgICAgW25vdGlmeV0gdm9pZCBkaWRGaW5pc2hMb2FkaW5nKG91dCBsb25nIGlkZW50aWZpZXIs
IG91dCBkb3VibGUgZmluaXNoVGltZSk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgZGlkRmFpbExv
YWRpbmcob3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgU3RyaW5nIGxv
Y2FsaXplZERlc2NyaXB0aW9uKTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRMb2FkUmVzb3Vy
Y2VGcm9tTWVtb3J5Q2FjaGUob3V0IGRvdWJsZSB0aW1lLCBvdXQgT2JqZWN0IHJlc291cmNlKTsK
LSAgICAgICAgW25vdGlmeV0gdm9pZCBzZXRJbml0aWFsQ29udGVudChvdXQgbG9uZyBpZGVudGlm
aWVyLCBvdXQgU3RyaW5nIHNvdXJjZVN0cmluZywgb3V0IFN0cmluZyB0eXBlKTsKLSAgICAgICAg
W25vdGlmeV0gdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUob3V0IE9iamVjdCBmcmFtZSwgb3V0
IE9iamVjdCBsb2FkZXIpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIGZyYW1lRGV0YWNoZWRGcm9t
UGFyZW50KG91dCB1bnNpZ25lZCBsb25nIGZyYW1lSWQpOwotCi0gICAgICAgIFtub3RpZnldIHZv
aWQgZGlkQ3JlYXRlV2ViU29ja2V0KG91dCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIG91dCBT
dHJpbmcgcmVxdWVzdFVSTCk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgd2lsbFNlbmRXZWJTb2Nr
ZXRIYW5kc2hha2VSZXF1ZXN0KG91dCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3Vi
bGUgdGltZSwgb3V0IE9iamVjdCByZXF1ZXN0KTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRS
ZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2Uob3V0IHVuc2lnbmVkIGxvbmcgaWRlbnRp
Zmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgT2JqZWN0IHJlc3BvbnNlKTsKLSAgICAgICAgW25v
dGlmeV0gdm9pZCBkaWRDbG9zZVdlYlNvY2tldChvdXQgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBvdXQgZG91YmxlIHRpbWUpOworICAgICAgICBbbm90aWZ5LCBkb21haW49UmVzb3VyY2VzXSB2
b2lkIGlkZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdChvdXQgbG9uZyBpZGVudGlmaWVyLCBvdXQg
U3RyaW5nIHVybCwgb3V0IE9iamVjdCBsb2FkZXIsIG91dCBWYWx1ZSBjYWxsU3RhY2spOworICAg
ICAgICBbbm90aWZ5LCBkb21haW49UmVzb3VyY2VzXSB2b2lkIHdpbGxTZW5kUmVxdWVzdChvdXQg
bG9uZyBpZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBPYmplY3QgcmVxdWVzdCwgb3V0
IE9iamVjdCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgW25vdGlmeSwgZG9tYWluPVJlc291
cmNlc10gdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZChvdXQgbG9uZyBpZGVudGlmaWVyKTsKKyAg
ICAgICAgW25vdGlmeSwgZG9tYWluPVJlc291cmNlc10gdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
b3V0IGxvbmcgaWRlbnRpZmllciwgb3V0IGRvdWJsZSB0aW1lLCBvdXQgU3RyaW5nIHJlc291cmNl
VHlwZSwgb3V0IE9iamVjdCByZXNwb25zZSk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1SZXNv
dXJjZXNdIHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgob3V0IGxvbmcgaWRlbnRpZmllciwg
b3V0IGRvdWJsZSB0aW1lLCBvdXQgbG9uZyBsZW5ndGhSZWNlaXZlZCk7CisgICAgICAgIFtub3Rp
ZnksIGRvbWFpbj1SZXNvdXJjZXNdIHZvaWQgZGlkRmluaXNoTG9hZGluZyhvdXQgbG9uZyBpZGVu
dGlmaWVyLCBvdXQgZG91YmxlIGZpbmlzaFRpbWUpOworICAgICAgICBbbm90aWZ5LCBkb21haW49
UmVzb3VyY2VzXSB2b2lkIGRpZEZhaWxMb2FkaW5nKG91dCBsb25nIGlkZW50aWZpZXIsIG91dCBk
b3VibGUgdGltZSwgb3V0IFN0cmluZyBsb2NhbGl6ZWREZXNjcmlwdGlvbik7CisgICAgICAgIFtu
b3RpZnksIGRvbWFpbj1SZXNvdXJjZXNdIHZvaWQgZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNh
Y2hlKG91dCBkb3VibGUgdGltZSwgb3V0IE9iamVjdCByZXNvdXJjZSk7CisgICAgICAgIFtub3Rp
ZnksIGRvbWFpbj1SZXNvdXJjZXNdIHZvaWQgc2V0SW5pdGlhbENvbnRlbnQob3V0IGxvbmcgaWRl
bnRpZmllciwgb3V0IFN0cmluZyBzb3VyY2VTdHJpbmcsIG91dCBTdHJpbmcgdHlwZSk7CisgICAg
ICAgIFtub3RpZnksIGRvbWFpbj1SZXNvdXJjZXNdIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1l
KG91dCBPYmplY3QgZnJhbWUsIG91dCBPYmplY3QgbG9hZGVyKTsKKyAgICAgICAgW25vdGlmeSwg
ZG9tYWluPVJlc291cmNlc10gdm9pZCBmcmFtZURldGFjaGVkRnJvbVBhcmVudChvdXQgdW5zaWdu
ZWQgbG9uZyBmcmFtZUlkKTsKKworICAgICAgICBbbm90aWZ5LCBkb21haW49UmVzb3VyY2VzXSB2
b2lkIGRpZENyZWF0ZVdlYlNvY2tldChvdXQgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBvdXQg
U3RyaW5nIHJlcXVlc3RVUkwpOworICAgICAgICBbbm90aWZ5LCBkb21haW49UmVzb3VyY2VzXSB2
b2lkIHdpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChvdXQgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBvdXQgZG91YmxlIHRpbWUsIG91dCBPYmplY3QgcmVxdWVzdCk7CisgICAgICAg
IFtub3RpZnksIGRvbWFpbj1SZXNvdXJjZXNdIHZvaWQgZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRz
aGFrZVJlc3BvbnNlKG91dCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIG91dCBkb3VibGUgdGlt
ZSwgb3V0IE9iamVjdCByZXNwb25zZSk7CisgICAgICAgIFtub3RpZnksIGRvbWFpbj1SZXNvdXJj
ZXNdIHZvaWQgZGlkQ2xvc2VXZWJTb2NrZXQob3V0IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
b3V0IGRvdWJsZSB0aW1lKTsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdH
RVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCiAgICAgICAgIFtkb21haW49QmFja2Vu
ZF0gdm9pZCBlbmFibGVEZWJ1Z2dlcihpbiBib29sZWFuIGFsd2F5cyk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGIzY2FhMmUuLjBiMThiMGMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3Bw
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0y
OTIsNyArMjkyLDcgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXJzZVNvdXJj
ZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBjb25zdCBTdHJpbmcKICAgICAgICAgICAgIGJvb2wg
c3VjY2VzcyA9IFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5zZXRCcmVha3BvaW50KHNvdXJj
ZUlELCBicmVha3BvaW50SXQtPnNlY29uZCwgbGluZU51bWJlciwgJmFjdHVhbExpbmVOdW1iZXIp
OwogICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgbV9mcm9udGVuZC0+cmVzdG9yZWRCcmVha3BvaW50KHNvdXJjZUlELCB1cmws
IGFjdHVhbExpbmVOdW1iZXIsIGJyZWFrcG9pbnRJdC0+c2Vjb25kLmVuYWJsZWQsIGJyZWFrcG9p
bnRJdC0+c2Vjb25kLmNvbmRpdGlvbik7CisgICAgICAgICAgICBtX2Zyb250ZW5kLT5icmVha3Bv
aW50UmVzdG9yZWQoc291cmNlSUQsIHVybCwgYWN0dWFsTGluZU51bWJlciwgYnJlYWtwb2ludEl0
LT5zZWNvbmQuZW5hYmxlZCwgYnJlYWtwb2ludEl0LT5zZWNvbmQuY29uZGl0aW9uKTsKICAgICAg
ICAgICAgIFN0cmluZyBicmVha3BvaW50SWQgPSBmb3JtYXRCcmVha3BvaW50SWQoc291cmNlSUQs
IGFjdHVhbExpbmVOdW1iZXIpOwogICAgICAgICAgICAgbV9icmVha3BvaW50c01hcHBpbmcuc2V0
KGJyZWFrcG9pbnRJZCwgbGluZU51bWJlcik7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggNmQ1MzY0Zi4uYWM2N2ExYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKQEAgLTIxMSw3
ICsyMTEsNyBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc2V0U3RhdGUoKQogICAg
IG1fbmV4dFVzZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVyID0gMTsKICAgICBtX25leHRVc2VySW5p
dGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyID0gMTsKICAgICBpZiAobV9mcm9udGVuZCkKLSAgICAg
ICAgbV9mcm9udGVuZC0+cmVzZXRQcm9maWxlc1BhbmVsKCk7CisgICAgICAgIG1fZnJvbnRlbmQt
PnJlc2V0UHJvZmlsZXMoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFy
dFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFn
ZW50LmpzCmluZGV4IDljZTA4ZjkuLjQzMmFjM2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKQEAgLTM3Myw2ICszNzMsMTIgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50
LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07
CiAgICAgfSwKIAorICAgIGRpZENvbW1pdExvYWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IC8vIENsZWFudXAgZWxlbWVudHMgcGFuZWwgZWFybHkgb24gaW5zcGVjdGVkIHBhZ2UgcmVmcmVz
aC4KKyAgICAgICAgdGhpcy5zZXREb2N1bWVudChudWxsKTsKKyAgICB9LAorCiAgICAgc2V0RG9j
dW1lbnQ6IGZ1bmN0aW9uKHBheWxvYWQpCiAgICAgewogICAgICAgICB0aGlzLl9pZFRvRE9NTm9k
ZSA9IHt9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
TW9kZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpp
bmRleCBhMzM3ZjVjLi42MDZkNTAyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJNb2RlbC5qcwpAQCAtMzEsNiArMzEsNyBAQAogV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TW9kZWwgPSBmdW5jdGlvbigpCiB7CiAgICAgdGhpcy5fYnJlYWtwb2ludHMgPSB7fTsKKyAgICBJ
bnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRG9tYWluRGlzcGF0Y2hlcigiRGVidWdnZXIiLCB0aGlz
KTsKIH0KIAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewpAQCAtMTI3
LDcgKzEyOCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zZXRCcmVha3BvaW50KGJyZWFrcG9pbnQuc291cmNlSUQs
IGJyZWFrcG9pbnQubGluZSwgYnJlYWtwb2ludC5lbmFibGVkLCBicmVha3BvaW50LmNvbmRpdGlv
biwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKICAgICB9LAogCi0gICAgZGVidWdnZXJQ
YXVzZWQ6IGZ1bmN0aW9uKGRldGFpbHMpCisgICAgcGF1c2VkU2NyaXB0OiBmdW5jdGlvbihkZXRh
aWxzKQogICAgIHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoImRlYnVn
Z2VyLXBhdXNlZCIsIGRldGFpbHMuY2FsbEZyYW1lcyk7CiAKQEAgLTE0Nyw3ICsxNDgsNyBAQCBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJzY3JpcHQtYnJlYWtwb2ludC1oaXQiLCBicmVha3BvaW50
KTsKICAgICB9LAogCi0gICAgZGVidWdnZXJSZXN1bWVkOiBmdW5jdGlvbigpCisgICAgcmVzdW1l
ZFNjcmlwdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoImRlYnVnZ2VyLXJlc3VtZWQiKTsKIApAQCAtMTU1LDcgKzE1NiwzNCBAQCBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIHRoaXMuX2xhc3RIaXRCcmVha3BvaW50LmhpdCA9IGZhbHNlOwogICAgICAgICBk
ZWxldGUgdGhpcy5fbGFzdEhpdEJyZWFrcG9pbnQ7CisgICAgfSwKKworICAgIGF0dGFjaERlYnVn
Z2VyV2hlblNob3duOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLnNjcmlwdHMuYXR0YWNoRGVidWdnZXJXaGVuU2hvd24oKTsKKyAgICB9LAorCisgICAgZGVi
dWdnZXJXYXNFbmFibGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnNjcmlwdHMuZGVidWdnZXJXYXNFbmFibGVkKCk7CisgICAgfSwKKworICAgIGRlYnVn
Z2VyV2FzRGlzYWJsZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5w
YW5lbHMuc2NyaXB0cy5kZWJ1Z2dlcldhc0Rpc2FibGVkKCk7CisgICAgfSwKKworICAgIHBhcnNl
ZFNjcmlwdFNvdXJjZTogZnVuY3Rpb24oc291cmNlSUQsIHNvdXJjZVVSTCwgc291cmNlLCBzdGFy
dGluZ0xpbmUsIHNjcmlwdFdvcmxkVHlwZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5w
YW5lbHMuc2NyaXB0cy5hZGRTY3JpcHQoc291cmNlSUQsIHNvdXJjZVVSTCwgc291cmNlLCBzdGFy
dGluZ0xpbmUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBzY3JpcHRXb3JsZFR5cGUpOworICAgIH0s
CisKKyAgICBmYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNv
dXJjZSwgc3RhcnRpbmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSkKKyAgICB7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5hZGRTY3JpcHQobnVsbCwgc291cmNlVVJM
LCBzb3VyY2UsIHN0YXJ0aW5nTGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOwogICAgIH0K
KworCiB9CiAKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18g
PSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggODZkOGQ5MC4uM2UzMWJhNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTEyNCw2ICsxMjQs
NyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9w
cm9maWxlcyA9IFtdOwogICAgIHRoaXMuX3Byb2ZpbGVyRW5hYmxlZCA9IFByZWZlcmVuY2VzLnBy
b2ZpbGVyQWx3YXlzRW5hYmxlZDsKICAgICB0aGlzLl9yZXNldCgpOworICAgIEluc3BlY3RvckJh
Y2tlbmQucmVnaXN0ZXJEb21haW5EaXNwYXRjaGVyKCJQcm9maWxlciIsIHRoaXMpOwogfQogCiBX
ZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CkBAIC01OTcsNyArNTk4LDcg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dmFyIHByb2ZpbGVIZWFkZXJzTGVuZ3RoID0gcHJvZmlsZUhlYWRlcnMubGVuZ3RoOwogICAgICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9maWxlSGVhZGVyc0xlbmd0aDsgKytpKQogICAg
ICAgICAgICAgICAgIGlmICghdGhpcy5oYXNQcm9maWxlKHByb2ZpbGVIZWFkZXJzW2ldKSkKLSAg
ICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmFkZFByb2ZpbGVIZWFkZXIocHJvZmlsZUhl
YWRlcnNbaV0pOworICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2Zp
bGVzLmFkZFByb2ZpbGVIZWFkZXIocHJvZmlsZUhlYWRlcnNbaV0pOwogICAgICAgICB9CiAKICAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRQcm9maWxlSGVhZGVycyhwb3B1bGF0ZUNhbGxiYWNr
LmJpbmQodGhpcykpOwpAQCAtNjExLDYgKzYxMiwyNiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMucHJvZmlsZVZpZXdzLnN0eWxlLmxlZnQg
PSB3aWR0aCArICJweCI7CiAgICAgICAgIHRoaXMucHJvZmlsZVZpZXdTdGF0dXNCYXJJdGVtc0Nv
bnRhaW5lci5zdHlsZS5sZWZ0ID0gTWF0aC5tYXgoMTU1LCB3aWR0aCkgKyAicHgiOwogICAgICAg
ICB0aGlzLnJlc2l6ZSgpOworICAgIH0sCisKKyAgICBzZXRSZWNvcmRpbmdQcm9maWxlOiBmdW5j
dGlvbihpc1Byb2ZpbGluZykKKyAgICB7CisgICAgICAgIHRoaXMuZ2V0UHJvZmlsZVR5cGUoV2Vi
SW5zcGVjdG9yLkNQVVByb2ZpbGVUeXBlLlR5cGVJZCkuc2V0UmVjb3JkaW5nUHJvZmlsZShpc1By
b2ZpbGluZyk7CisgICAgICAgIGlmICh0aGlzLmhhc1RlbXBvcmFyeVByb2ZpbGUoV2ViSW5zcGVj
dG9yLkNQVVByb2ZpbGVUeXBlLlR5cGVJZCkgIT09IGlzUHJvZmlsaW5nKSB7CisgICAgICAgICAg
ICBpZiAoIXRoaXMuX3RlbXBvcmFyeVJlY29yZGluZ1Byb2ZpbGUpIHsKKyAgICAgICAgICAgICAg
ICB0aGlzLl90ZW1wb3JhcnlSZWNvcmRpbmdQcm9maWxlID0geworICAgICAgICAgICAgICAgICAg
ICB0eXBlSWQ6IFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5UeXBlSWQsCisgICAgICAgICAg
ICAgICAgICAgIHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY29yZGluZyIpLAorICAg
ICAgICAgICAgICAgICAgICB1aWQ6IC0xLAorICAgICAgICAgICAgICAgICAgICBpc1RlbXBvcmFy
eTogdHJ1ZQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICB9CisgICAgICAgICAgICBp
ZiAoaXNQcm9maWxpbmcpCisgICAgICAgICAgICAgICAgdGhpcy5hZGRQcm9maWxlSGVhZGVyKHRo
aXMuX3RlbXBvcmFyeVJlY29yZGluZ1Byb2ZpbGUpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHRoaXMucmVtb3ZlUHJvZmlsZUhlYWRlcih0aGlzLl90ZW1wb3JhcnlSZWNvcmRp
bmdQcm9maWxlKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLnVwZGF0ZVByb2ZpbGVUeXBlQnV0
dG9ucygpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlTWFuYWdlci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZU1hbmFnZXIuanMKaW5kZXggOWYzNWVkMi4uYjRmNDExNCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlTWFuYWdlci5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VNYW5hZ2VyLmpzCkBAIC0zMCwzNiArMzAsMTQgQEAK
IAogV2ViSW5zcGVjdG9yLlJlc291cmNlTWFuYWdlciA9IGZ1bmN0aW9uKCkKIHsKLSAgICB0aGlz
Ll9yZWdpc3Rlck5vdGlmeUhhbmRsZXJzKAotICAgICAgICAiaWRlbnRpZmllckZvckluaXRpYWxS
ZXF1ZXN0IiwKLSAgICAgICAgIndpbGxTZW5kUmVxdWVzdCIsCi0gICAgICAgICJtYXJrUmVzb3Vy
Y2VBc0NhY2hlZCIsCi0gICAgICAgICJkaWRSZWNlaXZlUmVzcG9uc2UiLAotICAgICAgICAiZGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgiLAotICAgICAgICAiZGlkRmluaXNoTG9hZGluZyIsCi0gICAg
ICAgICJkaWRGYWlsTG9hZGluZyIsCi0gICAgICAgICJkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5
Q2FjaGUiLAotICAgICAgICAic2V0SW5pdGlhbENvbnRlbnQiLAotICAgICAgICAiZGlkQ29tbWl0
TG9hZEZvckZyYW1lIiwKLSAgICAgICAgImZyYW1lRGV0YWNoZWRGcm9tUGFyZW50IiwKLSAgICAg
ICAgImRpZENyZWF0ZVdlYlNvY2tldCIsCi0gICAgICAgICJ3aWxsU2VuZFdlYlNvY2tldEhhbmRz
aGFrZVJlcXVlc3QiLAotICAgICAgICAiZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3Bv
bnNlIiwKLSAgICAgICAgImRpZENsb3NlV2ViU29ja2V0Iik7Ci0KICAgICB0aGlzLl9yZXNvdXJj
ZXNCeUlkID0ge307CiAgICAgdGhpcy5fcmVzb3VyY2VzQnlVUkwgPSB7fTsKICAgICB0aGlzLl9y
ZXNvdXJjZVRyZWVNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwoKTsK
ICAgICBJbnNwZWN0b3JCYWNrZW5kLmNhY2hlZFJlc291cmNlcyh0aGlzLl9wcm9jZXNzQ2FjaGVk
UmVzb3VyY2VzLmJpbmQodGhpcykpOworICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21h
aW5EaXNwYXRjaGVyKCJSZXNvdXJjZXMiLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLlJlc291
cmNlTWFuYWdlci5wcm90b3R5cGUgPSB7Ci0gICAgX3JlZ2lzdGVyTm90aWZ5SGFuZGxlcnM6IGZ1
bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxl
bmd0aDsgKytpKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yW2FyZ3VtZW50c1tpXV0gPSB0aGlz
W2FyZ3VtZW50c1tpXV0uYmluZCh0aGlzKTsKLSAgICB9LAotCiAgICAgaWRlbnRpZmllckZvcklu
aXRpYWxSZXF1ZXN0OiBmdW5jdGlvbihpZGVudGlmaWVyLCB1cmwsIGxvYWRlciwgY2FsbFN0YWNr
KQogICAgIHsKICAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fY3JlYXRlUmVzb3VyY2UoaWRl
bnRpZmllciwgdXJsLCBsb2FkZXIsIGNhbGxTdGFjayk7CkBAIC00MjgsNiArNDA2LDU5IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAg
ICAgICAgZGVsZXRlIHRoaXMuX3Jlc291cmNlc0J5VVJMW3Jlc291cmNlLnVybF07CisgICAgfSwK
KworICAgIHVwZGF0ZURPTVN0b3JhZ2U6IGZ1bmN0aW9uKHN0b3JhZ2VJZCkKKyAgICB7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLnVwZGF0ZURPTVN0b3JhZ2Uoc3RvcmFn
ZUlkKTsKKyAgICB9LAorCisgICAgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1czogZnVuY3Rp
b24oc3RhdHVzKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMu
dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhzdGF0dXMpOworICAgIH0sCisKKyAgICBkaWRH
ZXRGaWxlU3lzdGVtUGF0aDogZnVuY3Rpb24ocm9vdCwgdHlwZSwgb3JpZ2luKQorICAgIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMudXBkYXRlRmlsZVN5c3RlbVBhdGgo
cm9vdCwgdHlwZSwgb3JpZ2luKTsKKyAgICB9LAorCisgICAgZGlkR2V0RmlsZVN5c3RlbUVycm9y
OiBmdW5jdGlvbih0eXBlLCBvcmlnaW4pCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLnJlc291cmNlcy51cGRhdGVGaWxlU3lzdGVtRXJyb3IodHlwZSwgb3JpZ2luKTsKKyAgICB9
LAorCisgICAgZGlkR2V0RmlsZVN5c3RlbURpc2FibGVkOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zZXRGaWxlU3lzdGVtRGlzYWJsZWQo
KTsKKyAgICB9LAorCisgICAgdXBkYXRlTmV0d29ya1N0YXRlOiBmdW5jdGlvbihpc05vd09ubGlu
ZSkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3VyY2VzLnVwZGF0ZU5l
dHdvcmtTdGF0ZShpc05vd09ubGluZSk7CisgICAgfSwKKworICAgIGFkZERhdGFiYXNlOiBmdW5j
dGlvbihwYXlsb2FkKQorICAgIHsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IucGFuZWxzLnJl
c291cmNlcykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIGRhdGFiYXNlID0gbmV3
IFdlYkluc3BlY3Rvci5EYXRhYmFzZSgKKyAgICAgICAgICAgIHBheWxvYWQuaWQsCisgICAgICAg
ICAgICBwYXlsb2FkLmRvbWFpbiwKKyAgICAgICAgICAgIHBheWxvYWQubmFtZSwKKyAgICAgICAg
ICAgIHBheWxvYWQudmVyc2lvbik7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3Vy
Y2VzLmFkZERhdGFiYXNlKGRhdGFiYXNlKTsKKyAgICB9LAorCisgICAgYWRkRE9NU3RvcmFnZTog
ZnVuY3Rpb24ocGF5bG9hZCkKKyAgICB7CisgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVs
cy5yZXNvdXJjZXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciBkb21TdG9yYWdl
ID0gbmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKAorICAgICAgICAgICAgcGF5bG9hZC5pZCwK
KyAgICAgICAgICAgIHBheWxvYWQuaG9zdCwKKyAgICAgICAgICAgIHBheWxvYWQuaXNMb2NhbFN0
b3JhZ2UpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5hZGRET01TdG9y
YWdlKGRvbVN0b3JhZ2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKaW5kZXggOGUxNjVkYy4uNzhjNzNkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xMjA4LDU5ICsxMjA4LDYgQEAgV2ViSW5zcGVjdG9y
LmxvYWRFdmVudEZpcmVkID0gZnVuY3Rpb24odGltZSkKICAgICB0aGlzLm1haW5SZXNvdXJjZUxv
YWRUaW1lID0gdGltZTsKIH0KIAotV2ViSW5zcGVjdG9yLmFkZERhdGFiYXNlID0gZnVuY3Rpb24o
cGF5bG9hZCkKLXsKLSAgICBpZiAoIXRoaXMucGFuZWxzLnJlc291cmNlcykKLSAgICAgICAgcmV0
dXJuOwotICAgIHZhciBkYXRhYmFzZSA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0YWJhc2UoCi0gICAg
ICAgIHBheWxvYWQuaWQsCi0gICAgICAgIHBheWxvYWQuZG9tYWluLAotICAgICAgICBwYXlsb2Fk
Lm5hbWUsCi0gICAgICAgIHBheWxvYWQudmVyc2lvbik7Ci0gICAgdGhpcy5wYW5lbHMucmVzb3Vy
Y2VzLmFkZERhdGFiYXNlKGRhdGFiYXNlKTsKLX0KLQotV2ViSW5zcGVjdG9yLmFkZERPTVN0b3Jh
Z2UgPSBmdW5jdGlvbihwYXlsb2FkKQotewotICAgIGlmICghdGhpcy5wYW5lbHMucmVzb3VyY2Vz
KQotICAgICAgICByZXR1cm47Ci0gICAgdmFyIGRvbVN0b3JhZ2UgPSBuZXcgV2ViSW5zcGVjdG9y
LkRPTVN0b3JhZ2UoCi0gICAgICAgIHBheWxvYWQuaWQsCi0gICAgICAgIHBheWxvYWQuaG9zdCwK
LSAgICAgICAgcGF5bG9hZC5pc0xvY2FsU3RvcmFnZSk7Ci0gICAgdGhpcy5wYW5lbHMucmVzb3Vy
Y2VzLmFkZERPTVN0b3JhZ2UoZG9tU3RvcmFnZSk7Ci19Ci0KLVdlYkluc3BlY3Rvci51cGRhdGVE
T01TdG9yYWdlID0gZnVuY3Rpb24oc3RvcmFnZUlkKQotewotICAgIHRoaXMucGFuZWxzLnJlc291
cmNlcy51cGRhdGVET01TdG9yYWdlKHN0b3JhZ2VJZCk7Ci19Ci0KLVdlYkluc3BlY3Rvci51cGRh
dGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzID0gZnVuY3Rpb24oc3RhdHVzKQotewotICAgIHRoaXMu
cGFuZWxzLnJlc291cmNlcy51cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKHN0YXR1cyk7Ci19
Ci0KLVdlYkluc3BlY3Rvci5kaWRHZXRGaWxlU3lzdGVtUGF0aCA9IGZ1bmN0aW9uKHJvb3QsIHR5
cGUsIG9yaWdpbikKLXsKLSAgICB0aGlzLnBhbmVscy5yZXNvdXJjZXMudXBkYXRlRmlsZVN5c3Rl
bVBhdGgocm9vdCwgdHlwZSwgb3JpZ2luKTsKLX0KLQotV2ViSW5zcGVjdG9yLmRpZEdldEZpbGVT
eXN0ZW1FcnJvciA9IGZ1bmN0aW9uKHR5cGUsIG9yaWdpbikKLXsKLSAgICB0aGlzLnBhbmVscy5y
ZXNvdXJjZXMudXBkYXRlRmlsZVN5c3RlbUVycm9yKHR5cGUsIG9yaWdpbik7Ci19Ci0KLVdlYklu
c3BlY3Rvci5kaWRHZXRGaWxlU3lzdGVtRGlzYWJsZWQgPSBmdW5jdGlvbigpCi17Ci0gICAgdGhp
cy5wYW5lbHMucmVzb3VyY2VzLnNldEZpbGVTeXN0ZW1EaXNhYmxlZCgpOwotfQotCi1XZWJJbnNw
ZWN0b3IudXBkYXRlTmV0d29ya1N0YXRlID0gZnVuY3Rpb24oaXNOb3dPbmxpbmUpCi17Ci0gICAg
dGhpcy5wYW5lbHMucmVzb3VyY2VzLnVwZGF0ZU5ldHdvcmtTdGF0ZShpc05vd09ubGluZSk7Ci19
Ci0KIFdlYkluc3BlY3Rvci5zZWFyY2hpbmdGb3JOb2RlV2FzRW5hYmxlZCA9IGZ1bmN0aW9uKCkK
IHsKICAgICB0aGlzLnBhbmVscy5lbGVtZW50cy5zZWFyY2hpbmdGb3JOb2RlV2FzRW5hYmxlZCgp
OwpAQCAtMTI3MSw1NiArMTIxOCw2IEBAIFdlYkluc3BlY3Rvci5zZWFyY2hpbmdGb3JOb2RlV2Fz
RGlzYWJsZWQgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5wYW5lbHMuZWxlbWVudHMuc2VhcmNoaW5n
Rm9yTm9kZVdhc0Rpc2FibGVkKCk7CiB9CiAKLVdlYkluc3BlY3Rvci5hdHRhY2hEZWJ1Z2dlcldo
ZW5TaG93biA9IGZ1bmN0aW9uKCkKLXsKLSAgICB0aGlzLnBhbmVscy5zY3JpcHRzLmF0dGFjaERl
YnVnZ2VyV2hlblNob3duKCk7Ci19Ci0KLVdlYkluc3BlY3Rvci5kZWJ1Z2dlcldhc0VuYWJsZWQg
PSBmdW5jdGlvbigpCi17Ci0gICAgdGhpcy5wYW5lbHMuc2NyaXB0cy5kZWJ1Z2dlcldhc0VuYWJs
ZWQoKTsKLX0KLQotV2ViSW5zcGVjdG9yLmRlYnVnZ2VyV2FzRGlzYWJsZWQgPSBmdW5jdGlvbigp
Ci17Ci0gICAgdGhpcy5wYW5lbHMuc2NyaXB0cy5kZWJ1Z2dlcldhc0Rpc2FibGVkKCk7Ci19Ci0K
LVdlYkluc3BlY3Rvci5wcm9maWxlcldhc0VuYWJsZWQgPSBmdW5jdGlvbigpCi17Ci0gICAgdGhp
cy5wYW5lbHMucHJvZmlsZXMucHJvZmlsZXJXYXNFbmFibGVkKCk7Ci19Ci0KLVdlYkluc3BlY3Rv
ci5wcm9maWxlcldhc0Rpc2FibGVkID0gZnVuY3Rpb24oKQotewotICAgIHRoaXMucGFuZWxzLnBy
b2ZpbGVzLnByb2ZpbGVyV2FzRGlzYWJsZWQoKTsKLX0KLQotV2ViSW5zcGVjdG9yLnBhcnNlZFNj
cmlwdFNvdXJjZSA9IGZ1bmN0aW9uKHNvdXJjZUlELCBzb3VyY2VVUkwsIHNvdXJjZSwgc3RhcnRp
bmdMaW5lLCBzY3JpcHRXb3JsZFR5cGUpCi17Ci0gICAgdGhpcy5wYW5lbHMuc2NyaXB0cy5hZGRT
Y3JpcHQoc291cmNlSUQsIHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUsIHVuZGVmaW5l
ZCwgdW5kZWZpbmVkLCBzY3JpcHRXb3JsZFR5cGUpOwotfQotCi1XZWJJbnNwZWN0b3IucmVzdG9y
ZWRCcmVha3BvaW50ID0gZnVuY3Rpb24oc291cmNlSUQsIHNvdXJjZVVSTCwgbGluZSwgZW5hYmxl
ZCwgY29uZGl0aW9uKQotewotICAgIHRoaXMuZGVidWdnZXJNb2RlbC5icmVha3BvaW50UmVzdG9y
ZWQoc291cmNlSUQsIHNvdXJjZVVSTCwgbGluZSwgZW5hYmxlZCwgY29uZGl0aW9uKTsKLX0KLQot
V2ViSW5zcGVjdG9yLmZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbihzb3VyY2VV
UkwsIHNvdXJjZSwgc3RhcnRpbmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSkKLXsKLSAg
ICB0aGlzLnBhbmVscy5zY3JpcHRzLmFkZFNjcmlwdChudWxsLCBzb3VyY2VVUkwsIHNvdXJjZSwg
c3RhcnRpbmdMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSk7Ci19Ci0KLVdlYkluc3BlY3Rv
ci5wYXVzZWRTY3JpcHQgPSBmdW5jdGlvbihkZXRhaWxzKQotewotICAgIHRoaXMuZGVidWdnZXJN
b2RlbC5kZWJ1Z2dlclBhdXNlZChkZXRhaWxzKTsKLX0KLQotV2ViSW5zcGVjdG9yLnJlc3VtZWRT
Y3JpcHQgPSBmdW5jdGlvbigpCi17Ci0gICAgdGhpcy5kZWJ1Z2dlck1vZGVsLmRlYnVnZ2VyUmVz
dW1lZCgpOwotfQotCiBXZWJJbnNwZWN0b3IucmVzZXQgPSBmdW5jdGlvbigpCiB7CiAgICAgdGhp
cy5kZWJ1Z2dlck1vZGVsLnJlc2V0KCk7CkBAIC0xMzQxLDEyICsxMjM4LDYgQEAgV2ViSW5zcGVj
dG9yLnJlc2V0ID0gZnVuY3Rpb24oKQogICAgIHRoaXMuYnJlYWtwb2ludE1hbmFnZXIucmVzdG9y
ZUJyZWFrcG9pbnRzKCk7CiB9CiAKLVdlYkluc3BlY3Rvci5yZXNldFByb2ZpbGVzUGFuZWwgPSBm
dW5jdGlvbigpCi17Ci0gICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMpCi0gICAg
ICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMucmVzZXRQcm9maWxlcygpOwotfQotCiBX
ZWJJbnNwZWN0b3IuYnJpbmdUb0Zyb250ID0gZnVuY3Rpb24oKQogewogICAgIEluc3BlY3RvckZy
b250ZW5kSG9zdC5icmluZ1RvRnJvbnQoKTsKQEAgLTEzNjMsMTIgKzEyNTQsNiBAQCBXZWJJbnNw
ZWN0b3IuaW5zcGVjdGVkVVJMQ2hhbmdlZCA9IGZ1bmN0aW9uKHVybCkKICAgICB9CiB9CiAKLVdl
Ykluc3BlY3Rvci5kaWRDb21taXRMb2FkID0gZnVuY3Rpb24oKQotewotICAgIC8vIENsZWFudXAg
ZWxlbWVudHMgcGFuZWwgZWFybHkgb24gaW5zcGVjdGVkIHBhZ2UgcmVmcmVzaC4KLSAgICBXZWJJ
bnNwZWN0b3IuZG9tQWdlbnQuc2V0RG9jdW1lbnQobnVsbCk7Ci19Ci0KIFdlYkluc3BlY3Rvci51
cGRhdGVDb25zb2xlTWVzc2FnZUV4cGlyZWRDb3VudCA9IGZ1bmN0aW9uKGNvdW50KQogewogICAg
IHZhciBtZXNzYWdlID0gU3RyaW5nLnNwcmludGYoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIlZCBj
b25zb2xlIG1lc3NhZ2VzIGFyZSBub3Qgc2hvd24uIiksIGNvdW50KTsKQEAgLTE0ODEsNDEgKzEz
NjYsNiBAQCBXZWJJbnNwZWN0b3IubG9nID0gZnVuY3Rpb24obWVzc2FnZSwgbWVzc2FnZUxldmVs
KQogICAgIGxvZ01lc3NhZ2UobWVzc2FnZSk7CiB9CiAKLVdlYkluc3BlY3Rvci5hZGRQcm9maWxl
SGVhZGVyID0gZnVuY3Rpb24ocHJvZmlsZSkKLXsKLSAgICB0aGlzLnBhbmVscy5wcm9maWxlcy5h
ZGRQcm9maWxlSGVhZGVyKHByb2ZpbGUpOwotfQotCi1XZWJJbnNwZWN0b3Iuc2V0UmVjb3JkaW5n
UHJvZmlsZSA9IGZ1bmN0aW9uKGlzUHJvZmlsaW5nKQotewotICAgIHRoaXMucGFuZWxzLnByb2Zp
bGVzLmdldFByb2ZpbGVUeXBlKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5UeXBlSWQpLnNl
dFJlY29yZGluZ1Byb2ZpbGUoaXNQcm9maWxpbmcpOwotICAgIGlmICh0aGlzLnBhbmVscy5wcm9m
aWxlcy5oYXNUZW1wb3JhcnlQcm9maWxlKFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlwZS5UeXBl
SWQpICE9PSBpc1Byb2ZpbGluZykgewotICAgICAgICBpZiAoIXRoaXMuX3RlbXBvcmFyeVJlY29y
ZGluZ1Byb2ZpbGUpIHsKLSAgICAgICAgICAgIHRoaXMuX3RlbXBvcmFyeVJlY29yZGluZ1Byb2Zp
bGUgPSB7Ci0gICAgICAgICAgICAgICAgdHlwZUlkOiBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5
cGUuVHlwZUlkLAotICAgICAgICAgICAgICAgIHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlJlY29yZGluZ+KApiIpLAotICAgICAgICAgICAgICAgIHVpZDogLTEsCi0gICAgICAgICAgICAg
ICAgaXNUZW1wb3Jhcnk6IHRydWUKLSAgICAgICAgICAgIH07Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKGlzUHJvZmlsaW5nKQotICAgICAgICAgICAgdGhpcy5wYW5lbHMucHJvZmlsZXMuYWRkUHJv
ZmlsZUhlYWRlcih0aGlzLl90ZW1wb3JhcnlSZWNvcmRpbmdQcm9maWxlKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgdGhpcy5wYW5lbHMucHJvZmlsZXMucmVtb3ZlUHJvZmlsZUhlYWRlcih0
aGlzLl90ZW1wb3JhcnlSZWNvcmRpbmdQcm9maWxlKTsKLSAgICB9Ci0gICAgdGhpcy5wYW5lbHMu
cHJvZmlsZXMudXBkYXRlUHJvZmlsZVR5cGVCdXR0b25zKCk7Ci19Ci0KLVdlYkluc3BlY3Rvci5h
ZGRIZWFwU25hcHNob3RDaHVuayA9IGZ1bmN0aW9uKHVpZCwgY2h1bmspCi17Ci0gICAgdGhpcy5w
YW5lbHMucHJvZmlsZXMuYWRkSGVhcFNuYXBzaG90Q2h1bmsodWlkLCBjaHVuayk7Ci19Ci0KLVdl
Ykluc3BlY3Rvci5maW5pc2hIZWFwU25hcHNob3QgPSBmdW5jdGlvbih1aWQpCi17Ci0gICAgdGhp
cy5wYW5lbHMucHJvZmlsZXMuZmluaXNoSGVhcFNuYXBzaG90KHVpZCk7Ci19Ci0KIFdlYkluc3Bl
Y3Rvci5kcmF3TG9hZGluZ1BpZUNoYXJ0ID0gZnVuY3Rpb24oY2FudmFzLCBwZXJjZW50KSB7CiAg
ICAgdmFyIGcgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKICAgICB2YXIgZGFya0NvbG9yID0g
InJnYigxMjIsIDE2OCwgMjE4KSI7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyN2U2OTVlLi40M2JkMmNjIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0xMi0xMyAgSWx5YSBUaWtob25vdnNr
eSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdG9jb2wgY2xlYW51cCB0YXNrLiBB
c3NpZ24gZG9tYWluIGF0dHJpYnV0ZSB0byBSZXNvdXJjZXMgYW5kIERlYnVnZ2VyIHNwZWNpZmlj
IGZ1bmN0aW9ucy4KKworICAgICAgICBEZWJ1Z2dlciBhbmQgUmVzb3VyY2VzIHJlbGF0ZWQgbm90
aWZpY2F0aW9uIGZ1bmN0aW9ucyBvZiBJbnNwZWN0b3IuaWRsIHdlcmUKKyAgICAgICAgbWFya2Vk
IGFzIHN1Y2ggd2l0aCBoZWxwIG9mICJkb21haW4iIGF0dHJpYnV0ZS4gVGhlIG90aGVyIGNoYW5n
ZXMgaW4ganMgZmlsZXMKKyAgICAgICAgYXJlIHJlZmxlY3RpbmcgdGhpcyBjaGFuZ2UuIFNvbWUg
d3JhcHBlcnMgaW4gV2ViSW5zcGVjdG9yIG5hbWVzcGFjZSB3ZXJlIGRyb3BwZWQsCisgICAgICAg
IHRoZSBvdGhlcnMgd2VyZSBtb3ZlZCB0byBEZWJ1Z2dlck1vZGVsIGNsYXNzLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDkwNgorCisgICAgICAg
ICogc3JjL2pzL1Rlc3RzLmpzOgorICAgICAgICAoLlRlc3RTdWl0ZS5wcm90b3R5cGUuX3dhaXRG
b3JTY3JpcHRQYXVzZSk6CisKIDIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvanMvVGVzdHMuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pz
L1Rlc3RzLmpzCmluZGV4IDJiMjY0ZWUuLmI4ZGMxODkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvanMvVGVzdHMuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9UZXN0cy5q
cwpAQCAtNzMwLDcgKzczMCw3IEBAIFRlc3RTdWl0ZS5wcm90b3R5cGUuX3dhaXRGb3JTY3JpcHRQ
YXVzZSA9IGZ1bmN0aW9uKGV4cGVjdGF0aW9ucywgY2FsbGJhY2spCiAgICAgdmFyIHRlc3QgPSB0
aGlzOwogICAgIC8vIFdhaXQgdW50aWwgc2NyaXB0IGlzIHBhdXNlZC4KICAgICB0ZXN0LmFkZFNu
aWZmZXIoCi0gICAgICAgIFdlYkluc3BlY3RvciwKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVn
Z2VyTW9kZWwsCiAgICAgICAgICJwYXVzZWRTY3JpcHQiLAogICAgICAgICBmdW5jdGlvbihkZXRh
aWxzKSB7CiAgICAgICAgICAgICB2YXIgY2FsbEZyYW1lcyA9IGRldGFpbHMuY2FsbEZyYW1lczsK
QEAgLTg1Miw3ICs4NTIsNyBAQCBUZXN0U3VpdGUucHJvdG90eXBlLnRlc3RQYXVzZUluRXZhbCA9
IGZ1bmN0aW9uKCkKIAogICAgIGRldnRvb2xzLnRvb2xzLmV2YWx1YXRlSmF2YVNjcmlwdCgiZmli
KDEwKSIpOwogCi0gICAgdGhpcy5hZGRTbmlmZmVyKFdlYkluc3BlY3RvciwgInBhdXNlZFNjcmlw
dCIsCisgICAgdGhpcy5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLCAicGF1
c2VkU2NyaXB0IiwKICAgICAgICAgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0ZXN0LnJlbGVh
c2VDb250cm9sKCk7CiAgICAgICAgIH0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>