<?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>158593</bug_id>
          
          <creation_ts>2016-06-09 16:43:58 -0700</creation_ts>
          <short_desc>WorkerNavigator is missing some attributes</short_desc>
          <delta_ts>2016-10-07 10:26:47 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>163124</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1201049</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-09 16:43:58 -0700</bug_when>
    <thetext>WorkerNavigator is missing some NavigatorID attributes:
https://html.spec.whatwg.org/multipage/workers.html#the-workernavigator-object
https://html.spec.whatwg.org/multipage/webappapis.html#navigatorid

We should use the same NavigatorID interface for Navigator and WorkerNavigator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201052</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-06-09 16:45:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/26731334&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201105</commentid>
    <comment_count>2</comment_count>
      <attachid>280978</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-09 19:54:34 -0700</bug_when>
    <thetext>Created attachment 280978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201124</commentid>
    <comment_count>3</comment_count>
      <attachid>280984</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-09 20:21:49 -0700</bug_when>
    <thetext>Created attachment 280984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201407</commentid>
    <comment_count>4</comment_count>
      <attachid>280984</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-06-10 15:24:38 -0700</bug_when>
    <thetext>Comment on attachment 280984
Patch

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

&gt; Source/WebCore/page/NavigatorBase.h:35
&gt; +    String appName() const;

Should be a static member function. Annoying that it makes a new String every time and doesn’t use ASCIILiteral. Same for most of the other functions below.

&gt; Source/WebCore/page/NavigatorBase.h:38
&gt; +    String platform() const;

Should be a static member function.

&gt; Source/WebCore/page/NavigatorBase.h:40
&gt; +    String appCodeName() const;

Should be a static member function.

&gt; Source/WebCore/page/NavigatorBase.h:41
&gt; +    String product() const;

Should be a static member function.

&gt; Source/WebCore/page/NavigatorBase.h:42
&gt; +    String productSub() const;

Should be a static member function.

&gt; Source/WebCore/page/NavigatorBase.h:43
&gt; +    String vendor() const;

Should be a static member function.

&gt; Source/WebCore/page/NavigatorBase.h:44
&gt; +    String vendorSub() const;

Should be a static member function.

&gt; Source/WebCore/page/NavigatorBase.h:46
&gt; +    bool onLine() const;

Should be a static member function.

&gt; Source/WebCore/page/NavigatorBase.h:48
&gt; +    String language() const;

Should be a static member function.

&gt; Source/WebCore/page/NavigatorBase.h:51
&gt; +    int hardwareConcurrency() const;

Should be a static member function.

&gt; Source/WebCore/platform/Language.cpp:115
&gt; +            Vector&lt;String&gt; overrideCopy;
&gt; +            overrideCopy.reserveInitialCapacity(override.size());
&gt; +            for (String&amp; language : override)
&gt; +                overrideCopy.uncheckedAppend(language.isolatedCopy());
&gt; +            return overrideCopy;

This should be an isolatedCopy function that takes a Vector&lt;String&gt; and returns another Vector&lt;String&gt;, not written in line here like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201414</commentid>
    <comment_count>5</comment_count>
      <attachid>281054</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-10 15:56:58 -0700</bug_when>
    <thetext>Created attachment 281054
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201434</commentid>
    <comment_count>6</comment_count>
      <attachid>281060</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-10 16:52:23 -0700</bug_when>
    <thetext>Created attachment 281060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201436</commentid>
    <comment_count>7</comment_count>
      <attachid>281061</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-06-10 16:55:19 -0700</bug_when>
    <thetext>Created attachment 281061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201586</commentid>
    <comment_count>8</comment_count>
      <attachid>281061</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-11 10:42:48 -0700</bug_when>
    <thetext>Comment on attachment 281061
Patch

Clearing flags on attachment: 281061

Committed r201970: &lt;http://trac.webkit.org/changeset/201970&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201587</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-11 10:42:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280978</attachid>
            <date>2016-06-09 19:54:34 -0700</date>
            <delta_ts>2016-06-09 20:21:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158593-20160609195603.patch</filename>
            <type>text/plain</type>
            <size>28874</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxODk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhiM2Y1ZjYwZjhiYjZiNGVhYjMxMWVk
NWRhNmVhNzdhMWI1ZTE0NGMuLjg2NzgwYTkxNWFmODY2Zjk0YjQ4YmQ4MjFmMTBkNjQ2MWI1NDQ0
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDYtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODU5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc1dpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAg
ICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCisgICAgICAgIE1ha2Ug
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkgdGhyZWFkIHNhZmUgb24gV2luZG93cy4g
VGhlCisgICAgICAgIE1hYyBhbmQgVW5peCBpbXBsZW1lbnRhdGlvbnMgYXJlIGFscmVhZHkgdGhy
ZWFkLXNhZmUuCisKIDIwMTYtMDYtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFVuYWRkcmVzc2VkIHJldmlldyBmZWVkYmFjayBmcm9tIHIyMDE4NzIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBkNDNjZGQ0OTA2NjcyMWY5YTIxNmQxOTc1N2U0MDEwOTdjNjgwZGZkLi4zNGI3
ZTJlYWE3MjgzNWYyMDE1NzQ3MzI3ODM0NzIwY2I4ZTZlYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsNjQgQEAKIDIwMTYtMDYtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAor
ICAgICAgICBXb3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODU5MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbWlzc2luZyBvbiBX
b3JrZXJOYXZpZ2F0b3I6CisgICAgICAgIC0gYXBwQ29kZU5hbWUKKyAgICAgICAgLSBoYXJkd2Fy
ZUNvbmN1cnJlbmN5CisgICAgICAgIC0gbGFuZ3VhZ2UKKyAgICAgICAgLSBwcm9kdWN0CisgICAg
ICAgIC0gcHJvZHVjdFN1YgorICAgICAgICAtIHZlbmRvcgorICAgICAgICAtIHZlbmRvclN1Ygor
CisgICAgICAgIEZpcmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IGV4cG9zZSB0aG9zZSBhdHRyaWJ1
dGVzLgorCisgICAgICAgIFJlbGV2YW50IHNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCN0aGUtd29ya2VybmF2
aWdhdG9yLW9iamVjdAorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZWZhY3RvcnMgdGhlIElE
TCB0byBtYXRjaCB0aGUgc3BlY2lmaWNhdGlvbiBtb3JlCisgICAgICAgIGNsb3NlbHkgYW5kIHBy
b21vdGUgc2hhcmluZyBiZXR3ZWVuIE5hdmlnYXRvciBhbmQgV29ya2VyTmF2aWdhdG9yLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
QWRkIG5ldyBzdXBwbGVtZW50YWwgSURMIGZpbGVzLgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0
b3IuY3BwOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmg6CisgICAgICAgIE1vdmVkIGxhbmd1
YWdlKCkgLyBoYXJkd2FyZUNvbmN1cnJlbmN5KCkgZnJvbSBOYXZpZ2F0b3IgdG8gTmF2aWdhdG9y
QmFzZQorICAgICAgICBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5IE5hdmlnYXRvcldvcmtlciBh
cyB3ZWxsLgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmg6CisgICAgICAgICogcGFn
ZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckJhc2U6Omxh
bmd1YWdlKToKKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9uIHN0aWxsIGNhbGxzIGRlZmF1bHRM
YW5ndWFnZSgpIGJ1dCBJIHVwZGF0ZWQgaXQgdG8gYmUKKyAgICAgICAgdGhyZWFkIHNhZmUgb24g
YWxsIHBsYXRmb3Jtcy4KKworICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmFzZTo6aGFyZHdh
cmVDb25jdXJyZW5jeSk6CisgICAgICAgIFVzZSBzdGQ6OmNhbGxfb25jZSgpIGZvciB0aHJlYWQg
c2FmZXR5LgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2Uv
TmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsLgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9ySUQu
aWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwu
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGw6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbC4KKyAgICAgICAgKiBwYWdlL05hdmln
YXRvck9uTGluZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2
aWdhdG9yLmlkbC4KKyAgICAgICAgKiBwYWdlL1dvcmtlck5hdmlnYXRvci5pZGw6CisgICAgICAg
IE1vdmUgc2V2ZXJhbCBhdHRyaWJ1dGVzIHRvIHRoZWlyIG93biBzdXBwbGVtZW50YWwgaW50ZXJm
YWNlcyB0byBtYXRjaAorICAgICAgICB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgcHJvbW90ZSBzaGFy
aW5nIHdpdGggV29ya2VyTmF2aWdhdG9yLgorCisgICAgICAgICogcGxhdGZvcm0vTGFuZ3VhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAg
ICogcGxhdGZvcm0vTGFuZ3VhZ2UuaDoKKyAgICAgICAgTWFkZSB0aHJlYWQtc2FmZSBvbiBhbGwg
cGxhdGZvcm1zLgorCisyMDE2LTA2LTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKICAgICAgICAgV29ya2VyTmF2aWdhdG9yIHByb3BlcnR5IHNob3VsZCBleGlzdCBvbiBXb3Jr
ZXJHbG9iYWxTY29wZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4NTc0CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjcyNTEwOD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIGIvU291
cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgKaW5kZXggNjNmNjk1
ZDUzYzI4MWEzYTBjMjdiYjJjNTQ4MmU2OWI1ZjUyMjdkOS4uOTM1ODBmYzc2MDlmZmRjM2FiM2I0
NmRhMGRlYzg3YTkwMzRmZTc3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1V
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzLmgKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAK
IFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldFBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdl
c0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKTsKIAorLy8gVGhpcyBpcyB0aHJlYWQtc2FmZS4K
IFdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcAppbmRleCAwZjM4NjQwMzYx
Mzk0NWM3ZjYyNGJjNDk3YjZiODk4ZjI3ZTlkY2NhLi43ZWNjNzQzM2MxODIzNDZiMDgxNmQwNTg2
OWNlMmM4ZDgxY2ExMDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNl
clByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAKQEAgLTI3LDExICsyNywxNCBAQAogI2luY2x1ZGUg
IlBsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlcy5oIgogCiAjaW5jbHVkZSA8d2luZG93cy5o
PgorI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAorc3RhdGljIFN0
YXRpY0xvY2sgcGxhdGZvcm1MYW5ndWFnZU11dGV4OworCiB2b2lkIHNldFBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkICgqKSgpKSB7IH0KIAogc3RhdGlj
IFN0cmluZyBsb2NhbGVJbmZvKExDVFlQRSBsb2NhbGVUeXBlLCBjb25zdCBTdHJpbmcmIGZhbGxi
YWNrKQpAQCAtNTQsOSArNTcsMTEgQEAgc3RhdGljIFN0cmluZyBsb2NhbGVJbmZvKExDVFlQRSBs
b2NhbGVUeXBlLCBjb25zdCBTdHJpbmcmIGZhbGxiYWNrKQogCiBzdGF0aWMgU3RyaW5nIHBsYXRm
b3JtTGFuZ3VhZ2UoKQogeworICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHBs
YXRmb3JtTGFuZ3VhZ2VNdXRleCk7CisKICAgICBzdGF0aWMgU3RyaW5nIGNvbXB1dGVkRGVmYXVs
dExhbmd1YWdlOwogICAgIGlmICghY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2UuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm4gY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7CisgICAgICAgIHJldHVybiBj
b21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc29sYXRlZENvcHkoKTsKIAogICAgIFN0cmluZyBsYW5n
dWFnZU5hbWUgPSBsb2NhbGVJbmZvKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsICJlbiIpOwogICAg
IFN0cmluZyBjb3VudHJ5TmFtZSA9IGxvY2FsZUluZm8oTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUs
IFN0cmluZygpKTsKQEAgLTcxLDkgKzc2LDcgQEAgc3RhdGljIFN0cmluZyBwbGF0Zm9ybUxhbmd1
YWdlKCkKIAogVmVjdG9yPFN0cmluZz4gcGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkK
IHsKLSAgICBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzOwotICAgIHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuYXBwZW5kKHBsYXRmb3JtTGFuZ3VhZ2UoKSk7Ci0gICAgcmV0dXJu
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7CisgICAgcmV0dXJuIHsgcGxhdGZvcm1MYW5ndWFnZSgp
IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2NzJj
NGIyNjRiMjJmZTRiMTZiNzljNzMwMWYyNjUxMjc3ZjA0ZDlkLi5jYWI5ZjQ2YjI4OGU5MjQ1YjY1
ZGE0M2Y3NmY2NGIwZDQ4YWZmMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjAzLDYgKzYw
MywxMCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIHBhZ2UvSGlzdG9yeS5p
ZGwKICAgICBwYWdlL0xvY2F0aW9uLmlkbAogICAgIHBhZ2UvTmF2aWdhdG9yLmlkbAorICAgIHBh
Z2UvTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlLmlkbAorICAgIHBhZ2UvTmF2aWdhdG9ySUQu
aWRsCisgICAgcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGwKKyAgICBwYWdlL05hdmlnYXRvck9u
TGluZS5pZGwKICAgICBwYWdlL1BlcmZvcm1hbmNlLmlkbAogICAgIHBhZ2UvUGVyZm9ybWFuY2VF
bnRyeS5pZGwKICAgICBwYWdlL1BlcmZvcm1hbmNlRW50cnlMaXN0LmlkbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKaW5kZXggM2I0YTQzM2ExYjRhN2EwNzA5YjgxN2IwN2VhNzZhOTFmODJm
NjdkOC4uZTNhOTA2MTc2YTJjOTY4ZGQ1MDk4YThjZDY2YjA1ZjNmYzE3ZGIzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC01MTQsNiArNTE0LDEwIEBAIE5PTl9TVkdfQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvcGFnZS9IaXN0b3J5LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9wYWdlL0xvY2F0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL05hdmlnYXRvci5p
ZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL3BhZ2UvTmF2aWdhdG9ySUQuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L3BhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3BhZ2UvTmF2aWdh
dG9yT25MaW5lLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL1BlcmZvcm1hbmNlLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaWRsIFwKICAgICAkKFdlYkNvcmUp
L3BhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTmF2aWdhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmNw
cAppbmRleCAyNTg5NWJmNTQxNTQ1NjA3Y2U0MjFmOWRlNzQ1ZDY3YzA2OTg5NjI0Li43ZjY1MzJh
MDkwOTY2ZTgxMzQzZmE1NGQ2ZmQ3NjM4OWYxMTcwNTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL05hdmlnYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3IuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8
d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXVEY7CkBAIC03OCwxMSArNzcsNiBAQCBTdHJpbmcgTmF2aWdhdG9yOjph
cHBWZXJzaW9uKCkgY29uc3QKICAgICByZXR1cm4gYXBwVmVyc2lvbjsKIH0KIAotU3RyaW5nIE5h
dmlnYXRvcjo6bGFuZ3VhZ2UoKSBjb25zdAotewotICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2Uo
KTsKLX0KLQogU3RyaW5nIE5hdmlnYXRvcjo6dXNlckFnZW50KCkgY29uc3QKIHsKICAgICBpZiAo
IW1fZnJhbWUpCkBAIC0xMzQsMjggKzEyOCw2IEBAIGJvb2wgTmF2aWdhdG9yOjpqYXZhRW5hYmxl
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9OQVZJ
R0FUT1JfSFdDT05DVVJSRU5DWSkKLWludCBOYXZpZ2F0b3I6OmhhcmR3YXJlQ29uY3VycmVuY3ko
KSBjb25zdAotewotICAgIC8vIEVuZm9yY2UgYSBtYXhpbXVtIGZvciB0aGUgbnVtYmVyIG9mIGNv
cmVzIHJlcG9ydGVkIHRvIG1pdGlnYXRlCi0gICAgLy8gZmluZ2VycHJpbnRpbmcgZm9yIHRoZSBt
aW5vcml0eSBvZiBtYWNoaW5lcyB3aXRoIGxhcmdlIG51bWJlcnMgb2YgY29yZXMuCi0gICAgLy8g
SWYgbWFjaGluZXMgd2l0aCBtb3JlIHRoYW4gOCBjb3JlcyBiZWNvbWUgY29tbW9ucGxhY2UsIHdl
IHNob3VsZCBidW1wIHRoaXMgbnVtYmVyLgotICAgIC8vIHNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTg4IGZvciB0aGUKLSAgICAvLyByYXRpb25hbGUgYmVo
aW5kIHRoaXMgZGVjaXNpb24uCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGNvbnN0IGludCBtYXhD
b3Jlc1RvUmVwb3J0ID0gMjsKLSNlbHNlCi0gICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBvcnQg
PSA4OwotI2VuZGlmCi0gICAgaW50IGhhcmR3YXJlQ29uY3VycmVuY3kgPSBudW1iZXJPZlByb2Nl
c3NvckNvcmVzKCk7Ci0KLSAgICBpZiAoaGFyZHdhcmVDb25jdXJyZW5jeSA+IG1heENvcmVzVG9S
ZXBvcnQpCi0gICAgICAgIHJldHVybiBtYXhDb3Jlc1RvUmVwb3J0OwotCi0gICAgcmV0dXJuIGhh
cmR3YXJlQ29uY3VycmVuY3k7Ci19Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKElPUykKIGJvb2wg
TmF2aWdhdG9yOjpzdGFuZGFsb25lKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTmF2aWdhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCmlu
ZGV4IDE2YWJkZDg2Nzc2MTQ3ZjcxYWQwNWExYjg3NTljMDg1NTA0NjMzMmYuLmZiYjEyYzQ5YWNl
OWI2M2Q5ZWMxZTA3YzUyYjVkZmJmMTRmMzc1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTmF2aWdhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaApA
QCAtNDUsMTQgKzQ1LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5OYXZpZ2F0b3IoKTsKIAog
ICAgIFN0cmluZyBhcHBWZXJzaW9uKCkgY29uc3Q7Ci0gICAgU3RyaW5nIGxhbmd1YWdlKCkgY29u
c3Q7CiAgICAgRE9NUGx1Z2luQXJyYXkqIHBsdWdpbnMoKSBjb25zdDsKICAgICBET01NaW1lVHlw
ZUFycmF5KiBtaW1lVHlwZXMoKSBjb25zdDsKICAgICBib29sIGNvb2tpZUVuYWJsZWQoKSBjb25z
dDsKICAgICBib29sIGphdmFFbmFibGVkKCkgY29uc3Q7Ci0jaWYgZGVmaW5lZChFTkFCTEVfTkFW
SUdBVE9SX0hXQ09OQ1VSUkVOQ1kpCi0gICAgaW50IGhhcmR3YXJlQ29uY3VycmVuY3koKSBjb25z
dDsKLSNlbmRpZgogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OwogCiAjaWYg
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
aWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCmluZGV4IGJkY2U0ZjI0ZjQ3
ZTBjZTY4ZTdhZjkzYWU5MTM4MjIxN2ZkM2Y1NDIuLjE1MmM1NjZjOTA3MWQzMjM1OTlmNzU1Njlm
YzQ3NmJiMjJlN2IyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwKQEAgLTIwLDI3ICsy
MCwxMSBAQAogWwogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEZyYW1lLAogXSBpbnRlcmZh
Y2UgTmF2aWdhdG9yIHsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBhcHBDb2RlTmFtZTsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBhcHBOYW1lOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcFZlcnNpb247Ci0gICAgW05vbmRldGVybWluaXN0
aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZ3VhZ2U7Ci0gICAgW05vbmRldGVy
bWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXNlckFnZW50OwotICAgIFtO
b25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtOwog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01QbHVnaW5BcnJheSBwbHVnaW5zOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01NaW1lVHlwZUFycmF5IG1pbWVUeXBlczsKLSAgICBbTm9uZGV0ZXJt
aW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0OwotICAgIFtOb25k
ZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3RTdWI7Ci0g
ICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9y
OwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZl
bmRvclN1YjsKICAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gY29va2llRW5hYmxlZDsKICAgICBbTm9uZGV0ZXJtaW5pc3RpY10gYm9vbGVhbiBqYXZhRW5h
YmxlZCgpOwogCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb25MaW5lOwotCi0jaWYg
ZGVmaW5lZChFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpCi0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIGxvbmcgaGFyZHdhcmVDb25jdXJyZW5jeTsKLSNlbmRpZgotCiAgICAgLy8gRklYTUU6
IENvbnZlcnQgdGhpcyAjaWYnZGVmIHRvIGFuIElETCBjb25kaXRpb25hbCBhdHRyaWJ1dGUuCiAj
aWYgZGVmaW5lZChXVEZfUExBVEZPUk1fSU9TKSAmJiBXVEZfUExBVEZPUk1fSU9TCiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc3RhbmRhbG9uZTsKQEAgLTQ5LDMgKzMzLDcgQEAKICAg
ICB2b2lkIGdldFN0b3JhZ2VVcGRhdGVzKCk7IC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2Qg
b3IgcmVuYW1lIHRvIHlpZWxkRm9yU3RvcmFnZVVwZGF0ZXMuCiB9OwogCitOYXZpZ2F0b3IgaW1w
bGVtZW50cyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmU7CitOYXZpZ2F0b3IgaW1wbGVtZW50
cyBOYXZpZ2F0b3JJRDsKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvckxhbmd1YWdlOwor
TmF2aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yT25MaW5lOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2
aWdhdG9yQmFzZS5jcHAKaW5kZXggMGJlMmUxZmI4NDA4OGZlOWNmMTgyYThkYjQ3OThlYWMxY2Q5
MWI4Yy4uYWE2OWU1NmVmNjkxZjNmMWQ2MzdjMTZlYzUxMWFlNjJjMTMwZWIyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCkBAIC0yNyw4ICsyNywxMSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvckJhc2UuaCIKIAorI2luY2x1ZGUgIkxhbmd1
YWdlLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0YXRlTm90aWZpZXIuaCIKKyNpbmNsdWRlIDxtdXRl
eD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvTnVtYmVy
T2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgT1MoTElO
VVgpCkBAIC0xMzEsNCArMTM0LDM1IEBAIGJvb2wgTmF2aWdhdG9yQmFzZTo6b25MaW5lKCkgY29u
c3QKICAgICByZXR1cm4gbmV0d29ya1N0YXRlTm90aWZpZXIoKS5vbkxpbmUoKTsKIH0KIAorU3Ry
aW5nIE5hdmlnYXRvckJhc2U6Omxhbmd1YWdlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZGVmYXVs
dExhbmd1YWdlKCk7Cit9CisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpCisK
K2ludCBOYXZpZ2F0b3JCYXNlOjpoYXJkd2FyZUNvbmN1cnJlbmN5KCkgY29uc3QKK3sKKyAgICBz
dGF0aWMgaW50IG51bWJlck9mQ29yZXM7CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25j
ZTsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7CisgICAgICAgIC8vIEVuZm9yY2UgYSBt
YXhpbXVtIGZvciB0aGUgbnVtYmVyIG9mIGNvcmVzIHJlcG9ydGVkIHRvIG1pdGlnYXRlCisgICAg
ICAgIC8vIGZpbmdlcnByaW50aW5nIGZvciB0aGUgbWlub3JpdHkgb2YgbWFjaGluZXMgd2l0aCBs
YXJnZSBudW1iZXJzIG9mIGNvcmVzLgorICAgICAgICAvLyBJZiBtYWNoaW5lcyB3aXRoIG1vcmUg
dGhhbiA4IGNvcmVzIGJlY29tZSBjb21tb25wbGFjZSwgd2Ugc2hvdWxkIGJ1bXAgdGhpcyBudW1i
ZXIuCisgICAgICAgIC8vIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMyNTg4IGZvciB0aGUKKyAgICAgICAgLy8gcmF0aW9uYWxlIGJlaGluZCB0aGlzIGRlY2lz
aW9uLgorI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBv
cnQgPSAyOworI2Vsc2UKKyAgICAgICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBvcnQgPSA4Owor
I2VuZGlmCisgICAgICAgIG51bWJlck9mQ29yZXMgPSBzdGQ6Om1pbihXVEY6Om51bWJlck9mUHJv
Y2Vzc29yQ29yZXMoKSwgbWF4Q29yZXNUb1JlcG9ydCk7CisgICAgfSk7CisKKyAgICByZXR1cm4g
bnVtYmVyT2ZDb3JlczsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmgKaW5kZXggNTI4M2Y1Njk4ZTgyYTdiOWY0NDQ1YWM2
ZWIxMDAyM2U3MjBmMmQyZS4uZTIzMTc1YTUxYTc4NmJiNTk1ZmQ1YWMzZWJhOGY5NTdmN2I3Y2Yy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmgKQEAgLTMwLDI0ICszMCwzMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBOYXZpZ2F0b3JCYXNlIHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIFN0cmluZyBhcHBOYW1lKCkgY29uc3Q7Ci0gICAgICAgIFN0cmluZyBh
cHBWZXJzaW9uKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpIGNv
bnN0ID0gMDsKLSAgICAgICAgU3RyaW5nIHBsYXRmb3JtKCkgY29uc3Q7Ci0KLSAgICAgICAgU3Ry
aW5nIGFwcENvZGVOYW1lKCkgY29uc3Q7Ci0gICAgICAgIFN0cmluZyBwcm9kdWN0KCkgY29uc3Q7
Ci0gICAgICAgIFN0cmluZyBwcm9kdWN0U3ViKCkgY29uc3Q7Ci0gICAgICAgIFN0cmluZyB2ZW5k
b3IoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIHZlbmRvclN1YigpIGNvbnN0OwotCi0gICAgICAg
IGJvb2wgb25MaW5lKCkgY29uc3Q7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwg
fk5hdmlnYXRvckJhc2UoKTsKLSAgICB9OworY2xhc3MgTmF2aWdhdG9yQmFzZSB7CitwdWJsaWM6
CisgICAgU3RyaW5nIGFwcE5hbWUoKSBjb25zdDsKKyAgICBTdHJpbmcgYXBwVmVyc2lvbigpIGNv
bnN0OworICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0ID0gMDsKKyAgICBTdHJp
bmcgcGxhdGZvcm0oKSBjb25zdDsKKworICAgIFN0cmluZyBhcHBDb2RlTmFtZSgpIGNvbnN0Owor
ICAgIFN0cmluZyBwcm9kdWN0KCkgY29uc3Q7CisgICAgU3RyaW5nIHByb2R1Y3RTdWIoKSBjb25z
dDsKKyAgICBTdHJpbmcgdmVuZG9yKCkgY29uc3Q7CisgICAgU3RyaW5nIHZlbmRvclN1YigpIGNv
bnN0OworCisgICAgYm9vbCBvbkxpbmUoKSBjb25zdDsKKworICAgIFN0cmluZyBsYW5ndWFnZSgp
IGNvbnN0OworCisjaWYgRU5BQkxFKE5BVklHQVRPUl9IV0NPTkNVUlJFTkNZKQorICAgIGludCBo
YXJkd2FyZUNvbmN1cnJlbmN5KCkgY29uc3Q7CisjZW5kaWYKKworcHJvdGVjdGVkOgorICAgIHZp
cnR1YWwgfk5hdmlnYXRvckJhc2UoKTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdh
cmUuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmUu
aWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIxOTIxOWEzMzYwNmVkNTEzNDVhZGU3NDM1YTY3OGQ0ZmM4NTRjMmYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckNvbmN1cnJl
bnRIYXJkd2FyZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVy
ZmFjZSBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmUgeworICAgIFtDb25kaXRpb25hbD1OQVZJ
R0FUT1JfSFdDT05DVVJSRU5DWV0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9u
ZyBoYXJkd2FyZUNvbmN1cnJlbmN5OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTmF2aWdhdG9ySUQuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JJRC5pZGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmNhMTI1NzI1MmMzNTdmODBjNmU0OTI2MzE0ZTVlOTI2OTRlODNhMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9ySUQuaWRsCkBAIC0w
LDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBOb0ludGVyZmFjZU9iamVjdAorXSBpbnRlcmZhY2UgTmF2aWdhdG9ySUQgewor
ICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcENv
ZGVOYW1lOworICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGFwcE5hbWU7CisgICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgYXBwVmVyc2lvbjsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybTsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0OworICAgIFtOb25kZXRlcm1pbmlzdGljXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3RTdWI7CisgICAgW05vbmRldGVybWlu
aXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXNlckFnZW50OworICAgIFtOb25k
ZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvcjsKKyAgICBb
Tm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3JTdWI7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NmY1OTBmNjMzZmJkMTgyODcwYzk0NjExYzI2N2QwOGY3YWI0MjUxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGwKQEAgLTAsMCAr
MSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
KyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBOYXZpZ2F0b3JMYW5ndWFnZSB7
CisgICAgW05vbmRldGVybWluaXN0aWNdICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxh
bmd1YWdlOworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxET01TdHJpbmc+
IGxhbmd1YWdlczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRv
ck9uTGluZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvck9uTGluZS5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzkyNzYzNTAyZTk1MTczYzYzNDg0OWQyYTIzMGI2ZDJiMWViY2I2ZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbApAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAor
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIE5hdmlnYXRvck9uTGlu
ZSB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb25MaW5lOworfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbAppbmRleCAzMTA5Y2FjNTJkOTI4MDQ5YjEzZmEw
MTFjNzhjYTI2M2Q3YmMwYmE4Li5mN2U3YzJhNjk5NzE2YzM2MjFmYmFhNjIwZGE0Y2RlMjZlMjEw
ZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsCkBAIC0zMCwxMSAr
MzAsOSBAQAogICAgIEV4cG9zZWQ9V29ya2VyLAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1w
bCwKIF0gaW50ZXJmYWNlIFdvcmtlck5hdmlnYXRvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBhcHBOYW1lOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBw
VmVyc2lvbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtOwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXNlckFnZW50OwotCi0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gb25MaW5lOwogfTsKIAorV29ya2VyTmF2aWdhdG9yIGltcGxlbWVu
dHMgTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOworV29ya2VyTmF2aWdhdG9yIGltcGxlbWVu
dHMgTmF2aWdhdG9ySUQ7CitXb3JrZXJOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0b3JMYW5n
dWFnZTsKK1dvcmtlck5hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvck9uTGluZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAppbmRleCBlMmYwNGZkZTgxZGYwYWFhZmRjYjg2MWU5
YjkyMjQ1Y2MwZjgyYTg0Li4yMTA5YzM3NTRhYzQ2MzQyNDkyNWIwZjdmMzEyMWVmNDFlYmFjYjIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCkBAIC0zOCw2ICszOCw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIFN0YXRpY0xvY2sgdXNlclByZWZlcnJlZExh
bmd1YWdlc011dGV4OworCiBzdGF0aWMgdm9pZCByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2Fs
bGJhY2tJZk5lY2Vzc2FyeSgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CkBA
IC0xMDIsOSArMTA0LDE3IEBAIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSkKIAogVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlcygpCiB7Ci0gICAgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlID0gcHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLSAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIG92ZXJyaWRlOworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0
YXRpY0xvY2s+IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICAgICAgVmVj
dG9yPFN0cmluZz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKKyAg
ICAgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIFZlY3RvcjxTdHJp
bmc+IG92ZXJyaWRlQ29weTsKKyAgICAgICAgICAgIG92ZXJyaWRlQ29weS5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KG92ZXJyaWRlLnNpemUoKSk7CisgICAgICAgICAgICBmb3IgKFN0cmluZyYgbGFu
Z3VhZ2UgOiBvdmVycmlkZSkKKyAgICAgICAgICAgICAgICBvdmVycmlkZUNvcHkudW5jaGVja2Vk
QXBwZW5kKGxhbmd1YWdlLmlzb2xhdGVkQ29weSgpKTsKKyAgICAgICAgICAgIHJldHVybiBvdmVy
cmlkZUNvcHk7CisgICAgICAgIH0KKyAgICB9CiAgICAgCiAgICAgcmVnaXN0ZXJMYW5ndWFnZURp
ZENoYW5nZUNhbGxiYWNrSWZOZWNlc3NhcnkoKTsKICAgICByZXR1cm4gcGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
YW5ndWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaAppbmRleCA3YWU1
NDA3Y2QxNTkzZWRjMGVkMTY5MzVmMDBhZTAzMjdmNWYzNDM0Li4xMTI2MDNhOWZjODAwYjE1NTA5
ZmEzZmFjOTU4MjY4ODg5YzczOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9MYW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKQEAg
LTMxLDggKzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XRUJDT1JFX0VYUE9SVCBT
dHJpbmcgZGVmYXVsdExhbmd1YWdlKCk7Ci1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZGVmYXVsdExh
bmd1YWdlKCk7IC8vIFRocmVhZC1zYWZlLgorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4g
dXNlclByZWZlcnJlZExhbmd1YWdlcygpOyAvLyBUaHJlYWQtc2FmZS4KIFZlY3RvcjxTdHJpbmc+
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBv
dmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIHNp
emVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5n
dWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRj
aCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZTNhZDJlMzRjMWEwMDM3ZDg5MTRjMDU4MjUyODM2NGU1OWI0NTQ5Yy4uN2Zm
MGNlOGVlMTQ2ZWY5MDE0MWIxNWRjOTAyMzM4YjU5MDM0NjIzNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3
IEBACiAyMDE2LTA2LTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAg
ICAgV29ya2VyTmF2aWdhdG9yIGlzIG1pc3Npbmcgc29tZSBhdHRyaWJ1dGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg1OTMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI2NzMxMzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcHJvdmVkIHRlc3QgY292ZXJhZ2UgZm9yIFdvcmtlck5hdmlnYXRv
ci4KKworICAgICAgICAqIGZhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLW5hdmlnYXRvci5q
czoKKworMjAxNi0wNi0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAg
ICAgIFdvcmtlck5hdmlnYXRvciBwcm9wZXJ0eSBzaG91bGQgZXhpc3Qgb24gV29ya2VyR2xvYmFs
U2NvcGUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
ODU3NAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY3MjUxMDg+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1uYXZpZ2F0b3IuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1uYXZpZ2F0b3IuanMKaW5kZXgg
ZDE5NzJiYTlhNDdlMzMzZjVkYzdkYzI4NDA4MDA1YmE1MThmMmE5NC4uODcwMjZlM2VkNDA0Y2Ew
ZDkxYmQyNjZmMWZlYjdkMmJlMDg5ZmVmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbmF2aWdhdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLW5hdmlnYXRvci5qcwpAQCAtMTEsMTEgKzExLDI4
IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogdmFyIHdvcmtlciA9IGNyZWF0ZVdvcmtlcigp
Owogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0b3IiKTsKIHdvcmtlci5w
b3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IiKTsKLXdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBu
YXZpZ2F0b3IuYXBwTmFtZSIpOworCisvLyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmUKK3dv
cmtlci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeSA+PSAx
ICYmIG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5IDw9IDgiKTsKKworLy8gTmF2aWdhdG9y
SUQKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IuYXBwQ29kZU5hbWUgPT09ICdN
b3ppbGxhJyIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci5hcHBOYW1lID09
PSAnTmV0c2NhcGUnIik7CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLmFwcFZl
cnNpb24uaW5kZXhPZignV2ViS2l0JykgIT0gMCIpOwotd29ya2VyLnBvc3RNZXNzYWdlKCJldmFs
IHR5cGVvZiBuYXZpZ2F0b3IucGxhdGZvcm0iKTsKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCB0
eXBlb2YgbmF2aWdhdG9yLnBsYXRmb3JtID09ICdzdHJpbmcnIik7Cit3b3JrZXIucG9zdE1lc3Nh
Z2UoImV2YWwgbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdHZWNrbyciKTsKK3dvcmtlci5wb3N0TWVz
c2FnZSgiZXZhbCBuYXZpZ2F0b3IucHJvZHVjdFN1YiA9PT0gJzIwMDMwMTA3JyIpOwogd29ya2Vy
LnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignV2ViS2l0Jykg
IT0gMCIpOwotd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0b3Iub25MaW5l
Iik7Cit3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLnZlbmRvciA9PT0gJ0FwcGxl
IENvbXB1dGVyLCBJbmMuJyIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci52
ZW5kb3JTdWIgPT09ICcnIik7CisKKy8vIE5hdmlnYXRvckxhbmd1YWdlCit3b3JrZXIucG9zdE1l
c3NhZ2UoImV2YWwgdHlwZW9mIG5hdmlnYXRvci5sYW5ndWFnZSA9PSAnc3RyaW5nJyIpOworCisv
LyBOYXZpZ2F0b3JPbkxpbmUKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCB0eXBlb2YgbmF2aWdh
dG9yLm9uTGluZSA9PSAnYm9vbGVhbiciKTsKKworCiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwg
Zm9vLy9iYXIiKTsKIAogd29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1uYXZpZ2F0b3ItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1uYXZpZ2F0b3ItZXhwZWN0ZWQu
dHh0CmluZGV4IGE4MGIyNTA0NmVmMTJiY2Y0MjIzNjJmMzczN2QyNTcyMmEwM2NmNWIuLmRiMGQx
ZmQ5OWJmNjI1NmU3ZTM2ZjMyNDE1ZGE4YzJmZTM5MDg1YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItbmF2aWdhdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLW5hdmlnYXRvci1leHBlY3RlZC50eHQKQEAgLTIs
MTAgKzIsMTcgQEAgVGVzdCBOYXZpZ2F0b3IgcHJvcGVydGllcy4KIAogdHlwZW9mIG5hdmlnYXRv
cjogb2JqZWN0CiBuYXZpZ2F0b3I6IFtvYmplY3QgV29ya2VyTmF2aWdhdG9yXQotbmF2aWdhdG9y
LmFwcE5hbWU6IE5ldHNjYXBlCituYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeSA+PSAxICYm
IG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5IDw9IDg6IHRydWUKK25hdmlnYXRvci5hcHBD
b2RlTmFtZSA9PT0gJ01vemlsbGEnOiB0cnVlCituYXZpZ2F0b3IuYXBwTmFtZSA9PT0gJ05ldHNj
YXBlJzogdHJ1ZQogbmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZignV2ViS2l0JykgIT0gMDog
dHJ1ZQotdHlwZW9mIG5hdmlnYXRvci5wbGF0Zm9ybTogc3RyaW5nCit0eXBlb2YgbmF2aWdhdG9y
LnBsYXRmb3JtID09ICdzdHJpbmcnOiB0cnVlCituYXZpZ2F0b3IucHJvZHVjdCA9PT0gJ0dlY2tv
JzogdHJ1ZQorbmF2aWdhdG9yLnByb2R1Y3RTdWIgPT09ICcyMDAzMDEwNyc6IHRydWUKIG5hdmln
YXRvci51c2VyQWdlbnQuaW5kZXhPZignV2ViS2l0JykgIT0gMDogdHJ1ZQotdHlwZW9mIG5hdmln
YXRvci5vbkxpbmU6IGJvb2xlYW4KK25hdmlnYXRvci52ZW5kb3IgPT09ICdBcHBsZSBDb21wdXRl
ciwgSW5jLic6IHRydWUKK25hdmlnYXRvci52ZW5kb3JTdWIgPT09ICcnOiB0cnVlCit0eXBlb2Yg
bmF2aWdhdG9yLmxhbmd1YWdlID09ICdzdHJpbmcnOiB0cnVlCit0eXBlb2YgbmF2aWdhdG9yLm9u
TGluZSA9PSAnYm9vbGVhbic6IHRydWUKIERPTkUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280984</attachid>
            <date>2016-06-09 20:21:49 -0700</date>
            <delta_ts>2016-06-10 15:56:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158593-20160609202318.patch</filename>
            <type>text/plain</type>
            <size>28801</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhiM2Y1ZjYwZjhiYjZiNGVhYjMxMWVk
NWRhNmVhNzdhMWI1ZTE0NGMuLjg2NzgwYTkxNWFmODY2Zjk0YjQ4YmQ4MjFmMTBkNjQ2MWI1NDQ0
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDYtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODU5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlc1dpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAg
ICAoV1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCisgICAgICAgIE1ha2Ug
cGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkgdGhyZWFkIHNhZmUgb24gV2luZG93cy4g
VGhlCisgICAgICAgIE1hYyBhbmQgVW5peCBpbXBsZW1lbnRhdGlvbnMgYXJlIGFscmVhZHkgdGhy
ZWFkLXNhZmUuCisKIDIwMTYtMDYtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgogCiAgICAgICAgIFVuYWRkcmVzc2VkIHJldmlldyBmZWVkYmFjayBmcm9tIHIyMDE4NzIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCAwNDY4NWQ0ODA2ZWIwYjk1YjY1OWEwMDE3M2JiODY5NWQ2ZDU4MDlhLi4zMjgy
YTEyNThkMmYyY2E4NWJkNTQ2ZDFiOGI5NGIwNGNmMWI3MjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUg
KzEsNjQgQEAKIDIwMTYtMDYtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAor
ICAgICAgICBXb3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0dHJpYnV0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODU5MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbWlzc2luZyBvbiBX
b3JrZXJOYXZpZ2F0b3I6CisgICAgICAgIC0gYXBwQ29kZU5hbWUKKyAgICAgICAgLSBoYXJkd2Fy
ZUNvbmN1cnJlbmN5CisgICAgICAgIC0gbGFuZ3VhZ2UKKyAgICAgICAgLSBwcm9kdWN0CisgICAg
ICAgIC0gcHJvZHVjdFN1YgorICAgICAgICAtIHZlbmRvcgorICAgICAgICAtIHZlbmRvclN1Ygor
CisgICAgICAgIEZpcmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IGV4cG9zZSB0aG9zZSBhdHRyaWJ1
dGVzLgorCisgICAgICAgIFJlbGV2YW50IHNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHBzOi8v
aHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCN0aGUtd29ya2VybmF2
aWdhdG9yLW9iamVjdAorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZWZhY3RvcnMgdGhlIElE
TCB0byBtYXRjaCB0aGUgc3BlY2lmaWNhdGlvbiBtb3JlCisgICAgICAgIGNsb3NlbHkgYW5kIHBy
b21vdGUgc2hhcmluZyBiZXR3ZWVuIE5hdmlnYXRvciBhbmQgV29ya2VyTmF2aWdhdG9yLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
QWRkIG5ldyBzdXBwbGVtZW50YWwgSURMIGZpbGVzLgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0
b3IuY3BwOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yLmg6CisgICAgICAgIE1vdmVkIGxhbmd1
YWdlKCkgLyBoYXJkd2FyZUNvbmN1cnJlbmN5KCkgZnJvbSBOYXZpZ2F0b3IgdG8gTmF2aWdhdG9y
QmFzZQorICAgICAgICBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5IE5hdmlnYXRvcldvcmtlciBh
cyB3ZWxsLgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmg6CisgICAgICAgICogcGFn
ZS9OYXZpZ2F0b3JCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckJhc2U6Omxh
bmd1YWdlKToKKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9uIHN0aWxsIGNhbGxzIGRlZmF1bHRM
YW5ndWFnZSgpIGJ1dCBJIHVwZGF0ZWQgaXQgdG8gYmUKKyAgICAgICAgdGhyZWFkIHNhZmUgb24g
YWxsIHBsYXRmb3Jtcy4KKworICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmFzZTo6aGFyZHdh
cmVDb25jdXJyZW5jeSk6CisgICAgICAgIFVzZSBzdGQ6OmNhbGxfb25jZSgpIGZvciB0aHJlYWQg
c2FmZXR5LgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2Uv
TmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsLgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9ySUQu
aWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwu
CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGw6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbC4KKyAgICAgICAgKiBwYWdlL05hdmln
YXRvck9uTGluZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2
aWdhdG9yLmlkbC4KKyAgICAgICAgKiBwYWdlL1dvcmtlck5hdmlnYXRvci5pZGw6CisgICAgICAg
IE1vdmUgc2V2ZXJhbCBhdHRyaWJ1dGVzIHRvIHRoZWlyIG93biBzdXBwbGVtZW50YWwgaW50ZXJm
YWNlcyB0byBtYXRjaAorICAgICAgICB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgcHJvbW90ZSBzaGFy
aW5nIHdpdGggV29ya2VyTmF2aWdhdG9yLgorCisgICAgICAgICogcGxhdGZvcm0vTGFuZ3VhZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAg
ICogcGxhdGZvcm0vTGFuZ3VhZ2UuaDoKKyAgICAgICAgTWFkZSB0aHJlYWQtc2FmZSBvbiBhbGwg
cGxhdGZvcm1zLgorCisyMDE2LTA2LTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKICAgICAgICAgQWRkcmVzcyBEYXJpbidzIHJldmlldyBjb21tZW50IG9uIHIyMDE4OTguCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg1NzYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaAppbmRl
eCA2M2Y2OTVkNTNjMjgxYTNhMGMyN2JiMmM1NDgyZTY5YjVmNTIyN2Q5Li45MzU4MGZjNzYwOWZm
ZGMzYWIzYjQ2ZGEwZGVjODdhOTAzNGZlNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2Ug
V1RGIHsKIAogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZvaWQgKCopKCkpOwogCisvLyBUaGlzIGlzIHRocmVh
ZC1zYWZlLgogV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwCmluZGV4IDBm
Mzg2NDAzNjEzOTQ1YzdmNjI0YmM0OTdiNmI4OThmMjdlOWRjY2EuLjc5YWQyM2M1NDM5Y2UyMzMy
MDgwNWIyOWQ5ODMyMTI0MTY3NjNjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcApAQCAtMjYsMTIgKzI2LDE2IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzLmgiCiAKKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVk
ZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCitzdGF0aWMgU3RhdGljTG9jayBw
bGF0Zm9ybUxhbmd1YWdlTXV0ZXg7CisKIHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZvaWQgKCopKCkpIHsgfQogCiBzdGF0aWMgU3RyaW5nIGxv
Y2FsZUluZm8oTENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCkBAIC01
NCw5ICs1OCwxMSBAQCBzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8oTENUWVBFIGxvY2FsZVR5cGUs
IGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCiAKIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFn
ZSgpCiB7CisgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socGxhdGZvcm1MYW5n
dWFnZU11dGV4KTsKKwogICAgIHN0YXRpYyBTdHJpbmcgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7
CiAgICAgaWYgKCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBjb21wdXRlZERlZmF1bHRMYW5ndWFnZTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkRGVm
YXVsdExhbmd1YWdlLmlzb2xhdGVkQ29weSgpOwogCiAgICAgU3RyaW5nIGxhbmd1YWdlTmFtZSA9
IGxvY2FsZUluZm8oTE9DQUxFX1NJU082MzlMQU5HTkFNRSwgImVuIik7CiAgICAgU3RyaW5nIGNv
dW50cnlOYW1lID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwgU3RyaW5nKCkp
OwpAQCAtNzEsOSArNzcsNyBAQCBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogCiBW
ZWN0b3I8U3RyaW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQogewotICAgIFZl
Y3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0gICAgdXNlclByZWZlcnJlZExh
bmd1YWdlcy5hcHBlbmQocGxhdGZvcm1MYW5ndWFnZSgpKTsKLSAgICByZXR1cm4gdXNlclByZWZl
cnJlZExhbmd1YWdlczsKKyAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDY3MmM0YjI2NGIyMmZl
NGIxNmI3OWM3MzAxZjI2NTEyNzdmMDRkOWQuLmNhYjlmNDZiMjg4ZTkyNDViNjVkYTQzZjc2ZjY0
YjBkNDhhZmYwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MDMsNiArNjAzLDEwIEBAIHNl
dChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgcGFnZS9IaXN0b3J5LmlkbAogICAgIHBh
Z2UvTG9jYXRpb24uaWRsCiAgICAgcGFnZS9OYXZpZ2F0b3IuaWRsCisgICAgcGFnZS9OYXZpZ2F0
b3JDb25jdXJyZW50SGFyZHdhcmUuaWRsCisgICAgcGFnZS9OYXZpZ2F0b3JJRC5pZGwKKyAgICBw
YWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbAorICAgIHBhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbAog
ICAgIHBhZ2UvUGVyZm9ybWFuY2UuaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmlkbAog
ICAgIHBhZ2UvUGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCAzYjRhNDMzYTFiNGE3YTA3MDliODE3YjA3ZWE3NmE5MWY4MmY2N2Q4Li5lM2E5
MDYxNzZhMmM5NjhkZDUwOThhOGNkNjZiMDVmM2ZjMTdkYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTUxNCw2ICs1MTQsMTAgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS9wYWdlL0hpc3RvcnkuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2Uv
TG9jYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvTmF2aWdhdG9yLmlkbCBcCisgICAg
JChXZWJDb3JlKS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZS5pZGwgXAorICAgICQo
V2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JJRC5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZp
Z2F0b3JMYW5ndWFnZS5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JPbkxpbmUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2UuaWRsIFwKICAgICAkKFdlYkNv
cmUpL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9QZXJm
b3JtYW5jZUVudHJ5TGlzdC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCmluZGV4IDI1
ODk1YmY1NDE1NDU2MDdjZTQyMWY5ZGU3NDVkNjdjMDY5ODk2MjQuLjdmNjUzMmEwOTA5NjZlODEz
NDNmYTU0ZDZmZDc2Mzg5ZjExNzA1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKQEAg
LTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTnVtYmVy
T2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdURjsKQEAgLTc4LDExICs3Nyw2IEBAIFN0cmluZyBOYXZpZ2F0b3I6OmFwcFZlcnNpb24o
KSBjb25zdAogICAgIHJldHVybiBhcHBWZXJzaW9uOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yOjps
YW5ndWFnZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOwotfQotCiBT
dHJpbmcgTmF2aWdhdG9yOjp1c2VyQWdlbnQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkK
QEAgLTEzNCwyOCArMTI4LDYgQEAgYm9vbCBOYXZpZ2F0b3I6OmphdmFFbmFibGVkKCkgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIGRlZmluZWQoRU5BQkxFX05BVklHQVRPUl9IV0NP
TkNVUlJFTkNZKQotaW50IE5hdmlnYXRvcjo6aGFyZHdhcmVDb25jdXJyZW5jeSgpIGNvbnN0Ci17
Ci0gICAgLy8gRW5mb3JjZSBhIG1heGltdW0gZm9yIHRoZSBudW1iZXIgb2YgY29yZXMgcmVwb3J0
ZWQgdG8gbWl0aWdhdGUKLSAgICAvLyBmaW5nZXJwcmludGluZyBmb3IgdGhlIG1pbm9yaXR5IG9m
IG1hY2hpbmVzIHdpdGggbGFyZ2UgbnVtYmVycyBvZiBjb3Jlcy4KLSAgICAvLyBJZiBtYWNoaW5l
cyB3aXRoIG1vcmUgdGhhbiA4IGNvcmVzIGJlY29tZSBjb21tb25wbGFjZSwgd2Ugc2hvdWxkIGJ1
bXAgdGhpcyBudW1iZXIuCi0gICAgLy8gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzI1ODggZm9yIHRoZQotICAgIC8vIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBk
ZWNpc2lvbi4KLSNpZiBQTEFURk9STShJT1MpCi0gICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBv
cnQgPSAyOwotI2Vsc2UKLSAgICBjb25zdCBpbnQgbWF4Q29yZXNUb1JlcG9ydCA9IDg7Ci0jZW5k
aWYKLSAgICBpbnQgaGFyZHdhcmVDb25jdXJyZW5jeSA9IG51bWJlck9mUHJvY2Vzc29yQ29yZXMo
KTsKLQotICAgIGlmIChoYXJkd2FyZUNvbmN1cnJlbmN5ID4gbWF4Q29yZXNUb1JlcG9ydCkKLSAg
ICAgICAgcmV0dXJuIG1heENvcmVzVG9SZXBvcnQ7Ci0KLSAgICByZXR1cm4gaGFyZHdhcmVDb25j
dXJyZW5jeTsKLX0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TKQogYm9vbCBOYXZpZ2F0b3I6
OnN0YW5kYWxvbmUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9O
YXZpZ2F0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgKaW5kZXggMTZhYmRk
ODY3NzYxNDdmNzFhZDA1YTFiODc1OWMwODU1MDQ2MzMyZi4uZmJiMTJjNDlhY2U5YjYzZDllYzFl
MDdjNTJiNWRmYmYxNGYzNzViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZp
Z2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCkBAIC00NSwxNCAr
NDUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfk5hdmlnYXRvcigpOwogCiAgICAgU3RyaW5n
IGFwcFZlcnNpb24oKSBjb25zdDsKLSAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAgICBE
T01QbHVnaW5BcnJheSogcGx1Z2lucygpIGNvbnN0OwogICAgIERPTU1pbWVUeXBlQXJyYXkqIG1p
bWVUeXBlcygpIGNvbnN0OwogICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0OwogICAgIGJv
b2wgamF2YUVuYWJsZWQoKSBjb25zdDsKLSNpZiBkZWZpbmVkKEVOQUJMRV9OQVZJR0FUT1JfSFdD
T05DVVJSRU5DWSkKLSAgICBpbnQgaGFyZHdhcmVDb25jdXJyZW5jeSgpIGNvbnN0OwotI2VuZGlm
CiAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJ
T1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwKaW5kZXggYmRjZTRmMjRmNDdlMGNlNjhlN2Fm
OTNhZTkxMzgyMjE3ZmQzZjU0Mi4uMTUyYzU2NmM5MDcxZDMyMzU5OWY3NTU2OWZjNDc2YmIyMmU3
YjI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbApAQCAtMjAsMjcgKzIwLDExIEBACiBb
CiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiBdIGludGVyZmFjZSBOYXZpZ2F0
b3IgewotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFwcENvZGVOYW1lOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIGFwcE5hbWU7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgYXBwVmVyc2lvbjsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBsYW5ndWFnZTsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10g
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7Ci0gICAgW05vbmRldGVybWlu
aXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVBsdWdpbkFycmF5IHBsdWdpbnM7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTU1pbWVUeXBlQXJyYXkgbWltZVR5cGVzOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3Q7Ci0gICAgW05vbmRldGVybWluaXN0
aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdFN1YjsKLSAgICBbTm9uZGV0
ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3I7Ci0gICAgW05v
bmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yU3ViOwog
ICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb29raWVF
bmFibGVkOwogICAgIFtOb25kZXRlcm1pbmlzdGljXSBib29sZWFuIGphdmFFbmFibGVkKCk7CiAK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7Ci0KLSNpZiBkZWZpbmVkKEVO
QUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyBoYXJkd2FyZUNvbmN1cnJlbmN5OwotI2VuZGlmCi0KICAgICAvLyBGSVhNRTogQ29udmVydCB0
aGlzICNpZidkZWYgdG8gYW4gSURMIGNvbmRpdGlvbmFsIGF0dHJpYnV0ZS4KICNpZiBkZWZpbmVk
KFdURl9QTEFURk9STV9JT1MpICYmIFdURl9QTEFURk9STV9JT1MKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBzdGFuZGFsb25lOwpAQCAtNDksMyArMzMsNyBAQAogICAgIHZvaWQgZ2V0
U3RvcmFnZVVwZGF0ZXMoKTsgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvciByZW5hbWUg
dG8geWllbGRGb3JTdG9yYWdlVXBkYXRlcy4KIH07CiAKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5h
dmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZTsKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRv
cklEOworTmF2aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yTGFuZ3VhZ2U7CitOYXZpZ2F0b3Ig
aW1wbGVtZW50cyBOYXZpZ2F0b3JPbkxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNl
LmNwcAppbmRleCAwYmUyZTFmYjg0MDg4ZmU5Y2YxODJhOGRiNDc5OGVhYzFjZDkxYjhjLi5hYTY5
ZTU2ZWY2OTFmM2YxZDYzN2MxNmVjNTExYWU2MmMxMzBlYjI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yQmFzZS5jcHAKQEAgLTI3LDggKzI3LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgogCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNp
bmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBPUyhMSU5VWCkKQEAgLTEz
MSw0ICsxMzQsMzUgQEAgYm9vbCBOYXZpZ2F0b3JCYXNlOjpvbkxpbmUoKSBjb25zdAogICAgIHJl
dHVybiBuZXR3b3JrU3RhdGVOb3RpZmllcigpLm9uTGluZSgpOwogfQogCitTdHJpbmcgTmF2aWdh
dG9yQmFzZTo6bGFuZ3VhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBkZWZhdWx0TGFuZ3VhZ2Uo
KTsKK30KKworI2lmIEVOQUJMRShOQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkKKworaW50IE5hdmln
YXRvckJhc2U6OmhhcmR3YXJlQ29uY3VycmVuY3koKSBjb25zdAoreworICAgIHN0YXRpYyBpbnQg
bnVtYmVyT2ZDb3JlczsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2UsIFtdIHsKKyAgICAgICAgLy8gRW5mb3JjZSBhIG1heGltdW0gZm9y
IHRoZSBudW1iZXIgb2YgY29yZXMgcmVwb3J0ZWQgdG8gbWl0aWdhdGUKKyAgICAgICAgLy8gZmlu
Z2VycHJpbnRpbmcgZm9yIHRoZSBtaW5vcml0eSBvZiBtYWNoaW5lcyB3aXRoIGxhcmdlIG51bWJl
cnMgb2YgY29yZXMuCisgICAgICAgIC8vIElmIG1hY2hpbmVzIHdpdGggbW9yZSB0aGFuIDggY29y
ZXMgYmVjb21lIGNvbW1vbnBsYWNlLCB3ZSBzaG91bGQgYnVtcCB0aGlzIG51bWJlci4KKyAgICAg
ICAgLy8gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1ODgg
Zm9yIHRoZQorICAgICAgICAvLyByYXRpb25hbGUgYmVoaW5kIHRoaXMgZGVjaXNpb24uCisjaWYg
UExBVEZPUk0oSU9TKQorICAgICAgICBjb25zdCBpbnQgbWF4Q29yZXNUb1JlcG9ydCA9IDI7Cisj
ZWxzZQorICAgICAgICBjb25zdCBpbnQgbWF4Q29yZXNUb1JlcG9ydCA9IDg7CisjZW5kaWYKKyAg
ICAgICAgbnVtYmVyT2ZDb3JlcyA9IHN0ZDo6bWluKFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3Jl
cygpLCBtYXhDb3Jlc1RvUmVwb3J0KTsKKyAgICB9KTsKKworICAgIHJldHVybiBudW1iZXJPZkNv
cmVzOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L05hdmlnYXRvckJhc2UuaAppbmRleCA1MjgzZjU2OThlODJhN2I5ZjQ0NDVhYzZlYjEwMDIzZTcy
MGYyZDJlLi5lMjMxNzVhNTFhNzg2YmI1OTVmZDVhYzNlYmE4Zjk1N2Y3YjdjZjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL05hdmlnYXRvckJhc2UuaApAQCAtMzAsMjQgKzMwLDMwIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE5hdmlnYXRvckJhc2UgewotICAgIHB1YmxpYzoKLSAg
ICAgICAgU3RyaW5nIGFwcE5hbWUoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIGFwcFZlcnNpb24o
KSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgPSAwOwot
ICAgICAgICBTdHJpbmcgcGxhdGZvcm0oKSBjb25zdDsKLQotICAgICAgICBTdHJpbmcgYXBwQ29k
ZU5hbWUoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIHByb2R1Y3QoKSBjb25zdDsKLSAgICAgICAg
U3RyaW5nIHByb2R1Y3RTdWIoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIHZlbmRvcigpIGNvbnN0
OwotICAgICAgICBTdHJpbmcgdmVuZG9yU3ViKCkgY29uc3Q7Ci0KLSAgICAgICAgYm9vbCBvbkxp
bmUoKSBjb25zdDsKLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCB+TmF2aWdhdG9y
QmFzZSgpOwotICAgIH07CitjbGFzcyBOYXZpZ2F0b3JCYXNlIHsKK3B1YmxpYzoKKyAgICBTdHJp
bmcgYXBwTmFtZSgpIGNvbnN0OworICAgIFN0cmluZyBhcHBWZXJzaW9uKCkgY29uc3Q7CisgICAg
dmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgPSAwOworICAgIFN0cmluZyBwbGF0Zm9y
bSgpIGNvbnN0OworCisgICAgU3RyaW5nIGFwcENvZGVOYW1lKCkgY29uc3Q7CisgICAgU3RyaW5n
IHByb2R1Y3QoKSBjb25zdDsKKyAgICBTdHJpbmcgcHJvZHVjdFN1YigpIGNvbnN0OworICAgIFN0
cmluZyB2ZW5kb3IoKSBjb25zdDsKKyAgICBTdHJpbmcgdmVuZG9yU3ViKCkgY29uc3Q7CisKKyAg
ICBib29sIG9uTGluZSgpIGNvbnN0OworCisgICAgU3RyaW5nIGxhbmd1YWdlKCkgY29uc3Q7CisK
KyNpZiBFTkFCTEUoTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpCisgICAgaW50IGhhcmR3YXJlQ29u
Y3VycmVuY3koKSBjb25zdDsKKyNlbmRpZgorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TmF2
aWdhdG9yQmFzZSgpOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjE5MjE5YTMzNjA2ZWQ1MTM0NWFkZTc0MzVhNjc4ZDRmYzg1NGMyZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJl
LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIE5hdmln
YXRvckNvbmN1cnJlbnRIYXJkd2FyZSB7CisgICAgW0NvbmRpdGlvbmFsPU5BVklHQVRPUl9IV0NP
TkNVUlJFTkNZXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGhhcmR3YXJl
Q29uY3VycmVuY3k7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3JJRC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvcklELmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42Y2ExMjU3MjUyYzM1N2Y4MGM2ZTQ5MjYzMTRlNWU5MjY5NGU4M2ExCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JJRC5pZGwKQEAgLTAsMCArMSw0MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
IE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBOYXZpZ2F0b3JJRCB7CisgICAgW05vbmRl
dGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBwQ29kZU5hbWU7Cisg
ICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBwTmFt
ZTsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBh
cHBWZXJzaW9uOworICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHBsYXRmb3JtOworICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHByb2R1Y3Q7CisgICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdFN1YjsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7CisgICAgW05vbmRldGVybWluaXN0
aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yOworICAgIFtOb25kZXRlcm1p
bmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvclN1YjsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2ZjU5MGY2
MzNmYmQxODI4NzBjOTQ2MTFjMjY3ZDA4ZjdhYjQyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbApAQCAtMCwwICsxLDM0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgTm9J
bnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIE5hdmlnYXRvckxhbmd1YWdlIHsKKyAgICBbTm9u
ZGV0ZXJtaW5pc3RpY10gIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZ3VhZ2U7Cisg
ICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PERPTVN0cmluZz4gbGFuZ3VhZ2Vz
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
OTI3NjM1MDJlOTUxNzNjNjM0ODQ5ZDJhMjMwYjZkMmIxZWJjYjZkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JPbkxpbmUuaWRsCkBAIC0wLDAgKzEsMzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBOb0ludGVyZmFjZU9iamVjdAorXSBpbnRlcmZhY2UgTmF2aWdhdG9yT25MaW5lIHsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9X
b3JrZXJOYXZpZ2F0b3IuaWRsCmluZGV4IDMxMDljYWM1MmQ5MjgwNDliMTNmYTAxMWM3OGNhMjYz
ZDdiYzBiYTguLmY3ZTdjMmE2OTk3MTZjMzYyMWZiYWE2MjBkYTRjZGUyNmUyMTBmNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwKQEAgLTMwLDExICszMCw5IEBACiAg
ICAgRXhwb3NlZD1Xb3JrZXIsCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogXSBpbnRl
cmZhY2UgV29ya2VyTmF2aWdhdG9yIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFwcE5hbWU7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBWZXJzaW9uOwot
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBvbkxpbmU7CiB9OwogCitXb3JrZXJOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0
b3JDb25jdXJyZW50SGFyZHdhcmU7CitXb3JrZXJOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0
b3JJRDsKK1dvcmtlck5hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvckxhbmd1YWdlOworV29y
a2VyTmF2aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yT25MaW5lOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTGFuZ3VhZ2UuY3BwCmluZGV4IGUyZjA0ZmRlODFkZjBhYWFmZGNiODYxZTliOTIyNDVjYzBm
ODJhODQuLjIxMDljMzc1NGFjNDYzNDI0OTI1YjBmN2YzMTIxZWY0MWViYWNiMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKQEAgLTM4LDYgKzM4LDggQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitzdGF0aWMgU3RhdGljTG9jayB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0
ZXg7CisKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFuZ2VDYWxsYmFja0lmTmVj
ZXNzYXJ5KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKQEAgLTEwMiw5ICsx
MDQsMTcgQEAgdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIG92ZXJyaWRlKQogCiBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzKCkKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFn
ZXNPdmVycmlkZSgpOwotICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm4gb3ZlcnJpZGU7CisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4g
bG9jayh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOworICAgICAgICBWZWN0b3I8U3RyaW5n
PiYgb3ZlcnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOworICAgICAgICBpZiAo
IW92ZXJyaWRlLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJp
ZGVDb3B5OworICAgICAgICAgICAgb3ZlcnJpZGVDb3B5LnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
b3ZlcnJpZGUuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoU3RyaW5nJiBsYW5ndWFnZSA6IG92
ZXJyaWRlKQorICAgICAgICAgICAgICAgIG92ZXJyaWRlQ29weS51bmNoZWNrZWRBcHBlbmQobGFu
Z3VhZ2UuaXNvbGF0ZWRDb3B5KCkpOworICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlQ29weTsK
KyAgICAgICAgfQorICAgIH0KICAgICAKICAgICByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2Fs
bGJhY2tJZk5lY2Vzc2FyeSgpOwogICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5n
dWFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCmluZGV4IDdhZTU0MDdjZDE1OTNl
ZGMwZWQxNjkzNWYwMGFlMDMyN2Y1ZjM0MzQuLjExMjYwM2E5ZmM4MDBiMTU1MDlmYTNmYWM5NTgy
Njg4ODljNzM5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaApAQCAtMzEsOCArMzEs
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBkZWZh
dWx0TGFuZ3VhZ2UoKTsKLVdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKTsg
Ly8gVGhyZWFkLXNhZmUuCitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzKCk7IC8vIFRocmVhZC1zYWZlLgogVmVjdG9yPFN0cmluZz4gdXNlclByZWZl
cnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIG92ZXJyaWRlVXNl
clByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogc2l6ZV90IGluZGV4
T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA2YjM3YmUzNjE3NGUyMTFiNmVhYjhiOTgwYmQzYmJjMWRmNWI0Zjg0Li43YTI5YmFkOWY1YTE1
YjRiYTIxZTI3OWQwN2ViN2IyM2FkMjgyODZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYt
MDYtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrZXJO
YXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODU5MworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wcm92ZWQgdGVzdCBjb3ZlcmFnZSBmb3IgV29ya2VyTmF2aWdhdG9yLgorCisgICAg
ICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbmF2aWdhdG9yLmpzOgorCiAyMDE2
LTA2LTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JF
U1NJT04ocjIwMTgyMykgZWRpdGluZy9zZWxlY3Rpb24vc2VsZWN0aW9uLWluLWlmcmFtZS1yZW1v
dmVkLWNyYXNoLmh0bWwgaXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9yZXNvdXJjZXMvd29ya2VyLW5hdmlnYXRvci5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9yZXNvdXJjZXMvd29ya2VyLW5hdmlnYXRvci5qcwppbmRleCBkMTk3MmJhOWE0N2UzMzNm
NWRjN2RjMjg0MDgwMDViYTUxOGYyYTk0Li44NzAyNmUzZWQ0MDRjYTBkOTFiZDI2NmYxZmViN2Qy
YmUwODlmZWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2Vz
L3dvcmtlci1uYXZpZ2F0b3IuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291
cmNlcy93b3JrZXItbmF2aWdhdG9yLmpzCkBAIC0xMSwxMSArMTEsMjggQEAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiB2YXIgd29ya2VyID0gY3JlYXRlV29ya2VyKCk7CiB3b3JrZXIucG9zdE1l
c3NhZ2UoImV2YWwgdHlwZW9mIG5hdmlnYXRvciIpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFs
IG5hdmlnYXRvciIpOwotd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci5hcHBOYW1l
Iik7CisKKy8vIE5hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZQord29ya2VyLnBvc3RNZXNzYWdl
KCJldmFsIG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5ID49IDEgJiYgbmF2aWdhdG9yLmhh
cmR3YXJlQ29uY3VycmVuY3kgPD0gOCIpOworCisvLyBOYXZpZ2F0b3JJRAord29ya2VyLnBvc3RN
ZXNzYWdlKCJldmFsIG5hdmlnYXRvci5hcHBDb2RlTmFtZSA9PT0gJ01vemlsbGEnIik7Cit3b3Jr
ZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLmFwcE5hbWUgPT09ICdOZXRzY2FwZSciKTsK
IHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdX
ZWJLaXQnKSAhPSAwIik7Ci13b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgdHlwZW9mIG5hdmlnYXRv
ci5wbGF0Zm9ybSIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0b3Iu
cGxhdGZvcm0gPT0gJ3N0cmluZyciKTsKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0
b3IucHJvZHVjdCA9PT0gJ0dlY2tvJyIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmln
YXRvci5wcm9kdWN0U3ViID09PSAnMjAwMzAxMDcnIik7CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2
YWwgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdXZWJLaXQnKSAhPSAwIik7Ci13b3JrZXIu
cG9zdE1lc3NhZ2UoImV2YWwgdHlwZW9mIG5hdmlnYXRvci5vbkxpbmUiKTsKK3dvcmtlci5wb3N0
TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IudmVuZG9yID09PSAnQXBwbGUgQ29tcHV0ZXIsIEluYy4n
Iik7Cit3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLnZlbmRvclN1YiA9PT0gJyci
KTsKKworLy8gTmF2aWdhdG9yTGFuZ3VhZ2UKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCB0eXBl
b2YgbmF2aWdhdG9yLmxhbmd1YWdlID09ICdzdHJpbmcnIik7CisKKy8vIE5hdmlnYXRvck9uTGlu
ZQord29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0b3Iub25MaW5lID09ICdi
b29sZWFuJyIpOworCisKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBmb28vL2JhciIpOwogCiB3
b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvd29ya2VyLW5hdmlnYXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvd29ya2VyLW5hdmlnYXRvci1leHBlY3RlZC50eHQKaW5kZXggYTgwYjI1
MDQ2ZWYxMmJjZjQyMjM2MmYzNzM3ZDI1NzIyYTAzY2Y1Yi4uZGIwZDFmZDk5YmY2MjU2ZTdlMzZm
MzI0MTVkYThjMmZlMzkwODVjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1uYXZpZ2F0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy93b3JrZXItbmF2aWdhdG9yLWV4cGVjdGVkLnR4dApAQCAtMiwxMCArMiwxNyBAQCBUZXN0
IE5hdmlnYXRvciBwcm9wZXJ0aWVzLgogCiB0eXBlb2YgbmF2aWdhdG9yOiBvYmplY3QKIG5hdmln
YXRvcjogW29iamVjdCBXb3JrZXJOYXZpZ2F0b3JdCi1uYXZpZ2F0b3IuYXBwTmFtZTogTmV0c2Nh
cGUKK25hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5ID49IDEgJiYgbmF2aWdhdG9yLmhhcmR3
YXJlQ29uY3VycmVuY3kgPD0gODogdHJ1ZQorbmF2aWdhdG9yLmFwcENvZGVOYW1lID09PSAnTW96
aWxsYSc6IHRydWUKK25hdmlnYXRvci5hcHBOYW1lID09PSAnTmV0c2NhcGUnOiB0cnVlCiBuYXZp
Z2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdXZWJLaXQnKSAhPSAwOiB0cnVlCi10eXBlb2YgbmF2
aWdhdG9yLnBsYXRmb3JtOiBzdHJpbmcKK3R5cGVvZiBuYXZpZ2F0b3IucGxhdGZvcm0gPT0gJ3N0
cmluZyc6IHRydWUKK25hdmlnYXRvci5wcm9kdWN0ID09PSAnR2Vja28nOiB0cnVlCituYXZpZ2F0
b3IucHJvZHVjdFN1YiA9PT0gJzIwMDMwMTA3JzogdHJ1ZQogbmF2aWdhdG9yLnVzZXJBZ2VudC5p
bmRleE9mKCdXZWJLaXQnKSAhPSAwOiB0cnVlCi10eXBlb2YgbmF2aWdhdG9yLm9uTGluZTogYm9v
bGVhbgorbmF2aWdhdG9yLnZlbmRvciA9PT0gJ0FwcGxlIENvbXB1dGVyLCBJbmMuJzogdHJ1ZQor
bmF2aWdhdG9yLnZlbmRvclN1YiA9PT0gJyc6IHRydWUKK3R5cGVvZiBuYXZpZ2F0b3IubGFuZ3Vh
Z2UgPT0gJ3N0cmluZyc6IHRydWUKK3R5cGVvZiBuYXZpZ2F0b3Iub25MaW5lID09ICdib29sZWFu
JzogdHJ1ZQogRE9ORQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281054</attachid>
            <date>2016-06-10 15:56:58 -0700</date>
            <delta_ts>2016-06-10 16:52:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158593-20160610155828.patch</filename>
            <type>text/plain</type>
            <size>30450</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFhZjZmODIzN2ZhNDEyMjgzNDJkMWY5
ZTYwOGYzNDUwOWM0MGNlZmQuLjM2OGE2ZmZhODdhYWJmOWUzN2ZiZDQwZTkwN2Y1NGFiZGIyOGFl
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDYtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODU5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc1dpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCisgICAgICAgIE1ha2UgcGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkgdGhyZWFkIHNhZmUgb24gV2luZG93cy4gVGhl
CisgICAgICAgIE1hYyBhbmQgVW5peCBpbXBsZW1lbnRhdGlvbnMgYXJlIGFscmVhZHkgdGhyZWFk
LXNhZmUuCisKIDIwMTYtMDYtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBJbnRyb2R1Y2UgV1RGOjpVbmlxdWVSZWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkMDMyNjdmMTJhODcyZjFmNWJhY2U4MzdlMzgwM2FhNTAzYWVkNTM5Li4zZjFhZjQ3OWFjMTAw
Y2JiYjBkZDczMmQ0ZmEwZmU2MmY2ZGFjOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAK
KzIwMTYtMDYtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBX
b3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODU5MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgQWRkIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbWlzc2luZyBvbiBXb3JrZXJOYXZpZ2F0
b3I6CisgICAgICAgIC0gYXBwQ29kZU5hbWUKKyAgICAgICAgLSBoYXJkd2FyZUNvbmN1cnJlbmN5
CisgICAgICAgIC0gbGFuZ3VhZ2UKKyAgICAgICAgLSBwcm9kdWN0CisgICAgICAgIC0gcHJvZHVj
dFN1YgorICAgICAgICAtIHZlbmRvcgorICAgICAgICAtIHZlbmRvclN1YgorCisgICAgICAgIEZp
cmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IGV4cG9zZSB0aG9zZSBhdHRyaWJ1dGVzLgorCisgICAg
ICAgIFJlbGV2YW50IHNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCN0aGUtd29ya2VybmF2aWdhdG9yLW9iamVj
dAorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZWZhY3RvcnMgdGhlIElETCB0byBtYXRjaCB0
aGUgc3BlY2lmaWNhdGlvbiBtb3JlCisgICAgICAgIGNsb3NlbHkgYW5kIHByb21vdGUgc2hhcmlu
ZyBiZXR3ZWVuIE5hdmlnYXRvciBhbmQgV29ya2VyTmF2aWdhdG9yLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgQWRkIG5ldyBzdXBw
bGVtZW50YWwgSURMIGZpbGVzLgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAg
ICAgICAqIHBhZ2UvTmF2aWdhdG9yLmg6CisgICAgICAgIE1vdmVkIGxhbmd1YWdlKCkgLyBoYXJk
d2FyZUNvbmN1cnJlbmN5KCkgZnJvbSBOYXZpZ2F0b3IgdG8gTmF2aWdhdG9yQmFzZQorICAgICAg
ICBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5IE5hdmlnYXRvcldvcmtlciBhcyB3ZWxsLgorCisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmg6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckJhc2U6Omxhbmd1YWdlKToKKyAg
ICAgICAgVGhlIGltcGxlbWVudGF0aW9uIHN0aWxsIGNhbGxzIGRlZmF1bHRMYW5ndWFnZSgpIGJ1
dCBJIHVwZGF0ZWQgaXQgdG8gYmUKKyAgICAgICAgdGhyZWFkIHNhZmUgb24gYWxsIHBsYXRmb3Jt
cy4KKworICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmFzZTo6aGFyZHdhcmVDb25jdXJyZW5j
eSk6CisgICAgICAgIFVzZSBzdGQ6OmNhbGxfb25jZSgpIGZvciB0aHJlYWQgc2FmZXR5LgorCisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yQ29u
Y3VycmVudEhhcmR3YXJlLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9Xb3Jr
ZXJOYXZpZ2F0b3IuaWRsLgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9ySUQuaWRsOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwuCisgICAgICAgICog
cGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvV29ya2VyTmF2aWdhdG9yLmlkbC4KKyAgICAgICAgKiBwYWdlL05hdmlnYXRvck9uTGluZS5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbC4K
KyAgICAgICAgKiBwYWdlL1dvcmtlck5hdmlnYXRvci5pZGw6CisgICAgICAgIE1vdmUgc2V2ZXJh
bCBhdHRyaWJ1dGVzIHRvIHRoZWlyIG93biBzdXBwbGVtZW50YWwgaW50ZXJmYWNlcyB0byBtYXRj
aAorICAgICAgICB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgcHJvbW90ZSBzaGFyaW5nIHdpdGggV29y
a2VyTmF2aWdhdG9yLgorCisgICAgICAgICogcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogcGxhdGZvcm0v
TGFuZ3VhZ2UuaDoKKyAgICAgICAgTWFkZSB0aHJlYWQtc2FmZSBvbiBhbGwgcGxhdGZvcm1zLgor
CiAyMDE2LTA2LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgaGFuZGxlRGF0YVVSTCBpcyBvbmx5IHVzZWQgYnkgY3VybApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaAppbmRleCA2M2Y2OTVk
NTNjMjgxYTNhMGMyN2JiMmM1NDgyZTY5YjVmNTIyN2Q5Li45MzU4MGZjNzYwOWZmZGMzYWIzYjQ2
ZGEwZGVjODdhOTAzNGZlNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuaApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAog
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Q2hhbmdlZENhbGxiYWNrKHZvaWQgKCopKCkpOwogCisvLyBUaGlzIGlzIHRocmVhZC1zYWZlLgog
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcygpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwCmluZGV4IDBmMzg2NDAzNjEz
OTQ1YzdmNjI0YmM0OTdiNmI4OThmMjdlOWRjY2EuLjc5YWQyM2M1NDM5Y2UyMzMyMDgwNWIyOWQ5
ODMyMTI0MTY3NjNjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcApAQCAtMjYsMTIgKzI2LDE2IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCiAK
KyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCitzdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxh
bmd1YWdlTXV0ZXg7CisKIHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hh
bmdlZENhbGxiYWNrKHZvaWQgKCopKCkpIHsgfQogCiBzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8o
TENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCkBAIC01NCw5ICs1OCwx
MSBAQCBzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8oTENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0
cmluZyYgZmFsbGJhY2spCiAKIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Cisg
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socGxhdGZvcm1MYW5ndWFnZU11dGV4
KTsKKwogICAgIHN0YXRpYyBTdHJpbmcgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7CiAgICAgaWYg
KCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBjb21w
dXRlZERlZmF1bHRMYW5ndWFnZTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1
YWdlLmlzb2xhdGVkQ29weSgpOwogCiAgICAgU3RyaW5nIGxhbmd1YWdlTmFtZSA9IGxvY2FsZUlu
Zm8oTE9DQUxFX1NJU082MzlMQU5HTkFNRSwgImVuIik7CiAgICAgU3RyaW5nIGNvdW50cnlOYW1l
ID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwgU3RyaW5nKCkpOwpAQCAtNzEs
OSArNzcsNyBAQCBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogCiBWZWN0b3I8U3Ry
aW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQogewotICAgIFZlY3RvcjxTdHJp
bmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5h
cHBlbmQocGxhdGZvcm1MYW5ndWFnZSgpKTsKLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1
YWdlczsKKyAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDMyMDVkNDM1MWNhNDBjZDJjZTUzNjky
ODcyNzAzZmU1MGI3YWI3NTQuLmQ4YTJhMTJiOGE1NTc0MzNmNGU1MGQwNGMzM2ZiY2E5OGNkYjRl
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MDMsNiArNjAzLDEwIEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgcGFnZS9IaXN0b3J5LmlkbAogICAgIHBhZ2UvTG9jYXRp
b24uaWRsCiAgICAgcGFnZS9OYXZpZ2F0b3IuaWRsCisgICAgcGFnZS9OYXZpZ2F0b3JDb25jdXJy
ZW50SGFyZHdhcmUuaWRsCisgICAgcGFnZS9OYXZpZ2F0b3JJRC5pZGwKKyAgICBwYWdlL05hdmln
YXRvckxhbmd1YWdlLmlkbAorICAgIHBhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbAogICAgIHBhZ2Uv
UGVyZm9ybWFuY2UuaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmlkbAogICAgIHBhZ2Uv
UGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCAzYjRhNDMzYTFiNGE3YTA3MDliODE3YjA3ZWE3NmE5MWY4MmY2N2Q4Li5lM2E5MDYxNzZhMmM5
NjhkZDUwOThhOGNkNjZiMDVmM2ZjMTdkYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTUxNCw2ICs1MTQsMTAgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9wYWdlL0hpc3RvcnkuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvTG9jYXRpb24u
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvTmF2aWdhdG9yLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZS5pZGwgXAorICAgICQoV2ViQ29yZSkv
cGFnZS9OYXZpZ2F0b3JJRC5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JMYW5n
dWFnZS5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JPbkxpbmUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2Uv
UGVyZm9ybWFuY2VFbnRyeS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5TGlzdC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCmluZGV4IDI1ODk1YmY1NDE1
NDU2MDdjZTQyMWY5ZGU3NDVkNjdjMDY5ODk2MjQuLjdmNjUzMmEwOTA5NjZlODEzNDNmYTU0ZDZm
ZDc2Mzg5ZjExNzA1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKQEAgLTM4LDcgKzM4
LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsK
QEAgLTc4LDExICs3Nyw2IEBAIFN0cmluZyBOYXZpZ2F0b3I6OmFwcFZlcnNpb24oKSBjb25zdAog
ICAgIHJldHVybiBhcHBWZXJzaW9uOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yOjpsYW5ndWFnZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOwotfQotCiBTdHJpbmcgTmF2
aWdhdG9yOjp1c2VyQWdlbnQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKQEAgLTEzNCwy
OCArMTI4LDYgQEAgYm9vbCBOYXZpZ2F0b3I6OmphdmFFbmFibGVkKCkgY29uc3QKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotI2lmIGRlZmluZWQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZ
KQotaW50IE5hdmlnYXRvcjo6aGFyZHdhcmVDb25jdXJyZW5jeSgpIGNvbnN0Ci17Ci0gICAgLy8g
RW5mb3JjZSBhIG1heGltdW0gZm9yIHRoZSBudW1iZXIgb2YgY29yZXMgcmVwb3J0ZWQgdG8gbWl0
aWdhdGUKLSAgICAvLyBmaW5nZXJwcmludGluZyBmb3IgdGhlIG1pbm9yaXR5IG9mIG1hY2hpbmVz
IHdpdGggbGFyZ2UgbnVtYmVycyBvZiBjb3Jlcy4KLSAgICAvLyBJZiBtYWNoaW5lcyB3aXRoIG1v
cmUgdGhhbiA4IGNvcmVzIGJlY29tZSBjb21tb25wbGFjZSwgd2Ugc2hvdWxkIGJ1bXAgdGhpcyBu
dW1iZXIuCi0gICAgLy8gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI1ODggZm9yIHRoZQotICAgIC8vIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBkZWNpc2lvbi4K
LSNpZiBQTEFURk9STShJT1MpCi0gICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBvcnQgPSAyOwot
I2Vsc2UKLSAgICBjb25zdCBpbnQgbWF4Q29yZXNUb1JlcG9ydCA9IDg7Ci0jZW5kaWYKLSAgICBp
bnQgaGFyZHdhcmVDb25jdXJyZW5jeSA9IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsKLQotICAg
IGlmIChoYXJkd2FyZUNvbmN1cnJlbmN5ID4gbWF4Q29yZXNUb1JlcG9ydCkKLSAgICAgICAgcmV0
dXJuIG1heENvcmVzVG9SZXBvcnQ7Ci0KLSAgICByZXR1cm4gaGFyZHdhcmVDb25jdXJyZW5jeTsK
LX0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TKQogYm9vbCBOYXZpZ2F0b3I6OnN0YW5kYWxv
bmUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgKaW5kZXggMTZhYmRkODY3NzYxNDdm
NzFhZDA1YTFiODc1OWMwODU1MDQ2MzMyZi4uZmJiMTJjNDlhY2U5YjYzZDllYzFlMDdjNTJiNWRm
YmYxNGYzNzViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCkBAIC00NSwxNCArNDUsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfk5hdmlnYXRvcigpOwogCiAgICAgU3RyaW5nIGFwcFZlcnNp
b24oKSBjb25zdDsKLSAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAgICBET01QbHVnaW5B
cnJheSogcGx1Z2lucygpIGNvbnN0OwogICAgIERPTU1pbWVUeXBlQXJyYXkqIG1pbWVUeXBlcygp
IGNvbnN0OwogICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgamF2YUVu
YWJsZWQoKSBjb25zdDsKLSNpZiBkZWZpbmVkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5D
WSkKLSAgICBpbnQgaGFyZHdhcmVDb25jdXJyZW5jeSgpIGNvbnN0OwotI2VuZGlmCiAgICAgdmly
dHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvci5pZGwKaW5kZXggYmRjZTRmMjRmNDdlMGNlNjhlN2FmOTNhZTkxMzgy
MjE3ZmQzZjU0Mi4uMTUyYzU2NmM5MDcxZDMyMzU5OWY3NTU2OWZjNDc2YmIyMmU3YjI1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbApAQCAtMjAsMjcgKzIwLDExIEBACiBbCiAgICAgR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiBdIGludGVyZmFjZSBOYXZpZ2F0b3IgewotICAg
IFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcENvZGVO
YW1lOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFwcE5hbWU7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgYXBwVmVyc2lvbjsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBsYW5ndWFnZTsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVBsdWdpbkFycmF5IHBsdWdpbnM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTU1p
bWVUeXBlQXJyYXkgbWltZVR5cGVzOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3Q7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdFN1YjsKLSAgICBbTm9uZGV0ZXJtaW5pc3Rp
Y10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3I7Ci0gICAgW05vbmRldGVybWlu
aXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yU3ViOwogICAgIFtOb25k
ZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb29raWVFbmFibGVkOwog
ICAgIFtOb25kZXRlcm1pbmlzdGljXSBib29sZWFuIGphdmFFbmFibGVkKCk7CiAKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7Ci0KLSNpZiBkZWZpbmVkKEVOQUJMRV9OQVZJ
R0FUT1JfSFdDT05DVVJSRU5DWSkKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoYXJkd2Fy
ZUNvbmN1cnJlbmN5OwotI2VuZGlmCi0KICAgICAvLyBGSVhNRTogQ29udmVydCB0aGlzICNpZidk
ZWYgdG8gYW4gSURMIGNvbmRpdGlvbmFsIGF0dHJpYnV0ZS4KICNpZiBkZWZpbmVkKFdURl9QTEFU
Rk9STV9JT1MpICYmIFdURl9QTEFURk9STV9JT1MKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBzdGFuZGFsb25lOwpAQCAtNDksMyArMzMsNyBAQAogICAgIHZvaWQgZ2V0U3RvcmFnZVVw
ZGF0ZXMoKTsgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvciByZW5hbWUgdG8geWllbGRG
b3JTdG9yYWdlVXBkYXRlcy4KIH07CiAKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvckNv
bmN1cnJlbnRIYXJkd2FyZTsKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvcklEOworTmF2
aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yTGFuZ3VhZ2U7CitOYXZpZ2F0b3IgaW1wbGVtZW50
cyBOYXZpZ2F0b3JPbkxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRl
eCAwYmUyZTFmYjg0MDg4ZmU5Y2YxODJhOGRiNDc5OGVhYzFjZDkxYjhjLi5kYWNhMWEzY2IxMDQ5
Y2JjNGNjMjBlOWM3NDcwNWMxYmI5NTQ1YzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
QmFzZS5jcHAKQEAgLTI3LDggKzI3LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiTmF2aWdhdG9yQmFzZS5oIgogCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU3RhdGVOb3RpZmllci5oIgorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBPUyhMSU5VWCkKQEAgLTc2LDkgKzc5LDkg
QEAgTmF2aWdhdG9yQmFzZTo6fk5hdmlnYXRvckJhc2UoKQogewogfQogCi1TdHJpbmcgTmF2aWdh
dG9yQmFzZTo6YXBwTmFtZSgpIGNvbnN0CitTdHJpbmcgTmF2aWdhdG9yQmFzZTo6YXBwTmFtZSgp
CiB7Ci0gICAgcmV0dXJuICJOZXRzY2FwZSI7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiTmV0
c2NhcGUiKTsKIH0KIAogU3RyaW5nIE5hdmlnYXRvckJhc2U6OmFwcFZlcnNpb24oKSBjb25zdApA
QCAtODgsNyArOTEsNyBAQCBTdHJpbmcgTmF2aWdhdG9yQmFzZTo6YXBwVmVyc2lvbigpIGNvbnN0
CiAgICAgcmV0dXJuIGFnZW50LnN1YnN0cmluZyhhZ2VudC5maW5kKCcvJykgKyAxKTsKIH0KIAot
U3RyaW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkgY29uc3QKK1N0cmluZyBOYXZpZ2F0b3JC
YXNlOjpwbGF0Zm9ybSgpCiB7CiAjaWYgT1MoTElOVVgpCiAgICAgaWYgKCFTdHJpbmcoV0VCQ09S
RV9OQVZJR0FUT1JfUExBVEZPUk0pLmlzRW1wdHkoKSkKQEAgLTk3LDM4ICsxMDAsNjkgQEAgU3Ry
aW5nIE5hdmlnYXRvckJhc2U6OnBsYXRmb3JtKCkgY29uc3QKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBwbGF0Zm9ybU5hbWUodW5hbWUoJm9zbmFtZSkgPj0gMCA/IFN0cmluZyhv
c25hbWUuc3lzbmFtZSkgKyBTdHJpbmcoIiAiKSArIFN0cmluZyhvc25hbWUubWFjaGluZSkgOiBl
bXB0eVN0cmluZygpKTsKICAgICByZXR1cm4gcGxhdGZvcm1OYW1lOwogI2Vsc2UKLSAgICByZXR1
cm4gV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk07CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbChX
RUJDT1JFX05BVklHQVRPUl9QTEFURk9STSk7CiAjZW5kaWYKIH0KIAotU3RyaW5nIE5hdmlnYXRv
ckJhc2U6OmFwcENvZGVOYW1lKCkgY29uc3QKK1N0cmluZyBOYXZpZ2F0b3JCYXNlOjphcHBDb2Rl
TmFtZSgpCiB7Ci0gICAgcmV0dXJuICJNb3ppbGxhIjsKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJNb3ppbGxhIik7CiB9CiAKLVN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwcm9kdWN0KCkgY29uc3QK
K1N0cmluZyBOYXZpZ2F0b3JCYXNlOjpwcm9kdWN0KCkKIHsKLSAgICByZXR1cm4gV0VCQ09SRV9O
QVZJR0FUT1JfUFJPRFVDVDsKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKFdFQkNPUkVfTkFWSUdB
VE9SX1BST0RVQ1QpOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yQmFzZTo6cHJvZHVjdFN1YigpIGNv
bnN0CitTdHJpbmcgTmF2aWdhdG9yQmFzZTo6cHJvZHVjdFN1YigpCiB7Ci0gICAgcmV0dXJuIFdF
QkNPUkVfTkFWSUdBVE9SX1BST0RVQ1RfU1VCOworICAgIHJldHVybiBBU0NJSUxpdGVyYWwoV0VC
Q09SRV9OQVZJR0FUT1JfUFJPRFVDVF9TVUIpOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yQmFzZTo6
dmVuZG9yKCkgY29uc3QKK1N0cmluZyBOYXZpZ2F0b3JCYXNlOjp2ZW5kb3IoKQogewotICAgIHJl
dHVybiBXRUJDT1JFX05BVklHQVRPUl9WRU5ET1I7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbChX
RUJDT1JFX05BVklHQVRPUl9WRU5ET1IpOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yQmFzZTo6dmVu
ZG9yU3ViKCkgY29uc3QKK1N0cmluZyBOYXZpZ2F0b3JCYXNlOjp2ZW5kb3JTdWIoKQogewotICAg
IHJldHVybiBXRUJDT1JFX05BVklHQVRPUl9WRU5ET1JfU1VCOworICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoV0VCQ09SRV9OQVZJR0FUT1JfVkVORE9SX1NVQik7CiB9CiAKLWJvb2wgTmF2aWdhdG9y
QmFzZTo6b25MaW5lKCkgY29uc3QKK2Jvb2wgTmF2aWdhdG9yQmFzZTo6b25MaW5lKCkKIHsKICAg
ICByZXR1cm4gbmV0d29ya1N0YXRlTm90aWZpZXIoKS5vbkxpbmUoKTsKIH0KIAorU3RyaW5nIE5h
dmlnYXRvckJhc2U6Omxhbmd1YWdlKCkKK3sKKyAgICByZXR1cm4gZGVmYXVsdExhbmd1YWdlKCk7
Cit9CisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpCisKK2ludCBOYXZpZ2F0
b3JCYXNlOjpoYXJkd2FyZUNvbmN1cnJlbmN5KCkKK3sKKyAgICBzdGF0aWMgaW50IG51bWJlck9m
Q29yZXM7CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKKyAgICBzdGQ6OmNhbGxf
b25jZShvbmNlLCBbXSB7CisgICAgICAgIC8vIEVuZm9yY2UgYSBtYXhpbXVtIGZvciB0aGUgbnVt
YmVyIG9mIGNvcmVzIHJlcG9ydGVkIHRvIG1pdGlnYXRlCisgICAgICAgIC8vIGZpbmdlcnByaW50
aW5nIGZvciB0aGUgbWlub3JpdHkgb2YgbWFjaGluZXMgd2l0aCBsYXJnZSBudW1iZXJzIG9mIGNv
cmVzLgorICAgICAgICAvLyBJZiBtYWNoaW5lcyB3aXRoIG1vcmUgdGhhbiA4IGNvcmVzIGJlY29t
ZSBjb21tb25wbGFjZSwgd2Ugc2hvdWxkIGJ1bXAgdGhpcyBudW1iZXIuCisgICAgICAgIC8vIHNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTg4IGZvciB0aGUK
KyAgICAgICAgLy8gcmF0aW9uYWxlIGJlaGluZCB0aGlzIGRlY2lzaW9uLgorI2lmIFBMQVRGT1JN
KElPUykKKyAgICAgICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBvcnQgPSAyOworI2Vsc2UKKyAg
ICAgICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBvcnQgPSA4OworI2VuZGlmCisgICAgICAgIG51
bWJlck9mQ29yZXMgPSBzdGQ6Om1pbihXVEY6Om51bWJlck9mUHJvY2Vzc29yQ29yZXMoKSwgbWF4
Q29yZXNUb1JlcG9ydCk7CisgICAgfSk7CisKKyAgICByZXR1cm4gbnVtYmVyT2ZDb3JlczsKK30K
KworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3JCYXNlLmgKaW5kZXggNTI4M2Y1Njk4ZTgyYTdiOWY0NDQ1YWM2ZWIxMDAyM2U3MjBmMmQyZS4u
OTJmNDM0MzYxMGRlZGE1YzhkNmRlYmQzZDdkYmI1OTIzNzNmNDIxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9OYXZpZ2F0b3JCYXNlLmgKQEAgLTMwLDI0ICszMCwzMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSAgICBjbGFzcyBOYXZpZ2F0b3JCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFN0
cmluZyBhcHBOYW1lKCkgY29uc3Q7Ci0gICAgICAgIFN0cmluZyBhcHBWZXJzaW9uKCkgY29uc3Q7
Ci0gICAgICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0ID0gMDsKLSAgICAgICAg
U3RyaW5nIHBsYXRmb3JtKCkgY29uc3Q7Ci0KLSAgICAgICAgU3RyaW5nIGFwcENvZGVOYW1lKCkg
Y29uc3Q7Ci0gICAgICAgIFN0cmluZyBwcm9kdWN0KCkgY29uc3Q7Ci0gICAgICAgIFN0cmluZyBw
cm9kdWN0U3ViKCkgY29uc3Q7Ci0gICAgICAgIFN0cmluZyB2ZW5kb3IoKSBjb25zdDsKLSAgICAg
ICAgU3RyaW5nIHZlbmRvclN1YigpIGNvbnN0OwotCi0gICAgICAgIGJvb2wgb25MaW5lKCkgY29u
c3Q7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgfk5hdmlnYXRvckJhc2UoKTsK
LSAgICB9OworY2xhc3MgTmF2aWdhdG9yQmFzZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFN0cmlu
ZyBhcHBOYW1lKCk7CisgICAgU3RyaW5nIGFwcFZlcnNpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFs
IFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdCA9IDA7CisgICAgc3RhdGljIFN0cmluZyBwbGF0Zm9y
bSgpOworCisgICAgc3RhdGljIFN0cmluZyBhcHBDb2RlTmFtZSgpOworICAgIHN0YXRpYyBTdHJp
bmcgcHJvZHVjdCgpOworICAgIHN0YXRpYyBTdHJpbmcgcHJvZHVjdFN1YigpOworICAgIHN0YXRp
YyBTdHJpbmcgdmVuZG9yKCk7CisgICAgc3RhdGljIFN0cmluZyB2ZW5kb3JTdWIoKTsKKworICAg
IHN0YXRpYyBib29sIG9uTGluZSgpOworCisgICAgc3RhdGljIFN0cmluZyBsYW5ndWFnZSgpOwor
CisjaWYgRU5BQkxFKE5BVklHQVRPUl9IV0NPTkNVUlJFTkNZKQorICAgIHN0YXRpYyBpbnQgaGFy
ZHdhcmVDb25jdXJyZW5jeSgpOworI2VuZGlmCisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5O
YXZpZ2F0b3JCYXNlKCk7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMTkyMTlhMzM2MDZlZDUxMzQ1YWRlNzQzNWE2NzhkNGZjODU0YzJmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdh
cmUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK1sKKyAgICBOb0ludGVyZmFjZU9iamVjdAorXSBpbnRlcmZhY2UgTmF2
aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlIHsKKyAgICBbQ29uZGl0aW9uYWw9TkFWSUdBVE9SX0hX
Q09OQ1VSUkVOQ1ldIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgaGFyZHdh
cmVDb25jdXJyZW5jeTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvcklELmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9ySUQuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjYTEyNTcyNTJjMzU3ZjgwYzZlNDkyNjMxNGU1ZTkyNjk0ZTgzYTEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvcklELmlkbApAQCAtMCwwICsxLDQx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIE5hdmlnYXRvcklEIHsKKyAgICBbTm9u
ZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBDb2RlTmFtZTsK
KyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBO
YW1lOworICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFwcFZlcnNpb247CisgICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgcGxhdGZvcm07CisgICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgcHJvZHVjdDsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0U3ViOworICAgIFtOb25kZXRlcm1pbmlzdGljXSBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVzZXJBZ2VudDsKKyAgICBbTm9uZGV0ZXJtaW5p
c3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3I7CisgICAgW05vbmRldGVy
bWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yU3ViOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZmNTkw
ZjYzM2ZiZDE4Mjg3MGM5NDYxMWMyNjdkMDhmN2FiNDI1MQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsCkBAIC0wLDAgKzEsMzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBO
b0ludGVyZmFjZU9iamVjdAorXSBpbnRlcmZhY2UgTmF2aWdhdG9yTGFuZ3VhZ2UgeworICAgIFtO
b25kZXRlcm1pbmlzdGljXSAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYW5ndWFnZTsK
KyAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgRnJvemVuQXJyYXk8RE9NU3RyaW5nPiBsYW5ndWFn
ZXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JPbkxpbmUu
aWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JPbkxpbmUuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM5Mjc2MzUwMmU5NTE3M2M2MzQ4NDlkMmEyMzBiNmQyYjFlYmNiNmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvck9uTGluZS5pZGwKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBOYXZpZ2F0b3JPbkxpbmUgeworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG9uTGluZTsKK307CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1dvcmtlck5hdmlnYXRvci5pZGwKaW5kZXggMzEwOWNhYzUyZDkyODA0OWIxM2ZhMDExYzc4Y2Ey
NjNkN2JjMGJhOC4uZjdlN2MyYTY5OTcxNmMzNjIxZmJhYTYyMGRhNGNkZTI2ZTIxMGY2MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbApAQCAtMzAsMTEgKzMwLDkgQEAK
ICAgICBFeHBvc2VkPVdvcmtlciwKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGwsCiBdIGlu
dGVyZmFjZSBXb3JrZXJOYXZpZ2F0b3IgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgYXBwTmFtZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcFZlcnNpb247
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybTsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVzZXJBZ2VudDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuIG9uTGluZTsKIH07CiAKK1dvcmtlck5hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmln
YXRvckNvbmN1cnJlbnRIYXJkd2FyZTsKK1dvcmtlck5hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmln
YXRvcklEOworV29ya2VyTmF2aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yTGFuZ3VhZ2U7CitX
b3JrZXJOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0b3JPbkxpbmU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9MYW5ndWFnZS5jcHAKaW5kZXggZTJmMDRmZGU4MWRmMGFhYWZkY2I4NjFlOWI5MjI0NWNj
MGY4MmE4NC4uZWM0YjM0OTI0NmFjN2U5ZTc2MDA2YWU3YjA0ODMwNDk2MmZhODAwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcApAQCAtMzgsNiArMzgsOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBTdGF0aWNMb2NrIHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNN
dXRleDsKKwogc3RhdGljIHZvaWQgcmVnaXN0ZXJMYW5ndWFnZURpZENoYW5nZUNhbGxiYWNrSWZO
ZWNlc3NhcnkoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOwpAQCAtMTAwLDEx
ICsxMDIsMjMgQEAgdm9pZCBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIG92ZXJyaWRlKQogICAgIGxhbmd1YWdlRGlkQ2hhbmdlKCk7CiB9CiAKK3N0
YXRpYyBWZWN0b3I8U3RyaW5nPiBpc29sYXRlZENvcHkoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0
cmluZ3MpCit7CisgICAgVmVjdG9yPFN0cmluZz4gY29weTsKKyAgICBjb3B5LnJlc2VydmVJbml0
aWFsQ2FwYWNpdHkoc3RyaW5ncy5zaXplKCkpOworICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiBz
dHJpbmdzKQorICAgICAgICBjb3B5LnVuY2hlY2tlZEFwcGVuZChsYW5ndWFnZS5pc29sYXRlZENv
cHkoKSk7CisgICAgcmV0dXJuIGNvcHk7Cit9CisKIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXMoKQogewotICAgIFZlY3RvcjxTdHJpbmc+JiBvdmVycmlkZSA9IHByZWZlcnJl
ZExhbmd1YWdlc092ZXJyaWRlKCk7Ci0gICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiBvdmVycmlkZTsKKyAgICB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0
aWNMb2NrPiBsb2NrKHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNNdXRleCk7CisgICAgICAgIFZlY3Rv
cjxTdHJpbmc+JiBvdmVycmlkZSA9IHByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CisgICAg
ICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGlzb2xhdGVk
Q29weShvdmVycmlkZSk7CisgICAgfQogICAgIAogICAgIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFu
Z2VDYWxsYmFja0lmTmVjZXNzYXJ5KCk7CiAgICAgcmV0dXJuIHBsYXRmb3JtVXNlclByZWZlcnJl
ZExhbmd1YWdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3Vh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKaW5kZXggN2FlNTQwN2Nk
MTU5M2VkYzBlZDE2OTM1ZjAwYWUwMzI3ZjVmMzQzNC4uMTEyNjAzYTlmYzgwMGIxNTUwOWZhM2Zh
Yzk1ODI2ODg4OWM3Mzk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFu
Z3VhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCkBAIC0zMSw4
ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV0VCQ09SRV9FWFBPUlQgU3RyaW5n
IGRlZmF1bHRMYW5ndWFnZSgpOwotV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gdXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpOworV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRlZmF1bHRMYW5ndWFn
ZSgpOyAvLyBUaHJlYWQtc2FmZS4KK1dFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoKTsgLy8gVGhyZWFkLXNhZmUuCiBWZWN0b3I8U3RyaW5nPiB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIFdFQkNPUkVfRVhQT1JUIHZvaWQgb3ZlcnJp
ZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiBzaXplX3Qg
aW5kZXhPZkJlc3RNYXRjaGluZ0xhbmd1YWdlSW5MaXN0KGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2Us
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBsYW5ndWFnZUxpc3QsIGJvb2wmIGV4YWN0TWF0Y2gpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGIzYWQyZmYyYzI5OTNjOWY1M2Q5MTNjY2Y4OThlMmQ1NWNhMDMxZDkuLmYxNTE5YWVm
NWU3MzliODhjMTEyZGEyYjQzMjVjMDMxYzQ1YTM0NDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxNi0wNi0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFdv
cmtlck5hdmlnYXRvciBpcyBtaXNzaW5nIHNvbWUgYXR0cmlidXRlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4NTkzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yNjczMTMzND4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICBJbXByb3ZlZCB0ZXN0IGNvdmVyYWdlIGZvciBXb3JrZXJOYXZpZ2F0b3IuCisKKyAg
ICAgICAgKiBmYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtlci1uYXZpZ2F0b3IuanM6CisKIDIw
MTYtMDYtMTAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBhbiBJREIgbGVhayB0ZXN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3Jlc291cmNlcy93b3JrZXItbmF2aWdhdG9yLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3Jlc291cmNlcy93b3JrZXItbmF2aWdhdG9yLmpzCmluZGV4IGQxOTcyYmE5YTQ3ZTMzM2Y1ZGM3
ZGMyODQwODAwNWJhNTE4ZjJhOTQuLjg3MDI2ZTNlZDQwNGNhMGQ5MWJkMjY2ZjFmZWI3ZDJiZTA4
OWZlZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29y
a2VyLW5hdmlnYXRvci5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2Vz
L3dvcmtlci1uYXZpZ2F0b3IuanMKQEAgLTExLDExICsxMSwyOCBAQCBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKIHZhciB3b3JrZXIgPSBjcmVhdGVXb3JrZXIoKTsKIHdvcmtlci5wb3N0TWVzc2Fn
ZSgiZXZhbCB0eXBlb2YgbmF2aWdhdG9yIik7CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2
aWdhdG9yIik7Ci13b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLmFwcE5hbWUiKTsK
KworLy8gTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlCit3b3JrZXIucG9zdE1lc3NhZ2UoImV2
YWwgbmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3kgPj0gMSAmJiBuYXZpZ2F0b3IuaGFyZHdh
cmVDb25jdXJyZW5jeSA8PSA4Iik7CisKKy8vIE5hdmlnYXRvcklECit3b3JrZXIucG9zdE1lc3Nh
Z2UoImV2YWwgbmF2aWdhdG9yLmFwcENvZGVOYW1lID09PSAnTW96aWxsYSciKTsKK3dvcmtlci5w
b3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IuYXBwTmFtZSA9PT0gJ05ldHNjYXBlJyIpOwogd29y
a2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ1dlYktp
dCcpICE9IDAiKTsKLXdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCB0eXBlb2YgbmF2aWdhdG9yLnBs
YXRmb3JtIik7Cit3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgdHlwZW9mIG5hdmlnYXRvci5wbGF0
Zm9ybSA9PSAnc3RyaW5nJyIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci5w
cm9kdWN0ID09PSAnR2Vja28nIik7Cit3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9y
LnByb2R1Y3RTdWIgPT09ICcyMDAzMDEwNyciKTsKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBu
YXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1dlYktpdCcpICE9IDAiKTsKLXdvcmtlci5wb3N0
TWVzc2FnZSgiZXZhbCB0eXBlb2YgbmF2aWdhdG9yLm9uTGluZSIpOword29ya2VyLnBvc3RNZXNz
YWdlKCJldmFsIG5hdmlnYXRvci52ZW5kb3IgPT09ICdBcHBsZSBDb21wdXRlciwgSW5jLiciKTsK
K3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IudmVuZG9yU3ViID09PSAnJyIpOwor
CisvLyBOYXZpZ2F0b3JMYW5ndWFnZQord29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBu
YXZpZ2F0b3IubGFuZ3VhZ2UgPT0gJ3N0cmluZyciKTsKKworLy8gTmF2aWdhdG9yT25MaW5lCit3
b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgdHlwZW9mIG5hdmlnYXRvci5vbkxpbmUgPT0gJ2Jvb2xl
YW4nIik7CisKKwogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIGZvby8vYmFyIik7CiAKIHdvcmtl
ci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy93b3JrZXItbmF2aWdhdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy93b3JrZXItbmF2aWdhdG9yLWV4cGVjdGVkLnR4dAppbmRleCBhODBiMjUwNDZl
ZjEyYmNmNDIyMzYyZjM3MzdkMjU3MjJhMDNjZjViLi5kYjBkMWZkOTliZjYyNTZlN2UzNmYzMjQx
NWRhOGMyZmUzOTA4NWM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29y
a2VyLW5hdmlnYXRvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3dvcmtlci1uYXZpZ2F0b3ItZXhwZWN0ZWQudHh0CkBAIC0yLDEwICsyLDE3IEBAIFRlc3QgTmF2
aWdhdG9yIHByb3BlcnRpZXMuCiAKIHR5cGVvZiBuYXZpZ2F0b3I6IG9iamVjdAogbmF2aWdhdG9y
OiBbb2JqZWN0IFdvcmtlck5hdmlnYXRvcl0KLW5hdmlnYXRvci5hcHBOYW1lOiBOZXRzY2FwZQor
bmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3kgPj0gMSAmJiBuYXZpZ2F0b3IuaGFyZHdhcmVD
b25jdXJyZW5jeSA8PSA4OiB0cnVlCituYXZpZ2F0b3IuYXBwQ29kZU5hbWUgPT09ICdNb3ppbGxh
JzogdHJ1ZQorbmF2aWdhdG9yLmFwcE5hbWUgPT09ICdOZXRzY2FwZSc6IHRydWUKIG5hdmlnYXRv
ci5hcHBWZXJzaW9uLmluZGV4T2YoJ1dlYktpdCcpICE9IDA6IHRydWUKLXR5cGVvZiBuYXZpZ2F0
b3IucGxhdGZvcm06IHN0cmluZwordHlwZW9mIG5hdmlnYXRvci5wbGF0Zm9ybSA9PSAnc3RyaW5n
JzogdHJ1ZQorbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdHZWNrbyc6IHRydWUKK25hdmlnYXRvci5w
cm9kdWN0U3ViID09PSAnMjAwMzAxMDcnOiB0cnVlCiBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4
T2YoJ1dlYktpdCcpICE9IDA6IHRydWUKLXR5cGVvZiBuYXZpZ2F0b3Iub25MaW5lOiBib29sZWFu
CituYXZpZ2F0b3IudmVuZG9yID09PSAnQXBwbGUgQ29tcHV0ZXIsIEluYy4nOiB0cnVlCituYXZp
Z2F0b3IudmVuZG9yU3ViID09PSAnJzogdHJ1ZQordHlwZW9mIG5hdmlnYXRvci5sYW5ndWFnZSA9
PSAnc3RyaW5nJzogdHJ1ZQordHlwZW9mIG5hdmlnYXRvci5vbkxpbmUgPT0gJ2Jvb2xlYW4nOiB0
cnVlCiBET05FCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281060</attachid>
            <date>2016-06-10 16:52:23 -0700</date>
            <delta_ts>2016-06-10 16:55:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158593-20160610165354.patch</filename>
            <type>text/plain</type>
            <size>31424</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFhZjZmODIzN2ZhNDEyMjgzNDJkMWY5
ZTYwOGYzNDUwOWM0MGNlZmQuLjM2OGE2ZmZhODdhYWJmOWUzN2ZiZDQwZTkwN2Y1NGFiZGIyOGFl
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDYtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODU5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc1dpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCisgICAgICAgIE1ha2UgcGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkgdGhyZWFkIHNhZmUgb24gV2luZG93cy4gVGhl
CisgICAgICAgIE1hYyBhbmQgVW5peCBpbXBsZW1lbnRhdGlvbnMgYXJlIGFscmVhZHkgdGhyZWFk
LXNhZmUuCisKIDIwMTYtMDYtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBJbnRyb2R1Y2UgV1RGOjpVbmlxdWVSZWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkMDMyNjdmMTJhODcyZjFmNWJhY2U4MzdlMzgwM2FhNTAzYWVkNTM5Li4zZjFhZjQ3OWFjMTAw
Y2JiYjBkZDczMmQ0ZmEwZmU2MmY2ZGFjOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAK
KzIwMTYtMDYtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBX
b3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODU5MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgQWRkIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbWlzc2luZyBvbiBXb3JrZXJOYXZpZ2F0
b3I6CisgICAgICAgIC0gYXBwQ29kZU5hbWUKKyAgICAgICAgLSBoYXJkd2FyZUNvbmN1cnJlbmN5
CisgICAgICAgIC0gbGFuZ3VhZ2UKKyAgICAgICAgLSBwcm9kdWN0CisgICAgICAgIC0gcHJvZHVj
dFN1YgorICAgICAgICAtIHZlbmRvcgorICAgICAgICAtIHZlbmRvclN1YgorCisgICAgICAgIEZp
cmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IGV4cG9zZSB0aG9zZSBhdHRyaWJ1dGVzLgorCisgICAg
ICAgIFJlbGV2YW50IHNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCN0aGUtd29ya2VybmF2aWdhdG9yLW9iamVj
dAorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZWZhY3RvcnMgdGhlIElETCB0byBtYXRjaCB0
aGUgc3BlY2lmaWNhdGlvbiBtb3JlCisgICAgICAgIGNsb3NlbHkgYW5kIHByb21vdGUgc2hhcmlu
ZyBiZXR3ZWVuIE5hdmlnYXRvciBhbmQgV29ya2VyTmF2aWdhdG9yLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgQWRkIG5ldyBzdXBw
bGVtZW50YWwgSURMIGZpbGVzLgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAg
ICAgICAqIHBhZ2UvTmF2aWdhdG9yLmg6CisgICAgICAgIE1vdmVkIGxhbmd1YWdlKCkgLyBoYXJk
d2FyZUNvbmN1cnJlbmN5KCkgZnJvbSBOYXZpZ2F0b3IgdG8gTmF2aWdhdG9yQmFzZQorICAgICAg
ICBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5IE5hdmlnYXRvcldvcmtlciBhcyB3ZWxsLgorCisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmg6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckJhc2U6Omxhbmd1YWdlKToKKyAg
ICAgICAgVGhlIGltcGxlbWVudGF0aW9uIHN0aWxsIGNhbGxzIGRlZmF1bHRMYW5ndWFnZSgpIGJ1
dCBJIHVwZGF0ZWQgaXQgdG8gYmUKKyAgICAgICAgdGhyZWFkIHNhZmUgb24gYWxsIHBsYXRmb3Jt
cy4KKworICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmFzZTo6aGFyZHdhcmVDb25jdXJyZW5j
eSk6CisgICAgICAgIFVzZSBzdGQ6OmNhbGxfb25jZSgpIGZvciB0aHJlYWQgc2FmZXR5LgorCisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yQ29u
Y3VycmVudEhhcmR3YXJlLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9Xb3Jr
ZXJOYXZpZ2F0b3IuaWRsLgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9ySUQuaWRsOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwuCisgICAgICAgICog
cGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvV29ya2VyTmF2aWdhdG9yLmlkbC4KKyAgICAgICAgKiBwYWdlL05hdmlnYXRvck9uTGluZS5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbC4K
KyAgICAgICAgKiBwYWdlL1dvcmtlck5hdmlnYXRvci5pZGw6CisgICAgICAgIE1vdmUgc2V2ZXJh
bCBhdHRyaWJ1dGVzIHRvIHRoZWlyIG93biBzdXBwbGVtZW50YWwgaW50ZXJmYWNlcyB0byBtYXRj
aAorICAgICAgICB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgcHJvbW90ZSBzaGFyaW5nIHdpdGggV29y
a2VyTmF2aWdhdG9yLgorCisgICAgICAgICogcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogcGxhdGZvcm0v
TGFuZ3VhZ2UuaDoKKyAgICAgICAgTWFkZSB0aHJlYWQtc2FmZSBvbiBhbGwgcGxhdGZvcm1zLgor
CiAyMDE2LTA2LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgaGFuZGxlRGF0YVVSTCBpcyBvbmx5IHVzZWQgYnkgY3VybApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaAppbmRleCA2M2Y2OTVk
NTNjMjgxYTNhMGMyN2JiMmM1NDgyZTY5YjVmNTIyN2Q5Li45MzU4MGZjNzYwOWZmZGMzYWIzYjQ2
ZGEwZGVjODdhOTAzNGZlNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuaApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAog
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Q2hhbmdlZENhbGxiYWNrKHZvaWQgKCopKCkpOwogCisvLyBUaGlzIGlzIHRocmVhZC1zYWZlLgog
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcygpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwCmluZGV4IDBmMzg2NDAzNjEz
OTQ1YzdmNjI0YmM0OTdiNmI4OThmMjdlOWRjY2EuLjc5YWQyM2M1NDM5Y2UyMzMyMDgwNWIyOWQ5
ODMyMTI0MTY3NjNjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcApAQCAtMjYsMTIgKzI2LDE2IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCiAK
KyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCitzdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxh
bmd1YWdlTXV0ZXg7CisKIHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hh
bmdlZENhbGxiYWNrKHZvaWQgKCopKCkpIHsgfQogCiBzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8o
TENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCkBAIC01NCw5ICs1OCwx
MSBAQCBzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8oTENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0
cmluZyYgZmFsbGJhY2spCiAKIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Cisg
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socGxhdGZvcm1MYW5ndWFnZU11dGV4
KTsKKwogICAgIHN0YXRpYyBTdHJpbmcgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7CiAgICAgaWYg
KCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBjb21w
dXRlZERlZmF1bHRMYW5ndWFnZTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1
YWdlLmlzb2xhdGVkQ29weSgpOwogCiAgICAgU3RyaW5nIGxhbmd1YWdlTmFtZSA9IGxvY2FsZUlu
Zm8oTE9DQUxFX1NJU082MzlMQU5HTkFNRSwgImVuIik7CiAgICAgU3RyaW5nIGNvdW50cnlOYW1l
ID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwgU3RyaW5nKCkpOwpAQCAtNzEs
OSArNzcsNyBAQCBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogCiBWZWN0b3I8U3Ry
aW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQogewotICAgIFZlY3RvcjxTdHJp
bmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5h
cHBlbmQocGxhdGZvcm1MYW5ndWFnZSgpKTsKLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1
YWdlczsKKyAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDMyMDVkNDM1MWNhNDBjZDJjZTUzNjky
ODcyNzAzZmU1MGI3YWI3NTQuLmQ4YTJhMTJiOGE1NTc0MzNmNGU1MGQwNGMzM2ZiY2E5OGNkYjRl
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MDMsNiArNjAzLDEwIEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgcGFnZS9IaXN0b3J5LmlkbAogICAgIHBhZ2UvTG9jYXRp
b24uaWRsCiAgICAgcGFnZS9OYXZpZ2F0b3IuaWRsCisgICAgcGFnZS9OYXZpZ2F0b3JDb25jdXJy
ZW50SGFyZHdhcmUuaWRsCisgICAgcGFnZS9OYXZpZ2F0b3JJRC5pZGwKKyAgICBwYWdlL05hdmln
YXRvckxhbmd1YWdlLmlkbAorICAgIHBhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbAogICAgIHBhZ2Uv
UGVyZm9ybWFuY2UuaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmlkbAogICAgIHBhZ2Uv
UGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCAzYjRhNDMzYTFiNGE3YTA3MDliODE3YjA3ZWE3NmE5MWY4MmY2N2Q4Li5lM2E5MDYxNzZhMmM5
NjhkZDUwOThhOGNkNjZiMDVmM2ZjMTdkYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTUxNCw2ICs1MTQsMTAgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9wYWdlL0hpc3RvcnkuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvTG9jYXRpb24u
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvTmF2aWdhdG9yLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZS5pZGwgXAorICAgICQoV2ViQ29yZSkv
cGFnZS9OYXZpZ2F0b3JJRC5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JMYW5n
dWFnZS5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JPbkxpbmUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2Uv
UGVyZm9ybWFuY2VFbnRyeS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5TGlzdC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCmluZGV4IDI1ODk1YmY1NDE1
NDU2MDdjZTQyMWY5ZGU3NDVkNjdjMDY5ODk2MjQuLjdmNjUzMmEwOTA5NjZlODEzNDNmYTU0ZDZm
ZDc2Mzg5ZjExNzA1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKQEAgLTM4LDcgKzM4
LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsK
QEAgLTc4LDExICs3Nyw2IEBAIFN0cmluZyBOYXZpZ2F0b3I6OmFwcFZlcnNpb24oKSBjb25zdAog
ICAgIHJldHVybiBhcHBWZXJzaW9uOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yOjpsYW5ndWFnZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOwotfQotCiBTdHJpbmcgTmF2
aWdhdG9yOjp1c2VyQWdlbnQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKQEAgLTEzNCwy
OCArMTI4LDYgQEAgYm9vbCBOYXZpZ2F0b3I6OmphdmFFbmFibGVkKCkgY29uc3QKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotI2lmIGRlZmluZWQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZ
KQotaW50IE5hdmlnYXRvcjo6aGFyZHdhcmVDb25jdXJyZW5jeSgpIGNvbnN0Ci17Ci0gICAgLy8g
RW5mb3JjZSBhIG1heGltdW0gZm9yIHRoZSBudW1iZXIgb2YgY29yZXMgcmVwb3J0ZWQgdG8gbWl0
aWdhdGUKLSAgICAvLyBmaW5nZXJwcmludGluZyBmb3IgdGhlIG1pbm9yaXR5IG9mIG1hY2hpbmVz
IHdpdGggbGFyZ2UgbnVtYmVycyBvZiBjb3Jlcy4KLSAgICAvLyBJZiBtYWNoaW5lcyB3aXRoIG1v
cmUgdGhhbiA4IGNvcmVzIGJlY29tZSBjb21tb25wbGFjZSwgd2Ugc2hvdWxkIGJ1bXAgdGhpcyBu
dW1iZXIuCi0gICAgLy8gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI1ODggZm9yIHRoZQotICAgIC8vIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBkZWNpc2lvbi4K
LSNpZiBQTEFURk9STShJT1MpCi0gICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBvcnQgPSAyOwot
I2Vsc2UKLSAgICBjb25zdCBpbnQgbWF4Q29yZXNUb1JlcG9ydCA9IDg7Ci0jZW5kaWYKLSAgICBp
bnQgaGFyZHdhcmVDb25jdXJyZW5jeSA9IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsKLQotICAg
IGlmIChoYXJkd2FyZUNvbmN1cnJlbmN5ID4gbWF4Q29yZXNUb1JlcG9ydCkKLSAgICAgICAgcmV0
dXJuIG1heENvcmVzVG9SZXBvcnQ7Ci0KLSAgICByZXR1cm4gaGFyZHdhcmVDb25jdXJyZW5jeTsK
LX0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TKQogYm9vbCBOYXZpZ2F0b3I6OnN0YW5kYWxv
bmUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgKaW5kZXggMTZhYmRkODY3NzYxNDdm
NzFhZDA1YTFiODc1OWMwODU1MDQ2MzMyZi4uZmJiMTJjNDlhY2U5YjYzZDllYzFlMDdjNTJiNWRm
YmYxNGYzNzViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCkBAIC00NSwxNCArNDUsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfk5hdmlnYXRvcigpOwogCiAgICAgU3RyaW5nIGFwcFZlcnNp
b24oKSBjb25zdDsKLSAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAgICBET01QbHVnaW5B
cnJheSogcGx1Z2lucygpIGNvbnN0OwogICAgIERPTU1pbWVUeXBlQXJyYXkqIG1pbWVUeXBlcygp
IGNvbnN0OwogICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgamF2YUVu
YWJsZWQoKSBjb25zdDsKLSNpZiBkZWZpbmVkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5D
WSkKLSAgICBpbnQgaGFyZHdhcmVDb25jdXJyZW5jeSgpIGNvbnN0OwotI2VuZGlmCiAgICAgdmly
dHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvci5pZGwKaW5kZXggYmRjZTRmMjRmNDdlMGNlNjhlN2FmOTNhZTkxMzgy
MjE3ZmQzZjU0Mi4uMTUyYzU2NmM5MDcxZDMyMzU5OWY3NTU2OWZjNDc2YmIyMmU3YjI1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbApAQCAtMjAsMjcgKzIwLDExIEBACiBbCiAgICAgR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiBdIGludGVyZmFjZSBOYXZpZ2F0b3IgewotICAg
IFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcENvZGVO
YW1lOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFwcE5hbWU7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgYXBwVmVyc2lvbjsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBsYW5ndWFnZTsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVBsdWdpbkFycmF5IHBsdWdpbnM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTU1p
bWVUeXBlQXJyYXkgbWltZVR5cGVzOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3Q7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdFN1YjsKLSAgICBbTm9uZGV0ZXJtaW5pc3Rp
Y10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3I7Ci0gICAgW05vbmRldGVybWlu
aXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yU3ViOwogICAgIFtOb25k
ZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb29raWVFbmFibGVkOwog
ICAgIFtOb25kZXRlcm1pbmlzdGljXSBib29sZWFuIGphdmFFbmFibGVkKCk7CiAKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7Ci0KLSNpZiBkZWZpbmVkKEVOQUJMRV9OQVZJ
R0FUT1JfSFdDT05DVVJSRU5DWSkKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoYXJkd2Fy
ZUNvbmN1cnJlbmN5OwotI2VuZGlmCi0KICAgICAvLyBGSVhNRTogQ29udmVydCB0aGlzICNpZidk
ZWYgdG8gYW4gSURMIGNvbmRpdGlvbmFsIGF0dHJpYnV0ZS4KICNpZiBkZWZpbmVkKFdURl9QTEFU
Rk9STV9JT1MpICYmIFdURl9QTEFURk9STV9JT1MKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBzdGFuZGFsb25lOwpAQCAtNDksMyArMzMsNyBAQAogICAgIHZvaWQgZ2V0U3RvcmFnZVVw
ZGF0ZXMoKTsgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvciByZW5hbWUgdG8geWllbGRG
b3JTdG9yYWdlVXBkYXRlcy4KIH07CiAKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvckNv
bmN1cnJlbnRIYXJkd2FyZTsKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvcklEOworTmF2
aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yTGFuZ3VhZ2U7CitOYXZpZ2F0b3IgaW1wbGVtZW50
cyBOYXZpZ2F0b3JPbkxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRl
eCAwYmUyZTFmYjg0MDg4ZmU5Y2YxODJhOGRiNDc5OGVhYzFjZDkxYjhjLi5lM2FmMDdkNmI1ZGZm
NGMxMjMwMTQ4YjkyN2FkYjk4NzNjYjg1ODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
QmFzZS5jcHAKQEAgLTI3LDggKzI3LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiTmF2aWdhdG9yQmFzZS5oIgogCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU3RhdGVOb3RpZmllci5oIgorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBPUyhMSU5VWCkKQEAgLTQ0LDMwICs0Nywz
MCBAQAogI2lmIFBMQVRGT1JNKElPUykKICNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZP
Uk0gZGV2aWNlTmFtZSgpCiAjZWxpZiBPUyhNQUNfT1NfWCkgJiYgKENQVShQUEMpIHx8IENQVShQ
UEM2NCkpCi0jZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJNYWNQUEMiCisjZGVm
aW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNIEFTQ0lJTGl0ZXJhbCgiTWFjUFBDIikKICNl
bGlmIE9TKE1BQ19PU19YKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpCi0jZGVmaW5lIFdF
QkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJNYWNJbnRlbCIKKyNkZWZpbmUgV0VCQ09SRV9OQVZJ
R0FUT1JfUExBVEZPUk0gQVNDSUlMaXRlcmFsKCJNYWNJbnRlbCIpCiAjZWxpZiBPUyhXSU5ET1dT
KQotI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STSAiV2luMzIiCisjZGVmaW5lIFdF
QkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNIEFTQ0lJTGl0ZXJhbCgiV2luMzIiKQogI2Vsc2UKLSNk
ZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0gIiIKKyNkZWZpbmUgV0VCQ09SRV9OQVZJ
R0FUT1JfUExBVEZPUk0gQVNDSUlMaXRlcmFsKCIiKTsKICNlbmRpZgogI2VuZGlmIC8vIGlmbmRl
ZiBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STQogCiAjaWZuZGVmIFdFQkNPUkVfTkFWSUdBVE9S
X1BST0RVQ1QKLSNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUFJPRFVDVCAiR2Vja28iCisjZGVm
aW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BST0RVQ1QgQVNDSUlMaXRlcmFsKCJHZWNrbyIpCiAjZW5k
aWYgLy8gaWZuZGVmIFdFQkNPUkVfTkFWSUdBVE9SX1BST0RVQ1QKIAogI2lmbmRlZiBXRUJDT1JF
X05BVklHQVRPUl9QUk9EVUNUX1NVQgotI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9QUk9EVUNU
X1NVQiAiMjAwMzAxMDciCisjZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BST0RVQ1RfU1VCIEFT
Q0lJTGl0ZXJhbCgiMjAwMzAxMDciKQogI2VuZGlmIC8vIGlmbmRlZiBXRUJDT1JFX05BVklHQVRP
Ul9QUk9EVUNUX1NVQgogCiAjaWZuZGVmIFdFQkNPUkVfTkFWSUdBVE9SX1ZFTkRPUgotI2RlZmlu
ZSBXRUJDT1JFX05BVklHQVRPUl9WRU5ET1IgIkFwcGxlIENvbXB1dGVyLCBJbmMuIgorI2RlZmlu
ZSBXRUJDT1JFX05BVklHQVRPUl9WRU5ET1IgQVNDSUlMaXRlcmFsKCJBcHBsZSBDb21wdXRlciwg
SW5jLiIpCiAjZW5kaWYgLy8gaWZuZGVmIFdFQkNPUkVfTkFWSUdBVE9SX1ZFTkRPUgogCiAjaWZu
ZGVmIFdFQkNPUkVfTkFWSUdBVE9SX1ZFTkRPUl9TVUIKLSNkZWZpbmUgV0VCQ09SRV9OQVZJR0FU
T1JfVkVORE9SX1NVQiAiIgorI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9WRU5ET1JfU1VCIEFT
Q0lJTGl0ZXJhbCgiIikKICNlbmRpZiAvLyBpZm5kZWYgV0VCQ09SRV9OQVZJR0FUT1JfVkVORE9S
X1NVQgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03Niw5ICs3OSw5IEBAIE5hdmlnYXRvckJh
c2U6On5OYXZpZ2F0b3JCYXNlKCkKIHsKIH0KIAotU3RyaW5nIE5hdmlnYXRvckJhc2U6OmFwcE5h
bWUoKSBjb25zdAorU3RyaW5nIE5hdmlnYXRvckJhc2U6OmFwcE5hbWUoKQogewotICAgIHJldHVy
biAiTmV0c2NhcGUiOworICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIk5ldHNjYXBlIik7CiB9CiAK
IFN0cmluZyBOYXZpZ2F0b3JCYXNlOjphcHBWZXJzaW9uKCkgY29uc3QKQEAgLTg4LDcgKzkxLDcg
QEAgU3RyaW5nIE5hdmlnYXRvckJhc2U6OmFwcFZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBh
Z2VudC5zdWJzdHJpbmcoYWdlbnQuZmluZCgnLycpICsgMSk7CiB9CiAKLVN0cmluZyBOYXZpZ2F0
b3JCYXNlOjpwbGF0Zm9ybSgpIGNvbnN0CitTdHJpbmcgTmF2aWdhdG9yQmFzZTo6cGxhdGZvcm0o
KQogewogI2lmIE9TKExJTlVYKQogICAgIGlmICghU3RyaW5nKFdFQkNPUkVfTkFWSUdBVE9SX1BM
QVRGT1JNKS5pc0VtcHR5KCkpCkBAIC0xMDEsMzQgKzEwNCw2NSBAQCBTdHJpbmcgTmF2aWdhdG9y
QmFzZTo6cGxhdGZvcm0oKSBjb25zdAogI2VuZGlmCiB9CiAKLVN0cmluZyBOYXZpZ2F0b3JCYXNl
OjphcHBDb2RlTmFtZSgpIGNvbnN0CitTdHJpbmcgTmF2aWdhdG9yQmFzZTo6YXBwQ29kZU5hbWUo
KQogewotICAgIHJldHVybiAiTW96aWxsYSI7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiTW96
aWxsYSIpOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yQmFzZTo6cHJvZHVjdCgpIGNvbnN0CitTdHJp
bmcgTmF2aWdhdG9yQmFzZTo6cHJvZHVjdCgpCiB7CiAgICAgcmV0dXJuIFdFQkNPUkVfTkFWSUdB
VE9SX1BST0RVQ1Q7CiB9CiAKLVN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwcm9kdWN0U3ViKCkgY29u
c3QKK1N0cmluZyBOYXZpZ2F0b3JCYXNlOjpwcm9kdWN0U3ViKCkKIHsKICAgICByZXR1cm4gV0VC
Q09SRV9OQVZJR0FUT1JfUFJPRFVDVF9TVUI7CiB9CiAKLVN0cmluZyBOYXZpZ2F0b3JCYXNlOjp2
ZW5kb3IoKSBjb25zdAorU3RyaW5nIE5hdmlnYXRvckJhc2U6OnZlbmRvcigpCiB7CiAgICAgcmV0
dXJuIFdFQkNPUkVfTkFWSUdBVE9SX1ZFTkRPUjsKIH0KIAotU3RyaW5nIE5hdmlnYXRvckJhc2U6
OnZlbmRvclN1YigpIGNvbnN0CitTdHJpbmcgTmF2aWdhdG9yQmFzZTo6dmVuZG9yU3ViKCkKIHsK
ICAgICByZXR1cm4gV0VCQ09SRV9OQVZJR0FUT1JfVkVORE9SX1NVQjsKIH0KIAotYm9vbCBOYXZp
Z2F0b3JCYXNlOjpvbkxpbmUoKSBjb25zdAorYm9vbCBOYXZpZ2F0b3JCYXNlOjpvbkxpbmUoKQog
ewogICAgIHJldHVybiBuZXR3b3JrU3RhdGVOb3RpZmllcigpLm9uTGluZSgpOwogfQogCitTdHJp
bmcgTmF2aWdhdG9yQmFzZTo6bGFuZ3VhZ2UoKQoreworICAgIHJldHVybiBkZWZhdWx0TGFuZ3Vh
Z2UoKTsKK30KKworI2lmIEVOQUJMRShOQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkKKworaW50IE5h
dmlnYXRvckJhc2U6OmhhcmR3YXJlQ29uY3VycmVuY3koKQoreworICAgIHN0YXRpYyBpbnQgbnVt
YmVyT2ZDb3JlczsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOworICAgIHN0ZDo6
Y2FsbF9vbmNlKG9uY2UsIFtdIHsKKyAgICAgICAgLy8gRW5mb3JjZSBhIG1heGltdW0gZm9yIHRo
ZSBudW1iZXIgb2YgY29yZXMgcmVwb3J0ZWQgdG8gbWl0aWdhdGUKKyAgICAgICAgLy8gZmluZ2Vy
cHJpbnRpbmcgZm9yIHRoZSBtaW5vcml0eSBvZiBtYWNoaW5lcyB3aXRoIGxhcmdlIG51bWJlcnMg
b2YgY29yZXMuCisgICAgICAgIC8vIElmIG1hY2hpbmVzIHdpdGggbW9yZSB0aGFuIDggY29yZXMg
YmVjb21lIGNvbW1vbnBsYWNlLCB3ZSBzaG91bGQgYnVtcCB0aGlzIG51bWJlci4KKyAgICAgICAg
Ly8gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1ODggZm9y
IHRoZQorICAgICAgICAvLyByYXRpb25hbGUgYmVoaW5kIHRoaXMgZGVjaXNpb24uCisjaWYgUExB
VEZPUk0oSU9TKQorICAgICAgICBjb25zdCBpbnQgbWF4Q29yZXNUb1JlcG9ydCA9IDI7CisjZWxz
ZQorICAgICAgICBjb25zdCBpbnQgbWF4Q29yZXNUb1JlcG9ydCA9IDg7CisjZW5kaWYKKyAgICAg
ICAgbnVtYmVyT2ZDb3JlcyA9IHN0ZDo6bWluKFdURjo6bnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcygp
LCBtYXhDb3Jlc1RvUmVwb3J0KTsKKyAgICB9KTsKKworICAgIHJldHVybiBudW1iZXJPZkNvcmVz
OworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05h
dmlnYXRvckJhc2UuaAppbmRleCA1MjgzZjU2OThlODJhN2I5ZjQ0NDVhYzZlYjEwMDIzZTcyMGYy
ZDJlLi45MmY0MzQzNjEwZGVkYTVjOGQ2ZGViZDNkN2RiYjU5MjM3M2Y0MjE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvckJhc2UuaApAQCAtMzAsMjQgKzMwLDMwIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotICAgIGNsYXNzIE5hdmlnYXRvckJhc2UgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgU3RyaW5nIGFwcE5hbWUoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIGFwcFZlcnNpb24oKSBj
b25zdDsKLSAgICAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3QgPSAwOwotICAg
ICAgICBTdHJpbmcgcGxhdGZvcm0oKSBjb25zdDsKLQotICAgICAgICBTdHJpbmcgYXBwQ29kZU5h
bWUoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIHByb2R1Y3QoKSBjb25zdDsKLSAgICAgICAgU3Ry
aW5nIHByb2R1Y3RTdWIoKSBjb25zdDsKLSAgICAgICAgU3RyaW5nIHZlbmRvcigpIGNvbnN0Owot
ICAgICAgICBTdHJpbmcgdmVuZG9yU3ViKCkgY29uc3Q7Ci0KLSAgICAgICAgYm9vbCBvbkxpbmUo
KSBjb25zdDsKLQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCB+TmF2aWdhdG9yQmFz
ZSgpOwotICAgIH07CitjbGFzcyBOYXZpZ2F0b3JCYXNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
U3RyaW5nIGFwcE5hbWUoKTsKKyAgICBTdHJpbmcgYXBwVmVyc2lvbigpIGNvbnN0OworICAgIHZp
cnR1YWwgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0ID0gMDsKKyAgICBzdGF0aWMgU3RyaW5nIHBs
YXRmb3JtKCk7CisKKyAgICBzdGF0aWMgU3RyaW5nIGFwcENvZGVOYW1lKCk7CisgICAgc3RhdGlj
IFN0cmluZyBwcm9kdWN0KCk7CisgICAgc3RhdGljIFN0cmluZyBwcm9kdWN0U3ViKCk7CisgICAg
c3RhdGljIFN0cmluZyB2ZW5kb3IoKTsKKyAgICBzdGF0aWMgU3RyaW5nIHZlbmRvclN1YigpOwor
CisgICAgc3RhdGljIGJvb2wgb25MaW5lKCk7CisKKyAgICBzdGF0aWMgU3RyaW5nIGxhbmd1YWdl
KCk7CisKKyNpZiBFTkFCTEUoTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kpCisgICAgc3RhdGljIGlu
dCBoYXJkd2FyZUNvbmN1cnJlbmN5KCk7CisjZW5kaWYKKworcHJvdGVjdGVkOgorICAgIHZpcnR1
YWwgfk5hdmlnYXRvckJhc2UoKTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmUu
aWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmUuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIxOTIxOWEzMzYwNmVkNTEzNDVhZGU3NDM1YTY3OGQ0ZmM4NTRjMmYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRI
YXJkd2FyZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFj
ZSBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmUgeworICAgIFtDb25kaXRpb25hbD1OQVZJR0FU
T1JfSFdDT05DVVJSRU5DWV0gcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBo
YXJkd2FyZUNvbmN1cnJlbmN5OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9ySUQuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JJRC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmNhMTI1NzI1MmMzNTdmODBjNmU0OTI2MzE0ZTVlOTI2OTRlODNhMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9ySUQuaWRsCkBAIC0wLDAg
KzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBOb0ludGVyZmFjZU9iamVjdAorXSBpbnRlcmZhY2UgTmF2aWdhdG9ySUQgeworICAg
IFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcENvZGVO
YW1lOworICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFwcE5hbWU7CisgICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgYXBwVmVyc2lvbjsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBwbGF0Zm9ybTsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBwcm9kdWN0OworICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3RTdWI7CisgICAgW05vbmRldGVybWluaXN0
aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXNlckFnZW50OworICAgIFtOb25kZXRl
cm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvcjsKKyAgICBbTm9u
ZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3JTdWI7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NmY1OTBmNjMzZmJkMTgyODcwYzk0NjExYzI2N2QwOGY3YWI0MjUxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGwKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBOYXZpZ2F0b3JMYW5ndWFnZSB7Cisg
ICAgW05vbmRldGVybWluaXN0aWNdICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmd1
YWdlOworICAgIC8vIHJlYWRvbmx5IGF0dHJpYnV0ZSBGcm96ZW5BcnJheTxET01TdHJpbmc+IGxh
bmd1YWdlczsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvck9u
TGluZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvck9uTGluZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzkyNzYzNTAyZTk1MTczYzYzNDg0OWQyYTIzMGI2ZDJiMWViY2I2ZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIE5hdmlnYXRvck9uTGluZSB7
CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gb25MaW5lOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbAppbmRleCAzMTA5Y2FjNTJkOTI4MDQ5YjEzZmEwMTFj
NzhjYTI2M2Q3YmMwYmE4Li5mN2U3YzJhNjk5NzE2YzM2MjFmYmFhNjIwZGE0Y2RlMjZlMjEwZjYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsCkBAIC0zMCwxMSArMzAs
OSBAQAogICAgIEV4cG9zZWQ9V29ya2VyLAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbCwK
IF0gaW50ZXJmYWNlIFdvcmtlck5hdmlnYXRvciB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBhcHBOYW1lOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBwVmVy
c2lvbjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtOwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXNlckFnZW50OwotCi0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gb25MaW5lOwogfTsKIAorV29ya2VyTmF2aWdhdG9yIGltcGxlbWVudHMg
TmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOworV29ya2VyTmF2aWdhdG9yIGltcGxlbWVudHMg
TmF2aWdhdG9ySUQ7CitXb3JrZXJOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0b3JMYW5ndWFn
ZTsKK1dvcmtlck5hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvck9uTGluZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xhbmd1YWdlLmNwcAppbmRleCBlMmYwNGZkZTgxZGYwYWFhZmRjYjg2MWU5Yjky
MjQ1Y2MwZjgyYTg0Li5lYzRiMzQ5MjQ2YWM3ZTllNzYwMDZhZTdiMDQ4MzA0OTYyZmE4MDA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCkBAIC0zOCw2ICszOCw4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIFN0YXRpY0xvY2sgdXNlclByZWZlcnJlZExhbmd1
YWdlc011dGV4OworCiBzdGF0aWMgdm9pZCByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdlQ2FsbGJh
Y2tJZk5lY2Vzc2FyeSgpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CkBAIC0x
MDAsMTEgKzEwMiwyMyBAQCB2b2lkIG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUpCiAgICAgbGFuZ3VhZ2VEaWRDaGFuZ2UoKTsKIH0K
IAorc3RhdGljIFZlY3RvcjxTdHJpbmc+IGlzb2xhdGVkQ29weShjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc3RyaW5ncykKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBjb3B5OworICAgIGNvcHkucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShzdHJpbmdzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBsYW5ndWFn
ZSA6IHN0cmluZ3MpCisgICAgICAgIGNvcHkudW5jaGVja2VkQXBwZW5kKGxhbmd1YWdlLmlzb2xh
dGVkQ29weSgpKTsKKyAgICByZXR1cm4gY29weTsKK30KKwogVmVjdG9yPFN0cmluZz4gdXNlclBy
ZWZlcnJlZExhbmd1YWdlcygpCiB7Ci0gICAgVmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlID0gcHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKLSAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkK
LSAgICAgICAgcmV0dXJuIG92ZXJyaWRlOworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJk
PFN0YXRpY0xvY2s+IGxvY2sodXNlclByZWZlcnJlZExhbmd1YWdlc011dGV4KTsKKyAgICAgICAg
VmVjdG9yPFN0cmluZz4mIG92ZXJyaWRlID0gcHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsK
KyAgICAgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gaXNv
bGF0ZWRDb3B5KG92ZXJyaWRlKTsKKyAgICB9CiAgICAgCiAgICAgcmVnaXN0ZXJMYW5ndWFnZURp
ZENoYW5nZUNhbGxiYWNrSWZOZWNlc3NhcnkoKTsKICAgICByZXR1cm4gcGxhdGZvcm1Vc2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
YW5ndWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaAppbmRleCA3YWU1
NDA3Y2QxNTkzZWRjMGVkMTY5MzVmMDBhZTAzMjdmNWYzNDM0Li4xMTI2MDNhOWZjODAwYjE1NTA5
ZmEzZmFjOTU4MjY4ODg5YzczOTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9MYW5ndWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmgKQEAg
LTMxLDggKzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XRUJDT1JFX0VYUE9SVCBT
dHJpbmcgZGVmYXVsdExhbmd1YWdlKCk7Ci1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiB1
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCk7CitXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZGVmYXVsdExh
bmd1YWdlKCk7IC8vIFRocmVhZC1zYWZlLgorV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4g
dXNlclByZWZlcnJlZExhbmd1YWdlcygpOyAvLyBUaHJlYWQtc2FmZS4KIFZlY3RvcjxTdHJpbmc+
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCBv
dmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKIHNp
emVfdCBpbmRleE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5n
dWFnZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdlTGlzdCwgYm9vbCYgZXhhY3RNYXRj
aCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYjNhZDJmZjJjMjk5M2M5ZjUzZDkxM2NjZjg5OGUyZDU1Y2EwMzFkOS4uZjE1
MTlhZWY1ZTczOWI4OGMxMTJkYTJiNDMyNWMwMzFjNDVhMzQ0MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE2LTA2LTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgV29ya2VyTmF2aWdhdG9yIGlzIG1pc3Npbmcgc29tZSBhdHRyaWJ1dGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTg1OTMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzI2NzMxMzM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEltcHJvdmVkIHRlc3QgY292ZXJhZ2UgZm9yIFdvcmtlck5hdmlnYXRvci4K
KworICAgICAgICAqIGZhc3Qvd29ya2Vycy9yZXNvdXJjZXMvd29ya2VyLW5hdmlnYXRvci5qczoK
KwogMjAxNi0wNi0xMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIGFuIElEQiBsZWFrIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvcmVzb3VyY2VzL3dvcmtlci1uYXZpZ2F0b3IuanMgYi9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvcmVzb3VyY2VzL3dvcmtlci1uYXZpZ2F0b3IuanMKaW5kZXggZDE5NzJiYTlhNDdlMzMz
ZjVkYzdkYzI4NDA4MDA1YmE1MThmMmE5NC4uODcwMjZlM2VkNDA0Y2EwZDkxYmQyNjZmMWZlYjdk
MmJlMDg5ZmVmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNl
cy93b3JrZXItbmF2aWdhdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9yZXNv
dXJjZXMvd29ya2VyLW5hdmlnYXRvci5qcwpAQCAtMTEsMTEgKzExLDI4IEBAIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogdmFyIHdvcmtlciA9IGNyZWF0ZVdvcmtlcigpOwogd29ya2VyLnBvc3RN
ZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0b3IiKTsKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZh
bCBuYXZpZ2F0b3IiKTsKLXdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IuYXBwTmFt
ZSIpOworCisvLyBOYXZpZ2F0b3JDb25jdXJyZW50SGFyZHdhcmUKK3dvcmtlci5wb3N0TWVzc2Fn
ZSgiZXZhbCBuYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeSA+PSAxICYmIG5hdmlnYXRvci5o
YXJkd2FyZUNvbmN1cnJlbmN5IDw9IDgiKTsKKworLy8gTmF2aWdhdG9ySUQKK3dvcmtlci5wb3N0
TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IuYXBwQ29kZU5hbWUgPT09ICdNb3ppbGxhJyIpOword29y
a2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci5hcHBOYW1lID09PSAnTmV0c2NhcGUnIik7
CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZign
V2ViS2l0JykgIT0gMCIpOwotd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0
b3IucGxhdGZvcm0iKTsKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCB0eXBlb2YgbmF2aWdhdG9y
LnBsYXRmb3JtID09ICdzdHJpbmcnIik7Cit3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdh
dG9yLnByb2R1Y3QgPT09ICdHZWNrbyciKTsKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZp
Z2F0b3IucHJvZHVjdFN1YiA9PT0gJzIwMDMwMTA3JyIpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJl
dmFsIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignV2ViS2l0JykgIT0gMCIpOwotd29ya2Vy
LnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0b3Iub25MaW5lIik7Cit3b3JrZXIucG9z
dE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLnZlbmRvciA9PT0gJ0FwcGxlIENvbXB1dGVyLCBJbmMu
JyIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci52ZW5kb3JTdWIgPT09ICcn
Iik7CisKKy8vIE5hdmlnYXRvckxhbmd1YWdlCit3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgdHlw
ZW9mIG5hdmlnYXRvci5sYW5ndWFnZSA9PSAnc3RyaW5nJyIpOworCisvLyBOYXZpZ2F0b3JPbkxp
bmUKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCB0eXBlb2YgbmF2aWdhdG9yLm9uTGluZSA9PSAn
Ym9vbGVhbiciKTsKKworCiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgZm9vLy9iYXIiKTsKIAog
d29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2dCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3dvcmtlci1uYXZpZ2F0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3dvcmtlci1uYXZpZ2F0b3ItZXhwZWN0ZWQudHh0CmluZGV4IGE4MGIy
NTA0NmVmMTJiY2Y0MjIzNjJmMzczN2QyNTcyMmEwM2NmNWIuLmRiMGQxZmQ5OWJmNjI1NmU3ZTM2
ZjMyNDE1ZGE4YzJmZTM5MDg1YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItbmF2aWdhdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvd29ya2VyLW5hdmlnYXRvci1leHBlY3RlZC50eHQKQEAgLTIsMTAgKzIsMTcgQEAgVGVz
dCBOYXZpZ2F0b3IgcHJvcGVydGllcy4KIAogdHlwZW9mIG5hdmlnYXRvcjogb2JqZWN0CiBuYXZp
Z2F0b3I6IFtvYmplY3QgV29ya2VyTmF2aWdhdG9yXQotbmF2aWdhdG9yLmFwcE5hbWU6IE5ldHNj
YXBlCituYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeSA+PSAxICYmIG5hdmlnYXRvci5oYXJk
d2FyZUNvbmN1cnJlbmN5IDw9IDg6IHRydWUKK25hdmlnYXRvci5hcHBDb2RlTmFtZSA9PT0gJ01v
emlsbGEnOiB0cnVlCituYXZpZ2F0b3IuYXBwTmFtZSA9PT0gJ05ldHNjYXBlJzogdHJ1ZQogbmF2
aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZignV2ViS2l0JykgIT0gMDogdHJ1ZQotdHlwZW9mIG5h
dmlnYXRvci5wbGF0Zm9ybTogc3RyaW5nCit0eXBlb2YgbmF2aWdhdG9yLnBsYXRmb3JtID09ICdz
dHJpbmcnOiB0cnVlCituYXZpZ2F0b3IucHJvZHVjdCA9PT0gJ0dlY2tvJzogdHJ1ZQorbmF2aWdh
dG9yLnByb2R1Y3RTdWIgPT09ICcyMDAzMDEwNyc6IHRydWUKIG5hdmlnYXRvci51c2VyQWdlbnQu
aW5kZXhPZignV2ViS2l0JykgIT0gMDogdHJ1ZQotdHlwZW9mIG5hdmlnYXRvci5vbkxpbmU6IGJv
b2xlYW4KK25hdmlnYXRvci52ZW5kb3IgPT09ICdBcHBsZSBDb21wdXRlciwgSW5jLic6IHRydWUK
K25hdmlnYXRvci52ZW5kb3JTdWIgPT09ICcnOiB0cnVlCit0eXBlb2YgbmF2aWdhdG9yLmxhbmd1
YWdlID09ICdzdHJpbmcnOiB0cnVlCit0eXBlb2YgbmF2aWdhdG9yLm9uTGluZSA9PSAnYm9vbGVh
bic6IHRydWUKIERPTkUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281061</attachid>
            <date>2016-06-10 16:55:19 -0700</date>
            <delta_ts>2016-06-11 10:42:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158593-20160610165650.patch</filename>
            <type>text/plain</type>
            <size>31417</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFhZjZmODIzN2ZhNDEyMjgzNDJkMWY5
ZTYwOGYzNDUwOWM0MGNlZmQuLjM2OGE2ZmZhODdhYWJmOWUzN2ZiZDQwZTkwN2Y1NGFiZGIyOGFl
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDYtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0
dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1ODU5MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1Vc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzLmg6CisgICAgICAgICogd3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1
YWdlc1dpbi5jcHA6CisgICAgICAgIChXVEY6OnBsYXRmb3JtTGFuZ3VhZ2UpOgorICAgICAgICAo
V1RGOjpwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOgorCisgICAgICAgIE1ha2UgcGxh
dGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkgdGhyZWFkIHNhZmUgb24gV2luZG93cy4gVGhl
CisgICAgICAgIE1hYyBhbmQgVW5peCBpbXBsZW1lbnRhdGlvbnMgYXJlIGFscmVhZHkgdGhyZWFk
LXNhZmUuCisKIDIwMTYtMDYtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBJbnRyb2R1Y2UgV1RGOjpVbmlxdWVSZWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkMDMyNjdmMTJhODcyZjFmNWJhY2U4MzdlMzgwM2FhNTAzYWVkNTM5Li4zZjFhZjQ3OWFjMTAw
Y2JiYjBkZDczMmQ0ZmEwZmU2MmY2ZGFjOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAK
KzIwMTYtMDYtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBX
b3JrZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODU5MworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgQWRkIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbWlzc2luZyBvbiBXb3JrZXJOYXZpZ2F0
b3I6CisgICAgICAgIC0gYXBwQ29kZU5hbWUKKyAgICAgICAgLSBoYXJkd2FyZUNvbmN1cnJlbmN5
CisgICAgICAgIC0gbGFuZ3VhZ2UKKyAgICAgICAgLSBwcm9kdWN0CisgICAgICAgIC0gcHJvZHVj
dFN1YgorICAgICAgICAtIHZlbmRvcgorICAgICAgICAtIHZlbmRvclN1YgorCisgICAgICAgIEZp
cmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IGV4cG9zZSB0aG9zZSBhdHRyaWJ1dGVzLgorCisgICAg
ICAgIFJlbGV2YW50IHNwZWNpZmljYXRpb246CisgICAgICAgIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL3dvcmtlcnMuaHRtbCN0aGUtd29ya2VybmF2aWdhdG9yLW9iamVj
dAorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZWZhY3RvcnMgdGhlIElETCB0byBtYXRjaCB0
aGUgc3BlY2lmaWNhdGlvbiBtb3JlCisgICAgICAgIGNsb3NlbHkgYW5kIHByb21vdGUgc2hhcmlu
ZyBiZXR3ZWVuIE5hdmlnYXRvciBhbmQgV29ya2VyTmF2aWdhdG9yLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cywgdXBkYXRlZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgQWRkIG5ldyBzdXBw
bGVtZW50YWwgSURMIGZpbGVzLgorCisgICAgICAgICogcGFnZS9OYXZpZ2F0b3IuY3BwOgorICAg
ICAgICAqIHBhZ2UvTmF2aWdhdG9yLmg6CisgICAgICAgIE1vdmVkIGxhbmd1YWdlKCkgLyBoYXJk
d2FyZUNvbmN1cnJlbmN5KCkgZnJvbSBOYXZpZ2F0b3IgdG8gTmF2aWdhdG9yQmFzZQorICAgICAg
ICBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGJ5IE5hdmlnYXRvcldvcmtlciBhcyB3ZWxsLgorCisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3JCYXNlLmg6CisgICAgICAgICogcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckJhc2U6Omxhbmd1YWdlKToKKyAg
ICAgICAgVGhlIGltcGxlbWVudGF0aW9uIHN0aWxsIGNhbGxzIGRlZmF1bHRMYW5ndWFnZSgpIGJ1
dCBJIHVwZGF0ZWQgaXQgdG8gYmUKKyAgICAgICAgdGhyZWFkIHNhZmUgb24gYWxsIHBsYXRmb3Jt
cy4KKworICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9yQmFzZTo6aGFyZHdhcmVDb25jdXJyZW5j
eSk6CisgICAgICAgIFVzZSBzdGQ6OmNhbGxfb25jZSgpIGZvciB0aHJlYWQgc2FmZXR5LgorCisg
ICAgICAgICogcGFnZS9OYXZpZ2F0b3IuaWRsOgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9yQ29u
Y3VycmVudEhhcmR3YXJlLmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9Xb3Jr
ZXJOYXZpZ2F0b3IuaWRsLgorICAgICAgICAqIHBhZ2UvTmF2aWdhdG9ySUQuaWRsOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwuCisgICAgICAgICog
cGFnZS9OYXZpZ2F0b3JMYW5ndWFnZS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvV29ya2VyTmF2aWdhdG9yLmlkbC4KKyAgICAgICAgKiBwYWdlL05hdmlnYXRvck9uTGluZS5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbC4K
KyAgICAgICAgKiBwYWdlL1dvcmtlck5hdmlnYXRvci5pZGw6CisgICAgICAgIE1vdmUgc2V2ZXJh
bCBhdHRyaWJ1dGVzIHRvIHRoZWlyIG93biBzdXBwbGVtZW50YWwgaW50ZXJmYWNlcyB0byBtYXRj
aAorICAgICAgICB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgcHJvbW90ZSBzaGFyaW5nIHdpdGggV29y
a2VyTmF2aWdhdG9yLgorCisgICAgICAgICogcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dXNlclByZWZlcnJlZExhbmd1YWdlcyk6CisgICAgICAgICogcGxhdGZvcm0v
TGFuZ3VhZ2UuaDoKKyAgICAgICAgTWFkZSB0aHJlYWQtc2FmZSBvbiBhbGwgcGxhdGZvcm1zLgor
CiAyMDE2LTA2LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgaGFuZGxlRGF0YVVSTCBpcyBvbmx5IHVzZWQgYnkgY3VybApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMuaAppbmRleCA2M2Y2OTVk
NTNjMjgxYTNhMGMyN2JiMmM1NDgyZTY5YjVmNTIyN2Q5Li45MzU4MGZjNzYwOWZmZGMzYWIzYjQ2
ZGEwZGVjODdhOTAzNGZlNzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMuaApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAog
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
Q2hhbmdlZENhbGxiYWNrKHZvaWQgKCopKCkpOwogCisvLyBUaGlzIGlzIHRocmVhZC1zYWZlLgog
V1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxTdHJpbmc+IHBsYXRmb3JtVXNlclByZWZlcnJlZExh
bmd1YWdlcygpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtVXNlclByZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNXaW4uY3BwCmluZGV4IDBmMzg2NDAzNjEz
OTQ1YzdmNjI0YmM0OTdiNmI4OThmMjdlOWRjY2EuLjc5YWQyM2M1NDM5Y2UyMzMyMDgwNWIyOWQ5
ODMyMTI0MTY3NjNjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtVXNlclBy
ZWZlcnJlZExhbmd1YWdlc1dpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1Vc2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzV2luLmNwcApAQCAtMjYsMTIgKzI2LDE2IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzLmgiCiAK
KyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CisjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCitzdGF0aWMgU3RhdGljTG9jayBwbGF0Zm9ybUxh
bmd1YWdlTXV0ZXg7CisKIHZvaWQgc2V0UGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hh
bmdlZENhbGxiYWNrKHZvaWQgKCopKCkpIHsgfQogCiBzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8o
TENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0cmluZyYgZmFsbGJhY2spCkBAIC01NCw5ICs1OCwx
MSBAQCBzdGF0aWMgU3RyaW5nIGxvY2FsZUluZm8oTENUWVBFIGxvY2FsZVR5cGUsIGNvbnN0IFN0
cmluZyYgZmFsbGJhY2spCiAKIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm1MYW5ndWFnZSgpCiB7Cisg
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2socGxhdGZvcm1MYW5ndWFnZU11dGV4
KTsKKwogICAgIHN0YXRpYyBTdHJpbmcgY29tcHV0ZWREZWZhdWx0TGFuZ3VhZ2U7CiAgICAgaWYg
KCFjb21wdXRlZERlZmF1bHRMYW5ndWFnZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBjb21w
dXRlZERlZmF1bHRMYW5ndWFnZTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVkRGVmYXVsdExhbmd1
YWdlLmlzb2xhdGVkQ29weSgpOwogCiAgICAgU3RyaW5nIGxhbmd1YWdlTmFtZSA9IGxvY2FsZUlu
Zm8oTE9DQUxFX1NJU082MzlMQU5HTkFNRSwgImVuIik7CiAgICAgU3RyaW5nIGNvdW50cnlOYW1l
ID0gbG9jYWxlSW5mbyhMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwgU3RyaW5nKCkpOwpAQCAtNzEs
OSArNzcsNyBAQCBzdGF0aWMgU3RyaW5nIHBsYXRmb3JtTGFuZ3VhZ2UoKQogCiBWZWN0b3I8U3Ry
aW5nPiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKQogewotICAgIFZlY3RvcjxTdHJp
bmc+IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXM7Ci0gICAgdXNlclByZWZlcnJlZExhbmd1YWdlcy5h
cHBlbmQocGxhdGZvcm1MYW5ndWFnZSgpKTsKLSAgICByZXR1cm4gdXNlclByZWZlcnJlZExhbmd1
YWdlczsKKyAgICByZXR1cm4geyBwbGF0Zm9ybUxhbmd1YWdlKCkgfTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDMyMDVkNDM1MWNhNDBjZDJjZTUzNjky
ODcyNzAzZmU1MGI3YWI3NTQuLmQ4YTJhMTJiOGE1NTc0MzNmNGU1MGQwNGMzM2ZiY2E5OGNkYjRl
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MDMsNiArNjAzLDEwIEBAIHNldChXZWJDb3Jl
X05PTl9TVkdfSURMX0ZJTEVTCiAgICAgcGFnZS9IaXN0b3J5LmlkbAogICAgIHBhZ2UvTG9jYXRp
b24uaWRsCiAgICAgcGFnZS9OYXZpZ2F0b3IuaWRsCisgICAgcGFnZS9OYXZpZ2F0b3JDb25jdXJy
ZW50SGFyZHdhcmUuaWRsCisgICAgcGFnZS9OYXZpZ2F0b3JJRC5pZGwKKyAgICBwYWdlL05hdmln
YXRvckxhbmd1YWdlLmlkbAorICAgIHBhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbAogICAgIHBhZ2Uv
UGVyZm9ybWFuY2UuaWRsCiAgICAgcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmlkbAogICAgIHBhZ2Uv
UGVyZm9ybWFuY2VFbnRyeUxpc3QuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCAzYjRhNDMzYTFiNGE3YTA3MDliODE3YjA3ZWE3NmE5MWY4MmY2N2Q4Li5lM2E5MDYxNzZhMmM5
NjhkZDUwOThhOGNkNjZiMDVmM2ZjMTdkYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTUxNCw2ICs1MTQsMTAgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9wYWdlL0hpc3RvcnkuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvTG9jYXRpb24u
aWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvTmF2aWdhdG9yLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZS5pZGwgXAorICAgICQoV2ViQ29yZSkv
cGFnZS9OYXZpZ2F0b3JJRC5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JMYW5n
dWFnZS5pZGwgXAorICAgICQoV2ViQ29yZSkvcGFnZS9OYXZpZ2F0b3JPbkxpbmUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL3BhZ2UvUGVyZm9ybWFuY2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2Uv
UGVyZm9ybWFuY2VFbnRyeS5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5TGlzdC5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuY3BwCmluZGV4IDI1ODk1YmY1NDE1
NDU2MDdjZTQyMWY5ZGU3NDVkNjdjMDY5ODk2MjQuLjdmNjUzMmEwOTA5NjZlODEzNDNmYTU0ZDZm
ZDc2Mzg5ZjExNzA1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5jcHAKQEAgLTM4LDcgKzM4
LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsK
QEAgLTc4LDExICs3Nyw2IEBAIFN0cmluZyBOYXZpZ2F0b3I6OmFwcFZlcnNpb24oKSBjb25zdAog
ICAgIHJldHVybiBhcHBWZXJzaW9uOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yOjpsYW5ndWFnZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOwotfQotCiBTdHJpbmcgTmF2
aWdhdG9yOjp1c2VyQWdlbnQoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKQEAgLTEzNCwy
OCArMTI4LDYgQEAgYm9vbCBOYXZpZ2F0b3I6OmphdmFFbmFibGVkKCkgY29uc3QKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotI2lmIGRlZmluZWQoRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZ
KQotaW50IE5hdmlnYXRvcjo6aGFyZHdhcmVDb25jdXJyZW5jeSgpIGNvbnN0Ci17Ci0gICAgLy8g
RW5mb3JjZSBhIG1heGltdW0gZm9yIHRoZSBudW1iZXIgb2YgY29yZXMgcmVwb3J0ZWQgdG8gbWl0
aWdhdGUKLSAgICAvLyBmaW5nZXJwcmludGluZyBmb3IgdGhlIG1pbm9yaXR5IG9mIG1hY2hpbmVz
IHdpdGggbGFyZ2UgbnVtYmVycyBvZiBjb3Jlcy4KLSAgICAvLyBJZiBtYWNoaW5lcyB3aXRoIG1v
cmUgdGhhbiA4IGNvcmVzIGJlY29tZSBjb21tb25wbGFjZSwgd2Ugc2hvdWxkIGJ1bXAgdGhpcyBu
dW1iZXIuCi0gICAgLy8gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI1ODggZm9yIHRoZQotICAgIC8vIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBkZWNpc2lvbi4K
LSNpZiBQTEFURk9STShJT1MpCi0gICAgY29uc3QgaW50IG1heENvcmVzVG9SZXBvcnQgPSAyOwot
I2Vsc2UKLSAgICBjb25zdCBpbnQgbWF4Q29yZXNUb1JlcG9ydCA9IDg7Ci0jZW5kaWYKLSAgICBp
bnQgaGFyZHdhcmVDb25jdXJyZW5jeSA9IG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKTsKLQotICAg
IGlmIChoYXJkd2FyZUNvbmN1cnJlbmN5ID4gbWF4Q29yZXNUb1JlcG9ydCkKLSAgICAgICAgcmV0
dXJuIG1heENvcmVzVG9SZXBvcnQ7Ci0KLSAgICByZXR1cm4gaGFyZHdhcmVDb25jdXJyZW5jeTsK
LX0KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TKQogYm9vbCBOYXZpZ2F0b3I6OnN0YW5kYWxv
bmUoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmgKaW5kZXggMTZhYmRkODY3NzYxNDdm
NzFhZDA1YTFiODc1OWMwODU1MDQ2MzMyZi4uZmJiMTJjNDlhY2U5YjYzZDllYzFlMDdjNTJiNWRm
YmYxNGYzNzViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5oCkBAIC00NSwxNCArNDUsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfk5hdmlnYXRvcigpOwogCiAgICAgU3RyaW5nIGFwcFZlcnNp
b24oKSBjb25zdDsKLSAgICBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdDsKICAgICBET01QbHVnaW5B
cnJheSogcGx1Z2lucygpIGNvbnN0OwogICAgIERPTU1pbWVUeXBlQXJyYXkqIG1pbWVUeXBlcygp
IGNvbnN0OwogICAgIGJvb2wgY29va2llRW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgamF2YUVu
YWJsZWQoKSBjb25zdDsKLSNpZiBkZWZpbmVkKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05DVVJSRU5D
WSkKLSAgICBpbnQgaGFyZHdhcmVDb25jdXJyZW5jeSgpIGNvbnN0OwotI2VuZGlmCiAgICAgdmly
dHVhbCBTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvci5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL05hdmlnYXRvci5pZGwKaW5kZXggYmRjZTRmMjRmNDdlMGNlNjhlN2FmOTNhZTkxMzgy
MjE3ZmQzZjU0Mi4uMTUyYzU2NmM5MDcxZDMyMzU5OWY3NTU2OWZjNDc2YmIyMmU3YjI1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTmF2aWdhdG9yLmlkbApAQCAtMjAsMjcgKzIwLDExIEBACiBbCiAgICAgR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsRnJhbWUsCiBdIGludGVyZmFjZSBOYXZpZ2F0b3IgewotICAg
IFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGFwcENvZGVO
YW1lOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFwcE5hbWU7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgYXBwVmVyc2lvbjsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBsYW5ndWFnZTsKLSAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVBsdWdpbkFycmF5IHBsdWdpbnM7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTU1p
bWVUeXBlQXJyYXkgbWltZVR5cGVzOwotICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIHByb2R1Y3Q7Ci0gICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdFN1YjsKLSAgICBbTm9uZGV0ZXJtaW5pc3Rp
Y10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2ZW5kb3I7Ci0gICAgW05vbmRldGVybWlu
aXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yU3ViOwogICAgIFtOb25k
ZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBjb29raWVFbmFibGVkOwog
ICAgIFtOb25kZXRlcm1pbmlzdGljXSBib29sZWFuIGphdmFFbmFibGVkKCk7CiAKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7Ci0KLSNpZiBkZWZpbmVkKEVOQUJMRV9OQVZJ
R0FUT1JfSFdDT05DVVJSRU5DWSkKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoYXJkd2Fy
ZUNvbmN1cnJlbmN5OwotI2VuZGlmCi0KICAgICAvLyBGSVhNRTogQ29udmVydCB0aGlzICNpZidk
ZWYgdG8gYW4gSURMIGNvbmRpdGlvbmFsIGF0dHJpYnV0ZS4KICNpZiBkZWZpbmVkKFdURl9QTEFU
Rk9STV9JT1MpICYmIFdURl9QTEFURk9STV9JT1MKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBzdGFuZGFsb25lOwpAQCAtNDksMyArMzMsNyBAQAogICAgIHZvaWQgZ2V0U3RvcmFnZVVw
ZGF0ZXMoKTsgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBvciByZW5hbWUgdG8geWllbGRG
b3JTdG9yYWdlVXBkYXRlcy4KIH07CiAKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvckNv
bmN1cnJlbnRIYXJkd2FyZTsKK05hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvcklEOworTmF2
aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yTGFuZ3VhZ2U7CitOYXZpZ2F0b3IgaW1wbGVtZW50
cyBOYXZpZ2F0b3JPbkxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmln
YXRvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAppbmRl
eCAwYmUyZTFmYjg0MDg4ZmU5Y2YxODJhOGRiNDc5OGVhYzFjZDkxYjhjLi45MWNjOWY1NzlhZGEw
YzY2NDU2NDU1ZDFjMjc2MjdiNzc3YmMwOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL05hdmlnYXRvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
QmFzZS5jcHAKQEAgLTI3LDggKzI3LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiTmF2aWdhdG9yQmFzZS5oIgogCisjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU3RhdGVOb3RpZmllci5oIgorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBPUyhMSU5VWCkKQEAgLTQ0LDMwICs0Nywz
MCBAQAogI2lmIFBMQVRGT1JNKElPUykKICNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZP
Uk0gZGV2aWNlTmFtZSgpCiAjZWxpZiBPUyhNQUNfT1NfWCkgJiYgKENQVShQUEMpIHx8IENQVShQ
UEM2NCkpCi0jZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJNYWNQUEMiCisjZGVm
aW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNIEFTQ0lJTGl0ZXJhbCgiTWFjUFBDIikKICNl
bGlmIE9TKE1BQ19PU19YKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpCi0jZGVmaW5lIFdF
QkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNICJNYWNJbnRlbCIKKyNkZWZpbmUgV0VCQ09SRV9OQVZJ
R0FUT1JfUExBVEZPUk0gQVNDSUlMaXRlcmFsKCJNYWNJbnRlbCIpCiAjZWxpZiBPUyhXSU5ET1dT
KQotI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9QTEFURk9STSAiV2luMzIiCisjZGVmaW5lIFdF
QkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNIEFTQ0lJTGl0ZXJhbCgiV2luMzIiKQogI2Vsc2UKLSNk
ZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0gIiIKKyNkZWZpbmUgV0VCQ09SRV9OQVZJ
R0FUT1JfUExBVEZPUk0gZW1wdHlTdHJpbmcoKQogI2VuZGlmCiAjZW5kaWYgLy8gaWZuZGVmIFdF
QkNPUkVfTkFWSUdBVE9SX1BMQVRGT1JNCiAKICNpZm5kZWYgV0VCQ09SRV9OQVZJR0FUT1JfUFJP
RFVDVAotI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9QUk9EVUNUICJHZWNrbyIKKyNkZWZpbmUg
V0VCQ09SRV9OQVZJR0FUT1JfUFJPRFVDVCBBU0NJSUxpdGVyYWwoIkdlY2tvIikKICNlbmRpZiAv
LyBpZm5kZWYgV0VCQ09SRV9OQVZJR0FUT1JfUFJPRFVDVAogCiAjaWZuZGVmIFdFQkNPUkVfTkFW
SUdBVE9SX1BST0RVQ1RfU1VCCi0jZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1BST0RVQ1RfU1VC
ICIyMDAzMDEwNyIKKyNkZWZpbmUgV0VCQ09SRV9OQVZJR0FUT1JfUFJPRFVDVF9TVUIgQVNDSUlM
aXRlcmFsKCIyMDAzMDEwNyIpCiAjZW5kaWYgLy8gaWZuZGVmIFdFQkNPUkVfTkFWSUdBVE9SX1BS
T0RVQ1RfU1VCCiAKICNpZm5kZWYgV0VCQ09SRV9OQVZJR0FUT1JfVkVORE9SCi0jZGVmaW5lIFdF
QkNPUkVfTkFWSUdBVE9SX1ZFTkRPUiAiQXBwbGUgQ29tcHV0ZXIsIEluYy4iCisjZGVmaW5lIFdF
QkNPUkVfTkFWSUdBVE9SX1ZFTkRPUiBBU0NJSUxpdGVyYWwoIkFwcGxlIENvbXB1dGVyLCBJbmMu
IikKICNlbmRpZiAvLyBpZm5kZWYgV0VCQ09SRV9OQVZJR0FUT1JfVkVORE9SCiAKICNpZm5kZWYg
V0VCQ09SRV9OQVZJR0FUT1JfVkVORE9SX1NVQgotI2RlZmluZSBXRUJDT1JFX05BVklHQVRPUl9W
RU5ET1JfU1VCICIiCisjZGVmaW5lIFdFQkNPUkVfTkFWSUdBVE9SX1ZFTkRPUl9TVUIgZW1wdHlT
dHJpbmcoKQogI2VuZGlmIC8vIGlmbmRlZiBXRUJDT1JFX05BVklHQVRPUl9WRU5ET1JfU1VCCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc2LDkgKzc5LDkgQEAgTmF2aWdhdG9yQmFzZTo6fk5h
dmlnYXRvckJhc2UoKQogewogfQogCi1TdHJpbmcgTmF2aWdhdG9yQmFzZTo6YXBwTmFtZSgpIGNv
bnN0CitTdHJpbmcgTmF2aWdhdG9yQmFzZTo6YXBwTmFtZSgpCiB7Ci0gICAgcmV0dXJuICJOZXRz
Y2FwZSI7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiTmV0c2NhcGUiKTsKIH0KIAogU3RyaW5n
IE5hdmlnYXRvckJhc2U6OmFwcFZlcnNpb24oKSBjb25zdApAQCAtODgsNyArOTEsNyBAQCBTdHJp
bmcgTmF2aWdhdG9yQmFzZTo6YXBwVmVyc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGFnZW50LnN1
YnN0cmluZyhhZ2VudC5maW5kKCcvJykgKyAxKTsKIH0KIAotU3RyaW5nIE5hdmlnYXRvckJhc2U6
OnBsYXRmb3JtKCkgY29uc3QKK1N0cmluZyBOYXZpZ2F0b3JCYXNlOjpwbGF0Zm9ybSgpCiB7CiAj
aWYgT1MoTElOVVgpCiAgICAgaWYgKCFTdHJpbmcoV0VCQ09SRV9OQVZJR0FUT1JfUExBVEZPUk0p
LmlzRW1wdHkoKSkKQEAgLTEwMSwzNCArMTA0LDY1IEBAIFN0cmluZyBOYXZpZ2F0b3JCYXNlOjpw
bGF0Zm9ybSgpIGNvbnN0CiAjZW5kaWYKIH0KIAotU3RyaW5nIE5hdmlnYXRvckJhc2U6OmFwcENv
ZGVOYW1lKCkgY29uc3QKK1N0cmluZyBOYXZpZ2F0b3JCYXNlOjphcHBDb2RlTmFtZSgpCiB7Ci0g
ICAgcmV0dXJuICJNb3ppbGxhIjsKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJNb3ppbGxhIik7
CiB9CiAKLVN0cmluZyBOYXZpZ2F0b3JCYXNlOjpwcm9kdWN0KCkgY29uc3QKK1N0cmluZyBOYXZp
Z2F0b3JCYXNlOjpwcm9kdWN0KCkKIHsKICAgICByZXR1cm4gV0VCQ09SRV9OQVZJR0FUT1JfUFJP
RFVDVDsKIH0KIAotU3RyaW5nIE5hdmlnYXRvckJhc2U6OnByb2R1Y3RTdWIoKSBjb25zdAorU3Ry
aW5nIE5hdmlnYXRvckJhc2U6OnByb2R1Y3RTdWIoKQogewogICAgIHJldHVybiBXRUJDT1JFX05B
VklHQVRPUl9QUk9EVUNUX1NVQjsKIH0KIAotU3RyaW5nIE5hdmlnYXRvckJhc2U6OnZlbmRvcigp
IGNvbnN0CitTdHJpbmcgTmF2aWdhdG9yQmFzZTo6dmVuZG9yKCkKIHsKICAgICByZXR1cm4gV0VC
Q09SRV9OQVZJR0FUT1JfVkVORE9SOwogfQogCi1TdHJpbmcgTmF2aWdhdG9yQmFzZTo6dmVuZG9y
U3ViKCkgY29uc3QKK1N0cmluZyBOYXZpZ2F0b3JCYXNlOjp2ZW5kb3JTdWIoKQogewogICAgIHJl
dHVybiBXRUJDT1JFX05BVklHQVRPUl9WRU5ET1JfU1VCOwogfQogCi1ib29sIE5hdmlnYXRvckJh
c2U6Om9uTGluZSgpIGNvbnN0Citib29sIE5hdmlnYXRvckJhc2U6Om9uTGluZSgpCiB7CiAgICAg
cmV0dXJuIG5ldHdvcmtTdGF0ZU5vdGlmaWVyKCkub25MaW5lKCk7CiB9CiAKK1N0cmluZyBOYXZp
Z2F0b3JCYXNlOjpsYW5ndWFnZSgpCit7CisgICAgcmV0dXJuIGRlZmF1bHRMYW5ndWFnZSgpOwor
fQorCisjaWYgRU5BQkxFKE5BVklHQVRPUl9IV0NPTkNVUlJFTkNZKQorCitpbnQgTmF2aWdhdG9y
QmFzZTo6aGFyZHdhcmVDb25jdXJyZW5jeSgpCit7CisgICAgc3RhdGljIGludCBudW1iZXJPZkNv
cmVzOworCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7CisgICAgc3RkOjpjYWxsX29u
Y2Uob25jZSwgW10geworICAgICAgICAvLyBFbmZvcmNlIGEgbWF4aW11bSBmb3IgdGhlIG51bWJl
ciBvZiBjb3JlcyByZXBvcnRlZCB0byBtaXRpZ2F0ZQorICAgICAgICAvLyBmaW5nZXJwcmludGlu
ZyBmb3IgdGhlIG1pbm9yaXR5IG9mIG1hY2hpbmVzIHdpdGggbGFyZ2UgbnVtYmVycyBvZiBjb3Jl
cy4KKyAgICAgICAgLy8gSWYgbWFjaGluZXMgd2l0aCBtb3JlIHRoYW4gOCBjb3JlcyBiZWNvbWUg
Y29tbW9ucGxhY2UsIHdlIHNob3VsZCBidW1wIHRoaXMgbnVtYmVyLgorICAgICAgICAvLyBzZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjU4OCBmb3IgdGhlCisg
ICAgICAgIC8vIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBkZWNpc2lvbi4KKyNpZiBQTEFURk9STShJ
T1MpCisgICAgICAgIGNvbnN0IGludCBtYXhDb3Jlc1RvUmVwb3J0ID0gMjsKKyNlbHNlCisgICAg
ICAgIGNvbnN0IGludCBtYXhDb3Jlc1RvUmVwb3J0ID0gODsKKyNlbmRpZgorICAgICAgICBudW1i
ZXJPZkNvcmVzID0gc3RkOjptaW4oV1RGOjpudW1iZXJPZlByb2Nlc3NvckNvcmVzKCksIG1heENv
cmVzVG9SZXBvcnQpOworICAgIH0pOworCisgICAgcmV0dXJuIG51bWJlck9mQ29yZXM7Cit9CisK
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL05hdmlnYXRvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9y
QmFzZS5oCmluZGV4IDUyODNmNTY5OGU4MmE3YjlmNDQ0NWFjNmViMTAwMjNlNzIwZjJkMmUuLjky
ZjQzNDM2MTBkZWRhNWM4ZDZkZWJkM2Q3ZGJiNTkyMzczZjQyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TmF2aWdhdG9yQmFzZS5oCkBAIC0zMCwyNCArMzAsMzAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgTmF2aWdhdG9yQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICBTdHJp
bmcgYXBwTmFtZSgpIGNvbnN0OwotICAgICAgICBTdHJpbmcgYXBwVmVyc2lvbigpIGNvbnN0Owot
ICAgICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoKSBjb25zdCA9IDA7Ci0gICAgICAgIFN0
cmluZyBwbGF0Zm9ybSgpIGNvbnN0OwotCi0gICAgICAgIFN0cmluZyBhcHBDb2RlTmFtZSgpIGNv
bnN0OwotICAgICAgICBTdHJpbmcgcHJvZHVjdCgpIGNvbnN0OwotICAgICAgICBTdHJpbmcgcHJv
ZHVjdFN1YigpIGNvbnN0OwotICAgICAgICBTdHJpbmcgdmVuZG9yKCkgY29uc3Q7Ci0gICAgICAg
IFN0cmluZyB2ZW5kb3JTdWIoKSBjb25zdDsKLQotICAgICAgICBib29sIG9uTGluZSgpIGNvbnN0
OwotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIH5OYXZpZ2F0b3JCYXNlKCk7Ci0g
ICAgfTsKK2NsYXNzIE5hdmlnYXRvckJhc2UgeworcHVibGljOgorICAgIHN0YXRpYyBTdHJpbmcg
YXBwTmFtZSgpOworICAgIFN0cmluZyBhcHBWZXJzaW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBT
dHJpbmcgdXNlckFnZW50KCkgY29uc3QgPSAwOworICAgIHN0YXRpYyBTdHJpbmcgcGxhdGZvcm0o
KTsKKworICAgIHN0YXRpYyBTdHJpbmcgYXBwQ29kZU5hbWUoKTsKKyAgICBzdGF0aWMgU3RyaW5n
IHByb2R1Y3QoKTsKKyAgICBzdGF0aWMgU3RyaW5nIHByb2R1Y3RTdWIoKTsKKyAgICBzdGF0aWMg
U3RyaW5nIHZlbmRvcigpOworICAgIHN0YXRpYyBTdHJpbmcgdmVuZG9yU3ViKCk7CisKKyAgICBz
dGF0aWMgYm9vbCBvbkxpbmUoKTsKKworICAgIHN0YXRpYyBTdHJpbmcgbGFuZ3VhZ2UoKTsKKwor
I2lmIEVOQUJMRShOQVZJR0FUT1JfSFdDT05DVVJSRU5DWSkKKyAgICBzdGF0aWMgaW50IGhhcmR3
YXJlQ29uY3VycmVuY3koKTsKKyNlbmRpZgorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TmF2
aWdhdG9yQmFzZSgpOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjE5MjE5YTMzNjA2ZWQ1MTM0NWFkZTc0MzVhNjc4ZDRmYzg1NGMyZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJl
LmlkbApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgTm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIE5hdmln
YXRvckNvbmN1cnJlbnRIYXJkd2FyZSB7CisgICAgW0NvbmRpdGlvbmFsPU5BVklHQVRPUl9IV0NP
TkNVUlJFTkNZXSByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIGhhcmR3YXJl
Q29uY3VycmVuY3k7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0
b3JJRC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvcklELmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42Y2ExMjU3MjUyYzM1N2Y4MGM2ZTQ5MjYzMTRlNWU5MjY5NGU4M2ExCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JJRC5pZGwKQEAgLTAsMCArMSw0MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAg
IE5vSW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBOYXZpZ2F0b3JJRCB7CisgICAgW05vbmRl
dGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBwQ29kZU5hbWU7Cisg
ICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXBwTmFt
ZTsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBh
cHBWZXJzaW9uOworICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHBsYXRmb3JtOworICAgIFtOb25kZXRlcm1pbmlzdGljXSByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHByb2R1Y3Q7CisgICAgW05vbmRldGVybWluaXN0aWNdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcHJvZHVjdFN1YjsKKyAgICBbTm9uZGV0ZXJtaW5pc3RpY10gcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7CisgICAgW05vbmRldGVybWluaXN0
aWNdIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVuZG9yOworICAgIFtOb25kZXRlcm1p
bmlzdGljXSByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlbmRvclN1YjsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yTGFuZ3VhZ2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2ZjU5MGY2
MzNmYmQxODI4NzBjOTQ2MTFjMjY3ZDA4ZjdhYjQyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL05hdmlnYXRvckxhbmd1YWdlLmlkbApAQCAtMCwwICsxLDM0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgTm9J
bnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIE5hdmlnYXRvckxhbmd1YWdlIHsKKyAgICBbTm9u
ZGV0ZXJtaW5pc3RpY10gIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZ3VhZ2U7Cisg
ICAgLy8gcmVhZG9ubHkgYXR0cmlidXRlIEZyb3plbkFycmF5PERPTVN0cmluZz4gbGFuZ3VhZ2Vz
OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTmF2aWdhdG9yT25MaW5lLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
OTI3NjM1MDJlOTUxNzNjNjM0ODQ5ZDJhMjMwYjZkMmIxZWJjYjZkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9OYXZpZ2F0b3JPbkxpbmUuaWRsCkBAIC0wLDAgKzEsMzMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxl
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBOb0ludGVyZmFjZU9iamVjdAorXSBpbnRlcmZhY2UgTmF2aWdhdG9yT25MaW5lIHsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBvbkxpbmU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9X
b3JrZXJOYXZpZ2F0b3IuaWRsCmluZGV4IDMxMDljYWM1MmQ5MjgwNDliMTNmYTAxMWM3OGNhMjYz
ZDdiYzBiYTguLmY3ZTdjMmE2OTk3MTZjMzYyMWZiYWE2MjBkYTRjZGUyNmUyMTBmNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1dvcmtlck5hdmlnYXRvci5pZGwKQEAgLTMwLDExICszMCw5IEBACiAg
ICAgRXhwb3NlZD1Xb3JrZXIsCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogXSBpbnRl
cmZhY2UgV29ya2VyTmF2aWdhdG9yIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGFwcE5hbWU7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBhcHBWZXJzaW9uOwot
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm07Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB1c2VyQWdlbnQ7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiBvbkxpbmU7CiB9OwogCitXb3JrZXJOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0
b3JDb25jdXJyZW50SGFyZHdhcmU7CitXb3JrZXJOYXZpZ2F0b3IgaW1wbGVtZW50cyBOYXZpZ2F0
b3JJRDsKK1dvcmtlck5hdmlnYXRvciBpbXBsZW1lbnRzIE5hdmlnYXRvckxhbmd1YWdlOworV29y
a2VyTmF2aWdhdG9yIGltcGxlbWVudHMgTmF2aWdhdG9yT25MaW5lOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTGFuZ3VhZ2UuY3BwCmluZGV4IGUyZjA0ZmRlODFkZjBhYWFmZGNiODYxZTliOTIyNDVjYzBm
ODJhODQuLmVjNGIzNDkyNDZhYzdlOWU3NjAwNmFlN2IwNDgzMDQ5NjJmYTgwMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKQEAgLTM4LDYgKzM4LDggQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitzdGF0aWMgU3RhdGljTG9jayB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0
ZXg7CisKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTGFuZ3VhZ2VEaWRDaGFuZ2VDYWxsYmFja0lmTmVj
ZXNzYXJ5KCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsKQEAgLTEwMCwxMSAr
MTAyLDIzIEBAIHZvaWQgb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBvdmVycmlkZSkKICAgICBsYW5ndWFnZURpZENoYW5nZSgpOwogfQogCitzdGF0
aWMgVmVjdG9yPFN0cmluZz4gaXNvbGF0ZWRDb3B5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJp
bmdzKQoreworICAgIFZlY3RvcjxTdHJpbmc+IGNvcHk7CisgICAgY29weS5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHN0cmluZ3Muc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogc3Ry
aW5ncykKKyAgICAgICAgY29weS51bmNoZWNrZWRBcHBlbmQobGFuZ3VhZ2UuaXNvbGF0ZWRDb3B5
KCkpOworICAgIHJldHVybiBjb3B5OworfQorCiBWZWN0b3I8U3RyaW5nPiB1c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzKCkKIHsKLSAgICBWZWN0b3I8U3RyaW5nPiYgb3ZlcnJpZGUgPSBwcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZSgpOwotICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm4gb3ZlcnJpZGU7CisgICAgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGlj
TG9jaz4gbG9jayh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzTXV0ZXgpOworICAgICAgICBWZWN0b3I8
U3RyaW5nPiYgb3ZlcnJpZGUgPSBwcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOworICAgICAg
ICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBpc29sYXRlZENv
cHkob3ZlcnJpZGUpOworICAgIH0KICAgICAKICAgICByZWdpc3Rlckxhbmd1YWdlRGlkQ2hhbmdl
Q2FsbGJhY2tJZk5lY2Vzc2FyeSgpOwogICAgIHJldHVybiBwbGF0Zm9ybVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5oCmluZGV4IDdhZTU0MDdjZDE1
OTNlZGMwZWQxNjkzNWYwMGFlMDMyN2Y1ZjM0MzQuLjExMjYwM2E5ZmM4MDBiMTU1MDlmYTNmYWM5
NTgyNjg4ODljNzM5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGFuZ3VhZ2UuaApAQCAtMzEsOCAr
MzEsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdFQkNPUkVfRVhQT1JUIFN0cmluZyBk
ZWZhdWx0TGFuZ3VhZ2UoKTsKLVdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMoKTsKK1dFQkNPUkVfRVhQT1JUIFN0cmluZyBkZWZhdWx0TGFuZ3VhZ2Uo
KTsgLy8gVGhyZWFkLXNhZmUuCitXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCk7IC8vIFRocmVhZC1zYWZlLgogVmVjdG9yPFN0cmluZz4gdXNlclBy
ZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CiBXRUJDT1JFX0VYUE9SVCB2b2lkIG92ZXJyaWRl
VXNlclByZWZlcnJlZExhbmd1YWdlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogc2l6ZV90IGlu
ZGV4T2ZCZXN0TWF0Y2hpbmdMYW5ndWFnZUluTGlzdChjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgbGFuZ3VhZ2VMaXN0LCBib29sJiBleGFjdE1hdGNoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBiM2FkMmZmMmMyOTkzYzlmNTNkOTEzY2NmODk4ZTJkNTVjYTAzMWQ5Li5mMTUxOWFlZjVl
NzM5Yjg4YzExMmRhMmI0MzI1YzAzMWM0NWEzNDQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTYtMDYtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBXb3Jr
ZXJOYXZpZ2F0b3IgaXMgbWlzc2luZyBzb21lIGF0dHJpYnV0ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODU5MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjY3MzEzMzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgSW1wcm92ZWQgdGVzdCBjb3ZlcmFnZSBmb3IgV29ya2VyTmF2aWdhdG9yLgorCisgICAg
ICAgICogZmFzdC93b3JrZXJzL3Jlc291cmNlcy93b3JrZXItbmF2aWdhdG9yLmpzOgorCiAyMDE2
LTA2LTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
YW4gSURCIGxlYWsgdGVzdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9y
ZXNvdXJjZXMvd29ya2VyLW5hdmlnYXRvci5qcyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9y
ZXNvdXJjZXMvd29ya2VyLW5hdmlnYXRvci5qcwppbmRleCBkMTk3MmJhOWE0N2UzMzNmNWRjN2Rj
Mjg0MDgwMDViYTUxOGYyYTk0Li44NzAyNmUzZWQ0MDRjYTBkOTFiZDI2NmYxZmViN2QyYmUwODlm
ZWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvcmVzb3VyY2VzL3dvcmtl
ci1uYXZpZ2F0b3IuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3Jlc291cmNlcy93
b3JrZXItbmF2aWdhdG9yLmpzCkBAIC0xMSwxMSArMTEsMjggQEAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiB2YXIgd29ya2VyID0gY3JlYXRlV29ya2VyKCk7CiB3b3JrZXIucG9zdE1lc3NhZ2Uo
ImV2YWwgdHlwZW9mIG5hdmlnYXRvciIpOwogd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmln
YXRvciIpOwotd29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci5hcHBOYW1lIik7CisK
Ky8vIE5hdmlnYXRvckNvbmN1cnJlbnRIYXJkd2FyZQord29ya2VyLnBvc3RNZXNzYWdlKCJldmFs
IG5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5ID49IDEgJiYgbmF2aWdhdG9yLmhhcmR3YXJl
Q29uY3VycmVuY3kgPD0gOCIpOworCisvLyBOYXZpZ2F0b3JJRAord29ya2VyLnBvc3RNZXNzYWdl
KCJldmFsIG5hdmlnYXRvci5hcHBDb2RlTmFtZSA9PT0gJ01vemlsbGEnIik7Cit3b3JrZXIucG9z
dE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLmFwcE5hbWUgPT09ICdOZXRzY2FwZSciKTsKIHdvcmtl
ci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCdXZWJLaXQn
KSAhPSAwIik7Ci13b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgdHlwZW9mIG5hdmlnYXRvci5wbGF0
Zm9ybSIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0b3IucGxhdGZv
cm0gPT0gJ3N0cmluZyciKTsKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBuYXZpZ2F0b3IucHJv
ZHVjdCA9PT0gJ0dlY2tvJyIpOword29ya2VyLnBvc3RNZXNzYWdlKCJldmFsIG5hdmlnYXRvci5w
cm9kdWN0U3ViID09PSAnMjAwMzAxMDcnIik7CiB3b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2
aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdXZWJLaXQnKSAhPSAwIik7Ci13b3JrZXIucG9zdE1l
c3NhZ2UoImV2YWwgdHlwZW9mIG5hdmlnYXRvci5vbkxpbmUiKTsKK3dvcmtlci5wb3N0TWVzc2Fn
ZSgiZXZhbCBuYXZpZ2F0b3IudmVuZG9yID09PSAnQXBwbGUgQ29tcHV0ZXIsIEluYy4nIik7Cit3
b3JrZXIucG9zdE1lc3NhZ2UoImV2YWwgbmF2aWdhdG9yLnZlbmRvclN1YiA9PT0gJyciKTsKKwor
Ly8gTmF2aWdhdG9yTGFuZ3VhZ2UKK3dvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCB0eXBlb2YgbmF2
aWdhdG9yLmxhbmd1YWdlID09ICdzdHJpbmcnIik7CisKKy8vIE5hdmlnYXRvck9uTGluZQord29y
a2VyLnBvc3RNZXNzYWdlKCJldmFsIHR5cGVvZiBuYXZpZ2F0b3Iub25MaW5lID09ICdib29sZWFu
JyIpOworCisKIHdvcmtlci5wb3N0TWVzc2FnZSgiZXZhbCBmb28vL2JhciIpOwogCiB3b3JrZXIu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZ0KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvd29ya2VyLW5hdmlnYXRvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvd29ya2VyLW5hdmlnYXRvci1leHBlY3RlZC50eHQKaW5kZXggYTgwYjI1MDQ2ZWYx
MmJjZjQyMjM2MmYzNzM3ZDI1NzIyYTAzY2Y1Yi4uZGIwZDFmZDk5YmY2MjU2ZTdlMzZmMzI0MTVk
YThjMmZlMzkwODVjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtl
ci1uYXZpZ2F0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93
b3JrZXItbmF2aWdhdG9yLWV4cGVjdGVkLnR4dApAQCAtMiwxMCArMiwxNyBAQCBUZXN0IE5hdmln
YXRvciBwcm9wZXJ0aWVzLgogCiB0eXBlb2YgbmF2aWdhdG9yOiBvYmplY3QKIG5hdmlnYXRvcjog
W29iamVjdCBXb3JrZXJOYXZpZ2F0b3JdCi1uYXZpZ2F0b3IuYXBwTmFtZTogTmV0c2NhcGUKK25h
dmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5ID49IDEgJiYgbmF2aWdhdG9yLmhhcmR3YXJlQ29u
Y3VycmVuY3kgPD0gODogdHJ1ZQorbmF2aWdhdG9yLmFwcENvZGVOYW1lID09PSAnTW96aWxsYSc6
IHRydWUKK25hdmlnYXRvci5hcHBOYW1lID09PSAnTmV0c2NhcGUnOiB0cnVlCiBuYXZpZ2F0b3Iu
YXBwVmVyc2lvbi5pbmRleE9mKCdXZWJLaXQnKSAhPSAwOiB0cnVlCi10eXBlb2YgbmF2aWdhdG9y
LnBsYXRmb3JtOiBzdHJpbmcKK3R5cGVvZiBuYXZpZ2F0b3IucGxhdGZvcm0gPT0gJ3N0cmluZyc6
IHRydWUKK25hdmlnYXRvci5wcm9kdWN0ID09PSAnR2Vja28nOiB0cnVlCituYXZpZ2F0b3IucHJv
ZHVjdFN1YiA9PT0gJzIwMDMwMTA3JzogdHJ1ZQogbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9m
KCdXZWJLaXQnKSAhPSAwOiB0cnVlCi10eXBlb2YgbmF2aWdhdG9yLm9uTGluZTogYm9vbGVhbgor
bmF2aWdhdG9yLnZlbmRvciA9PT0gJ0FwcGxlIENvbXB1dGVyLCBJbmMuJzogdHJ1ZQorbmF2aWdh
dG9yLnZlbmRvclN1YiA9PT0gJyc6IHRydWUKK3R5cGVvZiBuYXZpZ2F0b3IubGFuZ3VhZ2UgPT0g
J3N0cmluZyc6IHRydWUKK3R5cGVvZiBuYXZpZ2F0b3Iub25MaW5lID09ICdib29sZWFuJzogdHJ1
ZQogRE9ORQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>