<?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>160245</bug_id>
          
          <creation_ts>2016-07-27 07:13:05 -0700</creation_ts>
          <short_desc>Introduce a RenderMathMLFencedOperator class</short_desc>
          <delta_ts>2016-08-01 00:45:44 -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>160241</dependson>
          <blocked>160396</blocked>
    
    <blocked>156537</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>jfernandez</cc>
    
    <cc>rego</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1214882</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-27 07:13:05 -0700</bug_when>
    <thetext>Another step towards bug 156537. This class will handle all the code specific to (anonymous) mfenced operators. In particular many members of the RenderMathMLOperator class are going to be removed while fixing bug 156537 but they may still need to stored and exposed in some way by mfenced operators. This work applies after bug 160241 and the new class will first be used to expose the m_textContent and update it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214887</commentid>
    <comment_count>1</comment_count>
      <attachid>284694</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-27 07:27:42 -0700</bug_when>
    <thetext>Created attachment 284694
Patch (applies after bug 160241)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215511</commentid>
    <comment_count>2</comment_count>
      <attachid>284850</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-29 00:39:26 -0700</bug_when>
    <thetext>Created attachment 284850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215526</commentid>
    <comment_count>3</comment_count>
      <attachid>284855</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-07-29 02:10:10 -0700</bug_when>
    <thetext>Created attachment 284855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1215558</commentid>
    <comment_count>4</comment_count>
      <attachid>284855</attachid>
    <who name="Javier Fernandez">jfernandez</who>
    <bug_when>2016-07-29 07:51:09 -0700</bug_when>
    <thetext>Comment on attachment 284855
Patch

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

&gt; Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp:87
&gt; +RenderPtr&lt;RenderMathMLFencedOperator&gt; RenderMathMLFenced::createMathMLOperator(const String&amp; operatorString, MathMLOperatorDictionary::Form form, MathMLOperatorDictionary::Flag flag)

Probably not a change to be don in this patch, but I wonder whether we should remove the RenderPtr and use std:unique instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216008</commentid>
    <comment_count>5</comment_count>
      <attachid>284855</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-07-31 21:35:42 -0700</bug_when>
    <thetext>Comment on attachment 284855
Patch

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

&gt; Source/WebCore/rendering/mathml/RenderMathMLFencedOperator.cpp:39
&gt; +    m_operatorForm = form;
&gt; +    m_operatorFlags = flags;

Can we pass these to a base class constructor instead of using assignment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216048</commentid>
    <comment_count>6</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-01 00:44:35 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Probably not a change to be don in this patch, but I wonder whether we
&gt; should remove the RenderPtr and use std:unique instead.

Yes, I opened 160396.

(In reply to comment #5)
&gt; Comment on attachment 284855 [details]
&gt; Can we pass these to a base class constructor instead of using assignment?

OK. The plan is to move these members to the derived class later, but for now I&apos;ll keep initialization in the base class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216049</commentid>
    <comment_count>7</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-08-01 00:45:44 -0700</bug_when>
    <thetext>Committed r203973: &lt;http://trac.webkit.org/changeset/203973&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284694</attachid>
            <date>2016-07-27 07:27:42 -0700</date>
            <delta_ts>2016-07-29 00:39:20 -0700</delta_ts>
            <desc>Patch (applies after bug 160241)</desc>
            <filename>0002-Bug-160245-Introduce-a-RenderMathMLFencedOperator-cl.patch</filename>
            <type>text/plain</type>
            <size>23059</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSAwZTRkYzMwMWI1NjdmZDM2N2IwZTE2ZjAyZWY2MTUxYTczZTUyMmZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KRGF0
ZTogV2VkLCAyNyBKdWwgMjAxNiAxNjoyMzozMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBC
dWcgMTYwMjQ1IC0gSW50cm9kdWNlIGEgUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IgY2xhc3MK
Ci0tLQogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAgICAgICAg
fCAgMSArCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8IDQ1ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgIDggKysrKwogLi4uL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MRmVuY2VkLmNwcCAgICAgICAgfCAxNiArKystLS0tCiAuLi4vV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5oICB8ICA2ICstLQogLi4uL21hdGhtbC9S
ZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAgICAgICAgICAgfCA1MiArKysrKysrKysrKysr
KysrKysrKysrCiAuLi4vcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRv
ci5oICB8IDQ4ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxPcGVyYXRvci5jcHAgICAgICB8IDIyICsrLS0tLS0tLQogLi4uL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCAgICAgICAgfCAyMSArKysrLS0tLS0KIDkgZmls
ZXMgY2hhbmdlZCwgMTc5IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVu
Y2VkT3BlcmF0b3IuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBlNjkzNzIxLi43OTk0NmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjUzMSw2
ICsyNTMxLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9tYXRobWwvTWF0
aE9wZXJhdG9yLmNwcAogICAgIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3Bw
CiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCisgICAgcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAKICAgICByZW5kZXJpbmcv
bWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmNwcAogICAgIHJlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MTWF0aC5jcHAKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE1lbmNs
b3NlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDlhZTI2Y2ZjLi40ZDRlZmMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsNTAgQEAKIDIwMTYtMDctMjcgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29t
PgogCisgICAgICAgIEludHJvZHVjZSBhIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yIGNsYXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjAyNDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBpbnRy
b2R1Y2UgYSBjbGFzcyB0byBoYW5kbGUgYWxsIHRoZSBjb2RlIHNwZWNpZmljIHRvIGFub255bW91
cyBtZmVuY2VkIG9wZXJhdG9ycy4gSW4KKyAgICAgICAgcGFydGljdWxhciBtYW55IG1lbWJlcnMg
b2YgdGhlIFJlbmRlck1hdGhNTE9wZXJhdG9yIGNsYXNzIGFyZSBnb2luZyB0byBiZSByZW1vdmVk
IHdoaWxlCisgICAgICAgIGZpeGluZyBidWcgMTU2NTM3IGJ1dCB0aGV5IG1heSBzdGlsbCBuZWVk
IHRvIHN0b3JlZCBhbmQgZXhwb3NlZCBpbiBzb21lIHdheSBieSBtZmVuY2VkCisgICAgICAgIG9w
ZXJhdG9ycy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0
b3IuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4K
KyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHA6IFVzZSBS
ZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciBpbnN0ZWFkIG9mCisgICAgICAgIFJlbmRlck1hdGhN
TE9wZXJhdG9yIGFuZCB1c2UgdGhlIG5ldyBuYW1lIHVwZGF0ZU9wZXJhdG9yQ29udGVudC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTEZlbmNlZDo6dXBkYXRlRnJvbUVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRmVuY2VkOjpjcmVhdGVNYXRoTUxPcGVyYXRv
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxGZW5jZWQ6Om1ha2VGZW5jZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRmVuY2VkOjphZGRDaGlsZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuaDogVXNlIFJlbmRlck1hdGhN
TEZlbmNlZE9wZXJhdG9yIGluc3RlYWQgb2YKKyAgICAgICAgUmVuZGVyTWF0aE1MT3BlcmF0b3Iu
CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5j
cHA6IE5ldyBjbGFzcyBkZXJpdmVkIGZyb20gUmVuZGVyTWF0aE1MT3BlcmF0b3IKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yOjpSZW5kZXJNYXRoTUxGZW5jZWRP
cGVyYXRvcik6IEluaXQgZm9ybSBhbmQgb3BlcmF0b3IKKyAgICAgICAgZmxhZ3Mgd2l0aCB0aGUg
c3BlY2lmaWVkIHBhcmFtZXRlcnMgYW5kIGluaXQgdGhlIHRleHQgY29udGVudC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yOjp1cGRhdGVPcGVyYXRvckNvbnRl
bnQpOiBXZSBtb3ZlIHRoZQorICAgICAgICBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlVG9r
ZW5Db250ZW50IGZ1bmN0aW9uIHVzZWQgYnkgYW5vbnltb3VzIG9wZXJhdG9ycyBoZXJlLiBJdCBp
cworICAgICAgICByZW5hbWVkIHRvIGF2b2lkIGJ1aWxkIGVycm9ycyBkdWUgdG8gY29uZmxpY3Rz
IHdpdGggdGhlIG90aGVyCisgICAgICAgIFJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVUb2tl
bkNvbnRlbnQgZnVuY3Rpb24uCisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxGZW5jZWRPcGVyYXRvci5oOiBOZXcgY2xhc3MgZm9yIGFub255bW91cyBtZmVuY2VkIG9wZXJh
dG9ycworICAgICAgICB3aXRoIGdldHRlciBhbmQgc2V0dGVyIGZvciB0aGUgbV90ZXh0Q29udGVu
dC4KKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjpSZW5kZXJNYXRoTUxPcGVy
YXRvcik6IFNpbXBsaWZ5IHRoZSBjb25zdHJ1Y3RvcnMuIFNvbWUKKyAgICAgICAgaW5pdGlhbGl6
YXRpb25zIGlzIG1vdmVkIGluIFJlbmRlck1hdGhNTE9wZXJhdG9yLmggd2hpbGUgb3RoZXIgY29k
ZSBpcyBtb3ZlZCB0bworICAgICAgICBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjp0ZXh0Q29udGVudCk6IE5vIG5lZWQg
dG8gaGFuZGxlIHRoZSBhbm9ueW1vdXMgY2FzZSBoZXJlIHNpbmNlCisgICAgICAgIGl0IGlzIGhh
bmRsZWQgaW4gUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlVG9rZW5Db250ZW50KTogV2UgZGVsZXRlIHRoZSB2
ZXJzaW9uIHVzZWQgZm9yIGFub255bW91cworICAgICAgICBvcGVyYXRvcnMgYW5kIG1vdmUgaXQg
aW50byBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci4KKyAgICAgICAgKiByZW5kZXJpbmcvbWF0
aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmg6IE1ha2UgdGhlIGNsYXNzIGFuZCBzb21lIG1lbWJl
cnMgb3ZlcnJpZGFibGUgYW5kCisgICAgICAgIGV4cG9zZWQgdG8gdGhlIGRlcml2ZWQgUmVuZGVy
TWF0aE1MRmVuY2VkT3BlcmF0b3IgY2xhc3MuIFdlIGFsc28gbW92ZSBpbml0aWFsaXphdGlvbiBv
ZiBzb21lCisgICAgICAgIG1lbWJlcnMgaGVyZS4KKworMjAxNi0wNy0yNyAgRnJlZGVyaWMgV2Fu
ZyAgPGZ3YW5nQGlnYWxpYS5jb20+CisKICAgICAgICAgUGFyc2UgdGhlIG9wZXJhdG9yIHRleHQg
b24gdGhlIE1hdGhNTE9wZXJhdG9yRWxlbWVudCBjbGFzcy4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDI0MQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2Q2OTg5Ny4uMmU0MTdh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTcwMCw2ICsxNzAwLDggQEAKIAkJNDM5MDQ2RDgxMkRBMjVFODAwQUY4MEEyIC8q
IFJlbmRlck1hdGhNTEJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MzkwNDZDNDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MQmxvY2su
aCAqLzsgfTsKIAkJNDM5MDQ2RDkxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNl
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0Mzkw
NDZDNTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCAqLzsgfTsKIAkJ
NDM5MDQ2REExMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2QzYxMkRBMjVFODAw
QUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5oICovOyB9OworCQk0MzkwNDZEOTEyREEyNUU4
MDBBRjgxQjMgLyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2QzUxMkRBMjVFODAwQUY4MUIz
IC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmNwcCAqLzsgfTsKKwkJNDM5MDQ2REExMkRB
MjVFODAwQUY4MUIzIC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzkwNDZDNjEyREEyNUU4MDBBRjgx
QjMgLyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuaCAqLzsgfTsKIAkJNDM5MDQ2REIxMkRB
MjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzOTA0NkM3MTJEQTI1RTgwMEFGODBBMiAv
KiBSZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAgKi87IH07CiAJCTQzOTA0NkRDMTJEQTI1RTgwMEFG
ODBBMiAvKiBSZW5kZXJNYXRoTUxGcmFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2QzgxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1h
dGhNTEZyYWN0aW9uLmggKi87IH07CiAJCTQzOTA0NkREMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5k
ZXJNYXRoTUxNYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQzOTA0NkM5MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRoLmNwcCAq
LzsgfTsKQEAgLTkzMjcsNiArOTMyOSw4IEBACiAJCTQzOTA0NkM0MTJEQTI1RTgwMEFGODBBMiAv
KiBSZW5kZXJNYXRoTUxCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJNYXRoTUxCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzkwNDZD
NTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1hdGhNTEZlbmNlZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzOTA0NkM2MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJN
YXRoTUxGZW5jZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWF0
aE1MRmVuY2VkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzOTA0NkM1MTJEQTI1
RTgwMEFGODFCMyAvKiBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzOTA0NkM2MTJEQTI1RTgwMEFGODFCMyAv
KiBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MzkwNDZDNzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTWF0aE1M
RnJhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MzkwNDZDODEyREEy
NUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVuZGVyTWF0aE1MRnJhY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDM5MDQ2QzkxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE1hdGgu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTWF0aE1MTWF0
aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzE2Myw2ICsxNzE2Nyw4IEBA
CiAJCQkJNDM5MDQ2QzQxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEJsb2NrLmggKi8s
CiAJCQkJNDM5MDQ2QzUxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5jcHAg
Ki8sCiAJCQkJNDM5MDQ2QzYxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5o
ICovLAorCQkJCTQzOTA0NkM1MTJEQTI1RTgwMEFGODFCMyAvKiBSZW5kZXJNYXRoTUxGZW5jZWRP
cGVyYXRvci5jcHAgKi8sCisJCQkJNDM5MDQ2QzYxMkRBMjVFODAwQUY4MUIzIC8qIFJlbmRlck1h
dGhNTEZlbmNlZE9wZXJhdG9yLmggKi8sCiAJCQkJNDM5MDQ2QzcxMkRBMjVFODAwQUY4MEEyIC8q
IFJlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCAqLywKIAkJCQk0MzkwNDZDODEyREEyNUU4MDBBRjgw
QTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rpb24uaCAqLywKIAkJCQk0MzkwNDZDOTEyREEyNUU4MDBB
RjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5jcHAgKi8sCkBAIC0yNzk1OSw2ICsyNzk2NSw3IEBA
CiAJCQkJMEY1NjAyOEYwRTRCNzY1ODAwNjVCMDM4IC8qIFJlbmRlck1hcnF1ZWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzOTA0NkQ4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxCbG9j
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2REExMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRl
ck1hdGhNTEZlbmNlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDM5MDQ2REExMkRBMjVFODAwQUY4
MUIzIC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MzkwNDZEQzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzOTA0NkRFMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRo
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzkwNDZFMDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVy
TWF0aE1MT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzE2NzEsNiArMzE2NzgsNyBAQAog
CQkJCTBGNTYwMjkwMEU0Qjc2NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQzOTA0NkQ3MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxCbG9j
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzkwNDZEOTEyREEyNUU4MDBBRjgwQTIgLyogUmVu
ZGVyTWF0aE1MRmVuY2VkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQzOTA0NkQ5MTJEQTI1RTgw
MEFGODFCMyAvKiBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0MzkwNDZEQjEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5MDQ2REQxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1h
dGhNTE1hdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzU3MTg4M0VFRjYxODc5Mzc1MUU0MDg5
IC8qIFJlbmRlck1hdGhNTE1lbmNsb3NlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3BwCmlu
ZGV4IDBhZDg4MzIuLjJiYjkwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKICNp
bmNsdWRlICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgogI2luY2x1
ZGUgIlJlbmRlcklubGluZS5oIgotI2luY2x1ZGUgIlJlbmRlck1hdGhNTE9wZXJhdG9yLmgiCisj
aW5jbHVkZSAiUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJU
ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC03OCwyNCAr
NzgsMjQgQEAgdm9pZCBSZW5kZXJNYXRoTUxGZW5jZWQ6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAg
ICAgICAgbWFrZUZlbmNlcygpOwogICAgIGVsc2UgewogICAgICAgICAvLyBGSVhNRTogVGhlIG1m
ZW5jZWQgZWxlbWVudCBmYWlscyB0byB1cGRhdGUgZHluYW1pY2FsbHkgd2hlbiBpdHMgb3Blbiwg
Y2xvc2UgYW5kIHNlcGFyYXRvcnMgYXR0cmlidXRlcyBhcmUgY2hhbmdlZCAoaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3Njk2KS4KLSAgICAgICAgZG93bmNhc3Q8UmVu
ZGVyTWF0aE1MT3BlcmF0b3I+KCpmaXJzdENoaWxkKCkpLnVwZGF0ZVRva2VuQ29udGVudChtX29w
ZW4pOwotICAgICAgICBtX2Nsb3NlRmVuY2VSZW5kZXJlci0+dXBkYXRlVG9rZW5Db250ZW50KG1f
Y2xvc2UpOworICAgICAgICBkb3duY2FzdDxSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4oKmZp
cnN0Q2hpbGQoKSkudXBkYXRlT3BlcmF0b3JDb250ZW50KG1fb3Blbik7CisgICAgICAgIG1fY2xv
c2VGZW5jZVJlbmRlcmVyLT51cGRhdGVPcGVyYXRvckNvbnRlbnQobV9jbG9zZSk7CiAgICAgfQog
fQogCi1SZW5kZXJQdHI8UmVuZGVyTWF0aE1MT3BlcmF0b3I+IFJlbmRlck1hdGhNTEZlbmNlZDo6
Y3JlYXRlTWF0aE1MT3BlcmF0b3IoY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1M
T3BlcmF0b3JEaWN0aW9uYXJ5OjpGb3JtIGZvcm0sIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6
RmxhZyBmbGFnKQorUmVuZGVyUHRyPFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPiBSZW5kZXJN
YXRoTUxGZW5jZWQ6OmNyZWF0ZU1hdGhNTE9wZXJhdG9yKGNvbnN0IFN0cmluZyYgb3BlcmF0b3JT
dHJpbmcsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6Rm9ybSBmb3JtLCBNYXRoTUxPcGVyYXRv
ckRpY3Rpb25hcnk6OkZsYWcgZmxhZykKIHsKLSAgICBSZW5kZXJQdHI8UmVuZGVyTWF0aE1MT3Bl
cmF0b3I+IG5ld09wZXJhdG9yID0gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MT3BlcmF0b3I+
KGRvY3VtZW50KCksIFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5
KHN0eWxlKCksIEJMT0NLKSwgb3BlcmF0b3JTdHJpbmcsIGZvcm0sIGZsYWcpOworICAgIFJlbmRl
clB0cjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4gbmV3T3BlcmF0b3IgPSBjcmVhdGVSZW5k
ZXJlcjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4oZG9jdW1lbnQoKSwgUmVuZGVyU3R5bGU6
OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgQkxPQ0spLCBvcGVyYXRv
clN0cmluZywgZm9ybSwgZmxhZyk7CiAgICAgbmV3T3BlcmF0b3ItPmluaXRpYWxpemVTdHlsZSgp
OwogICAgIHJldHVybiBuZXdPcGVyYXRvcjsKIH0KIAogdm9pZCBSZW5kZXJNYXRoTUxGZW5jZWQ6
Om1ha2VGZW5jZXMoKQogewotICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxPcGVyYXRvcj4gb3Bl
bkZlbmNlID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IobV9vcGVuLCBNYXRoTUxPcGVyYXRvckRpY3Rp
b25hcnk6OlByZWZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGZW5jZSk7CisgICAgUmVu
ZGVyUHRyPFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPiBvcGVuRmVuY2UgPSBjcmVhdGVNYXRo
TUxPcGVyYXRvcihtX29wZW4sIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6UHJlZml4LCBNYXRo
TUxPcGVyYXRvckRpY3Rpb25hcnk6OkZlbmNlKTsKICAgICBSZW5kZXJNYXRoTUxSb3c6OmFkZENo
aWxkKG9wZW5GZW5jZS5sZWFrUHRyKCksIGZpcnN0Q2hpbGQoKSk7CiAKLSAgICBSZW5kZXJQdHI8
UmVuZGVyTWF0aE1MT3BlcmF0b3I+IGNsb3NlRmVuY2UgPSBjcmVhdGVNYXRoTUxPcGVyYXRvciht
X2Nsb3NlLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlBvc3RmaXgsIE1hdGhNTE9wZXJhdG9y
RGljdGlvbmFyeTo6RmVuY2UpOworICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVy
YXRvcj4gY2xvc2VGZW5jZSA9IGNyZWF0ZU1hdGhNTE9wZXJhdG9yKG1fY2xvc2UsIE1hdGhNTE9w
ZXJhdG9yRGljdGlvbmFyeTo6UG9zdGZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGZW5j
ZSk7CiAgICAgbV9jbG9zZUZlbmNlUmVuZGVyZXIgPSBjbG9zZUZlbmNlLmdldCgpOwogICAgIFJl
bmRlck1hdGhNTFJvdzo6YWRkQ2hpbGQoY2xvc2VGZW5jZS5sZWFrUHRyKCkpOwogfQpAQCAtMTA4
LDcgKzEwOCw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MRmVuY2VkOjphZGRDaGlsZChSZW5kZXJPYmpl
Y3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkCiAKICAgICAvLyBGSVhNRTogQWRk
aW5nIG9yIHJlbW92aW5nIGEgY2hpbGQgc2hvdWxkIHBvc3NpYmx5IGNhdXNlIGFsbCBsYXRlciBz
ZXBhcmF0b3JzIHRvIHNoaWZ0IHBsYWNlcyBpZiB0aGV5J3JlIGRpZmZlcmVudCwgYXMgbGF0ZXIg
Y2hpbGQgcG9zaXRpb25zIGNoYW5nZSBieSArMSBvciAtMS4gVGhpcyBzaG91bGQgYWxzbyBoYW5k
bGUgc3Vycm9nYXRlIHBhaXJzLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNTkzOC4KIAotICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxPcGVyYXRvcj4gc2Vw
YXJhdG9yUmVuZGVyZXI7CisgICAgUmVuZGVyUHRyPFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9y
PiBzZXBhcmF0b3JSZW5kZXJlcjsKICAgICBpZiAobV9zZXBhcmF0b3JzLmdldCgpKSB7CiAgICAg
ICAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CiAgICAgICAgIGZvciAoTm9kZSogcG9zaXRpb24g
PSBjaGlsZC0+bm9kZSgpOyBwb3NpdGlvbjsgcG9zaXRpb24gPSBwb3NpdGlvbi0+cHJldmlvdXNT
aWJsaW5nKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MRmVuY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEZlbmNlZC5oCmluZGV4IDdhODE2Y2UuLmY2MjVjZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuaApAQCAt
MjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShNQVRITUwpCiAKICNpbmNsdWRlICJNYXRoTUxJbmxp
bmVDb250YWluZXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCIK
KyNpbmNsdWRlICJSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRl
ck1hdGhNTFJvdy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCwxNCArNDQsMTQgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9i
amVjdCogYmVmb3JlQ2hpbGQpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBm
aW5hbDsKIAotICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxPcGVyYXRvcj4gY3JlYXRlTWF0aE1M
T3BlcmF0b3IoY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1MT3BlcmF0b3JEaWN0
aW9uYXJ5OjpGb3JtLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZsYWcpOworICAgIFJlbmRl
clB0cjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4gY3JlYXRlTWF0aE1MT3BlcmF0b3IoY29u
c3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGb3Jt
LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZsYWcpOwogICAgIHZvaWQgbWFrZUZlbmNlcygp
OwogCiAgICAgU3RyaW5nIG1fb3BlbjsKICAgICBTdHJpbmcgbV9jbG9zZTsKICAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gbV9zZXBhcmF0b3JzOwogCi0gICAgUmVuZGVyTWF0aE1MT3BlcmF0b3IqIG1f
Y2xvc2VGZW5jZVJlbmRlcmVyOworICAgIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yKiBtX2Ns
b3NlRmVuY2VSZW5kZXJlcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThmZDBkNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkT3Bl
cmF0b3IuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNQVRITUwpCisKKyNpbmNsdWRlICJSZW5kZXJN
YXRoTUxGZW5jZWRPcGVyYXRvci5oIgorCisjaW5jbHVkZSAiTWF0aE1MT3BlcmF0b3JFbGVtZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3I6
OlJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5
bGUmJiBzdHlsZSwgY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5OjpGb3JtIGZvcm0sIHVuc2lnbmVkIHNob3J0IGZsYWdzKQorICAgIDogUmVuZGVy
TWF0aE1MT3BlcmF0b3IoZG9jdW1lbnQsIFdURk1vdmUoc3R5bGUpKQoreworICAgIG1fb3BlcmF0
b3JGb3JtID0gZm9ybTsKKyAgICBtX29wZXJhdG9yRmxhZ3MgPSBmbGFnczsKKyAgICB1cGRhdGVP
cGVyYXRvckNvbnRlbnQob3BlcmF0b3JTdHJpbmcpOworfQorCit2b2lkIFJlbmRlck1hdGhNTEZl
bmNlZE9wZXJhdG9yOjp1cGRhdGVPcGVyYXRvckNvbnRlbnQoY29uc3QgU3RyaW5nJiBvcGVyYXRv
clN0cmluZykKK3sKKyAgICBtX3RleHRDb250ZW50ID0gTWF0aE1MT3BlcmF0b3JFbGVtZW50Ojpw
YXJzZU9wZXJhdG9yVGV4dChvcGVyYXRvclN0cmluZyk7CisgICAgcmVidWlsZFRva2VuQ29udGVu
dCgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMjk5ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmgK
QEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoTUFUSE1MKQorCisjaW5jbHVkZSAiTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5
LmgiCisjaW5jbHVkZSAiUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciBmaW5hbCA6IHB1YmxpYyBS
ZW5kZXJNYXRoTUxPcGVyYXRvciB7CitwdWJsaWM6CisgICAgUmVuZGVyTWF0aE1MRmVuY2VkT3Bl
cmF0b3IoRG9jdW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBjb25zdCBTdHJpbmcmIG9wZXJhdG9yU3Ry
aW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZvcm0sIHVuc2lnbmVkIHNob3J0IGZsYWdz
ID0gMCk7CisgICAgdm9pZCB1cGRhdGVPcGVyYXRvckNvbnRlbnQoY29uc3QgU3RyaW5nJik7CisK
K3ByaXZhdGU6CisgICAgVUNoYXIgdGV4dENvbnRlbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3RleHRDb250ZW50OyB9CisKKyAgICBVQ2hhciBtX3RleHRDb250ZW50IHsgMCB9OworfTsKKwor
fTsgLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3Bl
cmF0b3IuY3BwCmluZGV4IDI2OWE3YWYuLmU1ZTU5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuY3BwCkBAIC00
OSwyMyArNDksMTMgQEAgdXNpbmcgbmFtZXNwYWNlIE1hdGhNTE5hbWVzOwogCiBSZW5kZXJNYXRo
TUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IoTWF0aE1MT3BlcmF0b3JFbGVtZW50JiBl
bGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVuZGVyTWF0aE1MVG9rZW4oZWxl
bWVudCwgV1RGTW92ZShzdHlsZSkpCi0gICAgLCBtX3N0cmV0Y2hIZWlnaHRBYm92ZUJhc2VsaW5l
KDApCi0gICAgLCBtX3N0cmV0Y2hEZXB0aEJlbG93QmFzZWxpbmUoMCkKLSAgICAsIG1faXNWZXJ0
aWNhbCh0cnVlKQogewogICAgIHVwZGF0ZVRva2VuQ29udGVudCgpOwogfQogCi1SZW5kZXJNYXRo
TUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IoRG9jdW1lbnQmIGRvY3VtZW50LCBSZW5k
ZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBTdHJpbmcmIG9wZXJhdG9yU3RyaW5nLCBNYXRoTUxPcGVy
YXRvckRpY3Rpb25hcnk6OkZvcm0gZm9ybSwgdW5zaWduZWQgc2hvcnQgZmxhZ3MpCitSZW5kZXJN
YXRoTUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IoRG9jdW1lbnQmIGRvY3VtZW50LCBS
ZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVuZGVyTWF0aE1MVG9rZW4oZG9jdW1lbnQsIFdU
Rk1vdmUoc3R5bGUpKQotICAgICwgbV9zdHJldGNoSGVpZ2h0QWJvdmVCYXNlbGluZSgwKQotICAg
ICwgbV9zdHJldGNoRGVwdGhCZWxvd0Jhc2VsaW5lKDApCi0gICAgLCBtX3RleHRDb250ZW50KDAp
Ci0gICAgLCBtX2lzVmVydGljYWwodHJ1ZSkKLSAgICAsIG1fb3BlcmF0b3JGb3JtKGZvcm0pCi0g
ICAgLCBtX29wZXJhdG9yRmxhZ3MoZmxhZ3MpCiB7Ci0gICAgdXBkYXRlVG9rZW5Db250ZW50KG9w
ZXJhdG9yU3RyaW5nKTsKIH0KIAogTWF0aE1MT3BlcmF0b3JFbGVtZW50JiBSZW5kZXJNYXRoTUxP
cGVyYXRvcjo6ZWxlbWVudCgpIGNvbnN0CkBAIC03NSw3ICs2NSw4IEBAIE1hdGhNTE9wZXJhdG9y
RWxlbWVudCYgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OmVsZW1lbnQoKSBjb25zdAogCiBVQ2hhciBS
ZW5kZXJNYXRoTUxPcGVyYXRvcjo6dGV4dENvbnRlbnQoKSBjb25zdAogewotICAgIHJldHVybiBp
c0Fub255bW91cygpID8gbV90ZXh0Q29udGVudCA6IGVsZW1lbnQoKS5vcGVyYXRvclRleHQoKTsK
KyAgICBBU1NFUlQoIWlzQW5vbnltb3VzKCkpOworICAgIHJldHVybiBlbGVtZW50KCkub3BlcmF0
b3JUZXh0KCk7CiB9CiAKIHZvaWQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OnNldE9wZXJhdG9yRmxh
Z0Zyb21BdHRyaWJ1dGUoTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGbGFnIGZsYWcsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUpCkBAIC0zMTksMTMgKzMxMCw2IEBAIHZvaWQgUmVuZGVyTWF0
aE1MT3BlcmF0b3I6OnJlYnVpbGRUb2tlbkNvbnRlbnQoKQogICAgIHNldE5lZWRzTGF5b3V0QW5k
UHJlZldpZHRoc1JlY2FsYygpOwogfQogCi12b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRh
dGVUb2tlbkNvbnRlbnQoY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZykKLXsKLSAgICBBU1NF
UlQoaXNBbm9ueW1vdXMoKSk7Ci0gICAgbV90ZXh0Q29udGVudCA9IE1hdGhNTE9wZXJhdG9yRWxl
bWVudDo6cGFyc2VPcGVyYXRvclRleHQob3BlcmF0b3JTdHJpbmcpOwotICAgIHJlYnVpbGRUb2tl
bkNvbnRlbnQoKTsKLX0KLQogdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlVG9rZW5D
b250ZW50KCkKIHsKICAgICBBU1NFUlQoIWlzQW5vbnltb3VzKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oCmluZGV4
IDIwNzVkMjMuLjNmNWQ2MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9t
YXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmgKQEAgLTM2LDEwICszNiwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1hdGhNTE9wZXJhdG9yRWxlbWVudDsKIAotY2xhc3Mg
UmVuZGVyTWF0aE1MT3BlcmF0b3IgZmluYWwgOiBwdWJsaWMgUmVuZGVyTWF0aE1MVG9rZW4gewor
Y2xhc3MgUmVuZGVyTWF0aE1MT3BlcmF0b3IgOiBwdWJsaWMgUmVuZGVyTWF0aE1MVG9rZW4gewog
cHVibGljOgogICAgIFJlbmRlck1hdGhNTE9wZXJhdG9yKE1hdGhNTE9wZXJhdG9yRWxlbWVudCYs
IFJlbmRlclN0eWxlJiYpOwotICAgIFJlbmRlck1hdGhNTE9wZXJhdG9yKERvY3VtZW50JiwgUmVu
ZGVyU3R5bGUmJiwgY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5OjpGb3JtLCB1bnNpZ25lZCBzaG9ydCBmbGFncyA9IDApOworICAgIFJlbmRlck1h
dGhNTE9wZXJhdG9yKERvY3VtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAgICAgTWF0aE1MT3BlcmF0
b3JFbGVtZW50JiBlbGVtZW50KCkgY29uc3Q7CiAKICAgICB2b2lkIHN0cmV0Y2hUbyhMYXlvdXRV
bml0IGhlaWdodEFib3ZlQmFzZWxpbmUsIExheW91dFVuaXQgZGVwdGhCZWxvd0Jhc2VsaW5lKTsK
QEAgLTUzLDEyICs1MywxNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1ZlcnRpY2FsKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1ZlcnRpY2FsOyB9CiAgICAgTGF5b3V0VW5pdCBpdGFsaWNDb3JyZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9tYXRoT3BlcmF0b3IuaXRhbGljQ29ycmVjdGlvbigpOyB9CiAK
LSAgICB2b2lkIHVwZGF0ZVRva2VuQ29udGVudChjb25zdCBTdHJpbmcmIG9wZXJhdG9yU3RyaW5n
KTsKICAgICB2b2lkIHVwZGF0ZVRva2VuQ29udGVudCgpIGZpbmFsOwogICAgIHZvaWQgdXBkYXRl
T3BlcmF0b3JQcm9wZXJ0aWVzKCk7CiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIGZpbmFs
OwogICAgIHZpcnR1YWwgVUNoYXIgdGV4dENvbnRlbnQoKSBjb25zdDsKIAorcHJvdGVjdGVkOgor
ICAgIHZvaWQgcmVidWlsZFRva2VuQ29udGVudCgpOworCisgICAgTWF0aE1MT3BlcmF0b3JEaWN0
aW9uYXJ5OjpGb3JtIG1fb3BlcmF0b3JGb3JtOworICAgIHVuc2lnbmVkIHNob3J0IG1fb3BlcmF0
b3JGbGFnczsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BlcmF0b3JQcm9wZXJ0
aWVzKCk7CiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSkgZmluYWw7CkBAIC03Nyw3ICs4Miw2IEBAIHByaXZhdGU6CiAK
ICAgICBPcHRpb25hbDxpbnQ+IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3QgZmluYWw7CiAgICAg
UmVuZGVyTWF0aE1MT3BlcmF0b3IqIHVuZW1iZWxsaXNoZWRPcGVyYXRvcigpIGZpbmFsIHsgcmV0
dXJuIHRoaXM7IH0KLSAgICB2b2lkIHJlYnVpbGRUb2tlbkNvbnRlbnQoKTsKIAogICAgIGJvb2wg
c2hvdWxkQWxsb3dTdHJldGNoaW5nKCkgY29uc3Q7CiAgICAgYm9vbCB1c2VNYXRoT3BlcmF0b3Io
KSBjb25zdDsKQEAgLTg4LDE0ICs5MiwxMSBAQCBwcml2YXRlOgogCiAgICAgTGF5b3V0VW5pdCB2
ZXJ0aWNhbFN0cmV0Y2hlZE9wZXJhdG9yU2hpZnQoKSBjb25zdDsKIAotICAgIExheW91dFVuaXQg
bV9zdHJldGNoSGVpZ2h0QWJvdmVCYXNlbGluZTsKLSAgICBMYXlvdXRVbml0IG1fc3RyZXRjaERl
cHRoQmVsb3dCYXNlbGluZTsKKyAgICBMYXlvdXRVbml0IG1fc3RyZXRjaEhlaWdodEFib3ZlQmFz
ZWxpbmUgeyAwIH07CisgICAgTGF5b3V0VW5pdCBtX3N0cmV0Y2hEZXB0aEJlbG93QmFzZWxpbmUg
eyAwIH07CiAgICAgTGF5b3V0VW5pdCBtX3N0cmV0Y2hXaWR0aDsKIAotICAgIFVDaGFyIG1fdGV4
dENvbnRlbnQ7Ci0gICAgYm9vbCBtX2lzVmVydGljYWw7Ci0gICAgTWF0aE1MT3BlcmF0b3JEaWN0
aW9uYXJ5OjpGb3JtIG1fb3BlcmF0b3JGb3JtOwotICAgIHVuc2lnbmVkIHNob3J0IG1fb3BlcmF0
b3JGbGFnczsKKyAgICBib29sIG1faXNWZXJ0aWNhbCB7IHRydWUgfTsKICAgICBMYXlvdXRVbml0
IG1fbGVhZGluZ1NwYWNlOwogICAgIExheW91dFVuaXQgbV90cmFpbGluZ1NwYWNlOwogICAgIExh
eW91dFVuaXQgbV9taW5TaXplOwotLSAKMi44LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284850</attachid>
            <date>2016-07-29 00:39:26 -0700</date>
            <delta_ts>2016-07-29 02:10:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160245-20160729093812.patch</filename>
            <type>text/plain</type>
            <size>22496</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkxNWQxM2Y1MGFjMTg4
NjQwMDhkOWU1OGMyYWIyOWNkY2M3MjUzNC4uYjM5Yjk5MTY5YWQ1ZWQxNjNhZjZlMzQ5ZDhmYTkx
MDczMjQ3ZWQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTA3LTI3ICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZW5k
ZXJNYXRoTUxGZW5jZWRPcGVyYXRvciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2UgaW50cm9kdWNlIGEgY2xhc3MgdG8gaGFuZGxlIGFsbCB0
aGUgY29kZSBzcGVjaWZpYyB0byBhbm9ueW1vdXMgbWZlbmNlZCBvcGVyYXRvcnMuIEluCisgICAg
ICAgIHBhcnRpY3VsYXIgbWFueSBtZW1iZXJzIG9mIHRoZSBSZW5kZXJNYXRoTUxPcGVyYXRvciBj
bGFzcyBhcmUgZ29pbmcgdG8gYmUgcmVtb3ZlZCB3aGlsZQorICAgICAgICBmaXhpbmcgYnVnIDE1
NjUzNyBidXQgdGhleSBtYXkgc3RpbGwgbmVlZCB0byBzdG9yZWQgYW5kIGV4cG9zZWQgaW4gc29t
ZSB3YXkgYnkgbWZlbmNlZAorICAgICAgICBvcGVyYXRvcnMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBiZWhhdmlvciBpcyB1bmNoYW5nZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDog
QWRkIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxGZW5jZWQuY3BwOiBVc2UgUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IgaW5z
dGVhZCBvZgorICAgICAgICBSZW5kZXJNYXRoTUxPcGVyYXRvciBhbmQgdXNlIHRoZSBuZXcgbmFt
ZSB1cGRhdGVPcGVyYXRvckNvbnRlbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxG
ZW5jZWQ6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhN
TEZlbmNlZDo6Y3JlYXRlTWF0aE1MT3BlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TWF0aE1MRmVuY2VkOjptYWtlRmVuY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhN
TEZlbmNlZDo6YWRkQ2hpbGQpOgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MRmVuY2VkLmg6IFVzZSBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciBpbnN0ZWFkIG9mCisg
ICAgICAgIFJlbmRlck1hdGhNTE9wZXJhdG9yLgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwOiBOZXcgY2xhc3MgZGVyaXZlZCBmcm9tIFJl
bmRlck1hdGhNTE9wZXJhdG9yCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxGZW5jZWRP
cGVyYXRvcjo6UmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IpOiBJbml0IGZvcm0gYW5kIG9wZXJh
dG9yCisgICAgICAgIGZsYWdzIHdpdGggdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzIGFuZCBpbml0
IHRoZSB0ZXh0IGNvbnRlbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxGZW5jZWRP
cGVyYXRvcjo6dXBkYXRlT3BlcmF0b3JDb250ZW50KTogV2UgbW92ZSB0aGUKKyAgICAgICAgUmVu
ZGVyTWF0aE1MT3BlcmF0b3I6OnVwZGF0ZVRva2VuQ29udGVudCBmdW5jdGlvbiB1c2VkIGJ5IGFu
b255bW91cyBvcGVyYXRvcnMgaGVyZS4gSXQgaXMKKyAgICAgICAgcmVuYW1lZCB0byBhdm9pZCBi
dWlsZCBlcnJvcnMgZHVlIHRvIGNvbmZsaWN0cyB3aXRoIHRoZSBvdGhlcgorICAgICAgICBSZW5k
ZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRlVG9rZW5Db250ZW50IGZ1bmN0aW9uLgorICAgICAgICAq
IHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuaDogTmV3IGNsYXNz
IGZvciBhbm9ueW1vdXMgbWZlbmNlZCBvcGVyYXRvcnMKKyAgICAgICAgd2l0aCBnZXR0ZXIgYW5k
IHNldHRlciBmb3IgdGhlIG1fdGV4dENvbnRlbnQuCisgICAgICAgICogcmVuZGVyaW5nL21hdGht
bC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRo
TUxPcGVyYXRvcjo6UmVuZGVyTWF0aE1MT3BlcmF0b3IpOiBTaW1wbGlmeSB0aGUgY29uc3RydWN0
b3JzLiBTb21lCisgICAgICAgIGluaXRpYWxpemF0aW9ucyBpcyBtb3ZlZCBpbiBSZW5kZXJNYXRo
TUxPcGVyYXRvci5oIHdoaWxlIG90aGVyIGNvZGUgaXMgbW92ZWQgdG8KKyAgICAgICAgUmVuZGVy
TWF0aE1MRmVuY2VkT3BlcmF0b3IuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxPcGVy
YXRvcjo6dGV4dENvbnRlbnQpOiBObyBuZWVkIHRvIGhhbmRsZSB0aGUgYW5vbnltb3VzIGNhc2Ug
aGVyZSBzaW5jZQorICAgICAgICBpdCBpcyBoYW5kbGVkIGluIFJlbmRlck1hdGhNTEZlbmNlZE9w
ZXJhdG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OnVwZGF0ZVRv
a2VuQ29udGVudCk6IFdlIGRlbGV0ZSB0aGUgdmVyc2lvbiB1c2VkIGZvciBhbm9ueW1vdXMKKyAg
ICAgICAgb3BlcmF0b3JzIGFuZCBtb3ZlIGl0IGludG8gUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0
b3IuCisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oOiBN
YWtlIHRoZSBjbGFzcyBhbmQgc29tZSBtZW1iZXJzIG92ZXJyaWRhYmxlIGFuZAorICAgICAgICBl
eHBvc2VkIHRvIHRoZSBkZXJpdmVkIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yIGNsYXNzLiBX
ZSBhbHNvIG1vdmUgaW5pdGlhbGl6YXRpb24gb2Ygc29tZQorICAgICAgICBtZW1iZXJzIGhlcmUu
CisKIDIwMTYtMDctMjkgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFBhcnNlIHRoZSBvcGVyYXRvciB0ZXh0IG9uIHRoZSBNYXRoTUxPcGVyYXRvckVsZW1lbnQg
Y2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJlMTQxNTI1OTdhYjJkZjU2MTAxMDE0ODk4
ZWFjOTY5YTgzOTZlM2YuLjg3M2QzNGIxOGU4OGVlNjljODE2MzRjZWVlMjFlNDc3YjMzNDVhYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNTMxLDYgKzI1MzEsNyBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgcmVuZGVyaW5nL21hdGhtbC9NYXRoT3BlcmF0b3IuY3BwCiAgICAgcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKICAgICByZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEZlbmNlZC5jcHAKKyAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZl
bmNlZE9wZXJhdG9yLmNwcAogICAgIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRnJhY3Rp
b24uY3BwCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxNYXRoLmNwcAogICAgIHJl
bmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MTWVuY2xvc2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWMzZDY2NzEzNDJi
OTM3Y2YyY2JiZTJjMjEyNDNlMzIyMzVkNDBkMS4uZmY1ZTgyYTFmMmUyNzQ1MWZjZGU4MWJkZjBl
MDE1Y2Y5NzRhMmEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTcwMCw2ICsxNzAwLDggQEAKIAkJNDM5MDQ2RDgxMkRBMjVF
ODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzkwNDZDNDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVy
TWF0aE1MQmxvY2suaCAqLzsgfTsKIAkJNDM5MDQ2RDkxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRl
ck1hdGhNTEZlbmNlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MzkwNDZDNTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRmVuY2VkLmNw
cCAqLzsgfTsKIAkJNDM5MDQ2REExMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNl
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2
QzYxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5oICovOyB9OworCQk0Mzkw
NDZEOTEyREEyNUU4MDBBRjgxQjMgLyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2QzUxMkRB
MjVFODAwQUY4MUIzIC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmNwcCAqLzsgfTsKKwkJ
NDM5MDQ2REExMkRBMjVFODAwQUY4MUIzIC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzkwNDZDNjEy
REEyNUU4MDBBRjgxQjMgLyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuaCAqLzsgfTsKIAkJ
NDM5MDQ2REIxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzOTA0NkM3MTJEQTI1
RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAgKi87IH07CiAJCTQzOTA0NkRD
MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGcmFjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2QzgxMkRBMjVFODAwQUY4MEEy
IC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmggKi87IH07CiAJCTQzOTA0NkREMTJEQTI1RTgwMEFG
ODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQzOTA0NkM5MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRo
TUxNYXRoLmNwcCAqLzsgfTsKQEAgLTkzMjcsNiArOTMyOSw4IEBACiAJCTQzOTA0NkM0MTJEQTI1
RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJNYXRoTUxCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MzkwNDZDNTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1hdGhNTEZlbmNlZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzOTA0NkM2MTJEQTI1RTgwMEFGODBB
MiAvKiBSZW5kZXJNYXRoTUxGZW5jZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVyTWF0aE1MRmVuY2VkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQz
OTA0NkM1MTJEQTI1RTgwMEFGODFCMyAvKiBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJNYXRoTUxGZW5jZWRP
cGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzOTA0NkM2MTJEQTI1
RTgwMEFGODFCMyAvKiBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MzkwNDZDNzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVy
TWF0aE1MRnJhY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyTWF0aE1MRnJhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MzkwNDZDODEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWF0aE1MRnJhY3Rpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM5MDQ2QzkxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRl
ck1hdGhNTE1hdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVu
ZGVyTWF0aE1MTWF0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzE2Myw2
ICsxNzE2Nyw4IEBACiAJCQkJNDM5MDQ2QzQxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhN
TEJsb2NrLmggKi8sCiAJCQkJNDM5MDQ2QzUxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhN
TEZlbmNlZC5jcHAgKi8sCiAJCQkJNDM5MDQ2QzYxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1h
dGhNTEZlbmNlZC5oICovLAorCQkJCTQzOTA0NkM1MTJEQTI1RTgwMEFGODFCMyAvKiBSZW5kZXJN
YXRoTUxGZW5jZWRPcGVyYXRvci5jcHAgKi8sCisJCQkJNDM5MDQ2QzYxMkRBMjVFODAwQUY4MUIz
IC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmggKi8sCiAJCQkJNDM5MDQ2QzcxMkRBMjVF
ODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCAqLywKIAkJCQk0MzkwNDZDODEy
REEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rpb24uaCAqLywKIAkJCQk0MzkwNDZD
OTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5jcHAgKi8sCkBAIC0yNzk2MCw2
ICsyNzk2Niw3IEBACiAJCQkJMEY1NjAyOEYwRTRCNzY1ODAwNjVCMDM4IC8qIFJlbmRlck1hcnF1
ZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkQ4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5k
ZXJNYXRoTUxCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2REExMkRBMjVFODAwQUY4
MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDM5MDQ2REEx
MkRBMjVFODAwQUY4MUIzIC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MzkwNDZEQzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRnJhY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkRFMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5k
ZXJNYXRoTUxNYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzkwNDZFMDEyREEyNUU4MDBBRjgw
QTIgLyogUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzE2NzIsNiAr
MzE2NzksNyBAQAogCQkJCTBGNTYwMjkwMEU0Qjc2NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzOTA0NkQ3MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5k
ZXJNYXRoTUxCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzkwNDZEOTEyREEyNUU4MDBB
RjgwQTIgLyogUmVuZGVyTWF0aE1MRmVuY2VkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQzOTA0
NkQ5MTJEQTI1RTgwMEFGODFCMyAvKiBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0MzkwNDZEQjEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1M
RnJhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5MDQ2REQxMkRBMjVFODAwQUY4MEEy
IC8qIFJlbmRlck1hdGhNTE1hdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzU3MTg4M0VFRjYx
ODc5Mzc1MUU0MDg5IC8qIFJlbmRlck1hdGhNTE1lbmNsb3NlLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxG
ZW5jZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxG
ZW5jZWQuY3BwCmluZGV4IDBhZDg4MzIyZmNmMTVlZjFlMDAzM2UwZDFlNDZjZWY2ZTIwYzQ2ZDEu
LjJiYjkwOTI0MGI2MzNjMzg4MThjZDBkZGRhNDdiNDljZWFjODc5NTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5jcHAK
QEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJN
YXRoTUxOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgotI2luY2x1ZGUgIlJlbmRl
ck1hdGhNTE9wZXJhdG9yLmgiCisjaW5jbHVkZSAiUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3Iu
aCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCkBAIC03OCwyNCArNzgsMjQgQEAgdm9pZCBSZW5kZXJNYXRoTUxGZW5jZWQ6OnVw
ZGF0ZUZyb21FbGVtZW50KCkKICAgICAgICAgbWFrZUZlbmNlcygpOwogICAgIGVsc2UgewogICAg
ICAgICAvLyBGSVhNRTogVGhlIG1mZW5jZWQgZWxlbWVudCBmYWlscyB0byB1cGRhdGUgZHluYW1p
Y2FsbHkgd2hlbiBpdHMgb3BlbiwgY2xvc2UgYW5kIHNlcGFyYXRvcnMgYXR0cmlidXRlcyBhcmUg
Y2hhbmdlZCAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3Njk2KS4K
LSAgICAgICAgZG93bmNhc3Q8UmVuZGVyTWF0aE1MT3BlcmF0b3I+KCpmaXJzdENoaWxkKCkpLnVw
ZGF0ZVRva2VuQ29udGVudChtX29wZW4pOwotICAgICAgICBtX2Nsb3NlRmVuY2VSZW5kZXJlci0+
dXBkYXRlVG9rZW5Db250ZW50KG1fY2xvc2UpOworICAgICAgICBkb3duY2FzdDxSZW5kZXJNYXRo
TUxGZW5jZWRPcGVyYXRvcj4oKmZpcnN0Q2hpbGQoKSkudXBkYXRlT3BlcmF0b3JDb250ZW50KG1f
b3Blbik7CisgICAgICAgIG1fY2xvc2VGZW5jZVJlbmRlcmVyLT51cGRhdGVPcGVyYXRvckNvbnRl
bnQobV9jbG9zZSk7CiAgICAgfQogfQogCi1SZW5kZXJQdHI8UmVuZGVyTWF0aE1MT3BlcmF0b3I+
IFJlbmRlck1hdGhNTEZlbmNlZDo6Y3JlYXRlTWF0aE1MT3BlcmF0b3IoY29uc3QgU3RyaW5nJiBv
cGVyYXRvclN0cmluZywgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGb3JtIGZvcm0sIE1hdGhN
TE9wZXJhdG9yRGljdGlvbmFyeTo6RmxhZyBmbGFnKQorUmVuZGVyUHRyPFJlbmRlck1hdGhNTEZl
bmNlZE9wZXJhdG9yPiBSZW5kZXJNYXRoTUxGZW5jZWQ6OmNyZWF0ZU1hdGhNTE9wZXJhdG9yKGNv
bnN0IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6Rm9y
bSBmb3JtLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZsYWcgZmxhZykKIHsKLSAgICBSZW5k
ZXJQdHI8UmVuZGVyTWF0aE1MT3BlcmF0b3I+IG5ld09wZXJhdG9yID0gY3JlYXRlUmVuZGVyZXI8
UmVuZGVyTWF0aE1MT3BlcmF0b3I+KGRvY3VtZW50KCksIFJlbmRlclN0eWxlOjpjcmVhdGVBbm9u
eW1vdXNTdHlsZVdpdGhEaXNwbGF5KHN0eWxlKCksIEJMT0NLKSwgb3BlcmF0b3JTdHJpbmcsIGZv
cm0sIGZsYWcpOworICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4gbmV3
T3BlcmF0b3IgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4oZG9j
dW1lbnQoKSwgUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoc3R5
bGUoKSwgQkxPQ0spLCBvcGVyYXRvclN0cmluZywgZm9ybSwgZmxhZyk7CiAgICAgbmV3T3BlcmF0
b3ItPmluaXRpYWxpemVTdHlsZSgpOwogICAgIHJldHVybiBuZXdPcGVyYXRvcjsKIH0KIAogdm9p
ZCBSZW5kZXJNYXRoTUxGZW5jZWQ6Om1ha2VGZW5jZXMoKQogewotICAgIFJlbmRlclB0cjxSZW5k
ZXJNYXRoTUxPcGVyYXRvcj4gb3BlbkZlbmNlID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IobV9vcGVu
LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlByZWZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9u
YXJ5OjpGZW5jZSk7CisgICAgUmVuZGVyUHRyPFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPiBv
cGVuRmVuY2UgPSBjcmVhdGVNYXRoTUxPcGVyYXRvcihtX29wZW4sIE1hdGhNTE9wZXJhdG9yRGlj
dGlvbmFyeTo6UHJlZml4LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZlbmNlKTsKICAgICBS
ZW5kZXJNYXRoTUxSb3c6OmFkZENoaWxkKG9wZW5GZW5jZS5sZWFrUHRyKCksIGZpcnN0Q2hpbGQo
KSk7CiAKLSAgICBSZW5kZXJQdHI8UmVuZGVyTWF0aE1MT3BlcmF0b3I+IGNsb3NlRmVuY2UgPSBj
cmVhdGVNYXRoTUxPcGVyYXRvcihtX2Nsb3NlLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OlBv
c3RmaXgsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RmVuY2UpOworICAgIFJlbmRlclB0cjxS
ZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcj4gY2xvc2VGZW5jZSA9IGNyZWF0ZU1hdGhNTE9wZXJh
dG9yKG1fY2xvc2UsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6UG9zdGZpeCwgTWF0aE1MT3Bl
cmF0b3JEaWN0aW9uYXJ5OjpGZW5jZSk7CiAgICAgbV9jbG9zZUZlbmNlUmVuZGVyZXIgPSBjbG9z
ZUZlbmNlLmdldCgpOwogICAgIFJlbmRlck1hdGhNTFJvdzo6YWRkQ2hpbGQoY2xvc2VGZW5jZS5s
ZWFrUHRyKCkpOwogfQpAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgUmVuZGVyTWF0aE1MRmVuY2Vk
OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxk
CiAKICAgICAvLyBGSVhNRTogQWRkaW5nIG9yIHJlbW92aW5nIGEgY2hpbGQgc2hvdWxkIHBvc3Np
Ymx5IGNhdXNlIGFsbCBsYXRlciBzZXBhcmF0b3JzIHRvIHNoaWZ0IHBsYWNlcyBpZiB0aGV5J3Jl
IGRpZmZlcmVudCwgYXMgbGF0ZXIgY2hpbGQgcG9zaXRpb25zIGNoYW5nZSBieSArMSBvciAtMS4g
VGhpcyBzaG91bGQgYWxzbyBoYW5kbGUgc3Vycm9nYXRlIHBhaXJzLiBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTkzOC4KIAotICAgIFJlbmRlclB0cjxSZW5k
ZXJNYXRoTUxPcGVyYXRvcj4gc2VwYXJhdG9yUmVuZGVyZXI7CisgICAgUmVuZGVyUHRyPFJlbmRl
ck1hdGhNTEZlbmNlZE9wZXJhdG9yPiBzZXBhcmF0b3JSZW5kZXJlcjsKICAgICBpZiAobV9zZXBh
cmF0b3JzLmdldCgpKSB7CiAgICAgICAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CiAgICAgICAg
IGZvciAoTm9kZSogcG9zaXRpb24gPSBjaGlsZC0+bm9kZSgpOyBwb3NpdGlvbjsgcG9zaXRpb24g
PSBwb3NpdGlvbi0+cHJldmlvdXNTaWJsaW5nKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5oCmluZGV4IDdhODE2Y2UwZTMw
YmI5NWY3M2VkNmFjMzIyZWNhNDY1NDdjY2NhMDQuLmY2MjVjZGFlMGNlMTc2OTBmM2YzZWViOGQ1
MGQ4ZjdhZTc5NGEwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRo
bWwvUmVuZGVyTWF0aE1MRmVuY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuaApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShN
QVRITUwpCiAKICNpbmNsdWRlICJNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmgiCi0jaW5j
bHVkZSAiUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCIKKyNpbmNsdWRlICJSZW5kZXJNYXRoTUxGZW5j
ZWRPcGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhNTFJvdy5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC00NCwxNCArNDQsMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZENoaWxk
KFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpIGZpbmFsOwog
ICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBmaW5hbDsKIAotICAgIFJlbmRlclB0cjxSZW5k
ZXJNYXRoTUxPcGVyYXRvcj4gY3JlYXRlTWF0aE1MT3BlcmF0b3IoY29uc3QgU3RyaW5nJiBvcGVy
YXRvclN0cmluZywgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGb3JtLCBNYXRoTUxPcGVyYXRv
ckRpY3Rpb25hcnk6OkZsYWcpOworICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxGZW5jZWRPcGVy
YXRvcj4gY3JlYXRlTWF0aE1MT3BlcmF0b3IoY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywg
TWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGb3JtLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6
OkZsYWcpOwogICAgIHZvaWQgbWFrZUZlbmNlcygpOwogCiAgICAgU3RyaW5nIG1fb3BlbjsKICAg
ICBTdHJpbmcgbV9jbG9zZTsKICAgICBSZWZQdHI8U3RyaW5nSW1wbD4gbV9zZXBhcmF0b3JzOwog
Ci0gICAgUmVuZGVyTWF0aE1MT3BlcmF0b3IqIG1fY2xvc2VGZW5jZVJlbmRlcmVyOworICAgIFJl
bmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yKiBtX2Nsb3NlRmVuY2VSZW5kZXJlcjsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1M
RmVuY2VkT3BlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcxOGJmMjY3ZWZiZGE3MjAz
YmQxNGFjNzJhMjg5ZTBmY2IyMGZhOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIEVOQUJMRShNQVRITUwpCisjaW5jbHVkZSAiUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3Iu
aCIKKworI2luY2x1ZGUgIk1hdGhNTE9wZXJhdG9yRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yOjpSZW5kZXJNYXRoTUxGZW5jZWRP
cGVyYXRvcihEb2N1bWVudCYgZG9jdW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFN0
cmluZyYgb3BlcmF0b3JTdHJpbmcsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6Rm9ybSBmb3Jt
LCB1bnNpZ25lZCBzaG9ydCBmbGFncykKKyAgICA6IFJlbmRlck1hdGhNTE9wZXJhdG9yKGRvY3Vt
ZW50LCBXVEZNb3ZlKHN0eWxlKSkKK3sKKyAgICBtX29wZXJhdG9yRm9ybSA9IGZvcm07CisgICAg
bV9vcGVyYXRvckZsYWdzID0gZmxhZ3M7CisgICAgdXBkYXRlT3BlcmF0b3JDb250ZW50KG9wZXJh
dG9yU3RyaW5nKTsKK30KKwordm9pZCBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcjo6dXBkYXRl
T3BlcmF0b3JDb250ZW50KGNvbnN0IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcpCit7CisgICAgbV90
ZXh0Q29udGVudCA9IE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6cGFyc2VPcGVyYXRvclRleHQob3Bl
cmF0b3JTdHJpbmcpOworICAgIHJlYnVpbGRUb2tlbkNvbnRlbnQoKTsKK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MRmVuY2VkT3BlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVu
ZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDI5OWRlZTk4N2ZmMzYzZjk1
NzQxY2UzN2NjYTc3YjJjNGM0OTkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KE1BVEhNTCkKKworI2luY2x1ZGUgIk1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeS5oIgorI2luY2x1
ZGUgIlJlbmRlck1hdGhNTE9wZXJhdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IgZmluYWwgOiBwdWJsaWMgUmVuZGVyTWF0aE1M
T3BlcmF0b3IgeworcHVibGljOgorICAgIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yKERvY3Vt
ZW50JiwgUmVuZGVyU3R5bGUmJiwgY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1M
T3BlcmF0b3JEaWN0aW9uYXJ5OjpGb3JtLCB1bnNpZ25lZCBzaG9ydCBmbGFncyA9IDApOworICAg
IHZvaWQgdXBkYXRlT3BlcmF0b3JDb250ZW50KGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgor
ICAgIFVDaGFyIHRleHRDb250ZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV90ZXh0Q29udGVu
dDsgfQorCisgICAgVUNoYXIgbV90ZXh0Q29udGVudCB7IDAgfTsKK307CisKK307IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcApp
bmRleCAyNjlhN2FmZDhhOGE2MWZiOTQ2M2JjM2ZlMmMyOGVjMzE5YTE4Y2IyLi5lNWU1OTViNjY0
YzBjZjU2MTgxNTE5MTZlMjdjNjgyYmJmN2E2ZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmNwcApAQCAtNDks
MjMgKzQ5LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBNYXRoTUxOYW1lczsKIAogUmVuZGVyTWF0aE1M
T3BlcmF0b3I6OlJlbmRlck1hdGhNTE9wZXJhdG9yKE1hdGhNTE9wZXJhdG9yRWxlbWVudCYgZWxl
bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlck1hdGhNTFRva2VuKGVsZW1l
bnQsIFdURk1vdmUoc3R5bGUpKQotICAgICwgbV9zdHJldGNoSGVpZ2h0QWJvdmVCYXNlbGluZSgw
KQotICAgICwgbV9zdHJldGNoRGVwdGhCZWxvd0Jhc2VsaW5lKDApCi0gICAgLCBtX2lzVmVydGlj
YWwodHJ1ZSkKIHsKICAgICB1cGRhdGVUb2tlbkNvbnRlbnQoKTsKIH0KIAotUmVuZGVyTWF0aE1M
T3BlcmF0b3I6OlJlbmRlck1hdGhNTE9wZXJhdG9yKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVy
U3R5bGUmJiBzdHlsZSwgY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1MT3BlcmF0
b3JEaWN0aW9uYXJ5OjpGb3JtIGZvcm0sIHVuc2lnbmVkIHNob3J0IGZsYWdzKQorUmVuZGVyTWF0
aE1MT3BlcmF0b3I6OlJlbmRlck1hdGhNTE9wZXJhdG9yKERvY3VtZW50JiBkb2N1bWVudCwgUmVu
ZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlck1hdGhNTFRva2VuKGRvY3VtZW50LCBXVEZN
b3ZlKHN0eWxlKSkKLSAgICAsIG1fc3RyZXRjaEhlaWdodEFib3ZlQmFzZWxpbmUoMCkKLSAgICAs
IG1fc3RyZXRjaERlcHRoQmVsb3dCYXNlbGluZSgwKQotICAgICwgbV90ZXh0Q29udGVudCgwKQot
ICAgICwgbV9pc1ZlcnRpY2FsKHRydWUpCi0gICAgLCBtX29wZXJhdG9yRm9ybShmb3JtKQotICAg
ICwgbV9vcGVyYXRvckZsYWdzKGZsYWdzKQogewotICAgIHVwZGF0ZVRva2VuQ29udGVudChvcGVy
YXRvclN0cmluZyk7CiB9CiAKIE1hdGhNTE9wZXJhdG9yRWxlbWVudCYgUmVuZGVyTWF0aE1MT3Bl
cmF0b3I6OmVsZW1lbnQoKSBjb25zdApAQCAtNzUsNyArNjUsOCBAQCBNYXRoTUxPcGVyYXRvckVs
ZW1lbnQmIFJlbmRlck1hdGhNTE9wZXJhdG9yOjplbGVtZW50KCkgY29uc3QKIAogVUNoYXIgUmVu
ZGVyTWF0aE1MT3BlcmF0b3I6OnRleHRDb250ZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gaXNB
bm9ueW1vdXMoKSA/IG1fdGV4dENvbnRlbnQgOiBlbGVtZW50KCkub3BlcmF0b3JUZXh0KCk7Cisg
ICAgQVNTRVJUKCFpc0Fub255bW91cygpKTsKKyAgICByZXR1cm4gZWxlbWVudCgpLm9wZXJhdG9y
VGV4dCgpOwogfQogCiB2b2lkIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpzZXRPcGVyYXRvckZsYWdG
cm9tQXR0cmlidXRlKE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RmxhZyBmbGFnLCBjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKQpAQCAtMzE5LDEzICszMTAsNiBAQCB2b2lkIFJlbmRlck1hdGhN
TE9wZXJhdG9yOjpyZWJ1aWxkVG9rZW5Db250ZW50KCkKICAgICBzZXROZWVkc0xheW91dEFuZFBy
ZWZXaWR0aHNSZWNhbGMoKTsKIH0KIAotdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6dXBkYXRl
VG9rZW5Db250ZW50KGNvbnN0IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcpCi17Ci0gICAgQVNTRVJU
KGlzQW5vbnltb3VzKCkpOwotICAgIG1fdGV4dENvbnRlbnQgPSBNYXRoTUxPcGVyYXRvckVsZW1l
bnQ6OnBhcnNlT3BlcmF0b3JUZXh0KG9wZXJhdG9yU3RyaW5nKTsKLSAgICByZWJ1aWxkVG9rZW5D
b250ZW50KCk7Ci19Ci0KIHZvaWQgUmVuZGVyTWF0aE1MT3BlcmF0b3I6OnVwZGF0ZVRva2VuQ29u
dGVudCgpCiB7CiAgICAgQVNTRVJUKCFpc0Fub255bW91cygpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaAppbmRleCA5
MWU0NzNkNTQ1YTYyZjRhMWJiMjJjZjg3OWM2NWJlNDdjOTJmMmZmLi4zZjVkNjE5MTk4Y2E3NmYw
NTMzYzUyZDZjZmNjODQ3OGE1MzJkNGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTE9wZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oCkBAIC0zNiwxMCArMzYsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNYXRoTUxPcGVyYXRvckVsZW1lbnQ7CiAK
LWNsYXNzIFJlbmRlck1hdGhNTE9wZXJhdG9yIGZpbmFsIDogcHVibGljIFJlbmRlck1hdGhNTFRv
a2VuIHsKK2NsYXNzIFJlbmRlck1hdGhNTE9wZXJhdG9yIDogcHVibGljIFJlbmRlck1hdGhNTFRv
a2VuIHsKIHB1YmxpYzoKICAgICBSZW5kZXJNYXRoTUxPcGVyYXRvcihNYXRoTUxPcGVyYXRvckVs
ZW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKLSAgICBSZW5kZXJNYXRoTUxPcGVyYXRvcihEb2N1bWVu
dCYsIFJlbmRlclN0eWxlJiYsIGNvbnN0IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcsIE1hdGhNTE9w
ZXJhdG9yRGljdGlvbmFyeTo6Rm9ybSwgdW5zaWduZWQgc2hvcnQgZmxhZ3MgPSAwKTsKKyAgICBS
ZW5kZXJNYXRoTUxPcGVyYXRvcihEb2N1bWVudCYsIFJlbmRlclN0eWxlJiYpOwogICAgIE1hdGhN
TE9wZXJhdG9yRWxlbWVudCYgZWxlbWVudCgpIGNvbnN0OwogCiAgICAgdm9pZCBzdHJldGNoVG8o
TGF5b3V0VW5pdCBoZWlnaHRBYm92ZUJhc2VsaW5lLCBMYXlvdXRVbml0IGRlcHRoQmVsb3dCYXNl
bGluZSk7CkBAIC01MywxMSArNTMsMTYgQEAgcHVibGljOgogICAgIGJvb2wgaXNWZXJ0aWNhbCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNWZXJ0aWNhbDsgfQogICAgIExheW91dFVuaXQgaXRhbGljQ29y
cmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbWF0aE9wZXJhdG9yLml0YWxpY0NvcnJlY3Rpb24o
KTsgfQogCi0gICAgdm9pZCB1cGRhdGVUb2tlbkNvbnRlbnQoY29uc3QgU3RyaW5nJiBvcGVyYXRv
clN0cmluZyk7CiAgICAgdm9pZCB1cGRhdGVUb2tlbkNvbnRlbnQoKSBmaW5hbDsKICAgICB2b2lk
IHVwZGF0ZU9wZXJhdG9yUHJvcGVydGllcygpOwogICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQo
KSBmaW5hbDsKLSAgICBVQ2hhciB0ZXh0Q29udGVudCgpIGNvbnN0OworICAgIHZpcnR1YWwgVUNo
YXIgdGV4dENvbnRlbnQoKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgcmVidWlsZFRv
a2VuQ29udGVudCgpOworCisgICAgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGb3JtIG1fb3Bl
cmF0b3JGb3JtOworICAgIHVuc2lnbmVkIHNob3J0IG1fb3BlcmF0b3JGbGFnczsKIAogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BlcmF0b3JQcm9wZXJ0aWVzKCk7CkBAIC03Nyw3ICs4
Miw2IEBAIHByaXZhdGU6CiAKICAgICBPcHRpb25hbDxpbnQ+IGZpcnN0TGluZUJhc2VsaW5lKCkg
Y29uc3QgZmluYWw7CiAgICAgUmVuZGVyTWF0aE1MT3BlcmF0b3IqIHVuZW1iZWxsaXNoZWRPcGVy
YXRvcigpIGZpbmFsIHsgcmV0dXJuIHRoaXM7IH0KLSAgICB2b2lkIHJlYnVpbGRUb2tlbkNvbnRl
bnQoKTsKIAogICAgIGJvb2wgc2hvdWxkQWxsb3dTdHJldGNoaW5nKCkgY29uc3Q7CiAgICAgYm9v
bCB1c2VNYXRoT3BlcmF0b3IoKSBjb25zdDsKQEAgLTg4LDE0ICs5MiwxMSBAQCBwcml2YXRlOgog
CiAgICAgTGF5b3V0VW5pdCB2ZXJ0aWNhbFN0cmV0Y2hlZE9wZXJhdG9yU2hpZnQoKSBjb25zdDsK
IAotICAgIExheW91dFVuaXQgbV9zdHJldGNoSGVpZ2h0QWJvdmVCYXNlbGluZTsKLSAgICBMYXlv
dXRVbml0IG1fc3RyZXRjaERlcHRoQmVsb3dCYXNlbGluZTsKKyAgICBMYXlvdXRVbml0IG1fc3Ry
ZXRjaEhlaWdodEFib3ZlQmFzZWxpbmUgeyAwIH07CisgICAgTGF5b3V0VW5pdCBtX3N0cmV0Y2hE
ZXB0aEJlbG93QmFzZWxpbmUgeyAwIH07CiAgICAgTGF5b3V0VW5pdCBtX3N0cmV0Y2hXaWR0aDsK
IAotICAgIFVDaGFyIG1fdGV4dENvbnRlbnQ7Ci0gICAgYm9vbCBtX2lzVmVydGljYWw7Ci0gICAg
TWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGb3JtIG1fb3BlcmF0b3JGb3JtOwotICAgIHVuc2ln
bmVkIHNob3J0IG1fb3BlcmF0b3JGbGFnczsKKyAgICBib29sIG1faXNWZXJ0aWNhbCB7IHRydWUg
fTsKICAgICBMYXlvdXRVbml0IG1fbGVhZGluZ1NwYWNlOwogICAgIExheW91dFVuaXQgbV90cmFp
bGluZ1NwYWNlOwogICAgIExheW91dFVuaXQgbV9taW5TaXplOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284855</attachid>
            <date>2016-07-29 02:10:10 -0700</date>
            <delta_ts>2016-07-31 21:35:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160245-20160729110856.patch</filename>
            <type>text/plain</type>
            <size>23769</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkxNWQxM2Y1MGFjMTg4
NjQwMDhkOWU1OGMyYWIyOWNkY2M3MjUzNC4uMGEwYTQyMmI2ZmE5MTRkNWE5MDc1ZTY2ZWQzMWJm
YWFiMGY3NGZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE2LTA3LTI3ICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgYSBSZW5k
ZXJNYXRoTUxGZW5jZWRPcGVyYXRvciBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwMjQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2UgaW50cm9kdWNlIGEgY2xhc3MgdG8gaGFuZGxlIGFsbCB0
aGUgY29kZSBzcGVjaWZpYyB0byBhbm9ueW1vdXMgbWZlbmNlZCBvcGVyYXRvcnMuIEluCisgICAg
ICAgIHBhcnRpY3VsYXIgbWFueSBtZW1iZXJzIG9mIHRoZSBSZW5kZXJNYXRoTUxPcGVyYXRvciBj
bGFzcyBhcmUgZ29pbmcgdG8gYmUgcmVtb3ZlZCB3aGlsZQorICAgICAgICBmaXhpbmcgYnVnIDE1
NjUzNyBidXQgdGhleSBtYXkgc3RpbGwgbmVlZCB0byBzdG9yZWQgYW5kIGV4cG9zZWQgaW4gc29t
ZSB3YXkgYnkgbWZlbmNlZAorICAgICAgICBvcGVyYXRvcnMuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBiZWhhdmlvciBpcyB1bmNoYW5nZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDog
QWRkIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1JlbmRlck1hdGhNTEZl
bmNlZE9wZXJhdG9yKTogRnVuY3Rpb24gdG8gYWxsb3cgY2FzdGluZyB0bworICAgICAgICBSZW5k
ZXJNYXRoTUxGZW5jZWRPcGVyYXRvci4KKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTEZlbmNlZC5jcHA6IFVzZSBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciBpbnN0ZWFk
IG9mCisgICAgICAgIFJlbmRlck1hdGhNTE9wZXJhdG9yIGFuZCB1c2UgdGhlIG5ldyBuYW1lIHVw
ZGF0ZU9wZXJhdG9yQ29udGVudC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTEZlbmNl
ZDo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRmVu
Y2VkOjpjcmVhdGVNYXRoTUxPcGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRo
TUxGZW5jZWQ6Om1ha2VGZW5jZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MRmVu
Y2VkOjphZGRDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxG
ZW5jZWQuaDogVXNlIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yIGluc3RlYWQgb2YKKyAgICAg
ICAgUmVuZGVyTWF0aE1MT3BlcmF0b3IuCisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHA6IE5ldyBjbGFzcyBkZXJpdmVkIGZyb20gUmVuZGVy
TWF0aE1MT3BlcmF0b3IKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTEZlbmNlZE9wZXJh
dG9yOjpSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcik6IEluaXQgZm9ybSBhbmQgb3BlcmF0b3IK
KyAgICAgICAgZmxhZ3Mgd2l0aCB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMgYW5kIGluaXQgdGhl
IHRleHQgY29udGVudC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTEZlbmNlZE9wZXJh
dG9yOjp1cGRhdGVPcGVyYXRvckNvbnRlbnQpOiBXZSBtb3ZlIHRoZQorICAgICAgICBSZW5kZXJN
YXRoTUxPcGVyYXRvcjo6dXBkYXRlVG9rZW5Db250ZW50IGZ1bmN0aW9uIHVzZWQgYnkgYW5vbnlt
b3VzIG9wZXJhdG9ycyBoZXJlLiBJdCBpcworICAgICAgICByZW5hbWVkIHRvIGF2b2lkIGJ1aWxk
IGVycm9ycyBkdWUgdG8gY29uZmxpY3RzIHdpdGggdGhlIG90aGVyCisgICAgICAgIFJlbmRlck1h
dGhNTE9wZXJhdG9yOjp1cGRhdGVUb2tlbkNvbnRlbnQgZnVuY3Rpb24uCisgICAgICAgICogcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oOiBOZXcgY2xhc3MgZm9y
IGFub255bW91cyBtZmVuY2VkIG9wZXJhdG9ycworICAgICAgICB3aXRoIGdldHRlciBhbmQgc2V0
dGVyIGZvciB0aGUgbV90ZXh0Q29udGVudC4gQWxzbyBvdmVycmlkZSBSZW5kZXJNYXRoTUxGZW5j
ZWRPcGVyYXRvciB0bworICAgICAgICBhbGxvdyBjYXN0aW5nIHRvIFJlbmRlck1hdGhNTEZlbmNl
ZE9wZXJhdG9yLgorICAgICAgICAqIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OlJlbmRlck1h
dGhNTE9wZXJhdG9yKTogU2ltcGxpZnkgdGhlIGNvbnN0cnVjdG9ycy4gU29tZQorICAgICAgICBp
bml0aWFsaXphdGlvbnMgaXMgbW92ZWQgaW4gUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCB3aGlsZSBv
dGhlciBjb2RlIGlzIG1vdmVkIHRvCisgICAgICAgIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9y
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWF0aE1MT3BlcmF0b3I6OnRleHRDb250ZW50KTog
Tm8gbmVlZCB0byBoYW5kbGUgdGhlIGFub255bW91cyBjYXNlIGhlcmUgc2luY2UKKyAgICAgICAg
aXQgaXMgaGFuZGxlZCBpbiBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck1hdGhNTE9wZXJhdG9yOjp1cGRhdGVUb2tlbkNvbnRlbnQpOiBXZSBkZWxl
dGUgdGhlIHZlcnNpb24gdXNlZCBmb3IgYW5vbnltb3VzCisgICAgICAgIG9wZXJhdG9ycyBhbmQg
bW92ZSBpdCBpbnRvIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLgorICAgICAgICAqIHJlbmRl
cmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3IuaDogTWFrZSB0aGUgY2xhc3MgYW5kIHNv
bWUgbWVtYmVycyBvdmVycmlkYWJsZSBhbmQKKyAgICAgICAgZXhwb3NlZCB0byB0aGUgZGVyaXZl
ZCBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciBjbGFzcy4gV2UgYWxzbyBtb3ZlIGluaXRpYWxp
emF0aW9uIG9mIHNvbWUKKyAgICAgICAgbWVtYmVycyBoZXJlLgorCiAyMDE2LTA3LTI5ICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBQYXJzZSB0aGUgb3BlcmF0
b3IgdGV4dCBvbiB0aGUgTWF0aE1MT3BlcmF0b3JFbGVtZW50IGNsYXNzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCBiZTE0MTUyNTk3YWIyZGY1NjEwMTAxNDg5OGVhYzk2OWE4Mzk2ZTNmLi44NzNk
MzRiMThlODhlZTY5YzgxNjM0Y2VlZTIxZTQ3N2IzMzQ1YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMjUzMSw2ICsyNTMxLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmlu
Zy9tYXRobWwvTWF0aE9wZXJhdG9yLmNwcAogICAgIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MQmxvY2suY3BwCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuY3Bw
CisgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAKICAg
ICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9uLmNwcAogICAgIHJlbmRlcmlu
Zy9tYXRobWwvUmVuZGVyTWF0aE1MTWF0aC5jcHAKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRl
ck1hdGhNTE1lbmNsb3NlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDljM2Q2NjcxMzQyYjkzN2NmMmNiYmUyYzIxMjQzZTMy
MjM1ZDQwZDEuLmZmNWU4MmExZjJlMjc0NTFmY2RlODFiZGYwZTAxNWNmOTc0YTJhMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE3MDAsNiArMTcwMCw4IEBACiAJCTQzOTA0NkQ4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJN
YXRoTUxCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDM5MDQ2QzQxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEJsb2NrLmggKi87IH07
CiAJCTQzOTA0NkQ5MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGZW5jZWQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2QzUxMkRB
MjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5jcHAgKi87IH07CiAJCTQzOTA0NkRB
MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGZW5jZWQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzOTA0NkM2MTJEQTI1RTgwMEFGODBBMiAv
KiBSZW5kZXJNYXRoTUxGZW5jZWQuaCAqLzsgfTsKKwkJNDM5MDQ2RDkxMkRBMjVFODAwQUY4MUIz
IC8qIFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzOTA0NkM1MTJEQTI1RTgwMEFGODFCMyAvKiBSZW5k
ZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAgKi87IH07CisJCTQzOTA0NkRBMTJEQTI1RTgwMEFG
ODFCMyAvKiBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDM5MDQ2QzYxMkRBMjVFODAwQUY4MUIzIC8qIFJl
bmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmggKi87IH07CiAJCTQzOTA0NkRCMTJEQTI1RTgwMEFG
ODBBMiAvKiBSZW5kZXJNYXRoTUxGcmFjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzkwNDZDNzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVy
TWF0aE1MRnJhY3Rpb24uY3BwICovOyB9OwogCQk0MzkwNDZEQzEyREEyNUU4MDBBRjgwQTIgLyog
UmVuZGVyTWF0aE1MRnJhY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQzOTA0NkM4MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGcmFj
dGlvbi5oICovOyB9OwogCQk0MzkwNDZERDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1M
TWF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MzkwNDZDOTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5jcHAgKi87IH07CkBA
IC05MzI3LDYgKzkzMjksOCBAQAogCQk0MzkwNDZDNDEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVy
TWF0aE1MQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyTWF0
aE1MQmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM5MDQ2QzUxMkRBMjVF
ODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZlbmNlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW5kZXJNYXRoTUxGZW5jZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MzkwNDZDNjEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MRmVu
Y2VkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlck1hdGhNTEZlbmNl
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MzkwNDZDNTEyREEyNUU4MDBBRjgx
QjMgLyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MzkwNDZDNjEyREEyNUU4MDBBRjgxQjMgLyogUmVuZGVy
TWF0aE1MRmVuY2VkT3BlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDM5MDQ2QzcxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1hdGhNTEZyYWN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDM5MDQ2QzgxMkRBMjVFODAwQUY4
MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlck1hdGhNTEZyYWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQzOTA0NkM5MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRoLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlck1hdGhNTE1hdGguY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcxNjMsNiArMTcxNjcsOCBAQAogCQkJCTQz
OTA0NkM0MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxCbG9jay5oICovLAogCQkJCTQz
OTA0NkM1MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGZW5jZWQuY3BwICovLAogCQkJ
CTQzOTA0NkM2MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxGZW5jZWQuaCAqLywKKwkJ
CQk0MzkwNDZDNTEyREEyNUU4MDBBRjgxQjMgLyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3Iu
Y3BwICovLAorCQkJCTQzOTA0NkM2MTJEQTI1RTgwMEFGODFCMyAvKiBSZW5kZXJNYXRoTUxGZW5j
ZWRPcGVyYXRvci5oICovLAogCQkJCTQzOTA0NkM3MTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJN
YXRoTUxGcmFjdGlvbi5jcHAgKi8sCiAJCQkJNDM5MDQ2QzgxMkRBMjVFODAwQUY4MEEyIC8qIFJl
bmRlck1hdGhNTEZyYWN0aW9uLmggKi8sCiAJCQkJNDM5MDQ2QzkxMkRBMjVFODAwQUY4MEEyIC8q
IFJlbmRlck1hdGhNTE1hdGguY3BwICovLApAQCAtMjc5NjAsNiArMjc5NjYsNyBAQAogCQkJCTBG
NTYwMjhGMEU0Qjc2NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzkwNDZEODEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MQmxvY2suaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQzOTA0NkRBMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxG
ZW5jZWQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQzOTA0NkRBMTJEQTI1RTgwMEFGODFCMyAvKiBS
ZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2REMx
MkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzkwNDZERTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MTWF0aC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM5MDQ2RTAxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTE9w
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjcyLDYgKzMxNjc5LDcgQEAKIAkJCQkwRjU2
MDI5MDBFNEI3NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0MzkwNDZENzEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MQmxvY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDM5MDQ2RDkxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhN
TEZlbmNlZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MzkwNDZEOTEyREEyNUU4MDBBRjgxQjMg
LyogUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDM5
MDQ2REIxMkRBMjVFODAwQUY4MEEyIC8qIFJlbmRlck1hdGhNTEZyYWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQzOTA0NkREMTJEQTI1RTgwMEFGODBBMiAvKiBSZW5kZXJNYXRoTUxNYXRo
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM1NzE4ODNFRUY2MTg3OTM3NTFFNDA4OSAvKiBSZW5k
ZXJNYXRoTUxNZW5jbG9zZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAppbmRleCAwM2ViNmRlNWYyNzllODYzZmE1MjM2M2I0NTZhNWI0NTk4
N2Y0YWFhLi5jNmM2YzNmZWU1ZTI2NTA4YzMxOTZiOTMwYmM0NjNjNzZhN2I2M2FjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0zMzgsNiArMzM4LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTE1hdGgoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1hdGhNTE1lbmNsb3NlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxGZW5j
ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlck1h
dGhNTEZlbmNlZE9wZXJhdG9yKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJNYXRoTUxGcmFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBib29sIGlzUmVuZGVyTWF0aE1MUGFkZGVkKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNYXRoTUxSb290KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MRmVuY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MRmVuY2VkLmNwcAppbmRleCAwYWQ4ODMyMmZjZjE1ZWYxZTAwMzNlMGQxZTQ2
Y2VmNmUyMGM0NmQxLi5iMTg0NWNhMTgyMTA5N2E5ZDNlMTBhY2RiMDY1NmRhMTZmM2ExMzdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZl
bmNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxGZW5jZWQuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiTWF0aE1MTmFtZXMuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKLSNp
bmNsdWRlICJSZW5kZXJNYXRoTUxPcGVyYXRvci5oIgorI2luY2x1ZGUgIlJlbmRlck1hdGhNTEZl
bmNlZE9wZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtNzgsMjQgKzc4LDI1IEBAIHZvaWQgUmVuZGVyTWF0
aE1MRmVuY2VkOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgIG1ha2VGZW5jZXMoKTsKICAg
ICBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IFRoZSBtZmVuY2VkIGVsZW1lbnQgZmFpbHMgdG8g
dXBkYXRlIGR5bmFtaWNhbGx5IHdoZW4gaXRzIG9wZW4sIGNsb3NlIGFuZCBzZXBhcmF0b3JzIGF0
dHJpYnV0ZXMgYXJlIGNoYW5nZWQgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NzY5NikuCi0gICAgICAgIGRvd25jYXN0PFJlbmRlck1hdGhNTE9wZXJhdG9yPigqZmly
c3RDaGlsZCgpKS51cGRhdGVUb2tlbkNvbnRlbnQobV9vcGVuKTsKLSAgICAgICAgbV9jbG9zZUZl
bmNlUmVuZGVyZXItPnVwZGF0ZVRva2VuQ29udGVudChtX2Nsb3NlKTsKKyAgICAgICAgaWYgKGlz
PFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPigqZmlyc3RDaGlsZCgpKSkKKyAgICAgICAgICAg
IGRvd25jYXN0PFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPigqZmlyc3RDaGlsZCgpKS51cGRh
dGVPcGVyYXRvckNvbnRlbnQobV9vcGVuKTsKKyAgICAgICAgbV9jbG9zZUZlbmNlUmVuZGVyZXIt
PnVwZGF0ZU9wZXJhdG9yQ29udGVudChtX2Nsb3NlKTsKICAgICB9CiB9CiAKLVJlbmRlclB0cjxS
ZW5kZXJNYXRoTUxPcGVyYXRvcj4gUmVuZGVyTWF0aE1MRmVuY2VkOjpjcmVhdGVNYXRoTUxPcGVy
YXRvcihjb25zdCBTdHJpbmcmIG9wZXJhdG9yU3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25h
cnk6OkZvcm0gZm9ybSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGbGFnIGZsYWcpCitSZW5k
ZXJQdHI8UmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3I+IFJlbmRlck1hdGhNTEZlbmNlZDo6Y3Jl
YXRlTWF0aE1MT3BlcmF0b3IoY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1MT3Bl
cmF0b3JEaWN0aW9uYXJ5OjpGb3JtIGZvcm0sIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6Rmxh
ZyBmbGFnKQogewotICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxPcGVyYXRvcj4gbmV3T3BlcmF0
b3IgPSBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNYXRoTUxPcGVyYXRvcj4oZG9jdW1lbnQoKSwgUmVu
ZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkoc3R5bGUoKSwgQkxPQ0sp
LCBvcGVyYXRvclN0cmluZywgZm9ybSwgZmxhZyk7CisgICAgUmVuZGVyUHRyPFJlbmRlck1hdGhN
TEZlbmNlZE9wZXJhdG9yPiBuZXdPcGVyYXRvciA9IGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhN
TEZlbmNlZE9wZXJhdG9yPihkb2N1bWVudCgpLCBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3Vz
U3R5bGVXaXRoRGlzcGxheShzdHlsZSgpLCBCTE9DSyksIG9wZXJhdG9yU3RyaW5nLCBmb3JtLCBm
bGFnKTsKICAgICBuZXdPcGVyYXRvci0+aW5pdGlhbGl6ZVN0eWxlKCk7CiAgICAgcmV0dXJuIG5l
d09wZXJhdG9yOwogfQogCiB2b2lkIFJlbmRlck1hdGhNTEZlbmNlZDo6bWFrZUZlbmNlcygpCiB7
Ci0gICAgUmVuZGVyUHRyPFJlbmRlck1hdGhNTE9wZXJhdG9yPiBvcGVuRmVuY2UgPSBjcmVhdGVN
YXRoTUxPcGVyYXRvcihtX29wZW4sIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6UHJlZml4LCBN
YXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZlbmNlKTsKKyAgICBSZW5kZXJQdHI8UmVuZGVyTWF0
aE1MRmVuY2VkT3BlcmF0b3I+IG9wZW5GZW5jZSA9IGNyZWF0ZU1hdGhNTE9wZXJhdG9yKG1fb3Bl
biwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpQcmVmaXgsIE1hdGhNTE9wZXJhdG9yRGljdGlv
bmFyeTo6RmVuY2UpOwogICAgIFJlbmRlck1hdGhNTFJvdzo6YWRkQ2hpbGQob3BlbkZlbmNlLmxl
YWtQdHIoKSwgZmlyc3RDaGlsZCgpKTsKIAotICAgIFJlbmRlclB0cjxSZW5kZXJNYXRoTUxPcGVy
YXRvcj4gY2xvc2VGZW5jZSA9IGNyZWF0ZU1hdGhNTE9wZXJhdG9yKG1fY2xvc2UsIE1hdGhNTE9w
ZXJhdG9yRGljdGlvbmFyeTo6UG9zdGZpeCwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5OjpGZW5j
ZSk7CisgICAgUmVuZGVyUHRyPFJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPiBjbG9zZUZlbmNl
ID0gY3JlYXRlTWF0aE1MT3BlcmF0b3IobV9jbG9zZSwgTWF0aE1MT3BlcmF0b3JEaWN0aW9uYXJ5
OjpQb3N0Zml4LCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZlbmNlKTsKICAgICBtX2Nsb3Nl
RmVuY2VSZW5kZXJlciA9IGNsb3NlRmVuY2UuZ2V0KCk7CiAgICAgUmVuZGVyTWF0aE1MUm93Ojph
ZGRDaGlsZChjbG9zZUZlbmNlLmxlYWtQdHIoKSk7CiB9CkBAIC0xMDgsNyArMTA5LDcgQEAgdm9p
ZCBSZW5kZXJNYXRoTUxGZW5jZWQ6OmFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRl
ck9iamVjdCogYmVmb3JlQ2hpbGQKIAogICAgIC8vIEZJWE1FOiBBZGRpbmcgb3IgcmVtb3Zpbmcg
YSBjaGlsZCBzaG91bGQgcG9zc2libHkgY2F1c2UgYWxsIGxhdGVyIHNlcGFyYXRvcnMgdG8gc2hp
ZnQgcGxhY2VzIGlmIHRoZXkncmUgZGlmZmVyZW50LCBhcyBsYXRlciBjaGlsZCBwb3NpdGlvbnMg
Y2hhbmdlIGJ5ICsxIG9yIC0xLiBUaGlzIHNob3VsZCBhbHNvIGhhbmRsZSBzdXJyb2dhdGUgcGFp
cnMuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1OTM4Lgog
Ci0gICAgUmVuZGVyUHRyPFJlbmRlck1hdGhNTE9wZXJhdG9yPiBzZXBhcmF0b3JSZW5kZXJlcjsK
KyAgICBSZW5kZXJQdHI8UmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3I+IHNlcGFyYXRvclJlbmRl
cmVyOwogICAgIGlmIChtX3NlcGFyYXRvcnMuZ2V0KCkpIHsKICAgICAgICAgdW5zaWduZWQgaW50
IGNvdW50ID0gMDsKICAgICAgICAgZm9yIChOb2RlKiBwb3NpdGlvbiA9IGNoaWxkLT5ub2RlKCk7
IHBvc2l0aW9uOyBwb3NpdGlvbiA9IHBvc2l0aW9uLT5wcmV2aW91c1NpYmxpbmcoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5j
ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MRmVuY2Vk
LmgKaW5kZXggN2E4MTZjZTBlMzBiYjk1ZjczZWQ2YWMzMjJlY2E0NjU0N2NjY2EwNC4uZjYyNWNk
YWUwY2UxNzY5MGYzZjNlZWI4ZDUwZDhmN2FlNzk0YTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZC5oCkBAIC0yOCw3ICsy
OCw3IEBACiAjaWYgRU5BQkxFKE1BVEhNTCkKIAogI2luY2x1ZGUgIk1hdGhNTElubGluZUNvbnRh
aW5lckVsZW1lbnQuaCIKLSNpbmNsdWRlICJSZW5kZXJNYXRoTUxPcGVyYXRvci5oIgorI2luY2x1
ZGUgIlJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0aE1M
Um93LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDE0ICs0NCwxNCBAQCBwcml2YXRl
OgogICAgIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBi
ZWZvcmVDaGlsZCkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIGZpbmFsOwog
Ci0gICAgUmVuZGVyUHRyPFJlbmRlck1hdGhNTE9wZXJhdG9yPiBjcmVhdGVNYXRoTUxPcGVyYXRv
cihjb25zdCBTdHJpbmcmIG9wZXJhdG9yU3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6
OkZvcm0sIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RmxhZyk7CisgICAgUmVuZGVyUHRyPFJl
bmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yPiBjcmVhdGVNYXRoTUxPcGVyYXRvcihjb25zdCBTdHJp
bmcmIG9wZXJhdG9yU3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZvcm0sIE1hdGhN
TE9wZXJhdG9yRGljdGlvbmFyeTo6RmxhZyk7CiAgICAgdm9pZCBtYWtlRmVuY2VzKCk7CiAKICAg
ICBTdHJpbmcgbV9vcGVuOwogICAgIFN0cmluZyBtX2Nsb3NlOwogICAgIFJlZlB0cjxTdHJpbmdJ
bXBsPiBtX3NlcGFyYXRvcnM7CiAKLSAgICBSZW5kZXJNYXRoTUxPcGVyYXRvciogbV9jbG9zZUZl
bmNlUmVuZGVyZXI7CisgICAgUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3IqIG1fY2xvc2VGZW5j
ZVJlbmRlcmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNzE4YmYyNjdlZmJkYTcyMDNiZDE0YWM3MmEyODllMGZjYjIwZmE4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRP
cGVyYXRvci5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1BVEhNTCkKKyNpbmNsdWRlICJSZW5kZXJN
YXRoTUxGZW5jZWRPcGVyYXRvci5oIgorCisjaW5jbHVkZSAiTWF0aE1MT3BlcmF0b3JFbGVtZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVuZGVyTWF0aE1MRmVuY2VkT3BlcmF0b3I6
OlJlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9yKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5
bGUmJiBzdHlsZSwgY29uc3QgU3RyaW5nJiBvcGVyYXRvclN0cmluZywgTWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5OjpGb3JtIGZvcm0sIHVuc2lnbmVkIHNob3J0IGZsYWdzKQorICAgIDogUmVuZGVy
TWF0aE1MT3BlcmF0b3IoZG9jdW1lbnQsIFdURk1vdmUoc3R5bGUpKQoreworICAgIG1fb3BlcmF0
b3JGb3JtID0gZm9ybTsKKyAgICBtX29wZXJhdG9yRmxhZ3MgPSBmbGFnczsKKyAgICB1cGRhdGVP
cGVyYXRvckNvbnRlbnQob3BlcmF0b3JTdHJpbmcpOworfQorCit2b2lkIFJlbmRlck1hdGhNTEZl
bmNlZE9wZXJhdG9yOjp1cGRhdGVPcGVyYXRvckNvbnRlbnQoY29uc3QgU3RyaW5nJiBvcGVyYXRv
clN0cmluZykKK3sKKyAgICBtX3RleHRDb250ZW50ID0gTWF0aE1MT3BlcmF0b3JFbGVtZW50Ojpw
YXJzZU9wZXJhdG9yVGV4dChvcGVyYXRvclN0cmluZyk7CisgICAgcmVidWlsZFRva2VuQ29udGVu
dCgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVjMDkxZTM2MmFiMmQ3MDczNDU2NmM5MzMyMDQ4ZDUyODUyYTVkZTYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZlbmNlZE9w
ZXJhdG9yLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoTUFUSE1MKQorCisjaW5jbHVkZSAiTWF0aE1MT3BlcmF0b3JE
aWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiUmVuZGVyTWF0aE1MT3BlcmF0b3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciBmaW5hbCA6
IHB1YmxpYyBSZW5kZXJNYXRoTUxPcGVyYXRvciB7CitwdWJsaWM6CisgICAgUmVuZGVyTWF0aE1M
RmVuY2VkT3BlcmF0b3IoRG9jdW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBjb25zdCBTdHJpbmcmIG9w
ZXJhdG9yU3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZvcm0sIHVuc2lnbmVkIHNo
b3J0IGZsYWdzID0gMCk7CisgICAgdm9pZCB1cGRhdGVPcGVyYXRvckNvbnRlbnQoY29uc3QgU3Ry
aW5nJik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc1JlbmRlck1hdGhNTEZlbmNlZE9wZXJhdG9y
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFVDaGFyIHRleHRDb250ZW50KCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV90ZXh0Q29udGVudDsgfQorCisgICAgVUNoYXIgbV90ZXh0
Q29udGVudCB7IDAgfTsKK307CisKK307IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfUkVOREVSX09CSkVDVChSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvciwg
aXNSZW5kZXJNYXRoTUxGZW5jZWRPcGVyYXRvcigpKQorCisjZW5kaWYgLy8gRU5BQkxFKE1BVEhN
TCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MT3BlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxPcGVyYXRvci5jcHAKaW5kZXggMjY5YTdhZmQ4YThhNjFmYjk0NjNiYzNmZTJjMjhlYzMx
OWExOGNiMi4uZTVlNTk1YjY2NGMwY2Y1NjE4MTUxOTE2ZTI3YzY4MmJiZjdhNmU1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxP
cGVyYXRvci5jcHAKQEAgLTQ5LDIzICs0OSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFt
ZXM7CiAKIFJlbmRlck1hdGhNTE9wZXJhdG9yOjpSZW5kZXJNYXRoTUxPcGVyYXRvcihNYXRoTUxP
cGVyYXRvckVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCiAgICAgOiBSZW5k
ZXJNYXRoTUxUb2tlbihlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLSAgICAsIG1fc3RyZXRjaEhl
aWdodEFib3ZlQmFzZWxpbmUoMCkKLSAgICAsIG1fc3RyZXRjaERlcHRoQmVsb3dCYXNlbGluZSgw
KQotICAgICwgbV9pc1ZlcnRpY2FsKHRydWUpCiB7CiAgICAgdXBkYXRlVG9rZW5Db250ZW50KCk7
CiB9CiAKLVJlbmRlck1hdGhNTE9wZXJhdG9yOjpSZW5kZXJNYXRoTUxPcGVyYXRvcihEb2N1bWVu
dCYgZG9jdW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFN0cmluZyYgb3BlcmF0b3JT
dHJpbmcsIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6Rm9ybSBmb3JtLCB1bnNpZ25lZCBzaG9y
dCBmbGFncykKK1JlbmRlck1hdGhNTE9wZXJhdG9yOjpSZW5kZXJNYXRoTUxPcGVyYXRvcihEb2N1
bWVudCYgZG9jdW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCiAgICAgOiBSZW5kZXJNYXRoTUxU
b2tlbihkb2N1bWVudCwgV1RGTW92ZShzdHlsZSkpCi0gICAgLCBtX3N0cmV0Y2hIZWlnaHRBYm92
ZUJhc2VsaW5lKDApCi0gICAgLCBtX3N0cmV0Y2hEZXB0aEJlbG93QmFzZWxpbmUoMCkKLSAgICAs
IG1fdGV4dENvbnRlbnQoMCkKLSAgICAsIG1faXNWZXJ0aWNhbCh0cnVlKQotICAgICwgbV9vcGVy
YXRvckZvcm0oZm9ybSkKLSAgICAsIG1fb3BlcmF0b3JGbGFncyhmbGFncykKIHsKLSAgICB1cGRh
dGVUb2tlbkNvbnRlbnQob3BlcmF0b3JTdHJpbmcpOwogfQogCiBNYXRoTUxPcGVyYXRvckVsZW1l
bnQmIFJlbmRlck1hdGhNTE9wZXJhdG9yOjplbGVtZW50KCkgY29uc3QKQEAgLTc1LDcgKzY1LDgg
QEAgTWF0aE1MT3BlcmF0b3JFbGVtZW50JiBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6ZWxlbWVudCgp
IGNvbnN0CiAKIFVDaGFyIFJlbmRlck1hdGhNTE9wZXJhdG9yOjp0ZXh0Q29udGVudCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGlzQW5vbnltb3VzKCkgPyBtX3RleHRDb250ZW50IDogZWxlbWVudCgp
Lm9wZXJhdG9yVGV4dCgpOworICAgIEFTU0VSVCghaXNBbm9ueW1vdXMoKSk7CisgICAgcmV0dXJu
IGVsZW1lbnQoKS5vcGVyYXRvclRleHQoKTsKIH0KIAogdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRv
cjo6c2V0T3BlcmF0b3JGbGFnRnJvbUF0dHJpYnV0ZShNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6
OkZsYWcgZmxhZywgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKQEAgLTMxOSwxMyArMzEwLDYg
QEAgdm9pZCBSZW5kZXJNYXRoTUxPcGVyYXRvcjo6cmVidWlsZFRva2VuQ29udGVudCgpCiAgICAg
c2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiB9CiAKLXZvaWQgUmVuZGVyTWF0
aE1MT3BlcmF0b3I6OnVwZGF0ZVRva2VuQ29udGVudChjb25zdCBTdHJpbmcmIG9wZXJhdG9yU3Ry
aW5nKQotewotICAgIEFTU0VSVChpc0Fub255bW91cygpKTsKLSAgICBtX3RleHRDb250ZW50ID0g
TWF0aE1MT3BlcmF0b3JFbGVtZW50OjpwYXJzZU9wZXJhdG9yVGV4dChvcGVyYXRvclN0cmluZyk7
Ci0gICAgcmVidWlsZFRva2VuQ29udGVudCgpOwotfQotCiB2b2lkIFJlbmRlck1hdGhNTE9wZXJh
dG9yOjp1cGRhdGVUb2tlbkNvbnRlbnQoKQogewogICAgIEFTU0VSVCghaXNBbm9ueW1vdXMoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TE9wZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhN
TE9wZXJhdG9yLmgKaW5kZXggOTFlNDczZDU0NWE2MmY0YTFiYjIyY2Y4NzljNjViZTQ3YzkyZjJm
Zi4uM2Y1ZDYxOTE5OGNhNzZmMDUzM2M1MmQ2Y2ZjYzg0NzhhNTMyZDRkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxPcGVyYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MT3BlcmF0b3Iu
aApAQCAtMzYsMTAgKzM2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWF0aE1M
T3BlcmF0b3JFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJNYXRoTUxPcGVyYXRvciBmaW5hbCA6IHB1
YmxpYyBSZW5kZXJNYXRoTUxUb2tlbiB7CitjbGFzcyBSZW5kZXJNYXRoTUxPcGVyYXRvciA6IHB1
YmxpYyBSZW5kZXJNYXRoTUxUb2tlbiB7CiBwdWJsaWM6CiAgICAgUmVuZGVyTWF0aE1MT3BlcmF0
b3IoTWF0aE1MT3BlcmF0b3JFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7Ci0gICAgUmVuZGVyTWF0
aE1MT3BlcmF0b3IoRG9jdW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBjb25zdCBTdHJpbmcmIG9wZXJh
dG9yU3RyaW5nLCBNYXRoTUxPcGVyYXRvckRpY3Rpb25hcnk6OkZvcm0sIHVuc2lnbmVkIHNob3J0
IGZsYWdzID0gMCk7CisgICAgUmVuZGVyTWF0aE1MT3BlcmF0b3IoRG9jdW1lbnQmLCBSZW5kZXJT
dHlsZSYmKTsKICAgICBNYXRoTUxPcGVyYXRvckVsZW1lbnQmIGVsZW1lbnQoKSBjb25zdDsKIAog
ICAgIHZvaWQgc3RyZXRjaFRvKExheW91dFVuaXQgaGVpZ2h0QWJvdmVCYXNlbGluZSwgTGF5b3V0
VW5pdCBkZXB0aEJlbG93QmFzZWxpbmUpOwpAQCAtNTMsMTEgKzUzLDE2IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzVmVydGljYWwoKSBjb25zdCB7IHJldHVybiBtX2lzVmVydGljYWw7IH0KICAgICBM
YXlvdXRVbml0IGl0YWxpY0NvcnJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX21hdGhPcGVyYXRv
ci5pdGFsaWNDb3JyZWN0aW9uKCk7IH0KIAotICAgIHZvaWQgdXBkYXRlVG9rZW5Db250ZW50KGNv
bnN0IFN0cmluZyYgb3BlcmF0b3JTdHJpbmcpOwogICAgIHZvaWQgdXBkYXRlVG9rZW5Db250ZW50
KCkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVPcGVyYXRvclByb3BlcnRpZXMoKTsKICAgICB2b2lk
IHVwZGF0ZUZyb21FbGVtZW50KCkgZmluYWw7Ci0gICAgVUNoYXIgdGV4dENvbnRlbnQoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIFVDaGFyIHRleHRDb250ZW50KCkgY29uc3Q7CisKK3Byb3RlY3RlZDoK
KyAgICB2b2lkIHJlYnVpbGRUb2tlbkNvbnRlbnQoKTsKKworICAgIE1hdGhNTE9wZXJhdG9yRGlj
dGlvbmFyeTo6Rm9ybSBtX29wZXJhdG9yRm9ybTsKKyAgICB1bnNpZ25lZCBzaG9ydCBtX29wZXJh
dG9yRmxhZ3M7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldE9wZXJhdG9yUHJvcGVy
dGllcygpOwpAQCAtNzcsNyArODIsNiBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8aW50PiBm
aXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IGZpbmFsOwogICAgIFJlbmRlck1hdGhNTE9wZXJhdG9y
KiB1bmVtYmVsbGlzaGVkT3BlcmF0b3IoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9Ci0gICAgdm9p
ZCByZWJ1aWxkVG9rZW5Db250ZW50KCk7CiAKICAgICBib29sIHNob3VsZEFsbG93U3RyZXRjaGlu
ZygpIGNvbnN0OwogICAgIGJvb2wgdXNlTWF0aE9wZXJhdG9yKCkgY29uc3Q7CkBAIC04OCwxNCAr
OTIsMTEgQEAgcHJpdmF0ZToKIAogICAgIExheW91dFVuaXQgdmVydGljYWxTdHJldGNoZWRPcGVy
YXRvclNoaWZ0KCkgY29uc3Q7CiAKLSAgICBMYXlvdXRVbml0IG1fc3RyZXRjaEhlaWdodEFib3Zl
QmFzZWxpbmU7Ci0gICAgTGF5b3V0VW5pdCBtX3N0cmV0Y2hEZXB0aEJlbG93QmFzZWxpbmU7Cisg
ICAgTGF5b3V0VW5pdCBtX3N0cmV0Y2hIZWlnaHRBYm92ZUJhc2VsaW5lIHsgMCB9OworICAgIExh
eW91dFVuaXQgbV9zdHJldGNoRGVwdGhCZWxvd0Jhc2VsaW5lIHsgMCB9OwogICAgIExheW91dFVu
aXQgbV9zdHJldGNoV2lkdGg7CiAKLSAgICBVQ2hhciBtX3RleHRDb250ZW50OwotICAgIGJvb2wg
bV9pc1ZlcnRpY2FsOwotICAgIE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6Rm9ybSBtX29wZXJh
dG9yRm9ybTsKLSAgICB1bnNpZ25lZCBzaG9ydCBtX29wZXJhdG9yRmxhZ3M7CisgICAgYm9vbCBt
X2lzVmVydGljYWwgeyB0cnVlIH07CiAgICAgTGF5b3V0VW5pdCBtX2xlYWRpbmdTcGFjZTsKICAg
ICBMYXlvdXRVbml0IG1fdHJhaWxpbmdTcGFjZTsKICAgICBMYXlvdXRVbml0IG1fbWluU2l6ZTsK
</data>
<flag name="review"
          id="308521"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>