<?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>56681</bug_id>
          
          <creation_ts>2011-03-18 14:12:16 -0700</creation_ts>
          <short_desc>Web Inspector: expose object id as string, not JSON struct in the protocol.</short_desc>
          <delta_ts>2011-03-21 00:42:57 -0700</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>369865</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-18 14:12:16 -0700</bug_when>
    <thetext>I&apos;m brushing up the protocol and it seems like exposing ObjectId structure is not really necessary. I&apos;m actually thinking of making all ids (network resources, dom nodes, javascript objects, call frames and page frames) simple strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370103</commentid>
    <comment_count>1</comment_count>
      <attachid>86257</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-19 02:44:23 -0700</bug_when>
    <thetext>Created attachment 86257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370104</commentid>
    <comment_count>2</comment_count>
      <attachid>86257</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2011-03-19 02:49:44 -0700</bug_when>
    <thetext>Comment on attachment 86257
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370298</commentid>
    <comment_count>3</comment_count>
      <attachid>86257</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-21 00:16:37 -0700</bug_when>
    <thetext>Comment on attachment 86257
Patch

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

&gt; LayoutTests/http/tests/inspector/protocol-test.js:5
&gt; +    if (object instanceof Object)

Consider renaming object to value. object sounds like an instance of Object while the parameter can take integer values.

&gt; Source/WebCore/inspector/InjectedScriptManager.cpp:83
&gt; +        bool success = parsedObjectId-&gt;asObject()-&gt;getNumber(&quot;injectedScriptId&quot;, &amp;injectedScriptId);

Now that objectId is an opaque string for the front-end we can switch to a more compact format, probably two numbers separated by a column.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370299</commentid>
    <comment_count>4</comment_count>
      <attachid>86257</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-21 00:16:59 -0700</bug_when>
    <thetext>Comment on attachment 86257
Patch

Please address the comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370303</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-21 00:42:57 -0700</bug_when>
    <thetext>Committed r81570: &lt;http://trac.webkit.org/changeset/81570&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86257</attachid>
            <date>2011-03-19 02:44:23 -0700</date>
            <delta_ts>2011-03-21 00:16:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56681-20110319124420.patch</filename>
            <type>text/plain</type>
            <size>44009</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODE0ODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZTY2YzllMzU0ZmI0MDRhNmMwMGMx
YjQ5YTJlZjhmMjM1N2VhOTM5Li43ZDdkYTIxMzBhZjg3MTJkYTUyZTBlZjI3Njk5OGEzOTA3YjVl
MTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMTkgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZXhwb3NlIG9iamVjdCBpZCBhcyBzdHJpbmcs
IG5vdCBKU09OIHN0cnVjdCBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjY4MQorCisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcHJvdG9jb2wtdGVzdC5qczoKKyAgICAgICAgKGluaXRpYWxpemVfUHJvdG9jb2xU
ZXN0Lkluc3BlY3RvclRlc3QuZmlsdGVyUHJvcHMpOgorICAgICAgICAoaW5pdGlhbGl6ZV9Qcm90
b2NvbFRlc3QuSW5zcGVjdG9yVGVzdC5fZHVtcENhbGxBcmd1bWVudHMpOgorICAgICAgICAqIGlu
c3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1hZ2VudC5odG1sOgorCiAyMDExLTAzLTE4ICBKZXNz
aWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaW5zcGVjdG9yL2NvbnNv
bGUvY29tbWFuZC1saW5lLWFwaS5odG1sIHRpbWluZyBvdXQgb24gV2luZG93cyA3IFJlbGVhc2Ug
KFdlYktpdDIgVGVzdHMpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcHJvdG9jb2wtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Byb3RvY29sLXRlc3QuanMKaW5kZXggZWI4NjM2ZDU3YTdmMGZmMzY5MjdiNWY0NmFhODM0MGI3
ZTZiZDBjYi4uZGZiNGQxM2U3ZTQ5NGUwZjgxYTA3MWQyZTEwNjQyMzNkOTU1NzkxNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wtdGVzdC5qcwor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9wcm90b2NvbC10ZXN0LmpzCkBA
IC0xLDE5ICsxLDIxIEBACiB2YXIgaW5pdGlhbGl6ZV9Qcm90b2NvbFRlc3QgPSBmdW5jdGlvbigp
IHsKIAotSW5zcGVjdG9yVGVzdC5maWx0ZXJQcm9wcyA9IGZ1bmN0aW9uKHNvbWV0aGluZywgbm9u
ZGV0ZXJtaW5pc3RpY1Byb3BzKQorSW5zcGVjdG9yVGVzdC5maWx0ZXJQcm9wcyA9IGZ1bmN0aW9u
KG9iamVjdCwgbm9uZGV0ZXJtaW5pc3RpY1Byb3BzKQogewotICAgIGlmIChzb21ldGhpbmcgaW5z
dGFuY2VvZiBPYmplY3QpCi0gICAgICAgIGZvciAodmFyIHByb3AgaW4gc29tZXRoaW5nKQorICAg
IGlmIChvYmplY3QgaW5zdGFuY2VvZiBPYmplY3QpCisgICAgICAgIGZvciAodmFyIHByb3AgaW4g
b2JqZWN0KQogICAgICAgICAgICAgaWYgKHByb3AgaW4gbm9uZGV0ZXJtaW5pc3RpY1Byb3BzKQot
ICAgICAgICAgICAgICAgIHNvbWV0aGluZ1twcm9wXSA9ICI8IiArIHR5cGVvZiBzb21ldGhpbmdb
cHJvcF0gKyAiPiI7CisgICAgICAgICAgICAgICAgb2JqZWN0W3Byb3BdID0gIjwiICsgdHlwZW9m
IG9iamVjdFtwcm9wXSArICI+IjsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBz
b21ldGhpbmdbcHJvcF0gPSB0aGlzLmZpbHRlclByb3BzKHNvbWV0aGluZ1twcm9wXSwgbm9uZGV0
ZXJtaW5pc3RpY1Byb3BzKTsKLSAgICBlbHNlIGlmIChzb21ldGhpbmcgaW5zdGFuY2VvZiBBcnJh
eSkKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb21ldGhpbmcubGVuZ3RoOyArK2kpCi0g
ICAgICAgICAgICBzb21ldGhpbmdbaV0gPSB0aGlzLmZpbHRlclByb3BzKHNvbWV0aGluZ1tpXSwg
bm9uZGV0ZXJtaW5pc3RpY1Byb3BzKTsKLSAgICBlbHNlIGlmICh0eXBlb2Ygc29tZXRoaW5nID09
PSAibnVtYmVyIikKLSAgICAgICAgc29tZXRoaW5nID0gIjxudW1iZXI+IjsKLSAgICByZXR1cm4g
c29tZXRoaW5nOworICAgICAgICAgICAgICAgIG9iamVjdFtwcm9wXSA9IHRoaXMuZmlsdGVyUHJv
cHMob2JqZWN0W3Byb3BdLCBub25kZXRlcm1pbmlzdGljUHJvcHMpOworICAgIGVsc2UgaWYgKG9i
amVjdCBpbnN0YW5jZW9mIEFycmF5KQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVj
dC5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIG9iamVjdFtpXSA9IHRoaXMuZmlsdGVyUHJvcHMo
b2JqZWN0W2ldLCBub25kZXRlcm1pbmlzdGljUHJvcHMpOworICAgIGVsc2UgaWYgKHR5cGVvZiBv
YmplY3QgPT09ICJudW1iZXIiKQorICAgICAgICBvYmplY3QgPSAiPG51bWJlcj4iOworICAgIGVs
c2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICJzdHJpbmciICYmIG9iamVjdC5pbmRleE9mKCJcImlk
XCIiKSAhPSAtMSkKKyAgICAgICAgb2JqZWN0ID0gIjxzdHJpbmc+IjsKKyAgICByZXR1cm4gb2Jq
ZWN0OwogfTsKIAogSW5zcGVjdG9yVGVzdC5fZHVtcEV2ZW50ID0gZnVuY3Rpb24oKQpAQCAtMzcs
NyArMzksNyBAQCBJbnNwZWN0b3JUZXN0Ll9kdW1wQ2FsbEFyZ3VtZW50cyA9IGZ1bmN0aW9uKGNh
bGxBcmd1bWVudHMpCiAgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IGNhbGxBcmd1bWVudHNDb3B5LnNo
aWZ0KCk7CiAgICAgdGhpcy5maWx0ZXJQcm9wcyhjYWxsQXJndW1lbnRzQ29weSwgdGhpcy5fbm9u
ZGV0ZXJtaW5pc3RpY1Byb3BzKTsKICAgICB2YXIgZXhwcmVzc2lvbiA9IEpTT04uc3RyaW5naWZ5
KGNhbGxBcmd1bWVudHNDb3B5KTsKLSAgICBleHByZXNzaW9uID0gZXhwcmVzc2lvbi5zbGljZSgx
LCBleHByZXNzaW9uLmxlbmd0aCAtIDEpLnJlcGxhY2UoL1wiPG51bWJlcj5cIi9nLCAiPG51bWJl
cj4iKTsKKyAgICBleHByZXNzaW9uID0gZXhwcmVzc2lvbi5zbGljZSgxLCBleHByZXNzaW9uLmxl
bmd0aCAtIDEpLnJlcGxhY2UoL1wiPG51bWJlcj5cIi9nLCAiPG51bWJlcj4iKS5yZXBsYWNlKC9c
IjxzdHJpbmc+XCIvZywgIjxzdHJpbmc+Iik7CiAKICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0iKTsKICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChhZ2VudE5hbWUgKyAiLiIgKyBm
dW5jdGlvbk5hbWUgKyAiKCIgKyBleHByZXNzaW9uICsgIikiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9ydW50aW1lLWFnZW50LWV4cGVjdGVkLnR4dApp
bmRleCAzN2I1MWEyZjBiZGU1ZmJhMzJjMTgxYzEyMWI1YjUzMGU5YmYxYTY0Li4wZDc1ZjJhYjVi
MGYxYjExYjY4MWFhNGRjNDdmOTQzYjVlNmMyZjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1hZ2VudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQtZXhwZWN0ZWQudHh0CkBAIC0y
MCwxMCArMjAsNyBAQCByZXNwb25zZToKICAgICByZXF1ZXN0SWQgOiA8bnVtYmVyPgogICAgIGJv
ZHkgOiB7CiAgICAgICAgIHJlc3VsdCA6IHsKLSAgICAgICAgICAgIG9iamVjdElkIDogewotICAg
ICAgICAgICAgICAgIGluamVjdGVkU2NyaXB0SWQgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAg
IGlkIDogPG51bWJlcj4KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9iamVjdElkIDogPHN0
cmluZz4KICAgICAgICAgICAgIGhhc0NoaWxkcmVuIDogdHJ1ZQogICAgICAgICAgICAgdHlwZSA6
ICJvYmplY3QiCiAgICAgICAgICAgICBkZXNjcmlwdGlvbiA6ICJUZXN0T2JqZWN0IgpAQCAtMzIs
NyArMjksNyBAQCByZXNwb25zZToKIH0KIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJ1bnRpbWVBZ2VudC5ldmFsdWF0ZU9uKHsi
aW5qZWN0ZWRTY3JpcHRJZCI6PG51bWJlcj4sImlkIjo8bnVtYmVyPn0sInRoaXMuYXNzaWduZWRC
eUV2YWx1YXRlT24gPSBcImV2YWx1YXRlT24gZnVuY3Rpb24gd29ya3MgZmluZVwiOyIpCitSdW50
aW1lQWdlbnQuZXZhbHVhdGVPbig8c3RyaW5nPiwidGhpcy5hc3NpZ25lZEJ5RXZhbHVhdGVPbiA9
IFwiZXZhbHVhdGVPbiBmdW5jdGlvbiB3b3JrcyBmaW5lXCI7IikKIAogcmVxdWVzdDoKIHsKQEAg
LTQwLDEwICszNyw3IEBAIHJlcXVlc3Q6CiAgICAgZG9tYWluIDogIlJ1bnRpbWUiCiAgICAgY29t
bWFuZCA6ICJldmFsdWF0ZU9uIgogICAgIGFyZ3VtZW50cyA6IHsKLSAgICAgICAgb2JqZWN0SWQg
OiB7Ci0gICAgICAgICAgICBpbmplY3RlZFNjcmlwdElkIDogPG51bWJlcj4KLSAgICAgICAgICAg
IGlkIDogPG51bWJlcj4KLSAgICAgICAgfQorICAgICAgICBvYmplY3RJZCA6IDxzdHJpbmc+CiAg
ICAgICAgIGV4cHJlc3Npb24gOiAidGhpcy5hc3NpZ25lZEJ5RXZhbHVhdGVPbiA9ICJldmFsdWF0
ZU9uIGZ1bmN0aW9uIHdvcmtzIGZpbmUiOyIKICAgICB9CiB9CkBAIC02MCw3ICs1NCw3IEBAIHJl
c3BvbnNlOgogfQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUnVudGltZUFnZW50LnNldFByb3BlcnR5VmFsdWUoeyJpbmplY3Rl
ZFNjcmlwdElkIjo8bnVtYmVyPiwiaWQiOjxudW1iZXI+fSwiYXNzaWduZWRCeVNldFByb3BlcnR5
VmFsdWUiLCJ0cnVlIikKK1J1bnRpbWVBZ2VudC5zZXRQcm9wZXJ0eVZhbHVlKDxzdHJpbmc+LCJh
c3NpZ25lZEJ5U2V0UHJvcGVydHlWYWx1ZSIsInRydWUiKQogCiByZXF1ZXN0OgogewpAQCAtNjgs
MTAgKzYyLDcgQEAgcmVxdWVzdDoKICAgICBkb21haW4gOiAiUnVudGltZSIKICAgICBjb21tYW5k
IDogInNldFByb3BlcnR5VmFsdWUiCiAgICAgYXJndW1lbnRzIDogewotICAgICAgICBvYmplY3RJ
ZCA6IHsKLSAgICAgICAgICAgIGluamVjdGVkU2NyaXB0SWQgOiA8bnVtYmVyPgotICAgICAgICAg
ICAgaWQgOiA8bnVtYmVyPgotICAgICAgICB9CisgICAgICAgIG9iamVjdElkIDogPHN0cmluZz4K
ICAgICAgICAgcHJvcGVydHlOYW1lIDogImFzc2lnbmVkQnlTZXRQcm9wZXJ0eVZhbHVlIgogICAg
ICAgICBleHByZXNzaW9uIDogInRydWUiCiAgICAgfQpAQCAtODMsNyArNzQsNyBAQCByZXNwb25z
ZToKIH0KIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVJ1bnRpbWVBZ2VudC5zZXRQcm9wZXJ0eVZhbHVlKHsiaW5qZWN0ZWRTY3Jp
cHRJZCI6PG51bWJlcj4sImlkIjo8bnVtYmVyPn0sInJlbW92ZWRCeVNldFByb3BlcnR5VmFsdWUi
LCIiKQorUnVudGltZUFnZW50LnNldFByb3BlcnR5VmFsdWUoPHN0cmluZz4sInJlbW92ZWRCeVNl
dFByb3BlcnR5VmFsdWUiLCIiKQogCiByZXF1ZXN0OgogewpAQCAtOTEsMTAgKzgyLDcgQEAgcmVx
dWVzdDoKICAgICBkb21haW4gOiAiUnVudGltZSIKICAgICBjb21tYW5kIDogInNldFByb3BlcnR5
VmFsdWUiCiAgICAgYXJndW1lbnRzIDogewotICAgICAgICBvYmplY3RJZCA6IHsKLSAgICAgICAg
ICAgIGluamVjdGVkU2NyaXB0SWQgOiA8bnVtYmVyPgotICAgICAgICAgICAgaWQgOiA8bnVtYmVy
PgotICAgICAgICB9CisgICAgICAgIG9iamVjdElkIDogPHN0cmluZz4KICAgICAgICAgcHJvcGVy
dHlOYW1lIDogInJlbW92ZWRCeVNldFByb3BlcnR5VmFsdWUiCiAgICAgICAgIGV4cHJlc3Npb24g
OiAiIgogICAgIH0KQEAgLTEwNiw3ICs5NCw3IEBAIHJlc3BvbnNlOgogfQogCiAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUnVudGlt
ZUFnZW50LmdldFByb3BlcnRpZXMoeyJpbmplY3RlZFNjcmlwdElkIjo8bnVtYmVyPiwiaWQiOjxu
dW1iZXI+fSxmYWxzZSxmYWxzZSkKK1J1bnRpbWVBZ2VudC5nZXRQcm9wZXJ0aWVzKDxzdHJpbmc+
LGZhbHNlLGZhbHNlKQogCiByZXF1ZXN0OgogewpAQCAtMTE0LDEwICsxMDIsNyBAQCByZXF1ZXN0
OgogICAgIGRvbWFpbiA6ICJSdW50aW1lIgogICAgIGNvbW1hbmQgOiAiZ2V0UHJvcGVydGllcyIK
ICAgICBhcmd1bWVudHMgOiB7Ci0gICAgICAgIG9iamVjdElkIDogewotICAgICAgICAgICAgaW5q
ZWN0ZWRTY3JpcHRJZCA6IDxudW1iZXI+Ci0gICAgICAgICAgICBpZCA6IDxudW1iZXI+Ci0gICAg
ICAgIH0KKyAgICAgICAgb2JqZWN0SWQgOiA8c3RyaW5nPgogICAgICAgICBpZ25vcmVIYXNPd25Q
cm9wZXJ0eSA6IGZhbHNlCiAgICAgICAgIGFiYnJldmlhdGUgOiBmYWxzZQogICAgIH0KQEAgLTE0
NSwxMCArMTMwLDcgQEAgcmVzcG9uc2U6CiAgICAgICAgICAgICAyIDogewogICAgICAgICAgICAg
ICAgIG5hbWUgOiAiX19wcm90b19fIgogICAgICAgICAgICAgICAgIHZhbHVlIDogewotICAgICAg
ICAgICAgICAgICAgICBvYmplY3RJZCA6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGluamVj
dGVkU2NyaXB0SWQgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAgICAgICAgICAgaWQgOiA8bnVt
YmVyPgotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG9iamVjdElk
IDogPHN0cmluZz4KICAgICAgICAgICAgICAgICAgICAgaGFzQ2hpbGRyZW4gOiB0cnVlCiAgICAg
ICAgICAgICAgICAgICAgIHR5cGUgOiAib2JqZWN0IgogICAgICAgICAgICAgICAgICAgICBkZXNj
cmlwdGlvbiA6ICJUZXN0T2JqZWN0IgpAQCAtMTU5LDcgKzE0MSw3IEBAIHJlc3BvbnNlOgogfQog
CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3QoeyJpbmplY3RlZFNjcmlwdElkIjo8bnVt
YmVyPiwiaWQiOjxudW1iZXI+fSkKK1J1bnRpbWVBZ2VudC5yZWxlYXNlT2JqZWN0KDxzdHJpbmc+
KQogCiByZXF1ZXN0OgogewpAQCAtMTY3LDEwICsxNDksNyBAQCByZXF1ZXN0OgogICAgIGRvbWFp
biA6ICJSdW50aW1lIgogICAgIGNvbW1hbmQgOiAicmVsZWFzZU9iamVjdCIKICAgICBhcmd1bWVu
dHMgOiB7Ci0gICAgICAgIG9iamVjdElkIDogewotICAgICAgICAgICAgaW5qZWN0ZWRTY3JpcHRJ
ZCA6IDxudW1iZXI+Ci0gICAgICAgICAgICBpZCA6IDxudW1iZXI+Ci0gICAgICAgIH0KKyAgICAg
ICAgb2JqZWN0SWQgOiA8c3RyaW5nPgogICAgIH0KIH0KIApAQCAtMTgwLDcgKzE1OSw3IEBAIHJl
c3BvbnNlOgogfQogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUnVudGltZUFnZW50LnJlbGVhc2VPYmplY3RHcm91cCg8bnVtYmVy
PiwidGVzdCIpCitSdW50aW1lQWdlbnQucmVsZWFzZU9iamVjdEdyb3VwKCJ0ZXN0IikKIAogcmVx
dWVzdDoKIHsKQEAgLTE4OCw3ICsxNjcsNiBAQCByZXF1ZXN0OgogICAgIGRvbWFpbiA6ICJSdW50
aW1lIgogICAgIGNvbW1hbmQgOiAicmVsZWFzZU9iamVjdEdyb3VwIgogICAgIGFyZ3VtZW50cyA6
IHsKLSAgICAgICAgaW5qZWN0ZWRTY3JpcHRJZCA6IDxudW1iZXI+CiAgICAgICAgIG9iamVjdEdy
b3VwIDogInRlc3QiCiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Byb3RvY29sL3J1bnRpbWUtYWdlbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90
b2NvbC9ydW50aW1lLWFnZW50Lmh0bWwKaW5kZXggZGVjNjI0ZTViNzVmOGMwMTEzMjExYTMwMjE3
NmM0M2JhN2I3NWI2ZC4uZmI4ZGI0NDJhMzc0YTIzNzQ4OGExZTRhYzYzMjg1ZjVjYWY1ODIwZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3J1bnRpbWUtYWdlbnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvcnVudGltZS1hZ2VudC5o
dG1sCkBAIC0yNCw5ICsyNCw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgWyJSdW50
aW1lQWdlbnQiLCAic2V0UHJvcGVydHlWYWx1ZSIsIHJlc3VsdC5vYmplY3RJZCwgJ3JlbW92ZWRC
eVNldFByb3BlcnR5VmFsdWUnLCAnJ10sCiAgICAgICAgICAgICBbIlJ1bnRpbWVBZ2VudCIsICJn
ZXRQcm9wZXJ0aWVzIiwgcmVzdWx0Lm9iamVjdElkLCBmYWxzZSwgZmFsc2VdLAogICAgICAgICAg
ICAgWyJSdW50aW1lQWdlbnQiLCAicmVsZWFzZU9iamVjdCIsIHJlc3VsdC5vYmplY3RJZF0sCi0g
ICAgICAgICAgICBbIlJ1bnRpbWVBZ2VudCIsICJyZWxlYXNlT2JqZWN0R3JvdXAiLCByZXN1bHQu
b2JqZWN0SWQuaW5qZWN0ZWRTY3JpcHRJZCwgJ3Rlc3QnXV07CisgICAgICAgICAgICBbIlJ1bnRp
bWVBZ2VudCIsICJyZWxlYXNlT2JqZWN0R3JvdXAiLCAndGVzdCddXTsKIAotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJ1blByb3RvY29sVGVzdFN1aXRlKCJSdW50aW1lQWdlbnQiLCB0ZXN0U3VpdGUs
IFsnaWQnLCAncmVxdWVzdElkJywgJ2luamVjdGVkU2NyaXB0SWQnXSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QucnVuUHJvdG9jb2xUZXN0U3VpdGUoIlJ1bnRpbWVBZ2VudCIsIHRlc3RTdWl0ZSwg
WydpZCcsICdyZXF1ZXN0SWQnLCAnb2JqZWN0SWQnXSk7CiAgICAgfQogCiAgICAgUnVudGltZUFn
ZW50LmV2YWx1YXRlKCd3aW5kb3cudGVzdE9iamVjdCcsICd0ZXN0JywgZmFsc2UsIGNhbGxiYWNr
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBlMDljYmQyMGNlYzk3ODY3ODAzNjQ3MDJjZjBjOTM0NjIxNDEyMGE5
Li4xNjczOWY2YTYxODc0MTRiOWZlZjEzYjRlZWZmYzc3Njc4MjJhNGU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNTcgQEAKKzIwMTEtMDMtMTkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogZXhwb3NlIG9iamVjdCBpZCBhcyBzdHJpbmcsIG5vdCBKU09OIHN0
cnVjdCBpbiB0aGUgcHJvdG9jb2wuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NjY4MQorCisgICAgICAgICogYmluZGluZ3MvanMvSlNJbmplY3RlZFNj
cmlwdEhvc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNJbmplY3RlZFNjcmlwdEhv
c3Q6Omluc3BlY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2Ny
aXB0SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEluamVjdGVkU2NyaXB0SG9z
dDo6aW5zcGVjdENhbGxiYWNrKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6OmV2YWx1YXRlT24pOgorICAg
ICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6OmV2YWx1YXRlT25DYWxsRnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6OmdldFByb3BlcnRpZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6Om5vZGVGb3JPYmplY3RJZCk6CisgICAgICAgIChXZWJD
b3JlOjpJbmplY3RlZFNjcmlwdDo6c2V0UHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmplY3RlZFNjcmlwdDo6cmVsZWFzZU9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6Omluc3BlY3RJbXBsKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpyZWxlYXNlT2JqZWN0R3JvdXApOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpjbGVhckNvbnNvbGVN
ZXNzYWdlcyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OmV2YWx1YXRlT25DYWxsRnJhbWUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6OmV2YWx1YXRlT24pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFn
ZW50OjpnZXRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJ1bnRpbWVB
Z2VudDo6c2V0UHJvcGVydHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50
aW1lQWdlbnQ6OnJlbGVhc2VPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUnVu
dGltZUFnZW50OjpyZWxlYXNlT2JqZWN0R3JvdXApOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNv
bGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5j
b21wbGV0aW9ucy5ldmFsdWF0ZWRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5wcm90b3R5cGUuY29tcGxldGlvbnMpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwucHJvdG90eXBlLnJlbGVhc2VFdmFsdWF0aW9uUmVz
dWx0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRl
YmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5XYXRjaEV4cHJlc3Npb25zU2VjdGlv
bi5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbnNwZWN0KToKKwogMjAxMS0wMy0xOCAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2
aWV3ZWQ6IGFkZCBtaXNzaW5nIGJyYWNlIHRvIHRoZSBnZW5lcmF0ZWQgSW5zcGVjdG9yLmlkbC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRI
b3N0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3Jp
cHRIb3N0Q3VzdG9tLmNwcAppbmRleCBlNDYwNDVhN2FjYjU0Y2E0OWFlZjc5OWQ5Y2I3ZTk4ZTAz
NTIxNTZiLi4xMmM4YjdhNjRlMTMxZjRjNGUwZGVmMWUwNTY4MmYxOTM2ODRjMjBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhv
c3RDdXN0b20uY3BwCkBAIC0xMTIsOSArMTEyLDkgQEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0
SG9zdDo6aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoRXhlY1N0YXRlKiBleGVjKQogSlNWYWx1ZSBK
U0luamVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7Ci0gICAgICAgIFNjcmlwdFZhbHVlIG9iamVj
dElkKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICBTY3Jp
cHRWYWx1ZSBvYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5hcmd1bWVudCgwKSk7CiAg
ICAgICAgIFNjcmlwdFZhbHVlIGhpbnRzKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+YXJndW1l
bnQoMSkpOwotICAgICAgICBpbXBsKCktPmluc3BlY3RJbXBsKG9iamVjdElkLnRvSW5zcGVjdG9y
VmFsdWUoZXhlYyksIGhpbnRzLnRvSW5zcGVjdG9yVmFsdWUoZXhlYykpOworICAgICAgICBpbXBs
KCktPmluc3BlY3RJbXBsKG9iamVjdC50b0luc3BlY3RvclZhbHVlKGV4ZWMpLCBoaW50cy50b0lu
c3BlY3RvclZhbHVlKGV4ZWMpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3Rl
ZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAppbmRleCA4ZDkwOTRmZjg4ZDk4YzgxMDc5
YzdmN2YzYTU0OWQ1M2Y1NWYwZTgyLi5hNmYxMDU1ZjA0MTllZGYzN2Y0YjVkMDEwYTAzZjhmZjli
YjdkZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJ
bmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTk4LDkgKzk4LDkg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0Q2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQo
KTsKIAogICAgIEluamVjdGVkU2NyaXB0SG9zdCogaG9zdCA9IFY4SW5qZWN0ZWRTY3JpcHRIb3N0
Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBTY3JpcHRWYWx1ZSBvYmplY3RJZChhcmdz
WzBdKTsKKyAgICBTY3JpcHRWYWx1ZSBvYmplY3QoYXJnc1swXSk7CiAgICAgU2NyaXB0VmFsdWUg
aGludHMoYXJnc1sxXSk7Ci0gICAgaG9zdC0+aW5zcGVjdEltcGwob2JqZWN0SWQudG9JbnNwZWN0
b3JWYWx1ZShTY3JpcHRTdGF0ZTo6Y3VycmVudCgpKSwgaGludHMudG9JbnNwZWN0b3JWYWx1ZShT
Y3JpcHRTdGF0ZTo6Y3VycmVudCgpKSk7CisgICAgaG9zdC0+aW5zcGVjdEltcGwob2JqZWN0LnRv
SW5zcGVjdG9yVmFsdWUoU2NyaXB0U3RhdGU6OmN1cnJlbnQoKSksIGhpbnRzLnRvSW5zcGVjdG9y
VmFsdWUoU2NyaXB0U3RhdGU6OmN1cnJlbnQoKSkpOwogCiAgICAgcmV0dXJuIHY4OjpVbmRlZmlu
ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCmlu
ZGV4IDg3MjI3YmMwMGZiMzE5YmU3MTdkYjhmMmMxMzMzMWE4ZDJkYThjMTMuLjFjYzU1MmM1MzAw
NGJkZDVhMTYwNTI3NmUzYjA4ODRkNGExMjFkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0LmNwcApAQCAtNTcsMjkgKzU3LDI4IEBAIHZvaWQgSW5qZWN0ZWRT
Y3JpcHQ6OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uCiAgICAgbWFrZU9iamVjdENhbGwoZXJyb3JTdHJpbmcsIGZ1bmN0aW9uLCByZXN1
bHQpOwogfQogCi12b2lkIEluamVjdGVkU2NyaXB0OjpldmFsdWF0ZU9uKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9iamVjdElkLCBjb25zdCBT
dHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQpCit2b2lk
IEluamVjdGVkU2NyaXB0OjpldmFsdWF0ZU9uKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiogcmVzdWx0KQogewogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlv
bihtX2luamVjdGVkU2NyaXB0T2JqZWN0LCAiZXZhbHVhdGVPbiIpOwotICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KG9iamVjdElkLT50b0pTT05TdHJpbmcoKSk7CisgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQob2JqZWN0SWQpOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGV4cHJl
c3Npb24pOwogICAgIG1ha2VPYmplY3RDYWxsKGVycm9yU3RyaW5nLCBmdW5jdGlvbiwgcmVzdWx0
KTsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlwdDo6ZXZhbHVhdGVPbkNhbGxGcmFtZShFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBjYWxsRnJhbWVJ
ZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBi
b29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3Vs
dCkKK3ZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRM
aW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KQogewogICAgIFNjcmlwdEZ1
bmN0aW9uQ2FsbCBmdW5jdGlvbihtX2luamVjdGVkU2NyaXB0T2JqZWN0LCAiZXZhbHVhdGVPbkNh
bGxGcmFtZSIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbGxGcmFtZUlkLT50b0pT
T05TdHJpbmcoKSk7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY2FsbEZyYW1lSWQpOwog
ICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGV4cHJlc3Npb24pOwogICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KG9iamVjdEdyb3VwKTsKICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChp
bmNsdWRlQ29tbWFuZExpbmVBUEkpOwogICAgIG1ha2VPYmplY3RDYWxsKGVycm9yU3RyaW5nLCBm
dW5jdGlvbiwgcmVzdWx0KTsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlwdDo6Z2V0UHJvcGVydGll
cyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBv
YmplY3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgYm9vbCBhYmJyZXZpYXRlLCBSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+KiBwcm9wZXJ0aWVzKQordm9pZCBJbmplY3RlZFNjcmlwdDo6Z2V0
UHJvcGVydGllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0
SWQsIGJvb2wgaWdub3JlSGFzT3duUHJvcGVydHksIGJvb2wgYWJicmV2aWF0ZSwgUmVmUHRyPElu
c3BlY3RvckFycmF5PiogcHJvcGVydGllcykKIHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVu
Y3Rpb24obV9pbmplY3RlZFNjcmlwdE9iamVjdCwgImdldFByb3BlcnRpZXMiKTsKLSAgICBTdHJp
bmcgb2JqZWN0SWRTdHJpbmcgPSBvYmplY3RJZC0+dG9KU09OU3RyaW5nKCk7Ci0gICAgZnVuY3Rp
b24uYXBwZW5kQXJndW1lbnQob2JqZWN0SWRTdHJpbmcpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFy
Z3VtZW50KG9iamVjdElkKTsKICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChpZ25vcmVIYXNP
d25Qcm9wZXJ0eSk7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoYWJicmV2aWF0ZSk7CiAK
QEAgLTkyLDEzICs5MSwxMyBAQCB2b2lkIEluamVjdGVkU2NyaXB0OjpnZXRQcm9wZXJ0aWVzKEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgUGFzc1JlZlB0cjxJbnNwZWN0bwogICAgICpwcm9wZXJ0
aWVzID0gcmVzdWx0LT5hc0FycmF5KCk7CiB9CiAKLU5vZGUqIEluamVjdGVkU2NyaXB0Ojpub2Rl
Rm9yT2JqZWN0SWQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9iamVjdElkKQorTm9kZSog
SW5qZWN0ZWRTY3JpcHQ6Om5vZGVGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKQog
ewogICAgIGlmIChoYXNOb1ZhbHVlKCkgfHwgIWNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdygpKQog
ICAgICAgICByZXR1cm4gMDsKIAogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX2lu
amVjdGVkU2NyaXB0T2JqZWN0LCAibm9kZUZvck9iamVjdElkIik7Ci0gICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQob2JqZWN0SWQtPnRvSlNPTlN0cmluZygpKTsKKyAgICBmdW5jdGlvbi5hcHBl
bmRBcmd1bWVudChvYmplY3RJZCk7CiAKICAgICBib29sIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwog
ICAgIFNjcmlwdFZhbHVlIHJlc3VsdFZhbHVlID0gZnVuY3Rpb24uY2FsbChoYWRFeGNlcHRpb24p
OwpAQCAtMTA3LDEwICsxMDYsMTAgQEAgTm9kZSogSW5qZWN0ZWRTY3JpcHQ6Om5vZGVGb3JPYmpl
Y3RJZChQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gb2JqZWN0SWQpCiAgICAgcmV0dXJuIElu
amVjdGVkU2NyaXB0SG9zdDo6c2NyaXB0VmFsdWVBc05vZGUocmVzdWx0VmFsdWUpOwogfQogCi12
b2lkIEluamVjdGVkU2NyaXB0OjpzZXRQcm9wZXJ0eVZhbHVlKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9iamVjdElkLCBjb25zdCBTdHJpbmcm
IHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQordm9pZCBJbmplY3RlZFNj
cmlwdDo6c2V0UHJvcGVydHlWYWx1ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0
cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25zdCBTdHJpbmcm
IGV4cHJlc3Npb24pCiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1faW5qZWN0
ZWRTY3JpcHRPYmplY3QsICJzZXRQcm9wZXJ0eVZhbHVlIik7Ci0gICAgZnVuY3Rpb24uYXBwZW5k
QXJndW1lbnQob2JqZWN0SWQtPnRvSlNPTlN0cmluZygpKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRB
cmd1bWVudChvYmplY3RJZCk7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQocHJvcGVydHlO
YW1lKTsKICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChleHByZXNzaW9uKTsKICAgICBSZWZQ
dHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdDsKQEAgLTExOCwxMCArMTE3LDEwIEBAIHZvaWQgSW5q
ZWN0ZWRTY3JpcHQ6OnNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBQ
YXNzUmVmUHRyPEluc3BlCiAgICAgcmVzdWx0LT5hc1N0cmluZyhlcnJvclN0cmluZyk7CiB9CiAK
LXZvaWQgSW5qZWN0ZWRTY3JpcHQ6OnJlbGVhc2VPYmplY3QoUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IG9iamVjdElkKQordm9pZCBJbmplY3RlZFNjcmlwdDo6cmVsZWFzZU9iamVjdChjb25z
dCBTdHJpbmcmIG9iamVjdElkKQogewogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbiht
X2luamVjdGVkU2NyaXB0T2JqZWN0LCAicmVsZWFzZU9iamVjdCIpOwotICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KG9iamVjdElkLT50b0pTT05TdHJpbmcoKSk7CisgICAgZnVuY3Rpb24uYXBw
ZW5kQXJndW1lbnQob2JqZWN0SWQpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcmVzdWx0
OwogICAgIG1ha2VDYWxsKGZ1bmN0aW9uLCAmcmVzdWx0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggMjVkZmNmNTBmMzJiZTc1Zjk4MzgwOWNhYTIy
MjNhZWY1NDdlNDMxYi4uOWMzYjZmMjkwODEwOTMxNmQ5YTA2OWY0YmUxM2Y0ZTc3NzFmZWI0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKQEAgLTU2LDEyICs1
NiwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNOb1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9p
bmplY3RlZFNjcmlwdE9iamVjdC5oYXNOb1ZhbHVlKCk7IH0KIAogICAgIHZvaWQgZXZhbHVhdGUo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0KTsKLSAgICB2b2lkIGV2YWx1YXRlT24oRXJyb3JTdHJpbmcqLCBQYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7Ci0gICAgdm9pZCBldmFsdWF0ZU9uQ2Fs
bEZyYW1lKEVycm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNhbGxGcmFt
ZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAs
IGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVz
dWx0KTsKLSAgICB2b2lkIGdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gb2JqZWN0SWQsIGJvb2wgaWdub3JlSGFzT3duUHJvcGVydHksIGJvb2wg
YWJicmV2aWF0ZSwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogcmVzdWx0KTsKLSAgICBOb2RlKiBu
b2RlRm9yT2JqZWN0SWQoUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9iamVjdElkKTsKLSAg
ICB2b2lkIHNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqLCBQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25zdCBTdHJp
bmcmIGV4cHJlc3Npb24pOwotICAgIHZvaWQgcmVsZWFzZU9iamVjdChQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gb2JqZWN0SWQpOworICAgIHZvaWQgZXZhbHVhdGVPbihFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7CisgICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1l
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBjYWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5k
TGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7CisgICAgdm9pZCBnZXRQ
cm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9vbCBpZ25v
cmVIYXNPd25Qcm9wZXJ0eSwgYm9vbCBhYmJyZXZpYXRlLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
KiByZXN1bHQpOworICAgIE5vZGUqIG5vZGVGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVj
dElkKTsKKyAgICB2b2lkIHNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIG9iamVjdElkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uKTsKKyAgICB2b2lkIHJlbGVhc2VPYmplY3QoY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCk7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBQYXNzUmVmUHRyPElu
c3BlY3RvckFycmF5PiBjYWxsRnJhbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwCmluZGV4IGY2ZGM3MzllNTUzYWQ5YjMwZGQ1NjQ3ZGFl
YjE4YTM5NmU4MzE1NGIuLmFlN2NiN2MzYjI5YTNmMjM3MTc2NjVhNDBhOTM2YTBjOTljNmY2NDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3Bw
CkBAIC0xMTYsMTAgKzExNiwxMCBAQCB2b2lkIEluamVjdGVkU2NyaXB0SG9zdDo6Y2xlYXJJbnNw
ZWN0ZWROb2RlcygpCiAgICAgbV9pbnNwZWN0ZWROb2Rlcy5jbGVhcigpOwogfQogCi12b2lkIElu
amVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdEltcGwoUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4g
b2JqZWN0SWQsIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGhpbnRzKQordm9pZCBJbmplY3Rl
ZFNjcmlwdEhvc3Q6Omluc3BlY3RJbXBsKFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IG9iamVj
dCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gaGludHMpCiB7CiAgICAgaWYgKG1fZnJvbnRl
bmQpCi0gICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RvcigpLT5pbnNwZWN0KG9iamVjdElkLT5h
c09iamVjdCgpLCBoaW50cy0+YXNPYmplY3QoKSk7CisgICAgICAgIG1fZnJvbnRlbmQtPmluc3Bl
Y3RvcigpLT5pbnNwZWN0KG9iamVjdC0+YXNPYmplY3QoKSwgaGludHMtPmFzT2JqZWN0KCkpOwog
fQogCiB2b2lkIEluamVjdGVkU2NyaXB0SG9zdDo6Y2xlYXJDb25zb2xlTWVzc2FnZXMoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5oCmluZGV4IDVlY2U0
MjA5ZmFmOWZjNjE1ZWY3ZGNiNjJhZjE2NWJiZWI1ZDI3NjQuLjA0YjQ0Y2RjYjczZDdmMDdjNmQ1
MmUyNDcyOTczOTIxMGYwNDhiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRIb3N0LmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRk
SW5zcGVjdGVkTm9kZShOb2RlKik7CiAgICAgdm9pZCBjbGVhckluc3BlY3RlZE5vZGVzKCk7CiAK
LSAgICB2b2lkIGluc3BlY3RJbXBsKFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IG9iamVjdElk
LCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiBoaW50cyk7CisgICAgdm9pZCBpbnNwZWN0SW1w
bChQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiBvYmplY3RUb0luc3BlY3QsIFBhc3NSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+IGhpbnRzKTsKICAgICB2b2lkIGNsZWFyQ29uc29sZU1lc3NhZ2VzKCk7
CiAgICAgdm9pZCBjb3B5VGV4dChjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIE5vZGUqIGluc3Bl
Y3RlZE5vZGUodW5zaWduZWQgbG9uZyBudW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCA0ZDUzNzhhYjY3NTQwMTZhYjM0
MWFiNzFiMjhiM2VmM2Y2OGQ3Y2RiLi44YmQwN2YzNTk2MDAxYzI0MGNjMmNmMzkzY2NjMWYwM2Iy
ZmVkZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmNwcApAQCAtNzUsMTIgKzc1LDE1IEBAIEluamVjdGVkU2NyaXB0IEluamVjdGVk
U2NyaXB0TWFuYWdlcjo6aW5qZWN0ZWRTY3JpcHRGb3JJZChsb25nIGlkKQogICAgIHJldHVybiBt
X2lkVG9JbmplY3RlZFNjcmlwdC5nZXQoaWQpOwogfQogCi1JbmplY3RlZFNjcmlwdCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0Rm9yT2JqZWN0SWQoSW5zcGVjdG9yT2JqZWN0
KiBvYmplY3RJZCkKK0luamVjdGVkU2NyaXB0IEluamVjdGVkU2NyaXB0TWFuYWdlcjo6aW5qZWN0
ZWRTY3JpcHRGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKQogewotICAgIGxvbmcg
aW5qZWN0ZWRTY3JpcHRJZCA9IDA7Ci0gICAgYm9vbCBzdWNjZXNzID0gb2JqZWN0SWQtPmdldE51
bWJlcigiaW5qZWN0ZWRTY3JpcHRJZCIsICZpbmplY3RlZFNjcmlwdElkKTsKLSAgICBpZiAoc3Vj
Y2VzcykKLSAgICAgICAgcmV0dXJuIGluamVjdGVkU2NyaXB0Rm9ySWQoaW5qZWN0ZWRTY3JpcHRJ
ZCk7CisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBwYXJzZWRPYmplY3RJZCA9IEluc3BlY3Rv
clZhbHVlOjpwYXJzZUpTT04ob2JqZWN0SWQpOworICAgIGlmIChwYXJzZWRPYmplY3RJZCAmJiBw
YXJzZWRPYmplY3RJZC0+dHlwZSgpID09IEluc3BlY3RvclZhbHVlOjpUeXBlT2JqZWN0KSB7Cisg
ICAgICAgIGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCA9IDA7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9
IHBhcnNlZE9iamVjdElkLT5hc09iamVjdCgpLT5nZXROdW1iZXIoImluamVjdGVkU2NyaXB0SWQi
LCAmaW5qZWN0ZWRTY3JpcHRJZCk7CisgICAgICAgIGlmIChzdWNjZXNzKQorICAgICAgICAgICAg
cmV0dXJuIGluamVjdGVkU2NyaXB0Rm9ySWQoaW5qZWN0ZWRTY3JpcHRJZCk7CisgICAgfQogICAg
IHJldHVybiBJbmplY3RlZFNjcmlwdCgpOwogfQogCkBAIC05MiwxNyArOTUsMTAgQEAgdm9pZCBJ
bmplY3RlZFNjcmlwdE1hbmFnZXI6OmRpc2NhcmRJbmplY3RlZFNjcmlwdHMoKQogICAgIG1faWRU
b0luamVjdGVkU2NyaXB0LmNsZWFyKCk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
OjpyZWxlYXNlT2JqZWN0R3JvdXAobG9uZyBpbmplY3RlZFNjcmlwdElkLCBjb25zdCBTdHJpbmcm
IG9iamVjdEdyb3VwKQordm9pZCBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OnJlbGVhc2VPYmplY3RH
cm91cChjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKQogewotICAgIGlmIChpbmplY3RlZFNjcmlw
dElkKSB7Ci0gICAgICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faWRUb0lu
amVjdGVkU2NyaXB0LmdldChpbmplY3RlZFNjcmlwdElkKTsKLSAgICAgICAgIGlmICghaW5qZWN0
ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICAgICAgIGluamVjdGVkU2NyaXB0LnJlbGVh
c2VPYmplY3RHcm91cChvYmplY3RHcm91cCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgIC8vIEl0
ZXJhdGUgb3ZlciBhbGwgaW5qZWN0ZWQgc2NyaXB0cyBpZiBpbmplY3RlZFNjcmlwdElkIGlzIG5v
dCBzcGVjaWZpZWQuCi0gICAgICAgICBmb3IgKElkVG9JbmplY3RlZFNjcmlwdE1hcDo6aXRlcmF0
b3IgaXQgPSBtX2lkVG9JbmplY3RlZFNjcmlwdC5iZWdpbigpOyBpdCAhPSBtX2lkVG9JbmplY3Rl
ZFNjcmlwdC5lbmQoKTsgKytpdCkKLSAgICAgICAgICAgICAgaXQtPnNlY29uZC5yZWxlYXNlT2Jq
ZWN0R3JvdXAob2JqZWN0R3JvdXApOwotICAgIH0KKyAgICBmb3IgKElkVG9JbmplY3RlZFNjcmlw
dE1hcDo6aXRlcmF0b3IgaXQgPSBtX2lkVG9JbmplY3RlZFNjcmlwdC5iZWdpbigpOyBpdCAhPSBt
X2lkVG9JbmplY3RlZFNjcmlwdC5lbmQoKTsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC5yZWxl
YXNlT2JqZWN0R3JvdXAob2JqZWN0R3JvdXApOwogfQogCiBTdHJpbmcgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyOjppbmplY3RlZFNjcmlwdFNvdXJjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgKaW5kZXggYjM1MjY4ZmZhYjE5YzNmOGVhNDM0
ZTgzYTNmOTNlNzgzZDc3MWJiZS4uMjg5NmU4ZmJjNGE4OGFlYWIwNjIwMjgyNDlkMzE1NGM2MTRk
OGZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1h
bmFnZXIuaApAQCAtNTYsOSArNTYsOSBAQCBwdWJsaWM6CiAgICAgcGFpcjxsb25nLCBTY3JpcHRP
YmplY3Q+IGluamVjdFNjcmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgU2NyaXB0U3RhdGUqKTsK
ICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvcihTY3JpcHRTdGF0ZSopOwogICAg
IEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9ySWQobG9uZyk7Ci0gICAgSW5qZWN0ZWRT
Y3JpcHQgaW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZChJbnNwZWN0b3JPYmplY3QqIG9iamVjdElk
KTsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvck9iamVjdElkKGNvbnN0IFN0
cmluZyYgb2JqZWN0SWQpOwogICAgIHZvaWQgZGlzY2FyZEluamVjdGVkU2NyaXB0cygpOwotICAg
IHZvaWQgcmVsZWFzZU9iamVjdEdyb3VwKGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwgY29uc3QgU3Ry
aW5nJiBvYmplY3RHcm91cCk7CisgICAgdm9pZCByZWxlYXNlT2JqZWN0R3JvdXAoY29uc3QgU3Ry
aW5nJiBvYmplY3RHcm91cCk7CiAKICAgICBzdGF0aWMgYm9vbCBjYW5BY2Nlc3NJbnNwZWN0ZWRX
aW5kb3coU2NyaXB0U3RhdGUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IGU0MDg5ZjNiNzc5NWI3MjBiMmZmN2ExZDVlMWJm
OGJhODJkNzRmZDAuLmY0OTlhMTc2ZDQ0NDUyYTU5Y2E3ZTVkYmY2YWZjYzU3OGEwMDBkM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMK
QEAgLTk2LDggKzk2LDcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgaWYgKHR5cGVvZiBvYmplY3QgPT09ICJvYmplY3QiIHx8IHR5cGVvZiBvYmplY3QgPT09ICJm
dW5jdGlvbiIgfHwgdGhpcy5faXNIVE1MQWxsQ29sbGVjdGlvbihvYmplY3QpKSB7CiAgICAgICAg
ICAgICAgICAgdmFyIGlkID0gdGhpcy5fbGFzdEJvdW5kT2JqZWN0SWQrKzsKICAgICAgICAgICAg
ICAgICB0aGlzLl9pZFRvV3JhcHBlZE9iamVjdFtpZF0gPSBvYmplY3Q7Ci0gICAgICAgICAgICAg
ICAgdmFyIG9iamVjdElkID0geyBpbmplY3RlZFNjcmlwdElkOiBpbmplY3RlZFNjcmlwdElkLCBp
ZDogaWQgfTsKLSAgICAKKyAgICAgICAgICAgICAgICB2YXIgb2JqZWN0SWQgPSAie1wiaW5qZWN0
ZWRTY3JpcHRJZFwiOiIgKyBpbmplY3RlZFNjcmlwdElkICsgIixcImlkXCI6IiArIGlkICsgIn0i
OyAgICAKICAgICAgICAgICAgICAgICBpZiAob2JqZWN0R3JvdXBOYW1lKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHZhciBncm91cCA9IHRoaXMuX29iamVjdEdyb3Vwc1tvYmplY3RHcm91cE5hbWVd
OwogICAgICAgICAgICAgICAgICAgICBpZiAoIWdyb3VwKSB7CkBAIC00NzgsNyArNDc3LDcgQEAg
SW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21PYmplY3QgPSBmdW5jdGlvbihvYmplY3Qs
IG9iamVjdElkLCBhYmJyZXZpYXRlKQogCiBJbmplY3RlZFNjcmlwdC5DYWxsRnJhbWVQcm94eSA9
IGZ1bmN0aW9uKG9yZGluYWwsIGNhbGxGcmFtZSkKIHsKLSAgICB0aGlzLmlkID0geyBvcmRpbmFs
OiBvcmRpbmFsLCBpbmplY3RlZFNjcmlwdElkOiBpbmplY3RlZFNjcmlwdElkIH07CisgICAgdGhp
cy5pZCA9ICJ7XCJvcmRpbmFsXCI6IiArIG9yZGluYWwgKyAiLFwiaW5qZWN0ZWRTY3JpcHRJZFwi
OiIgKyBpbmplY3RlZFNjcmlwdElkICsgIn0iOwogICAgIHRoaXMudHlwZSA9IGNhbGxGcmFtZS50
eXBlOwogICAgIHRoaXMuZnVuY3Rpb25OYW1lID0gKHRoaXMudHlwZSA9PT0gImZ1bmN0aW9uIiA/
IGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgOiAiIik7CiAgICAgdGhpcy5zb3VyY2VJRCA9IGNhbGxG
cmFtZS5zb3VyY2VJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRl
eCA3YWU1NjJhYzZkYzlmMzYwYzZjOGQ4YzJlOWVhMDc3OWI0YzE4M2JmLi45YmI4ZDM5NDBkNzM1
ZjM4ODQzZjcxYmRlMzQwZGNlNmY0NDE1MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uCkBAIC0xMjYsNyArMTI2LDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAibmFtZSI6ICJpbnNwZWN0IiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJ1
bnRpbWVPYmplY3RJZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3Qi
LCAiJHJlZiI6ICJSZW1vdGVPYmplY3QiIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaGludHMiLCAidHlwZSI6ICJvYmplY3QiIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAg
ICAgICB9CkBAIC0xNTAsNyArMTUwLDcgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAibmFtZSI6ICJldmFsdWF0ZU9uIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICIkcmVmIjogIlJ1bnRp
bWVPYmplY3RJZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIs
ICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJleHBy
ZXNzaW9uIiwgInR5cGUiOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAg
ICAgICAgICAicmV0dXJucyI6IFsKQEAgLTE2MCw3ICsxNjAsNyBAQAogICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldFByb3BlcnRpZXMiLAogICAgICAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9iamVjdElk
IiwgIiRyZWYiOiAiUnVudGltZU9iamVjdElkIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm9iamVjdElkIiwgInR5cGUiOiAic3RyaW5nIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImlnbm9yZUhhc093blByb3BlcnR5IiwgInR5cGUiOiAiYm9vbGVhbiIgfSwK
ICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhYmJyZXZpYXRlIiwgInR5cGUiOiAiYm9v
bGVhbiIgfQogICAgICAgICAgICAgICAgIF0sCkBAIC0xNzEsNyArMTcxLDcgQEAKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRQcm9wZXJ0eVZhbHVlIiwKICAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJvYmplY3RJZCIsICIkcmVmIjogIlJ1bnRpbWVPYmplY3RJZCIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9wZXJ0eU5hbWUiLCAidHlwZSI6ICJzdHJpbmciIH0s
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXhwcmVzc2lvbiIsICJ0eXBlIjogInN0
cmluZyIgfQogICAgICAgICAgICAgICAgIF0KQEAgLTE3OSwxMyArMTc5LDEyIEBACiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVsZWFzZU9iamVjdCIsCiAgICAgICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
b2JqZWN0SWQiLCAiJHJlZiI6ICJSdW50aW1lT2JqZWN0SWQiIH0KKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJvYmplY3RJZCIsICJ0eXBlIjogInN0cmluZyIgfQogICAgICAgICAgICAg
ICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5h
bWUiOiAicmVsZWFzZU9iamVjdEdyb3VwIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpbmplY3RlZFNjcmlwdElkIiwgInR5
cGUiOiAibG9uZyIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RHcm91
cCIsICJ0eXBlIjogInN0cmluZyIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0K
QEAgLTY1MCw3ICs2NDksNyBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1l
IjogInB1c2hOb2RlVG9Gcm9udGVuZCIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
Ci0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0SWQiLCAiJHJlZiI6ICJSdW50
aW1lT2JqZWN0SWQiIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RJZCIs
ICJ0eXBlIjogInN0cmluZyIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAg
InJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgInR5
cGUiOiAibG9uZyIgfQpAQCAtNjcyLDcgKzY3MSw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib2JqZWN0R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciIH0KICAgICAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIm9iamVjdElkIiwgIiRyZWYiOiAiUnVudGltZU9iamVjdElkIiB9CisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAib2JqZWN0IiwgIiRyZWYiOiAiT2JqZWN0IiB9CiAgICAg
ICAgICAgICAgICAgXQogICAgICAgICAgICAgfQogICAgICAgICBdLApAQCAtOTkwLDEzICs5ODks
MTMgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJldmFsdWF0ZU9u
Q2FsbEZyYW1lIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJjYWxsRnJhbWVJZCIsICIkcmVmIjogIkRlYnVnZ2VyQ2FsbEZy
YW1lSWQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FsbEZyYW1lSWQiLCAi
dHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXhwcmVz
c2lvbiIsICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJvYmplY3RHcm91cCIsICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJpbmNsdWRlQ29tbWFuZExpbmVBUEkiLCAidHlwZSI6ICJib29sZWFuIiB9CiAg
ICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSdW50aW1lT2JqZWN0SWQi
IH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJSdW50
aW1lT2JqZWN0IiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfQogICAgICAgICBd
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmNwcAppbmRleCAxMWZkODA5NjViMGQ0NDkwZmEzNjNjNGY2MGNiOTFjYWQ5OWQwZmFkLi4wNjJm
YzE1NzJhZmUxNGMzN2ZmNTZkNjM1ODI3ODVkZTYyODQ4OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcApAQCAtOTAsNyArOTAs
NyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6Y2xlYXJDb25zb2xlTWVzc2FnZXMoRXJy
b3JTdHJpbmcqKQogICAgIG1fY29uc29sZU1lc3NhZ2VzLmNsZWFyKCk7CiAgICAgbV9leHBpcmVk
Q29uc29sZU1lc3NhZ2VDb3VudCA9IDA7CiAgICAgbV9wcmV2aW91c01lc3NhZ2UgPSAwOwotICAg
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5yZWxlYXNlT2JqZWN0R3JvdXAoMCAvKiByZWxlYXNl
IHRoZSBncm91cCBpbiBhbGwgc2NyaXB0cyAqLywgImNvbnNvbGUiKTsKKyAgICBtX2luamVjdGVk
U2NyaXB0TWFuYWdlci0+cmVsZWFzZU9iamVjdEdyb3VwKCJjb25zb2xlIik7CiAgICAgbV9pbnNw
ZWN0b3JET01BZ2VudC0+cmVsZWFzZURhbmdsaW5nTm9kZXMoKTsKICAgICBpZiAobV9mcm9udGVu
ZCkKICAgICAgICAgbV9mcm9udGVuZC0+Y29uc29sZU1lc3NhZ2VzQ2xlYXJlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggYzUxNjNi
MWMzZDBkNzU4Y2QzYmRhM2NhMWI5Yzc2NTFmZTMwYzk4ZS4uNDk0Nzc5Y2U2Zjc3NTkxMmU3ZTll
ZDRhMWJjNzJiZWJiMDI0M2M1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCkBAIC04NzgsOSArODc4LDkgQEAgdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6cmVzb2x2ZU5vZGUoRXJyb3JTdHJpbmcqIGVycm9yLCBsb25nIG5vZGVJZCwgY29uc3Qg
U3RyaW4KICAgICAqcmVzdWx0ID0gcmVzb2x2ZU5vZGUobm9kZSwgb2JqZWN0R3JvdXApOwogfQog
Ci12b2lkIEluc3BlY3RvckRPTUFnZW50OjpwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcq
LCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gb2JqZWN0SWQsIGxvbmcqIG5vZGVJZCkKK3Zv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZChFcnJvclN0cmluZyosIGNv
bnN0IFN0cmluZyYgb2JqZWN0SWQsIGxvbmcqIG5vZGVJZCkKIHsKLSAgICBJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlw
dEZvck9iamVjdElkKG9iamVjdElkLmdldCgpKTsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmplY3Rl
ZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvck9iamVj
dElkKG9iamVjdElkKTsKICAgICBOb2RlKiBub2RlID0gaW5qZWN0ZWRTY3JpcHQubm9kZUZvck9i
amVjdElkKG9iamVjdElkKTsKICAgICBpZiAobm9kZSkKICAgICAgICAgKm5vZGVJZCA9IHB1c2hO
b2RlUGF0aFRvRnJvbnRlbmQobm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5oCmluZGV4IGVhMGQwNzUxMzcyMTE2MjZmNzA3MzU1MDRmYjQ5OWUxMGY0
ZmYwYTguLjZlZmZiZDllYjI1OWFlOWE0YmZiZDlmNjA2MWM0NTZjMjlmNGRiODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xMjMsNyArMTIz
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGVyZm9ybVNlYXJjaChFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgd2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwgYm9vbCBydW5TeW5jaHJvbm91c2x5KTsK
ICAgICB2b2lkIGNhbmNlbFNlYXJjaChFcnJvclN0cmluZyopOwogICAgIHZvaWQgcmVzb2x2ZU5v
ZGUoRXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwg
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7Ci0gICAgdm9pZCBwdXNoTm9kZVRvRnJv
bnRlbmQoRXJyb3JTdHJpbmcqLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gb2JqZWN0SWQs
IGxvbmcqIG5vZGVJZCk7CisgICAgdm9pZCBwdXNoTm9kZVRvRnJvbnRlbmQoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBsb25nKiBub2RlSWQpOwogICAgIHZvaWQgcHVzaE5v
ZGVCeVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBwYXRoLCBsb25n
KiBub2RlSWQpOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDg5ODcwNjczZTBmMTI4YjllYTEwMzU3ZjUxZmFmZTE5
M2E1OTJiMDcuLmIzMzUzOTYzNGUwODk4N2U4ZWZiMTAxMWViNzBmNTMxMDgyNmQwMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTMyMiw5ICszMjIsOSBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldFBh
dXNlT25FeGNlcHRpb25zU3RhdGUoRXJyb3JTdHJpbmcqLCBsb25nIHBhdXNlUwogICAgICpuZXdT
dGF0ZSA9IFNjcmlwdERlYnVnU2VydmVyOjpzaGFyZWQoKS5wYXVzZU9uRXhjZXB0aW9uc1N0YXRl
KCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxGcmFt
ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBj
YWxsRnJhbWVJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVj
dEdyb3VwLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4qIHJlc3VsdCkKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZXZhbHVhdGVPbkNhbGxG
cmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgY2FsbEZyYW1lSWQs
IGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9v
bCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQp
CiB7Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZChjYWxsRnJhbWVJZC5nZXQoKSk7Cisg
ICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZChjYWxsRnJhbWVJZCk7CiAgICAgaWYgKCFpbmpl
Y3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCiAgICAgICAgIGluamVjdGVkU2NyaXB0LmV2YWx1YXRl
T25DYWxsRnJhbWUoZXJyb3JTdHJpbmcsIGNhbGxGcmFtZUlkLCBleHByZXNzaW9uLCBvYmplY3RH
cm91cCwgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggYTY4N2IyZThk
MWE2ZmFkYzU5YmM4MDk5ZDMyYzI3YmU3ODI4MWRmNi4uYTNlNmI4ZGRkZDg2NjNmZjY4YjM5ZDlk
Y2FkZDVjNGEyZGVjZTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0ZXBJbnRvKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCBzdGVwT3V0KEVycm9yU3RyaW5nKik7
CiAgICAgdm9pZCBzZXRQYXVzZU9uRXhjZXB0aW9uc1N0YXRlKEVycm9yU3RyaW5nKiwgbG9uZyBw
YXVzZVN0YXRlLCBsb25nKiBuZXdTdGF0ZSk7Ci0gICAgdm9pZCBldmFsdWF0ZU9uQ2FsbEZyYW1l
KEVycm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNhbGxGcmFtZUlkLCBj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wg
aW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KTsK
KyAgICB2b2lkIGV2YWx1YXRlT25DYWxsRnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IGNhbGxGcmFtZUlkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2Jq
ZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0KTsKIAogICAgIGNsYXNzIExpc3RlbmVyIHsKICAgICBwdWJsaWM6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmlu
ZGV4IDI3MjU1MWFhOGI1MTdiYWI2ZTM5NGQ3MDNkYTBmNGVhNmNmMWFkMmYuLjA0ZmVkOWRkMmFi
NWU4MWI5ZTQ0NWI4YmVlMDU2NjRmYmRkNWRiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC02NSwzOSArNjUsMzkgQEAg
dm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBleHAKICAgICAgICAgaW5qZWN0ZWRTY3JpcHQuZXZhbHVhdGUo
ZXJyb3JTdHJpbmcsIGV4cHJlc3Npb24sIG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVB
UEksIHJlc3VsdCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZU9u
KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9i
amVjdElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
KiByZXN1bHQpCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZXZhbHVhdGVPbihFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYg
ZXhwcmVzc2lvbiwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCkKIHsKLSAgICBJbmpl
Y3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmpl
Y3RlZFNjcmlwdEZvck9iamVjdElkKG9iamVjdElkLmdldCgpKTsKKyAgICBJbmplY3RlZFNjcmlw
dCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlw
dEZvck9iamVjdElkKG9iamVjdElkKTsKICAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFs
dWUoKSkKICAgICAgICAgaW5qZWN0ZWRTY3JpcHQuZXZhbHVhdGVPbihlcnJvclN0cmluZywgb2Jq
ZWN0SWQsIGV4cHJlc3Npb24sIHJlc3VsdCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFn
ZW50OjpnZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IG9iamVjdElkLCBib29sIGlnbm9yZUhhc093blByb3BlcnR5LCBib29s
IGFiYnJldmlhdGUsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCkKK3ZvaWQgSW5zcGVj
dG9yUnVudGltZUFnZW50OjpnZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiBvYmplY3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgYm9vbCBh
YmJyZXZpYXRlLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiByZXN1bHQpCiB7Ci0gICAgSW5qZWN0
ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0
ZWRTY3JpcHRGb3JPYmplY3RJZChvYmplY3RJZC5nZXQoKSk7CisgICAgSW5qZWN0ZWRTY3JpcHQg
aW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRG
b3JPYmplY3RJZChvYmplY3RJZCk7CiAgICAgaWYgKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVl
KCkpCiAgICAgICAgIGluamVjdGVkU2NyaXB0LmdldFByb3BlcnRpZXMoZXJyb3JTdHJpbmcsIG9i
amVjdElkLCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgYWJicmV2aWF0ZSwgcmVzdWx0KTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnNldFByb3BlcnR5VmFsdWUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gb2JqZWN0SWQsIGNvbnN0
IFN0cmluZyYgcHJvcGVydHlOYW1lLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCit2b2lkIElu
c3BlY3RvclJ1bnRpbWVBZ2VudDo6c2V0UHJvcGVydHlWYWx1ZShFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1l
LCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCiB7Ci0gICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0
ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmpl
Y3RJZChvYmplY3RJZC5nZXQoKSk7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQg
PSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3JPYmplY3RJZChvYmpl
Y3RJZCk7CiAgICAgaWYgKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCiAgICAgICAgIGlu
amVjdGVkU2NyaXB0LnNldFByb3BlcnR5VmFsdWUoZXJyb3JTdHJpbmcsIG9iamVjdElkLCBwcm9w
ZXJ0eU5hbWUsIGV4cHJlc3Npb24pOwogICAgIGVsc2UKICAgICAgICAgKmVycm9yU3RyaW5nID0g
Ik5vIGluamVjdGVkIHNjcmlwdCBmb3VuZC4iOwogfQogCi12b2lkIEluc3BlY3RvclJ1bnRpbWVB
Z2VudDo6cmVsZWFzZU9iamVjdChFcnJvclN0cmluZyosIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBvYmplY3RJZCkKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpyZWxlYXNlT2JqZWN0
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKIHsKLSAgICBJbmplY3RlZFNj
cmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNj
cmlwdEZvck9iamVjdElkKG9iamVjdElkLmdldCgpKTsKKyAgICBJbmplY3RlZFNjcmlwdCBpbmpl
Y3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvck9i
amVjdElkKG9iamVjdElkKTsKICAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkK
ICAgICAgICAgaW5qZWN0ZWRTY3JpcHQucmVsZWFzZU9iamVjdChvYmplY3RJZCk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpyZWxlYXNlT2JqZWN0R3JvdXAoRXJyb3JTdHJpbmcq
LCBsb25nIGluamVjdGVkU2NyaXB0SWQsIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApCit2b2lk
IEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cmVsZWFzZU9iamVjdEdyb3VwKEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkKIHsKLSAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdl
ci0+cmVsZWFzZU9iamVjdEdyb3VwKGluamVjdGVkU2NyaXB0SWQsIG9iamVjdEdyb3VwKTsKKyAg
ICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+cmVsZWFzZU9iamVjdEdyb3VwKG9iamVjdEdyb3Vw
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IGI2MmY1ODk4YzA3YzYyOTJlOTMw
YTExM2EwZTE5YWI0NDczYTQ0ZTMuLjQ4ZjM2NzA3MTdlNWUwOTBlOWM1NzI0MjIzOGFiMjY1ZmE5
NzNkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmgKQEAgLTU0LDExICs1NCwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBQYXJ0IG9mIHRo
ZSBwcm90b2NvbC4KICAgICB2b2lkIGV2YWx1YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBib29sIGluY2x1ZGVDb21t
YW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCk7Ci0gICAgdm9pZCBl
dmFsdWF0ZU9uKEVycm9yU3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9iamVj
dElkLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBy
ZXN1bHQpOwotICAgIHZvaWQgcmVsZWFzZU9iamVjdChFcnJvclN0cmluZyosIFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBvYmplY3RJZCk7Ci0gICAgdm9pZCBnZXRQcm9wZXJ0aWVzKEVycm9y
U3RyaW5nKiwgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9iamVjdElkLCBib29sIGlnbm9y
ZUhhc093blByb3BlcnR5LCBib29sIGFiYnJldmlhdGUsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4q
IHJlc3VsdCk7Ci0gICAgdm9pZCBzZXRQcm9wZXJ0eVZhbHVlKEVycm9yU3RyaW5nKiwgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG9iamVjdElkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFt
ZSwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKTsKLSAgICB2b2lkIHJlbGVhc2VPYmplY3RHcm91
cChFcnJvclN0cmluZyosIGxvbmcgaW5qZWN0ZWRTY3JpcHRJZCwgY29uc3QgU3RyaW5nJiBvYmpl
Y3RHcm91cCk7CisgICAgdm9pZCBldmFsdWF0ZU9uKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiogcmVzdWx0KTsKKyAgICB2b2lkIHJlbGVhc2VPYmplY3QoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIG9iamVjdElkKTsKKyAgICB2b2lkIGdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBib29sIGlnbm9yZUhhc093blByb3BlcnR5LCBib29s
IGFiYnJldmlhdGUsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CisgICAgdm9pZCBz
ZXRQcm9wZXJ0eVZhbHVlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7CisgICAg
dm9pZCByZWxlYXNlT2JqZWN0R3JvdXAoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVj
dEdyb3VwKTsKIAogcHJpdmF0ZToKICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiwgUGFnZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXggNzE4MzE1ZjJmNjcyMTJjNGIwNzMwMjVlOGYy
NmQ1MDFjYTBlN2U4MC4uZmFlM2FlOWNhOGQ1YWU5MTk5YzBkNmY2OWVhNDAxODJiZTIzNDI2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmll
dy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3
LmpzCkBAIC0zNjUsNyArMzY1LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBldmFsdWF0ZWRQcm9wZXJ0aWVzKHByb3BlcnRpZXMp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5yZWxlYXNlT2JqZWN0R3JvdXAo
MCwgImNvbXBsZXRpb24iKTsKKyAgICAgICAgICAgIFJ1bnRpbWVBZ2VudC5yZWxlYXNlT2JqZWN0
R3JvdXAoImNvbXBsZXRpb24iKTsKICAgICAgICAgICAgIHZhciBwcm9wZXJ0eU5hbWVzID0gW107
CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgcHJvcGVydGllcyAmJiBpIDwgcHJvcGVydGll
cy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLnB1c2gocHJvcGVy
dGllc1tpXS5uYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2lkZWJhclBhbmUuanMKaW5kZXggZmM3YzFiNWNiZWEzM2Q1
ZWM0ZTk0NGFmNWE5ZDVhNDc5YjA4MTc4OS4uMjRmNTNkN2JiMzZhY2M2ZjA4ZmJhMzhhODUyZDk5
MjgxNGU5NWI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9wZXJ0aWVzU2lkZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2lkZWJhclBhbmUuanMKQEAgLTQyLDcgKzQyLDcgQEAgV2Vi
SW5zcGVjdG9yLlByb3BlcnRpZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBSdW50aW1lQWdlbnQucmVsZWFzZU9iamVj
dEdyb3VwKDAsICJkb20tc2VsZWN0aW9uIik7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5yZWxlYXNl
T2JqZWN0R3JvdXAoImRvbS1zZWxlY3Rpb24iKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLlJlbW90
ZU9iamVjdC5yZXNvbHZlTm9kZShub2RlLCBub2RlUmVzb2x2ZWQuYmluZCh0aGlzKSk7CiAKICAg
ICAgICAgZnVuY3Rpb24gbm9kZVJlc29sdmVkKG9iamVjdFBheWxvYWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDU2N2Jk
YjkwNmFhNmU5NjNkMDk4NGYyYWJlNWQzYjdkZjlmNDczZTIuLjhkYmEwODQ5OGQ4NmI3ZDVmOGNi
YjhlYTNmZjcyY2YxMGQ4YzQ0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0xMTY4LDcgKzExNjgsNyBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAK
ICAgICByZWxlYXNlRXZhbHVhdGlvblJlc3VsdDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
UnVudGltZUFnZW50LnJlbGVhc2VPYmplY3RHcm91cCgwLCB0aGlzLl9wb3BvdmVyT2JqZWN0R3Jv
dXApOworICAgICAgICBSdW50aW1lQWdlbnQucmVsZWFzZU9iamVjdEdyb3VwKHRoaXMuX3BvcG92
ZXJPYmplY3RHcm91cCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1dhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5l
LmpzCmluZGV4IDc2NDk1ZDU4ZjlhZDVmN2M5NzQ5ZThlMDJiNDkxMTgxY2VmODU1N2QuLjIzMjQ3
ZmMxMDlkZWQyMzRmMTFkYWM2ZDI3MTc0ZGU4YjAyZTgwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQYW5lLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2F0Y2hFeHByZXNzaW9u
c1NpZGViYXJQYW5lLmpzCkBAIC0xMjAsNyArMTIwLDcgQEAgV2ViSW5zcGVjdG9yLldhdGNoRXhw
cmVzc2lvbnNTZWN0aW9uLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFRP
RE86IHBhc3MgZXhhY3QgaW5qZWN0ZWQgc2NyaXB0IGlkLgotICAgICAgICBSdW50aW1lQWdlbnQu
cmVsZWFzZU9iamVjdEdyb3VwKDAsIHRoaXMuX3dhdGNoT2JqZWN0R3JvdXBJZCkKKyAgICAgICAg
UnVudGltZUFnZW50LnJlbGVhc2VPYmplY3RHcm91cCh0aGlzLl93YXRjaE9iamVjdEdyb3VwSWQp
CiAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0gW107CiAKICAgICAgICAgLy8gQ291bnQgdGhlIHBy
b3BlcnRpZXMsIHNvIHdlIGtub3duIHdoZW4gdG8gY2FsbCB0aGlzLnVwZGF0ZVByb3BlcnRpZXMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpp
bmRleCA5NWMwODFkNGIzMTU5MmQ0NDRhNzUyZDkzMWVhNWE4NmQxOTIxNTE0Li5kMjc2ODVjYWE3
MjQ1YWM5YTNjZTA2N2IyN2ZlZDBjYzk2YjU1YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMTE1Nyw5ICsxMTU3LDkgQEAgV2Vi
SW5zcGVjdG9yLmRyYXdMb2FkaW5nUGllQ2hhcnQgPSBmdW5jdGlvbihjYW52YXMsIHBlcmNlbnQp
IHsKICAgICBnLmZpbGwoKTsKIH0KIAotV2ViSW5zcGVjdG9yLmluc3BlY3QgPSBmdW5jdGlvbihv
YmplY3RJZCwgaGludHMpCitXZWJJbnNwZWN0b3IuaW5zcGVjdCA9IGZ1bmN0aW9uKHBheWxvYWQs
IGhpbnRzKQogewotICAgIHZhciBvYmplY3QgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZy
b21QYXlsb2FkKG9iamVjdElkKTsKKyAgICB2YXIgb2JqZWN0ID0gV2ViSW5zcGVjdG9yLlJlbW90
ZU9iamVjdC5mcm9tUGF5bG9hZChwYXlsb2FkKTsKICAgICBpZiAob2JqZWN0LnR5cGUgPT09ICJu
b2RlIikgewogICAgICAgICAvLyBSZXF1ZXN0IG5vZGUgZnJvbSBiYWNrZW5kIGFuZCBmb2N1cyBp
dC4KICAgICAgICAgb2JqZWN0LnB1c2hOb2RlVG9Gcm9udGVuZChXZWJJbnNwZWN0b3IudXBkYXRl
Rm9jdXNlZE5vZGUuYmluZChXZWJJbnNwZWN0b3IpLCBvYmplY3QucmVsZWFzZS5iaW5kKG9iamVj
dCkpOwo=
</data>
<flag name="review"
          id="78492"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>