<?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>56093</bug_id>
          
          <creation_ts>2011-03-10 04:34:57 -0800</creation_ts>
          <short_desc>Web Inspector: brush up DOM agent API.</short_desc>
          <delta_ts>2011-03-10 06:26:49 -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>
          
          
          <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>365101</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-10 04:34:57 -0800</bug_when>
    <thetext>This change also removes some DOM-&gt;Elements dependencies. There is more work to do, but the patch is getting big.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365103</commentid>
    <comment_count>1</comment_count>
      <attachid>85309</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-10 04:50:49 -0800</bug_when>
    <thetext>Created attachment 85309
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365107</commentid>
    <comment_count>2</comment_count>
      <attachid>85309</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-10 05:01:36 -0800</bug_when>
    <thetext>Comment on attachment 85309
Patch

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

&gt; Source/WebCore/inspector/front-end/DOMAgent.js:95
&gt; +    nodeType: function()

Why is it(and other accessors below) not a getter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365126</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-03-10 06:26:49 -0800</bug_when>
    <thetext>Committed r80713: &lt;http://trac.webkit.org/changeset/80713&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85309</attachid>
            <date>2011-03-10 04:50:49 -0800</date>
            <delta_ts>2011-03-10 05:01:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56093-20110310155046.patch</filename>
            <type>text/plain</type>
            <size>47699</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA2MjkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMTRiZjliYjg5NDdhYzgyYjc0ZTA0
NTVhMjRkNDZmZGY0NDJkNzQ4Li41MDQ2NWMwYzI3MjVjNWQzNDQ0Yjk0NTA5Njk3MDAxMGMzYTg2
Mzk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDMtMTAgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYnJ1c2ggdXAgRE9NIGFnZW50IEFQSS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDkzCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzOgorICAgICAgICAo
aW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0Lm5vZGVXaXRoSWQucHJvY2Vzc0No
aWxkcmVuKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxlbWVudFRlc3QuSW5zcGVjdG9yVGVzdC5u
b2RlV2l0aElkLmRvY3VtZW50UmVxdWVzdGVkKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxlbWVu
dFRlc3QuSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKToKKyAgICAgICAgKGluaXRpYWxpemVfRWxl
bWVudFRlc3QuSW5zcGVjdG9yVGVzdC5kdW1wRE9NQWdlbnRUcmVlLmR1bXApOgorICAgICAgICAo
aW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LmR1bXBET01BZ2VudFRyZWUpOgor
ICAgICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL2Vs
ZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2guaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2guaHRtbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24tbm9kZS5odG1sOgor
CiAyMDExLTAzLTA5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcwppbmRleCA5NWMzNzNlNWQ1ZWNj
MGRhNTlhZmMyZmUxNWZjZThmMmYxNTcyNTBkLi45NjdjOWIyMGQ1MTQxZmZmOGIzNzZmMjhkMzRk
MjgyYWI1MTRiNDBjIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2VsZW1lbnRzLXRlc3QuanMKQEAgLTIxLDcgKzIxLDcgQEAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0
aElkID0gZnVuY3Rpb24oaWRWYWx1ZSwgY2FsbGJhY2spCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcGVuZGluZ1JlcXVlc3RzKys7Ci0gICAgICAg
ICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZ2V0Q2hpbGROb2Rlc0FzeW5jKGNoaWxkTm9kZSwg
cHJvY2Vzc0NoaWxkcmVuLmJpbmQobnVsbCwgZmFsc2UpKTsKKyAgICAgICAgICAgIGNoaWxkTm9k
ZS5jaGlsZE5vZGVzKHByb2Nlc3NDaGlsZHJlbi5iaW5kKG51bGwsIGZhbHNlKSk7CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAodG9wTGV2ZWwpCkBAIC0zNCw3ICszNCw3IEBAIEluc3BlY3RvclRl
c3Qubm9kZVdpdGhJZCA9IGZ1bmN0aW9uKGlkVmFsdWUsIGNhbGxiYWNrKQogICAgIFdlYkluc3Bl
Y3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoZG9jdW1lbnRSZXF1ZXN0ZWQuYmluZCh0aGlz
KSk7CiAgICAgZnVuY3Rpb24gZG9jdW1lbnRSZXF1ZXN0ZWQoZG9jKQogICAgIHsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LmdldENoaWxkTm9kZXNBc3luYyhkb2MsIHByb2Nlc3NDaGls
ZHJlbi5iaW5kKHRoaXMsIHRydWUpKTsKKyAgICAgICAgZG9jLmNoaWxkTm9kZXMocHJvY2Vzc0No
aWxkcmVuLmJpbmQodGhpcywgdHJ1ZSkpOwogICAgIH0KIH07CiAKQEAgLTIwNCw3ICsyMDQsNyBA
QCBJbnNwZWN0b3JUZXN0LmR1bXBET01BZ2VudFRyZWUgPSBmdW5jdGlvbigpCiAKICAgICBmdW5j
dGlvbiBkdW1wKG5vZGUsIHByZWZpeCwgc3RhcnRJbmRleCkKICAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KHByZWZpeCArIG5vZGUubm9kZU5hbWUgKyAiWyIgKyAobm9kZS5p
ZCAtIHN0YXJ0SW5kZXgpKyAiXSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChw
cmVmaXggKyBub2RlLm5vZGVOYW1lKCkgKyAiWyIgKyAobm9kZS5pZCAtIHN0YXJ0SW5kZXgpKyAi
XSIpOwogICAgICAgICB2YXIgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuOwogICAgICAgICBmb3Ig
KHZhciBpID0gMDsgY2hpbGRyZW4gJiYgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgZHVtcChjaGlsZHJlbltpXSwgcHJlZml4ICsgIiAgICAiLCBzdGFydEluZGV4KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1y
ZXdyaXRlLWhyZWYuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50
cy1wYW5lbC1yZXdyaXRlLWhyZWYuaHRtbAppbmRleCBiNzg5MjkyMzQwODNlMWFiNzIzNjM5Y2Ni
MTMxMzM1NjZiMTIwYmRhLi40NWVhYzUwMDk0OTRiMjA4ZjBkMzc3ZjcwNjY0Y2FjOTQ2NTk5NjU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFu
ZWwtcmV3cml0ZS1ocmVmLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRz
L2VsZW1lbnRzLXBhbmVsLXJld3JpdGUtaHJlZi5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogCiAgICAgICAgIGZvciAodmFyIG5vZGVJZCBpbiBpbm5lck1hcHBpbmcpIHsK
ICAgICAgICAgICAgIHZhciBub2RlID0gaW5uZXJNYXBwaW5nW25vZGVJZF07Ci0gICAgICAgICAg
ICBpZiAobm9kZS5ub2RlTmFtZSA9PT0gIkxJTksiIHx8IG5vZGUubm9kZU5hbWUgPT09ICJTQ1JJ
UFQiKSB7CisgICAgICAgICAgICBpZiAobm9kZS5ub2RlTmFtZSgpID09PSAiTElOSyIgfHwgbm9k
ZS5ub2RlTmFtZSgpID09PSAiU0NSSVBUIikgewogICAgICAgICAgICAgICAgIHZhciBzZWdtZW50
cyA9IFtdOwogICAgICAgICAgICAgICAgIHZhciBocmVmID0gV2ViSW5zcGVjdG9yLnJlc291cmNl
VVJMRm9yUmVsYXRlZE5vZGUobm9kZSwgbm9kZS5nZXRBdHRyaWJ1dGUoInNyYyIpIHx8IG5vZGUu
Z2V0QXR0cmlidXRlKCJocmVmIikpOwogICAgICAgICAgICAgICAgIGlmICghaHJlZikgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNl
YXJjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVs
LXNlYXJjaC5odG1sCmluZGV4IDcyNDhlNzY3ODU5NjZhOTI5MGQ2MWYyYzI2NWJkZjBjNGQzMzQ4
NjkuLmQ1YjNhYzA5ODQ1ZjA5MTJjMTNlNTFhMDBlY2ZkM2EyYmZmNDI2N2IgMTAwNzU1Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1wYW5lbC1zZWFyY2guaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2Vh
cmNoLmh0bWwKQEAgLTI0LDEwICsyNCwxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZUlkcy5sZW5ndGg7ICsraSkgewogICAgICAgICAg
ICAgdmFyIG5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKG5vZGVJZHNbaV0p
OwotICAgICAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKQotICAg
ICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMucHVzaChub2RlLm5vZGVWYWx1ZSk7CisgICAgICAg
ICAgICBpZiAobm9kZS5ub2RlVHlwZSgpID09PSBOb2RlLlRFWFRfTk9ERSkKKyAgICAgICAgICAg
ICAgICBzZWFyY2hSZXN1bHRzLnB1c2gobm9kZS5ub2RlVmFsdWUoKSk7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgRE9NQWdlbnQuZ2V0T3V0ZXJIVE1MKG5vZGUuaWQsIGFkZFNl
YXJjaFJlc3VsdCk7CisgICAgICAgICAgICAgICAgbm9kZS5vdXRlckhUTUwoYWRkU2VhcmNoUmVz
dWx0KTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLXNlbGVjdGlvbi1vbi1yZWZyZXNoLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9u
LXJlZnJlc2guaHRtbAppbmRleCA5NThlYjZiZTQ3YTZmZjE3OWFkMjdjYWE4YWNhMTBjYjU0MDAy
MjIwLi45M2YyOWY1ZTQ5NTkzZTMyNGFhYjQwZGM1NThjYzdlZDFjNmY0MDhmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9u
LW9uLXJlZnJlc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZWxl
bWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2guaHRtbApAQCAtMjIsNyArMjIsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAgIC8vIFdlIHNob3VsZCBoYXZlICJ0ZXN0LXRv
cGljIiBlbGVtZW50IHNlbGVjdGVkIGFmdGVyIHJlZnJlc2guCiAgICAgICAgIHZhciBzZWxlY3Rl
ZEVsZW1lbnQgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLnNlbGVj
dGVkVHJlZUVsZW1lbnQ7Ci0gICAgICAgIHZhciBub2RlTmFtZSA9IHNlbGVjdGVkRWxlbWVudCA/
IHNlbGVjdGVkRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdC5ub2RlTmFtZSA6ICJudWxsIjsKKyAg
ICAgICAgdmFyIG5vZGVOYW1lID0gc2VsZWN0ZWRFbGVtZW50ID8gc2VsZWN0ZWRFbGVtZW50LnJl
cHJlc2VudGVkT2JqZWN0Lm5vZGVOYW1lKCkgOiAibnVsbCI7CiAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJTZWxlY3RlZCBlbGVtZW50IHNob3VsZCBiZSAnUCcsIHdhczogJyIgKyBu
b2RlTmFtZSArICInIik7CiAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL211dGF0ZS11
bmtub3duLW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9tdXRhdGUt
dW5rbm93bi1ub2RlLmh0bWwKaW5kZXggZDljNjliYmQyN2U2NmVmMDViZjVmZmMyYzU2Njk0MjE1
ZmRjN2E0Mi4uZmY2Y2NkMTA1MTBiNzQ3NTFmN2Y3OGMxMGU5ZjdiN2Y3MjRhMWQ4NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL211dGF0ZS11bmtub3duLW5vZGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvbXV0YXRlLXVua25vd24t
bm9kZS5odG1sCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIGZ1bmN0
aW9uIGxpc3RlbmVyKHR5cGUsIGV2ZW50KQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkRPTUFnZW50IGV2ZW50IGZpcmVkLiBTaG91bGQgb25seSBoYXBwZW4gb25jZSBm
b3Igb3V0cHV0IG5vZGU6ICIgKyB0eXBlICsgIiAiICsgZXZlbnQudGFyZ2V0Lm5vZGVOYW1lICsg
IiMiICsgZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiaWQiKSk7CisgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJET01BZ2VudCBldmVudCBmaXJlZC4gU2hvdWxkIG9ubHkgaGFwcGVu
IG9uY2UgZm9yIG91dHB1dCBub2RlOiAiICsgdHlwZSArICIgIiArIGV2ZW50LnRhcmdldC5ub2Rl
TmFtZSgpICsgIiMiICsgZXZlbnQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiaWQiKSk7CiAgICAgfQog
CiAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChzdGVwMC5iaW5kKHRo
aXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBmYTI5OTZiMWJlMjA1NWRlNTAxZTIzZTI0ODM4YTQ1NWJiMjBl
NThhLi4yY2ZjZTY4OWRkYzczYzY0NzkyMjRkMzMxNmYzODRhY2JmM2NmYmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNjIgQEAKKzIwMTEtMDMtMTAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogYnJ1c2ggdXAgRE9NIGFnZW50IEFQSS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDkzCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmNoaWxkTm9k
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpvdXRlckhUTUwpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVWYWx1ZSk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5oYXNBdHRyaWJ1dGVzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5ub2RlVHlwZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUubm9kZU5hbWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLnNldE5vZGVOYW1lKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLnByb3RvdHlwZS5sb2NhbE5hbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRPTU5vZGUucHJvdG90eXBlLm5vZGVWYWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
Tm9kZS5wcm90b3R5cGUuc2V0Tm9kZVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01O
b2RlLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5v
ZGUucHJvdG90eXBlLmF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUu
cHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9k
ZS5wcm90b3R5cGUuY2hpbGROb2Rlcy5teWNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01Ob2RlLnByb3RvdHlwZS5jaGlsZE5vZGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01Ob2RlLnByb3RvdHlwZS5vdXRlckhUTUwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5v
ZGUucHJvdG90eXBlLnNldE91dGVySFRNTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9k
ZS5wcm90b3R5cGUucmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5w
cm90b3R5cGUuY29weU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90
eXBlLnBhdGgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLl9zZXRB
dHRyaWJ1dGVzUGF5bG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5
cGUuX2FkZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90
eXBlLl9jaGFyYWN0ZXJEYXRhTW9kaWZpZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVs
LnByb3RvdHlwZS51cGRhdGVCcmVhZGNydW1iKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVt
ZW50c1BhbmVsLnByb3RvdHlwZS5kZWNvcmF0ZU5vZGVMYWJlbCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuaGFuZGxlQ29weUV2ZW50KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuZmluZFRyZWVFbGVtZW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS51cGRhdGVDaGlsZHJl
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUu
X3VwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVt
ZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nVGFyZ2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fc3RhcnRFZGl0aW5nKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fYXR0cmlidXRlRWRp
dGluZ0NvbW1pdHRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVu
dC5wcm90b3R5cGUuX3RhZ05hbWVFZGl0aW5nQ29tbWl0dGVkLm1vdmVUb05leHRBdHRyaWJ1dGVJ
Zk5lZWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90
b3R5cGUuX3RhZ05hbWVFZGl0aW5nQ29tbWl0dGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGV4dE5vZGVFZGl0aW5nQ29tbWl0dGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fYXR0
cmlidXRlSFRNTCk6CisgICAgICAgICgpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9NZXRyaWNzU2lkZWJhclBhbmUuanM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL3V0aWxpdGllcy5qczoKKwogMjAxMS0wMy0wOSAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0
c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCAyMTZkNGIxMGU1
NWM0YWU5NWU1ZjgyMTA0NjQ0ZjFlOGQzNGMwMTQ5Li4zYjRjZmJkYTM2MTVmNzA1OTg2NzI5YjVk
MWZlZGExMTY4MDkwZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApA
QCAtMTQ0LDE5ICsxNDQsMjYgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFtDb25k
aXRpb25hbD1JTlNQRUNUT1JdIERPTSB7CiAgICAgICAgIHZvaWQgZ2V0RG9jdW1lbnQob3V0IE9i
amVjdCByb290KTsKLSAgICAgICAgdm9pZCBnZXRDaGlsZE5vZGVzKGluIGxvbmcgbm9kZUlkKTsK
KyAgICAgICAgdm9pZCBjaGlsZE5vZGVzKGluIGxvbmcgbm9kZUlkKTsKKwogICAgICAgICB2b2lk
IHF1ZXJ5U2VsZWN0b3IoaW4gbG9uZyBub2RlSWQsIGluIFN0cmluZyBzZWxlY3RvcnMsIGluIGJv
b2xlYW4gZG9jdW1lbnRXaWRlLCBvdXQgbG9uZyBlbGVtZW50SWQpOwogICAgICAgICB2b2lkIHF1
ZXJ5U2VsZWN0b3JBbGwoaW4gbG9uZyBub2RlSWQsIGluIFN0cmluZyBzZWxlY3RvcnMsIGluIGJv
b2xlYW4gZG9jdW1lbnRXaWRlLCBvdXQgQXJyYXkgcmVzdWx0KTsKKworICAgICAgICB2b2lkIHNl
dE5vZGVOYW1lKGluIGxvbmcgbm9kZUlkLCBpbiBTdHJpbmcgbmFtZSwgb3V0IGxvbmcgb3V0Tm9k
ZUlkKTsKKyAgICAgICAgdm9pZCBzZXROb2RlVmFsdWUoaW4gbG9uZyBub2RlSWQsIGluIFN0cmlu
ZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CisgICAgICAgIHZvaWQgcmVtb3ZlTm9kZShp
biBsb25nIG5vZGVJZCwgb3V0IGxvbmcgb3V0Tm9kZUlkKTsKKwogICAgICAgICB2b2lkIHNldEF0
dHJpYnV0ZShpbiBsb25nIGVsZW1lbnRJZCwgaW4gU3RyaW5nIG5hbWUsIGluIFN0cmluZyB2YWx1
ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CiAgICAgICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKGlu
IGxvbmcgZWxlbWVudElkLCBpbiBTdHJpbmcgbmFtZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7Ci0g
ICAgICAgIHZvaWQgc2V0VGV4dE5vZGVWYWx1ZShpbiBsb25nIG5vZGVJZCwgaW4gU3RyaW5nIHZh
bHVlLCBvdXQgYm9vbGVhbiBzdWNjZXNzKTsKKwogICAgICAgICB2b2lkIGdldEV2ZW50TGlzdGVu
ZXJzRm9yTm9kZShpbiBsb25nIG5vZGVJZCwgb3V0IGxvbmcgb3V0Tm9kZUlkLCBvdXQgQXJyYXkg
bGlzdGVuZXJzQXJyYXkpOwogICAgICAgICB2b2lkIGNvcHlOb2RlKGluIGxvbmcgbm9kZUlkKTsK
LSAgICAgICAgdm9pZCByZW1vdmVOb2RlKGluIGxvbmcgbm9kZUlkLCBvdXQgbG9uZyBvdXROb2Rl
SWQpOwotICAgICAgICB2b2lkIGNoYW5nZVRhZ05hbWUoaW4gbG9uZyBub2RlSWQsIGluIFN0cmlu
ZyBuZXdUYWdOYW1lLCBvdXQgbG9uZyBvdXROb2RlSWQpOwotICAgICAgICB2b2lkIGdldE91dGVy
SFRNTChpbiBsb25nIG5vZGVJZCwgb3V0IFN0cmluZyBvdXRlckhUTUwpOworCisgICAgICAgIHZv
aWQgb3V0ZXJIVE1MKGluIGxvbmcgbm9kZUlkLCBvdXQgU3RyaW5nIG91dGVySFRNTCk7CiAgICAg
ICAgIHZvaWQgc2V0T3V0ZXJIVE1MKGluIGxvbmcgbm9kZUlkLCBpbiBTdHJpbmcgb3V0ZXJIVE1M
LCBvdXQgbG9uZyBvdXROb2RlSWQpOworCiAgICAgICAgIHZvaWQgYWRkSW5zcGVjdGVkTm9kZShp
biBsb25nIG5vZGVJZCk7CisKICAgICAgICAgdm9pZCBwZXJmb3JtU2VhcmNoKGluIFN0cmluZyBx
dWVyeSwgaW4gYm9vbGVhbiBydW5TeW5jaHJvbm91c2x5KTsKICAgICAgICAgdm9pZCBzZWFyY2hD
YW5jZWxlZCgpOwogICAgICAgICB2b2lkIHB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChpbiBTdHJp
bmcgcGF0aCwgb3V0IGxvbmcgbm9kZUlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDNlZGQ3MmM1OWVlZjEwODY3MzMyZTMzNTE2MTBm
MmJlYzkyZWY1M2IuLjg5OWE1OTMwMGZkMjFjMTg2YzI4Y2RmODBmOGMyMjIxOTg2Mzk3YTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAt
NDI4LDcgKzQyOCw3IEBAIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9ySWQobG9uZyBp
ZCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0Q2hpbGRO
b2RlcyhFcnJvclN0cmluZyosIGxvbmcgbm9kZUlkKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
Y2hpbGROb2RlcyhFcnJvclN0cmluZyosIGxvbmcgbm9kZUlkKQogewogICAgIHB1c2hDaGlsZE5v
ZGVzVG9Gcm9udGVuZChub2RlSWQpOwogfQpAQCAtNTU1LDggKzU1NSwxMCBAQCB2b2lkIEluc3Bl
Y3RvckRPTUFnZW50OjpyZW1vdmVOb2RlKEVycm9yU3RyaW5nKiwgbG9uZyBub2RlSWQsIGxvbmcq
IG91dE5vZGVJZCkKICAgICAqb3V0Tm9kZUlkID0gbm9kZUlkOwogfQogCi12b2lkIEluc3BlY3Rv
ckRPTUFnZW50OjpjaGFuZ2VUYWdOYW1lKEVycm9yU3RyaW5nKiwgbG9uZyBub2RlSWQsIGNvbnN0
IFN0cmluZyYgdGFnTmFtZSwgbG9uZyogbmV3SWQpCit2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpz
ZXROb2RlTmFtZShFcnJvclN0cmluZyosIGxvbmcgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHRhZ05h
bWUsIGxvbmcqIG5ld0lkKQogeworICAgICpuZXdJZCA9IDA7CisKICAgICBOb2RlKiBvbGROb2Rl
ID0gbm9kZUZvcklkKG5vZGVJZCk7CiAgICAgaWYgKCFvbGROb2RlIHx8ICFvbGROb2RlLT5pc0Vs
ZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTU5MCw3ICs1OTIsNyBAQCB2b2lkIElu
c3BlY3RvckRPTUFnZW50OjpjaGFuZ2VUYWdOYW1lKEVycm9yU3RyaW5nKiwgbG9uZyBub2RlSWQs
IGNvbnN0IFN0cmluZyYgdAogICAgICAgICBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQoKm5ld0lk
KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5n
KiwgbG9uZyBub2RlSWQsIFdURjo6U3RyaW5nKiBvdXRlckhUTUwpCit2b2lkIEluc3BlY3RvckRP
TUFnZW50OjpvdXRlckhUTUwoRXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCwgV1RGOjpTdHJpbmcq
IG91dGVySFRNTCkKIHsKICAgICBOb2RlKiBub2RlID0gbm9kZUZvcklkKG5vZGVJZCk7CiAgICAg
aWYgKCFub2RlIHx8ICFub2RlLT5pc0hUTUxFbGVtZW50KCkpCkBAIC02MzcsNyArNjM5LDcgQEAg
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5nKiwgbG9uZyBu
b2RlSWQsIGNvbnN0IFN0cmluZyYgb3UKICAgICAgICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5k
KCpuZXdJZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldFRleHROb2RlVmFsdWUo
RXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3Vj
Y2VzcykKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVWYWx1ZShFcnJvclN0cmluZyos
IGxvbmcgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKQogewogICAg
IE5vZGUqIG5vZGUgPSBub2RlRm9ySWQobm9kZUlkKTsKICAgICBpZiAobm9kZSAmJiAobm9kZS0+
bm9kZVR5cGUoKSA9PSBOb2RlOjpURVhUX05PREUpKSB7CkBAIC02NDUsNyArNjQ3LDkgQEAgdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0VGV4dE5vZGVWYWx1ZShFcnJvclN0cmluZyosIGxvbmcg
bm9kZUlkLCBjb25zdCBTdHJpbmcKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAg
ICAgIHRleHRfbm9kZS0+cmVwbGFjZVdob2xlVGV4dCh2YWx1ZSwgZWMpOwogICAgICAgICAqc3Vj
Y2VzcyA9ICFlYzsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAqc3VjY2VzcyA9IGZhbHNl
OwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUo
RXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCwgbG9uZyogb3V0Tm9kZUlkLCBSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+KiBsaXN0ZW5lcnNBcnJheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKaW5kZXggMDM2ODg4MGFjNzI4ZDAzODJjMzhmM2VmOTQwNzYyMzZm
YmRiODM2OS4uOThlMTBiN2QzMzU1ODMxZTI4N2IxNzJlODcwOGQ3OTNiY2VmMWIwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTEwOCwxNCAr
MTA4LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHF1ZXJ5U2VsZWN0b3IoRXJyb3JTdHJpbmcqLCBs
b25nIG5vZGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIGJvb2wgZG9jdW1lbnRXaWRlLCBs
b25nKiBlbGVtZW50SWQpOwogICAgIHZvaWQgcXVlcnlTZWxlY3RvckFsbChFcnJvclN0cmluZyos
IGxvbmcgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgYm9vbCBkb2N1bWVudFdpZGUs
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7CiAgICAgdm9pZCBnZXREb2N1bWVudChF
cnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByb290KTsKLSAgICB2b2lkIGdl
dENoaWxkTm9kZXMoRXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCk7CisgICAgdm9pZCBjaGlsZE5v
ZGVzKEVycm9yU3RyaW5nKiwgbG9uZyBub2RlSWQpOwogICAgIHZvaWQgc2V0QXR0cmlidXRlKEVy
cm9yU3RyaW5nKiwgbG9uZyBlbGVtZW50SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCogc3VjY2Vzcyk7CiAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoRXJy
b3JTdHJpbmcqLCBsb25nIGVsZW1lbnRJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sKiBzdWNj
ZXNzKTsKICAgICB2b2lkIHJlbW92ZU5vZGUoRXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCwgbG9u
Zyogb3V0Tm9kZUlkKTsKLSAgICB2b2lkIGNoYW5nZVRhZ05hbWUoRXJyb3JTdHJpbmcqLCBsb25n
IG5vZGVJZCwgY29uc3QgU3RyaW5nJiB0YWdOYW1lLCBsb25nKiBuZXdJZCk7Ci0gICAgdm9pZCBn
ZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCwgV1RGOjpTdHJpbmcqIG91dGVy
SFRNTCk7CisgICAgdm9pZCBzZXROb2RlTmFtZShFcnJvclN0cmluZyosIGxvbmcgbm9kZUlkLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGxvbmcqIG5ld0lkKTsKKyAgICB2b2lkIG91dGVySFRNTChFcnJv
clN0cmluZyosIGxvbmcgbm9kZUlkLCBXVEY6OlN0cmluZyogb3V0ZXJIVE1MKTsKICAgICB2b2lk
IHNldE91dGVySFRNTChFcnJvclN0cmluZyosIGxvbmcgbm9kZUlkLCBjb25zdCBTdHJpbmcmIG91
dGVySFRNTCwgbG9uZyogbmV3SWQpOwotICAgIHZvaWQgc2V0VGV4dE5vZGVWYWx1ZShFcnJvclN0
cmluZyosIGxvbmcgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKTsK
KyAgICB2b2lkIHNldE5vZGVWYWx1ZShFcnJvclN0cmluZyosIGxvbmcgbm9kZUlkLCBjb25zdCBT
dHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKTsKICAgICB2b2lkIGdldEV2ZW50TGlzdGVuZXJz
Rm9yTm9kZShFcnJvclN0cmluZyosIGxvbmcgbm9kZUlkLCBsb25nKiBvdXROb2RlSWQsIFJlZlB0
cjxJbnNwZWN0b3JBcnJheT4qIGxpc3RlbmVyc0FycmF5KTsKICAgICB2b2lkIGFkZEluc3BlY3Rl
ZE5vZGUoRXJyb3JTdHJpbmcqLCBsb25nIG5vZGVJZCk7CiAgICAgdm9pZCBwZXJmb3JtU2VhcmNo
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBib29s
IHJ1blN5bmNocm9ub3VzbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9ET01BZ2VudC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanMKaW5kZXggY2IyOGFiYTcwOGFlZjQxMDA3MDNiNTE4MWY5MjNhOGU2NjAy
Yzk2NS4uOGRjMjM3OGFmNGI4ZmVlMmRlOGE3YzBlZThkNjNmOGVkMDc5YjMzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC0zMywxMyAr
MzMsMTIgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBmdW5jdGlvbihkb2MsIHBheWxvYWQpIHsK
ICAgICB0aGlzLm93bmVyRG9jdW1lbnQgPSBkb2M7CiAKICAgICB0aGlzLmlkID0gcGF5bG9hZC5p
ZDsKLSAgICB0aGlzLm5vZGVUeXBlID0gcGF5bG9hZC5ub2RlVHlwZTsKLSAgICB0aGlzLm5vZGVO
YW1lID0gcGF5bG9hZC5ub2RlTmFtZTsKLSAgICB0aGlzLmxvY2FsTmFtZSA9IHBheWxvYWQubG9j
YWxOYW1lOworICAgIHRoaXMuX25vZGVUeXBlID0gcGF5bG9hZC5ub2RlVHlwZTsKKyAgICB0aGlz
Ll9ub2RlTmFtZSA9IHBheWxvYWQubm9kZU5hbWU7CisgICAgdGhpcy5fbG9jYWxOYW1lID0gcGF5
bG9hZC5sb2NhbE5hbWU7CiAgICAgdGhpcy5fbm9kZVZhbHVlID0gcGF5bG9hZC5ub2RlVmFsdWU7
Ci0gICAgdGhpcy50ZXh0Q29udGVudCA9IHRoaXMubm9kZVZhbHVlOwogCi0gICAgdGhpcy5hdHRy
aWJ1dGVzID0gW107CisgICAgdGhpcy5fYXR0cmlidXRlcyA9IFtdOwogICAgIHRoaXMuX2F0dHJp
YnV0ZXNNYXAgPSB7fTsKICAgICBpZiAocGF5bG9hZC5hdHRyaWJ1dGVzKQogICAgICAgICB0aGlz
Ll9zZXRBdHRyaWJ1dGVzUGF5bG9hZChwYXlsb2FkLmF0dHJpYnV0ZXMpOwpAQCAtNjIsMjEgKzYx
LDIxIEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0gZnVuY3Rpb24oZG9jLCBwYXlsb2FkKSB7CiAK
ICAgICB0aGlzLmJyZWFrcG9pbnRzID0ge307CiAKLSAgICBpZiAodGhpcy5ub2RlVHlwZSA9PT0g
Tm9kZS5FTEVNRU5UX05PREUpIHsKKyAgICBpZiAodGhpcy5fbm9kZVR5cGUgPT09IE5vZGUuRUxF
TUVOVF9OT0RFKSB7CiAgICAgICAgIC8vIEhUTUwgYW5kIEJPRFkgZnJvbSBpbnRlcm5hbCBpZnJh
bWVzIHNob3VsZCBub3Qgb3ZlcndyaXRlIHRvcC1sZXZlbCBvbmVzLgotICAgICAgICBpZiAoIXRo
aXMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgdGhpcy5ub2RlTmFtZSA9PT0gIkhU
TUwiKQorICAgICAgICBpZiAoIXRoaXMub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYg
dGhpcy5fbm9kZU5hbWUgPT09ICJIVE1MIikKICAgICAgICAgICAgIHRoaXMub3duZXJEb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQgPSB0aGlzOwotICAgICAgICBpZiAoIXRoaXMub3duZXJEb2N1bWVu
dC5ib2R5ICYmIHRoaXMubm9kZU5hbWUgPT09ICJCT0RZIikKKyAgICAgICAgaWYgKCF0aGlzLm93
bmVyRG9jdW1lbnQuYm9keSAmJiB0aGlzLl9ub2RlTmFtZSA9PT0gIkJPRFkiKQogICAgICAgICAg
ICAgdGhpcy5vd25lckRvY3VtZW50LmJvZHkgPSB0aGlzOwogICAgICAgICBpZiAocGF5bG9hZC5k
b2N1bWVudFVSTCkKICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRVUkwgPSBwYXlsb2FkLmRvY3Vt
ZW50VVJMOwotICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9U
WVBFX05PREUpIHsKKyAgICB9IGVsc2UgaWYgKHRoaXMuX25vZGVUeXBlID09PSBOb2RlLkRPQ1VN
RU5UX1RZUEVfTk9ERSkgewogICAgICAgICB0aGlzLnB1YmxpY0lkID0gcGF5bG9hZC5wdWJsaWNJ
ZDsKICAgICAgICAgdGhpcy5zeXN0ZW1JZCA9IHBheWxvYWQuc3lzdGVtSWQ7CiAgICAgICAgIHRo
aXMuaW50ZXJuYWxTdWJzZXQgPSBwYXlsb2FkLmludGVybmFsU3Vic2V0OwotICAgIH0gZWxzZSBp
ZiAodGhpcy5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKSB7CisgICAgfSBlbHNlIGlm
ICh0aGlzLl9ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKSB7CiAgICAgICAgIHRoaXMu
ZG9jdW1lbnRVUkwgPSBwYXlsb2FkLmRvY3VtZW50VVJMOwotICAgIH0gZWxzZSBpZiAodGhpcy5u
b2RlVHlwZSA9PT0gTm9kZS5BVFRSSUJVVEVfTk9ERSkgeworICAgIH0gZWxzZSBpZiAodGhpcy5f
bm9kZVR5cGUgPT09IE5vZGUuQVRUUklCVVRFX05PREUpIHsKICAgICAgICAgdGhpcy5uYW1lID0g
cGF5bG9hZC5uYW1lOwogICAgICAgICB0aGlzLnZhbHVlID0gcGF5bG9hZC52YWx1ZTsKICAgICB9
CkBAIC04NSw3ICs4NCw3IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0gZnVuY3Rpb24oZG9jLCBw
YXlsb2FkKSB7CiBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgaGFzQXR0
cmlidXRlczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuYXR0cmlidXRl
cy5sZW5ndGggPiAwOworICAgICAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5sZW5ndGggPiAw
OwogICAgIH0sCiAKICAgICBoYXNDaGlsZE5vZGVzOiBmdW5jdGlvbigpCkBAIC05MywxNCArOTIs
MzQgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
dGhpcy5fY2hpbGROb2RlQ291bnQgPiAwOwogICAgIH0sCiAKLSAgICBnZXQgbm9kZVZhbHVlKCkg
eworICAgIG5vZGVUeXBlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
bm9kZVR5cGU7CisgICAgfSwKKworICAgIG5vZGVOYW1lOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fbm9kZU5hbWU7CisgICAgfSwKKworICAgIHNldE5vZGVOYW1lOiBm
dW5jdGlvbihuYW1lLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIERPTUFnZW50LnNldE5vZGVO
YW1lKHRoaXMuaWQsIG5hbWUsIGNhbGxiYWNrKTsKKyAgICB9LAorCisgICAgbG9jYWxOYW1lOiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxOYW1lOworICAgIH0s
CisKKyAgICBub2RlVmFsdWU6IGZ1bmN0aW9uKCkKKyAgICB7CiAgICAgICAgIHJldHVybiB0aGlz
Ll9ub2RlVmFsdWU7CiAgICAgfSwKIAotICAgIHNldCBub2RlVmFsdWUodmFsdWUpIHsKLSAgICAg
ICAgaWYgKHRoaXMubm9kZVR5cGUgIT0gTm9kZS5URVhUX05PREUpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIHRoaXMub3duZXJEb2N1bWVudC5fZG9tQWdlbnQuc2V0VGV4dE5vZGVWYWx1
ZUFzeW5jKHRoaXMsIHZhbHVlLCBmdW5jdGlvbigpIHt9KTsKKyAgICBzZXROb2RlVmFsdWU6IGZ1
bmN0aW9uKHZhbHVlLCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIERPTUFnZW50LnNldE5vZGVW
YWx1ZSh0aGlzLmlkLCB2YWx1ZSwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICBnZXRBdHRyaWJ1
dGU6IGZ1bmN0aW9uKG5hbWUpCkBAIC0xMDksNDIgKzEyOCw5MSBAQCBXZWJJbnNwZWN0b3IuRE9N
Tm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBhdHRyID8gYXR0ci52YWx1ZSA6IHVu
ZGVmaW5lZDsKICAgICB9LAogCi0gICAgc2V0QXR0cmlidXRlOiBmdW5jdGlvbihuYW1lLCB2YWx1
ZSkKKyAgICBzZXRBdHRyaWJ1dGU6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBjYWxsYmFjaykKICAg
ICB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgdmFyIGNhbGxiYWNrID0gZnVu
Y3Rpb24oKQorICAgICAgICBmdW5jdGlvbiBteWNhbGxiYWNrKHN1Y2Nlc3MpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHZhciBhdHRyID0gc2VsZi5fYXR0cmlidXRlc01hcFtuYW1lXTsKKyAgICAg
ICAgICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIHZhciBhdHRyID0gdGhpcy5fYXR0cmlidXRlc01hcFtuYW1lXTsKICAgICAgICAgICAgIGlm
IChhdHRyKQogICAgICAgICAgICAgICAgIGF0dHIudmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICBhdHRyID0gc2VsZi5fYWRkQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKLSAgICAgICAgfTsKLSAgICAgICAgdGhpcy5vd25lckRvY3VtZW50Ll9kb21BZ2VudC5z
ZXRBdHRyaWJ1dGVBc3luYyh0aGlzLCBuYW1lLCB2YWx1ZSwgY2FsbGJhY2spOworICAgICAgICAg
ICAgICAgIGF0dHIgPSB0aGlzLl9hZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworCisgICAgICAg
ICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAg
fQorICAgICAgICBET01BZ2VudC5zZXRBdHRyaWJ1dGUodGhpcy5pZCwgbmFtZSwgdmFsdWUsIG15
Y2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIGF0dHJpYnV0ZXM6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzOwogICAgIH0sCiAKLSAg
ICByZW1vdmVBdHRyaWJ1dGU6IGZ1bmN0aW9uKG5hbWUpCisgICAgcmVtb3ZlQXR0cmlidXRlOiBm
dW5jdGlvbihuYW1lLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsK
LSAgICAgICAgdmFyIGNhbGxiYWNrID0gZnVuY3Rpb24oKQorICAgICAgICBmdW5jdGlvbiBteWNh
bGxiYWNrKHN1Y2Nlc3MpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRlbGV0ZSBzZWxmLl9hdHRy
aWJ1dGVzTWFwW25hbWVdOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7ICBpIDwgc2VsZi5h
dHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNlbGYuYXR0cmli
dXRlc1tpXS5uYW1lID09IG5hbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5hdHRyaWJ1
dGVzLnNwbGljZShpLCAxKTsKKyAgICAgICAgICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9hdHRyaWJ1dGVzTWFwW25h
bWVdOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7ICBpIDwgdGhpcy5fYXR0cmlidXRlcy5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9hdHRyaWJ1dGVzW2ldLm5h
bWUgPT09IG5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXR0cmlidXRlcy5zcGxp
Y2UoaSwgMSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgdGhpcy5vd25lckRvY3VtZW50Ll9k
b21BZ2VudC5yZW1vdmVBdHRyaWJ1dGVBc3luYyh0aGlzLCBuYW1lLCBjYWxsYmFjayk7CisgICAg
ICAgICAgICBpZiAoY2FsbGJhY2spCisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAg
ICAgfQorICAgICAgICBET01BZ2VudC5yZW1vdmVBdHRyaWJ1dGUodGhpcy5pZCwgbmFtZSwgbXlj
YWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICB9LAorCisgICAgY2hpbGROb2RlczogZnVuY3Rpb24o
Y2FsbGJhY2spCisgICAgeworICAgICAgICBpZiAodGhpcy5jaGlsZHJlbikgeworICAgICAgICAg
ICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuY2hpbGRyZW4p
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbXlj
YWxsYmFjaygpIHsKKyAgICAgICAgICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgICAgICAgICBj
YWxsYmFjayh0aGlzLmNoaWxkcmVuKTsKKyAgICAgICAgfQorICAgICAgICBET01BZ2VudC5jaGls
ZE5vZGVzKHRoaXMuaWQsIG15Y2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgfSwKKworICAgIG91
dGVySFRNTDogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgeworICAgICAgICBET01BZ2VudC5vdXRl
ckhUTUwodGhpcy5pZCwgY2FsbGJhY2spOworICAgIH0sCisKKyAgICBzZXRPdXRlckhUTUw6IGZ1
bmN0aW9uKGh0bWwsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgRE9NQWdlbnQuc2V0T3V0ZXJI
VE1MKHRoaXMuaWQsIGh0bWwsIGNhbGxiYWNrKTsKKyAgICB9LAorCisgICAgcmVtb3ZlTm9kZTog
ZnVuY3Rpb24oY2FsbGJhY2spCisgICAgeworICAgICAgICBET01BZ2VudC5yZW1vdmVOb2RlKHRo
aXMuaWQpOworICAgIH0sCisKKyAgICBjb3B5Tm9kZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgRE9NQWdlbnQuY29weU5vZGUodGhpcy5pZCk7CiAgICAgfSwKIAogICAgIHBhdGg6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHZhciBwYXRoID0gW107CiAgICAgICAgIHZhciBub2RlID0g
dGhpczsKLSAgICAgICAgd2hpbGUgKG5vZGUgJiYgImluZGV4IiBpbiBub2RlICYmIG5vZGUubm9k
ZU5hbWUubGVuZ3RoKSB7Ci0gICAgICAgICAgICBwYXRoLnB1c2goW25vZGUuaW5kZXgsIG5vZGUu
bm9kZU5hbWVdKTsKKyAgICAgICAgd2hpbGUgKG5vZGUgJiYgImluZGV4IiBpbiBub2RlICYmIG5v
ZGUuX25vZGVOYW1lLmxlbmd0aCkgeworICAgICAgICAgICAgcGF0aC5wdXNoKFtub2RlLmluZGV4
LCBub2RlLl9ub2RlTmFtZV0pOwogICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsK
ICAgICAgICAgfQogICAgICAgICBwYXRoLnJldmVyc2UoKTsKQEAgLTE1Myw3ICsyMjEsNyBAQCBX
ZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAKICAgICBfc2V0QXR0cmlidXRlc1Bh
eWxvYWQ6IGZ1bmN0aW9uKGF0dHJzKQogICAgIHsKLSAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0g
W107CisgICAgICAgIHRoaXMuX2F0dHJpYnV0ZXMgPSBbXTsKICAgICAgICAgdGhpcy5fYXR0cmli
dXRlc01hcCA9IHt9OwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJzLmxlbmd0aDsg
aSArPSAyKQogICAgICAgICAgICAgdGhpcy5fYWRkQXR0cmlidXRlKGF0dHJzW2ldLCBhdHRyc1tp
ICsgMV0pOwpAQCAtMjE5LDcgKzI4Nyw3IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICJfbm9kZSI6IHRoaXMKICAgICAgICAgfTsKICAgICAgICAgdGhp
cy5fYXR0cmlidXRlc01hcFtuYW1lXSA9IGF0dHI7Ci0gICAgICAgIHRoaXMuYXR0cmlidXRlcy5w
dXNoKGF0dHIpOworICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzLnB1c2goYXR0cik7CiAgICAgfQog
fQogCkBAIC0zMTIsNDggKzM4MCw2IEBAIFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHRoaXMucmVxdWVzdERvY3VtZW50KG15Y2FsbGJhY2suYmluZCh0aGlzKSk7
CiAgICAgfSwKIAotICAgIGdldENoaWxkTm9kZXNBc3luYzogZnVuY3Rpb24ocGFyZW50LCBjYWxs
YmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbjsKLSAg
ICAgICAgaWYgKGNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBjYWxsYmFjayhjaGlsZHJlbik7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgZnVuY3Rpb24gbXljYWxsYmFj
aygpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHBhcmVudC5jaGlsZHJlbik7Ci0gICAgICAgIH0K
LSAgICAgICAgRE9NQWdlbnQuZ2V0Q2hpbGROb2RlcyhwYXJlbnQuaWQsIG15Y2FsbGJhY2spOwot
ICAgIH0sCi0KLSAgICBzZXRBdHRyaWJ1dGVBc3luYzogZnVuY3Rpb24obm9kZSwgbmFtZSwgdmFs
dWUsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgdmFyIG15Y2FsbGJhY2sgPSB0aGlzLl9kaWRB
cHBseURvbUNoYW5nZS5iaW5kKHRoaXMsIG5vZGUsIGNhbGxiYWNrKTsKLSAgICAgICAgRE9NQWdl
bnQuc2V0QXR0cmlidXRlKG5vZGUuaWQsIG5hbWUsIHZhbHVlLCBteWNhbGxiYWNrKTsKLSAgICB9
LAotCi0gICAgcmVtb3ZlQXR0cmlidXRlQXN5bmM6IGZ1bmN0aW9uKG5vZGUsIG5hbWUsIGNhbGxi
YWNrKQotICAgIHsKLSAgICAgICAgdmFyIG15Y2FsbGJhY2sgPSB0aGlzLl9kaWRBcHBseURvbUNo
YW5nZS5iaW5kKHRoaXMsIG5vZGUsIGNhbGxiYWNrKTsKLSAgICAgICAgRE9NQWdlbnQucmVtb3Zl
QXR0cmlidXRlKG5vZGUuaWQsIG5hbWUsIG15Y2FsbGJhY2spOwotICAgIH0sCi0KLSAgICBzZXRU
ZXh0Tm9kZVZhbHVlQXN5bmM6IGZ1bmN0aW9uKG5vZGUsIHRleHQsIGNhbGxiYWNrKQotICAgIHsK
LSAgICAgICAgdmFyIG15Y2FsbGJhY2sgPSB0aGlzLl9kaWRBcHBseURvbUNoYW5nZS5iaW5kKHRo
aXMsIG5vZGUsIGNhbGxiYWNrKTsKLSAgICAgICAgRE9NQWdlbnQuc2V0VGV4dE5vZGVWYWx1ZShu
b2RlLmlkLCB0ZXh0LCBteWNhbGxiYWNrKTsKLSAgICB9LAotCi0gICAgX2RpZEFwcGx5RG9tQ2hh
bmdlOiBmdW5jdGlvbihub2RlLCBjYWxsYmFjaywgc3VjY2VzcykKLSAgICB7Ci0gICAgICAgIGlm
ICghc3VjY2VzcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FsbGJhY2soKTsKLSAg
ICAgICAgLy8gVE9ETyhwZmVsZG1hbik6IEZpeCB0aGlzIGhhY2suCi0gICAgICAgIHZhciBlbGVt
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5maW5kVHJlZUVsZW1l
bnQobm9kZSk7Ci0gICAgICAgIGlmIChlbGVtKQotICAgICAgICAgICAgZWxlbS51cGRhdGVUaXRs
ZSgpOwotICAgIH0sCi0KICAgICBfYXR0cmlidXRlc1VwZGF0ZWQ6IGZ1bmN0aW9uKG5vZGVJZCwg
YXR0cnNBcnJheSkKICAgICB7CiAgICAgICAgIHZhciBub2RlID0gdGhpcy5faWRUb0RPTU5vZGVb
bm9kZUlkXTsKQEAgLTM2Niw3ICszOTIsNiBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90
eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9pZFRvRE9NTm9kZVtub2Rl
SWRdOwogICAgICAgICBub2RlLl9ub2RlVmFsdWUgPSBuZXdWYWx1ZTsKLSAgICAgICAgbm9kZS50
ZXh0Q29udGVudCA9IG5ld1ZhbHVlOwogICAgICAgICB2YXIgZXZlbnQgPSB7IHRhcmdldCA6IG5v
ZGUgfTsKICAgICAgICAgdGhpcy5fZG9jdW1lbnQuX2ZpcmVEb21FdmVudCgiRE9NQ2hhcmFjdGVy
RGF0YU1vZGlmaWVkIiwgZXZlbnQpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggMjQ2YWJlODA5NzdiMzFi
ZTM5Yzk3YzhmYjFkZDRkMzNmZmNhZDliNi4uNjI0MjY3ZmFjNTcwMzUxZGVmYzVjMDE4OTc0OGVh
OTY2MGZlNjFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtNTc3LDcgKzU3Nyw3IEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmb3VuZFJvb3QgPSBmYWxzZTsKICAg
ICAgICAgZm9yICh2YXIgY3VycmVudCA9IHRoaXMuZm9jdXNlZERPTU5vZGU7IGN1cnJlbnQ7IGN1
cnJlbnQgPSBjdXJyZW50LnBhcmVudE5vZGUpIHsKLSAgICAgICAgICAgIGlmIChjdXJyZW50Lm5v
ZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX05PREUpCisgICAgICAgICAgICBpZiAoY3VycmVudC5u
b2RlVHlwZSgpID09PSBOb2RlLkRPQ1VNRU5UX05PREUpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgICAgIGlmIChjdXJyZW50ID09PSB0aGlzLnJvb3RET01Ob2RlKQpAQCAt
NTg5LDcgKzU4OSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIGNydW1iLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHNlbGVjdENy
dW1iRnVuY3Rpb24sIGZhbHNlKTsKIAogICAgICAgICAgICAgdmFyIGNydW1iVGl0bGU7Ci0gICAg
ICAgICAgICBzd2l0Y2ggKGN1cnJlbnQubm9kZVR5cGUpIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
Y3VycmVudC5ub2RlVHlwZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBOb2RlLkVMRU1FTlRf
Tk9ERToKICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWNvcmF0ZU5vZGVMYWJlbChjdXJyZW50
LCBjcnVtYik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjEwLDcgKzYxMCw3IEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAg
ICAgICBjcnVtYlRpdGxlID0gdGhpcy50cmVlT3V0bGluZS5ub2RlTmFtZVRvQ29ycmVjdENhc2Uo
Y3VycmVudC5ub2RlTmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGNydW1iVGl0bGUgPSB0aGlz
LnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2FzZShjdXJyZW50Lm5vZGVOYW1lKCkpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIWNydW1iLmNoaWxkTm9kZXMubGVuZ3Ro
KSB7CkBAIC02MzgsNyArNjM4LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgZGVjb3JhdGVOb2RlTGFiZWw6IGZ1bmN0aW9uKG5vZGUsIHBhcmVudEVs
ZW1lbnQpCiAgICAgewotICAgICAgICB2YXIgdGl0bGUgPSB0aGlzLnRyZWVPdXRsaW5lLm5vZGVO
YW1lVG9Db3JyZWN0Q2FzZShub2RlLm5vZGVOYW1lKTsKKyAgICAgICAgdmFyIHRpdGxlID0gdGhp
cy50cmVlT3V0bGluZS5ub2RlTmFtZVRvQ29ycmVjdENhc2Uobm9kZS5ub2RlTmFtZSgpKTsKIAog
ICAgICAgICB2YXIgbmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CiAgICAgICAgIG5hbWVFbGVtZW50LnRleHRDb250ZW50ID0gdGl0bGU7CkBAIC0xMDMzLDcgKzEw
MzMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIGV2ZW50LmNsaXBib2FyZERhdGEuY2xlYXJEYXRhKCk7CiAg
ICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgIERPTUFnZW50LmNvcHlOb2Rl
KHRoaXMuZm9jdXNlZERPTU5vZGUuaWQpOworICAgICAgICB0aGlzLmZvY3VzZWRET01Ob2RlLmNv
cHlOb2RlKCk7CiAgICAgfSwKIAogICAgIHJpZ2h0U2lkZWJhclJlc2l6ZXJEcmFnU3RhcnQ6IGZ1
bmN0aW9uKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IDdiNWZmMmZjZjJkZDBlZGEyNmY4
MGI0MGVjOTU1NjA2NDBjNTgxYmQuLjhmNzE3NWRhZDI4ZjJiY2M5MjdjODNkZDIwYmYwNmNhMDJm
NmQzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTE0NCw3ICsxNDQsNyBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAgICAgZmluZFRyZWVFbGVtZW50
OiBmdW5jdGlvbihub2RlKQogICAgIHsKICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gVHJlZU91
dGxpbmUucHJvdG90eXBlLmZpbmRUcmVlRWxlbWVudC5jYWxsKHRoaXMsIG5vZGUsIGlzQW5jZXN0
b3JOb2RlLCBwYXJlbnROb2RlKTsKLSAgICAgICAgaWYgKCF0cmVlRWxlbWVudCAmJiBub2RlLm5v
ZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSkgeworICAgICAgICBpZiAoIXRyZWVFbGVtZW50ICYm
IG5vZGUubm9kZVR5cGUoKSA9PT0gTm9kZS5URVhUX05PREUpIHsKICAgICAgICAgICAgIC8vIFRo
ZSB0ZXh0IG5vZGUgbWlnaHQgaGF2ZSBiZWVuIGlubGluZWQgaWYgaXQgd2FzIHNob3J0LCBzbyB0
cnkgdG8gZmluZCB0aGUgcGFyZW50IGVsZW1lbnQuCiAgICAgICAgICAgICB0cmVlRWxlbWVudCA9
IFRyZWVPdXRsaW5lLnByb3RvdHlwZS5maW5kVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBub2RlLnBh
cmVudE5vZGUsIGlzQW5jZXN0b3JOb2RlLCBwYXJlbnROb2RlKTsKICAgICAgICAgfQpAQCAtMzAy
LDcgKzMwMiw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50ID0gZnVuY3Rpb24o
bm9kZSwgZWxlbWVudENsb3NlVGFnKQogICAgIC8vIFRoZSB0aXRsZSB3aWxsIGJlIHVwZGF0ZWQg
aW4gb25hdHRhY2guCiAgICAgVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCAiIiwgbm9kZSwgaGFzQ2hp
bGRyZW5PdmVycmlkZSk7CiAKLSAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlVHlw
ZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAhZWxlbWVudENsb3NlVGFnKQorICAgIGlmICh0aGlz
LnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgPT0gTm9kZS5FTEVNRU5UX05PREUgJiYgIWVs
ZW1lbnRDbG9zZVRhZykKICAgICAgICAgdGhpcy5fY2FuQWRkQXR0cmlidXRlcyA9IHRydWU7CiAg
ICAgdGhpcy5fc2VhcmNoUXVlcnkgPSBudWxsOwogICAgIHRoaXMuX2V4cGFuZGVkQ2hpbGRyZW5M
aW1pdCA9IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LkluaXRpYWxDaGlsZHJlbkxp
bWl0OwpAQCAtNDAwLDcgKzQwMCw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50
LnByb3RvdHlwZSA9IHsKICAgICBfY3JlYXRlVG9vbHRpcEZvck5vZGU6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIHZhciBub2RlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdDsKLSAgICAgICAg
aWYgKCFub2RlLm5vZGVOYW1lIHx8IG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gImlt
ZyIpCisgICAgICAgIGlmICghbm9kZS5ub2RlTmFtZSgpIHx8IG5vZGUubm9kZU5hbWUoKS50b0xv
d2VyQ2FzZSgpICE9PSAiaW1nIikKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBmdW5j
dGlvbiBzZXRUb29sdGlwKHJlc3VsdCkKQEAgLTQ4OSw4ICs0ODksNyBAQCBXZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBpZiAodGhp
cy5fZWxlbWVudENsb3NlVGFnKQogICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFdlYklu
c3BlY3Rvci5kb21BZ2VudC5nZXRDaGlsZE5vZGVzQXN5bmModGhpcy5yZXByZXNlbnRlZE9iamVj
dCwgdGhpcy5fdXBkYXRlQ2hpbGRyZW4uYmluZCh0aGlzLCBmdWxsUmVmcmVzaCkpOworICAgICAg
ICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNoaWxkTm9kZXModGhpcy5fdXBkYXRlQ2hpbGRyZW4u
YmluZCh0aGlzLCBmdWxsUmVmcmVzaCkpOwogICAgIH0sCiAKICAgICBpbnNlcnRDaGlsZEVsZW1l
bnQ6IGZ1bmN0aW9uKGNoaWxkLCBpbmRleCwgY2xvc2luZ1RhZykKQEAgLTU4Nyw3ICs1ODYsNyBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuYWRqdXN0Q29sbGFwc2VkUmFuZ2UoZmFsc2UpOwogCiAgICAgICAgIHZhciBsYXN0Q2hp
bGQgPSB0aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoIC0gMV07Ci0gICAgICAgIGlm
ICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFICYm
ICghbGFzdENoaWxkIHx8ICFsYXN0Q2hpbGQuX2VsZW1lbnRDbG9zZVRhZykpCisgICAgICAgIGlm
ICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgPT0gTm9kZS5FTEVNRU5UX05PREUg
JiYgKCFsYXN0Q2hpbGQgfHwgIWxhc3RDaGlsZC5fZWxlbWVudENsb3NlVGFnKSkKICAgICAgICAg
ICAgIHRoaXMuaW5zZXJ0Q2hpbGRFbGVtZW50KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIHRoaXMu
Y2hpbGRyZW4ubGVuZ3RoLCB0cnVlKTsKIAogICAgICAgICAvLyBXZSB3YW50IHRvIHJlc3RvcmUg
dGhlIG9yaWdpbmFsIHNlbGVjdGlvbiBhbmQgdHJlZSBzY3JvbGwgcG9zaXRpb24gYWZ0ZXIgYSBm
dWxsIHJlZnJlc2gsIGlmIHBvc3NpYmxlLgpAQCAtNzQzLDcgKzc0Miw3IEBAIFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMudHJl
ZU91dGxpbmUuZm9jdXNlZERPTU5vZGUgIT0gdGhpcy5yZXByZXNlbnRlZE9iamVjdCkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2Rl
VHlwZSAhPSBOb2RlLkVMRU1FTlRfTk9ERSAmJiB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVU
eXBlICE9IE5vZGUuVEVYVF9OT0RFKQorICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVj
dC5ub2RlVHlwZSgpICE9IE5vZGUuRUxFTUVOVF9OT0RFICYmIHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3Qubm9kZVR5cGUoKSAhPSBOb2RlLlRFWFRfTk9ERSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgICAgICB2YXIgdGV4dE5vZGUgPSBldmVudFRhcmdldC5lbmNsb3NpbmdOb2RlT3JT
ZWxmV2l0aENsYXNzKCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGUiKTsKQEAgLTgyNCw3ICs4MjMsNyBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fYWRkTmV3QXR0cmlidXRlKCk7CiAgICAgICAgIH0KIAotICAgICAg
ICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUp
IHsKKyAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUoKSA9PT0gTm9k
ZS5URVhUX05PREUpIHsKICAgICAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGxpc3RJdGVtLmdldEVs
ZW1lbnRzQnlDbGFzc05hbWUoIndlYmtpdC1odG1sLXRleHQtbm9kZSIpWzBdOwogICAgICAgICAg
ICAgaWYgKHRleHROb2RlKQogICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGFydEVkaXRp
bmdUZXh0Tm9kZSh0ZXh0Tm9kZSk7CkBAIC0xMDMwLDcgKzEwMjksNyBAQCBXZWJJbnNwZWN0b3Iu
RWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgZm91bmQg
PSBmYWxzZTsKIAogICAgICAgICAgICAgLy8gU2VhcmNoIGZvciB0aGUgYXR0cmlidXRlJ3MgcG9z
aXRpb24sIGFuZCB0aGVuIGRlY2lkZSB3aGVyZSB0byBtb3ZlIHRvLgotICAgICAgICAgICAgdmFy
IGF0dHJpYnV0ZXMgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmF0dHJpYnV0ZXM7CisgICAgICAg
ICAgICB2YXIgYXR0cmlidXRlcyA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuYXR0cmlidXRlcygp
OwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgKytp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXNbaV0ubmFtZSA9PT0gYXR0cmlidXRl
TmFtZSkgewogICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7CkBAIC0xMDk1LDcgKzEw
OTQsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoIXBhcnNlRWxlbWVudC5oYXNBdHRyaWJ1dGVzKCkpIHsK
LSAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QucmVtb3ZlQXR0cmlidXRlKGF0dHJp
YnV0ZU5hbWUpOworICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5yZW1vdmVBdHRy
aWJ1dGUoYXR0cmlidXRlTmFtZSwgdGhpcy51cGRhdGVUaXRsZS5iaW5kKHRoaXMpKTsKICAgICAg
ICAgICAgIHRoaXMudHJlZU91dGxpbmUuZm9jdXNlZE5vZGVDaGFuZ2VkKHRydWUpOwogICAgICAg
ICAgICAgbW92ZVRvTmV4dEF0dHJpYnV0ZUlmTmVlZGVkLmNhbGwodGhpcyk7CiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0xMTA2LDEzICsxMTA1LDEzIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHZhciBhdHRyID0gcGFyc2VFbGVt
ZW50LmF0dHJpYnV0ZXNbaV07CiAgICAgICAgICAgICBmb3VuZE9yaWdpbmFsQXR0cmlidXRlID0g
Zm91bmRPcmlnaW5hbEF0dHJpYnV0ZSB8fCBhdHRyLm5hbWUgPT09IGF0dHJpYnV0ZU5hbWU7CiAg
ICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
c2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7CisgICAgICAgICAgICAgICAgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlLCB0
aGlzLnVwZGF0ZVRpdGxlLmJpbmQodGhpcykpOwogICAgICAgICAgICAgICAgIHJlZ2VuZXJhdGVT
dHlsZWRBdHRyaWJ1dGUuY2FsbCh0aGlzLCBhdHRyLm5hbWUsIGF0dHIudmFsdWUpOwogICAgICAg
ICAgICAgfSBjYXRjaChlKSB7fSAvLyBpZ25vcmUgaW52YWxpZCBhdHRyaWJ1dGUgKGlubmVySFRN
TCBkb2Vzbid0IHRocm93IGVycm9ycywgYnV0IHRoaXMgY2FuKQogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKCFmb3VuZE9yaWdpbmFsQXR0cmlidXRlKQotICAgICAgICAgICAgdGhpcy5yZXByZXNl
bnRlZE9iamVjdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCB0aGlz
LnVwZGF0ZVRpdGxlLmJpbmQodGhpcykpOwogCiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUuZm9j
dXNlZE5vZGVDaGFuZ2VkKHRydWUpOwogCkBAIC0xMTQxLDcgKzExNDAsNyBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICB2YXIgYXR0cmlidXRlcyA9IHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QuYXR0cmlidXRlczsKKyAgICAgICAgICAgIHZhciBhdHRyaWJ1dGVz
ID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hdHRyaWJ1dGVzKCk7CiAgICAgICAgICAgICBpZiAo
YXR0cmlidXRlcy5sZW5ndGggPiAwKQogICAgICAgICAgICAgICAgIHRoaXMuX3RyaWdnZXJFZGl0
QXR0cmlidXRlKGF0dHJpYnV0ZXNbMF0ubmFtZSk7CiAgICAgICAgICAgICBlbHNlCkBAIC0xMTc1
LDcgKzExNzQsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBtb3ZlVG9OZXh0QXR0cmlidXRlSWZOZWVkZWQuY2FsbChuZXdUcmVl
SXRlbSk7CiAgICAgICAgIH0KIAotICAgICAgICBET01BZ2VudC5jaGFuZ2VUYWdOYW1lKHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QuaWQsIG5ld1RleHQsIGNoYW5nZVRhZ05hbWVDYWxsYmFjayk7Cisg
ICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Quc2V0Tm9kZU5hbWUobmV3VGV4dCwgY2hhbmdl
VGFnTmFtZUNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgX3RleHROb2RlRWRpdGluZ0NvbW1pdHRl
ZDogZnVuY3Rpb24oZWxlbWVudCwgbmV3VGV4dCkKQEAgLTExODMsMTQgKzExODIsMTQgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBkZWxl
dGUgdGhpcy5fZWRpdGluZzsKIAogICAgICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICAgIGlmICh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkgewor
ICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlVHlwZSgpID09PSBOb2RlLkVM
RU1FTlRfTk9ERSkgewogICAgICAgICAgICAgLy8gV2Ugb25seSBzaG93IHRleHQgbm9kZXMgaW5s
aW5lIGluIGVsZW1lbnRzIGlmIHRoZSBlbGVtZW50IG9ubHkKICAgICAgICAgICAgIC8vIGhhcyBh
IHNpbmdsZSBjaGlsZCwgYW5kIHRoYXQgY2hpbGQgaXMgYSB0ZXh0IG5vZGUuCiAgICAgICAgICAg
ICB0ZXh0Tm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZmlyc3RDaGlsZDsKLSAgICAgICAg
fSBlbHNlIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09IE5vZGUuVEVYVF9O
T0RFKQorICAgICAgICB9IGVsc2UgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUo
KSA9PSBOb2RlLlRFWFRfTk9ERSkKICAgICAgICAgICAgIHRleHROb2RlID0gdGhpcy5yZXByZXNl
bnRlZE9iamVjdDsKIAotICAgICAgICB0ZXh0Tm9kZS5ub2RlVmFsdWUgPSBuZXdUZXh0OworICAg
ICAgICB0ZXh0Tm9kZS5zZXROb2RlVmFsdWUobmV3VGV4dCwgdGhpcy51cGRhdGVUaXRsZS5iaW5k
KHRoaXMpKTsKICAgICB9LAogCiAgICAgX2VkaXRpbmdDYW5jZWxsZWQ6IGZ1bmN0aW9uKGVsZW1l
bnQsIGNvbnRleHQpCkBAIC0xMjUwLDcgKzEyNDksNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChsaW5raWZ5ICYmIChuYW1lID09
PSAic3JjIiB8fCBuYW1lID09PSAiaHJlZiIpKSB7CiAgICAgICAgICAgICB2YXIgcmV3cml0dGVu
SHJlZiA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVVSTEZvclJlbGF0ZWROb2RlKG5vZGUsIHZhbHVl
KTsKICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvKFtcLzs6XClcXVx9XSkvZywg
IiQxXHUyMDBCIik7Ci0gICAgICAgICAgICBodG1sICs9IGxpbmtpZnkocmV3cml0dGVuSHJlZiwg
dmFsdWUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiLCBub2RlLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCkgPT09ICJhIik7CisgICAgICAgICAgICBodG1sICs9IGxpbmtpZnkocmV3cml0dGVu
SHJlZiwgdmFsdWUsICJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGUtdmFsdWUiLCBub2RlLm5vZGVOYW1l
KCkudG9Mb3dlckNhc2UoKSA9PT0gImEiKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IHZhbHVlID0gdmFsdWUuZXNjYXBlSFRNTCgpLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIk
MSYjODIwMzsiKTsKICAgICAgICAgICAgIGh0bWwgKz0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0
bWwtYXR0cmlidXRlLXZhbHVlXCI+IiArIHZhbHVlICsgIjwvc3Bhbj4iOwpAQCAtMTI2OSw4ICsx
MjY4LDkgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgcmVzdWx0ID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGFnIiArIChp
c0Nsb3NpbmdUYWcgJiYgaXNEaXN0aW5jdFRyZWVFbGVtZW50ID8gIiBjbG9zZSIgOiAiIikgICsg
IlwiPiZsdDsiOwogICAgICAgICByZXN1bHQgKz0gIjxzcGFuICIgKyAoaXNDbG9zaW5nVGFnID8g
IiIgOiAiY2xhc3M9XCJ3ZWJraXQtaHRtbC10YWctbmFtZVwiIikgKyAiPiIgKyAoaXNDbG9zaW5n
VGFnID8gIi8iIDogIiIpICsgdGFnTmFtZSArICI8L3NwYW4+IjsKICAgICAgICAgaWYgKCFpc0Ns
b3NpbmdUYWcgJiYgbm9kZS5oYXNBdHRyaWJ1dGVzKCkpIHsKLSAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbm9kZS5hdHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAg
ICAgdmFyIGF0dHIgPSBub2RlLmF0dHJpYnV0ZXNbaV07CisgICAgICAgICAgICB2YXIgYXR0cmli
dXRlcyA9IG5vZGUuYXR0cmlidXRlcygpOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBhdHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBh
dHRyaWJ1dGVzW2ldOwogICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiICIgKyB0aGlzLl9hdHRy
aWJ1dGVIVE1MKGF0dHIubmFtZSwgYXR0ci52YWx1ZSwgbm9kZSwgbGlua2lmeSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTEyODQsNyArMTI4NCw3IEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0OwogICAgICAgICB2YXIgaW5mbyA9IHt0aXRsZUhUTUw6ICIiLCBoYXND
aGlsZHJlbjogdGhpcy5oYXNDaGlsZHJlbn07CiAKLSAgICAgICAgc3dpdGNoIChub2RlLm5vZGVU
eXBlKSB7CisgICAgICAgIHN3aXRjaCAobm9kZS5ub2RlVHlwZSgpKSB7CiAgICAgICAgICAgICBj
YXNlIE5vZGUuRE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlSFRNTCA9
ICJEb2N1bWVudCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjk5LDcgKzEyOTksNyBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6Ci0g
ICAgICAgICAgICAgICAgdmFyIHRhZ05hbWUgPSB0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9D
b3JyZWN0Q2FzZShub2RlLm5vZGVOYW1lKS5lc2NhcGVIVE1MKCk7CisgICAgICAgICAgICAgICAg
dmFyIHRhZ05hbWUgPSB0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2FzZShub2Rl
Lm5vZGVOYW1lKCkpLmVzY2FwZUhUTUwoKTsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZWxl
bWVudENsb3NlVGFnKSB7CiAgICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGVIVE1MID0gdGhp
cy5fdGFnSFRNTCh0YWdOYW1lLCB0cnVlLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgaW5m
by5oYXNDaGlsZHJlbiA9IGZhbHNlOwpAQCAtMTMwOCw4ICsxMzA4LDggQEAgV2ViSW5zcGVjdG9y
LkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICAgICAgdmFy
IHRpdGxlSFRNTCA9IHRoaXMuX3RhZ0hUTUwodGFnTmFtZSwgZmFsc2UsIGZhbHNlLCBsaW5raWZ5
KTsKIAotICAgICAgICAgICAgICAgIHZhciB0ZXh0Q2hpbGQgPSBvbmx5VGV4dENoaWxkLmNhbGwo
bm9kZSk7Ci0gICAgICAgICAgICAgICAgdmFyIHNob3dJbmxpbmVUZXh0ID0gdGV4dENoaWxkICYm
IHRleHRDaGlsZC50ZXh0Q29udGVudC5sZW5ndGggPCBQcmVmZXJlbmNlcy5tYXhJbmxpbmVUZXh0
Q2hpbGRMZW5ndGg7CisgICAgICAgICAgICAgICAgdmFyIHRleHRDaGlsZCA9IHRoaXMuX3Npbmds
ZVRleHRDaGlsZChub2RlKTsKKyAgICAgICAgICAgICAgICB2YXIgc2hvd0lubGluZVRleHQgPSB0
ZXh0Q2hpbGQgJiYgdGV4dENoaWxkLm5vZGVWYWx1ZSgpLmxlbmd0aCA8IFByZWZlcmVuY2VzLm1h
eElubGluZVRleHRDaGlsZExlbmd0aDsKIAogICAgICAgICAgICAgICAgIGlmICghdGhpcy5leHBh
bmRlZCAmJiAoIXNob3dJbmxpbmVUZXh0ICYmICh0aGlzLnRyZWVPdXRsaW5lLmlzWE1MTWltZVR5
cGUgfHwgIVdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LkZvcmJpZGRlbkNsb3NpbmdU
YWdFbGVtZW50c1t0YWdOYW1lXSkpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhh
c0NoaWxkcmVuKQpAQCAtMTMyMSw3ICsxMzIxLDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIC8vIGp1c3Qgc2hvdyB0aGF0
IHRleHQgYW5kIHRoZSBjbG9zaW5nIHRhZyBpbmxpbmUgcmF0aGVyIHRoYW4KICAgICAgICAgICAg
ICAgICAvLyBjcmVhdGUgYSBzdWJ0cmVlIGZvciB0aGVtCiAgICAgICAgICAgICAgICAgaWYgKHNo
b3dJbmxpbmVUZXh0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHRpdGxlSFRNTCArPSAiPHNwYW4g
Y2xhc3M9XCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGVcIj4iICsgdGV4dENoaWxkLm5vZGVWYWx1ZS5l
c2NhcGVIVE1MKCkgKyAiPC9zcGFuPiYjODIwMzsiICsgdGhpcy5fdGFnSFRNTCh0YWdOYW1lLCB0
cnVlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIHRpdGxlSFRNTCArPSAiPHNwYW4gY2xh
c3M9XCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGVcIj4iICsgdGV4dENoaWxkLm5vZGVWYWx1ZSgpLmVz
Y2FwZUhUTUwoKSArICI8L3NwYW4+JiM4MjAzOyIgKyB0aGlzLl90YWdIVE1MKHRhZ05hbWUsIHRy
dWUsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgaW5mby5oYXNDaGlsZHJlbiA9IGZhbHNl
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlSFRNTCA9IHRp
dGxlSFRNTDsKQEAgLTEzMzEsMzMgKzEzMzEsMzMgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGlmIChpc05vZGVXaGl0ZXNw
YWNlLmNhbGwobm9kZSkpCiAgICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGVIVE1MID0gIih3
aGl0ZXNwYWNlKSI7CiAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChub2RlLnBhcmVudE5vZGUgJiYgbm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93ZXJD
YXNlKCkgPT09ICJzY3JpcHQiKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLnBhcmVu
dE5vZGUgJiYgbm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lKCkudG9Mb3dlckNhc2UoKSA9PT0gInNj
cmlwdCIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdOb2RlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgbmV3Tm9kZS50
ZXh0Q29udGVudCA9IG5vZGUudGV4dENvbnRlbnQ7CisgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdOb2RlLnRleHRDb250ZW50ID0gbm9kZS5ub2RlVmFsdWUoKTsKIAogICAgICAgICAgICAgICAg
ICAgICAgICAgdmFyIGphdmFzY3JpcHRTeW50YXhIaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0
b3IuRE9NU3ludGF4SGlnaGxpZ2h0ZXIoInRleHQvamF2YXNjcmlwdCIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgamF2YXNjcmlwdFN5bnRheEhpZ2hsaWdodGVyLnN5bnRheEhpZ2hsaWdodE5v
ZGUobmV3Tm9kZSk7CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGVIVE1MID0g
IjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlIHdlYmtpdC1odG1sLWpzLW5vZGVc
Ij4iICsgbmV3Tm9kZS5pbm5lckhUTUwucmVwbGFjZSgvXltcblxyXSovLCAiIikucmVwbGFjZSgv
XHMqJC8sICIiKSArICI8L3NwYW4+IjsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChu
b2RlLnBhcmVudE5vZGUgJiYgbm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkg
PT09ICJzdHlsZSIpIHsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLnBhcmVu
dE5vZGUgJiYgbm9kZS5wYXJlbnROb2RlLm5vZGVOYW1lKCkudG9Mb3dlckNhc2UoKSA9PT0gInN0
eWxlIikgewogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld05vZGUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBuZXdOb2RlLnRl
eHRDb250ZW50ID0gbm9kZS50ZXh0Q29udGVudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5l
d05vZGUudGV4dENvbnRlbnQgPSBub2RlLm5vZGVWYWx1ZSgpOwogCiAgICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgY3NzU3ludGF4SGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN5
bnRheEhpZ2hsaWdodGVyKCJ0ZXh0L2NzcyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgY3Nz
U3ludGF4SGlnaGxpZ2h0ZXIuc3ludGF4SGlnaGxpZ2h0Tm9kZShuZXdOb2RlKTsKIAogICAgICAg
ICAgICAgICAgICAgICAgICAgaW5mby50aXRsZUhUTUwgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQt
aHRtbC10ZXh0LW5vZGUgd2Via2l0LWh0bWwtY3NzLW5vZGVcIj4iICsgbmV3Tm9kZS5pbm5lckhU
TUwucmVwbGFjZSgvXltcblxyXSovLCAiIikucmVwbGFjZSgvXHMqJC8sICIiKSArICI8L3NwYW4+
IjsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBp
bmZvLnRpdGxlSFRNTCA9ICJcIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlXCI+
IiArIG5vZGUubm9kZVZhbHVlLmVzY2FwZUhUTUwoKSArICI8L3NwYW4+XCIiOworICAgICAgICAg
ICAgICAgICAgICAgICAgaW5mby50aXRsZUhUTUwgPSAiXCI8c3BhbiBjbGFzcz1cIndlYmtpdC1o
dG1sLXRleHQtbm9kZVwiPiIgKyBub2RlLm5vZGVWYWx1ZSgpLmVzY2FwZUhUTUwoKSArICI8L3Nw
YW4+XCIiOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKIAogICAg
ICAgICAgICAgY2FzZSBOb2RlLkNPTU1FTlRfTk9ERToKLSAgICAgICAgICAgICAgICBpbmZvLnRp
dGxlSFRNTCA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLWNvbW1lbnRcIj4mbHQ7IS0tIiAr
IG5vZGUubm9kZVZhbHVlLmVzY2FwZUhUTUwoKSArICItLSZndDs8L3NwYW4+IjsKKyAgICAgICAg
ICAgICAgICBpbmZvLnRpdGxlSFRNTCA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLWNvbW1l
bnRcIj4mbHQ7IS0tIiArIG5vZGUubm9kZVZhbHVlKCkuZXNjYXBlSFRNTCgpICsgIi0tJmd0Ozwv
c3Bhbj4iOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIE5vZGUu
RE9DVU1FTlRfVFlQRV9OT0RFOgotICAgICAgICAgICAgICAgIHZhciB0aXRsZUhUTUwgPSAiPHNw
YW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC1kb2N0eXBlXCI+Jmx0OyFET0NUWVBFICIgKyBub2RlLm5v
ZGVOYW1lOworICAgICAgICAgICAgICAgIHZhciB0aXRsZUhUTUwgPSAiPHNwYW4gY2xhc3M9XCJ3
ZWJraXQtaHRtbC1kb2N0eXBlXCI+Jmx0OyFET0NUWVBFICIgKyBub2RlLm5vZGVOYW1lKCk7CiAg
ICAgICAgICAgICAgICAgaWYgKG5vZGUucHVibGljSWQpIHsKICAgICAgICAgICAgICAgICAgICAg
dGl0bGVIVE1MICs9ICIgUFVCTElDIFwiIiArIG5vZGUucHVibGljSWQgKyAiXCIiOwogICAgICAg
ICAgICAgICAgICAgICBpZiAobm9kZS5zeXN0ZW1JZCkKQEAgLTEzNzEsMjAgKzEzNzEsMzMgQEAg
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIE5vZGUuQ0RBVEFfU0VDVElPTl9OT0RF
OgotICAgICAgICAgICAgICAgIGluZm8udGl0bGVIVE1MID0gIjxzcGFuIGNsYXNzPVwid2Via2l0
LWh0bWwtdGV4dC1ub2RlXCI+Jmx0OyFbQ0RBVEFbIiArIG5vZGUubm9kZVZhbHVlLmVzY2FwZUhU
TUwoKSArICJdXSZndDs8L3NwYW4+IjsKKyAgICAgICAgICAgICAgICBpbmZvLnRpdGxlSFRNTCA9
ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLXRleHQtbm9kZVwiPiZsdDshW0NEQVRBWyIgKyBu
b2RlLm5vZGVWYWx1ZSgpLmVzY2FwZUhUTUwoKSArICJdXSZndDs8L3NwYW4+IjsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgaW5m
by50aXRsZUhUTUwgPSB0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2FzZShub2Rl
Lm5vZGVOYW1lKS5jb2xsYXBzZVdoaXRlc3BhY2UoKS5lc2NhcGVIVE1MKCk7CisgICAgICAgICAg
ICAgICAgaW5mby50aXRsZUhUTUwgPSB0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0
Q2FzZShub2RlLm5vZGVOYW1lKCkpLmNvbGxhcHNlV2hpdGVzcGFjZSgpLmVzY2FwZUhUTUwoKTsK
ICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBpbmZvOwogICAgIH0sCiAKKyAgICBfc2luZ2xl
VGV4dENoaWxkOiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAgICAgICAgaWYgKCFub2RlKQorICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBub2RlLmZp
cnN0Q2hpbGQ7CisgICAgICAgIGlmICghZmlyc3RDaGlsZCB8fCBmaXJzdENoaWxkLm5vZGVUeXBl
KCkgIT09IE5vZGUuVEVYVF9OT0RFKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAg
ICAgdmFyIHNpYmxpbmcgPSBmaXJzdENoaWxkLm5leHRTaWJsaW5nOworICAgICAgICByZXR1cm4g
c2libGluZyA/IG51bGwgOiBmaXJzdENoaWxkOworICAgIH0sCisKICAgICBfc2hvd0lubGluZVRl
eHQ6IGZ1bmN0aW9uKG5vZGUpCiAgICAgewotICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0g
Tm9kZS5FTEVNRU5UX05PREUpIHsKLSAgICAgICAgICAgIHZhciB0ZXh0Q2hpbGQgPSBvbmx5VGV4
dENoaWxkLmNhbGwobm9kZSk7Ci0gICAgICAgICAgICBpZiAodGV4dENoaWxkICYmIHRleHRDaGls
ZC50ZXh0Q29udGVudC5sZW5ndGggPCBQcmVmZXJlbmNlcy5tYXhJbmxpbmVUZXh0Q2hpbGRMZW5n
dGgpCisgICAgICAgIGlmIChub2RlLm5vZGVUeXBlKCkgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7
CisgICAgICAgICAgICB2YXIgdGV4dENoaWxkID0gdGhpcy5fc2luZ2xlVGV4dENoaWxkKG5vZGUp
OworICAgICAgICAgICAgaWYgKHRleHRDaGlsZCAmJiB0ZXh0Q2hpbGQubm9kZVZhbHVlKCkubGVu
Z3RoIDwgUHJlZmVyZW5jZXMubWF4SW5saW5lVGV4dENoaWxkTGVuZ3RoKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE0
MDgsNyArMTQyMSw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuYWRqdXN0Q29sbGFwc2VkUmFuZ2UodHJ1
ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBET01BZ2VudC5yZW1vdmVOb2RlKHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QuaWQsIHJlbW92ZU5vZGVDYWxsYmFjayk7CisgICAgICAgIHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QucmVtb3ZlTm9kZShyZW1vdmVOb2RlQ2FsbGJhY2spOwogICAgIH0sCiAKICAg
ICBfZWRpdEFzSFRNTDogZnVuY3Rpb24oKQpAQCAtMTQzNSwxNSArMTQ0OCwxNSBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZnVuY3Rp
b24gY29tbWl0Q2hhbmdlKHZhbHVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBET01BZ2VudC5z
ZXRPdXRlckhUTUwobm9kZS5pZCwgdmFsdWUsIHNlbGVjdE5vZGUpOworICAgICAgICAgICAgbm9k
ZS5zZXRPdXRlckhUTUwodmFsdWUsIHNlbGVjdE5vZGUpOwogICAgICAgICB9CiAKLSAgICAgICAg
RE9NQWdlbnQuZ2V0T3V0ZXJIVE1MKG5vZGUuaWQsIHRoaXMuX3N0YXJ0RWRpdGluZ0FzSFRNTC5i
aW5kKHRoaXMsIGNvbW1pdENoYW5nZSkpOworICAgICAgICBub2RlLm91dGVySFRNTCh0aGlzLl9z
dGFydEVkaXRpbmdBc0hUTUwuYmluZCh0aGlzLCBjb21taXRDaGFuZ2UpKTsKICAgICB9LAogCiAg
ICAgX2NvcHlIVE1MOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBET01BZ2VudC5jb3B5Tm9k
ZSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlkKTsKKyAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9i
amVjdC5jb3B5Tm9kZSgpOwogICAgIH0sCiAKICAgICBfaGlnaGxpZ2h0U2VhcmNoUmVzdWx0czog
ZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzCmluZGV4IGJjOGJiMTI4NjY5
OThhZWJlMjAyZWZkY2M2OTQ0NjM4NmM3YWVhMjEuLjAzMjc1MTA5ZWJlMDNiNjlkYzE4NTViNjJi
NjRhODMwODJiMmYzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMKQEAgLTIwMiw3
ICsyMDIsNyBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBpZiAobm9k
ZS5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKSB7CisgICAgICAgIGlmIChub2RlLm5v
ZGVUeXBlKCkgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkgewogICAgICAgICAgICAgdGhpcy50aXRs
ZUVsZW1lbnQudGV4dENvbnRlbnQgPSAiZG9jdW1lbnQiOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L01ldHJpY3NTaWRlYmFyUGFuZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTWV0cmljc1NpZGViYXJQYW5lLmpzCmluZGV4IDE0MDM5ZWYzZmUwMWExYTc4MzljZTVmY2Nm
NjI1MDcyZGQ2NzgwOGYuLjEyODg5NzMxMzliMTg3OGI0ZDUzZDI0ZWVhY2ZiYmVjNThmYzU0OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWV0cmljc1Np
ZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTWV0
cmljc1NpZGViYXJQYW5lLmpzCkBAIC00MCw3ICs0MCw3IEBAIFdlYkluc3BlY3Rvci5NZXRyaWNz
U2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICBlbHNlCiAgICAgICAgICAgICBub2Rl
ID0gdGhpcy5ub2RlOwogCi0gICAgICAgIGlmICghbm9kZSB8fCBub2RlLm5vZGVUeXBlICE9PSBO
b2RlLkVMRU1FTlRfTk9ERSkgeworICAgICAgICBpZiAoIW5vZGUgfHwgbm9kZS5ub2RlVHlwZSgp
ICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkgewogICAgICAgICAgICAgdGhpcy5ib2R5RWxlbWVudC5y
ZW1vdmVDaGlsZHJlbigpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5l
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFu
ZS5qcwppbmRleCBjN2QxNTFhOThlMDhmZjc4YmJhOGZkMTgxMDlkMGFhYmQzZWZiOWM2Li4wY2Fj
ODJhOTBiZGU5MGNhOGVhZjdkY2FiMTZlODk3M2M2MGY4N2U2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKQEAg
LTEzMiwxMCArMTMyLDEwIEBAIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmICghZm9yY2VVcGRhdGUgJiYgKCFub2RlIHx8IG5vZGUgPT09IHRo
aXMubm9kZSkpCiAgICAgICAgICAgICByZWZyZXNoID0gdHJ1ZTsKIAotICAgICAgICBpZiAobm9k
ZSAmJiBub2RlLm5vZGVUeXBlID09PSBOb2RlLlRFWFRfTk9ERSAmJiBub2RlLnBhcmVudE5vZGUp
CisgICAgICAgIGlmIChub2RlICYmIG5vZGUubm9kZVR5cGUoKSA9PT0gTm9kZS5URVhUX05PREUg
JiYgbm9kZS5wYXJlbnROb2RlKQogICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsK
IAotICAgICAgICBpZiAobm9kZSAmJiBub2RlLm5vZGVUeXBlICE9PSBOb2RlLkVMRU1FTlRfTk9E
RSkKKyAgICAgICAgaWYgKG5vZGUgJiYgbm9kZS5ub2RlVHlwZSgpICE9PSBOb2RlLkVMRU1FTlRf
Tk9ERSkKICAgICAgICAgICAgIG5vZGUgPSBudWxsOwogCiAgICAgICAgIGlmIChub2RlKQpAQCAt
MjQ0LDcgKzI0NCw3IEBAIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBzdHlsZUF0dHJpYnV0ZXMgPSB7fTsKICAgICAgICAgZm9yICh2YXIg
bmFtZSBpbiBzdHlsZXMuc3R5bGVBdHRyaWJ1dGVzKSB7CiAgICAgICAgICAgICB2YXIgYXR0clN0
eWxlID0geyBzdHlsZTogc3R5bGVzLnN0eWxlQXR0cmlidXRlc1tuYW1lXSwgZWRpdGFibGU6IGZh
bHNlIH07Ci0gICAgICAgICAgICBhdHRyU3R5bGUuc2VsZWN0b3JUZXh0ID0gV2ViSW5zcGVjdG9y
LnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5ub2RlTmFtZVRvQ29ycmVjdENhc2Uobm9kZS5u
b2RlTmFtZSkgKyAiWyIgKyBuYW1lOworICAgICAgICAgICAgYXR0clN0eWxlLnNlbGVjdG9yVGV4
dCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxpbmUubm9kZU5hbWVUb0Nv
cnJlY3RDYXNlKG5vZGUubm9kZU5hbWUoKSkgKyAiWyIgKyBuYW1lOwogICAgICAgICAgICAgaWYg
KG5vZGUuZ2V0QXR0cmlidXRlKG5hbWUpKQogICAgICAgICAgICAgICAgIGF0dHJTdHlsZS5zZWxl
Y3RvclRleHQgKz0gIj0iICsgbm9kZS5nZXRBdHRyaWJ1dGUobmFtZSk7CiAgICAgICAgICAgICBh
dHRyU3R5bGUuc2VsZWN0b3JUZXh0ICs9ICJdIjsKQEAgLTI1Miw3ICsyNTIsNyBAQCBXZWJJbnNw
ZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAg
ICAgLy8gU2hvdyBlbGVtZW50J3MgU3R5bGUgQXR0cmlidXRlcwotICAgICAgICBpZiAoc3R5bGVz
LmlubGluZVN0eWxlICYmIG5vZGUubm9kZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFKSB7Cisg
ICAgICAgIGlmIChzdHlsZXMuaW5saW5lU3R5bGUgJiYgbm9kZS5ub2RlVHlwZSgpID09PSBOb2Rl
LkVMRU1FTlRfTk9ERSkgewogICAgICAgICAgICAgdmFyIGlubGluZVN0eWxlID0geyBzZWxlY3Rv
clRleHQ6ICJlbGVtZW50LnN0eWxlIiwgc3R5bGU6IHN0eWxlcy5pbmxpbmVTdHlsZSwgaXNBdHRy
aWJ1dGU6IHRydWUgfTsKICAgICAgICAgICAgIHN0eWxlUnVsZXMucHVzaChpbmxpbmVTdHlsZSk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGls
aXRpZXMuanMKaW5kZXggMzFhNWYwYzIyMDg0Mzg2ODk4OWNhNTBiNzM2YjQyMzg0NzgyYmFkMC4u
NjQ5M2M5ZTk0NzkwYzY1NTg4M2JkMmZmMzgzYTEzODk5NDBhNjY2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTM4MCw3ICszODAs
NiBAQCBOb2RlLnByb3RvdHlwZS5pc0FuY2VzdG9yID0gZnVuY3Rpb24obm9kZSkKIE5vZGUucHJv
dG90eXBlLmlzRGVzY2VuZGFudCA9IGlzRGVzY2VuZGFudE5vZGU7CiBOb2RlLnByb3RvdHlwZS50
cmF2ZXJzZU5leHROb2RlID0gdHJhdmVyc2VOZXh0Tm9kZTsKIE5vZGUucHJvdG90eXBlLnRyYXZl
cnNlUHJldmlvdXNOb2RlID0gdHJhdmVyc2VQcmV2aW91c05vZGU7Ci1Ob2RlLnByb3RvdHlwZS5v
bmx5VGV4dENoaWxkID0gb25seVRleHRDaGlsZDsKIAogU3RyaW5nLnByb3RvdHlwZS5oYXNTdWJz
dHJpbmcgPSBmdW5jdGlvbihzdHJpbmcsIGNhc2VJbnNlbnNpdGl2ZSkKIHsKQEAgLTYxNiwxOSAr
NjE1LDYgQEAgZnVuY3Rpb24gdHJhdmVyc2VQcmV2aW91c05vZGUoc3RheVdpdGhpbikKICAgICBy
ZXR1cm4gdGhpcy5wYXJlbnROb2RlOwogfQogCi1mdW5jdGlvbiBvbmx5VGV4dENoaWxkKCkKLXsK
LSAgICBpZiAoIXRoaXMpCi0gICAgICAgIHJldHVybiBudWxsOwotCi0gICAgdmFyIGZpcnN0Q2hp
bGQgPSB0aGlzLmZpcnN0Q2hpbGQ7Ci0gICAgaWYgKCFmaXJzdENoaWxkIHx8IGZpcnN0Q2hpbGQu
bm9kZVR5cGUgIT09IE5vZGUuVEVYVF9OT0RFKQotICAgICAgICByZXR1cm4gbnVsbDsKLQotICAg
IHZhciBzaWJsaW5nID0gZmlyc3RDaGlsZC5uZXh0U2libGluZzsKLSAgICByZXR1cm4gc2libGlu
ZyA/IG51bGwgOiBmaXJzdENoaWxkOwotfQotCiBmdW5jdGlvbiBhcHByb3ByaWF0ZVNlbGVjdG9y
Rm9yTm9kZShub2RlLCBqdXN0U2VsZWN0b3IpCiB7CiAgICAgaWYgKCFub2RlKQo=
</data>
<flag name="review"
          id="77414"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>