<?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>54585</bug_id>
          
          <creation_ts>2011-02-16 13:59:42 -0800</creation_ts>
          <short_desc>[fileapi] Implement EntrySync.toURI by moving Entry::toURI to EntryBase</short_desc>
          <delta_ts>2011-02-26 05:14:26 -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>WebCore Misc.</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="Adam Klein">adamk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ericu</cc>
    
    <cc>fishd</cc>
    
    <cc>kinuko</cc>
    
    <cc>michaeln</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>352320</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-16 13:59:42 -0800</bug_when>
    <thetext>[fileapi] Implement EntrySync.toURI by moving Entry::toURI to EntryBase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352322</commentid>
    <comment_count>1</comment_count>
      <attachid>82689</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-16 14:01:39 -0800</bug_when>
    <thetext>Created attachment 82689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352324</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-16 14:03:32 -0800</bug_when>
    <thetext>Still trying to get the added test to pass; if you have any hints about worker tests, let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352370</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-16 14:42:19 -0800</bug_when>
    <thetext>Apparently none of the worker tests are currently able to run, so this should be fully ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352456</commentid>
    <comment_count>4</comment_count>
      <attachid>82689</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2011-02-16 16:47:20 -0800</bug_when>
    <thetext>Comment on attachment 82689
Patch

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

LGTM otherwise.

&gt; LayoutTests/fast/filesystem/resources/file-entry-to-uri-sync.js:11
&gt; +shouldBe(&quot;testFileEntry.toURI()&quot;, &quot;&apos;filesystem:file:///temporary/testFileEntry.txt&apos;&quot;);

Are we forcing all URLs to start with three slashes, then--two for the protocol, and one for &quot;it&apos;s from the root&quot;?  It seems like the third one should be superfluous, as the root is implied.  I realize this is beyond the scope of this CL, but apparently I missed it in the last one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352485</commentid>
    <comment_count>5</comment_count>
      <attachid>82689</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-16 17:21:29 -0800</bug_when>
    <thetext>Comment on attachment 82689
Patch

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

&gt;&gt; LayoutTests/fast/filesystem/resources/file-entry-to-uri-sync.js:11
&gt;&gt; +shouldBe(&quot;testFileEntry.toURI()&quot;, &quot;&apos;filesystem:file:///temporary/testFileEntry.txt&apos;&quot;);
&gt; 
&gt; Are we forcing all URLs to start with three slashes, then--two for the protocol, and one for &quot;it&apos;s from the root&quot;?  It seems like the third one should be superfluous, as the root is implied.  I realize this is beyond the scope of this CL, but apparently I missed it in the last one.

I think the three slashes in a row here are due simply to the way the file: URI scheme works (and how SecurityOrigin::toString deals with it).  The first two slashes are part of the security origin: &quot;file://&quot;. The third slash separates the origin from the filesystem type (&quot;permanent&quot; or &quot;temporary&quot;).  Without this, &quot;normal&quot; http-based filesystme URIs would be unparseable: that last slash keeps these from reading &quot;http://www.google.comtemporary/foo/bar.txt&quot;.

It just so happens that the &quot;host&quot; part of the origin is empty for file: URIs.  Does that make sense? Or am I missing your point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352487</commentid>
    <comment_count>6</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2011-02-16 17:23:29 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 82689 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82689&amp;action=review
&gt; 
&gt; &gt;&gt; LayoutTests/fast/filesystem/resources/file-entry-to-uri-sync.js:11
&gt; &gt;&gt; +shouldBe(&quot;testFileEntry.toURI()&quot;, &quot;&apos;filesystem:file:///temporary/testFileEntry.txt&apos;&quot;);
&gt; &gt; 
&gt; &gt; Are we forcing all URLs to start with three slashes, then--two for the protocol, and one for &quot;it&apos;s from the root&quot;?  It seems like the third one should be superfluous, as the root is implied.  I realize this is beyond the scope of this CL, but apparently I missed it in the last one.
&gt; 
&gt; I think the three slashes in a row here are due simply to the way the file: URI scheme works (and how SecurityOrigin::toString deals with it).  The first two slashes are part of the security origin: &quot;file://&quot;. The third slash separates the origin from the filesystem type (&quot;permanent&quot; or &quot;temporary&quot;).  Without this, &quot;normal&quot; http-based filesystme URIs would be unparseable: that last slash keeps these from reading &quot;http://www.google.comtemporary/foo/bar.txt&quot;.
&gt; 
&gt; It just so happens that the &quot;host&quot; part of the origin is empty for file: URIs.  Does that make sense? Or am I missing your point?

Oh, OK--nevermind then.  Looks like it&apos;s not a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352499</commentid>
    <comment_count>7</comment_count>
      <attachid>82689</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2011-02-16 17:47:12 -0800</bug_when>
    <thetext>Comment on attachment 82689
Patch

lgtm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354751</commentid>
    <comment_count>8</comment_count>
      <attachid>82689</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-21 12:50:01 -0800</bug_when>
    <thetext>Comment on attachment 82689
Patch

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

&gt; Source/WebCore/fileapi/DOMFileSystem.cpp:54
&gt; -    : DOMFileSystemBase(name, asyncFileSystem)
&gt; +    : DOMFileSystemBase(context, name, asyncFileSystem)
&gt;      , ActiveDOMObject(context, this)

It&apos;s too bad we end up with two pointers to the script execution context, but I don&apos;t see a way around it.

&gt; Source/WebCore/fileapi/EntryBase.cpp:59
&gt; +    StringBuilder uriBuilder;

nit: I would have just called this &quot;result&quot; or something.

&gt; Source/WebCore/fileapi/EntryBase.cpp:63
&gt; +    uriBuilder.append(m_fileSystem-&gt;asyncFileSystem()-&gt;type() == AsyncFileSystem::Temporary ? &quot;temporary&quot; : &quot;persistent&quot;);

These should use the constants, but I guess that hasn&apos;t landed yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355368</commentid>
    <comment_count>9</comment_count>
      <attachid>83337</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-22 10:20:10 -0800</bug_when>
    <thetext>Created attachment 83337
Patch for commit queue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355369</commentid>
    <comment_count>10</comment_count>
      <attachid>82689</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-22 10:22:54 -0800</bug_when>
    <thetext>Comment on attachment 82689
Patch

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

&gt;&gt; Source/WebCore/fileapi/DOMFileSystem.cpp:54
&gt;&gt;      , ActiveDOMObject(context, this)
&gt; 
&gt; It&apos;s too bad we end up with two pointers to the script execution context, but I don&apos;t see a way around it.

Yeah, given the way the type hierarchy works, I don&apos;t see a better way. I could just hold onto a ScriptOrigin*, but that strikes me as conceptually worse.

&gt;&gt; Source/WebCore/fileapi/EntryBase.cpp:59
&gt;&gt; +    StringBuilder uriBuilder;
&gt; 
&gt; nit: I would have just called this &quot;result&quot; or something.

Fixed, agreed this name is better. Wish StringBuilder was a bit more like the Java version and allowed me to chain.

&gt;&gt; Source/WebCore/fileapi/EntryBase.cpp:63
&gt;&gt; +    uriBuilder.append(m_fileSystem-&gt;asyncFileSystem()-&gt;type() == AsyncFileSystem::Temporary ? &quot;temporary&quot; : &quot;persistent&quot;);
&gt; 
&gt; These should use the constants, but I guess that hasn&apos;t landed yet

Will use the constants once the other 54774 lands; for now I just want to avoid a merge conflict between the two patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358462</commentid>
    <comment_count>11</comment_count>
      <attachid>83337</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-26 05:14:19 -0800</bug_when>
    <thetext>Comment on attachment 83337
Patch for commit queue

Clearing flags on attachment: 83337

Committed r79778: &lt;http://trac.webkit.org/changeset/79778&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358463</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-26 05:14:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82689</attachid>
            <date>2011-02-16 14:01:39 -0800</date>
            <delta_ts>2011-02-22 10:22:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54585-20110216140137.patch</filename>
            <type>text/plain</type>
            <size>21973</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg3MzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwM2IwYTYxZjdkY2Q5YTE4MWM5ODc0
NWFiNDU2ODJkMjcxNThkNGE1Li4xY2RlNzQ1ZGNhYmViMTA2NGM4NDc5OTg4NmY4MDgyOTI2Mjk3
ZTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDItMTYgIEFkYW0gS2xlaW4gIDxhZGFt
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW2ZpbGVhcGldIEltcGxlbWVudCBFbnRyeVN5bmMudG9VUkkgYnkgbW92aW5nIEVu
dHJ5Ojp0b1VSSSB0byBFbnRyeUJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU0NTg1CisKKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3Vy
Y2VzL2ZpbGUtZW50cnktdG8tdXJpLXN5bmMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmls
ZXN5c3RlbS93b3JrZXJzL2ZpbGUtZW50cnktdG8tdXJpLXN5bmMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vd29ya2Vycy9maWxlLWVudHJ5LXRvLXVyaS1z
eW5jLmh0bWw6IEFkZGVkLgorCiAyMDExLTAyLTE2ICBDYXJvbCBTemFibyAgPGNhcm9sLnN6YWJv
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZmlsZS1lbnRyeS10by11
cmktc3luYy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZmlsZS1l
bnRyeS10by11cmktc3luYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTc2ZGRlYTJhNWNlN2Y3ZDA5ZGFmNmQx
OTkwNzQxMmZjNzY4MGFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3Jlc291cmNlcy9maWxlLWVudHJ5LXRvLXVyaS1zeW5jLmpzCkBAIC0wLDAgKzEsMTUg
QEAKK2ltcG9ydFNjcmlwdHMoJ2ZzLXdvcmtlci1jb21tb24uanMnKTsKKworZGVzY3JpcHRpb24o
Ik9idGFpbmluZyBVUkkgZnJvbSBGaWxlRW50cnkuIik7CisKK3ZhciBmaWxlU3lzdGVtID0gcmVx
dWVzdEZpbGVTeXN0ZW1TeW5jKFRFTVBPUkFSWSwgMTAwKTsKK3JlbW92ZUFsbEluRGlyZWN0b3J5
U3luYyhmaWxlU3lzdGVtLnJvb3QpOworCit2YXIgdGVzdEZpbGVOYW1lID0gJ3Rlc3RGaWxlRW50
cnkudHh0JzsKK3ZhciB0ZXN0RmlsZUVudHJ5ID0gZmlsZVN5c3RlbS5yb290LmdldEZpbGUodGVz
dEZpbGVOYW1lLCB7Y3JlYXRlOnRydWV9KTsKKworc2hvdWxkQmUoInRlc3RGaWxlRW50cnkudG9V
UkkoKSIsICInZmlsZXN5c3RlbTpmaWxlOi8vL3RlbXBvcmFyeS90ZXN0RmlsZUVudHJ5LnR4dCci
KTsKKworcmVtb3ZlQWxsSW5EaXJlY3RvcnlTeW5jKGZpbGVTeXN0ZW0ucm9vdCk7CitmaW5pc2hK
U1Rlc3QoKTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3dvcmtlcnMvZmlsZS1lbnRyeS10by11cmktc3luYy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vd29ya2Vycy9maWxlLWVu
dHJ5LXRvLXVyaS1zeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODg2ZmQ1MjdiNDE0Y2Uy
NTQwZjgwNzhmOGM5NDZhMTI4YTdhOGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9maWxlc3lzdGVtL3dvcmtlcnMvZmlsZS1lbnRyeS10by11cmktc3luYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorT2J0YWluaW5nIFVSSSBmcm9tIEZpbGVFbnRyeS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdEZpbGVVUkkgaXMgJ2ZpbGVzeXN0
ZW06ZmlsZTovLy90ZW1wb3JhcnkvdGVzdEZpbGVFbnRyeS50eHQnCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9maWxlc3lzdGVtL3dvcmtlcnMvZmlsZS1lbnRyeS10by11cmktc3luYy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3dvcmtlcnMvZmlsZS1lbnRyeS10by11cmktc3lu
Yy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ0NjExMTliMmQ4M2YyNDYwZWJkNjVlZjJhNDUxMzRhYzliNDE5
YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vd29ya2Vy
cy9maWxlLWVudHJ5LXRvLXVyaS1zeW5jLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9mcy13b3JrZXIt
dGVzdC11dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitzdGFydFdvcmtl
cignLi4vcmVzb3VyY2VzL2ZpbGUtZW50cnktdG8tdXJpLXN5bmMuanMnKTsKK3dpbmRvdy5zdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNzZlYjA0ZTgyZjBkYzc4YmIwYjZlZmIyZTRhNzM0OWVkNWMyYTRhZC4uMGE1
YzFlMGE1ZmE5MDE0Mzg4MjM2MTE2NTkyZmQwMTViZDdmMjUwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM5IEBACisyMDExLTAyLTE2ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtmaWxlYXBp
XSBJbXBsZW1lbnQgRW50cnlTeW5jLnRvVVJJIGJ5IG1vdmluZyBFbnRyeTo6dG9VUkkgdG8gRW50
cnlCYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NDU4NQorCisgICAgICAgIEluIG9yZGVyIHRvIG1vdmUgdG9VUkkgdG8gRW50cnlCYXNlLCBpdCBu
ZWVkZWQgYWNjZXNzIHRvCisgICAgICAgIFNlY3VyaXR5T3JpZ2luLiBNb3N0IG9mIHRoZSBjaGFu
Z2VzIGJlbG93IHdlcmUgdG8gcGFzcyBhCisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
dG8gRE9NRmlsZVN5c3RlbUJhc2UgdG8gZW5hYmxlIHRoaXMuCisKKyAgICAgICAgVGVzdDogZmFz
dC9maWxlc3lzdGVtL3dvcmtlcnMvZmlsZS1lbnRyeS10by11cmktc3luYy5odG1sCisKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGZpbGVhcGkvRE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01GaWxlU3lzdGVtOjpET01GaWxlU3lzdGVtKToKKyAgICAgICAgKiBmaWxlYXBp
L0RPTUZpbGVTeXN0ZW1CYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW1C
YXNlOjpET01GaWxlU3lzdGVtQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVt
QmFzZTo6c2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAqIGZpbGVhcGkvRE9NRmlsZVN5c3RlbUJh
c2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW1CYXNlOjpjcmVhdGUpOgorICAg
ICAgICAqIGZpbGVhcGkvRE9NRmlsZVN5c3RlbVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NRmlsZVN5c3RlbVN5bmM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lz
dGVtU3luYzo6RE9NRmlsZVN5c3RlbVN5bmMpOgorICAgICAgICAqIGZpbGVhcGkvRE9NRmlsZVN5
c3RlbVN5bmMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW1TeW5jOjpjcmVhdGUp
OgorICAgICAgICAqIGZpbGVhcGkvRW50cnkuY3BwOgorICAgICAgICAqIGZpbGVhcGkvRW50cnku
aDoKKyAgICAgICAgKiBmaWxlYXBpL0VudHJ5QmFzZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6RW50cnlCYXNlOjpFbnRyeUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RW50cnlCYXNl
Ojp+RW50cnlCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkVudHJ5QmFzZTo6dG9VUkkpOgorICAg
ICAgICAqIGZpbGVhcGkvRW50cnlCYXNlLmg6CisgICAgICAgICogZmlsZWFwaS9FbnRyeVN5bmMu
aWRsOgorCiAyMDExLTAyLTE2ICBDYXJvbCBTemFibyAgPGNhcm9sLnN6YWJvQG5va2lhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3
NmFiYzA4YmNhODRhYWYwNmE2MzY3M2EzMmJmYzVkODhkZGJhOWY4Li41ZTIxYzFmZjc5MzMxZmU0
OWQxYjllNzAwZjZhY2MxZTc0Mzc3NjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNTQxLDEzICsx
NTQxLDEzIEBACiAgICAgICAgICAgICAnZmlsZWFwaS9FbnRyaWVzQ2FsbGJhY2suaCcsCiAgICAg
ICAgICAgICAnZmlsZWFwaS9FbnRyeS5jcHAnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvRW50cnku
aCcsCisgICAgICAgICAgICAnZmlsZWFwaS9FbnRyeUJhc2UuY3BwJywKICAgICAgICAgICAgICdm
aWxlYXBpL0VudHJ5QmFzZS5oJywKICAgICAgICAgICAgICdmaWxlYXBpL0VudHJ5QXJyYXkuY3Bw
JywKICAgICAgICAgICAgICdmaWxlYXBpL0VudHJ5QXJyYXkuaCcsCiAgICAgICAgICAgICAnZmls
ZWFwaS9FbnRyeUFycmF5U3luYy5jcHAnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvRW50cnlBcnJh
eVN5bmMuaCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9FbnRyeUNhbGxiYWNrLmgnLAotICAgICAg
ICAgICAgJ2ZpbGVhcGkvRW50cnlCYXNlLmgnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvRW50cnlT
eW5jLmNwcCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9FbnRyeVN5bmMuaCcsCiAgICAgICAgICAg
ICAnZmlsZWFwaS9FcnJvckNhbGxiYWNrLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVkNmUzMDY1MGJkZmI5NDJkZjkzZjBj
ZTNjMjk5MDM2MzhmMGQwNDYuLjJlN2U3ODI5N2IxNmE0MTdhMWQ2NDNhYzk0M2YwZWYxYjY2YmMx
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTUzNzQsNiArNTM3NCw3IEBACiAJCUM1RUJERDg0MTA1RURERUMwMDU2ODE2RiAv
KiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNUVCREQ4MTEwNUVEREVDMDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50
RGlzcGF0Y2hlci5oICovOyB9OwogCQlDNkQ3NEFENTA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5
U2VsZWN0aW9uTGlzdExldmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlz
dExldmVsLmggKi87IH07CiAJCUM2RDc0QUU0MDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxl
Y3Rpb25MaXN0TGV2ZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzZENzRBRTMwOUFBMjkwQTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RM
ZXZlbC5jcHAgKi87IH07CisJCUM2RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEw
NDYxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBE
OTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Ny
b2xsQW5pbWF0b3IuY3BwICovOyB9OwogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Ny
b2xsQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyB9Owog
CQlDREVBN0M4NDEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNjcmVlbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RFQTdDODIxMjc2MjMwNDAw
Qjg0NkREIC8qIFJlbmRlckZ1bGxTY3JlZW4uaCAqLzsgfTsKQEAgLTExNzE3LDYgKzExNzE4LDcg
QEAKIAkJQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZUV2ZW50RGlzcGF0Y2hl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFEMzA5QUEyODJFMDAwQjBB
NTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlz
dExldmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGlmeVNl
bGVjdGlvbkxpc3RMZXZlbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM2RjQx
MDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRW50cnlCYXNlLmNwcDsgcGF0aCA9IGZpbGVhcGkvRW50cnlCYXNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZD
RTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNENEUwQUZBMTFGN0JDMjcwMDlEMzgxMSAvKiBmdWxsc2NyZWVuLmNzcyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gZnVsbHNjcmVlbi5jc3M7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNTgzNiw2ICsxNTgzOCw3IEBACiAJCQkJODk4Nzg1NDUxMjJDQTA2
NDAwM0FBQkRBIC8qIEVudHJ5QXJyYXkuaCAqLywKIAkJCQk4OTNDNDdGODEyNDhCRDM5MDAyQjNE
ODYgLyogRW50cnlBcnJheVN5bmMuY3BwICovLAogCQkJCTg5M0M0N0Y5MTI0OEJEMzkwMDJCM0Q4
NiAvKiBFbnRyeUFycmF5U3luYy5oICovLAorCQkJCUM2RjQxMDQ2MTMwQzZFODkwMDM5M0RFNCAv
KiBFbnRyeUJhc2UuY3BwICovLAogCQkJCTg5M0M0N0ZCMTI0OEJEMzkwMDJCM0Q4NiAvKiBFbnRy
eUJhc2UuaCAqLywKIAkJCQk4OTg3ODU0NjEyMkNBMDY0MDAzQUFCREEgLyogRW50cnlDYWxsYmFj
ay5oICovLAogCQkJCTg5M0M0N0ZDMTI0OEJEMzkwMDJCM0Q4NiAvKiBFbnRyeVN5bmMuY3BwICov
LApAQCAtMjMzMjYsNiArMjMzMjksNyBAQAogCQkJCTg5ODc4NTVCMTIyQ0EwNjQwMDNBQUJEQSAv
KiBFbnRyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODU1RDEyMkNBMDY0MDAzQUFCREEg
LyogRW50cnlBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTNDNDgwODEyNDhCRDNBMDAy
QjNEODYgLyogRW50cnlBcnJheVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzZGNDEwNDcx
MzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTND
NDgwQzEyNDhCRDNBMDAyQjNEODYgLyogRW50cnlTeW5jLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZEMzE2MDkyMTJCMDI2RjcwMEMxQTM1OSAvKiBFcXVhbFBvd2VyUGFubmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFQ0Y3QUUxMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxl
U3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3RlbS5jcHAKaW5k
ZXggZjRlYmU3Yzk0YjkxODk3NjIwNzIyMTQ5MzQxZDUwZDcwZjFmYmQxMy4uYzE3MTBjZDdmODdm
MjczNjk0MTVlZDVlNDNmZmQ4ZTFjZGE5YjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9ET01GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RP
TUZpbGVTeXN0ZW0uY3BwCkBAIC01MCw3ICs1MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IERPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5
bmNGaWxlU3lzdGVtKQotICAgIDogRE9NRmlsZVN5c3RlbUJhc2UobmFtZSwgYXN5bmNGaWxlU3lz
dGVtKQorICAgIDogRE9NRmlsZVN5c3RlbUJhc2UoY29udGV4dCwgbmFtZSwgYXN5bmNGaWxlU3lz
dGVtKQogICAgICwgQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCiB7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3RlbUJhc2UuY3BwCmluZGV4IGM0NjJjM2NlMDgz
YWVlYTIxYmUyZmFmZDhkZmNkMmM5ZWM2ZWQ0ZGEuLjUyMzM0ZDdkODUzNmU2MmMwNDNiYjYyZTk2
OThiNTY5NjQ3NGIzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmls
ZVN5c3RlbUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3Rl
bUJhc2UuY3BwCkBAIC00NCwxMyArNDQsMTUgQEAKICNpbmNsdWRlICJGaWxlRXJyb3IuaCIKICNp
bmNsdWRlICJGaWxlU3lzdGVtQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiTWV0YWRhdGFDYWxsYmFj
ay5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJWb2lk
Q2FsbGJhY2suaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotRE9NRmlsZVN5c3RlbUJhc2U6OkRPTUZpbGVTeXN0ZW1CYXNlKGNvbnN0IFN0cmluZyYg
bmFtZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKLSAgICA6
IG1fbmFtZShuYW1lKQorRE9NRmlsZVN5c3RlbUJhc2U6OkRPTUZpbGVTeXN0ZW1CYXNlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKKyAgICA6IG1fY29udGV4dChjb250
ZXh0KQorICAgICwgbV9uYW1lKG5hbWUpCiAgICAgLCBtX2FzeW5jRmlsZVN5c3RlbShhc3luY0Zp
bGVTeXN0ZW0pCiB7CiB9CkBAIC01OSw2ICs2MSwxMSBAQCBET01GaWxlU3lzdGVtQmFzZTo6fkRP
TUZpbGVTeXN0ZW1CYXNlKCkKIHsKIH0KIAorU2VjdXJpdHlPcmlnaW4qIERPTUZpbGVTeXN0ZW1C
YXNlOjpzZWN1cml0eU9yaWdpbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+c2Vj
dXJpdHlPcmlnaW4oKTsKK30KKwogYm9vbCBET01GaWxlU3lzdGVtQmFzZTo6Z2V0TWV0YWRhdGEo
Y29uc3QgRW50cnlCYXNlKiBlbnRyeSwgUGFzc1JlZlB0cjxNZXRhZGF0YUNhbGxiYWNrPiBzdWNj
ZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaykKIHsK
ICAgICBTdHJpbmcgcGxhdGZvcm1QYXRoID0gbV9hc3luY0ZpbGVTeXN0ZW0tPnZpcnR1YWxUb1Bs
YXRmb3JtUGF0aChlbnRyeS0+ZnVsbFBhdGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RP
TUZpbGVTeXN0ZW1CYXNlLmgKaW5kZXggNjZmMTMzMWEyMmMwNTVhZGNmMmYyYTY4ZGIwZWEzMDBk
ZmNhNGRmMy4uOWE4Y2YyZWVkMmM4YzEzNzUyZjhlY2YxMzdhYjQ2MDBiNmVhNWFiYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtQmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3RlbUJhc2UuaApAQCAtNDgsMTkgKzQ4LDIy
IEBAIGNsYXNzIEVudHJ5QmFzZTsKIGNsYXNzIEVudHJ5Q2FsbGJhY2s7CiBjbGFzcyBFcnJvckNh
bGxiYWNrOwogY2xhc3MgTWV0YWRhdGFDYWxsYmFjazsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFZvaWRDYWxsYmFjazsKIAogLy8g
QSBjb21tb24gYmFzZSBjbGFzcyBmb3IgRE9NRmlsZVN5c3RlbSBhbmQgRE9NRmlsZVN5c3RlbVN5
bmMuCiBjbGFzcyBET01GaWxlU3lzdGVtQmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUZpbGVT
eXN0ZW1CYXNlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmlsZVN5c3Rl
bUJhc2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lz
dGVtPiBhc3luY0ZpbGVTeXN0ZW0pCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmlsZVN5c3Rl
bUJhc2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0ZW1CYXNlKG5hbWUs
IGFzeW5jRmlsZVN5c3RlbSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVT
eXN0ZW1CYXNlKGNvbnRleHQsIG5hbWUsIGFzeW5jRmlsZVN5c3RlbSkpOwogICAgIH0KICAgICB2
aXJ0dWFsIH5ET01GaWxlU3lzdGVtQmFzZSgpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgQXN5bmNGaWxlU3lzdGVtKiBhc3luY0ZpbGVT
eXN0ZW0oKSBjb25zdCB7IHJldHVybiBtX2FzeW5jRmlsZVN5c3RlbS5nZXQoKTsgfQorICAgIFNl
Y3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OwogCiAgICAgLy8gQWN0dWFsIEZp
bGVTeXN0ZW0gQVBJIGltcGxlbWVudGF0aW9ucy4gIEFsbCB0aGUgdmFsaWRpdHkgY2hlY2tzIG9u
IHZpcnR1YWwgcGF0aHMgYXJlIGRvbmUgYXQgdGhpcyBsZXZlbC4KICAgICAvLyBUaGV5IHJldHVy
biBmYWxzZSBmb3IgaW1tZWRpYXRlIGVycm9ycyB0aGF0IGRvbid0IGludm9sdmUgbG93ZXIgQXN5
bmNGaWxlU3lzdGVtIGxheWVyIChlLmcuIGZvciBuYW1lIHZhbGlkYXRpb24gZXJyb3JzKS4gIE90
aGVyd2lzZSB0aGV5IHJldHVybiB0cnVlIChidXQgbGF0ZXIgbWF5IGNhbGwgYmFjayB3aXRoIGFu
IHJ1bnRpbWUgZXJyb3IpLgpAQCAtNzUsOSArNzgsMTAgQEAgcHVibGljOgogICAgIGJvb2wgcmVh
ZERpcmVjdG9yeShQYXNzUmVmUHRyPERpcmVjdG9yeVJlYWRlckJhc2U+LCBjb25zdCBTdHJpbmcm
IHBhdGgsIFBhc3NSZWZQdHI8RW50cmllc0NhbGxiYWNrPiwgUGFzc1JlZlB0cjxFcnJvckNhbGxi
YWNrPik7CiAKIHByb3RlY3RlZDoKLSAgICBET01GaWxlU3lzdGVtQmFzZShjb25zdCBTdHJpbmcm
IG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CisgICAgRE9NRmlsZVN5c3RlbUJh
c2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0
cjxBc3luY0ZpbGVTeXN0ZW0+KTsKICAgICBmcmllbmQgY2xhc3MgRE9NRmlsZVN5c3RlbVN5bmM7
CiAKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CiAgICAgU3RyaW5nIG1f
bmFtZTsKICAgICBtdXRhYmxlIE93blB0cjxBc3luY0ZpbGVTeXN0ZW0+IG1fYXN5bmNGaWxlU3lz
dGVtOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3Rl
bVN5bmMuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtU3luYy5jcHAK
aW5kZXggZGNiYzljNzk4ZWVjYzQ0NTlkOTlhZjI1YzQ3ZTk0N2ZiZGU5NjU2Yy4uNWFlNzU0NTg3
ZjdiMDFiM2IxYWFkZDJjZWQ1MTcwZTY4NjRlM2QwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtU3luYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9ET01GaWxlU3lzdGVtU3luYy5jcHAKQEAgLTUwLDExICs1MCwxMSBAQCBjbGFzcyBGaWxl
V3JpdGVyQmFzZTsKIAogUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtU3luYz4gRE9NRmlsZVN5c3Rl
bVN5bmM6OmNyZWF0ZShET01GaWxlU3lzdGVtQmFzZSogZmlsZVN5c3RlbSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0ZW1TeW5jKGZpbGVTeXN0ZW0tPm1fbmFtZSwgZmls
ZVN5c3RlbS0+bV9hc3luY0ZpbGVTeXN0ZW0ucmVsZWFzZSgpKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBET01GaWxlU3lzdGVtU3luYyhmaWxlU3lzdGVtLT5tX2NvbnRleHQsIGZpbGVTeXN0
ZW0tPm1fbmFtZSwgZmlsZVN5c3RlbS0+bV9hc3luY0ZpbGVTeXN0ZW0ucmVsZWFzZSgpKSk7CiB9
CiAKLURPTUZpbGVTeXN0ZW1TeW5jOjpET01GaWxlU3lzdGVtU3luYyhjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCi0gICAgOiBE
T01GaWxlU3lzdGVtQmFzZShuYW1lLCBhc3luY0ZpbGVTeXN0ZW0pCitET01GaWxlU3lzdGVtU3lu
Yzo6RE9NRmlsZVN5c3RlbVN5bmMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5bmNGaWxlU3lz
dGVtKQorICAgIDogRE9NRmlsZVN5c3RlbUJhc2UoY29udGV4dCwgbmFtZSwgYXN5bmNGaWxlU3lz
dGVtKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVT
eXN0ZW1TeW5jLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW1TeW5jLmgK
aW5kZXggY2UwN2M4NTg2NzgwODJlMzYwNWYxYmViNTM2ODRmMmVhZmEyM2ZkNS4uMDEyMGZiMDU4
YjQ1MTVhZmJjNjU2NjM3MGE2YmJkMDAzNjZiZGE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtU3luYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRE9NRmlsZVN5c3RlbVN5bmMuaApAQCAtNDYsOSArNDYsOSBAQCB0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOwogCiBjbGFzcyBET01GaWxlU3lzdGVtU3luYyA6IHB1YmxpYyBET01GaWxlU3lz
dGVtQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmlsZVN5c3RlbVN5
bmM+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVt
PiBhc3luY0ZpbGVTeXN0ZW0pCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmlsZVN5c3RlbVN5
bmM+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0ZW1TeW5jKG5hbWUsIGFz
eW5jRmlsZVN5c3RlbSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0
ZW1TeW5jKGNvbnRleHQsIG5hbWUsIGFzeW5jRmlsZVN5c3RlbSkpOwogICAgIH0KIAogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERPTUZpbGVTeXN0ZW1TeW5jPiBjcmVhdGUoRE9NRmlsZVN5c3RlbUJh
c2UqKTsKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8RmlsZVdyaXRl
clN5bmM+IGNyZWF0ZVdyaXRlcihjb25zdCBGaWxlRW50cnlTeW5jKiwgRXhjZXB0aW9uQ29kZSYp
OwogCiBwcml2YXRlOgotICAgIERPTUZpbGVTeXN0ZW1TeW5jKGNvbnN0IFN0cmluZyYgbmFtZSwg
UGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+KTsKKyAgICBET01GaWxlU3lzdGVtU3luYyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5j
RmlsZVN5c3RlbT4pOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9FbnRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5LmNwcAppbmRleCA1M2Nk
NTc2YTFjNzcxNzA3ZDg0YjdlOGU3YmYwOTkzZjFmZTU5ZTExLi44YjBmNmFjMWRhNTNiOWVhMmQz
Yzg5ZTcyNjI0NDE3ZTc5OWM5MzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0VudHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5LmNwcApAQCAtODYs
MTcgKzg2LDYgQEAgdm9pZCBFbnRyeTo6Z2V0UGFyZW50KFBhc3NSZWZQdHI8RW50cnlDYWxsYmFj
az4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPEVycm8KICAgICAgICAgZmlsZXN5c3RlbSgp
LT5zY2hlZHVsZUNhbGxiYWNrKGVycm9yQ2FsbGJhY2sucmVsZWFzZSgpLCBGaWxlRXJyb3I6OmNy
ZWF0ZShGaWxlRXJyb3I6OklOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUikpOwogfQogCi1TdHJpbmcg
RW50cnk6OnRvVVJJKCkKLXsKLSAgICBTdHJpbmdCdWlsZGVyIHVyaUJ1aWxkZXI7Ci0gICAgdXJp
QnVpbGRlci5hcHBlbmQoImZpbGVzeXN0ZW06Iik7Ci0gICAgdXJpQnVpbGRlci5hcHBlbmQoZmls
ZXN5c3RlbSgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRv
U3RyaW5nKCkpOwotICAgIHVyaUJ1aWxkZXIuYXBwZW5kKCIvIik7Ci0gICAgdXJpQnVpbGRlci5h
cHBlbmQobV9maWxlU3lzdGVtLT5hc3luY0ZpbGVTeXN0ZW0oKS0+dHlwZSgpID09IEFzeW5jRmls
ZVN5c3RlbTo6VGVtcG9yYXJ5ID8gInRlbXBvcmFyeSIgOiAicGVyc2lzdGVudCIpOwotICAgIHVy
aUJ1aWxkZXIuYXBwZW5kKG1fZnVsbFBhdGgpOwotICAgIHJldHVybiB1cmlCdWlsZGVyLnRvU3Ry
aW5nKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShG
SUxFX1NZU1RFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnkuaCBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnkuaAppbmRleCBkODcxMjYyNDBlNTkxYmEyZDJl
YmUzMTc4MWU4Njk5Njc3NjI0NjA2Li4wOWNjOTY0ZWJlYTdiMmQ0ZGE0ODVmMDNhZGM3NzRjOTc5
NWI5MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9FbnRyeS5oCkBAIC01Nyw4ICs1Nyw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlbW92ZShQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
ID0gMCwgUGFzc1JlZlB0cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrID0gMCkgY29uc3Q7
CiAgICAgdm9pZCBnZXRQYXJlbnQoUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiBzdWNjZXNzQ2Fs
bGJhY2sgPSAwLCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2sgPSAwKSBj
b25zdDsKIAotICAgIFN0cmluZyB0b1VSSSgpOwotCiBwcm90ZWN0ZWQ6CiAgICAgRW50cnkoUGFz
c1JlZlB0cjxET01GaWxlU3lzdGVtQmFzZT4sIGNvbnN0IFN0cmluZyYgZnVsbFBhdGgpOwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnlCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnlCYXNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmU2MWI3M2M3OTIx
ZjUzNThhYzI2Y2Y2OWRkZTNkMWJjMDk0M2QyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9FbnRyeUJhc2UuY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRW50cnlCYXNlLmgiCisKKyNpZiBFTkFCTEUoRklMRV9TWVNURU0p
CisKKyNpbmNsdWRlICJBc3luY0ZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJET01GaWxlUGF0aC5o
IgorI2luY2x1ZGUgIkRPTUZpbGVTeXN0ZW1CYXNlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0VudHJ5QmFzZTo6RW50cnlCYXNlKFBhc3NSZWZQdHI8RE9NRmlsZVN5c3Rl
bUJhc2U+IGZpbGVTeXN0ZW0sIGNvbnN0IFN0cmluZyYgZnVsbFBhdGgpCisgICAgOiBtX2ZpbGVT
eXN0ZW0oZmlsZVN5c3RlbSkKKyAgICAsIG1fZnVsbFBhdGgoZnVsbFBhdGgpCisgICAgLCBtX25h
bWUoRE9NRmlsZVBhdGg6OmdldE5hbWUoZnVsbFBhdGgpKQoreworfQorCitFbnRyeUJhc2U6On5F
bnRyeUJhc2UoKQoreworfQorCitTdHJpbmcgRW50cnlCYXNlOjp0b1VSSSgpCit7CisgICAgU3Ry
aW5nQnVpbGRlciB1cmlCdWlsZGVyOworICAgIHVyaUJ1aWxkZXIuYXBwZW5kKCJmaWxlc3lzdGVt
OiIpOworICAgIHVyaUJ1aWxkZXIuYXBwZW5kKG1fZmlsZVN5c3RlbS0+c2VjdXJpdHlPcmlnaW4o
KS0+dG9TdHJpbmcoKSk7CisgICAgdXJpQnVpbGRlci5hcHBlbmQoIi8iKTsKKyAgICB1cmlCdWls
ZGVyLmFwcGVuZChtX2ZpbGVTeXN0ZW0tPmFzeW5jRmlsZVN5c3RlbSgpLT50eXBlKCkgPT0gQXN5
bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkgPyAidGVtcG9yYXJ5IiA6ICJwZXJzaXN0ZW50Iik7Cisg
ICAgdXJpQnVpbGRlci5hcHBlbmQobV9mdWxsUGF0aCk7CisgICAgcmV0dXJuIHVyaUJ1aWxkZXIu
dG9TdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9FbnRy
eUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnlCYXNlLmgKaW5kZXggMTZmOTNi
YTA3NDE2NjkwZGY0ZDVjNjI2NGYxZGY1ZDBkNjIxOWFiMC4uYmFiZDI5NTZhY2ZjOTE3ZGQxYWMw
YjI1NDMyYjYyNGMxMzIyYTg5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9F
bnRyeUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5QmFzZS5oCkBAIC0z
Myw3ICszMyw2IEBACiAKICNpZiBFTkFCTEUoRklMRV9TWVNURU0pCiAKLSNpbmNsdWRlICJET01G
aWxlUGF0aC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDYsNyArNDUsNyBA
QCBjbGFzcyBFbnRyeVN5bmM7CiAvLyBBIGNvbW1vbiBiYXNlIGNsYXNzIGZvciBFbnRyeSBhbmQg
RW50cnlTeW5jLgogY2xhc3MgRW50cnlCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8RW50cnlCYXNl
PiB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB+RW50cnlCYXNlKCkgeyB9CisgICAgdmlydHVhbCB+
RW50cnlCYXNlKCk7CiAKICAgICBET01GaWxlU3lzdGVtQmFzZSogZmlsZXN5c3RlbSgpIGNvbnN0
IHsgcmV0dXJuIG1fZmlsZVN5c3RlbS5nZXQoKTsgfQogCkBAIC01NiwxNCArNTUsMTAgQEAgcHVi
bGljOgogICAgIGNvbnN0IFN0cmluZyYgZnVsbFBhdGgoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxQ
YXRoOyB9CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9
CiAKLXByb3RlY3RlZDoKLSAgICBFbnRyeUJhc2UoUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtQmFz
ZT4gZmlsZVN5c3RlbSwgY29uc3QgU3RyaW5nJiBmdWxsUGF0aCkKLSAgICAgICAgOiBtX2ZpbGVT
eXN0ZW0oZmlsZVN5c3RlbSkKLSAgICAgICAgLCBtX2Z1bGxQYXRoKGZ1bGxQYXRoKQotICAgICAg
ICAsIG1fbmFtZShET01GaWxlUGF0aDo6Z2V0TmFtZShmdWxsUGF0aCkpCi0gICAgewotICAgIH0K
KyAgICBTdHJpbmcgdG9VUkkoKTsKIAorcHJvdGVjdGVkOgorICAgIEVudHJ5QmFzZShQYXNzUmVm
UHRyPERPTUZpbGVTeXN0ZW1CYXNlPiwgY29uc3QgU3RyaW5nJiBmdWxsUGF0aCk7CiAgICAgZnJp
ZW5kIGNsYXNzIEVudHJ5U3luYzsKIAogICAgIFJlZlB0cjxET01GaWxlU3lzdGVtQmFzZT4gbV9m
aWxlU3lzdGVtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9FbnRyeVN5bmMu
aWRsIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9FbnRyeVN5bmMuaWRsCmluZGV4IGZiN2VlM2Mz
OGM5NTQ5NDg4MzgzMTk5ZTc2NTNhNTkyZmZmNzNmNTUuLjBhMTgwZTgxZmUzMDEyM2U4ZjI0MmMy
MGM2MGZkMzY1OWY4YTIxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50
cnlTeW5jLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5U3luYy5pZGwKQEAg
LTQzLDYgKzQzLDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBNZXRhZGF0YSBnZXRNZXRh
ZGF0YSgpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CiAgICAgICAgIEVudHJ5U3luYyBtb3ZlVG8o
aW4gRGlyZWN0b3J5RW50cnlTeW5jIHBhcmVudCwgaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwogICAg
ICAgICBFbnRyeVN5bmMgY29weVRvKGluIERpcmVjdG9yeUVudHJ5U3luYyBwYXJlbnQsIGluIFtD
b252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZSkgcmFpc2Vz
IChGaWxlRXhjZXB0aW9uKTsKKyAgICAgICAgRE9NU3RyaW5nIHRvVVJJKCk7CiAgICAgICAgIHZv
aWQgcmVtb3ZlKCkgcmFpc2VzIChGaWxlRXhjZXB0aW9uKTsKICAgICAgICAgRGlyZWN0b3J5RW50
cnlTeW5jIGdldFBhcmVudCgpOwogICAgIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83337</attachid>
            <date>2011-02-22 10:20:10 -0800</date>
            <delta_ts>2011-02-26 05:14:19 -0800</delta_ts>
            <desc>Patch for commit queue</desc>
            <filename>bug-54585-20110222102009.patch</filename>
            <type>text/plain</type>
            <size>21980</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg3MzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYWI1MDJlZTFjMWMwNmUxYTgxMDA2
OGMwMGIxMmI4MjBhOWI5ODUzLi4xYzVjNWU3NDc2YmE3MjA4OTE1ZmMxMzU2NDljZWM1MGNjMjFl
MjM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDItMTYgIEFkYW0gS2xlaW4gIDxhZGFt
a0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW2ZpbGVhcGldIEltcGxlbWVudCBFbnRyeVN5bmMudG9VUkkgYnkgbW92aW5nIEVu
dHJ5Ojp0b1VSSSB0byBFbnRyeUJhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU0NTg1CisKKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vcmVzb3Vy
Y2VzL2ZpbGUtZW50cnktdG8tdXJpLXN5bmMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmls
ZXN5c3RlbS93b3JrZXJzL2ZpbGUtZW50cnktdG8tdXJpLXN5bmMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ZpbGVzeXN0ZW0vd29ya2Vycy9maWxlLWVudHJ5LXRvLXVyaS1z
eW5jLmh0bWw6IEFkZGVkLgorCiAyMDExLTAyLTE3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBDb250aW51ZSBpbXBvcnRpbmcgR1RLKyByZXN1bHRz
IGZvciB0aGUgTW96aWxsYSB0YWJsZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZmlsZS1lbnRyeS10by11cmktc3luYy5qcyBiL0xheW91
dFRlc3RzL2Zhc3QvZmlsZXN5c3RlbS9yZXNvdXJjZXMvZmlsZS1lbnRyeS10by11cmktc3luYy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42OTc2ZGRlYTJhNWNlN2Y3ZDA5ZGFmNmQxOTkwNzQxMmZjNzY4MGFkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3Jlc291cmNlcy9m
aWxlLWVudHJ5LXRvLXVyaS1zeW5jLmpzCkBAIC0wLDAgKzEsMTUgQEAKK2ltcG9ydFNjcmlwdHMo
J2ZzLXdvcmtlci1jb21tb24uanMnKTsKKworZGVzY3JpcHRpb24oIk9idGFpbmluZyBVUkkgZnJv
bSBGaWxlRW50cnkuIik7CisKK3ZhciBmaWxlU3lzdGVtID0gcmVxdWVzdEZpbGVTeXN0ZW1TeW5j
KFRFTVBPUkFSWSwgMTAwKTsKK3JlbW92ZUFsbEluRGlyZWN0b3J5U3luYyhmaWxlU3lzdGVtLnJv
b3QpOworCit2YXIgdGVzdEZpbGVOYW1lID0gJ3Rlc3RGaWxlRW50cnkudHh0JzsKK3ZhciB0ZXN0
RmlsZUVudHJ5ID0gZmlsZVN5c3RlbS5yb290LmdldEZpbGUodGVzdEZpbGVOYW1lLCB7Y3JlYXRl
OnRydWV9KTsKKworc2hvdWxkQmUoInRlc3RGaWxlRW50cnkudG9VUkkoKSIsICInZmlsZXN5c3Rl
bTpmaWxlOi8vL3RlbXBvcmFyeS90ZXN0RmlsZUVudHJ5LnR4dCciKTsKKworcmVtb3ZlQWxsSW5E
aXJlY3RvcnlTeW5jKGZpbGVTeXN0ZW0ucm9vdCk7CitmaW5pc2hKU1Rlc3QoKTsKK3ZhciBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxl
c3lzdGVtL3dvcmtlcnMvZmlsZS1lbnRyeS10by11cmktc3luYy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vd29ya2Vycy9maWxlLWVudHJ5LXRvLXVyaS1zeW5jLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODg2ZmQ1MjdiNDE0Y2UyNTQwZjgwNzhmOGM5NDZhMTI4
YTdhOGU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVtL3dv
cmtlcnMvZmlsZS1lbnRyeS10by11cmktc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorT2J0YWluaW5nIFVSSSBmcm9tIEZpbGVFbnRyeS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1MgdGVzdEZpbGVVUkkgaXMgJ2ZpbGVzeXN0ZW06ZmlsZTovLy90ZW1wb3Jh
cnkvdGVzdEZpbGVFbnRyeS50eHQnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9maWxlc3lzdGVt
L3dvcmtlcnMvZmlsZS1lbnRyeS10by11cmktc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
aWxlc3lzdGVtL3dvcmtlcnMvZmlsZS1lbnRyeS10by11cmktc3luYy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ0NjExMTliMmQ4M2YyNDYwZWJkNjVlZjJhNDUxMzRhYzliNDE5YTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzeXN0ZW0vd29ya2Vycy9maWxlLWVudHJ5LXRvLXVy
aS1zeW5jLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9mcy13b3JrZXItdGVzdC11dGlsLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitzdGFydFdvcmtlcignLi4vcmVzb3VyY2VzL2Zp
bGUtZW50cnktdG8tdXJpLXN5bmMuanMnKTsKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWFkNGJl
NjBhZWM4OTM2MWI0NmNlNDhkYjRlODZiMDg0YTY0MTM5Zi4uZTQ0OWE0MTM0NjI2MTFkMGRkZmY4
MzVlMjJhNmZlZWNiNzZiM2Q3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTAy
LTE2ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtmaWxlYXBpXSBJbXBsZW1lbnQgRW50cnlT
eW5jLnRvVVJJIGJ5IG1vdmluZyBFbnRyeTo6dG9VUkkgdG8gRW50cnlCYXNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU4NQorCisgICAgICAgIElu
IG9yZGVyIHRvIG1vdmUgdG9VUkkgdG8gRW50cnlCYXNlLCBpdCBuZWVkZWQgYWNjZXNzIHRvCisg
ICAgICAgIFNlY3VyaXR5T3JpZ2luLiBNb3N0IG9mIHRoZSBjaGFuZ2VzIGJlbG93IHdlcmUgdG8g
cGFzcyBhCisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgdG8gRE9NRmlsZVN5c3RlbUJh
c2UgdG8gZW5hYmxlIHRoaXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9maWxlc3lzdGVtL3dvcmtl
cnMvZmlsZS1lbnRyeS10by11cmktc3luYy5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGZpbGVhcGkvRE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lz
dGVtOjpET01GaWxlU3lzdGVtKToKKyAgICAgICAgKiBmaWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW1CYXNlOjpET01GaWxlU3lzdGVt
QmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtQmFzZTo6c2VjdXJpdHlPcmln
aW4pOgorICAgICAgICAqIGZpbGVhcGkvRE9NRmlsZVN5c3RlbUJhc2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRPTUZpbGVTeXN0ZW1CYXNlOjpjcmVhdGUpOgorICAgICAgICAqIGZpbGVhcGkvRE9N
RmlsZVN5c3RlbVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbVN5bmM6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01GaWxlU3lzdGVtU3luYzo6RE9NRmlsZVN5
c3RlbVN5bmMpOgorICAgICAgICAqIGZpbGVhcGkvRE9NRmlsZVN5c3RlbVN5bmMuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW1TeW5jOjpjcmVhdGUpOgorICAgICAgICAqIGZpbGVh
cGkvRW50cnkuY3BwOgorICAgICAgICAqIGZpbGVhcGkvRW50cnkuaDoKKyAgICAgICAgKiBmaWxl
YXBpL0VudHJ5QmFzZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RW50cnlCYXNlOjpF
bnRyeUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RW50cnlCYXNlOjp+RW50cnlCYXNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVudHJ5QmFzZTo6dG9VUkkpOgorICAgICAgICAqIGZpbGVhcGkvRW50
cnlCYXNlLmg6CisgICAgICAgICogZmlsZWFwaS9FbnRyeVN5bmMuaWRsOgorCiAyMDExLTAyLTE3
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGMwYTdiZDRiYTRmOTIzYjhhODQzZGI2
MjRmMTRlYjlkMmJjYzkyODAuLjUwMGMwY2I5MGRlNWZmYjEyMjNiYjVhZTEzMjQ2Yjk4OWJmOWUw
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE1NDMsMTMgKzE1NDMsMTMgQEAKICAgICAgICAgICAg
ICdmaWxlYXBpL0VudHJpZXNDYWxsYmFjay5oJywKICAgICAgICAgICAgICdmaWxlYXBpL0VudHJ5
LmNwcCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9FbnRyeS5oJywKKyAgICAgICAgICAgICdmaWxl
YXBpL0VudHJ5QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvRW50cnlCYXNlLmgnLAog
ICAgICAgICAgICAgJ2ZpbGVhcGkvRW50cnlBcnJheS5jcHAnLAogICAgICAgICAgICAgJ2ZpbGVh
cGkvRW50cnlBcnJheS5oJywKICAgICAgICAgICAgICdmaWxlYXBpL0VudHJ5QXJyYXlTeW5jLmNw
cCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9FbnRyeUFycmF5U3luYy5oJywKICAgICAgICAgICAg
ICdmaWxlYXBpL0VudHJ5Q2FsbGJhY2suaCcsCi0gICAgICAgICAgICAnZmlsZWFwaS9FbnRyeUJh
c2UuaCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9FbnRyeVN5bmMuY3BwJywKICAgICAgICAgICAg
ICdmaWxlYXBpL0VudHJ5U3luYy5oJywKICAgICAgICAgICAgICdmaWxlYXBpL0Vycm9yQ2FsbGJh
Y2suaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMGNjNWJmOTRkOTU1ZTNkZmY3ZDQ3OGRiYWFiN2FhNTQ5NDAwN2EwYy4uMGJl
Nzc1MzNhOGYyY2FlMmM5YTcxNjRiYzM0YTEwYjA3ZmJjODEyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTM3NCw2ICs1Mzc0
LDcgQEAKIAkJQzVFQkREODQxMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNo
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RUJE
RDgxMTA1RURERUMwMDU2ODE2RiAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmggKi87IH07CiAJ
CUM2RDc0QUQ1MDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0QUQzMDlB
QTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLzsgfTsKIAkJQzZE
NzRBRTQwOUFBMjkwQTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkQ3NEFFMzA5QUEy
OTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCAqLzsgfTsKKwkJQzZG
NDEwNDcxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyog
RW50cnlCYXNlLmNwcCAqLzsgfTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9s
bEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07
CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAw
RTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IH07CiAJCUNERUE3Qzg0MTI3NjIzMDQwMEI4
NDZERCAvKiBSZW5kZXJGdWxsU2NyZWVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREVBN0M4MjEyNzYyMzA0MDBCODQ2REQgLyogUmVuZGVyRnVsbFNj
cmVlbi5oICovOyB9OwpAQCAtMTE3MTksNiArMTE3MjAsNyBAQAogCQlDNUVCREQ4MTEwNUVEREVD
MDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25M
aXN0TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kaWZ5U2VsZWN0
aW9uTGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0QUUzMDlB
QTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8q
IEVudHJ5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFbnRy
eUJhc2UuY3BwOyBwYXRoID0gZmlsZWFwaS9FbnRyeUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3RDEwRDk5QkFFMDBFNkNF
NTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2Nyb2xsQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0RTBBRkEx
MUY3QkMyNzAwOUQzODExIC8qIGZ1bGxzY3JlZW4uY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBh
dGggPSBmdWxsc2NyZWVuLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODQy
LDYgKzE1ODQ0LDcgQEAKIAkJCQk4OTg3ODU0NTEyMkNBMDY0MDAzQUFCREEgLyogRW50cnlBcnJh
eS5oICovLAogCQkJCTg5M0M0N0Y4MTI0OEJEMzkwMDJCM0Q4NiAvKiBFbnRyeUFycmF5U3luYy5j
cHAgKi8sCiAJCQkJODkzQzQ3RjkxMjQ4QkQzOTAwMkIzRDg2IC8qIEVudHJ5QXJyYXlTeW5jLmgg
Ki8sCisJCQkJQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgKi8sCiAJ
CQkJODkzQzQ3RkIxMjQ4QkQzOTAwMkIzRDg2IC8qIEVudHJ5QmFzZS5oICovLAogCQkJCTg5ODc4
NTQ2MTIyQ0EwNjQwMDNBQUJEQSAvKiBFbnRyeUNhbGxiYWNrLmggKi8sCiAJCQkJODkzQzQ3RkMx
MjQ4QkQzOTAwMkIzRDg2IC8qIEVudHJ5U3luYy5jcHAgKi8sCkBAIC0yMzMzMyw2ICsyMzMzNiw3
IEBACiAJCQkJODk4Nzg1NUIxMjJDQTA2NDAwM0FBQkRBIC8qIEVudHJ5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg5ODc4NTVEMTIyQ0EwNjQwMDNBQUJEQSAvKiBFbnRyeUFycmF5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTg5M0M0ODA4MTI0OEJEM0EwMDJCM0Q4NiAvKiBFbnRyeUFycmF5U3lu
Yy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNkY0MTA0NzEzMEM2RTg5MDAzOTNERTQgLyogRW50
cnlCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5M0M0ODBDMTI0OEJEM0EwMDJCM0Q4NiAv
KiBFbnRyeVN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwOTIxMkIwMjZGNzAwQzFB
MzU5IC8qIEVxdWFsUG93ZXJQYW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVDRjdBRTEx
MDE2MkI1ODAwNDI3REU3IC8qIEVycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCBmNGViZTdjOTRiOTE4OTc2MjA3
MjIxNDkzNDFkNTBkNzBmMWZiZDEzLi5jMTcxMGNkN2Y4N2YyNzM2OTQxNWVkNWU0M2ZmZDhlMWNk
YTliODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAgLTUw
LDcgKzUwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRE9NRmlsZVN5c3RlbTo6RE9NRmls
ZVN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCi0gICAgOiBE
T01GaWxlU3lzdGVtQmFzZShuYW1lLCBhc3luY0ZpbGVTeXN0ZW0pCisgICAgOiBET01GaWxlU3lz
dGVtQmFzZShjb250ZXh0LCBuYW1lLCBhc3luY0ZpbGVTeXN0ZW0pCiAgICAgLCBBY3RpdmVET01P
YmplY3QoY29udGV4dCwgdGhpcykKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRE9NRmlsZVN5c3RlbUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01G
aWxlU3lzdGVtQmFzZS5jcHAKaW5kZXggYzQ2MmMzY2UwODNhZWVhMjFiZTJmYWZkOGRmY2QyYzll
YzZlZDRkYS4uNTIzMzRkN2Q4NTM2ZTYyYzA0M2JiNjJlOTY5OGI1Njk2NDc0YjMyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtQmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtQmFzZS5jcHAKQEAgLTQ0LDEzICs0
NCwxNSBAQAogI2luY2x1ZGUgIkZpbGVFcnJvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1DYWxs
YmFja3MuaCIKICNpbmNsdWRlICJNZXRhZGF0YUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ET01GaWxlU3lzdGVtQmFz
ZTo6RE9NRmlsZVN5c3RlbUJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5j
RmlsZVN5c3RlbT4gYXN5bmNGaWxlU3lzdGVtKQotICAgIDogbV9uYW1lKG5hbWUpCitET01GaWxl
U3lzdGVtQmFzZTo6RE9NRmlsZVN5c3RlbUJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4gYXN5
bmNGaWxlU3lzdGVtKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX25hbWUobmFt
ZSkKICAgICAsIG1fYXN5bmNGaWxlU3lzdGVtKGFzeW5jRmlsZVN5c3RlbSkKIHsKIH0KQEAgLTU5
LDYgKzYxLDExIEBAIERPTUZpbGVTeXN0ZW1CYXNlOjp+RE9NRmlsZVN5c3RlbUJhc2UoKQogewog
fQogCitTZWN1cml0eU9yaWdpbiogRE9NRmlsZVN5c3RlbUJhc2U6OnNlY3VyaXR5T3JpZ2luKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5zZWN1cml0eU9yaWdpbigpOworfQorCiBi
b29sIERPTUZpbGVTeXN0ZW1CYXNlOjpnZXRNZXRhZGF0YShjb25zdCBFbnRyeUJhc2UqIGVudHJ5
LCBQYXNzUmVmUHRyPE1ldGFkYXRhQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0
cjxFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrKQogewogICAgIFN0cmluZyBwbGF0Zm9ybVBh
dGggPSBtX2FzeW5jRmlsZVN5c3RlbS0+dmlydHVhbFRvUGxhdGZvcm1QYXRoKGVudHJ5LT5mdWxs
UGF0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3Rl
bUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3RlbUJhc2UuaAppbmRl
eCA2NmYxMzMxYTIyYzA1NWFkY2YyZjJhNjhkYjBlYTMwMGRmY2E0ZGYzLi45YThjZjJlZWQyYzhj
MTM3NTJmOGVjZjEzN2FiNDYwMGI2ZWE1YWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0RPTUZpbGVTeXN0ZW1CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9E
T01GaWxlU3lzdGVtQmFzZS5oCkBAIC00OCwxOSArNDgsMjIgQEAgY2xhc3MgRW50cnlCYXNlOwog
Y2xhc3MgRW50cnlDYWxsYmFjazsKIGNsYXNzIEVycm9yQ2FsbGJhY2s7CiBjbGFzcyBNZXRhZGF0
YUNhbGxiYWNrOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNlY3VyaXR5
T3JpZ2luOwogY2xhc3MgVm9pZENhbGxiYWNrOwogCiAvLyBBIGNvbW1vbiBiYXNlIGNsYXNzIGZv
ciBET01GaWxlU3lzdGVtIGFuZCBET01GaWxlU3lzdGVtU3luYy4KIGNsYXNzIERPTUZpbGVTeXN0
ZW1CYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NRmlsZVN5c3RlbUJhc2U+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtQmFzZT4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgbmFtZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtQmFzZT4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxB
c3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbUJhc2UobmFtZSwgYXN5bmNGaWxlU3lzdGVtKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbUJhc2UoY29udGV4dCwgbmFt
ZSwgYXN5bmNGaWxlU3lzdGVtKSk7CiAgICAgfQogICAgIHZpcnR1YWwgfkRPTUZpbGVTeXN0ZW1C
YXNlKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7
IH0KICAgICBBc3luY0ZpbGVTeXN0ZW0qIGFzeW5jRmlsZVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXN5bmNGaWxlU3lzdGVtLmdldCgpOyB9CisgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luKCkgY29uc3Q7CiAKICAgICAvLyBBY3R1YWwgRmlsZVN5c3RlbSBBUEkgaW1wbGVtZW50
YXRpb25zLiAgQWxsIHRoZSB2YWxpZGl0eSBjaGVja3Mgb24gdmlydHVhbCBwYXRocyBhcmUgZG9u
ZSBhdCB0aGlzIGxldmVsLgogICAgIC8vIFRoZXkgcmV0dXJuIGZhbHNlIGZvciBpbW1lZGlhdGUg
ZXJyb3JzIHRoYXQgZG9uJ3QgaW52b2x2ZSBsb3dlciBBc3luY0ZpbGVTeXN0ZW0gbGF5ZXIgKGUu
Zy4gZm9yIG5hbWUgdmFsaWRhdGlvbiBlcnJvcnMpLiAgT3RoZXJ3aXNlIHRoZXkgcmV0dXJuIHRy
dWUgKGJ1dCBsYXRlciBtYXkgY2FsbCBiYWNrIHdpdGggYW4gcnVudGltZSBlcnJvcikuCkBAIC03
NSw5ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCByZWFkRGlyZWN0b3J5KFBhc3NSZWZQdHI8
RGlyZWN0b3J5UmVhZGVyQmFzZT4sIGNvbnN0IFN0cmluZyYgcGF0aCwgUGFzc1JlZlB0cjxFbnRy
aWVzQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPEVycm9yQ2FsbGJhY2s+KTsKIAogcHJvdGVjdGVkOgot
ICAgIERPTUZpbGVTeXN0ZW1CYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxBc3lu
Y0ZpbGVTeXN0ZW0+KTsKKyAgICBET01GaWxlU3lzdGVtQmFzZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5c3RlbT4pOwog
ICAgIGZyaWVuZCBjbGFzcyBET01GaWxlU3lzdGVtU3luYzsKIAorICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIG1fY29udGV4dDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIG11dGFibGUgT3du
UHRyPEFzeW5jRmlsZVN5c3RlbT4gbV9hc3luY0ZpbGVTeXN0ZW07CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtU3luYy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW1TeW5jLmNwcAppbmRleCBkY2JjOWM3OThlZWNjNDQ1
OWQ5OWFmMjVjNDdlOTQ3ZmJkZTk2NTZjLi41YWU3NTQ1ODdmN2IwMWIzYjFhYWRkMmNlZDUxNzBl
Njg2NGUzZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0
ZW1TeW5jLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0ZW1TeW5j
LmNwcApAQCAtNTAsMTEgKzUwLDExIEBAIGNsYXNzIEZpbGVXcml0ZXJCYXNlOwogCiBQYXNzUmVm
UHRyPERPTUZpbGVTeXN0ZW1TeW5jPiBET01GaWxlU3lzdGVtU3luYzo6Y3JlYXRlKERPTUZpbGVT
eXN0ZW1CYXNlKiBmaWxlU3lzdGVtKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmls
ZVN5c3RlbVN5bmMoZmlsZVN5c3RlbS0+bV9uYW1lLCBmaWxlU3lzdGVtLT5tX2FzeW5jRmlsZVN5
c3RlbS5yZWxlYXNlKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTUZpbGVTeXN0ZW1T
eW5jKGZpbGVTeXN0ZW0tPm1fY29udGV4dCwgZmlsZVN5c3RlbS0+bV9uYW1lLCBmaWxlU3lzdGVt
LT5tX2FzeW5jRmlsZVN5c3RlbS5yZWxlYXNlKCkpKTsKIH0KIAotRE9NRmlsZVN5c3RlbVN5bmM6
OkRPTUZpbGVTeXN0ZW1TeW5jKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxBc3luY0Zp
bGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKLSAgICA6IERPTUZpbGVTeXN0ZW1CYXNlKG5hbWUs
IGFzeW5jRmlsZVN5c3RlbSkKK0RPTUZpbGVTeXN0ZW1TeW5jOjpET01GaWxlU3lzdGVtU3luYyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NP
d25QdHI8QXN5bmNGaWxlU3lzdGVtPiBhc3luY0ZpbGVTeXN0ZW0pCisgICAgOiBET01GaWxlU3lz
dGVtQmFzZShjb250ZXh0LCBuYW1lLCBhc3luY0ZpbGVTeXN0ZW0pCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3RlbVN5bmMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRE9NRmlsZVN5c3RlbVN5bmMuaAppbmRleCBjZTA3Yzg1ODY3ODA4MmUz
NjA1ZjFiZWI1MzY4NGYyZWFmYTIzZmQ1Li4wMTIwZmIwNThiNDUxNWFmYmM2NTY2MzcwYTZiYmQw
MDM2NmJkYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0RPTUZpbGVTeXN0
ZW1TeW5jLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9ET01GaWxlU3lzdGVtU3luYy5o
CkBAIC00Niw5ICs0Niw5IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIERP
TUZpbGVTeXN0ZW1TeW5jIDogcHVibGljIERPTUZpbGVTeXN0ZW1CYXNlIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtU3luYz4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgUGFzc093blB0cjxBc3luY0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtU3luYz4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxBc3lu
Y0ZpbGVTeXN0ZW0+IGFzeW5jRmlsZVN5c3RlbSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRE9NRmlsZVN5c3RlbVN5bmMobmFtZSwgYXN5bmNGaWxlU3lzdGVtKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NRmlsZVN5c3RlbVN5bmMoY29udGV4dCwgbmFtZSwg
YXN5bmNGaWxlU3lzdGVtKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRmls
ZVN5c3RlbVN5bmM+IGNyZWF0ZShET01GaWxlU3lzdGVtQmFzZSopOwpAQCAtNjEsNyArNjEsNyBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxGaWxlV3JpdGVyU3luYz4gY3JlYXRlV3JpdGVyKGNv
bnN0IEZpbGVFbnRyeVN5bmMqLCBFeGNlcHRpb25Db2RlJik7CiAKIHByaXZhdGU6Ci0gICAgRE9N
RmlsZVN5c3RlbVN5bmMoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzT3duUHRyPEFzeW5jRmlsZVN5
c3RlbT4pOworICAgIERPTUZpbGVTeXN0ZW1TeW5jKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBj
b25zdCBTdHJpbmcmIG5hbWUsIFBhc3NPd25QdHI8QXN5bmNGaWxlU3lzdGVtPik7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRW50cnkuY3BwCmluZGV4IDUzY2Q1NzZhMWM3NzE3MDdkODRiN2U4ZTdi
ZjA5OTNmMWZlNTllMTEuLjhiMGY2YWMxZGE1M2I5ZWEyZDNjODllNzI2MjQ0MTdlNzk5YzkzNTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnkuY3BwCkBAIC04NiwxNyArODYsNiBAQCB2b2lkIEVudHJ5
OjpnZXRQYXJlbnQoUGFzc1JlZlB0cjxFbnRyeUNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBh
c3NSZWZQdHI8RXJybwogICAgICAgICBmaWxlc3lzdGVtKCktPnNjaGVkdWxlQ2FsbGJhY2soZXJy
b3JDYWxsYmFjay5yZWxlYXNlKCksIEZpbGVFcnJvcjo6Y3JlYXRlKEZpbGVFcnJvcjo6SU5WQUxJ
RF9NT0RJRklDQVRJT05fRVJSKSk7CiB9CiAKLVN0cmluZyBFbnRyeTo6dG9VUkkoKQotewotICAg
IFN0cmluZ0J1aWxkZXIgdXJpQnVpbGRlcjsKLSAgICB1cmlCdWlsZGVyLmFwcGVuZCgiZmlsZXN5
c3RlbToiKTsKLSAgICB1cmlCdWlsZGVyLmFwcGVuZChmaWxlc3lzdGVtKCktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSk7Ci0gICAgdXJpQnVp
bGRlci5hcHBlbmQoIi8iKTsKLSAgICB1cmlCdWlsZGVyLmFwcGVuZChtX2ZpbGVTeXN0ZW0tPmFz
eW5jRmlsZVN5c3RlbSgpLT50eXBlKCkgPT0gQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkgPyAi
dGVtcG9yYXJ5IiA6ICJwZXJzaXN0ZW50Iik7Ci0gICAgdXJpQnVpbGRlci5hcHBlbmQobV9mdWxs
UGF0aCk7Ci0gICAgcmV0dXJuIHVyaUJ1aWxkZXIudG9TdHJpbmcoKTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9FbnRyeS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9FbnRyeS5oCmluZGV4IGQ4NzEyNjI0MGU1OTFiYTJkMmViZTMxNzgxZTg2OTk2Nzc2MjQ2MDYu
LjA5Y2M5NjRlYmVhN2IyZDRkYTQ4NWYwM2FkYzc3NGM5Nzk1YjkwYzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0VudHJ5LmgKQEAgLTU3LDggKzU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlKFBhc3NS
ZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2sgPSAwLCBQYXNzUmVmUHRyPEVycm9y
Q2FsbGJhY2s+IGVycm9yQ2FsbGJhY2sgPSAwKSBjb25zdDsKICAgICB2b2lkIGdldFBhcmVudChQ
YXNzUmVmUHRyPEVudHJ5Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjayA9IDAsIFBhc3NSZWZQdHI8
RXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjayA9IDApIGNvbnN0OwogCi0gICAgU3RyaW5nIHRv
VVJJKCk7Ci0KIHByb3RlY3RlZDoKICAgICBFbnRyeShQYXNzUmVmUHRyPERPTUZpbGVTeXN0ZW1C
YXNlPiwgY29uc3QgU3RyaW5nJiBmdWxsUGF0aCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9FbnRyeUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9FbnRy
eUJhc2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0NWVhNmU1Yzg1ZDYzNTUwZmYwMDNiMzMyN2JkYjQyOTdm
MjVkZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5QmFz
ZS5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFbnRy
eUJhc2UuaCIKKworI2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKKworI2luY2x1ZGUgIkFzeW5jRmls
ZVN5c3RlbS5oIgorI2luY2x1ZGUgIkRPTUZpbGVQYXRoLmgiCisjaW5jbHVkZSAiRE9NRmlsZVN5
c3RlbUJhc2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRW50cnlCYXNl
OjpFbnRyeUJhc2UoUGFzc1JlZlB0cjxET01GaWxlU3lzdGVtQmFzZT4gZmlsZVN5c3RlbSwgY29u
c3QgU3RyaW5nJiBmdWxsUGF0aCkKKyAgICA6IG1fZmlsZVN5c3RlbShmaWxlU3lzdGVtKQorICAg
ICwgbV9mdWxsUGF0aChmdWxsUGF0aCkKKyAgICAsIG1fbmFtZShET01GaWxlUGF0aDo6Z2V0TmFt
ZShmdWxsUGF0aCkpCit7Cit9CisKK0VudHJ5QmFzZTo6fkVudHJ5QmFzZSgpCit7Cit9CisKK1N0
cmluZyBFbnRyeUJhc2U6OnRvVVJJKCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKKyAg
ICByZXN1bHQuYXBwZW5kKCJmaWxlc3lzdGVtOiIpOworICAgIHJlc3VsdC5hcHBlbmQobV9maWxl
U3lzdGVtLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpKTsKKyAgICByZXN1bHQuYXBwZW5k
KCIvIik7CisgICAgcmVzdWx0LmFwcGVuZChtX2ZpbGVTeXN0ZW0tPmFzeW5jRmlsZVN5c3RlbSgp
LT50eXBlKCkgPT0gQXN5bmNGaWxlU3lzdGVtOjpUZW1wb3JhcnkgPyAidGVtcG9yYXJ5IiA6ICJw
ZXJzaXN0ZW50Iik7CisgICAgcmVzdWx0LmFwcGVuZChtX2Z1bGxQYXRoKTsKKyAgICByZXR1cm4g
cmVzdWx0LnRvU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShGSUxFX1NZU1RFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRW50cnlCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0VudHJ5QmFzZS5oCmluZGV4
IDE2ZjkzYmEwNzQxNjY5MGRmNGQ1YzYyNjRmMWRmNWQwZDYyMTlhYjAuLmJhYmQyOTU2YWNmYzkx
N2RkMWFjMGIyNTQzMmI2MjRjMTMyMmE4OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRW50cnlCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9FbnRyeUJhc2Uu
aApAQCAtMzMsNyArMzMsNiBAQAogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogCi0jaW5jbHVk
ZSAiRE9NRmlsZVBhdGguaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ2LDcg
KzQ1LDcgQEAgY2xhc3MgRW50cnlTeW5jOwogLy8gQSBjb21tb24gYmFzZSBjbGFzcyBmb3IgRW50
cnkgYW5kIEVudHJ5U3luYy4KIGNsYXNzIEVudHJ5QmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPEVu
dHJ5QmFzZT4gewogcHVibGljOgotICAgIHZpcnR1YWwgfkVudHJ5QmFzZSgpIHsgfQorICAgIHZp
cnR1YWwgfkVudHJ5QmFzZSgpOwogCiAgICAgRE9NRmlsZVN5c3RlbUJhc2UqIGZpbGVzeXN0ZW0o
KSBjb25zdCB7IHJldHVybiBtX2ZpbGVTeXN0ZW0uZ2V0KCk7IH0KIApAQCAtNTYsMTQgKzU1LDEw
IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGZ1bGxQYXRoKCkgY29uc3QgeyByZXR1cm4g
bV9mdWxsUGF0aDsgfQogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQogCi1wcm90ZWN0ZWQ6Ci0gICAgRW50cnlCYXNlKFBhc3NSZWZQdHI8RE9NRmlsZVN5
c3RlbUJhc2U+IGZpbGVTeXN0ZW0sIGNvbnN0IFN0cmluZyYgZnVsbFBhdGgpCi0gICAgICAgIDog
bV9maWxlU3lzdGVtKGZpbGVTeXN0ZW0pCi0gICAgICAgICwgbV9mdWxsUGF0aChmdWxsUGF0aCkK
LSAgICAgICAgLCBtX25hbWUoRE9NRmlsZVBhdGg6OmdldE5hbWUoZnVsbFBhdGgpKQotICAgIHsK
LSAgICB9CisgICAgU3RyaW5nIHRvVVJJKCk7CiAKK3Byb3RlY3RlZDoKKyAgICBFbnRyeUJhc2Uo
UGFzc1JlZlB0cjxET01GaWxlU3lzdGVtQmFzZT4sIGNvbnN0IFN0cmluZyYgZnVsbFBhdGgpOwog
ICAgIGZyaWVuZCBjbGFzcyBFbnRyeVN5bmM7CiAKICAgICBSZWZQdHI8RE9NRmlsZVN5c3RlbUJh
c2U+IG1fZmlsZVN5c3RlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50
cnlTeW5jLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRW50cnlTeW5jLmlkbAppbmRleCBm
YjdlZTNjMzhjOTU0OTQ4ODM4MzE5OWU3NjUzYTU5MmZmZjczZjU1Li4wYTE4MGU4MWZlMzAxMjNl
OGYyNDJjMjBjNjBmZDM2NTlmOGEyMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0VudHJ5U3luYy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9FbnRyeVN5bmMu
aWRsCkBAIC00Myw2ICs0Myw3IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgTWV0YWRhdGEg
Z2V0TWV0YWRhdGEoKSByYWlzZXMgKEZpbGVFeGNlcHRpb24pOwogICAgICAgICBFbnRyeVN5bmMg
bW92ZVRvKGluIERpcmVjdG9yeUVudHJ5U3luYyBwYXJlbnQsIGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZSkgcmFpc2VzIChGaWxlRXhjZXB0aW9u
KTsKICAgICAgICAgRW50cnlTeW5jIGNvcHlUbyhpbiBEaXJlY3RvcnlFbnRyeVN5bmMgcGFyZW50
LCBpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWUp
IHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CisgICAgICAgIERPTVN0cmluZyB0b1VSSSgpOwogICAg
ICAgICB2b2lkIHJlbW92ZSgpIHJhaXNlcyAoRmlsZUV4Y2VwdGlvbik7CiAgICAgICAgIERpcmVj
dG9yeUVudHJ5U3luYyBnZXRQYXJlbnQoKTsKICAgICB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>