<?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>58538</bug_id>
          
          <creation_ts>2011-04-14 06:44:20 -0700</creation_ts>
          <short_desc>Web Inspector: fix de-obfuscation of scripts inlined in html.</short_desc>
          <delta_ts>2011-04-22 09:48:48 -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 Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>385724</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-14 06:44:20 -0700</bug_when>
    <thetext>Web Inspector: fix de-obfuscation of scripts inlined in html.

Currently we use script positions from scriptParsed notifications from backend. This doesn&apos;t work very well:
1. Some scripts may already be collected when frontend is opened.
2. Sometimes scripts come after resource is finished, so we are forced to rebuild content for each scriptParsed event.

More robust solution would be to use html tokenizer to find script boundaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385727</commentid>
    <comment_count>1</comment_count>
      <attachid>89576</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-14 06:45:39 -0700</bug_when>
    <thetext>Created attachment 89576
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390758</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-04-22 06:51:49 -0700</bug_when>
    <thetext>Committed r84625: &lt;http://trac.webkit.org/changeset/84625&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390837</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-22 09:48:48 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/84625 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89576</attachid>
            <date>2011-04-14 06:45:39 -0700</date>
            <delta_ts>2011-04-22 05:22:30 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>27680</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MWQ5MzExLi42ZGE0NjE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQt
MTQgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZml4
IGRlLW9iZnVzY2F0aW9uIG9mIHNjcmlwdHMgaW5saW5lZCBpbiBodG1sLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg1MzgKKworICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvb2JmdXNjYXRlZC5qczoKKyAgICAgICAgKHRyeS5v
bm1lc3NhZ2UpOgorICAgICAgICAodHJ5KToKKyAgICAgICAgKHRyeS5idWlsZE1hcHBpbmcpOgor
ICAgICAgICAodHJ5LnJlcXVpcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHQtZm9ybWF0dGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0LWZvcm1hdHRlci5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbC1kaXNhYmxlZC4KKwogMjAxMS0wNC0xMyAg
T2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdl
b2ZmIEdhcmVuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlcy9vYmZ1c2NhdGVkLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlcy9vYmZ1c2NhdGVkLmpzCmluZGV4IGRjNmJkOWYuLjRjOTdjODUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvb2JmdXNjYXRlZC5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL29iZnVzY2F0ZWQu
anMKQEAgLTEsNCArMSw0IEBACi1vbm1lc3NhZ2U9ZnVuY3Rpb24oZXZlbnQpe3ZhciBzb3VyY2U9
ZXZlbnQuZGF0YTt2YXIgZm9ybWF0dGVkU291cmNlPWJlYXV0aWZ5KHNvdXJjZSk7dmFyIG1hcHBp
bmc9YnVpbGRNYXBwaW5nKHNvdXJjZSxmb3JtYXR0ZWRTb3VyY2UpO3Bvc3RNZXNzYWdlKHtmb3Jt
YXR0ZWRTb3VyY2U6Zm9ybWF0dGVkU291cmNlLG1hcHBpbmc6bWFwcGluZ30pfTtmdW5jdGlvbiBi
ZWF1dGlmeShzb3VyY2Upe3ZhciBhc3Q9cGFyc2UucGFyc2Uoc291cmNlKTt2YXIgYmVhdXRpZnlP
cHRpb25zPQordHJ5e29ubWVzc2FnZT1mdW5jdGlvbihldmVudCl7dmFyIHNvdXJjZT1ldmVudC5k
YXRhO3ZhciBmb3JtYXR0ZWRTb3VyY2U9YmVhdXRpZnkoc291cmNlKTt2YXIgbWFwcGluZz1idWls
ZE1hcHBpbmcoc291cmNlLGZvcm1hdHRlZFNvdXJjZSk7cG9zdE1lc3NhZ2Uoe2Zvcm1hdHRlZFNv
dXJjZTpmb3JtYXR0ZWRTb3VyY2UsbWFwcGluZzptYXBwaW5nfSl9O2Z1bmN0aW9uIGJlYXV0aWZ5
KHNvdXJjZSl7dmFyIGFzdD1wYXJzZS5wYXJzZShzb3VyY2UpO3ZhciBiZWF1dGlmeU9wdGlvbnM9
CiB7aW5kZW50X2xldmVsOjQsaW5kZW50X3N0YXJ0OjAscXVvdGVfa2V5czpmYWxzZSxzcGFjZV9j
b2xvbjpmYWxzZX07cmV0dXJuIHByb2Nlc3MuZ2VuX2NvZGUoYXN0LGJlYXV0aWZ5T3B0aW9ucyl9
ZnVuY3Rpb24gYnVpbGRNYXBwaW5nKHNvdXJjZSxmb3JtYXR0ZWRTb3VyY2Upe3ZhciBtYXBwaW5n
PXtvcmlnaW5hbDpbXSxmb3JtYXR0ZWQ6W119O3ZhciBsYXN0UG9zaXRpb249MDt2YXIgcmVnZXhw
PS8oXnxbXlxcXSlcYigoPz1cRClbXCRcLlx3XSspXGIvZzt3aGlsZSh0cnVlKQoge3ZhciBtYXRj
aD1yZWdleHAuZXhlYyhmb3JtYXR0ZWRTb3VyY2UpO2lmKCFtYXRjaClicmVhazt2YXIgcG9zaXRp
b249c291cmNlLmluZGV4T2YobWF0Y2hbMl0sbGFzdFBvc2l0aW9uKTtpZihwb3NpdGlvbj09PS0x
KXRocm93Ik5vIG1hdGNoIGZvdW5kIGluIG9yaWdpbmFsIHNvdXJjZSBmb3IgIittYXRjaFsyXTtt
YXBwaW5nLm9yaWdpbmFsLnB1c2gocG9zaXRpb24pO21hcHBpbmcuZm9ybWF0dGVkLnB1c2gobWF0
Y2guaW5kZXgrbWF0Y2hbMV0ubGVuZ3RoKTsKLWxhc3RQb3NpdGlvbj1wb3NpdGlvbittYXRjaFsy
XS5sZW5ndGh9cmV0dXJuIG1hcHBpbmd9ZnVuY3Rpb24gcmVxdWlyZSgpe3JldHVybiBwYXJzZX12
YXIgZXhwb3J0cz17fTtpbXBvcnRTY3JpcHRzKCJVZ2xpZnlKUy9wYXJzZS1qcy5qcyIpO3ZhciBw
YXJzZT1leHBvcnRzO3ZhciBleHBvcnRzPXt9O2ltcG9ydFNjcmlwdHMoIlVnbGlmeUpTL3Byb2Nl
c3MuanMiKTt2YXIgcHJvY2Vzcz1leHBvcnRzOworbGFzdFBvc2l0aW9uPXBvc2l0aW9uK21hdGNo
WzJdLmxlbmd0aH1yZXR1cm4gbWFwcGluZ31mdW5jdGlvbiByZXF1aXJlKCl7cmV0dXJuIHBhcnNl
fXZhciBleHBvcnRzPXt9O2ltcG9ydFNjcmlwdHMoIlVnbGlmeUpTL3BhcnNlLWpzLmpzIik7dmFy
IHBhcnNlPWV4cG9ydHM7dmFyIGV4cG9ydHM9e307aW1wb3J0U2NyaXB0cygiVWdsaWZ5SlMvcHJv
Y2Vzcy5qcyIpO3ZhciBwcm9jZXNzPWV4cG9ydHM7fWNhdGNoKGUpe30KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWV4cGVj
dGVkLnR4dAppbmRleCA2NGY1OGMwLi5lZDkzNWVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXItZXhwZWN0ZWQudHh0
CkBAIC01LDUgKzUsMTIgQEAgRGVidWdnZXIgd2FzIGVuYWJsZWQuCiBSdW5uaW5nOiB0ZXN0U2Ny
aXB0Rm9ybWF0dGVyV29ya2VyCiAKIFJ1bm5pbmc6IHRlc3RTb3VyY2VNYXBwaW5nCisKK1J1bm5p
bmc6IHRlc3RGb3JtYXRJbmxpbmVkU2NyaXB0cworPGh0bWw+PGJvZHk+PHNjcmlwdD4KK2Z1bmN0
aW9uIGYoKSB7fQorPC9zY3JpcHQ+PHNjcmlwdD4KK2Z1bmN0aW9uIGcoKSB7fQorPC9zY3JpcHQ+
PC9ib2R5PjwvaHRtbD4KIERlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY1NjE1MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLmh0bWwKQEAgLTAs
MCArMSw5OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL29iZnVzY2F0ZWQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgor
Cit2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcigi
U2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzIik7CisKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVn
Z2VyVGVzdFN1aXRlKFsKKyAgICAgICAgZnVuY3Rpb24gdGVzdFNjcmlwdEZvcm1hdHRlcldvcmtl
cihuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gSW5zcGVj
dG9yVGVzdC5zYWZlV3JhcChmdW5jdGlvbihldmVudCkKKyAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygidmFyIHggPSAwOyIsIGV2ZW50LmRh
dGEuY29udGVudCk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgIHdvcmtlci5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVycm9yIGluIHdv
cmtlcjogIiArIGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAg
ICAgIH07CisKKyAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7IG1pbWVUeXBlOiAidGV4
dC9qYXZhc2NyaXB0IiwgY29udGVudDogInZhciB4PTAiIH0pOworICAgICAgICB9LAorCisgICAg
ICAgIGZ1bmN0aW9uIHRlc3RTb3VyY2VNYXBwaW5nKG5leHQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBJbnNwZWN0b3JUZXN0LnNhZmVXcmFwKGZ1bmN0aW9uKGV2
ZW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLnNjcmlwdHMudmlzaWJsZVZpZXcuX2NvbnRlbnQ7CisgICAgICAgICAgICAg
ICAgdmFyIGZvcm1hdHRlZFNvdXJjZSA9IGV2ZW50LmRhdGEuY29udGVudDsKKyAgICAgICAgICAg
ICAgICB2YXIgbWFwcGluZyA9IGV2ZW50LmRhdGEubWFwcGluZzsKKworICAgICAgICAgICAgICAg
IGZ1bmN0aW9uIHRlc3RNYXBwaW5nKHN0cmluZykKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IHNvdXJjZS5pbmRleE9mKHN0cmluZyk7CisgICAg
ICAgICAgICAgICAgICAgIHZhciBmb3JtYXR0ZWRQb3NpdGlvbiA9IG1hcHBpbmcuZm9ybWF0dGVk
W21hcHBpbmcub3JpZ2luYWwudXBwZXJCb3VuZChwb3NpdGlvbiAtIDEpXTsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoc3RyaW5nLCBmb3JtYXR0ZWRTb3Vy
Y2Uuc3Vic3RyKGZvcm1hdHRlZFBvc2l0aW9uLCBzdHJpbmcubGVuZ3RoKSk7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgdGVzdE1hcHBpbmcoIm9ubWVzc2FnZSIpOworICAg
ICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJpbmRlbnRfc3RhcnQiKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0TWFwcGluZygiZnVuY3Rpb24gcmVxdWlyZSIpOworICAgICAgICAgICAgICAgIHRlc3RN
YXBwaW5nKCJ2YXIgcmVnZXhwIik7CisgICAgICAgICAgICAgICAgdGVzdE1hcHBpbmcoImltcG9y
dFNjcmlwdHMiKTsKKworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0pOwor
CisgICAgICAgICAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFcnJvciBpbiB3
b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAg
ICAgICB9OworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoIm9i
ZnVzY2F0ZWQuanMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKKworICAgICAgICAgICAgZnVuY3Rp
b24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBtaW1lVHlwZTogInRleHQvamF2YXNjcmlw
dCIsIGNvbnRlbnQ6IHNvdXJjZUZyYW1lLl9jb250ZW50IH0pOworICAgICAgICAgICAgfQorICAg
ICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RGb3JtYXRJbmxpbmVkU2NyaXB0cyhuZXh0
KQorICAgICAgICB7CisgICAgICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gSW5zcGVjdG9yVGVz
dC5zYWZlV3JhcChmdW5jdGlvbihldmVudCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChldmVudC5kYXRhLmNvbnRlbnQpOworICAgICAgICAg
ICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB3b3JrZXIub25l
cnJvciA9IGZ1bmN0aW9uKGV2ZW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFcnJvciBpbiB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsK
KyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICB2
YXIgY29udGVudCA9ICI8aHRtbD48Ym9keT48c2NyaXB0PmZ1bmN0aW9uIGYoKXt9PCIgKyAiL3Nj
cmlwdD48c2NyaXB0PmZ1bmN0aW9uIGcoKXt9PCIgKyAiL3NjcmlwdD48L2JvZHk+PC9odG1sPiI7
CisgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoeyBtaW1lVHlwZTogInRleHQvaHRtbCIs
IGNvbnRlbnQ6IGNvbnRlbnQgfSk7CisgICAgICAgIH0KKyAgICBdKTsKK30KKworPC9zY3JpcHQ+
CisKKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhlIHNj
cmlwdCBmb3JtYXR0aW5nIGZ1bmN0aW9uYWxpdHkuCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0
dGVyLmh0bWwtZGlzYWJsZWQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
LWZvcm1hdHRlci5odG1sLWRpc2FibGVkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
ODEzZmMyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHQtZm9ybWF0dGVyLmh0bWwtZGlzYWJsZWQKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvb2JmdXNjYXRlZC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0KLXZhciB0ZXN0
ID0gZnVuY3Rpb24oKQotewotICAgIHZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCJTY3JpcHRGb3Jt
YXR0ZXJXb3JrZXIuanMiKTsKLQotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3Vp
dGUoWwotICAgICAgICBmdW5jdGlvbiB0ZXN0U2NyaXB0Rm9ybWF0dGVyV29ya2VyKG5leHQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSBJbnNwZWN0b3JUZXN0LnNh
ZmVXcmFwKGZ1bmN0aW9uKGV2ZW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ2YXIgeCA9IDA7IiwgZXZlbnQuZGF0YS5mb3JtYXR0
ZWRTb3VyY2UpOwotICAgICAgICAgICAgICAgIG5leHQoKTsKLSAgICAgICAgICAgIH0pOwotCi0g
ICAgICAgICAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFcnJvciBpbiB3b3Jr
ZXI6ICIgKyBldmVudC5kYXRhKTsKLSAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAg
ICB9OwotCi0gICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoInZhciB4PTAiKTsKLSAgICAg
ICAgfSwKLQotICAgICAgICBmdW5jdGlvbiB0ZXN0U291cmNlTWFwcGluZyhuZXh0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gSW5zcGVjdG9yVGVzdC5zYWZlV3Jh
cChmdW5jdGlvbihldmVudCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgc291
cmNlID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnZpc2libGVWaWV3Ll9jb250ZW50Owot
ICAgICAgICAgICAgICAgIHZhciBmb3JtYXR0ZWRTb3VyY2UgPSBldmVudC5kYXRhLmZvcm1hdHRl
ZFNvdXJjZTsKLSAgICAgICAgICAgICAgICB2YXIgbWFwcGluZyA9IGV2ZW50LmRhdGEubWFwcGlu
ZzsKLQotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RNYXBwaW5nKHN0cmluZykKLSAgICAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBwb3NpdGlvbiA9IHNvdXJjZS5p
bmRleE9mKHN0cmluZyk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBmb3JtYXR0ZWRQb3NpdGlv
biA9IG1hcHBpbmcuZm9ybWF0dGVkW21hcHBpbmcub3JpZ2luYWwudXBwZXJCb3VuZChwb3NpdGlv
biAtIDEpXTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
c3RyaW5nLCBmb3JtYXR0ZWRTb3VyY2Uuc3Vic3RyKGZvcm1hdHRlZFBvc2l0aW9uLCBzdHJpbmcu
bGVuZ3RoKSk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgdGVzdE1hcHBp
bmcoIm9ubWVzc2FnZSIpOwotICAgICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJpbmRlbnRfc3Rh
cnQiKTsKLSAgICAgICAgICAgICAgICB0ZXN0TWFwcGluZygiZnVuY3Rpb24gcmVxdWlyZSIpOwot
ICAgICAgICAgICAgICAgIHRlc3RNYXBwaW5nKCJ2YXIgcmVnZXhwIik7Ci0gICAgICAgICAgICAg
ICAgdGVzdE1hcHBpbmcoImltcG9ydFNjcmlwdHMiKTsKLQotICAgICAgICAgICAgICAgIG5leHQo
KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICB3b3JrZXIub25lcnJvciA9IGZ1bmN0
aW9uKGV2ZW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJFcnJvciBpbiB3b3JrZXI6ICIgKyBldmVudC5kYXRhKTsKLSAgICAgICAgICAg
ICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9OwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNob3dTY3JpcHRTb3VyY2UoIm9iZnVzY2F0ZWQuanMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsK
LQotICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoc291cmNl
RnJhbWUuX2NvbnRlbnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgXSk7Ci19Ci0K
LTwvc2NyaXB0PgotCi08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRl
c3RzIHRoZSBzY3JpcHQgZm9ybWF0dGluZyBmdW5jdGlvbmFsaXR5LgotPC9wPgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVjZjVlOS4uOTRhYTY2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM5IEBACisyMDExLTA0LTE0ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGZpeCBkZS1vYmZ1c2NhdGlvbiBvZiBzY3JpcHRzIGlubGluZWQg
aW4gaHRtbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU4NTM4CisKKyAgICAgICAgVXNlIGh0bWwgdG9rZW5pemVyIHRvIGZpbmQgc2NyaXB0IGJvdW5k
YXJpZXMgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHNjcmlwdFBhcnNlZCBldmVudHMuCisKKyAgICAg
ICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbAorCisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3Jp
cHRGb3JtYXR0ZXIucHJvdG90eXBlLmZvcm1hdENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNjcmlwdEZvcm1hdHRlci5wcm90b3R5cGUuX2RpZEZvcm1hdENvbnRlbnQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzOgorICAgICAg
ICAob25tZXNzYWdlKToKKyAgICAgICAgKGZvcm1hdFNjcmlwdCk6CisgICAgICAgIChidWlsZE1h
cHBpbmcpOgorICAgICAgICAoSFRNTFNjcmlwdEZvcm1hdHRlcik6CisgICAgICAgIChIVE1MU2Ny
aXB0Rm9ybWF0dGVyLnByb3RvdHlwZS5mb3JtYXQpOgorICAgICAgICAoSFRNTFNjcmlwdEZvcm1h
dHRlci5wcm90b3R5cGUuc2NyaXB0U3RhcnRlZCk6CisgICAgICAgIChIVE1MU2NyaXB0Rm9ybWF0
dGVyLnByb3RvdHlwZS5zY3JpcHRFbmRlZCk6CisgICAgICAgIChIVE1MU2NyaXB0Rm9ybWF0dGVy
LnByb3RvdHlwZS5zdHlsZVNoZWV0U3RhcnRlZCk6CisgICAgICAgIChIVE1MU2NyaXB0Rm9ybWF0
dGVyLnByb3RvdHlwZS5zdHlsZVNoZWV0RW5kZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRmlsZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3Vy
Y2VGaWxlLnByb3RvdHlwZS5fZGlkUmVxdWVzdENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcucHJvdG90eXBlLnNjcmlwdExvY2F0aW9uVG9Tb3Vy
Y2VMaW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6
ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5
cGUuc2NyaXB0U3RhcnRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2Vu
aXplci5wcm90b3R5cGUuc2NyaXB0RW5kZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLnN0eWxlU2hlZXRTdGFydGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZS5zdHlsZVNoZWV0RW5kZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlLm5l
eHRUb2tlbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5p
emVyLnJlMmpzOgorCiAyMDExLTA0LTEzICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyLmpzCmluZGV4IDgwODVj
NTUuLmE5ZWExNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0Rm9ybWF0dGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0Rm9ybWF0dGVyLmpzCkBAIC0zMSw4ICszMSw3IEBACiBXZWJJbnNwZWN0b3Iu
U2NyaXB0Rm9ybWF0dGVyID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMuX3dvcmtlciA9IG5ldyBX
b3JrZXIoIlNjcmlwdEZvcm1hdHRlcldvcmtlci5qcyIpOwotICAgIHRoaXMuX3dvcmtlci5vbm1l
c3NhZ2UgPSB0aGlzLl9oYW5kbGVNZXNzYWdlLmJpbmQodGhpcyk7Ci0gICAgdGhpcy5fd29ya2Vy
Lm9uZXJyb3IgPSB0aGlzLl9oYW5kbGVFcnJvci5iaW5kKHRoaXMpOworICAgIHRoaXMuX3dvcmtl
ci5vbm1lc3NhZ2UgPSB0aGlzLl9kaWRGb3JtYXRDb250ZW50LmJpbmQodGhpcyk7CiAgICAgdGhp
cy5fdGFza3MgPSBbXTsKIH0KIApAQCAtNzQsMTEwICs3MywxNiBAQCBXZWJJbnNwZWN0b3IuU2Ny
aXB0Rm9ybWF0dGVyLmZpbmRTY3JpcHRSYW5nZXMgPSBmdW5jdGlvbihsaW5lRW5kaW5ncywgc2Ny
aXB0cykKIH0KIAogV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wcm90b3R5cGUgPSB7Ci0g
ICAgZm9ybWF0Q29udGVudDogZnVuY3Rpb24odGV4dCwgc2NyaXB0cywgY2FsbGJhY2spCisgICAg
Zm9ybWF0Q29udGVudDogZnVuY3Rpb24obWltZVR5cGUsIGNvbnRlbnQsIGNhbGxiYWNrKQogICAg
IHsKLSAgICAgICAgdmFyIHNjcmlwdFJhbmdlcyA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0
ZXIuZmluZFNjcmlwdFJhbmdlcyh0ZXh0LmxpbmVFbmRpbmdzKCksIHNjcmlwdHMpOwotICAgICAg
ICB2YXIgY2h1bmtzID0gdGhpcy5fc3BsaXRDb250ZW50SW50b0NodW5rcyh0ZXh0LCBzY3JpcHRS
YW5nZXMpOwotCi0gICAgICAgIGZ1bmN0aW9uIGRpZEZvcm1hdENodW5rcygpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9idWlsZENvbnRlbnRGcm9tQ2h1bmtzKGNo
dW5rcyk7Ci0gICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQudGV4dCwgcmVzdWx0Lm1hcHBpbmcp
OwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2Zvcm1hdENodW5rcyhjaHVua3MsIDAsIGRpZEZv
cm1hdENodW5rcy5iaW5kKHRoaXMpKTsKLSAgICB9LAotCi0gICAgX3NwbGl0Q29udGVudEludG9D
aHVua3M6IGZ1bmN0aW9uKHRleHQsIHNjcmlwdFJhbmdlcykKLSAgICB7Ci0gICAgICAgIHZhciBj
aHVua3MgPSBbXTsKLSAgICAgICAgZnVuY3Rpb24gYWRkQ2h1bmsoc3RhcnQsIGVuZCwgaXNTY3Jp
cHQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBjaHVuayA9IHt9OwotICAgICAgICAgICAg
Y2h1bmsuc3RhcnQgPSBzdGFydDsKLSAgICAgICAgICAgIGNodW5rLmVuZCA9IGVuZDsKLSAgICAg
ICAgICAgIGNodW5rLmlzU2NyaXB0ID0gaXNTY3JpcHQ7Ci0gICAgICAgICAgICBjaHVuay50ZXh0
ID0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIGVuZCk7Ci0gICAgICAgICAgICBjaHVua3MucHVzaChj
aHVuayk7Ci0gICAgICAgIH0KLSAgICAgICAgdmFyIGN1cnJlbnRQb3NpdGlvbiA9IDA7Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0UmFuZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICB2YXIgc3RhcnQgPSBzY3JpcHRSYW5nZXNbaV0uc3RhcnQucG9zaXRpb247Ci0gICAg
ICAgICAgICB2YXIgZW5kID0gc2NyaXB0UmFuZ2VzW2ldLmVuZC5wb3NpdGlvbjsKLSAgICAgICAg
ICAgIGlmIChjdXJyZW50UG9zaXRpb24gPCBzdGFydCkKLSAgICAgICAgICAgICAgICBhZGRDaHVu
ayhjdXJyZW50UG9zaXRpb24sIHN0YXJ0LCBmYWxzZSk7Ci0gICAgICAgICAgICBhZGRDaHVuayhz
dGFydCwgZW5kLCB0cnVlKTsKLSAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiA9IGVuZDsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoY3VycmVudFBvc2l0aW9uIDwgdGV4dC5sZW5ndGgpCi0gICAg
ICAgICAgICBhZGRDaHVuayhjdXJyZW50UG9zaXRpb24sIHRleHQubGVuZ3RoLCBmYWxzZSk7Ci0g
ICAgICAgIHJldHVybiBjaHVua3M7Ci0gICAgfSwKLQotICAgIF9mb3JtYXRDaHVua3M6IGZ1bmN0
aW9uKGNodW5rcywgaW5kZXgsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgd2hpbGUodHJ1ZSkg
ewotICAgICAgICAgICAgaWYgKGluZGV4ID09PSBjaHVua3MubGVuZ3RoKSB7Ci0gICAgICAgICAg
ICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICB2YXIgY2h1bmsgPSBjaHVua3NbaW5kZXgrK107Ci0gICAgICAgICAgICBp
ZiAoY2h1bmsuaXNTY3JpcHQpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiBkaWRGb3JtYXQoZm9ybWF0dGVkU291cmNlLCBtYXBwaW5nKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBjaHVuay50ZXh0ID0gZm9ybWF0dGVkU291cmNlOwotICAgICAg
ICAgICAgY2h1bmsubWFwcGluZyA9IG1hcHBpbmc7Ci0gICAgICAgICAgICB0aGlzLl9mb3JtYXRD
aHVua3MoY2h1bmtzLCBpbmRleCwgY2FsbGJhY2spOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMu
X2Zvcm1hdFNjcmlwdChjaHVuay50ZXh0LCBkaWRGb3JtYXQuYmluZCh0aGlzKSk7Ci0gICAgfSwK
LQotICAgIF9idWlsZENvbnRlbnRGcm9tQ2h1bmtzOiBmdW5jdGlvbihjaHVua3MpCi0gICAgewot
ICAgICAgICB2YXIgdGV4dCA9ICIiOwotICAgICAgICB2YXIgbWFwcGluZyA9IHsgb3JpZ2luYWw6
IFtdLCBmb3JtYXR0ZWQ6IFtdIH07Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2h1bmtz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgY2h1bmsgPSBjaHVua3NbaV07Ci0gICAg
ICAgICAgICBtYXBwaW5nLm9yaWdpbmFsLnB1c2goY2h1bmsuc3RhcnQpOwotICAgICAgICAgICAg
bWFwcGluZy5mb3JtYXR0ZWQucHVzaCh0ZXh0Lmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoY2h1
bmsuaXNTY3JpcHQpIHsKLSAgICAgICAgICAgICAgICBpZiAodGV4dCkKLSAgICAgICAgICAgICAg
ICAgICAgdGV4dCArPSAiXG4iOwotICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwg
Y2h1bmsubWFwcGluZy5vcmlnaW5hbC5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAgICAg
ICBtYXBwaW5nLm9yaWdpbmFsLnB1c2goY2h1bmsubWFwcGluZy5vcmlnaW5hbFtqXSArIGNodW5r
LnN0YXJ0KTsKLSAgICAgICAgICAgICAgICAgICAgbWFwcGluZy5mb3JtYXR0ZWQucHVzaChjaHVu
ay5tYXBwaW5nLmZvcm1hdHRlZFtqXSArIHRleHQubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgdGV4dCArPSBjaHVuay50ZXh0OwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBpZiAodGV4dCkKLSAgICAgICAgICAgICAgICAgICAgdGV4dCAr
PSAiXG4iOwotICAgICAgICAgICAgICAgIHRleHQgKz0gY2h1bmsudGV4dDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWwucHVzaChjaHVuay5lbmQpOwotICAgICAg
ICAgICAgbWFwcGluZy5mb3JtYXR0ZWQucHVzaCh0ZXh0Lmxlbmd0aCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIHsgdGV4dDogdGV4dCwgbWFwcGluZzogbWFwcGluZyB9OwotICAgIH0sCi0K
LSAgICBfZm9ybWF0U2NyaXB0OiBmdW5jdGlvbihzb3VyY2UsIGNhbGxiYWNrKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fdGFza3MucHVzaCh7IHNvdXJjZTogc291cmNlLCBjYWxsYmFjazogY2FsbGJh
Y2sgfSk7Ci0gICAgICAgIHRoaXMuX3dvcmtlci5wb3N0TWVzc2FnZShzb3VyY2UpOwotICAgIH0s
Ci0KLSAgICBfaGFuZGxlTWVzc2FnZTogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2
YXIgdGFzayA9IHRoaXMuX3Rhc2tzLnNoaWZ0KCk7Ci0gICAgICAgIHRhc2suY2FsbGJhY2soZXZl
bnQuZGF0YS5mb3JtYXR0ZWRTb3VyY2UsIGV2ZW50LmRhdGEubWFwcGluZyk7CisgICAgICAgIHZh
ciBkYXRhID0geyBtaW1lVHlwZTogbWltZVR5cGUsIGNvbnRlbnQ6IGNvbnRlbnQgfTsKKyAgICAg
ICAgdGhpcy5fdGFza3MucHVzaCh7IGRhdGE6IGRhdGEsIGNhbGxiYWNrOiBjYWxsYmFjayB9KTsK
KyAgICAgICAgdGhpcy5fd29ya2VyLnBvc3RNZXNzYWdlKGRhdGEpOwogICAgIH0sCiAKLSAgICBf
aGFuZGxlRXJyb3I6IGZ1bmN0aW9uKGV2ZW50KQorICAgIF9kaWRGb3JtYXRDb250ZW50OiBmdW5j
dGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUud2FybigiRXJyb3IgaW4gc2NyaXB0
IGZvcm1hdHRlciB3b3JrZXI6IiwgZXZlbnQpOwotICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVs
dCgpCiAgICAgICAgIHZhciB0YXNrID0gdGhpcy5fdGFza3Muc2hpZnQoKTsKLSAgICAgICAgdGFz
ay5jYWxsYmFjayh0YXNrLnNvdXJjZSwgeyBvcmlnaW5hbDogW10sIGZvcm1hdHRlZDogW10gfSk7
CisgICAgICAgIHRhc2suY2FsbGJhY2soZXZlbnQuZGF0YS5jb250ZW50LCBldmVudC5kYXRhLm1h
cHBpbmcpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyV29ya2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMKaW5kZXggYWI2ODUyNC4uMWRh
MzA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRGb3JtYXR0ZXJXb3JrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMKQEAgLTI5LDEyICsyOSwyOSBAQAogICovCiAK
IG9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgdmFyIHNvdXJjZSA9IGV2ZW50LmRh
dGE7Ci0gICAgdmFyIGZvcm1hdHRlZFNvdXJjZSA9IGJlYXV0aWZ5KHNvdXJjZSk7Ci0gICAgdmFy
IG1hcHBpbmcgPSBidWlsZE1hcHBpbmcoc291cmNlLCBmb3JtYXR0ZWRTb3VyY2UpOwotICAgIHBv
c3RNZXNzYWdlKHsgZm9ybWF0dGVkU291cmNlOiBmb3JtYXR0ZWRTb3VyY2UsIG1hcHBpbmc6IG1h
cHBpbmcgfSk7CisgICAgdmFyIHJlc3VsdCA9IHt9OworICAgIGlmIChldmVudC5kYXRhLm1pbWVU
eXBlID09PSAidGV4dC9odG1sIikgeworICAgICAgICB2YXIgZm9ybWF0dGVyID0gbmV3IEhUTUxT
Y3JpcHRGb3JtYXR0ZXIoKTsKKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0dGVyLmZvcm1hdChldmVu
dC5kYXRhLmNvbnRlbnQpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlc3VsdC5tYXBwaW5nID0g
eyBvcmlnaW5hbDogW10sIGZvcm1hdHRlZDogW10gfTsKKyAgICAgICAgcmVzdWx0LmNvbnRlbnQg
PSBmb3JtYXRTY3JpcHQoZXZlbnQuZGF0YS5jb250ZW50LCByZXN1bHQubWFwcGluZywgMCwgMCk7
CisgICAgfQorICAgIHBvc3RNZXNzYWdlKHJlc3VsdCk7CiB9OwogCitmdW5jdGlvbiBmb3JtYXRT
Y3JpcHQoY29udGVudCwgbWFwcGluZywgb2Zmc2V0LCBmb3JtYXR0ZWRPZmZzZXQpCit7CisgICAg
dmFyIGZvcm1hdHRlZENvbnRlbnQ7CisgICAgdHJ5IHsKKyAgICAgICAgZm9ybWF0dGVkQ29udGVu
dCA9IGJlYXV0aWZ5KGNvbnRlbnQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZm9ybWF0
dGVkQ29udGVudCA9IGNvbnRlbnQ7CisgICAgfQorICAgIGJ1aWxkTWFwcGluZyhjb250ZW50LCBm
b3JtYXR0ZWRDb250ZW50LCBtYXBwaW5nLCBvZmZzZXQsIGZvcm1hdHRlZE9mZnNldCk7CisgICAg
cmV0dXJuIGZvcm1hdHRlZENvbnRlbnQ7Cit9CisKIGZ1bmN0aW9uIGJlYXV0aWZ5KHNvdXJjZSkK
IHsKICAgICB2YXIgYXN0ID0gcGFyc2UucGFyc2Uoc291cmNlKTsKQEAgLTQ3LDkgKzY0LDggQEAg
ZnVuY3Rpb24gYmVhdXRpZnkoc291cmNlKQogICAgIHJldHVybiBwcm9jZXNzLmdlbl9jb2RlKGFz
dCwgYmVhdXRpZnlPcHRpb25zKTsKIH0KIAotZnVuY3Rpb24gYnVpbGRNYXBwaW5nKHNvdXJjZSwg
Zm9ybWF0dGVkU291cmNlKQorZnVuY3Rpb24gYnVpbGRNYXBwaW5nKHNvdXJjZSwgZm9ybWF0dGVk
U291cmNlLCBtYXBwaW5nLCBvZmZzZXQsIGZvcm1hdHRlZE9mZnNldCkKIHsKLSAgICB2YXIgbWFw
cGluZyA9IHsgb3JpZ2luYWw6IFtdLCBmb3JtYXR0ZWQ6IFtdIH07CiAgICAgdmFyIGxhc3RQb3Np
dGlvbiA9IDA7CiAgICAgdmFyIHJlZ2V4cCA9IC8oXnxbXlxcXSlcYigoPz1cRClbXCRcLlx3XSsp
XGIvZzsKICAgICB3aGlsZSAodHJ1ZSkgewpAQCAtNTgsMTQgKzc0LDcwIEBAIGZ1bmN0aW9uIGJ1
aWxkTWFwcGluZyhzb3VyY2UsIGZvcm1hdHRlZFNvdXJjZSkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB2YXIgcG9zaXRpb24gPSBzb3VyY2UuaW5kZXhPZihtYXRjaFsyXSwgbGFzdFBvc2l0
aW9uKTsKICAgICAgICAgaWYgKHBvc2l0aW9uID09PSAtMSkKLSAgICAgICAgICAgIHRocm93ICJO
byBtYXRjaCBmb3VuZCBpbiBvcmlnaW5hbCBzb3VyY2UgZm9yICIgKyBtYXRjaFsyXTsKLSAgICAg
ICAgbWFwcGluZy5vcmlnaW5hbC5wdXNoKHBvc2l0aW9uKTsKLSAgICAgICAgbWFwcGluZy5mb3Jt
YXR0ZWQucHVzaChtYXRjaC5pbmRleCArIG1hdGNoWzFdLmxlbmd0aCk7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgbWFwcGluZy5vcmlnaW5hbC5wdXNoKG9mZnNldCArIHBvc2l0aW9u
KTsKKyAgICAgICAgbWFwcGluZy5mb3JtYXR0ZWQucHVzaChmb3JtYXR0ZWRPZmZzZXQgKyBtYXRj
aC5pbmRleCArIG1hdGNoWzFdLmxlbmd0aCk7CiAgICAgICAgIGxhc3RQb3NpdGlvbiA9IHBvc2l0
aW9uICsgbWF0Y2hbMl0ubGVuZ3RoOwogICAgIH0KLSAgICByZXR1cm4gbWFwcGluZzsKIH0KIAor
V2ViSW5zcGVjdG9yID0ge307CitpbXBvcnRTY3JpcHRzKCJTb3VyY2VUb2tlbml6ZXIuanMiKTsK
K2ltcG9ydFNjcmlwdHMoIlNvdXJjZUhUTUxUb2tlbml6ZXIuanMiKTsKKworSFRNTFNjcmlwdEZv
cm1hdHRlciA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRva2Vu
aXplci5jYWxsKHRoaXMpOworfQorCitIVE1MU2NyaXB0Rm9ybWF0dGVyLnByb3RvdHlwZSA9IHsK
KyAgICBmb3JtYXQ6IGZ1bmN0aW9uKGNvbnRlbnQpCisgICAgeworICAgICAgICB0aGlzLmxpbmUg
PSBjb250ZW50OworICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDsKKyAgICAgICAgdGhp
cy5fZm9ybWF0dGVkQ29udGVudCA9ICIiOworICAgICAgICB0aGlzLl9tYXBwaW5nID0geyBvcmln
aW5hbDogW10sIGZvcm1hdHRlZDogW10gfTsKKyAgICAgICAgdGhpcy5fcG9zaXRpb24gPSAwOwor
CisgICAgICAgIHZhciBjdXJzb3IgPSAwOworICAgICAgICB3aGlsZSAoY3Vyc29yIDwgdGhpcy5f
Y29udGVudC5sZW5ndGgpCisgICAgICAgICAgICBjdXJzb3IgPSB0aGlzLm5leHRUb2tlbihjdXJz
b3IpOworCisgICAgICAgIHRoaXMuX2Zvcm1hdHRlZENvbnRlbnQgKz0gdGhpcy5fY29udGVudC5z
dWJzdHJpbmcodGhpcy5fcG9zaXRpb24pOworICAgICAgICByZXR1cm4geyBjb250ZW50OiB0aGlz
Ll9mb3JtYXR0ZWRDb250ZW50LCBtYXBwaW5nOiB0aGlzLl9tYXBwaW5nIH07CisgICAgfSwKKwor
ICAgIHNjcmlwdFN0YXJ0ZWQ6IGZ1bmN0aW9uKGN1cnNvcikKKyAgICB7CisgICAgICAgIHRoaXMu
X2Zvcm1hdHRlZENvbnRlbnQgKz0gdGhpcy5fY29udGVudC5zdWJzdHJpbmcodGhpcy5fcG9zaXRp
b24sIGN1cnNvcik7CisgICAgICAgIHRoaXMuX2Zvcm1hdHRlZENvbnRlbnQgKz0gIlxuIjsKKyAg
ICAgICAgdGhpcy5fcG9zaXRpb24gPSBjdXJzb3I7CisgICAgfSwKKworICAgIHNjcmlwdEVuZGVk
OiBmdW5jdGlvbihjdXJzb3IpCisgICAgeworICAgICAgICBpZiAoY3Vyc29yID09PSB0aGlzLl9w
b3NpdGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgc2NyaXB0Q29udGVu
dCA9IHRoaXMuX2NvbnRlbnQuc3Vic3RyaW5nKHRoaXMuX3Bvc2l0aW9uLCBjdXJzb3IpOworICAg
ICAgICB2YXIgZm9ybWF0dGVkU2NyaXB0Q29udGVudCA9IGZvcm1hdFNjcmlwdChzY3JpcHRDb250
ZW50LCB0aGlzLl9tYXBwaW5nLCB0aGlzLl9wb3NpdGlvbiwgdGhpcy5fZm9ybWF0dGVkQ29udGVu
dC5sZW5ndGgpOworCisgICAgICAgIHRoaXMuX2Zvcm1hdHRlZENvbnRlbnQgKz0gZm9ybWF0dGVk
U2NyaXB0Q29udGVudDsKKyAgICAgICAgdGhpcy5fZm9ybWF0dGVkQ29udGVudCArPSAiXG4iOwor
ICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IGN1cnNvcjsKKyAgICB9LAorCisgICAgc3R5bGVTaGVl
dFN0YXJ0ZWQ6IGZ1bmN0aW9uKGN1cnNvcikKKyAgICB7CisgICAgfSwKKworICAgIHN0eWxlU2hl
ZXRFbmRlZDogZnVuY3Rpb24oY3Vyc29yKQorICAgIHsKKyAgICB9LAorfQorCitIVE1MU2NyaXB0
Rm9ybWF0dGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU291cmNlSFRNTFRv
a2VuaXplci5wcm90b3R5cGU7CisKIGZ1bmN0aW9uIHJlcXVpcmUoKQogewogICAgIHJldHVybiBw
YXJzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlRmlsZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmls
ZS5qcwppbmRleCBjNThhMGM3Li5hMjhkNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCkBAIC0yNTcsNyArMjU3LDcgQEAgV2ViSW5z
cGVjdG9yLkZvcm1hdHRlZFNvdXJjZUZpbGUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhp
cy5fbWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlTWFwcGluZyh0aGlz
Ll9zY3JpcHRzLCB0ZXh0LCBmb3JtYXR0ZWRUZXh0LCBtYXBwaW5nKTsKICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5Tb3VyY2VGaWxlLnByb3RvdHlwZS5fZGlkUmVxdWVzdENvbnRlbnQuY2FsbCh0
aGlzLCBtaW1lVHlwZSwgZm9ybWF0dGVkVGV4dCk7CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5f
Zm9ybWF0dGVyLmZvcm1hdENvbnRlbnQodGV4dCwgdGhpcy5fc2NyaXB0cywgZGlkRm9ybWF0Q29u
dGVudC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fZm9ybWF0dGVyLmZvcm1hdENvbnRlbnQo
bWltZVR5cGUsIHRleHQsIGRpZEZvcm1hdENvbnRlbnQuYmluZCh0aGlzKSk7CiAgICAgfQogfQog
CkBAIC0zMDUsNyArMzA1LDcgQEAgV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcu
cHJvdG90eXBlID0gewogICAgIHNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMaW5lOiBmdW5jdGlvbihs
b2NhdGlvbikKICAgICB7CiAgICAgICAgIHZhciBvcmlnaW5hbFBvc2l0aW9uID0gV2ViSW5zcGVj
dG9yLlNjcmlwdEZvcm1hdHRlci5sb2NhdGlvblRvUG9zaXRpb24odGhpcy5fb3JpZ2luYWxMaW5l
RW5kaW5ncywgbG9jYXRpb24pOwotICAgICAgICB2YXIgaW5kZXggPSB0aGlzLl9tYXBwaW5nLm9y
aWdpbmFsLnVwcGVyQm91bmQob3JpZ2luYWxQb3NpdGlvbiAtIDEpOworICAgICAgICB2YXIgaW5k
ZXggPSB0aGlzLl9tYXBwaW5nLm9yaWdpbmFsLnVwcGVyQm91bmQob3JpZ2luYWxQb3NpdGlvbikg
LSAxOwogICAgICAgICB2YXIgZm9ybWF0dGVkUG9zaXRpb24gPSB0aGlzLl9tYXBwaW5nLmZvcm1h
dHRlZFtpbmRleF07CiAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVy
LnBvc2l0aW9uVG9Mb2NhdGlvbih0aGlzLl9mb3JtYXR0ZWRMaW5lRW5kaW5ncywgZm9ybWF0dGVk
UG9zaXRpb24pLmxpbmVOdW1iZXI7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5qcwppbmRleCA0OGM1
YmQ0Li5lODE1ZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLmpzCkBAIC0xLDQgKzEsNCBAQAotLyogR2Vu
ZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIEZyaSBKYW4gMjggMTg6MzI6MjcgMjAxMSAqLworLyog
R2VuZXJhdGVkIGJ5IHJlMmMgMC4xMy41IG9uIFRodSBBcHIgMTQgMTU6NTM6MTkgMjAxMSAqLwog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKQEAgLTEzOSw2ICsxMzksMzAgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUhUTUxUb2tlbml6
ZXIucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gImh0bWwtYXR0cmlidXRlLXZhbHVlIjsK
ICAgICB9LAogCisgICAgc2NyaXB0U3RhcnRlZDogZnVuY3Rpb24oY3Vyc29yKQorICAgIHsKKyAg
ICAgICAgaWYgKCF0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIpIHsKKyAgICAgICAg
ICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplciA9IFdlYkluc3BlY3Rvci5Tb3Vy
Y2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIoInRleHQvamF2
YXNjcmlwdCIpOworICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlw
dFRva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5p
bml0aWFsQ29uZGl0aW9uOworICAgICAgICB9CisgICAgfSwKKworICAgIHNjcmlwdEVuZGVkOiBm
dW5jdGlvbihjdXJzb3IpCisgICAgeworICAgIH0sCisKKyAgICBzdHlsZVNoZWV0U3RhcnRlZDog
ZnVuY3Rpb24oY3Vyc29yKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9pbnRlcm5hbENTU1Rv
a2VuaXplcikgeworICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIgPSBXZWJJ
bnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5p
emVyKCJ0ZXh0L2NzcyIpOworICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsQ1NT
VG9rZW5pemVyQ29uZGl0aW9uID0gdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIuaW5pdGlhbENv
bmRpdGlvbjsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBzdHlsZVNoZWV0RW5kZWQ6IGZ1bmN0
aW9uKGN1cnNvcikKKyAgICB7CisgICAgfSwKKwogICAgIG5leHRUb2tlbjogZnVuY3Rpb24oY3Vy
c29yKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXpl
cikgewpAQCAtNTQ0LDYgKzU2OCw3IEBAIGNhc2UgNzk6CiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgIHRoaXMudG9rZW5UeXBlID0gImh0bWwtdGFnIjsKICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uID0gdGhpcy5fcGFyc2VDb25kaXRp
b25zLklOSVRJQUw7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0RW5kZWQoY3Vyc29y
IC0gOCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAg
ICAgfQogY2FzZSA4MToKQEAgLTY4OSwxOSArNzE0LDEzIEBAIGNhc2UgMTA2OgogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7CiAg
ICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9jb25kaXRpb24ucGFyc2VDb25kaXRpb24gJiB0
aGlzLl9wYXJzZUNvbmRpdGlvbnMuU0NSSVBUKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIXRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplcikgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplciA9IFdlYkluc3Bl
Y3Rvci5Tb3VyY2VUb2tlbml6ZXIuUmVnaXN0cnkuZ2V0SW5zdGFuY2UoKS5nZXRUb2tlbml6ZXIo
InRleHQvamF2YXNjcmlwdCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nv
bmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRl
cm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NyaXB0U3RhcnRlZChj
dXJzb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IHRva2VuaXplIHNjcmlw
dCB0YWcgY29udGVudHMuCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwog
ICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Nv
bmRpdGlvbi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TVFlMRSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9pbnRlcm5hbENTU1Rva2VuaXplcikg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVy
ID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0YW5jZSgpLmdl
dFRva2VuaXplcigidGV4dC9jc3MiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9jb25kaXRpb24uaW50ZXJuYWxDU1NUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRlcm5h
bENTU1Rva2VuaXplci5pbml0aWFsQ29uZGl0aW9uOwotICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZVNoZWV0U3RhcnRlZChjdXJzb3Ip
OwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IHRva2VuaXplIHN0eWxlIHRhZyBj
b250ZW50cy4KICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAg
ICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlSFRNTFRva2VuaXplci5yZTJqcwppbmRleCA3NjllOTg0Li4zNzFj
MDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZUhUTUxUb2tlbml6ZXIucmUyanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VIVE1MVG9rZW5pemVyLnJlMmpzCkBAIC0xMzgsNiArMTM4LDMwIEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VIVE1MVG9rZW5pemVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJu
ICJodG1sLWF0dHJpYnV0ZS12YWx1ZSI7CiAgICAgfSwKIAorICAgIHNjcmlwdFN0YXJ0ZWQ6IGZ1
bmN0aW9uKGN1cnNvcikKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxKYXZhU2Ny
aXB0VG9rZW5pemVyKSB7CisgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbEphdmFTY3JpcHRUb2tl
bml6ZXIgPSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lzdHJ5LmdldEluc3RhbmNl
KCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2phdmFzY3JpcHQiKTsKKyAgICAgICAgICAgIHRoaXMuX2Nv
bmRpdGlvbi5pbnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXJDb25kaXRpb24gPSB0aGlzLl9pbnRl
cm5hbEphdmFTY3JpcHRUb2tlbml6ZXIuaW5pdGlhbENvbmRpdGlvbjsKKyAgICAgICAgfQorICAg
IH0sCisKKyAgICBzY3JpcHRFbmRlZDogZnVuY3Rpb24oY3Vyc29yKQorICAgIHsKKyAgICB9LAor
CisgICAgc3R5bGVTaGVldFN0YXJ0ZWQ6IGZ1bmN0aW9uKGN1cnNvcikKKyAgICB7CisgICAgICAg
IGlmICghdGhpcy5faW50ZXJuYWxDU1NUb2tlbml6ZXIpIHsKKyAgICAgICAgICAgIHRoaXMuX2lu
dGVybmFsQ1NTVG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3Ry
eS5nZXRJbnN0YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9jc3MiKTsKKyAgICAgICAgICAgIHRo
aXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRpdGlvbiA9IHRoaXMuX2ludGVy
bmFsQ1NTVG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247CisgICAgICAgIH0KKyAgICB9LAorCisg
ICAgc3R5bGVTaGVldEVuZGVkOiBmdW5jdGlvbihjdXJzb3IpCisgICAgeworICAgIH0sCisKICAg
ICBuZXh0VG9rZW46IGZ1bmN0aW9uKGN1cnNvcikKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9p
bnRlcm5hbEphdmFTY3JpcHRUb2tlbml6ZXIpIHsKQEAgLTIzOCw2ICsyNjIsNyBAQCBXZWJJbnNw
ZWN0b3IuU291cmNlSFRNTFRva2VuaXplci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuVHlwZSA9ICJodG1sLXRhZyI7CiAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5wYXJzZUNvbmRpdGlvbiA9IHRoaXMuX3Bh
cnNlQ29uZGl0aW9ucy5JTklUSUFMOworICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcmlwdEVu
ZGVkKGN1cnNvciAtIDgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3Vyc29yOwogICAg
ICAgICAgICAgICAgIH0KIApAQCAtMjc1LDI0ICszMDAsMTggQEAgV2ViSW5zcGVjdG9yLlNvdXJj
ZUhUTUxUb2tlbml6ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICB0aGlzLnRv
a2VuVHlwZSA9ICJodG1sLXRhZyI7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJzb3I7
CiAgICAgICAgICAgICAgICAgfQotICAKKwogICAgICAgICAgICAgICAgIDxUQUc+IEdUID0+IElO
SVRJQUwKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5U
eXBlID0gImh0bWwtdGFnIjsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2NvbmRpdGlv
bi5wYXJzZUNvbmRpdGlvbiAmIHRoaXMuX3BhcnNlQ29uZGl0aW9ucy5TQ1JJUFQpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0VG9rZW5pemVy
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxKYXZhU2NyaXB0
VG9rZW5pemVyID0gV2ViSW5zcGVjdG9yLlNvdXJjZVRva2VuaXplci5SZWdpc3RyeS5nZXRJbnN0
YW5jZSgpLmdldFRva2VuaXplcigidGV4dC9qYXZhc2NyaXB0Iik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fY29uZGl0aW9uLmludGVybmFsSmF2YVNjcmlwdFRva2VuaXplckNv
bmRpdGlvbiA9IHRoaXMuX2ludGVybmFsSmF2YVNjcmlwdFRva2VuaXplci5pbml0aWFsQ29uZGl0
aW9uOwotICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
dGhpcy5zY3JpcHRTdGFydGVkKGN1cnNvcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBE
byBub3QgdG9rZW5pemUgc2NyaXB0IHRhZyBjb250ZW50cy4KICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjdXJzb3I7CiAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ICAgICAgICBpZiAodGhpcy5fY29uZGl0aW9uLnBhcnNlQ29uZGl0aW9uICYgdGhpcy5fcGFyc2VD
b25kaXRpb25zLlNUWUxFKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2lu
dGVybmFsQ1NTVG9rZW5pemVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5f
aW50ZXJuYWxDU1NUb2tlbml6ZXIgPSBXZWJJbnNwZWN0b3IuU291cmNlVG9rZW5pemVyLlJlZ2lz
dHJ5LmdldEluc3RhbmNlKCkuZ2V0VG9rZW5pemVyKCJ0ZXh0L2NzcyIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2NvbmRpdGlvbi5pbnRlcm5hbENTU1Rva2VuaXplckNvbmRp
dGlvbiA9IHRoaXMuX2ludGVybmFsQ1NTVG9rZW5pemVyLmluaXRpYWxDb25kaXRpb247Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0eWxl
U2hlZXRTdGFydGVkKGN1cnNvcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3Qg
dG9rZW5pemUgc3R5bGUgdGFnIGNvbnRlbnRzLgogICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGN1cnNvcjsKICAgICAgICAgICAgICAgICAgICAgfQo=
</data>
<flag name="review"
          id="82276"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>