<?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>160542</bug_id>
          
          <creation_ts>2016-08-04 03:05:15 -0700</creation_ts>
          <short_desc>Rename MathMLTextElement to MathMLTokenElement</short_desc>
          <delta_ts>2016-08-23 00:56:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>MathML</component>
          <version>WebKit 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>
          <dependson>160540</dependson>
          <blocked>160543</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>alex</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1217354</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-04 03:05:15 -0700</bug_when>
    <thetext>MathMLTextElement is not a very good name: these elements may contain non-text content, the text-only element annotation is handled in a separate class after 160540 and the name does not match the associated renderer RenderMathMLToken. We should probably rename it MathMLTokenElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1217355</commentid>
    <comment_count>1</comment_count>
      <attachid>285310</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-04 03:18:07 -0700</bug_when>
    <thetext>Created attachment 285310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1217358</commentid>
    <comment_count>2</comment_count>
      <attachid>285310</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-04 03:26:48 -0700</bug_when>
    <thetext>Comment on attachment 285310
Patch

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

&gt; Source/WebCore/CMakeLists.txt:2002
&gt; +    mathml/MathMLTokenElement.cpp

I forgot to update Source/WebCore/mathml/MathMLAllInOne.cpp here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221735</commentid>
    <comment_count>3</comment_count>
      <attachid>286564</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-21 05:48:40 -0700</bug_when>
    <thetext>Created attachment 286564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221778</commentid>
    <comment_count>4</comment_count>
      <attachid>286564</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-21 17:21:39 -0700</bug_when>
    <thetext>Comment on attachment 286564
Patch

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

&gt; Source/WebCore/mathml/MathMLTokenElement.cpp:31
&gt; +#if ENABLE(MATHML)
&gt; +#include &quot;MathMLTokenElement.h&quot;

There should be a blank line between these two lines. I know sometimes we do a different style, but I think we should do this consistently; easier to mentally chunk when the #if is not grouped with one line of what’s inside the #if.

&gt; Source/WebCore/mathml/MathMLTokenElement.cpp:55
&gt; +    if (is&lt;RenderMathMLToken&gt;(renderer()))
&gt; +        downcast&lt;RenderMathMLToken&gt;(*renderer()).updateTokenContent();

We should not make a habit of calling renderer() multiple times; it does include a branch. Maybe the compiler is smart enough to not do the work twice, but generally I put it into a local variable for code like this (and the similar code in the next two functions).

&gt; Source/WebCore/mathml/MathMLTokenElement.h:31
&gt; +#if ENABLE(MATHML)
&gt; +#include &quot;MathMLElement.h&quot;

There should be a blank line between these two lines.

&gt; Source/WebCore/mathml/MathMLTokenElement.h:38
&gt; +    bool acceptsMathVariantAttribute() final { return true; }

Seems to me this should be private. If it’s a final function, no one would have a reason to call it on a MathMLTokenElement&amp; since it would just always return true and thus no need for it to be a public function. Unless there is some template idiom where this actually needs to be called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221857</commentid>
    <comment_count>5</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-22 08:18:45 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebCore/mathml/MathMLTokenElement.cpp:31
&gt; &gt; +#if ENABLE(MATHML)
&gt; &gt; +#include &quot;MathMLTokenElement.h&quot;
&gt; 
&gt; There should be a blank line between these two lines. I know sometimes we do
&gt; a different style, but I think we should do this consistently; easier to
&gt; mentally chunk when the #if is not grouped with one line of what’s inside
&gt; the #if.

For that one, check-webkit-style complains with the following message:

ERROR: Source/WebCore/mathml/MathMLTokenElement.cpp:32:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
Total errors found: 1 in 11 files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221858</commentid>
    <comment_count>6</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-22 08:20:04 -0700</bug_when>
    <thetext>Committed r204715: &lt;http://trac.webkit.org/changeset/204715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222140</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-22 23:09:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; &gt; Source/WebCore/mathml/MathMLTokenElement.cpp:31
&gt; &gt; &gt; +#if ENABLE(MATHML)
&gt; &gt; &gt; +#include &quot;MathMLTokenElement.h&quot;
&gt; &gt; 
&gt; &gt; There should be a blank line between these two lines. I know sometimes we do
&gt; &gt; a different style, but I think we should do this consistently; easier to
&gt; &gt; mentally chunk when the #if is not grouped with one line of what’s inside
&gt; &gt; the #if.
&gt; 
&gt; For that one, check-webkit-style complains with the following message:
&gt; 
&gt; ERROR: Source/WebCore/mathml/MathMLTokenElement.cpp:32:  You should not add
&gt; a blank line before implementation file&apos;s own header.  [build/include_order]
&gt; [4]
&gt; Total errors found: 1 in 11 files

Two thoughts:

1) That error message from check-webkit-style is wrong.

2) We don&apos;t need to fix that, though, because the preferred style is probably this:

#include &quot;config.h&quot;
#include &quot;MathMLTokenElement.h&quot;

#if ENABLE(MATHML)

#include &quot;OtherHeader.h&quot;
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222169</commentid>
    <comment_count>8</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-23 00:56:35 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; 2) We don&apos;t need to fix that, though, because the preferred style is
&gt; probably this:
&gt; 
&gt; #include &quot;config.h&quot;
&gt; #include &quot;MathMLTokenElement.h&quot;
&gt; 
&gt; #if ENABLE(MATHML)
&gt; 
&gt; #include &quot;OtherHeader.h&quot;
&gt; ...

OK, that does not seem to be what is done in the MathML code so I&apos;ll open a follow-up bug to fix that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285310</attachid>
            <date>2016-08-04 03:18:07 -0700</date>
            <delta_ts>2016-08-21 05:48:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0002-Bug-160542-Rename-MathMLTextElement-to-MathMLTokenEl.patch</filename>
            <type>text/plain</type>
            <size>26751</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBmNjkwNDAzNjA2MDlmZDM5MTdlNjdhMmFlMzYzNGRhNWU4MjQ0NWU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KRGF0
ZTogVGh1LCA0IEF1ZyAyMDE2IDEyOjE2OjEwICswMjAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIEJ1
ZyAxNjA1NDIgLSBSZW5hbWUgTWF0aE1MVGV4dEVsZW1lbnQgdG8KIE1hdGhNTFRva2VuRWxlbWVu
dAoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAg
ICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IDIzICsrKysrKwogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgfCAxNiArKy0tCiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0
b3JFbGVtZW50LmNwcCAgICB8ICA2ICstCiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3Bl
cmF0b3JFbGVtZW50LmggICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
VGV4dEVsZW1lbnQuY3BwICAgICAgICB8IDk0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFNvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oICAgICAgICAgIHwgNTcgLS0tLS0t
LS0tLS0tLQogU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHAgICAg
ICAgfCA5MCArKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxUb2tlbkVsZW1lbnQuaCAgICAgICAgIHwgNTcgKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvbWF0aG1sL21hdGh0YWdzLmluICAgICAgICAgICAgICAgICAgfCAgOCArLQogLi4uL1dlYkNv
cmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5jcHAgfCAgNiArKwogLi4uL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oICAgfCAgNSArLQogMTIg
ZmlsZXMgY2hhbmdlZCwgMTk3IGluc2VydGlvbnMoKyksIDE3MSBkZWxldGlvbnMoLSkKIGRlbGV0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3Bw
CiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVt
ZW50LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVG9r
ZW5FbGVtZW50LmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxUb2tlbkVsZW1lbnQuaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmRjZmQ1Ny4uYWI1
YzcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5OTksNyArMTk5OSw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBtYXRobWwvTWF0aE1MU2NyaXB0c0VsZW1lbnQuY3BwCiAgICAgbWF0
aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCiAgICAgbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVu
dC5jcHAKLSAgICBtYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwCisgICAgbWF0aG1sL01hdGhN
TFRva2VuRWxlbWVudC5jcHAKICAgICBtYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5jcHAK
IAogICAgIHBhZ2UvQXV0b3Njcm9sbENvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE4YjQ0
Yy4uNTNiMDI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE2LTA4LTA0ICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAorICAgICAgICBSZW5hbWUgTWF0aE1MVGV4
dEVsZW1lbnQgdG8gTWF0aE1MVG9rZW5FbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlaGF2aW9yIGlzIHVuY2hhbmdl
ZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBSZW5hbWUgTWF0aE1MVGV4dEVsZW1lbnQg
dG8gTWF0aE1MVG9rZW5FbGVtZW50LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVu
dC5jcHA6IERpdHRvLgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuaDog
RGl0dG8uCisgICAgICAgICogbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHA6IERpdHRvLiBB
bHNvIHJlbW92ZSBkZWFkIGNvZGUgaW4gY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcgorICAgICAg
ICB0byBoYW5kbGUgdGhlIGNhc2Ugb2YgbXNwYWNlIHNpbmNlIHRoYXQgZWxlbWVudCB1c2VzIGl0
cyBvd24gY2xhc3MgYW5kIGZvcmJpZHMgY2hpbGQgY3JlYXRpb24KKyAgICAgICAgaW4gUmVuZGVy
TWF0aE1MU3BhY2U6OmlzQ2hpbGRBbGxvd2VkLgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUb2tl
bkVsZW1lbnQuaDogUmVuYW1lIE1hdGhNTFRleHRFbGVtZW50IHRvIE1hdGhNTFRva2VuRWxlbWVu
dC4KKyAgICAgICAgKiBtYXRobWwvbWF0aHRhZ3MuaW46IERpdHRvLgorICAgICAgICAqIHJlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwOiBNb3ZlIGluY2x1c2lvbiBvZiBNYXRo
TUxUb2tlbkVsZW1lbnQuaCBhbmQKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgZWxlbWVudCgp
IGhlcmUuCisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oOiBE
byBub3QgaW1wbGVtZW50IGVsZW1lbnQoKSBpbiB0aGUgaGVhZGVyIHNvIHRoYXQKKyAgICAgICAg
d2Ugb25seSBuZWVkIG5lZWQgdG8gcHJlZGVjbGFyZSBNYXRoTUxUb2tlbkVsZW1lbnQgaW5zdGVh
ZCBvZiBpbmNsdWRpbmcgaXRzIGhlYWRlci4KKworMjAxNi0wOC0wNCAgRnJlZGVyaWMgV2FuZyAg
PGZ3YW5nQGlnYWxpYS5jb20+CisKICAgICAgICAgSW50cm9kdWNlIGEgTWF0aE1MQW5ub3RhdGlv
bkVsZW1lbnQgY2xhc3MgZm9yIHRoZSBhbm5vdGF0aW9uL2Fubm90YXRpb24teG1sIGVsZW1lbnRz
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA1NDAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGFjOTNhNTguLmI0ZGU2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY2OTgsMTAgKzY2OTgsMTAgQEAKIAkJRjk4
RkZGNDQxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjk4RkZGNDIxMUEyNjc2MjAwRjU0OEU4IC8q
IENTU09NVXRpbHMuY3BwICovOyB9OwogCQlGOThGRkY0NTExQTI2NzYyMDBGNTQ4RTggLyogQ1NT
T01VdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Rjk4RkZGNDMxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuaCAqLzsgfTsKIAkJRjlGMEVE
N0EwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjlGMEVENzcwREI1MENB
MjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwotCQlGQTY1
NEE2QjExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkE2NTRBNjkxMTA4QUJFRDAwMjYx
NUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmNwcCAqLzsgfTsKKwkJRkE2NTRBNkIxMTA4QUJFRDAw
MjYxNUUwIC8qIE1hdGhNTFRva2VuRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQTY1NEE2OTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1M
VG9rZW5FbGVtZW50LmNwcCAqLzsgfTsKIAkJRkE2NTRBNkIxMTA4QUJFRDAwMjYxNkYxIC8qIE1h
dGhNTE9wZXJhdG9yRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGQTY1NEE2OTExMDhBQkVEMDAyNjE2RjEgLyogTWF0aE1MT3BlcmF0b3JF
bGVtZW50LmNwcCAqLzsgfTsKIAkJRkE2NTRBNkIxMTA4QUJFRDAwMjYyNkYxIC8qIE1hdGhNTFVu
ZGVyT3ZlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkE2NTRBNjkxMTA4QUJFRDAwMjYyNkYxIC8qIE1hdGhNTFVuZGVyT3ZlckVsZW1l
bnQuY3BwICovOyB9OwotCQlGQTY1NEE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4dEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZB
NjU0QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5oICovOyB9OworCQlG
QTY1NEE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVG9rZW5FbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQTY1NEE2QTExMDhBQkVEMDAy
NjE1RTAgLyogTWF0aE1MVG9rZW5FbGVtZW50LmggKi87IH07CiAJCUZBNjU0QTZDMTEwOEFCRUQw
MDI2MTZGMSAvKiBNYXRoTUxPcGVyYXRvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBNjU0QTZBMTEwOEFCRUQwMDI2MTZGMSAvKiBNYXRo
TUxPcGVyYXRvckVsZW1lbnQuaCAqLzsgfTsKIAkJRkE2NTRBNkMxMTA4QUJFRDAwMjYyNkYxIC8q
IE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZBNjU0QTZBMTEwOEFCRUQwMDI2MjZGMSAvKiBNYXRoTUxVbmRlck92
ZXJFbGVtZW50LmggKi87IH07CiAJCUZBQkU3MkY0MTA1OUMxRUIwMEQ4ODhDQyAvKiBNYXRoTUxB
bm5vdGF0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGQUJFNzJFRDEwNTlDMUVCMDBEODg4Q0MgLyogTWF0aE1MQW5ub3RhdGlvbkVs
ZW1lbnQuY3BwICovOyB9OwpAQCAtMTQ2NjQsMTAgKzE0NjY0LDEwIEBACiAJCUY5RjBFRDc4MERC
NTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGQTY1NEE2MzExMDhBQkI3MDAyNjE1RTAgLyogbWF0aG1s
LmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gbWF0aG1sLmNzczsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNjcxMTA4QUJFMjAwMjYxNUUwIC8qIG1hdGhhdHRycy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBtYXRoYXR0cnMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUZBNjU0QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxUZXh0RWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZBNjU0QTY5MTEwOEFCRUQw
MDI2MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWF0aE1MVG9rZW5FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkE2NTRBNjkxMTA4QUJFRDAwMjYxNkYxIC8qIE1hdGhNTE9wZXJhdG9yRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxPcGVy
YXRvckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQTY1NEE2OTEx
MDhBQkVEMDAyNjI2RjEgLyogTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxVbmRlck92ZXJFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkE2NTRBNkExMTA4QUJFRDAwMjYxNUUwIC8qIE1h
dGhNTFRleHRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhN
TFRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZBNjU0QTZBMTEw
OEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWF0aE1MVG9rZW5FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZBNjU0QTZBMTEwOEFCRUQwMDI2MTZGMSAvKiBNYXRoTUxPcGVyYXRvckVsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MT3BlcmF0b3JFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZBNjU0QTZBMTEwOEFCRUQwMDI2
MjZGMSAvKiBNYXRoTUxVbmRlck92ZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkE2RTQ2NkZDRDA0MThBOTk2NkE1QjYwIC8qIEROU1Jlc29sdmVRdWV1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBETlNSZXNvbHZlUXVldWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MzIzLDggKzI0MzIzLDggQEAKIAkJCQk1OTc4MDg0
OUQ0MUU2RjY1RDgxMTk4QkMgLyogTWF0aE1MU2VsZWN0RWxlbWVudC5oICovLAogCQkJCTRGQTY1
QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwICovLAogCQkJCTRG
QTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuaCAqLywKLQkJCQlG
QTY1NEE2OTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4dEVsZW1lbnQuY3BwICovLAotCQkJ
CUZBNjU0QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5oICovLAorCQkJ
CUZBNjU0QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQuY3BwICovLAor
CQkJCUZBNjU0QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQuaCAqLywK
IAkJCQlGQTY1NEE2OTExMDhBQkVEMDAyNjI2RjEgLyogTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5j
cHAgKi8sCiAJCQkJRkE2NTRBNkExMTA4QUJFRDAwMjYyNkYxIC8qIE1hdGhNTFVuZGVyT3ZlckVs
ZW1lbnQuaCAqLywKIAkJCQlGQUJFNzJGMzEwNTlDMUVCMDBEOTk5REQgLyogbWF0aHRhZ3MuaW4g
Ki8sCkBAIC0yNjcyOSw3ICsyNjcyOSw3IEBACiAJCQkJRkE2NTRBNkMxMTA4QUJFRDAwMjYxNkYx
IC8qIE1hdGhNTE9wZXJhdG9yRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEZBNjVBNkMx
MTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDM5MTc2RTAxMkRBMjVFMTdCQUY4MEEyIC8qIE1hdGhNTFN0eWxlLmggaW4gSGVhZGVycyAq
LywKLQkJCQlGQTY1NEE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4dEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCUZBNjU0QTZDMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUb2tl
bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZBNjU0QTZDMTEwOEFCRUQwMDI2MjZGMSAv
KiBNYXRoTUxVbmRlck92ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzkwNDZFQTEy
REEyNUU4MTJBRjgwQUMgLyogTWF0aE9wZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUQ1
REMyQzBGNDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBI
ZWFkZXJzICovLApAQCAtMzA1NjAsNyArMzA1NjAsNyBAQAogCQkJCUZFRDQ4MzkwQ0VENjZDMzI1
NUY3MkM1OSAvKiBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRG
QTY1QTZCMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDM5MTc2REYxMkRBMjVFMTdCQUY4MEEyIC8qIE1hdGhNTFN0eWxlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUZBNjU0QTZCMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGQTY1NEE2QjExMDhBQkVEMDAyNjE1RTAg
LyogTWF0aE1MVG9rZW5FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBNjU0QTZCMTEw
OEFCRUQwMDI2MjZGMSAvKiBNYXRoTUxVbmRlck92ZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQzOTA0NkU5MTJEQTI1RTgxMkFGODBBQyAvKiBNYXRoT3BlcmF0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDlENURDMkIwRjQyM0E3MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNm
b3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcAppbmRleCA2NDYyMWY2Li40NWZjNzgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcApAQCAt
MzgsNyArMzgsNyBAQCB1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7CiB1c2luZyBuYW1lc3Bh
Y2UgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OwogCiBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6Ok1h
dGhNTE9wZXJhdG9yRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCi0gICAgOiBNYXRoTUxUZXh0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
KyAgICA6IE1hdGhNTFRva2VuRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKIHsKIH0KIApAQCAt
MjE5LDcgKzIxOSw3IEBAIHZvaWQgTWF0aE1MT3BlcmF0b3JFbGVtZW50OjpjaGlsZHJlbkNoYW5n
ZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBtX29wZXJhdG9yQ2hhciA9IE51bGxv
cHQ7CiAgICAgbV9kaWN0aW9uYXJ5UHJvcGVydHkgPSBOdWxsb3B0OwogICAgIG1fcHJvcGVydGll
cy5kaXJ0eUZsYWdzID0gTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjphbGxGbGFnczsKLSAgICBN
YXRoTUxUZXh0RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CisgICAgTWF0aE1MVG9r
ZW5FbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKIH0KIAogc3RhdGljIE9wdGlvbmFs
PE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RmxhZz4gYXR0cmlidXRlTmFtZVRvUHJvcGVydHlG
bGFnKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBN
YXRoTUxPcGVyYXRvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE1hdGhNTFRl
eHRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MVG9rZW5F
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihS
ZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oCmluZGV4IGNmOWU3MjguLjk0
MGY0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50
LmgKQEAgLTI3LDExICsyNywxMSBAQAogCiAjaWYgRU5BQkxFKE1BVEhNTCkKICNpbmNsdWRlICJN
YXRoTUxPcGVyYXRvckRpY3Rpb25hcnkuaCIKLSNpbmNsdWRlICJNYXRoTUxUZXh0RWxlbWVudC5o
IgorI2luY2x1ZGUgIk1hdGhNTFRva2VuRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNsYXNzIE1hdGhNTE9wZXJhdG9yRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBNYXRoTUxUZXh0
RWxlbWVudCB7CitjbGFzcyBNYXRoTUxPcGVyYXRvckVsZW1lbnQgZmluYWwgOiBwdWJsaWMgTWF0
aE1MVG9rZW5FbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPE1hdGhNTE9wZXJhdG9y
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7
CiAgICAgc3RydWN0IE9wZXJhdG9yQ2hhciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFRleHRFbGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY0ZGNmOC4u
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OSBBbGV4IE1pbG93c2tpIChhbGV4QG1pbG93c2tpLmNvbSkuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE1B
VEhNTCkKLQotI2luY2x1ZGUgIk1hdGhNTFRleHRFbGVtZW50LmgiCi0KLSNpbmNsdWRlICJNYXRo
TUxOYW1lcy5oIgotI2luY2x1ZGUgIlJlbmRlck1hdGhNTFRva2VuLmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIE1hdGhNTE5hbWVzOwotCi1NYXRoTUxUZXh0RWxl
bWVudDo6TWF0aE1MVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQotICAgIDogTWF0aE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
LXsKLSAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKLX0KLQotUmVmPE1h
dGhNTFRleHRFbGVtZW50PiBNYXRoTUxUZXh0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBNYXRoTUxUZXh0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwotfQotCi12b2lk
IE1hdGhNTFRleHRFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQotewotICAgIE1hdGhNTEVs
ZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpOwotICAgIGlmIChpczxSZW5kZXJNYXRoTUxUb2tl
bj4ocmVuZGVyZXIoKSkpCi0gICAgICAgIGRvd25jYXN0PFJlbmRlck1hdGhNTFRva2VuPigqcmVu
ZGVyZXIoKSkudXBkYXRlVG9rZW5Db250ZW50KCk7Ci19Ci0KLXZvaWQgTWF0aE1MVGV4dEVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQotewotICAgIE1h
dGhNTEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2UpOwotICAgIGlmIChpczxSZW5kZXJN
YXRoTUxUb2tlbj4ocmVuZGVyZXIoKSkpCi0gICAgICAgIGRvd25jYXN0PFJlbmRlck1hdGhNTFRv
a2VuPigqcmVuZGVyZXIoKSkudXBkYXRlVG9rZW5Db250ZW50KCk7Ci19Ci0KLXZvaWQgTWF0aE1M
VGV4dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCi17Ci0gICAgaWYgKG5hbWUgPT0gbWF0aHZhcmlhbnRB
dHRyKSB7Ci0gICAgICAgIG1fbWF0aFZhcmlhbnQgPSBOdWxsb3B0OwotICAgICAgICBpZiAocmVu
ZGVyZXIoKSkKLSAgICAgICAgICAgIE1hdGhNTFN0eWxlOjpyZXNvbHZlTWF0aE1MU3R5bGVUcmVl
KHJlbmRlcmVyKCkpOwotICAgIH0KLQotICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKLX0KLQotUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFRleHRF
bGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikKLXsKLSAgICBBU1NFUlQoaGFzVGFnTmFtZShNYXRoTUxOYW1l
czo6bWlUYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1uVGFnKSB8fCBoYXNUYWdOYW1l
KE1hdGhNTE5hbWVzOjptc1RhZykgfHwgaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bXRleHRUYWcp
KTsKLQotICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxUb2tlbj4oKnRoaXMs
IFdURk1vdmUoc3R5bGUpKTsKLX0KLQotYm9vbCBNYXRoTUxUZXh0RWxlbWVudDo6Y2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKLXsKLSAgICBpZiAoaGFz
VGFnTmFtZShNYXRoTUxOYW1lczo6bXNwYWNlVGFnKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgLy8gVGhlIEhUTUwgc3BlY2lmaWNhdGlvbiBkZWZpbmVzIDxtaT4sIDxtbz4sIDxtbj4s
IDxtcz4gYW5kIDxtdGV4dD4gYXMgaW5zZXJ0aW9uIHBvaW50cy4KLSAgICByZXR1cm4gaXNQaHJh
c2luZ0NvbnRlbnQoY2hpbGQpICYmIFN0eWxlZEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVu
ZGVyZXIoY2hpbGQpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRleHRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDIxZmY5ZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MVGV4dEVsZW1lbnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQWxleCBNaWxvd3NraSAoYWxleEBtaWxvd3NraS5jb20pLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAot
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTUFUSE1MKQotI2luY2x1
ZGUgIk1hdGhNTEVsZW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBNYXRo
TUxUZXh0RWxlbWVudCA6IHB1YmxpYyBNYXRoTUxFbGVtZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPE1hdGhNTFRleHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmKTsKLSAgICBib29sIGFjY2VwdHNNYXRoVmFyaWFudEF0dHJpYnV0ZSgp
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KLQotcHJvdGVjdGVkOgotICAgIE1hdGhNTFRleHRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7Ci0gICAgdm9pZCBj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBv
dmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRl
RWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYp
IG92ZXJyaWRlOwotICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JikgY29uc3QgZmluYWw7Ci0KLSAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwot
Ci0gICAgYm9vbCBpc01hdGhNTFRva2VuKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIGJvb2wgaXNQcmVzZW50YXRpb25NYXRoTUwoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MVG9rZW5FbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41NzY2YTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHAKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOSBBbGV4IE1pbG93c2tpIChhbGV4QG1pbG93c2tpLmNvbSkuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKE1BVEhNTCkKKyNpbmNsdWRlICJNYXRoTUxUb2tlbkVsZW1lbnQuaCIKKworI2lu
Y2x1ZGUgIk1hdGhNTE5hbWVzLmgiCisjaW5jbHVkZSAiUmVuZGVyTWF0aE1MVG9rZW4uaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7CisKK01h
dGhNTFRva2VuRWxlbWVudDo6TWF0aE1MVG9rZW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IE1hdGhNTEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpCit7CisgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7
Cit9CisKK1JlZjxNYXRoTUxUb2tlbkVsZW1lbnQ+IE1hdGhNTFRva2VuRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNYXRoTUxUb2tlbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKK30KKwordm9pZCBNYXRoTUxUb2tlbkVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygp
Cit7CisgICAgTWF0aE1MRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCk7CisgICAgaWYgKGlz
PFJlbmRlck1hdGhNTFRva2VuPihyZW5kZXJlcigpKSkKKyAgICAgICAgZG93bmNhc3Q8UmVuZGVy
TWF0aE1MVG9rZW4+KCpyZW5kZXJlcigpKS51cGRhdGVUb2tlbkNvbnRlbnQoKTsKK30KKwordm9p
ZCBNYXRoTUxUb2tlbkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYg
Y2hhbmdlKQoreworICAgIE1hdGhNTEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2UpOwor
ICAgIGlmIChpczxSZW5kZXJNYXRoTUxUb2tlbj4ocmVuZGVyZXIoKSkpCisgICAgICAgIGRvd25j
YXN0PFJlbmRlck1hdGhNTFRva2VuPigqcmVuZGVyZXIoKSkudXBkYXRlVG9rZW5Db250ZW50KCk7
Cit9CisKK3ZvaWQgTWF0aE1MVG9rZW5FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQoreworICAgIGlmIChu
YW1lID09IG1hdGh2YXJpYW50QXR0cikgeworICAgICAgICBtX21hdGhWYXJpYW50ID0gTnVsbG9w
dDsKKyAgICAgICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgICAgICBNYXRoTUxTdHlsZTo6cmVz
b2x2ZU1hdGhNTFN0eWxlVHJlZShyZW5kZXJlcigpKTsKKyAgICB9CisKKyAgICBNYXRoTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Cit9CisKK1JlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBNYXRoTUxUb2tlbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJT
dHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQoreworICAgIEFTU0VSVCho
YXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptaVRhZykgfHwgaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6
bW5UYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1zVGFnKSB8fCBoYXNUYWdOYW1lKE1h
dGhNTE5hbWVzOjptdGV4dFRhZykpOworCisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRl
ck1hdGhNTFRva2VuPigqdGhpcywgV1RGTW92ZShzdHlsZSkpOworfQorCitib29sIE1hdGhNTFRv
a2VuRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJiBjaGlsZCkg
Y29uc3QKK3sKKyAgICAvLyBUaGUgSFRNTCBzcGVjaWZpY2F0aW9uIGRlZmluZXMgPG1pPiwgPG1v
PiwgPG1uPiwgPG1zPiBhbmQgPG10ZXh0PiBhcyBpbnNlcnRpb24gcG9pbnRzLgorICAgIHJldHVy
biBpc1BocmFzaW5nQ29udGVudChjaGlsZCkgJiYgU3R5bGVkRWxlbWVudDo6Y2hpbGRTaG91bGRD
cmVhdGVSZW5kZXJlcihjaGlsZCk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNQVRITUwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVG9rZW5FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVG9rZW5FbGVtZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzljZTg0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUb2tlbkVsZW1lbnQuaApAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFsZXggTWlsb3dza2kgKGFsZXhAbWlsb3dza2kuY29t
KS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1BVEhNTCkK
KyNpbmNsdWRlICJNYXRoTUxFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTWF0aE1MVG9rZW5FbGVtZW50IDogcHVibGljIE1hdGhNTEVsZW1lbnQgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TWF0aE1MVG9rZW5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKKyAgICBib29sIGFjY2VwdHNNYXRoVmFyaWFudEF0
dHJpYnV0ZSgpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworcHJvdGVjdGVkOgorICAgIE1hdGhN
TFRva2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwor
ICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKSBvdmVycmlkZTsKKyAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIo
Y29uc3QgTm9kZSYpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMo
KSBmaW5hbDsKKworICAgIGJvb2wgaXNNYXRoTUxUb2tlbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KKyAgICBib29sIGlzUHJlc2VudGF0aW9uTWF0aE1MKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQorfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1BVEhNTCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5pbiBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9tYXRodGFncy5pbgppbmRleCAwOTM3ZTRkLi4yYTJmNWFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL21hdGh0YWdzLmluCkBAIC0yMCwxMSArMjAsMTEgQEAgbXVuZGVyIGludGVyZmFjZU5hbWU9
TWF0aE1MVW5kZXJPdmVyRWxlbWVudAogbXVuZGVyb3ZlciBpbnRlcmZhY2VOYW1lPU1hdGhNTFVu
ZGVyT3ZlckVsZW1lbnQKIG1zcXJ0IGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5lQ29udGFpbmVy
RWxlbWVudAogbXJvb3QgaW50ZXJmYWNlTmFtZT1NYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50
Ci1taSBpbnRlcmZhY2VOYW1lPU1hdGhNTFRleHRFbGVtZW50Ci1tbiBpbnRlcmZhY2VOYW1lPU1h
dGhNTFRleHRFbGVtZW50CittaSBpbnRlcmZhY2VOYW1lPU1hdGhNTFRva2VuRWxlbWVudAorbW4g
aW50ZXJmYWNlTmFtZT1NYXRoTUxUb2tlbkVsZW1lbnQKIG1vIGludGVyZmFjZU5hbWU9TWF0aE1M
T3BlcmF0b3JFbGVtZW50Ci1tdGV4dCBpbnRlcmZhY2VOYW1lPU1hdGhNTFRleHRFbGVtZW50Ci1t
cyBpbnRlcmZhY2VOYW1lPU1hdGhNTFRleHRFbGVtZW50CittdGV4dCBpbnRlcmZhY2VOYW1lPU1h
dGhNTFRva2VuRWxlbWVudAorbXMgaW50ZXJmYWNlTmFtZT1NYXRoTUxUb2tlbkVsZW1lbnQKIG1z
cGFjZSBpbnRlcmZhY2VOYW1lPU1hdGhNTFNwYWNlRWxlbWVudAogbXN1YiBpbnRlcmZhY2VOYW1l
PU1hdGhNTFNjcmlwdHNFbGVtZW50CiBtc3VwIGludGVyZmFjZU5hbWU9TWF0aE1MU2NyaXB0c0Vs
ZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MVG9rZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxUb2tlbi5jcHAKaW5kZXggMDM5ODg5OC4uYmZlZDI5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIk1hdGhNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJNYXRo
TUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hdGhNTFRva2VuRWxlbWVudC5oIgogI2luY2x1ZGUgIlBh
aW50SW5mby5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJ
dGVyYXRvci5oIgpAQCAtNTMsNiArNTQsMTEgQEAgUmVuZGVyTWF0aE1MVG9rZW46OlJlbmRlck1h
dGhNTFRva2VuKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKIHsKIH0K
IAorTWF0aE1MVG9rZW5FbGVtZW50JiBSZW5kZXJNYXRoTUxUb2tlbjo6ZWxlbWVudCgpCit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PE1hdGhNTFRva2VuRWxlbWVudCY+KG5vZGVGb3JOb25Bbm9u
eW1vdXMoKSk7Cit9CisKIHZvaWQgUmVuZGVyTWF0aE1MVG9rZW46OnVwZGF0ZVRva2VuQ29udGVu
dCgpCiB7CiAgICAgUmVuZGVyTWF0aE1MQmxvY2s6OnVwZGF0ZUZyb21FbGVtZW50KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFRva2Vu
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFRva2VuLmgK
aW5kZXggOWNhZjQ4Yy4uOWE3MWI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uaApAQCAtMjgsMTcgKzI4LDE4IEBACiAKICNp
ZiBFTkFCTEUoTUFUSE1MKQogCi0jaW5jbHVkZSAiTWF0aE1MVGV4dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJSZW5kZXJNYXRoTUxCbG9jay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IE1hdGhNTFRva2VuRWxlbWVudDsKKwogY2xhc3MgUmVuZGVyTWF0aE1MVG9rZW4gOiBwdWJsaWMg
UmVuZGVyTWF0aE1MQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlck1hdGhNTFRva2VuKEVsZW1l
bnQmLCBSZW5kZXJTdHlsZSYmKTsKICAgICBSZW5kZXJNYXRoTUxUb2tlbihEb2N1bWVudCYsIFJl
bmRlclN0eWxlJiYpOwogCi0gICAgTWF0aE1MVGV4dEVsZW1lbnQmIGVsZW1lbnQoKSB7IHJldHVy
biBzdGF0aWNfY2FzdDxNYXRoTUxUZXh0RWxlbWVudCY+KG5vZGVGb3JOb25Bbm9ueW1vdXMoKSk7
IH0KKyAgICBNYXRoTUxUb2tlbkVsZW1lbnQmIGVsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVUb2tlbkNvbnRlbnQoKTsKICAgICB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCkgb3Zl
cnJpZGU7Ci0tIAoyLjguMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286564</attachid>
            <date>2016-08-21 05:48:40 -0700</date>
            <delta_ts>2016-08-21 17:21:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160542-20160821144643.patch</filename>
            <type>text/plain</type>
            <size>26774</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTExNTVmMmViZDNhNTA4
MGNmZDZkZTlmOWQwZDFhZDRlNDM5MDVkMS4uYzJlMzMyYTM3Y2M2ZjJiZDM2MTY1MGRhZjc3ODQ4
YzkxNGVjYTViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE2LTA4LTA0ICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBSZW5hbWUgTWF0aE1MVGV4
dEVsZW1lbnQgdG8gTWF0aE1MVG9rZW5FbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA1NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlaGF2aW9yIGlzIHVuY2hhbmdl
ZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBSZW5hbWUgTWF0aE1MVGV4dEVsZW1lbnQg
dG8gTWF0aE1MVG9rZW5FbGVtZW50LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogbWF0aG1sL01hdGhNTEFsbEluT25lLmNwcDog
RGl0dG8uCisgICAgICAgICogbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHA6IERpdHRv
LgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuaDogRGl0dG8uCisgICAg
ICAgICogbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5jcHA6IERpdHRvLiBBbHNvIHJlbW92ZSBk
ZWFkIGNvZGUgaW4gY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcgorICAgICAgICB0byBoYW5kbGUg
dGhlIGNhc2Ugb2YgbXNwYWNlIHNpbmNlIHRoYXQgZWxlbWVudCB1c2VzIGl0cyBvd24gY2xhc3Mg
YW5kIGZvcmJpZHMgY2hpbGQgY3JlYXRpb24KKyAgICAgICAgaW4gUmVuZGVyTWF0aE1MU3BhY2U6
OmlzQ2hpbGRBbGxvd2VkLgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxUb2tlbkVsZW1lbnQuaDog
UmVuYW1lIE1hdGhNTFRleHRFbGVtZW50IHRvIE1hdGhNTFRva2VuRWxlbWVudC4KKyAgICAgICAg
KiBtYXRobWwvbWF0aHRhZ3MuaW46IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MVG9rZW4uY3BwOiBNb3ZlIGluY2x1c2lvbiBvZiBNYXRoTUxUb2tlbkVsZW1l
bnQuaCBhbmQKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgZWxlbWVudCgpIGhlcmUuCisgICAg
ICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oOiBEbyBub3QgaW1wbGVt
ZW50IGVsZW1lbnQoKSBpbiB0aGUgaGVhZGVyIHNvIHRoYXQKKyAgICAgICAgd2Ugb25seSBuZWVk
IG5lZWQgdG8gcHJlZGVjbGFyZSBNYXRoTUxUb2tlbkVsZW1lbnQgaW5zdGVhZCBvZiBpbmNsdWRp
bmcgaXRzIGhlYWRlci4KKwogMjAxNi0wOC0yMSAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxp
YS5jb20+CiAKICAgICAgICAgSW50cm9kdWNlIGEgTWF0aE1MQW5ub3RhdGlvbkVsZW1lbnQgY2xh
c3MgZm9yIHRoZSBhbm5vdGF0aW9uL2Fubm90YXRpb24teG1sIGVsZW1lbnRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDZhY2M3M2M1ZWY0YmZkZjJmMDFlMzQ4NzYyZjg3YmNmYzBhZWIwODUuLmQx
ZTlkMmUzNmUwYWE1Y2I4NTg2MTA4ODRhMmVlMDMwYWI5NjU0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0yMDE0LDcgKzIwMTQsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbWF0aG1s
L01hdGhNTFNjcmlwdHNFbGVtZW50LmNwcAogICAgIG1hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50
LmNwcAogICAgIG1hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuY3BwCi0gICAgbWF0aG1sL01hdGhN
TFRleHRFbGVtZW50LmNwcAorICAgIG1hdGhtbC9NYXRoTUxUb2tlbkVsZW1lbnQuY3BwCiAgICAg
bWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3BwCiAKICAgICBwYWdlL0F1dG9zY3JvbGxD
b250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDk5N2NjYmRhNDYzNTRkNzk5ODI4M2MxZmMyZTBjMjM4MDMzOWRi
ZGYuLjdmYTRmMmQxOTU2YTc4ZWQ5ZTEwZjI1MzFmZTQ3ZDI0MjE2NDM0MTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY3MDks
MTAgKzY3MDksMTAgQEAKIAkJRjk4RkZGNDQxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjk4RkZG
NDIxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRpbHMuY3BwICovOyB9OwogCQlGOThGRkY0NTEx
QTI2NzYyMDBGNTQ4RTggLyogQ1NTT01VdGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjk4RkZGNDMxMUEyNjc2MjAwRjU0OEU4IC8qIENTU09NVXRp
bHMuaCAqLzsgfTsKIAkJRjlGMEVEN0EwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjlGMEVENzcwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oICovOyB9OwotCQlGQTY1NEE2QjExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4dEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkE2NTRBNjkxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmNwcCAqLzsgfTsK
KwkJRkE2NTRBNkIxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRva2VuRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQTY1NEE2OTExMDhB
QkVEMDAyNjE1RTAgLyogTWF0aE1MVG9rZW5FbGVtZW50LmNwcCAqLzsgfTsKIAkJRkE2NTRBNkIx
MTA4QUJFRDAwMjYxNkYxIC8qIE1hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQTY1NEE2OTExMDhBQkVEMDAyNjE2
RjEgLyogTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcCAqLzsgfTsKIAkJRkE2NTRBNkIxMTA4QUJF
RDAwMjYyNkYxIC8qIE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkE2NTRBNjkxMTA4QUJFRDAwMjYyNkYxIC8q
IE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3BwICovOyB9OwotCQlGQTY1NEE2QzExMDhBQkVEMDAy
NjE1RTAgLyogTWF0aE1MVGV4dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZBNjU0QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUZXh0
RWxlbWVudC5oICovOyB9OworCQlGQTY1NEE2QzExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVG9r
ZW5FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGQTY1NEE2QTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVG9rZW5FbGVtZW50LmggKi87IH07
CiAJCUZBNjU0QTZDMTEwOEFCRUQwMDI2MTZGMSAvKiBNYXRoTUxPcGVyYXRvckVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBNjU0QTZBMTEw
OEFCRUQwMDI2MTZGMSAvKiBNYXRoTUxPcGVyYXRvckVsZW1lbnQuaCAqLzsgfTsKIAkJRkE2NTRB
NkMxMTA4QUJFRDAwMjYyNkYxIC8qIE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBNjU0QTZBMTEwOEFCRUQwMDI2
MjZGMSAvKiBNYXRoTUxVbmRlck92ZXJFbGVtZW50LmggKi87IH07CiAJCUZBQkU3MkY0MTA1OUMx
RUIwMEQ4ODhDQyAvKiBNYXRoTUxBbm5vdGF0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQUJFNzJFRDEwNTlDMUVCMDBEODg4Q0Mg
LyogTWF0aE1MQW5ub3RhdGlvbkVsZW1lbnQuY3BwICovOyB9OwpAQCAtMTQ2ODcsMTAgKzE0Njg3
LDEwIEBACiAJCUY5RjBFRDc4MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGQTY1NEE2MzExMDhB
QkI3MDAyNjE1RTAgLyogbWF0aG1sLmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuY3NzOyBwYXRoID0gbWF0
aG1sLmNzczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNjcxMTA4QUJFMjAw
MjYxNUUwIC8qIG1hdGhhdHRycy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBtYXRoYXR0cnMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZBNjU0QTY5MTEwOEFCRUQwMDI2MTVF
MCAvKiBNYXRoTUxUZXh0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBNYXRoTUxUZXh0RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUZBNjU0QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0aE1MVG9rZW5FbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2NTRBNjkxMTA4QUJFRDAwMjYxNkYx
IC8qIE1hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNYXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGQTY1NEE2OTExMDhBQkVEMDAyNjI2RjEgLyogTWF0aE1MVW5kZXJPdmVyRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRoTUxVbmRl
ck92ZXJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkE2NTRBNkEx
MTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFRleHRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1hdGhNTFRleHRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUZBNjU0QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWF0aE1MVG9rZW5FbGVtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZBNjU0QTZBMTEwOEFCRUQwMDI2MTZGMSAv
KiBNYXRoTUxPcGVyYXRvckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWF0aE1MT3BlcmF0b3JFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZBNjU0QTZBMTEwOEFCRUQwMDI2MjZGMSAvKiBNYXRoTUxVbmRlck92ZXJFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkE2RTQ2NkZDRDA0MThBOTk2NkE1QjYwIC8q
IEROU1Jlc29sdmVRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBETlNS
ZXNvbHZlUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MzcyLDggKzI0
MzcyLDggQEAKIAkJCQk1OTc4MDg0OUQ0MUU2RjY1RDgxMTk4QkMgLyogTWF0aE1MU2VsZWN0RWxl
bWVudC5oICovLAogCQkJCTRGQTY1QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFjZUVs
ZW1lbnQuY3BwICovLAogCQkJCTRGQTY1QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFj
ZUVsZW1lbnQuaCAqLywKLQkJCQlGQTY1NEE2OTExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVGV4
dEVsZW1lbnQuY3BwICovLAotCQkJCUZBNjU0QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxU
ZXh0RWxlbWVudC5oICovLAorCQkJCUZBNjU0QTY5MTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxU
b2tlbkVsZW1lbnQuY3BwICovLAorCQkJCUZBNjU0QTZBMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRo
TUxUb2tlbkVsZW1lbnQuaCAqLywKIAkJCQlGQTY1NEE2OTExMDhBQkVEMDAyNjI2RjEgLyogTWF0
aE1MVW5kZXJPdmVyRWxlbWVudC5jcHAgKi8sCiAJCQkJRkE2NTRBNkExMTA4QUJFRDAwMjYyNkYx
IC8qIE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQuaCAqLywKIAkJCQlGQUJFNzJGMzEwNTlDMUVCMDBE
OTk5REQgLyogbWF0aHRhZ3MuaW4gKi8sCkBAIC0yNjgwNyw3ICsyNjgwNyw3IEBACiAJCQkJRkE2
NTRBNkMxMTA4QUJFRDAwMjYxNkYxIC8qIE1hdGhNTE9wZXJhdG9yRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNEZBNjVBNkMxMTA4QUJFRDAwMjYxNUUwIC8qIE1hdGhNTFNwYWNlRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MTc2RTAxMkRBMjVFMTdCQUY4MEEyIC8qIE1hdGhN
TFN0eWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGQTY1NEE2QzExMDhBQkVEMDAyNjE1RTAgLyog
TWF0aE1MVGV4dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZBNjU0QTZDMTEwOEFCRUQw
MDI2MTVFMCAvKiBNYXRoTUxUb2tlbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZBNjU0
QTZDMTEwOEFCRUQwMDI2MjZGMSAvKiBNYXRoTUxVbmRlck92ZXJFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MzkwNDZFQTEyREEyNUU4MTJBRjgwQUMgLyogTWF0aE9wZXJhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OUQ1REMyQzBGNDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFu
c2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMzA2MjEsNyArMzA2MjEsNyBAQAog
CQkJCUZFRDQ4MzkwQ0VENjZDMzI1NUY3MkM1OSAvKiBNYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTRGQTY1QTZCMTEwOEFCRUQwMDI2MTVFMCAvKiBNYXRoTUxTcGFj
ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5MTc2REYxMkRBMjVFMTdCQUY4MEEy
IC8qIE1hdGhNTFN0eWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZBNjU0QTZCMTEwOEFCRUQw
MDI2MTVFMCAvKiBNYXRoTUxUZXh0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGQTY1
NEE2QjExMDhBQkVEMDAyNjE1RTAgLyogTWF0aE1MVG9rZW5FbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZBNjU0QTZCMTEwOEFCRUQwMDI2MjZGMSAvKiBNYXRoTUxVbmRlck92ZXJFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkU5MTJEQTI1RTgxMkFGODBBQyAvKiBN
YXRoT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlENURDMkIwRjQyM0E3MzAwOEYy
MEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxBbGxJbk9uZS5jcHAKaW5kZXggMmQ2ODFkMTY2ZGVjN2E0
ZWY0ZjQ3YjVkZDA2OTQ3ODgwYTMxZDllNS4uNzc1MjBiZGQ0YWFjMzkwNWU1ZmE4MTE3M2FjMDlj
ZmIxZjJhYjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEFsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MQWxsSW5PbmUuY3BwCkBA
IC0zNiw2ICszNiw2IEBACiAjaW5jbHVkZSAiTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAiCiAjaW5j
bHVkZSAiTWF0aE1MU2NyaXB0c0VsZW1lbnQuY3BwIgogI2luY2x1ZGUgIk1hdGhNTFNlbGVjdEVs
ZW1lbnQuY3BwIgotI2luY2x1ZGUgIk1hdGhNTFRleHRFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJN
YXRoTUxUb2tlbkVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIk1hdGhNTFVuZGVyT3ZlckVsZW1lbnQu
Y3BwIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQu
Y3BwCmluZGV4IDY0NjIxZjY2ZmZiMGVmN2QzN2I4MTIwM2FhYzE5OTJiZTQwYmNmODQuLjQ1ZmM3
ODM5YTQzZTM3NTZkNjhhNDFmN2FmNDBmYTNlMDYxN2U4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwCkBAIC0zOCw3ICszOCw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBNYXRoTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBNYXRoTUxPcGVyYXRv
ckRpY3Rpb25hcnk7CiAKIE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6TWF0aE1MT3BlcmF0b3JFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKLSAg
ICA6IE1hdGhNTFRleHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorICAgIDogTWF0aE1MVG9r
ZW5FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewogfQogCkBAIC0yMTksNyArMjE5LDcgQEAg
dm9pZCBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYgY2hhbmdlKQogICAgIG1fb3BlcmF0b3JDaGFyID0gTnVsbG9wdDsKICAgICBtX2RpY3Rp
b25hcnlQcm9wZXJ0eSA9IE51bGxvcHQ7CiAgICAgbV9wcm9wZXJ0aWVzLmRpcnR5RmxhZ3MgPSBN
YXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OmFsbEZsYWdzOwotICAgIE1hdGhNTFRleHRFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKKyAgICBNYXRoTUxUb2tlbkVsZW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChjaGFuZ2UpOwogfQogCiBzdGF0aWMgT3B0aW9uYWw8TWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5OjpGbGFnPiBhdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eUZsYWcoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkKQEAgLTI2Miw3ICsyNjIsNyBAQCB2b2lkIE1hdGhNTE9wZXJhdG9yRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgTWF0aE1MVGV4dEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxUb2tlbkVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhN
TE9wZXJhdG9yRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5
bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MT3BlcmF0b3JFbGVtZW50LmgKaW5kZXggY2Y5ZTcyODlmYzNmNTViYjJmZDM5ZDAzMmEx
MDkzZjljNGFjNjQ0YS4uOTQwZjQyZjZkMWQ3MjU2ZDQwYWRjMGIzNzMyYTVkZTc2OTcwNGQyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuaApAQCAt
MjcsMTEgKzI3LDExIEBACiAKICNpZiBFTkFCTEUoTUFUSE1MKQogI2luY2x1ZGUgIk1hdGhNTE9w
ZXJhdG9yRGljdGlvbmFyeS5oIgotI2luY2x1ZGUgIk1hdGhNTFRleHRFbGVtZW50LmgiCisjaW5j
bHVkZSAiTWF0aE1MVG9rZW5FbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgTWF0aE1MT3BlcmF0b3JFbGVtZW50IGZpbmFsIDogcHVibGljIE1hdGhNTFRleHRFbGVtZW50
IHsKK2NsYXNzIE1hdGhNTE9wZXJhdG9yRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBNYXRoTUxUb2tl
bkVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWF0aE1MT3BlcmF0b3JFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKICAgICBz
dHJ1Y3QgT3BlcmF0b3JDaGFyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxUZXh0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVs
ZW1lbnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjRkY2Y4MWE4ZmEwYWNm
NjExNDM1OTRlNWZkMWE3YWYwYTY0ZjU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFsZXggTWlsb3dza2kgKGFsZXhAbWlsb3dza2kuY29tKS4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUo
TUFUSE1MKQotCi0jaW5jbHVkZSAiTWF0aE1MVGV4dEVsZW1lbnQuaCIKLQotI2luY2x1ZGUgIk1h
dGhNTE5hbWVzLmgiCi0jaW5jbHVkZSAiUmVuZGVyTWF0aE1MVG9rZW4uaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7Ci0KLU1hdGhNTFRleHRF
bGVtZW50OjpNYXRoTUxUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBNYXRoTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQotewotICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwotfQotCi1SZWY8
TWF0aE1MVGV4dEVsZW1lbnQ+IE1hdGhNTFRleHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQotewotICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE1hdGhNTFRleHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7Ci19Ci0KLXZv
aWQgTWF0aE1MVGV4dEVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCi17Ci0gICAgTWF0aE1M
RWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCk7Ci0gICAgaWYgKGlzPFJlbmRlck1hdGhNTFRv
a2VuPihyZW5kZXJlcigpKSkKLSAgICAgICAgZG93bmNhc3Q8UmVuZGVyTWF0aE1MVG9rZW4+KCpy
ZW5kZXJlcigpKS51cGRhdGVUb2tlbkNvbnRlbnQoKTsKLX0KLQotdm9pZCBNYXRoTUxUZXh0RWxl
bWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCi17Ci0gICAg
TWF0aE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7Ci0gICAgaWYgKGlzPFJlbmRl
ck1hdGhNTFRva2VuPihyZW5kZXJlcigpKSkKLSAgICAgICAgZG93bmNhc3Q8UmVuZGVyTWF0aE1M
VG9rZW4+KCpyZW5kZXJlcigpKS51cGRhdGVUb2tlbkNvbnRlbnQoKTsKLX0KLQotdm9pZCBNYXRo
TUxUZXh0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBpZiAobmFtZSA9PSBtYXRodmFyaWFu
dEF0dHIpIHsKLSAgICAgICAgbV9tYXRoVmFyaWFudCA9IE51bGxvcHQ7Ci0gICAgICAgIGlmIChy
ZW5kZXJlcigpKQotICAgICAgICAgICAgTWF0aE1MU3R5bGU6OnJlc29sdmVNYXRoTUxTdHlsZVRy
ZWUocmVuZGVyZXIoKSk7Ci0gICAgfQotCi0gICAgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOwotfQotCi1SZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MVGV4
dEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKQotewotICAgIEFTU0VSVChoYXNUYWdOYW1lKE1hdGhNTE5h
bWVzOjptaVRhZykgfHwgaGFzVGFnTmFtZShNYXRoTUxOYW1lczo6bW5UYWcpIHx8IGhhc1RhZ05h
bWUoTWF0aE1MTmFtZXM6Om1zVGFnKSB8fCBoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptdGV4dFRh
ZykpOwotCi0gICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTFRva2VuPigqdGhp
cywgV1RGTW92ZShzdHlsZSkpOwotfQotCi1ib29sIE1hdGhNTFRleHRFbGVtZW50OjpjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAotewotICAgIGlmICho
YXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc3BhY2VUYWcpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICAvLyBUaGUgSFRNTCBzcGVjaWZpY2F0aW9uIGRlZmluZXMgPG1pPiwgPG1vPiwgPG1u
PiwgPG1zPiBhbmQgPG10ZXh0PiBhcyBpbnNlcnRpb24gcG9pbnRzLgotICAgIHJldHVybiBpc1Bo
cmFzaW5nQ29udGVudChjaGlsZCkgJiYgU3R5bGVkRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjaGlsZCk7Ci19Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVGV4dEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0MjFmZjllZDA0YmM5MmM5NjA1NmUyZmRmOWE4N2EwNWVlZTIxZDc2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxUZXh0RWxlbWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBbGV4IE1pbG93c2tpIChhbGV4QG1pbG93c2tp
LmNvbSkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBT
LkwuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShNQVRI
TUwpCi0jaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIE1hdGhNTFRleHRFbGVtZW50IDogcHVibGljIE1hdGhNTEVsZW1lbnQgewotcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8TWF0aE1MVGV4dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwotICAgIGJvb2wgYWNjZXB0c01hdGhWYXJpYW50
QXR0cmlidXRlKCkgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgTWF0
aE1MVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsK
LSAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKLQotICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJz
KCkgZmluYWw7Ci0KLSAgICBib29sIGlzTWF0aE1MVG9rZW4oKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9Ci0gICAgYm9vbCBpc1ByZXNlbnRhdGlvbk1hdGhNTCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KLX07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVG9rZW5FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxUb2tlbkVsZW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2
MDc2MDkwM2Q5ZGQ0MTYzZmRjNDYwMWJjOWY0OGIyZDBmOTY5MTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVG9rZW5FbGVtZW50LmNwcApAQCAtMCwwICsx
LDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFsZXggTWlsb3dza2kgKGFsZXhAbWls
b3dza2kuY29tKS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShNQVRITUwpCisjaW5jbHVkZSAiTWF0aE1MVG9rZW5FbGVtZW50LmgiCisKKyNpbmNs
dWRlICJNYXRoTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRlck1hdGhNTFRva2VuLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIE1hdGhNTE5hbWVzOworCitNYXRo
TUxUb2tlbkVsZW1lbnQ6Ok1hdGhNTFRva2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBNYXRoTUxFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KQoreworICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwor
fQorCitSZWY8TWF0aE1MVG9rZW5FbGVtZW50PiBNYXRoTUxUb2tlbkVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTWF0aE1MVG9rZW5FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7Cit9CisKK3ZvaWQgTWF0aE1MVG9rZW5FbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQor
eworICAgIE1hdGhNTEVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpOworICAgIGlmIChpczxS
ZW5kZXJNYXRoTUxUb2tlbj4ocmVuZGVyZXIoKSkpCisgICAgICAgIGRvd25jYXN0PFJlbmRlck1h
dGhNTFRva2VuPigqcmVuZGVyZXIoKSkudXBkYXRlVG9rZW5Db250ZW50KCk7Cit9CisKK3ZvaWQg
TWF0aE1MVG9rZW5FbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNo
YW5nZSkKK3sKKyAgICBNYXRoTUxFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKKyAg
ICBpZiAoaXM8UmVuZGVyTWF0aE1MVG9rZW4+KHJlbmRlcmVyKCkpKQorICAgICAgICBkb3duY2Fz
dDxSZW5kZXJNYXRoTUxUb2tlbj4oKnJlbmRlcmVyKCkpLnVwZGF0ZVRva2VuQ29udGVudCgpOwor
fQorCit2b2lkIE1hdGhNTFRva2VuRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAobmFt
ZSA9PSBtYXRodmFyaWFudEF0dHIpIHsKKyAgICAgICAgbV9tYXRoVmFyaWFudCA9IE51bGxvcHQ7
CisgICAgICAgIGlmIChyZW5kZXJlcigpKQorICAgICAgICAgICAgTWF0aE1MU3R5bGU6OnJlc29s
dmVNYXRoTUxTdHlsZVRyZWUocmVuZGVyZXIoKSk7CisgICAgfQorCisgICAgTWF0aE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworfQorCitSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gTWF0aE1MVG9rZW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5
bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKK3sKKyAgICBBU1NFUlQoaGFz
VGFnTmFtZShNYXRoTUxOYW1lczo6bWlUYWcpIHx8IGhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om1u
VGFnKSB8fCBoYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptc1RhZykgfHwgaGFzVGFnTmFtZShNYXRo
TUxOYW1lczo6bXRleHRUYWcpKTsKKworICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJN
YXRoTUxUb2tlbj4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKK30KKworYm9vbCBNYXRoTUxUb2tl
bkVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNv
bnN0Cit7CisgICAgLy8gVGhlIEhUTUwgc3BlY2lmaWNhdGlvbiBkZWZpbmVzIDxtaT4sIDxtbz4s
IDxtbj4sIDxtcz4gYW5kIDxtdGV4dD4gYXMgaW5zZXJ0aW9uIHBvaW50cy4KKyAgICByZXR1cm4g
aXNQaHJhc2luZ0NvbnRlbnQoY2hpbGQpICYmIFN0eWxlZEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoY2hpbGQpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFRva2VuRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5
Y2U4NGRkMjI3ZTkxMmY0NTQwZGFkOTY0MTI0YTUxNmFkMDVmOGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVG9rZW5FbGVtZW50LmgKQEAgLTAsMCArMSw1
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBbGV4IE1pbG93c2tpIChhbGV4QG1pbG93
c2tpLmNvbSkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShN
QVRITUwpCisjaW5jbHVkZSAiTWF0aE1MRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIE1hdGhNTFRva2VuRWxlbWVudCA6IHB1YmxpYyBNYXRoTUxFbGVtZW50IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1hdGhNTFRva2VuRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgYm9vbCBhY2NlcHRzTWF0aFZh
cmlhbnRBdHRyaWJ1dGUoKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKK3Byb3RlY3RlZDoKKyAg
ICBNYXRoTUxUb2tlbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmKTsKKyAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CisgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKKworICAgIHZvaWQgZGlkQXR0YWNoUmVu
ZGVyZXJzKCkgZmluYWw7CisKKyAgICBib29sIGlzTWF0aE1MVG9rZW4oKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBpc1ByZXNlbnRhdGlvbk1hdGhNTCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNQVRITUwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvbWF0aHRhZ3MuaW4KaW5kZXggMDkzN2U0ZGU3ZTdmMzExN2ExYTBiNGE2
OGUwMmE3NTMwMzRkMjUwNS4uMmEyZjVhYjlhZWNjZTI1ZDViNWQ5YTIxYTZkMmJiODA3MzkzNTIx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL21hdGh0YWdzLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9tYXRodGFncy5pbgpAQCAtMjAsMTEgKzIwLDExIEBAIG11bmRl
ciBpbnRlcmZhY2VOYW1lPU1hdGhNTFVuZGVyT3ZlckVsZW1lbnQKIG11bmRlcm92ZXIgaW50ZXJm
YWNlTmFtZT1NYXRoTUxVbmRlck92ZXJFbGVtZW50CiBtc3FydCBpbnRlcmZhY2VOYW1lPU1hdGhN
TElubGluZUNvbnRhaW5lckVsZW1lbnQKIG1yb290IGludGVyZmFjZU5hbWU9TWF0aE1MSW5saW5l
Q29udGFpbmVyRWxlbWVudAotbWkgaW50ZXJmYWNlTmFtZT1NYXRoTUxUZXh0RWxlbWVudAotbW4g
aW50ZXJmYWNlTmFtZT1NYXRoTUxUZXh0RWxlbWVudAorbWkgaW50ZXJmYWNlTmFtZT1NYXRoTUxU
b2tlbkVsZW1lbnQKK21uIGludGVyZmFjZU5hbWU9TWF0aE1MVG9rZW5FbGVtZW50CiBtbyBpbnRl
cmZhY2VOYW1lPU1hdGhNTE9wZXJhdG9yRWxlbWVudAotbXRleHQgaW50ZXJmYWNlTmFtZT1NYXRo
TUxUZXh0RWxlbWVudAotbXMgaW50ZXJmYWNlTmFtZT1NYXRoTUxUZXh0RWxlbWVudAorbXRleHQg
aW50ZXJmYWNlTmFtZT1NYXRoTUxUb2tlbkVsZW1lbnQKK21zIGludGVyZmFjZU5hbWU9TWF0aE1M
VG9rZW5FbGVtZW50CiBtc3BhY2UgaW50ZXJmYWNlTmFtZT1NYXRoTUxTcGFjZUVsZW1lbnQKIG1z
dWIgaW50ZXJmYWNlTmFtZT1NYXRoTUxTY3JpcHRzRWxlbWVudAogbXN1cCBpbnRlcmZhY2VOYW1l
PU1hdGhNTFNjcmlwdHNFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTFRva2VuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MVG9rZW4uY3BwCmluZGV4IDAzOTg4OTg0ODMzNDNjMTRjNjE5
ZDVhNDcxZTRlYzUyODk3YjA4NzcuLmJmZWQyOTVkNjhlMDQzYmQ4ZTI0ZDg5ZDZkMjBjY2NkMWI5
YjJhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MVG9rZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MVG9rZW4uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJNYXRoTUxF
bGVtZW50LmgiCiAjaW5jbHVkZSAiTWF0aE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNYXRoTUxUb2tl
bkVsZW1lbnQuaCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKQEAgLTUzLDYgKzU0LDExIEBAIFJl
bmRlck1hdGhNTFRva2VuOjpSZW5kZXJNYXRoTUxUb2tlbihEb2N1bWVudCYgZG9jdW1lbnQsIFJl
bmRlclN0eWxlJiYgc3R5bGUpCiB7CiB9CiAKK01hdGhNTFRva2VuRWxlbWVudCYgUmVuZGVyTWF0
aE1MVG9rZW46OmVsZW1lbnQoKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxNYXRoTUxUb2tl
bkVsZW1lbnQmPihub2RlRm9yTm9uQW5vbnltb3VzKCkpOworfQorCiB2b2lkIFJlbmRlck1hdGhN
TFRva2VuOjp1cGRhdGVUb2tlbkNvbnRlbnQoKQogewogICAgIFJlbmRlck1hdGhNTEJsb2NrOjp1
cGRhdGVGcm9tRWxlbWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxUb2tlbi5oCmluZGV4IDljYWY0OGM1NzAwY2M3ZjExNmVhZThhYmI1
OWQ1YTlhODUyZDRiNGYuLjlhNzFiNjZiYjU1ZWExZmYzMDY0ZWYyMjAxMTE3ZDBjMjE0ODE0MWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
VG9rZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TFRva2VuLmgKQEAgLTI4LDE3ICsyOCwxOCBAQAogCiAjaWYgRU5BQkxFKE1BVEhNTCkKIAotI2lu
Y2x1ZGUgIk1hdGhNTFRleHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0aE1MQmxvY2su
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBNYXRoTUxUb2tlbkVsZW1lbnQ7CisK
IGNsYXNzIFJlbmRlck1hdGhNTFRva2VuIDogcHVibGljIFJlbmRlck1hdGhNTEJsb2NrIHsKIHB1
YmxpYzoKICAgICBSZW5kZXJNYXRoTUxUb2tlbihFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAg
ICAgUmVuZGVyTWF0aE1MVG9rZW4oRG9jdW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKIAotICAgIE1h
dGhNTFRleHRFbGVtZW50JiBlbGVtZW50KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TWF0aE1MVGV4
dEVsZW1lbnQmPihub2RlRm9yTm9uQW5vbnltb3VzKCkpOyB9CisgICAgTWF0aE1MVG9rZW5FbGVt
ZW50JiBlbGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVG9rZW5Db250ZW50KCk7
CiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOwo=
</data>
<flag name="review"
          id="310094"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>