<?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>131252</bug_id>
          
          <creation_ts>2014-04-04 19:02:19 -0700</creation_ts>
          <short_desc>Web Inspector: JSContext inspection Resource search does not work</short_desc>
          <delta_ts>2014-12-04 13:00:52 -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</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>burg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997787</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-04-04 19:02:19 -0700</bug_when>
    <thetext>The Resource Panel&apos;s search bar in a JSContext Inspector currently does not work. It should!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997788</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-04-04 19:02:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/16531981&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049725</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-18 23:01:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/13776248&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049727</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-18 23:01:47 -0800</bug_when>
    <thetext>This also affects Extra Scripts, Anonymous Scripts, and Extension Scripts when inspecting a web page. I have a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049728</commentid>
    <comment_count>4</comment_count>
      <attachid>241848</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-18 23:10:11 -0800</bug_when>
    <thetext>Created attachment 241848
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049808</commentid>
    <comment_count>5</comment_count>
      <attachid>241848</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-11-19 09:48:33 -0800</bug_when>
    <thetext>Comment on attachment 241848
[PATCH] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:422
&gt; +                    var lineMatch;
&gt; +                    var searchRegex = new RegExp(searchTerm.escapeForRegExp(), &quot;gi&quot;);
&gt; +                    while ((searchRegex.lastIndex &lt; match.lineContent.length) &amp;&amp; (lineMatch = searchRegex.exec(match.lineContent))) {
&gt; +                        var matchObject = new WebInspector.SourceCodeSearchMatchObject(script, match.lineContent, searchTerm, new WebInspector.TextRange(match.lineNumber, lineMatch.index, match.lineNumber, searchRegex.lastIndex));
&gt; +                        var matchTreeElement = new WebInspector.SearchResultTreeElement(matchObject);
&gt; +                        scriptTreeElement.appendChild(matchTreeElement);
&gt;                      }

We should make this a helper that returns an array of matches or calls a function for each match. We have written this about 3-4 times in out codebase.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:737
&gt; +            var children = folderTreeElement.children;
&gt; +            for (var treeElement of children) {
&gt; +                if (treeElement instanceof WebInspector.ScriptTreeElement)
&gt; +                    nonResourceScripts.push(treeElement.script);
&gt; +            }

Assert that there are no sub-folders or any tree elements that have children that might need searched?

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js:742
&gt; +        if (WebInspector.debuggableType === WebInspector.DebuggableType.JavaScript &amp;&amp; !WebInspector.hasExtraDomains)
&gt; +            collectFromTreeElement(this._resourcesContentTreeOutline);
&gt; +        else {

I hate no braces in this case, but it is our style...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049955</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-19 15:50:33 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/176358</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241848</attachid>
            <date>2014-11-18 23:10:11 -0800</date>
            <delta_ts>2014-12-04 13:00:52 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>jscontext-search.patch</filename>
            <type>text/plain</type>
            <size>30937</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZjFiODYxLi5hZTkyZTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMTEt
MTggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBKU0NvbnRleHQgaW5zcGVjdGlvbiBSZXNvdXJjZSBzZWFyY2ggZG9lcyBub3Qg
d29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMx
MjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvc2VhcmNoLXNjcmlwdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2VhcmNoLXNjcmlwdHMuaHRtbDogQWRkZWQuCisg
ICAgICAgIFRlc3RzIGZvciBEZWJ1Z2dlci5zZWFyY2hJbkNvbnRlbnQuCisKIDIwMTQtMTEtMTcg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBQcm92aWRlICRleGNlcHRpb24gaW4gdGhlIGNvbnNvbGUgZm9yIHRoZSB0aHJvd24g
ZXhjZXB0aW9uIHZhbHVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc2VhcmNoLXNjcmlwdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NlYXJjaC1zY3JpcHRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5kN2NjYTU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NlYXJjaC1zY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI4
IEBACitUZXN0IERlYnVnZ2VyQWdlbnQuc2VhcmNoSW5Db250ZW50IHRvIHNlYXJjaCBzY3JpcHQg
Y29udGVudC4KKworCitTQ1JJUFQ6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzCitSRVNVTFRTOiAwCisKK1NDUklQVDogTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NlYXJjaC1zY3JpcHRzLmh0bWwKK1JFU1VMVFM6IDIKKyAgTElORTogMQor
ICBDT05URU5UOiAvLyBTRUFSQ0hURVNUOiBDb21tZW50IGluIGlubGluZSA8c2NyaXB0Pi4KKyAg
TElORTogMjgKKyAgQ09OVEVOVDogICAgICAgICBEZWJ1Z2dlckFnZW50LnNlYXJjaEluQ29udGVu
dChzY3JpcHQuaWQsICJTRUFSQ0hURVNUIiwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbihlcnJvciwg
cmVzdWx0cykgeworCitTQ1JJUFQ6IExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZWFy
Y2gtc2NyaXB0cy5odG1sCitSRVNVTFRTOiAxCisgIExJTkU6IDAKKyAgQ09OVEVOVDogKGZ1bmN0
aW9uKGV2ZW50KSB7cnVuVGVzdCgpOyAvLyBTRUFSQ0hURVNUOiBvbmxvYWQgYXR0cmlidXRlIHN0
cmluZworCitTQ1JJUFQ6IGV2YWwxLmpzCitSRVNVTFRTOiAxCisgIExJTkU6IDAKKyAgQ09OVEVO
VDogLy8gU0VBUkNIVEVTVDogRXZhbCAxCisKK1NDUklQVDogZXZhbDIuanMKK1JFU1VMVFM6IDEK
KyAgTElORTogMAorICBDT05URU5UOiB2YXIgU0VBUkNIVEVTVCA9ICJTRUFSQ0hURVNUIjsKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NlYXJjaC1zY3JpcHRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2VhcmNoLXNjcmlwdHMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzI2YTQ1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NlYXJjaC1zY3JpcHRzLmh0
bWwKQEAgLTAsMCArMSw1OCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIFNFQVJDSFRFU1Q6
IENvbW1lbnQgaW4gaW5saW5lIDxzY3JpcHQ+LgorZnVuY3Rpb24gcGVyZm9ybUV2YWxzKCkKK3sK
KyAgICAvLyBGaW5kIHRoZSBsaW5lIHdpdGggdGhlIHNlYXJjaCB0ZXJtLgorICAgIGV2YWwoIi8v
IFNFQVJDSCIgKyAiVEVTVDogRXZhbCAxXG4vLyMgc291cmNlVVJMPWV2YWwxLmpzIik7CisgICAg
Ly8gSWYgdGhlIHNlYXJjaCB0ZXJtIHNob3dzIHVwIG11bHRpcGxlIHRpbWVzIG9uIGEgc2luZ2xl
IGxpbmUsIHRoZSBsaW5lIGlzIHJldHVybmVkIG9uY2UuCisgICAgZXZhbCgidmFyIFNFQVJDSCIg
KyAiVEVTVCA9IFwiU0VBUkNIIiArICJURVNUXCI7XG4vLyMgc291cmNlVVJMPWV2YWwyLmpzIik7
Cit9OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBmdW5jdGlvbiBzYW5pdGl6ZVNjcmlwdFVS
TCh1cmwpIHsKKyAgICAgICAgcmV0dXJuIHVybC5zdWJzdHJpbmcodXJsLmluZGV4T2YoIkxheW91
dFRlc3RzIikpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNob21wKGxpbmUpIHsKKyAgICAgICAg
cmV0dXJuIGxpbmUucmVwbGFjZSgvXG4kLywgIiIpOworICAgIH0KKworICAgIHZhciBzY3JpcHRz
Q291bnQgPSAwOworICAgIGNvbnN0IGV4cGVjdGVkU2NyaXB0c0NvdW50ID0gNTsKKworICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCBmdW5jdGlvbihldmVudCkgeworICAg
ICAgICB2YXIgc2NyaXB0ID0gZXZlbnQuZGF0YS5zY3JpcHQ7CisgICAgICAgIGlmICghL0xheW91
dFRlc3RzLy50ZXN0KHNjcmlwdC51cmwpICYmICEvZXZhbFxkXC5qcy8udGVzdChzY3JpcHQudXJs
KSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBEZWJ1Z2dlckFnZW50LnNlYXJjaElu
Q29udGVudChzY3JpcHQuaWQsICJTRUFSQ0hURVNUIiwgZmFsc2UsIGZhbHNlLCBmdW5jdGlvbihl
cnJvciwgcmVzdWx0cykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNDUklQVDogIiArIHNhbml0aXplU2NyaXB0VVJM
KHNjcmlwdC51cmwpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSRVNVTFRTOiAi
ICsgcmVzdWx0cy5sZW5ndGgpOworICAgICAgICAgICAgZm9yICh2YXIgcmVzdWx0IG9mIHJlc3Vs
dHMpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICBMSU5FOiAiICsgcmVz
dWx0LmxpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIgIENP
TlRFTlQ6ICIgKyBjaG9tcChyZXN1bHQubGluZUNvbnRlbnQpKTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKCsrc2NyaXB0c0NvdW50ID09PSBleHBlY3RlZFNjcmlwdHNDb3VudCkK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9
KTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuZXZlbnREaXNwYXRjaGVyLmFkZEV2ZW50
TGlzdGVuZXIoSW5zcGVjdG9yVGVzdC5FdmVudERpc3BhdGNoZXIuRXZlbnQuVGVzdFBhZ2VEaWRM
b2FkLCBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgi
cGVyZm9ybUV2YWxzKCkiKTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFn
ZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsgLy8g
U0VBUkNIVEVTVDogb25sb2FkIGF0dHJpYnV0ZSBzdHJpbmciPgorICAgIDxwPlRlc3QgPGNvZGU+
RGVidWdnZXJBZ2VudC5zZWFyY2hJbkNvbnRlbnQ8L2NvZGU+IHRvIHNlYXJjaCBzY3JpcHQgY29u
dGVudC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NDI5ODRiLi4wZTAzMGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxNC0xMS0xOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IEpTQ29udGV4dCBpbnNwZWN0aW9uIFJlc291cmNlIHNlYXJj
aCBkb2VzIG5vdCB3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzEyNTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNlYXJjaEluQ29udGVu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb246CisgICAgICAg
IERvIHNvbWUgY2xlYW51cCBvZiB0aGUgZGVzY3JpcHRpb24gYW5kIGltcGxlbWVudGF0aW9uIG9m
IGNvbnRlbnQgc2VhcmNoaW5nLgorCiAyMDE0LTExLTE3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUHJvdmlkZSAkZXhjZXB0
aW9uIGluIHRoZSBjb25zb2xlIGZvciB0aGUgdGhyb3duIGV4Y2VwdGlvbiB2YWx1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAyOGRhMmMyLi4yOWUxNmQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtNDAxLDE3ICs0MDEsMTggQEAgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpEZWJ1Z2dlcjo6TG9jYXRpb24+IEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OnJlc28KICAgICByZXR1cm4gbG9jYXRpb247CiB9CiAKLXZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6c2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nJiBlcnJvciwgY29u
c3QgU3RyaW5nJiBzY3JpcHRJRFN0ciwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9vbCog
Y29uc3Qgb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElz
UmVnZXgsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpHZW5lcmljVHlwZXM6OlNlYXJjaE1hdGNoPj4mIHJlc3VsdHMpCit2b2lkIEluc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQ6OnNlYXJjaEluQ29udGVudChFcnJvclN0cmluZyYgZXJyb3IsIGNvbnN0
IFN0cmluZyYgc2NyaXB0SURTdHIsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IGJvb2wqIG9w
dGlvbmFsQ2FzZVNlbnNpdGl2ZSwgY29uc3QgYm9vbCogb3B0aW9uYWxJc1JlZ2V4LCBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6R2VuZXJpY1R5
cGVzOjpTZWFyY2hNYXRjaD4+JiByZXN1bHRzKQogeworICAgIEpTQzo6U291cmNlSUQgc291cmNl
SUQgPSBzY3JpcHRJRFN0ci50b0ludFB0cigpOworICAgIGF1dG8gaXQgPSBtX3NjcmlwdHMuZmlu
ZChzb3VyY2VJRCk7CisgICAgaWYgKGl0ID09IG1fc2NyaXB0cy5lbmQoKSkgeworICAgICAgICBl
cnJvciA9IEFTQ0lJTGl0ZXJhbCgiTm8gc2NyaXB0IGZvciBpZDogIikgKyBzY3JpcHRJRFN0cjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGJvb2wgaXNSZWdleCA9IG9wdGlvbmFsSXNS
ZWdleCA/ICpvcHRpb25hbElzUmVnZXggOiBmYWxzZTsKICAgICBib29sIGNhc2VTZW5zaXRpdmUg
PSBvcHRpb25hbENhc2VTZW5zaXRpdmUgPyAqb3B0aW9uYWxDYXNlU2Vuc2l0aXZlIDogZmFsc2U7
Ci0KLSAgICBKU0M6OlNvdXJjZUlEIHNvdXJjZUlEID0gc2NyaXB0SURTdHIudG9JbnRQdHIoKTsK
LSAgICBTY3JpcHRzTWFwOjppdGVyYXRvciBpdCA9IG1fc2NyaXB0cy5maW5kKHNvdXJjZUlEKTsK
LSAgICBpZiAoaXQgIT0gbV9zY3JpcHRzLmVuZCgpKQotICAgICAgICByZXN1bHRzID0gQ29udGVu
dFNlYXJjaFV0aWxpdGllczo6c2VhcmNoSW5UZXh0QnlMaW5lcyhpdC0+dmFsdWUuc291cmNlLCBx
dWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCk7Ci0gICAgZWxzZQotICAgICAgICBlcnJvciA9
IEFTQ0lJTGl0ZXJhbCgiTm8gc2NyaXB0IGZvciBpZDogIikgKyBzY3JpcHRJRFN0cjsKKyAgICBy
ZXN1bHRzID0gQ29udGVudFNlYXJjaFV0aWxpdGllczo6c2VhcmNoSW5UZXh0QnlMaW5lcyhpdC0+
dmFsdWUuc291cmNlLCBxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCk7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Z2V0U2NyaXB0U291cmNlKEVycm9yU3RyaW5nJiBlcnJv
ciwgY29uc3QgU3RyaW5nJiBzY3JpcHRJRFN0ciwgU3RyaW5nKiBzY3JpcHRTb3VyY2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2Vy
Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2Vy
Lmpzb24KaW5kZXggZWJmNzNmOC4uZmU2ZDRhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgpAQCAtMTkzLDE2ICsx
OTMsMTYgQEAKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAic2Vh
cmNoSW5Db250ZW50IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyBmb3Ig
Z2l2ZW4gc3RyaW5nIGluIHNjcmlwdCBjb250ZW50LiIsCiAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2Ny
aXB0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIHNjcmlwdCB0byBzZWFyY2ggaW4uIiB9
LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicXVlcnkiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiU3RyaW5nIHRvIHNlYXJjaCBmb3IuIiAgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInF1ZXJ5IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlN0
cmluZyB0byBzZWFyY2ggZm9yLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhc2VT
ZW5zaXRpdmUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIklmIHRydWUsIHNlYXJjaCBpcyBjYXNlIHNlbnNpdGl2ZS4iIH0sCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCB0cmVhdHMgc3RyaW5nIHBhcmFtZXRlciBh
cyByZWdleC4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJHZW5lcmljVHlwZXMuU2VhcmNoTWF0Y2giIH0sICJkZXNjcmlwdGlvbiI6
ICJMaXN0IG9mIHNlYXJjaCBtYXRjaGVzLiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJTZWFyY2hlcyBmb3IgZ2l2ZW4gc3RyaW5nIGluIHNjcmlwdCBjb250
ZW50LiIKKyAgICAgICAgICAgIF0KICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAg
Im5hbWUiOiAiZ2V0U2NyaXB0U291cmNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvUGFnZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpzb24KaW5kZXggNzE4MTNlYS4uYzIxMGE4OSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpz
b24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9QYWdlLmpz
b24KQEAgLTE2Miw3ICsxNjIsNyBAQAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29yay5GcmFtZUlk
IiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGlkIGZvciByZXNvdXJjZSB0byBzZWFyY2ggaW4uIiB9
LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgcmVzb3VyY2UgdG8gc2VhcmNoIGluLiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInF1ZXJ5IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlN0cmluZyB0byBzZWFyY2ggZm9yLiIgIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJxdWVyeSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTdHJpbmcgdG8g
c2VhcmNoIGZvci4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYXNlU2Vuc2l0aXZl
IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJ
ZiB0cnVlLCBzZWFyY2ggaXMgY2FzZSBzZW5zaXRpdmUuIiB9LAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaXNSZWdleCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgdHJlYXRzIHN0cmluZyBwYXJhbWV0ZXIgYXMgcmVnZXgu
IiB9CiAgICAgICAgICAgICBdLApAQCAtMTc0LDcgKzE3NCw3IEBACiAgICAgICAgICAgICAibmFt
ZSI6ICJzZWFyY2hJblJlc291cmNlcyIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2Vh
cmNoZXMgZm9yIGdpdmVuIHN0cmluZyBpbiBmcmFtZSAvIHJlc291cmNlIHRyZWUgc3RydWN0dXJl
LiIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU3RyaW5nIHRvIHNl
YXJjaCBmb3IuIiAgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6
ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU3RyaW5nIHRvIHNlYXJjaCBmb3IuIiB9LAogICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjogImJvb2xlYW4i
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgc2VhcmNoIGlzIGNh
c2Ugc2Vuc2l0aXZlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVnZXgiLCAi
dHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRy
dWUsIHRyZWF0cyBzdHJpbmcgcGFyYW1ldGVyIGFzIHJlZ2V4LiIgfQogICAgICAgICAgICAgXSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0YjkxY2Y3Li4wMDAwZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTQtMTEtMTggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBKU0NvbnRleHQgaW5zcGVjdGlvbiBSZXNvdXJjZSBzZWFy
Y2ggZG9lcyBub3Qgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMxMjUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NlYXJjaC1zY3JpcHRzLmh0bWwKKwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpzZWFyY2hJblJlc291cmNlcyk6CisgICAgICAgIEEg
bGl0dGxlIGNsZWFudXAuCisKIDIwMTQtMTEtMTcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlICRleGNlcHRpb24g
aW4gdGhlIGNvbnNvbGUgZm9yIHRoZSB0aHJvd24gZXhjZXB0aW9uIHZhbHVlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IGY5YjJiMjEu
LjA5MzA2NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwCkBAIC02MDEsOSArNjAxLDkgQEAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6UGFnZTo6U2VhcmNoUmVzdWx0PiBidWlsZE9iamVjdEZvclNlYXJjaFIKICAg
ICAgICAgLnJlbGVhc2UoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OnNlYXJjaElu
UmVzb3VyY2VzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBib29sKiBj
b25zdCBvcHRpb25hbENhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGNvbnN0IG9wdGlvbmFsSXNS
ZWdleCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9j
b2w6OlBhZ2U6OlNlYXJjaFJlc3VsdD4+JiByZXN1bHRzKQordm9pZCBJbnNwZWN0b3JQYWdlQWdl
bnQ6OnNlYXJjaEluUmVzb3VyY2VzKEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBib29sKiBjb25zdCBvcHRpb25hbENhc2VTZW5zaXRpdmUsIGNvbnN0IGJvb2wqIGNvbnN0
IG9wdGlvbmFsSXNSZWdleCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OlBhZ2U6OlNlYXJjaFJlc3VsdD4+JiByZXN1bHQpCiB7Ci0gICAgUmVm
UHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OlBhZ2U6
OlNlYXJjaFJlc3VsdD4+IHNlYXJjaFJlc3VsdHMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJh
eTxJbnNwZWN0b3I6OlByb3RvY29sOjpQYWdlOjpTZWFyY2hSZXN1bHQ+OjpjcmVhdGUoKTsKKyAg
ICByZXN1bHQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29s
OjpQYWdlOjpTZWFyY2hSZXN1bHQ+OjpjcmVhdGUoKTsKIAogICAgIGJvb2wgaXNSZWdleCA9IG9w
dGlvbmFsSXNSZWdleCA/ICpvcHRpb25hbElzUmVnZXggOiBmYWxzZTsKICAgICBib29sIGNhc2VT
ZW5zaXRpdmUgPSBvcHRpb25hbENhc2VTZW5zaXRpdmUgPyAqb3B0aW9uYWxDYXNlU2Vuc2l0aXZl
IDogZmFsc2U7CkBAIC02MTYsMTggKzYxNiwxNiBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
c2VhcmNoSW5SZXNvdXJjZXMoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbgog
ICAgICAgICAgICAgaWYgKHRleHRDb250ZW50Rm9yQ2FjaGVkUmVzb3VyY2UoY2FjaGVkUmVzb3Vy
Y2UsICZjb250ZW50KSkgewogICAgICAgICAgICAgICAgIGludCBtYXRjaGVzQ291bnQgPSBDb250
ZW50U2VhcmNoVXRpbGl0aWVzOjpjb3VudFJlZ3VsYXJFeHByZXNzaW9uTWF0Y2hlcyhyZWdleCwg
Y29udGVudCk7CiAgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXNDb3VudCkKLSAgICAgICAgICAg
ICAgICAgICAgc2VhcmNoUmVzdWx0cy0+YWRkSXRlbShidWlsZE9iamVjdEZvclNlYXJjaFJlc3Vs
dChmcmFtZUlkKGZyYW1lKSwgY2FjaGVkUmVzb3VyY2UtPnVybCgpLCBtYXRjaGVzQ291bnQpKTsK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yU2VhcmNo
UmVzdWx0KGZyYW1lSWQoZnJhbWUpLCBjYWNoZWRSZXNvdXJjZS0+dXJsKCksIG1hdGNoZXNDb3Vu
dCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKG1haW5SZXNvdXJj
ZUNvbnRlbnQoZnJhbWUsIGZhbHNlLCAmY29udGVudCkpIHsKICAgICAgICAgICAgIGludCBtYXRj
aGVzQ291bnQgPSBDb250ZW50U2VhcmNoVXRpbGl0aWVzOjpjb3VudFJlZ3VsYXJFeHByZXNzaW9u
TWF0Y2hlcyhyZWdleCwgY29udGVudCk7CiAgICAgICAgICAgICBpZiAobWF0Y2hlc0NvdW50KQot
ICAgICAgICAgICAgICAgIHNlYXJjaFJlc3VsdHMtPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JTZWFy
Y2hSZXN1bHQoZnJhbWVJZChmcmFtZSksIGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgbWF0Y2hl
c0NvdW50KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9y
U2VhcmNoUmVzdWx0KGZyYW1lSWQoZnJhbWUpLCBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIG1h
dGNoZXNDb3VudCkpOwogICAgICAgICB9CiAgICAgfQotCi0gICAgcmVzdWx0cyA9IHNlYXJjaFJl
c3VsdHM7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpzZXREb2N1bWVudENvbnRlbnQo
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIGNvbnN0IFN0
cmluZyYgaHRtbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDcwMWZkZWQuLjY2YWM2MGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBACiAyMDE0LTExLTE4ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogSlNDb250ZXh0IGluc3BlY3Rpb24gUmVzb3VyY2Ugc2VhcmNoIGRvZXMgbm90IHdvcmsK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI1Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5yZXNvdXJj
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5w
cm90b3R5cGUucGVyZm9ybVNlYXJjaC5yZXNvdXJjZXNDYWxsYmFjayk6CisgICAgICAgIENsZWFu
dXAgYnkgcmVvcmRlcmluZyB0aGluZ3MgYSBiaXQuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5zZWFyY2hTY3JpcHRz
LnNjcmlwdENhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQ
YW5lbC5wcm90b3R5cGUucGVyZm9ybVNlYXJjaC5zZWFyY2hTY3JpcHRzKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUucGVyZm9ybVNlYXJjaCk6
CisgICAgICAgIFNlYXJjaCBub24tcmVzb3VyY2Ugc2NyaXB0cyBpbmRpdmlkdWFsbHkuCisKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3NlYXJj
aFRyZWVFbGVtZW50Rm9yU2NyaXB0KToKKyAgICAgICAgTGF6aWx5IGNyZWF0ZSBhIFNjcmlwdFRy
ZWVFbGVtZW50IGZvciB0aGUgc2VhcmNoIHRyZWUgb3V0bGluZSBhcyBuZWVkZWQuCisKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3NjcmlwdHNU
b1NlYXJjaCk6CisgICAgICAgIFdoZW4gc2VhcmNoaW5nIHNjcmlwdHMsIGp1c3QgcGVyZm9ybSBh
IHNoYWxsb3cgd2FsayBvZiB0aGUgdHJlZSBvdXRsaW5lIHRvIGZpbmQKKyAgICAgICAgU2NyaXB0
IHJlc291cmNlcyB0aGF0IGFyZSBub3QgYWxzbyBSZXNvdXJjZXMuIFNjcmlwdHMgYXJlIGFsd2F5
cyBndWFyZW50ZWVkIHRvCisgICAgICAgIGJlIGluIGEgZm9sZGVyIHdoZW4gaW5zcGVjdGluZyBh
IHdlYiByZXNvdXJjZS4gRm9yIEpTQ29udGV4dCBpbnNwZWN0aW9uLCBzY3JpcHRzCisgICAgICAg
IGFyZSBwcm9tb3RlZCB0byB0aGUgdG9wIGxldmVsLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvU291cmNlQ29kZVNl
YXJjaE1hdGNoT2JqZWN0LmpzOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlU2VhcmNoTWF0Y2hPYmplY3QuanMuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlQ29kZVNlYXJjaE1hdGNoT2JqZWN0KToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaEljb25zLmNzczoKKyAgICAgICAgKC5zb3VyY2UtY29k
ZS1tYXRjaC1pY29uIC5pY29uKToKKyAgICAgICAgKC5yZXNvdXJjZS1tYXRjaC1pY29uIC5pY29u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NlYXJjaFJlc3VsdFRy
ZWVFbGVtZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaFJlc3VsdFRyZWVFbGVt
ZW50KToKKyAgICAgICAgUmVuYW1lIFJlc291cmNlU2VhcmNoTWF0Y2hPYmplY3QgdG8gU291cmNl
Q29kZVNlYXJjaE1hdGNoT2JqZWN0LgorCisyMDE0LTExLTE4ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW1wcm92ZSBiYXNp
YyBKYXZhU2NyaXB0IGNvbXBsZXRpb24gaW4gaW5saW5lIDxzY3JpcHQ+cwogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4ODQ1CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCBmOTI5NDdiLi5jYjZi
MTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWlu
Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1s
CkBAIC0yNTYsNyArMjU2LDYgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1JlcGxheVNlc3Np
b25TZWdtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1Jlc291cmNl
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1Jlc291cmNlQ29sbGVjdGlv
bi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9SZXNvdXJjZVNlYXJjaE1h
dGNoT2JqZWN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1Jlc291cmNl
VGltZWxpbmVSZWNvcmQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvUmV2
aXNpb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU2NvcGVDaGFpbk5v
ZGUuanMiPjwvc2NyaXB0PgpAQCAtMjY2LDYgKzI2NSw3IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1v
ZGVscy9TZXR0aW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL1NvdXJj
ZUNvZGVQb3NpdGlvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Tb3Vy
Y2VDb2RlUmV2aXNpb24uanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvU291
cmNlQ29kZVNlYXJjaE1hdGNoT2JqZWN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
TW9kZWxzL1NvdXJjZUNvZGVUZXh0UmFuZ2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJNb2RlbHMvU291cmNlQ29kZVRpbWVsaW5lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iTW9kZWxzL1NvdXJjZU1hcC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2VTZWFyY2hNYXRjaE9iamVj
dC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Tb3VyY2VD
b2RlU2VhcmNoTWF0Y2hPYmplY3QuanMKc2ltaWxhcml0eSBpbmRleCA3MCUKcmVuYW1lIGZyb20g
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291cmNlU2VhcmNo
TWF0Y2hPYmplY3QuanMKcmVuYW1lIHRvIFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9Tb3VyY2VDb2RlU2VhcmNoTWF0Y2hPYmplY3QuanMKaW5kZXggZTU4ZGJkNS4u
YjFmMjc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL1Jlc291cmNlU2VhcmNoTWF0Y2hPYmplY3QuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1NvdXJjZUNvZGVTZWFyY2hNYXRjaE9iamVjdC5q
cwpAQCAtMjMsMjYgKzIzLDI2IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotV2ViSW5zcGVjdG9yLlJlc291cmNlU2VhcmNoTWF0Y2hPYmplY3QgPSBmdW5jdGlv
bihyZXNvdXJjZSwgbGluZVRleHQsIHNlYXJjaFRlcm0sIHRleHRSYW5nZSkKK1dlYkluc3BlY3Rv
ci5Tb3VyY2VDb2RlU2VhcmNoTWF0Y2hPYmplY3QgPSBmdW5jdGlvbihzb3VyY2VDb2RlLCBsaW5l
VGV4dCwgc2VhcmNoVGVybSwgdGV4dFJhbmdlKQogewotICAgIGNvbnNvbGUuYXNzZXJ0KHJlc291
cmNlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlKTsKKyAgICBjb25zb2xlLmFzc2Vy
dChzb3VyY2VDb2RlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGUpOwogCiAgICAg
V2ViSW5zcGVjdG9yLk9iamVjdC5jYWxsKHRoaXMpOwogCi0gICAgdGhpcy5fcmVzb3VyY2UgPSBy
ZXNvdXJjZTsKKyAgICB0aGlzLl9zb3VyY2VDb2RlID0gc291cmNlQ29kZTsKICAgICB0aGlzLl9s
aW5lVGV4dCA9IGxpbmVUZXh0OwogICAgIHRoaXMuX3NlYXJjaFRlcm0gPSBzZWFyY2hUZXJtOwot
ICAgIHRoaXMuX3NvdXJjZUNvZGVUZXh0UmFuZ2UgPSByZXNvdXJjZS5jcmVhdGVTb3VyY2VDb2Rl
VGV4dFJhbmdlKHRleHRSYW5nZSk7CisgICAgdGhpcy5fc291cmNlQ29kZVRleHRSYW5nZSA9IHNv
dXJjZUNvZGUuY3JlYXRlU291cmNlQ29kZVRleHRSYW5nZSh0ZXh0UmFuZ2UpOwogfTsKIAotV2Vi
SW5zcGVjdG9yLlJlc291cmNlU2VhcmNoTWF0Y2hPYmplY3QuUmVzb3VyY2VNYXRjaEljb25TdHls
ZUNsYXNzTmFtZSA9ICJyZXNvdXJjZS1tYXRjaC1pY29uIjsKK1dlYkluc3BlY3Rvci5Tb3VyY2VD
b2RlU2VhcmNoTWF0Y2hPYmplY3QuU291cmNlQ29kZU1hdGNoSWNvblN0eWxlQ2xhc3NOYW1lID0g
InNvdXJjZS1jb2RlLW1hdGNoLWljb24iOwogCi1XZWJJbnNwZWN0b3IuUmVzb3VyY2VTZWFyY2hN
YXRjaE9iamVjdC5wcm90b3R5cGUgPSB7Ci0gICAgY29uc3RydWN0b3I6IFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVNlYXJjaE1hdGNoT2JqZWN0LAorV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVTZWFyY2hN
YXRjaE9iamVjdC5wcm90b3R5cGUgPSB7CisgICAgY29uc3RydWN0b3I6IFdlYkluc3BlY3Rvci5T
b3VyY2VDb2RlU2VhcmNoTWF0Y2hPYmplY3QsCiAKLSAgICBnZXQgcmVzb3VyY2UoKQorICAgIGdl
dCBzb3VyY2VDb2RlKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZUNvZGU7CiAgICAgfSwKIAogICAgIGdldCB0aXRsZSgp
CkBAIC01Miw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNlYXJjaE1hdGNoT2JqZWN0
LnByb3RvdHlwZSA9IHsKIAogICAgIGdldCBjbGFzc05hbWUoKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNlYXJjaE1hdGNoT2JqZWN0LlJlc291cmNlTWF0Y2hJ
Y29uU3R5bGVDbGFzc05hbWU7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU291cmNlQ29k
ZVNlYXJjaE1hdGNoT2JqZWN0LlNvdXJjZUNvZGVNYXRjaEljb25TdHlsZUNsYXNzTmFtZTsKICAg
ICB9LAogCiAgICAgZ2V0IHNlYXJjaFRlcm0oKQpAQCAtNjYsNCArNjYsNCBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VTZWFyY2hNYXRjaE9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgfQogfTsKIAot
V2ViSW5zcGVjdG9yLlJlc291cmNlU2VhcmNoTWF0Y2hPYmplY3QucHJvdG90eXBlLl9fcHJvdG9f
XyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOworV2ViSW5zcGVjdG9yLlNvdXJjZUNv
ZGVTZWFyY2hNYXRjaE9iamVjdC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9i
amVjdC5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzCmluZGV4IDZi
YmMwZDYuLjMwZTY4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlU2lkZWJhclBhbmVsLmpzCkBAIC0z
MjMsNiArMzIzLDEwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuZmlsdGVyQmFyLnBsYWNlaG9sZGVyID0gV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJGaWx0ZXIgU2VhcmNoIFJlc3VsdHMiKTsKICAgICAgICAgdGhpcy5jb250ZW50
VHJlZU91dGxpbmUgPSB0aGlzLl9zZWFyY2hDb250ZW50VHJlZU91dGxpbmU7CiAKKyAgICAgICAg
Ly8gRklYTUU6IFByb3ZpZGUgVUkgdG8gdG9nZ2xlIHJlZ2V4IGFuZCBjYXNlIHNlbnNpdGl2ZSBz
ZWFyY2hlcy4KKyAgICAgICAgdmFyIGlzQ2FzZVNlbnNpdGl2ZSA9IGZhbHNlOworICAgICAgICB2
YXIgaXNSZWdleCA9IGZhbHNlOworCiAgICAgICAgIHZhciB1cGRhdGVFbXB0eUNvbnRlbnRQbGFj
ZWhvbGRlclRpbWVvdXQgPSBudWxsOwogCiAgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUVtcHR5Q29u
dGVudFBsYWNlaG9sZGVyU29vbigpCkBAIC0zNDksNDUgKzM1Myw4MCBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VTaWRlYmFyUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKGVycm9y
KQogICAgICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICAgICAgZnVuY3Rpb24gcmVzb3Vy
Y2VDYWxsYmFjayh1cmwsIGVycm9yLCByZXNvdXJjZU1hdGNoZXMpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgdXBkYXRlRW1wdHlDb250ZW50UGxhY2Vob2xkZXJTb29uLmNhbGwodGhp
cyk7CisKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IgfHwgIXJlc291cmNlTWF0Y2hlcyB8fCAh
cmVzb3VyY2VNYXRjaGVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgICAgICAgICAgdmFyIGZyYW1lID0gV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5h
Z2VyLmZyYW1lRm9ySWRlbnRpZmllcihzZWFyY2hSZXN1bHQuZnJhbWVJZCk7CisgICAgICAgICAg
ICAgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
ICAgICAgICAgdmFyIHJlc291cmNlID0gZnJhbWUudXJsID09PSB1cmwgPyBmcmFtZS5tYWluUmVz
b3VyY2UgOiBmcmFtZS5yZXNvdXJjZUZvclVSTCh1cmwpOworICAgICAgICAgICAgICAgIGlmICgh
cmVzb3VyY2UpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAg
IHZhciByZXNvdXJjZVRyZWVFbGVtZW50ID0gdGhpcy5fc2VhcmNoVHJlZUVsZW1lbnRGb3JSZXNv
dXJjZShyZXNvdXJjZSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
c291cmNlTWF0Y2hlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgbWF0
Y2ggPSByZXNvdXJjZU1hdGNoZXNbaV07CisKKyAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmVN
YXRjaDsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNlYXJjaFJlZ2V4ID0gbmV3IFJlZ0V4cChz
ZWFyY2hUZXJtLmVzY2FwZUZvclJlZ0V4cCgpLCAiZ2kiKTsKKyAgICAgICAgICAgICAgICAgICAg
d2hpbGUgKChzZWFyY2hSZWdleC5sYXN0SW5kZXggPCBtYXRjaC5saW5lQ29udGVudC5sZW5ndGgp
ICYmIChsaW5lTWF0Y2ggPSBzZWFyY2hSZWdleC5leGVjKG1hdGNoLmxpbmVDb250ZW50KSkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXRjaE9iamVjdCA9IG5ldyBXZWJJbnNwZWN0
b3IuU291cmNlQ29kZVNlYXJjaE1hdGNoT2JqZWN0KHJlc291cmNlLCBtYXRjaC5saW5lQ29udGVu
dCwgc2VhcmNoVGVybSwgbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UobWF0Y2gubGluZU51bWJl
ciwgbGluZU1hdGNoLmluZGV4LCBtYXRjaC5saW5lTnVtYmVyLCBzZWFyY2hSZWdleC5sYXN0SW5k
ZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXRjaFRyZWVFbGVtZW50ID0gbmV3
IFdlYkluc3BlY3Rvci5TZWFyY2hSZXN1bHRUcmVlRWxlbWVudChtYXRjaE9iamVjdCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXNvdXJjZVRyZWVFbGVtZW50LmFwcGVuZENoaWxkKG1hdGNo
VHJlZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgdXBkYXRlRW1wdHlDb250ZW50UGxhY2Vob2xkZXIuY2FsbCh0aGlz
KTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1
bHQubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2YXIgc2VhcmNoUmVzdWx0ID0gcmVz
dWx0W2ldOwogICAgICAgICAgICAgICAgIGlmICghc2VhcmNoUmVzdWx0LnVybCB8fCAhc2VhcmNo
UmVzdWx0LmZyYW1lSWQpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
ICAgICAgICAgZnVuY3Rpb24gcmVzb3VyY2VDYWxsYmFjayh1cmwsIGVycm9yLCByZXNvdXJjZU1h
dGNoZXMpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB1cGRhdGVFbXB0
eUNvbnRlbnRQbGFjZWhvbGRlclNvb24uY2FsbCh0aGlzKTsKKyAgICAgICAgICAgICAgICBQYWdl
QWdlbnQuc2VhcmNoSW5SZXNvdXJjZShzZWFyY2hSZXN1bHQuZnJhbWVJZCwgc2VhcmNoUmVzdWx0
LnVybCwgc2VhcmNoVGVybSwgaXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCByZXNvdXJjZUNhbGxi
YWNrLmJpbmQodGhpcywgc2VhcmNoUmVzdWx0LnVybCkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFyZXNvdXJjZU1hdGNoZXMg
fHwgIXJlc291cmNlTWF0Y2hlcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGZ1bmN0aW9uIHNlYXJjaFNjcmlwdHMoc2NyaXB0c1RvU2VhcmNoKQorICAg
ICAgICB7CisgICAgICAgICAgICB1cGRhdGVFbXB0eUNvbnRlbnRQbGFjZWhvbGRlclNvb24uY2Fs
bCh0aGlzKTsKIAotICAgICAgICAgICAgICAgICAgICB2YXIgZnJhbWUgPSBXZWJJbnNwZWN0b3Iu
ZnJhbWVSZXNvdXJjZU1hbmFnZXIuZnJhbWVGb3JJZGVudGlmaWVyKHNlYXJjaFJlc3VsdC5mcmFt
ZUlkKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFmcmFtZSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlmICghc2NyaXB0c1RvU2VhcmNoLmxlbmd0aCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICAgICAgdmFyIHJlc291
cmNlID0gZnJhbWUudXJsID09PSB1cmwgPyBmcmFtZS5tYWluUmVzb3VyY2UgOiBmcmFtZS5yZXNv
dXJjZUZvclVSTCh1cmwpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZnVuY3Rpb24gc2NyaXB0
Q2FsbGJhY2soc2NyaXB0LCBlcnJvciwgc2NyaXB0TWF0Y2hlcykKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICB1cGRhdGVFbXB0eUNvbnRlbnRQbGFjZWhvbGRlclNvb24uY2FsbCh0aGlz
KTsKIAotICAgICAgICAgICAgICAgICAgICB2YXIgcmVzb3VyY2VUcmVlRWxlbWVudCA9IHRoaXMu
X3NlYXJjaFRyZWVFbGVtZW50Rm9yUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAgICAgICAgICAg
IGlmIChlcnJvciB8fCAhc2NyaXB0TWF0Y2hlcyB8fCAhc2NyaXB0TWF0Y2hlcy5sZW5ndGgpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlc291cmNlTWF0Y2hlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIG1hdGNoID0gcmVzb3VyY2VNYXRjaGVzW2ldOworICAgICAgICAgICAg
ICAgIHZhciBzY3JpcHRUcmVlRWxlbWVudCA9IHRoaXMuX3NlYXJjaFRyZWVFbGVtZW50Rm9yU2Ny
aXB0KHNjcmlwdCk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaW5lTWF0Y2g7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2VhcmNoUmVnZXggPSBuZXcgUmVnRXhwKHNlYXJj
aFRlcm0uZXNjYXBlRm9yUmVnRXhwKCksICJnaSIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
d2hpbGUgKChzZWFyY2hSZWdleC5sYXN0SW5kZXggPCBtYXRjaC5saW5lQ29udGVudC5sZW5ndGgp
ICYmIChsaW5lTWF0Y2ggPSBzZWFyY2hSZWdleC5leGVjKG1hdGNoLmxpbmVDb250ZW50KSkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWF0Y2hPYmplY3QgPSBuZXcgV2ViSW5z
cGVjdG9yLlJlc291cmNlU2VhcmNoTWF0Y2hPYmplY3QocmVzb3VyY2UsIG1hdGNoLmxpbmVDb250
ZW50LCBzZWFyY2hUZXJtLCBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZShtYXRjaC5saW5lTnVt
YmVyLCBsaW5lTWF0Y2guaW5kZXgsIG1hdGNoLmxpbmVOdW1iZXIsIHNlYXJjaFJlZ2V4Lmxhc3RJ
bmRleCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXRjaFRyZWVFbGVtZW50
ID0gbmV3IFdlYkluc3BlY3Rvci5TZWFyY2hSZXN1bHRUcmVlRWxlbWVudChtYXRjaE9iamVjdCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VUcmVlRWxlbWVudC5hcHBlbmRD
aGlsZChtYXRjaFRyZWVFbGVtZW50KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdE1hdGNoZXMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIG1hdGNoID0gc2NyaXB0TWF0Y2hlc1tpXTsKKwor
ICAgICAgICAgICAgICAgICAgICB2YXIgbGluZU1hdGNoOworICAgICAgICAgICAgICAgICAgICB2
YXIgc2VhcmNoUmVnZXggPSBuZXcgUmVnRXhwKHNlYXJjaFRlcm0uZXNjYXBlRm9yUmVnRXhwKCks
ICJnaSIpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKHNlYXJjaFJlZ2V4Lmxhc3RJbmRl
eCA8IG1hdGNoLmxpbmVDb250ZW50Lmxlbmd0aCkgJiYgKGxpbmVNYXRjaCA9IHNlYXJjaFJlZ2V4
LmV4ZWMobWF0Y2gubGluZUNvbnRlbnQpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFy
IG1hdGNoT2JqZWN0ID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlU2VhcmNoTWF0Y2hPYmpl
Y3Qoc2NyaXB0LCBtYXRjaC5saW5lQ29udGVudCwgc2VhcmNoVGVybSwgbmV3IFdlYkluc3BlY3Rv
ci5UZXh0UmFuZ2UobWF0Y2gubGluZU51bWJlciwgbGluZU1hdGNoLmluZGV4LCBtYXRjaC5saW5l
TnVtYmVyLCBzZWFyY2hSZWdleC5sYXN0SW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHZhciBtYXRjaFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5TZWFyY2hSZXN1bHRUcmVl
RWxlbWVudChtYXRjaE9iamVjdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRUcmVl
RWxlbWVudC5hcHBlbmRDaGlsZChtYXRjaFRyZWVFbGVtZW50KTsKICAgICAgICAgICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUVtcHR5Q29udGVudFBsYWNlaG9sZGVy
LmNhbGwodGhpcyk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgUGFnZUFn
ZW50LnNlYXJjaEluUmVzb3VyY2Uoc2VhcmNoUmVzdWx0LmZyYW1lSWQsIHNlYXJjaFJlc3VsdC51
cmwsIHNlYXJjaFRlcm0sIGZhbHNlLCBmYWxzZSwgcmVzb3VyY2VDYWxsYmFjay5iaW5kKHRoaXMs
IHNlYXJjaFJlc3VsdC51cmwpKTsKKyAgICAgICAgICAgICAgICB1cGRhdGVFbXB0eUNvbnRlbnRQ
bGFjZWhvbGRlci5jYWxsKHRoaXMpOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3Ig
KHZhciBzY3JpcHQgb2Ygc2NyaXB0c1RvU2VhcmNoKQorICAgICAgICAgICAgICAgIERlYnVnZ2Vy
QWdlbnQuc2VhcmNoSW5Db250ZW50KHNjcmlwdC5pZCwgc2VhcmNoVGVybSwgaXNDYXNlU2Vuc2l0
aXZlLCBpc1JlZ2V4LCBzY3JpcHRDYWxsYmFjay5iaW5kKHRoaXMsIHNjcmlwdCkpOwogICAgICAg
ICB9CiAKICAgICAgICAgZnVuY3Rpb24gZG9tQ2FsbGJhY2soZXJyb3IsIHNlYXJjaElkLCByZXN1
bHRzQ291bnQpCkBAIC00MTksNyArNDU4LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJh
clBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGRvbU5vZGUubm9k
ZVR5cGUoKSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKQogICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFVzZSB0aGlzIHNob3Vs
ZCB1c2UgYSBmcmFtZSB0byBkbyByZXNvdXJjZUZvclVSTCwgYnV0IERPTUFnZW50IGRvZXMgbm90
IHByb3ZpZGUgYSBmcmFtZUlkLgorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgdXNlIGEgZnJhbWUgdG8gZG8gcmVzb3VyY2VGb3JVUkwsIGJ1dCBET01BZ2VudCBkb2Vz
IG5vdCBwcm92aWRlIGEgZnJhbWVJZC4KICAgICAgICAgICAgICAgICAgICAgdmFyIHJlc291cmNl
ID0gV2ViSW5zcGVjdG9yLmZyYW1lUmVzb3VyY2VNYW5hZ2VyLnJlc291cmNlRm9yVVJMKGRvbU5v
ZGUub3duZXJEb2N1bWVudC5kb2N1bWVudFVSTCk7CiAgICAgICAgICAgICAgICAgICAgIGlmICgh
cmVzb3VyY2UpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTQ1Niw5ICs0
OTUsMTAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgaWYgKHdpbmRvdy5ET01BZ2VudCkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5k
b21UcmVlTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKTsKIAotICAgICAgICAvLyBGSVhNRTogU2hv
dWxkIHdlIGJlIHNlYXJjaGluZyBmb3IgcmVnZXhlcyBvciBqdXN0IHBsYWluIHRleHQ/CiAgICAg
ICAgIGlmICh3aW5kb3cuUGFnZUFnZW50KQotICAgICAgICAgICAgUGFnZUFnZW50LnNlYXJjaElu
UmVzb3VyY2VzKHNlYXJjaFRlcm0sIGZhbHNlLCBmYWxzZSwgcmVzb3VyY2VzQ2FsbGJhY2suYmlu
ZCh0aGlzKSk7CisgICAgICAgICAgICBQYWdlQWdlbnQuc2VhcmNoSW5SZXNvdXJjZXMoc2VhcmNo
VGVybSwgaXNDYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCByZXNvdXJjZXNDYWxsYmFjay5iaW5kKHRo
aXMpKTsKKworICAgICAgICBzZXRUaW1lb3V0KHNlYXJjaFNjcmlwdHMuYmluZCh0aGlzLCB0aGlz
Ll9zY3JpcHRzVG9TZWFyY2goKSksIDApOwogCiAgICAgICAgIGlmICh3aW5kb3cuRE9NQWdlbnQp
IHsKICAgICAgICAgICAgIGlmICgiX2RvbVNlYXJjaElkZW50aWZpZXIiIGluIHRoaXMpIHsKQEAg
LTQ5MSw5ICs1MzEsNiBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTaWRlYmFyUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgX3NlYXJjaFRyZWVFbGVtZW50Rm9yUmVzb3VyY2U6IGZ1bmN0aW9uKHJl
c291cmNlKQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2UgYSBmcmFt
ZSBJRCAoaWYgb25lIGlzIGF2YWlsYWJsZSkgLSBzbyB3ZSBjYW4gZGlmZmVyZW50aWF0ZSBiZXR3
ZWVuIG11bHRpcGxlIHJlc291cmNlcwotICAgICAgICAvLyB3aXRoIHRoZSBzYW1lIFVSTC4KLQog
ICAgICAgICB2YXIgcmVzb3VyY2VUcmVlRWxlbWVudCA9IHRoaXMuX3NlYXJjaENvbnRlbnRUcmVl
T3V0bGluZS5nZXRDYWNoZWRUcmVlRWxlbWVudChyZXNvdXJjZSk7CiAgICAgICAgIGlmICghcmVz
b3VyY2VUcmVlRWxlbWVudCkgewogICAgICAgICAgICAgcmVzb3VyY2VUcmVlRWxlbWVudCA9IG5l
dyBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudChyZXNvdXJjZSk7CkBAIC01MDYsNiAr
NTQzLDIwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiByZXNvdXJjZVRyZWVFbGVtZW50OwogICAgIH0sCiAKKyAgICBfc2Vh
cmNoVHJlZUVsZW1lbnRGb3JTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKKyAgICB7CisgICAgICAg
IHZhciBzY3JpcHRUcmVlRWxlbWVudCA9IHRoaXMuX3NlYXJjaENvbnRlbnRUcmVlT3V0bGluZS5n
ZXRDYWNoZWRUcmVlRWxlbWVudChzY3JpcHQpOworICAgICAgICBpZiAoIXNjcmlwdFRyZWVFbGVt
ZW50KSB7CisgICAgICAgICAgICBzY3JpcHRUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3Iu
U2NyaXB0VHJlZUVsZW1lbnQoc2NyaXB0KTsKKyAgICAgICAgICAgIHNjcmlwdFRyZWVFbGVtZW50
Lmhhc0NoaWxkcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgIHNjcmlwdFRyZWVFbGVtZW50LmV4cGFu
ZCgpOworCisgICAgICAgICAgICB0aGlzLl9zZWFyY2hDb250ZW50VHJlZU91dGxpbmUuYXBwZW5k
Q2hpbGQoc2NyaXB0VHJlZUVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHNj
cmlwdFRyZWVFbGVtZW50OworICAgIH0sCisKICAgICBfZm9jdXNTZWFyY2hGaWVsZDogZnVuY3Rp
b24oa2V5Ym9hcmRTaG9ydGN1dCwgZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLnNob3coKTsK
QEAgLTY3MCw2ICs3MjEsMzMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2lkZWJhclBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBfc2NyaXB0c1RvU2VhcmNoOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBub25SZXNvdXJjZVNjcmlwdHMgPSBb
XTsKKworICAgICAgICBmdW5jdGlvbiBjb2xsZWN0RnJvbVRyZWVFbGVtZW50KGZvbGRlclRyZWVF
bGVtZW50KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIWZvbGRlclRyZWVFbGVtZW50KQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgdmFyIGNoaWxkcmVuID0gZm9s
ZGVyVHJlZUVsZW1lbnQuY2hpbGRyZW47CisgICAgICAgICAgICBmb3IgKHZhciB0cmVlRWxlbWVu
dCBvZiBjaGlsZHJlbikgeworICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5j
ZW9mIFdlYkluc3BlY3Rvci5TY3JpcHRUcmVlRWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAg
bm9uUmVzb3VyY2VTY3JpcHRzLnB1c2godHJlZUVsZW1lbnQuc2NyaXB0KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnYWJsZVR5cGUg
PT09IFdlYkluc3BlY3Rvci5EZWJ1Z2dhYmxlVHlwZS5KYXZhU2NyaXB0ICYmICFXZWJJbnNwZWN0
b3IuaGFzRXh0cmFEb21haW5zKQorICAgICAgICAgICAgY29sbGVjdEZyb21UcmVlRWxlbWVudCh0
aGlzLl9yZXNvdXJjZXNDb250ZW50VHJlZU91dGxpbmUpOworICAgICAgICBlbHNlIHsKKyAgICAg
ICAgICAgIGNvbGxlY3RGcm9tVHJlZUVsZW1lbnQodGhpcy5fZXh0ZW5zaW9uU2NyaXB0c0ZvbGRl
clRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgIGNvbGxlY3RGcm9tVHJlZUVsZW1lbnQodGhpcy5f
ZXh0cmFTY3JpcHRzRm9sZGVyVHJlZUVsZW1lbnQpOworICAgICAgICAgICAgY29sbGVjdEZyb21U
cmVlRWxlbWVudCh0aGlzLl9hbm9ueW1vdXNTY3JpcHRzRm9sZGVyVHJlZUVsZW1lbnQpOworICAg
ICAgICB9CisKKyAgICAgICAgcmV0dXJuIG5vblJlc291cmNlU2NyaXB0czsKKyAgICB9LAorCiAg
ICAgX3RyZWVFbGVtZW50U2VsZWN0ZWQ6IGZ1bmN0aW9uKHRyZWVFbGVtZW50LCBzZWxlY3RlZEJ5
VXNlcikKICAgICB7CiAgICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5Gb2xkZXJUcmVlRWxlbWVudCB8fCB0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5EYXRhYmFzZUhvc3RUcmVlRWxlbWVudCB8fApAQCAtNjkxLDcgKzc2OSw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZVNpZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgaWYg
KHRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkRP
TVNlYXJjaE1hdGNoT2JqZWN0KQogICAgICAgICAgICAgdGhpcy5zaG93TWFpbkZyYW1lRE9NVHJl
ZSh0cmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdC5kb21Ob2RlLCB0cnVlKTsKLSAgICAgICAg
ZWxzZSBpZiAodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VTZWFyY2hNYXRjaE9iamVjdCkKKyAgICAgICAgZWxzZSBpZiAodHJlZUVs
ZW1lbnQucmVwcmVzZW50ZWRPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU291cmNlQ29k
ZVNlYXJjaE1hdGNoT2JqZWN0KQogICAgICAgICAgICAgdGhpcy5zaG93T3JpZ2luYWxPckZvcm1h
dHRlZFNvdXJjZUNvZGVUZXh0UmFuZ2UodHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Quc291
cmNlQ29kZVRleHRSYW5nZSk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoSWNvbnMuY3NzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoSWNvbnMuY3NzCmluZGV4IGE0ZjIy
MzguLmQxYmY2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1NlYXJjaEljb25zLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9TZWFyY2hJY29ucy5jc3MKQEAgLTQ3LDYgKzQ3LDYgQEAKICAgICBj
b250ZW50OiB1cmwoLi4vSW1hZ2VzL0RPTU5vZGUuc3ZnKTsKIH0KIAotLnJlc291cmNlLW1hdGNo
LWljb24gLmljb24geworLnNvdXJjZS1jb2RlLW1hdGNoLWljb24gLmljb24gewogICAgIGNvbnRl
bnQ6IHVybCguLi9JbWFnZXMvUmVzdWx0TGluZS5zdmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2VhcmNoUmVzdWx0VHJlZUVsZW1l
bnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hS
ZXN1bHRUcmVlRWxlbWVudC5qcwppbmRleCAzYTM1ZmU5Li42N2EzOGU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TZWFyY2hSZXN1bHRUcmVl
RWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9TZWFyY2hSZXN1bHRUcmVlRWxlbWVudC5qcwpAQCAtMjUsNyArMjUsNyBAQAogCiBXZWJJbnNw
ZWN0b3IuU2VhcmNoUmVzdWx0VHJlZUVsZW1lbnQgPSBmdW5jdGlvbihyZXByZXNlbnRlZE9iamVj
dCkKIHsKLSAgICBjb25zb2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5ET01TZWFyY2hNYXRjaE9iamVjdCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0
YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNlYXJjaE1hdGNoT2JqZWN0KTsKKyAgICBjb25z
b2xlLmFzc2VydChyZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5ET01T
ZWFyY2hNYXRjaE9iamVjdCB8fCByZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5Tb3VyY2VDb2RlU2VhcmNoTWF0Y2hPYmplY3QpOwogCiAgICAgdmFyIHRpdGxlID0gV2Vi
SW5zcGVjdG9yLlNlYXJjaFJlc3VsdFRyZWVFbGVtZW50LnRydW5jYXRlQW5kSGlnaGxpZ2h0VGl0
bGUocmVwcmVzZW50ZWRPYmplY3QudGl0bGUsIHJlcHJlc2VudGVkT2JqZWN0LnNlYXJjaFRlcm0s
IHJlcHJlc2VudGVkT2JqZWN0LnNvdXJjZUNvZGVUZXh0UmFuZ2UpOwogCg==
</data>
<flag name="review"
          id="266719"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>